Trabajo investigativo No. 03 Análisis de sistemas · Un modelo de ciclo de vida del software:...
-
Upload
phungtuong -
Category
Documents
-
view
222 -
download
0
Transcript of Trabajo investigativo No. 03 Análisis de sistemas · Un modelo de ciclo de vida del software:...
Trabajo investigativo No. 03
Análisis de sistemas
Presentado por:
Camilo Esteban Rodriguez Forero
Andres Mauricio Clavijo
Jhon Alexander Chacon Torres
Brayan Andrés Valero Pinzon
Presentado a:
Juan Carlos Guevara Bolaños
Universidad Distrital Francisco José de Caldas
Sistematización de datos
Facultad Tecnológica
Bogotá D.C. Colombia, jueves 3 de febrero 2016
Tabla de contenido Introducción ........................................................................................................................................ 3
Conceptos. ........................................................................................................................................... 3
Ciclo de vida del software. .............................................................................................................. 3
Modelo De Ciclo De Vida, ................................................................................................................ 3
Proceso de desarrollo de software. ................................................................................................ 4
Ciclo de Vida del Software. ................................................................................................................. 5
Descripción de ISO/IEC 12207-1. ..................................................................................................... 5
Descripción del ISO/IEC 15504-2. ................................................................................................... 9
Descripción del IEEE STD 1074. ..................................................................................................... 11
Describir seis modelos de ciclo de vida de software. ........................................................................ 11
Modelo cascada. ........................................................................................................................... 11
Ventajas. .................................................................................................................................... 12
Desventajas. .............................................................................................................................. 12
Modelo de desarrollo incremental. .............................................................................................. 13
Ventajas. .................................................................................................................................... 13
Desventajas. .............................................................................................................................. 13
Modelo de desarrollo evolutivo. ................................................................................................... 14
Ventajas. .................................................................................................................................... 14
Desventajas. .............................................................................................................................. 15
Modelo espiral. ............................................................................................................................. 15
Ventajas. .................................................................................................................................... 16
Desventajas. .............................................................................................................................. 16
Modelo concurrente. .................................................................................................................... 17
Ventajas. .................................................................................................................................... 17
Desventajas. .............................................................................................................................. 17
Modelo en V. ................................................................................................................................. 18
Ventajas. .................................................................................................................................... 18
Desventajas. .............................................................................................................................. 19
Conclusiones. .................................................................................................................................... 19
Bibliografía. ....................................................................................................................................... 20
Introducción.
En el presente documento de investigación se intentará profundizar a grandes
rasgos el ciclo de vida del software y las ventajas que es posible obtener a partir de
su análisis, planificación, gestión de recursos, documentación y las grandes
desventajas que trae el no tener en cuenta cada una de sus etapas, actividades y
algunos modelos existentes que permiten la realización de los diferentes tipos de
proyectos de software.
Para comprender un poco más el problema del software, es necesario considerar
su ciclo de vida, correspondiente a las diversas etapas por las cuales debe pasar
un proyecto de software, comenzando con la formulación de un problema, seguido
por la especificación de requisitos, análisis, diseño, implementación o codificación,
integración y pruebas del software, después viene una fase operacional durante la
cual se mantiene y actualiza un proyecto.
Conceptos.
Ciclo de vida del software.
El ciclo de vida del software define el estado de las fases en el desarrollo de
software, desde la primera fase conocida como fase inicial hasta su finalización
conocido como fase final y posteriormente hasta que es obsoleto. El ciclo de vida
permite que los errores se detecten lo antes posible y por lo tanto, permite a los
desarrolladores concentrarse en la calidad del software, en los plazos de
implementación y en los costos asociados.
Modelo De Ciclo De Vida,
Un modelo de ciclo de vida de software es una vista de las actividades que ocurren
durante el desarrollo de software, intenta determinar el orden de las etapas
involucradas y los criterios de transición asociadas entre estas etapas.
Un modelo de ciclo de vida del software:
Describe las fases principales de desarrollo de software.
Define las fases primarias esperadas de ser ejecutadas durante esas fases.
Ayuda a administrar el progreso del desarrollo.
Provee un espacio de trabajo para la definición de un detallado proceso de
desarrollo de software.
Así, los modelos por una parte suministran una guía para los ingenieros de software
con el fin de ordenar las diversas actividades técnicas en el proyecto, por otra parte
suministran un marco para la administración del desarrollo y el mantenimiento, en
el sentido en que permiten estimar recursos, definir puntos de control intermedios,
monitorear el avance.
Un modelo de ciclo de vida tiene diversas clasificaciones dependiendo el tipo y la
complejidad de proyecto se escoge el modelo más apropiado.
Proceso de desarrollo de software.
El proceso de desarrollo de software es una estructura que es aplicada al desarrollo
de software. Se puede dividir en varios modelos a seguir para establecer un proceso
sistematizado para un eficiente desarrollo de este; esto significa que es el proceso
que se sigue para la construcción, entrega y evolución del software, desde la
concepción de una idea hasta la entrega y el retiro del sistema.
Durante décadas se ha tratado de conseguir el objetivo de conseguir procesos
reproducibles y predecibles que mejoren la productividad y la calidad del software.
Algunas de estas soluciones pretenden sistematizar o formalizar la que es
considerada frecuentemente desorganizada y ardua tareadel desarrollo de
software. Tiene como propósito la producción eficaz y eficiente de un producto
software que reúna los requisitos del cliente.
Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las
personas involucradas. Aunque un proyecto de desarrollo de software es
equiparable en muchos aspectos a cualquier otro proyecto de ingeniería, en el
desarrollo de software hay una serie de desafíos adicionales, relativos
esencialmente a la naturaleza del producto obtenido.
Ciclo de Vida del Software.
El ciclo de vida del software es un proceso en el cual se definen las fases,
actividades y tareas que serán necesarias para un buen desarrollo, explotación y
mantenimiento de un producto de software. Abarca la vida del sistema desde la
definición de los requisitos hasta la finalización de su uso. El propósito es definir las
distintas fases que se requieren para validar el desarrollo del producto.
Existen dos procesos principales en el ciclo de vida de un software los cuales se
denominan proceso de adquisición y proceso de suministro.
Dentro de estos se encuentran procesos específicos en los cuales se define un
conjunto de actividades según su naturaleza.
1. Proceso de desarrollo I.
2. Proceso de desarrollo ll.
3. Proceso de explotación.
4. Proceso de mantenimiento.
5. Proceso de documentación.
6. Proceso de gestión de configuración.
7. Proceso de aseguramiento de calidad.
8. Proceso de verificación.
9. Proceso de validación.
10. Proceso de revisión conjunta.
11. Proceso de auditoría.
12. Proceso de resolución de problemas.
13. Proceso de gestión.
14. Proceso de mejora.
15. Proceso de formación.
Descripción de ISO/IEC 12207-1.
El ISO/IEC 12207 es el estándar para los procesos de ciclo de vida del software de
la organización ISO.
Este estándar se concibió para aquellos interesados en adquisición de software, así
como desarrolladores y proveedores. El estándar indica una serie de procesos
desde la recopilación de requisitos hasta la culminación del software.
El estándar comprende 17 procesos lo cuales son agrupados en tres
categorías:
Principales.
De apoyo.
De organización.
Este estándar agrupa las actividades que se pueden llevar a cabo durante el ciclo
de vida del software en cinco procesos principales, ocho procesos de apoyo y cuatro
procesos organizativos. Cada proceso del ciclo de vida está divido en un conjunto
de actividades; cada actividad se sub -divide a su vez en un conjunto de tareas.
Proceso de Adquisición: Define las actividades del adquirente, es decir, la
organización que adquiere un sistema, producto software o servicio software.
El proceso contiene las actividades y tareas del adquirente. El proceso comienza
con la identificación de adquirir un producto software. El proceso continúa con la
preparación y publicación de propuestas, la selección de un proveedor y la
gestación del proceso de adquisición hasta la aceptación del producto software.
Este proceso consiste de las siguientes actividades:
a) Inicio.
b) Preparación de la solicitud de propuestas.
c) Preparación y actualización del contrato.
d) Seguimiento del proveedor.
e) Aceptación y finalización.
Proceso de Suministro: Se relaciona con las actividades del proveedor,
organización que proporciona sistema, producto o servicio software al adquirente.
El proceso de suministro contiene las actividades y tareas del proveedor. El proceso
se puede iniciar ya sea por la decisión de preparar una oferta para contestar a una
solicitud de propuestas de un adquiriente, o por la firma e inicio de un contrato con
el adquiriente para proporcionarle un sistema, producto software o servicio software.
El proceso continúa con la determinación de los procedimientos y recursos
necesarios para gestionar y asegurar el proyecto, incluyendo la preparación y
ejecución de los planes del proyecto hasta la entrega al adquirente del sistema,
producto o servicio software.
Este proceso consta de las siguientes actividades:
a) Inicio.
b) Preparación de la respuesta.
c) Contrato.
d) Planificación.
e) Ejecución y control.
f) Revisión y Evaluación.
g) Entrega y finalización.
Proceso de Desarrollo: Define las actividades que tiene que llevar a cabo el
desarrollador, organización que define y desarrolla el producto software.
El proceso de desarrollo contiene las actividades y tareas del desarrollador. El
proceso contiene las actividades para el análisis de los requerimientos, diseño,
codificación, integración, pruebas e instalación y aceptación relacionadas con los
productos software. Puede contener actividades a nivel de sistema si se estipula en
el contrato. El desarrollador lleva a cabo o soporta las actividades de este proceso
de acuerdo con el contrato.
Este proceso consta de las siguientes actividades:
a) Implementación del proceso.
b) Análisis de los requerimientos del sistema.
c) Diseño de la arquitectura del sistema.
d) Análisis de los requerimientos software.
e) Diseño de la arquitectura del software.
f) Diseño detallado del software.
g) Codificación y pruebas del software.
h) Integración del software.
i) Pruebas de calificación del software.
j) Integración del sistema.
k) Pruebas de calificación del sistema.
l) Instalación del software.
m) Apoyo a la aceptación del software.
Proceso de Operación: Define las actividades del operador, organización que
proporciona el servicio, organización que proporciona el servicio de operar un
sistema informático en su entorno real.
Este proceso contiene las tareas del operador. El proceso cubre la operación del
producto software y el apoyo a la operación de los usuarios. Se deben considerar
tanto la operación del producto software integrada a la operación del sistema.
El operado hace uso de otros procesos a nivel de proyecto para llevar a cabo
su función:
El proceso de gestión.
Proceso de infraestructura.
A nivel de organización emplea los siguientes:
El proceso de mejora de procesos.
Y proceso de recursos humanos.
Este proceso consta de las siguientes actividades:
a) Implementación del proceso.
b) Pruebas de operación.
c) Operación del sistema.
d) Soporte de Usuario.
Proceso de Mantenimiento: Define las actividades del responsable de
mantenimiento o la organización que se encarga de esta función; es decir, la gestión
de las modificaciones al producto para mantenerlo actualizado y operativo.
El proceso de mantenimiento contiene las actividades y tareas del responsable de
mantenimiento. Este proceso se inicia cuando el producto software sufre
modificaciones en el código y la documentación asociada, debido a un problema o
a la necesidad de mejora o adaptación. El objetivo es modificar el producto software
existente preservando su integridad. Este proceso incluye la migración y retirada del
producto software. El proceso termina con la retirada del producto software.
El operado hace uso de otros procesos a nivel de proyecto para llevar a cabo
su función:
El proceso de gestión.
Proceso de infraestructura.
A nivel de organización emplea los siguientes:
el proceso de mejora de procesos.
proceso de recursos humanos.
Este proceso consta de las siguientes actividades:
a) Implementación del proceso.
b) Análisis de problemas y modificaciones.
c) Implementación de las modificaciones.
d) Revisión/aceptación del mantenimiento.
e) Migración.
f) Retirada del software.
Descripción del ISO/IEC 15504-2.
ISO / IEC 15504-2: 2003 define los requisitos para la realización de la evaluación
de proceso como base para su uso en la mejora del proceso y determinación de la
capacidad.
Evaluación de proceso se basa en un modelo de dos dimensiones que contiene una
dimensión de proceso y una dimensión de capacidad. La dimensión de proceso es
proporcionada por un modelo de referencia de proceso externo, que define un
conjunto de procesos que se caracterizan por las declaraciones de los resultados
de uso de procesos y procesos. La dimensión de la capacidad consiste en un marco
de medición que comprende seis niveles de capacidad del proceso y sus atributos
de proceso asociados.
La salida de la evaluación consiste en un conjunto de calificaciones de atributos
proceso para cada proceso de evaluación, denominado el perfil de proceso, y
también puede incluir el nivel de capacidad alcanzado por ese proceso.
ISO / IEC 15504-2: 2003 identifica el marco de medición de la capacidad del
proceso y los requisitos para:
La realización de una evaluación.
Modelos de referencia proceso.
Modelos de evaluación de proceso.
La verificación de la conformidad de la evaluación del proceso.
Los requisitos para la evaluación de procesos definidos en la norma ISO / IEC
15504-2: 2003 forma una estructura que:
Facilita la autoevaluación.
Proporciona una base para su uso en la mejora de procesos y la determinación
de la capacidad.
Tiene en cuenta el contexto en el que se implementa el proceso de evaluar.
Produce una calificación de proceso.
Aborda la capacidad del proceso para lograr su propósito.
Es aplicable en todos los dominios de aplicación y tamaños de organización.
Puede proporcionar un punto de referencia objetiva entre organizaciones.
El conjunto mínimo de requisitos definidos en la norma ISO / IEC 15504-2: 2003
garantiza que los resultados de la evaluación son objetiva, imparcial, consistente,
repetible y representante de los procesos evaluados.
Descripción del IEEE STD 1074.
IEEE STD 1074. Esta norma define el conjunto de actividades que constituyen los
procesos que son obligatorios para el desarrollo y mantenimiento de software. Los
procesos de gestión y de apoyo que continúan a lo largo de todo el ciclo de vida,
así como todos los aspectos del ciclo de vida del software desde el concepto de
exploración a través de la jubilación, están cubiertos. También se proporciona
entrada asociada y la información de salida. Utilización de los procesos y sus
actividades componentes maximiza los beneficios para el usuario cuando se inicia
el uso de esta norma al principio del ciclo de vida del software. Esta norma requiere
definición de ciclo de vida del software del usuario y muestra su mapeo en los ciclos
de vida del software típicos. No se pretende definir o implica un ciclo de vida del
software propio.
Describir seis modelos de ciclo de vida de software.
Modelo cascada.
Es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida
del software, de tal forma que el inicio de cada etapa debe esperar a la finalización
de la inmediatamente anterior.
Ventajas.
No hace falta mencionar, es un modelo lineal y, por supuesto, los modelos
lineales son las más simples a ser implementadas.
La cantidad de recursos necesarios para implementar este modelo es mínimo.
Una gran ventaja del modelo de cascada es que la documentación se produce
en cada etapa del desarrollo del modelo de cascada. Esto hace que la
comprensión del producto diseñar procedimiento más sencillo.
Después de cada etapa importante de la codificación de software, las pruebas
se realizan para comprobar el correcto funcionamiento del código.
Realiza un buen funcionamiento en equipos débiles y productos maduros, por lo
que se requiere de menos capital y herramientas para hacerlo funcionar de
manera óptima.
Es un modelo fácil de implementar y entender.
Está orientado a documentos.
Es un modelo conocido y utilizado con frecuencia.
Promueve una metodología de trabajo efectiva: Definir antes que diseñar,
diseñar antes que codificar.
Desventajas.
En la vida real, un proyecto rara vez sigue una secuencia lineal, esto crea una
mala implementación del modelo, lo cual hace que lo lleve al fracaso.
El 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. Esto
es la base para que funcione bien.
Cualquier error de diseño detectado en la etapa de prueba conduce
necesariamente al rediseño y nueva programación del código afectado,
aumentando los costos del desarrollo.
Una etapa determinada del proyecto no se puede llevar a cabo a menos de que
se haya culminado la etapa anterior.
Modelo de desarrollo incremental.
El enfoque incremental de desarrollo como una forma de reducir la repetición del
trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de
decisiones en los requisitos hasta adquirir experiencia con el sistema.
Ventajas.
Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que
se implementa la funcionalidad parcial.
También provee un impacto ventajoso frente al cliente, que es la entrega
temprana de partes operativas del Software.
El modelo proporciona todas las ventajas del modelo en cascada realimentado,
reduciendo sus desventajas sólo al ámbito de cada incremento.
Permite entregar al cliente un producto más rápido en comparación del modelo
de cascada.
Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
Por su versatilidad requiere de una planeación cuidadosa tanto a nivel
administrativo como técnico.
Desventajas.
El modelo Incremental no es recomendable para casos de sistemas de tiempo
real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice
de riesgos.
Requiere de mucha planeación, tanto administrativa como técnica.
Requiere de metas claras para conocer el estado del proyecto.
Se necesitan pruebas de regresión y su coste puede aumentar.
Modelo de desarrollo 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.
Ventajas.
La especificación puede desarrollarse de forma creciente.
Los usuarios y desarrolladores logran un mejor entendimiento del sistema.
Esto se refleja en una mejora de la calidad del software.
Es más efectivo que el modelo de cascada, ya que cumple con las necesidades
inmediatas del cliente.
Desventajas.
Proceso no Visible: Los administradores necesitan entregas para medir el
progreso. Si el sistema se necesita desarrollar rápido, no es efectivo producir
documentos que reflejen cada versión del sistema.
Sistemas pobremente estructurados: Los cambios continuos pueden ser
perjudiciales para la estructura del software haciendo costoso el mantenimiento.
Se requieren técnicas y herramientas: Para el rápido desarrollo se necesitan
herramientas que pueden ser incompatibles con otras o que poca gente sabe
utilizar.
Modelo espiral.
Es un modelo de proceso de software evolutivo que conjuga la naturaleza iterativa
de construcción de prototipos con los aspectos controlados y sistemáticos del
modelo lineal secuencial. Proporciona el potencial para el desarrollo rápido de
versiones incrementales del software. En el modelo espiral, el software se desarrolla
en una serie de versiones incrementales.
.
Ventajas.
El desarrollo repetida o continua ayuda en la gestión de riesgos. Los
desarrolladores o programadores describir las características de alta prioridad y
luego desarrollar un prototipo basado en los mismos. Cambios Este prototipo se
prueba y se desea se realizan en el nuevo sistema. Este enfoque continuo y
constante minimiza los riesgos o fallos asociados con el cambio en el sistema.
La adaptabilidad en el diseño del modelo de espiral en la ingeniería de software
se adapta a cualquier número de cambios, que pueden ocurrir durante cualquier
fase del proyecto.
Dado que la construcción de prototipos se realiza en pequeños fragmentos o
trozos, estimación de costos se convierte en fácil y el cliente puede obtener el
control sobre la administración del nuevo sistema.
Dado que el modelo continúa hacia la fase final, la experiencia del cliente en el
nuevo sistema crece, lo que permite buen desarrollo de las necesidades del
cliente reunion del producto.
Desventajas.
Los modelos en espiral funcionan mejor para los grandes proyectos solamente,
donde los costos son mucho más altos y los requisitos del sistema de pre implica
un mayor nivel de complejidad.
El modelo de espiral las necesidades de cualificación en la evaluación de una
amplia incertidumbres o riesgos asociados con el proyecto y su reducción.
Los modelos espiral trabajar en un protocolo, que debe ser seguido
estrictamente para su buen funcionamiento. A veces se hace difícil seguir el
siguiente protocolo.
La evaluación de los riesgos involucrados en el proyecto pueden disparar el
costo y puede ser mayor que el costo de la construcción del sistema.
No es un requisito para una explicación más detallada de los pasos involucrados
en el proyecto, como avance, el plan, los puestos de control y el procedimiento
estándar.
Modelo concurrente.
Es un modelo de tipo de red donde todas las personas actúan simultáneamente o
al mismo tiempo desarrollando una serie de actividades técnicas importantes, tareas
y estados asociados a ellas.
Ventajas.
Excelente para proyectos en los que se conforman grupos de trabajo
independientes.
Proporciona una imagen exacta del estado actual de un proyecto.
Desventajas.
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 V.
Define un procedimiento uniforme para el desarrollo de productos para las TIC. Es
un método de gestión de proyectos y describe tanto métodos para la gestión como
para el desarrollo de sistemas.
Ventajas.
El modelo en V hace más explícita la tarea parte de la iteración de las actividades
del proceso.
Las pruebas de cada fase ayudarán a corregir posibles errores sin tener que
esperar a que sean rectificados en la etapa final del proceso.
Con las pruebas unitarias y de integración se consigue obtener exactitud en los
programas.
Específica bien los roles de los distintos tipos de pruebas a realizar.
Hace explícito parte de la iteración y trabajo que hay que realizar.
Este método involucra chequeos de cada una de las etapas del método
Cascada.
Es un método más robusto y completo que el método cascada y produce
software de mayor calidad que con el modelo cascada.
Es un modelo sencillo de y de fácil aprendizaje.
Involucra al usuario en las pruebas.
Desventajas.
Es difícil que el cliente exponga explícitamente todos los requisitos.
El cliente debe tener paciencia, ya que obtendrá el producto al final del ciclo de
vida.
El modelo no contempla la posibilidad de retornara etapas inmediatamente
anteriores, cosa que en la realidad puede ocurrir.
Se pierde dinero, ya que si algún proceso fue mal desarrollado, este debe ser
revisado de nuevo, lo que puede traer como consecuencia un "RollBack" de todo
un proceso.
Las pruebas pueden ser caras y aveces no lo suficientemente efectivas.
Conclusiones.
Para desarrollar un proyecto un software es necesario contar con una metodología
de desarrollo, ya que estas metodologías son las que nos guiarán durante el
proceso de desarrollo del proyecto. y todas ellas son de suma importancia, ya que
cada una de estas tiene sus características, como ventajas y desventajas una frente
a la otra, además estas metodologías no son la única herramienta, ya que se cuenta
con estándares como los ISO/IEC e IEEE. Estos estándares permiten observar la
vida que tiene el software y/o los requerimientos que debe tener un software tanto
para su desarrollo como para poder verificar su calidad.
Sin embargo, todas estas metodologías son un camino el cual el ingeniero puede
tomar ¿pero como saber que metodología es la indicada? esto solo se puede
determinar analizando cual es la prioridad del proyecto de software ó analizando
cuál metodología puede dar más comodidad al equipo de trabajo que realizará el
proceso de desarrollo.
Bibliografía.
http://quecomputadoracomprar.com/ventajas-y-desventajas-modelo-cascada/
https://es.wikipedia.org/wiki/Desarrollo_en_cascada#Variantes
http://ingenieraupoliana.blogspot.com.co/2010/10/modelo-incremental.html
http://jorgetrejos.blogspot.com.co/2010/08/modelo-evolutivo.html
http://quecomputadoracomprar.com/ventajas-y-desventajas-del-modelo-en-espiral/
http://ingenieraupoliana.blogspot.com.co/2010/10/modelo-de-desarrollo-
concurrente.html
http://ingsoftwarejurado.blogspot.com.co/2012/09/modelo-en-v-desarrollo-de-
software.html
https://ingsoft2euh.wordpress.com/2012/09/16/modelo-en-v-ventajas-y-
desventajas/
https://procesosoftware.wikispaces.com/Modelo+Incremental
http://es.slideshare.net/juanksi28/modelo-cascada-y-espiral
http://asignaturasunimetaingeluzespita.bligoo.com/media/users/22/1135477/files/3
03935/Modelo_de_desarrollo_concurrente.pdf
http://ingenieriadesoftware.mex.tl/61885_Modelo-V.html