Logo Studenta

Bello Muñoz Edgar Alejandro Tareas Ingeniería de Software - Edgar Bello

¡Este material tiene más páginas!

Vista previa del material en texto

Bello Muñoz Edgar Alejandro Ingeniería de Software
Definiciones de Ingeniería de Software
Alan Davis:
La aplicación inteligente de principios probados, técnicas, lenguajes y herramientas
para la creación y mantenimiento, dentro de un coste razonable, de software que
satisfaga las necesidades de los usuarios
Friedrich Bauer:
El establecimiento y uso de principios de ingeniería robustos, orientados a obtener
económicamente software que sea fiable y funcione eficientemente sobre máquinas
reales.
Barry Boehm
La Ingeniería del Software incluye la aplicación práctica del conocimiento científico
en el diseño y construcción de los programas y la documentación requerida para su
desarrollo, operación y mantenimiento.
Glosario IEEE:
El enfoque sistemático para el desarrollo, operación, mantenimiento y eliminación
del software, definiendo como software los programas, procedimientos, reglas y
documentación, así como los datos de operación de un sistema de cómputo.
Software Engineering Institute
Esa forma de ingeniería que aplica los principios de la informática y las matemáticas
para conseguir soluciones rentables a problemas software.
Ian Sommerville
La especificación, desarrollo, gestión y evolución de sistemas software. No está
limitado por materiales sujetos a leyes físicas o procesos de fabricación manual.
Teorías, métodos y herramientas necesarias para desarrollar software.
Roger Pressman
La Ingeniería de Software: Es una disciplina o área de la informática o ciencia de la
computación, que ofrece técnicas y métodos para desarrollar y mantener software
de calidad.
Definición propia
La ingeniería de Software es un conjunto de herramientas y disciplinas empleadas
para la construcción y mantenimiento de software de calidad que sea capaz de
satisfacer las necesidades de sus usuarios.
Bello Muñoz Edgar Alejandro Ingeniería de Software
Tipos de memorias
RAM (Random Access Memory)
Es una memoria que se utiliza para el almacenamiento temporal de instrucciones o
de datos. Así mismo, la RAM se conoce como una memoria de escritura y lectura, ya
que se lee o escriben datos de esta clase en la memoria. Se destaca por ser una
memoria volátil. Finalmente, hay dos tipos que son, RAM dinámica (DRAM) y RAM
estática (SRAM). Su capacidad promedio actual es de entre 4 a 16 GB.
ROM (Read Only Memory)
La memoria ROM o Read Only Memory, es un tipo de memoria que es sólo de
lectura, destacando que en la mayoría de los casos no se van a poder modificar ya
que la escritura se encuentra prohibida. Esta incorporada a la placa base y cuenta
con las instrucciones para dar inicio a la BIOS. Es una memoria de tipo secuencial,
así que todos los datos se deben recorrer hasta que se ubique la información que se
necesita, lo que la diferencia de la RAM en donde el trabajo es aleatorio y por ende el
acceso es específico y directo.
SRAM
Es una de las memorias que la computadora más usa. La placa base y el disco
rígido cuentan con su propia memoria caché, la cual en resumen se emplea para
resguardar direcciones distintas que son usadas por la memoria RAM para realizar
funciones diversas. En resumen, almacena las ubicaciones en el disco, las cuales
son ocupadas por programas que ya fueron ejecutados, para que en un momento
posterior en que se inicien, el acceso sea más rápido.
Memoria virtual o Swap
En las computadoras con un sistema operativo Microsoft Windows o Linux se va a
encontrar esta clase de memoria. Es semejante a la caché, pero es creada para ser
usada en exclusiva por el sistema operativo. Para Linux se denomina memoria Swap
y está situada en una partición distinta del disco, mientras que en Windows es un
archivo que está en el interior del sistema operativo.
Memoria Flash
Se derivan de las siglas EEPROM y son las que permiten que un usuario pueda leer o
escribir en posiciones múltiples de una memoria durante una misma operación.
Permite en ese sentido una velocidad de funcionamiento superior y marcó un
cambio importante para la tecnología al no tener que actuar únicamente en una
celda de memoria por cada operación. A grandes rasgos se puede plantear que en la
actualidad su tamaño es de 2 a 16 GB, pero hay modelos en los que superan con
creces estas cantidades.
Bello Muñoz Edgar Alejandro Ingeniería de Software
Discos Duros y Discos de Estado Sólido
El disco duro es el dispositivo principal donde se almacena toda la información que
genera el usuario: los programas instalados, los archivos de música, imagen o vídeo,
etcétera. Tradicionalmente ha consistido en discos giratorios provistos de un brazo
móvil (hard disk drive o HDD) que buscaban la información.
Esta tecnología está siendo reemplazada por las unidades de almacenamiento de
estado sólido (SSD), que no tienen partes móviles y que están hechas a base de
circuitos electrónicos (chips de memoria NAND Flash). Como ventaja, los discos
SSD son mucho más pequeños, ligeros y transfieren de forma más rápida la
información. Por eso se han convertido en la opción a la que recurren todos los
fabricantes de portátiles, por ejemplo. Eso sí, son más caros que los discos
tradicionales.
Bello Muñoz Edgar Alejandro Ingeniería de Software
Diferencias entre arquitecturas RISC y CISC
RISC (Reduced instruction set computing) es una arquitectura que utiliza una unidad
central de procesamiento (CPU) que implementa el principio de diseño del
procesador de instrucciones simplificadas. El diseño de la arquitectura RISC agiliza y
acelera significativamente el procesamiento de datos al minimizar el número de
instrucciones almacenadas permanentemente en el microprocesador y se basa más
en instrucciones no residentes, es decir, códigos o programas de software. RISC es
posiblemente la tecnología de microprocesador más rápida y eficiente disponible en
la actualidad.
Los chips o microprocesadores RISC aprovechan el hecho de que la mayoría de las
instrucciones para los procesos informáticos son relativamente simples y las
computadoras están diseñadas para manejar esas instrucciones simples
rápidamente. La arquitectura RISC es una mejora de la arquitectura CISC
(computación de conjunto de instrucciones complejas) utilizada en los chips Intel
Pentium originales. Aunque Intel ha ido integrando lentamente la tecnología RISC en
sus chips, todavía están en su mayoría basados en CISC.
CISC es un tipo de diseño de microprocesador. La arquitectura CISC contiene un
gran conjunto de instrucciones informáticas que van desde muy simples hasta muy
complejas y especializadas. Aunque el diseño estaba destinado a calcular
instrucciones complejas de la manera más eficiente, más tarde se descubrió que
muchas instrucciones pequeñas y cortas podían calcular instrucciones complejas
de manera más eficiente.
Aquí se enlistan las principales diferencias entre ambas arquitecturas
RISC CISC
El tamaño del código es grande El tamaño del código es pequeño
Una instrucción se ejecuta en un solo
ciclo de reloj
La instrucción toma más de un ciclo de
reloj
Una instrucción que cabe en una
palabra
Las instrucciones son más grandes
que el tamaño de una palabra
Bello Muñoz Edgar Alejandro Ingeniería de Software
Crisis del Software
La crisis del software es un término informático acuñado en 1968, en la primera
conferencia organizada por la OTAN sobre desarrollo de software, de la cual nació
formalmente la rama de la Ingeniería de Software. El término se adjudica a F. L.
Bauer, aunque previamente había sido utilizado por Edsger Dijkstra.
La crisis del software es el resultado de la introducción de la tercera generación del
hardware. Es un hecho de que el software que se construye no solamente no
satisface los requerimientos ni las necesidades del cliente, sino que además excede
los presupuestos y los horarios.
En la actualidad, las aplicaciones típicas son muy grandes y complejas para que un
individuo las entienda y, por ello, lleva gran tiempo implementar software. El término
“crisis del software” fue usado en los primeros días de la ingeniería de software. Se
empleó para referirse a losrápidos incrementos de la tecnología en la computación
y la complejidad de los problemas a los cuales pudieran enfrentarse.
Uno de los principales problemas en el desarrollo de software de hoy en día es que
muchos proyectos empiezan la programación tan pronto se definen y concentran
mucho de su esfuerzo en la escritura de código.
Algunos “síntomas” que indican que el software se encuentra en un periodo de crisis
son: Baja calidad del software, tiempo y presupuesto excedido, confiabilidad
cuestionable, altos requerimientos de personal para desarrollo y mantenimiento.
Hay varias razones que pueden ser propuestas como causa de la crisis, todas tienen
en común que surgen por el método de valorar los avances científicos y el
mecanismo actual de financiación de la actividad científica.
Las causas de la crisis del software fueron vinculadas a la complejidad en general
del proceso de software y a la relativa madurez de la ingeniería de software como
una profesión.
La crisis se caracterizó por los siguientes problemas:
● Funcionalidad incorrecta.
● Desarrollo y mantenimiento inadecuados.
● Insatisfacción de la demanda.
● Imprecisión en la planificación del proyecto y estimación de los costos.
● Baja calidad del software.
Dificultad de mantenimiento de programas con un diseño poco estructurado, difícil y
costoso.
Bello Muñoz Edgar Alejandro Ingeniería de Software
Por otra parte, se exige que el software sea eficaz y barato tanto en el desarrollo
como en la compra.
● Carencia de información sobre qué realizamos y cómo.
● Insatisfacción de clientes y usuarios.
● Calidad sospechosa.
Donde las potenciales causas son:
● Carácter lógico del software.
● Formación profesional.
● Entrenamiento y actualización.
● Resistencia al cambio.
Muchas de las causas de la crisis del software se pueden encontrar como una
mitología que surge durante los primeros años del desarrollo del software. Los mitos
son actitudes erróneas que han causado problemas en el desarrollo de software.
Algunos de los mitos más comunes son:
● Basta con tener estándares y procedimientos.
● Basta con la tecnología de punta.
● Si estoy atrasado, pongo más gente y me pongo al día.
● Hay que partir programando inmediatamente.
● Los cambios se acomodan fácilmente.
● El código es el único producto
La solución para finalizar la crisis del software es brindar un enfoque ingenieril, es
decir, un enfoque formal de resolución de problemas.
Evolución del Software
Bello Muñoz Edgar Alejandro Ingeniería de Software
Paradigmas de la Ingeniería de Software
Definición de Paradigma:
Para la Ingeniería de Software el paradigma es una agrupación de métodos,
herramientas y procedimientos con el fin de describir un modelo.
Paradigmas de la Ingeniería de Software:
Cada metodología de desarrollo de software tiene más o menos su propio enfoque
para el desarrollo de software.
La ingeniería del Software define paradigmas de desarrollo estructurado como base
a seguir en un proyecto de Software. Si ninguno de estos paradigmas se adecua al
problema por resolver, entonces el desarrollador se verá obligado a combinar los
paradigmas o definir uno nuevo.
Para resolver los problemas reales, el ingeniero del software debe incorporar una
estrategia de desarrollo que acompañe al proceso, métodos y capas de
herramientas.
Modelo Lineal Secuencial o de Cascada:
Es un proceso secuencial de desarrollo en el que los pasos de desarrollo son vistos
hacia abajo (como en una cascada de agua) a través de las fases de análisis de las
necesidades, el diseño, implantación, pruebas (validación), la integración, y
mantenimiento.
Modelo de prototipos:
El modelo de prototipos permite desarrollar modelos de aplicaciones de software
que permiten ver la funcionalidad básica de la misma, sin necesariamente incluir
toda la lógica o características del modelo terminado.
Bello Muñoz Edgar Alejandro Ingeniería de Software
El prototipo permite al cliente evaluar en forma temprana el producto, e interactuar
con los diseñadores y desarrolladores para saber si se está cumpliendo con las
expectativas y las funcionalidades acordadas.
Modelo en espiral:
Propuesto por Boehm en 1988 con la finalidad de paliar los inconvenientes del
modelo en cascada y adecuar el desarrollo por prototipos a problemas complejos.
Este paradigma combina el paradigma de cascada y el de construcción por
prototipos, agregando una etapa de "análisis de riesgo".
Bello Muñoz Edgar Alejandro Ingeniería de Software
RAD. Rapid Application Development:
El desarrollo rápido de aplicaciones (RAD) es una metodología de desarrollo de
software, que implica el desarrollo iterativo y la construcción de prototipos.
El desarrollo rápido de aplicaciones es un término originalmente utilizado para
describir un proceso de desarrollo de software introducido por James Martin en
1991.
El objetivo clave de este modelo es un rápido desarrollo y entrega de una alta calidad
en un sistema de relativamente bajo coste de inversión.
Intenta reducir el riesgo inherente del proyecto partiéndolo en segmentos más
pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo.
Bello Muñoz Edgar Alejandro Ingeniería de Software
Tipos de Software
Existen diferentes clasificaciones de software, la primera que vamos a ver es el tipo
de software según función que cumplen éstos.
En esta primera agrupación podemos encontrar: Software de Sistema, Software de
Aplicación, Software de Programación y Software Malicioso.
Software de Sistema
El llamado software de sistema es el que permite que nuestro hardware funcione de
forma correcta.
Ejemplos de tipos de software de sistema son:
● Microsoft Windows
● Gnu/Linux
● Mac OS
● Android
● iOS
● BlackBerryOS
Dentro de esta categoría podemos encontrar también a los controladores o drivers
que permiten que el hardware interactúe con el software de forma correcta, y haga
que nuestros periféricos funcionen de manera adecuada cuando usas un teclado,
llave USB, el monitor, disco duro externo o impresora Wifi.
Clasificación del Software de Sistema:
● Sistemas operativos Desktop y Móviles
● Controladores de dispositivos o Drivers
● Servidores de Datos
● Utilidades de Sistema (diagnóstico, optimizaciones para acelerar windows,
etc)
● Herramientas de Corrección de Errores
Bello Muñoz Edgar Alejandro Ingeniería de Software
Software de Aplicación o Utilidad
Existe una segunda clase de software llamado software de aplicación, también
conocido como software de utilidad, y se trata de las aplicaciones, programas y
herramientas que utilizamos activamente de acuerdo a nuestras necesidades.
Todas aquellas aplicaciones que usamos a diario como navegador web, cliente de
email, suites ofimáticas como Office, programas de diseño gráfico, mensajería
instantánea o chat como Skype, visor de fotografías, reproductores multimedia
(vídeo y fotografías), un antivirus, antimalware y antispyware, juegos en red, etc.
En el caso del móvil el software de aplicación puede ser WhatsApp, Netflix, Slack,
Twitter, Facebook, apps de predicción de tiempo, juegos móviles, etc.
El software de aplicación en definitiva es el software que fue diseñado para los
usuarios finales de los equipos informáticos o móviles.
Clases de software de aplicación existentes:
● Aplicaciones de Suites Ofimáticas.
● Aplicaciones de Seguridad (antivirus, antimalware, etc).
● Aplicaciones Educativas
● Programas de Diseño
● Software Médico
● Software Contable
● Software de Inventario
● Software de Arquitectura
● Software Administrativo
● Software de Programación
Software de programación
El software de programación es una clase de software básica para la informática y el
desarrollo de aplicaciones.
Las aplicaciones de programación se utilizan para crear más software como el
Software de Sistema o de Aplicaciones.
Los programadores crean software utilizando diferentes programas como editores
de texto, compiladores como GCC, entornos IDE (integrated development
enviroment), gestores de versiones como Git, así como software deservidor
(ejemplo Nginx) para probar sus desarrollos si es necesario. Esto aplica a casi todos
los lenguajes de programación del mundo (C, C++, Python, Ruby, NodeJS, PHP,
ASP.NET, etc).
Bello Muñoz Edgar Alejandro Ingeniería de Software
Gracias al uso de la matemática, la logica y programación, es que los programadores
o desarrolladores de software logran crear fenomenales piezas de software.
Clasificación de los diferentes tipos de software de programación:
Editores de texto: son utilizados por muchos programadores retro para escribir
código limpio y sin ataduras a grandes programas.
Entornos de Desarrollo Integrado (IDE): son conjuntos de herramientas de
programación todo en uno que ayudan a mejorar la productividad en el desarrollo.
Depuradores de código: ayudan al programador a depurar y mejorar el código
eliminando código basura.
Compiladores: que permiten compatibilidad y ejecución del programa en tu sistema
operativo.
Software Malicioso
El software malicioso, también conocido como “Malware” se trata de un tipo de
software que en realidad no está en ninguna categoría anterior, sino que tiene su
propia categoría de tipo de software pues no es software de sistema, ni de
aplicación y menos de programación.
Las aplicaciones maliciosas como los virus son instaladas por sus víctimas sin
éstas saberlo, afectando tanto a equipos hogareños como a redes corporativas
donde generalmente causan daños valuados en millones de dólares ya que se
pierden y borran importantes datos de las empresas. Por ello es que el software
malicioso está directamente relacionado con crímenes y ciberdelitos.
Existen muchas clases de software malicioso englobado bajo el término malware,
por ello intentaremos agruparlos ahora para que conozcas cuáles son.
Tipos de Software Malicioso que podemos encontrar en nuestros equipos
informáticos:
● Virus
● Malware
● Spyware
● Rootkits
● Dialers
● Backdoors
● Troyanos
● Gusanos
● Keyloggers
Bello Muñoz Edgar Alejandro Ingeniería de Software
Glosario
Paradigma
Un paradigma es entendido como el conjunto de conceptos, valores, técnicas y
procedimientos compartidos por una comunidad científica, en un momento histórico
determinado, para definir problemas y buscar soluciones.
Para la Ingeniería de Software el paradigma es una agrupación de métodos,
herramientas y procedimientos con el fin de describir un modelo.
Metodología
La metodología, hace referencia al conjunto de procedimientos racionales utilizados
para alcanzar el objetivo o la gama de objetivos que rige una investigación científica,
una exposición doctrinal o tareas que requieran habilidades, conocimientos o
cuidados específicos.
Las metodologías de desarrollo de software se utilizan en el ámbito de la
programación, entre otros, con el objetivo de trabajar en equipo de manera
organizada. Estas metodologías han ido evolucionando a lo largo del tiempo,
pasando de ser un mero trámite de organización a ser una base importantísima a la
hora de desarrollar software de una manera productiva y eficaz.
Diferencia entre metodología y paradigma:
Toda metodología de investigación se realiza desde una plataforma conceptual,
mientras que un paradigma defina las características del objeto de estudio, en este
sentido es como la metodología y el paradigma se relacionan.
Software:
Se conoce como software, logiciel o soporte lógico al sistema formal de un sistema
informático, que comprende el conjunto de los componentes lógicos necesarios que
hace posible la realización de tareas específicas, en contraposición a los
componentes físicos que son llamados hardware.
Software de base
En terminología informática el software de sistema, denominado también software
de base, consiste en un software que sirve para controlar e interactuar con el
sistema operativo, proporcionando control sobre el hardware y dando soporte a
otros programas; en contraposición del llamado software de aplicación.
Software de aplicación
Bello Muñoz Edgar Alejandro Ingeniería de Software
En informática, un software de aplicación es el término que define cualquier
programa que sea instalado en un ordenador con el fin de realizar las tareas que un
usuario necesite. Un software de aplicación puede ser un editor de texto, una hoja de
cálculo, un reproductor multimedia y otros más.

Continuar navegando