Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingenieria de Software
Ingenieria de Software
INGENIERIA DE SOFTWARE
Prof. Nerio Garcia Gollarza
SECCIÓN: IC1031
INTEGRANTES
INTRODUCCION
¿Cuáles son los usos de la ingeniería de software?
La ingeniería de software se basa en la aplicación de un enfoque sistemático, el cual se
disciplina en un medio cuantificable de desarrollo, mantenimiento y operación funcional de
un software. Para el desarrollo de los medios de programación se crean diagramas de
flujo y estructuras donde el funcionamiento de los mismos se explica para poder definir las
funciones en la aplicación. A pesar de que la principal función de la ingeniería de software
es crear soluciones con sistemas de cómputo, algunas veces la solución a un problema o
a las necesidades del usuario son más imples; un ejemplo puede ser, una base de datos
para negocio que cuenta sólo con un equipo de cómputo, el ingeniero en software puede
ayudar al cliente a encontrar la solución al registro de sus productos o a su contabilidad,
sin crear un gran sistema.
Para el desarrollo de cualquier producto de software se realizan una serie de tareas entre
la idea inicial y el producto final, un modelo de desarrollo establece el orden en el que se
harán las cosas en el proyecto, provee de requisitos de entrada y de salida para cada una
de las actividades, por ello es necesario el modelo de desarrollo.
MODELO CASCADA
Llamado también Lineal secuencial. Proporciona una simple visión del desarrollo del
Software. A los procesos los representa como fases separadas y secuenciales en tiempo.
Cada etapa produce documentos que son la entrada a la siguiente, para desarrollar una
etapa debe concluirse la anterior.
Ventajas:
Planificación sencilla.
Una plantilla estructurada para ingeniería de software.
Disminuye el efecto bola de nieve al reducir el mantenimiento considerando
que se tienen unas especificaciones completas y correctas.
La cantidad de recursos necesarios para implementar este modelo es mínimo.
La documentación se produce en cada etapa del desarrollo del modelo de
cascada.
• Desventajas:
proceso de creación del software tarda mucho tiempo ya que debe pasar por el
proceso de prueba y hasta que el software no esté completo no se opera.
MODELO DE ESPIRAL.
Ventajas.
Desventajas.
Características
5. Pruebas y entrega: prueba de los componentes y entrega del programa que realiza
una función de gestión.
La clave del modelo RAD está en los cambios en las etapas de codificación y
pruebas:
Ventajas:
Desventajas:
MODELO DE DESARROLLO XP
Características
Valores de XP
• Respeto: El equipo debe trabajar como uno, sin hacer decisiones repentinas.
Ventajas
Programación organizada.
Menor taza de errores.
Versiones nuevas
Implementa una forma de trabajo donde se adapte fácilmente a las circunstancias.
Desventajas
MODELO EVOLUTIVO
Los evolutivos son modelos iterativos, permiten desarrollar versiones cada vez más
completas y complejas, hasta llegar al objetivo final deseado; incluso evolucionar más
allá, durante la fase de operación. Los modelos “Iterativo Incremental” y “Espiral” (entre
otros) son dos de los más conocidos y utilizados del tipo evolutivo.
La idea detrás de este modelo es el desarrollo de una implantación del sistema inicial,
exponerla a los comentarios del usuario, refinarla en N versiones hasta que se desarrolle
el sistema adecuado
Existen dos tipos de desarrollo evolutivo:
Ventajas
Es más efectivo que el modelo de cascada, ya que cumple con las necesidades
inmediatas del cliente.
Desventajas
Código
Prueba
Características:
Se evitan proyectos largos y se entrega "algo de valor" a los usuarios con cierta
frecuencia.
El usuario se involucra más.
Ventajas:
Desventajas:
MODELO DE PROTOTIPO
Además el prototipo debe ser construido en poco tiempo, usando los programas
adecuados y no se debe utilizar mucho dinero pues a partir de que este sea aprobado
nosotros podemos iniciar el verdadero desarrollo del software. Pero eso si al construir el
prototipo nos asegura que nuestro software sea de mejor calidad, además de que su
interfaz sea de agrado para el usuario. Un prototipo podrá ser construido solo si con el
software es posible experimentar.
Etapas
Producto de Ingeniería
Tipos de prototipos .
El desechable: nos sirve para eliminar dudas sobre lo que realmente quiere el
cliente además para desarrollar la interfaz que más le convenga al cliente.
El evolucionario: es un modelo parcialmente construido que puede pasar de ser
prototipo a ser software pero no tiene una buena documentación y calidad.
Ventajas
No modifica el flujo del ciclo de vida
Reduce el riesgo de construir productos que no satisfagan las necesidades de los
usuarios
Este modelo es útil cuando el cliente conoce los objetivos generales para el
software, pero no identifica los requisitos detallados de entrada, procesamiento o
salida.
Desventajas
Debido a que el usuario ve que el prototipo funciona piensa que este es el
producto terminado y no entienden que recién se va a desarrollar el software.
El desarrollador puede caer en la tentación de ampliar el prototipo para construir el
sistema final sin tener en cuenta los compromisos de calidad y mantenimiento que
tiene con el cliente
Características:
• Se puede expresar de manera esquematizada
• Las actividades llevan procesos concurrentes
• Es aplicable a todo tipo de desarrollo de software
• Es un módulo aplicable para cliente soñador
• Está dirigido por las necesidades del usuario
• es aplicable al cliente servidor
Ventajas
Ventajas:
1. Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización de
software.
2. Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de
los componentes antes de probar el conjunto completo de componentes ensamblados.
3. Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre
componentes, el desabollador es libre de actualizar y/o agregar componentes según sea
necesario, sin afectar otras partes del sistema.
4. Mayor calidad. Dado que un componente puede ser construido y luego mejorado
continuamente por un experto u organización, la calidad de una aplicación basada en
componentes mejorará con el paso del tiempo
Desventajas
Los “compromisos” en los requisitos son inevitables, por lo cual puede que el
software no cumpla las expectativas del cliente.
•Las actualizaciones de los componentes adquiridos no están en manos de los
desarrolladores del sistema.
Si no se dan las condiciones señaladas no es aplicable
Si no existen grupos de trabajo no se puede trabajar en este método
Modelo en cascada
Hay veces que los requerimientos para cierto problema se comprenden bien: cuando el
trabajo desde la comunicación hasta el despliegue fluye en forma razonablemente lineal.
Esta situación se encuentra en ocasiones cuando deben hacerse adaptaciones o mejoras
bien definidas a un sistema ya existente (por ejemplo a un sistema de contabilidad que es
obligatorio hacer debido a cambios en las regulaciones gubernamentales).
El modelo incremental combina elementos de los flujos de proceso lineal y paralelo. este
modelo incremental aplica secuencias lineales en forma escalonada a medida que avanza
el calendario de actividades, cada secuencia lineal produce incrementos de software
susceptibles de entregarse de manera paralela a los incrementos producidos en el flujo
del proceso evolutivo, cuando se utiliza el modelo incremental, es frecuente que el primer
incremento sea el producto fundamental, es decir, se abordan los requerimientos básicos,
pero no se proporcionan muchas características suplementarias (algunas conocidas y
otras no). El cliente usa el producto fundamental (o lo somete a una evaluación detallada).
Como resultado del uso y/o evaluación, se desarrolla un plan para el incremento que
sigue. El plan incluye la modificación del producto fundamental para cumplir mejor las
necesidades del cliente, así como la entrega de características adicionales y más
funcionalidades. Este proceso se repite después de entregar cada incremento, hasta
terminar el producto final.
Tipos de mantenimiento
Consiste en evaluar las diferentes alternativas que se plantean teniendo en cuenta los
objetivos a conseguir y las restricciones impuestas. Frecuentemente, este paso identifica
las áreas de incertidumbre del proyecto con sus correspondientes riesgos. Es el estudio
de las causas de las posibles amenazas y probables eventos no deseados y los daños y
consecuencias que éstas puedan producir.
Si existen riesgos, lo siguiente es la formulación de una estrategia efectiva en coste
(utilizando prototipos, simulación, bancos de prueba, cuestionario para los usuarios,
modelización analítica o combinaciones de éstas y otras técnicas de resolución de
riesgos) para resolver dichos riesgos.
El método CPM o Ruta Crítica (equivalente a la sigla en inglés Critical Path Method) es
frecuentemente utilizado en el desarrollo y control de proyectos. El objetivo principal es
determinar la duración de un proyecto, entendiendo éste como una secuencia de
actividades relacionadas entre sí, donde cada una de las actividades tiene una duración
estimada.
Una ruta es una trayectoria desde el inicio hasta el final de un proyecto. En este sentido,
la longitud de la ruta crítica es igual a la la trayectoria más grande del proyecto. Cabe
destacar que la duración de un proyecto es igual a la ruta crítica.
Etapas de CPM
Ventajas cpm
3. Identifica los elementos (segmentos) más críticos del plan, en que problemas
potenciales puedan perjudicar el cumplimiento del programa propuesto.
4. Ofrece la posibilidad de simular los efectos de las decisiones alternativas o
situaciones imprevistas y una oportunidad para estudiar sus consecuencias en
relación a los plazos de cumplimiento de los programas.
El CPM fue desarrollado para el complejo pero los proyectos bastante rutinarios con
incertidumbre mínima en los tiempos de la terminación del proyecto. Para menos
proyectos de la rutina hay más incertidumbre en los tiempos de la terminación, y límites
de esta incertidumbre la utilidad del modelo determinista del CPM. Una alternativa al CPM
es el modelo del planeamiento del proyecto del PERT, que permite que una gama de
duraciones sea especificada para cada actividad.
MODELO DE GANTT
Básicamente el diagrama está compuesto por un eje vertical donde se establecen las
actividades que constituyen el trabajo que se va a ejecutar, y un eje horizontal que
muestra en un calendario la duración de cada una de ellas.
Características
Cada actividad se representa mediante un bloque rectangular cuya longitud
indica su duración; la altura carece de significado.
La posición de cada bloque en el diagrama indica los instantes de inicio y
finalización de las tareas a que corresponden.
Los bloques correspondientes a tareas del camino crítico acostumbran a
rellenarse en otro color
Ventajas
* Su construcción no requiere de gran planificación.
* Resultan muy eficaces en las etapas iniciales de la planificación.
* Son adecuados para la planificación de actividades relativamente simples.
Representa un instrumento de bajo costo y extrema simplicidad en su utilización
Desventajas
* No permite optimizar el desarrollo de un programa.
* Después de iniciada la ejecución de la actividad y cuando comienza a efectuarse
modificaciones, el gráfico tiende a volverse confuso.
SWEBOK
Requisitos: Interpreta las necesidades del cliente en una lista de objetivos a cumplir,
cada uno se puede trasformar en un subsistema o sólo en una funcionalidad, si los
requisitos no son interpretados correctamente, el sistema sufrirá consecuencias graves en
el desarrollo y mantenimiento.
Diseño: Define la arquitectura, interfaces, diagramas de flujo, entre otros del sistema; en
esta etapa se analizan los requerimientos y se crean posibles soluciones gráficas a cada
uno.
Pruebas: Evalúa la eficiencia y calidad del producto detectando las posibles mejoras o
fallas.
Gestión del proceso: Valida todas las etapas del proceso, como las tareas que
componen el proceso, funciones, mediciones, configuración, mantenimiento, entre otros.
Herramientas y proceso de ingeniería: son todos los recursos virtuales que nos ayudan
a realizar tareas exhaustivas como, validar el producto, crear el diseño, realizar pruebas,
detectar fallas, entre otros; pero es importante saber que estas herramientas sólo
interpretan el resultado de la información que brindamos, si la información es errónea, el
resultado puede llevarnos a una mala decisión.
CONCLUSION
La ingeniería del software se desarrolló para poder solucionar problemas en la creación
de aplicación y creaciones de piezas de software especializadas. Gracias a que cuenta
con varios elementos de desarrollo e investigación sobre los paradigmas, se pueden
determinar nuevas formas de perfeccionamiento de aplicaciones mejorando la calidad de
éstos y el tiempo en que se crean y se distribuyen a los usuarios. Cuando la ingeniería de
software no se utiliza correctamente pueden omitirse varios de los principales elementos y
los paradigmas de programación, estos pueden aplicarse a cualquier lenguaje de
programación, ya sea para el desarrollo de animaciones mediante scripts de audio, de
movimiento o con elementos más robustos como composición de código en un sistema
operativo para una computadora, o el desarrollo de aplicaciones que hagan manejo de
elementos multimedia que requieren de codificación y decodificación.