trabajo investigativo no. 03 análisis de sistemas · un modelo de ciclo de vida del software:...

20
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

Upload: phungtuong

Post on 23-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

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