capitulo ii 1. el proceso definimos un proceso de software como un marco de trabajo de las tareas...

16
CAPITULO II

Upload: carmen-aguirre-lopez

Post on 24-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

CAPITULO II

Page 2: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

1. EL PROCESO

definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad. ¿Es «proceso» sinónimo de ingeniería del software? La respuesta es «sí» y «no». Un proceso de software define el enfoque que se toma cuando el software es tratado por la ingeniería. Pero la ingeniería del software también comprende las tecnologías que tiene el proceso -métodos técnicos y herramientas automatizadas-.

Aún más importante es que la ingeniería del software la realizan personas creativas, con conocimiento, que deberían trabajar dentro de un proceso del software definido y avanzado que es apropiado para los productos que construyen y para las demandas de su mercado. La intención de este capítulo es proporcionar un estudio del estado actual del proceso del software y puntualizar sobre el estudio detallado de los temas de gestión y técnicos presentados en este libro.

Page 3: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.CAPAS DE LA INGENIERIA DEL SOFTWARE

El fundamento de la ingeniería del software es la capa de proceso. El proceso de la ingeniería del software es la unión que mantiene juntas las capas de tecnología y que permite un desarrollo racional y oportuno de la ingeniería del software. El proceso define un marco de trabajo para un conjunto de Úreas clave de proceso (ACPs) [PAU93] que se deben establecer para la entrega efectiva de la tecnología de la ingeniería del software. Las áreas claves del proceso forman la base del control de gestión de proyectos del software y establecen el contexto en el que se aplican los métodos técnicos, se obtienen productos del trabajo (modelos,documentos, datos, informes, formularios, etc.), se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente

Page 4: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.1.1. PROCESO, MÉTODOS Y HERRAMIENTAS

Los métodos de la ingeniería del software indican «cómo» construir técnicamente el software. Los métodos abarcan una gran gama de tareas que incluyen anáisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. Los métodos de la ingeniería del software dependen de un conjunto de principios básicos que gobiernan cada área de la tecnología e incluyen actividades de modelado y otras técnicas descriptivas. Las herramientas de la Ingeniería del software pro-porcionan un enfoque automático o semiautomático para el proceso y para los métodos. Cuando se integran herramientas para que la información creada por una herramienta la pueda utilizar otra, se establece un sistema desoporte para el desarrollo del software llamado ingeniería del software asistida por computadora (CASE).

Page 5: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

LAS PRÁCTICAS DE INGENIERÍA DEL SOFTWARE DE UNA COMPAÑÍA Y ESTABLECE CINCO NIVELES DE MADUREZ DEL PROCESO, QUE SE DEFINEN DE LA FORMA SIGUIENTE:

Nivel 1: Inicial. El proceso del software se caracteriza según el caso, y ocasionalmente incluso de forma caótica. Se definen pocos procesos, y el éxito depende del esfuerzo individual.Nivel 2: Repetible. Se establecen los procesos de gestión del proyecto para hacer seguimiento del coste, de la planificación y de la funcionalidad. Para repetir éxitos anteriores en proyectos con aplicaciones similares se aplica la disciplina necesaria para el proceso.Nivel 3: Definido. El proceso del software de las actividades de gestión y de ingeniería se documenta, se estandariza y se integra dentro de un proceso de software de toda una organización. Todos los proyectos utilizan una versión documentada y aprobada del procesode la organización para el desarrollo y mantenimiento del software. En este nivel se incluyen todas las características definidas para el nivel 2.Nivel 4: Gestionado. Se recopilan medidas detalladas del proceso del software y de la calidad del producto. Mediante la utilización de medidas detalladas, se comprenden y se controlan cuantitativamente tanto los productos como el proceso del software. En este nivel se incluyen todas las características definidas para el nivel 3.Nivel 5: Optimización. Mediante una retroalimentación cuantitativa del proceso, ideas y tecnologías innovadoras se posibilita una mejora del proceso. En este nivel se incluyen todas las características definidas para el nivel 4.

Page 6: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.3- MODELOS DEL PROCESO DEL SOFTWARE

Para resolver los problemas reales de una industria, un ingeniero del software o un equipo de ingenieros debe incorporar una estrategia de desarrollo que acompañe al proceso, métodos y capas de herramientas descritos en la Sección 2.1.1 y las fases genéricas discutidas en la Sección 2.1.2. Esta estrategia a menudo se llama modelo de proceso o paradigma de ingeniería del software. Se selecciona un modelo de proceso para la ingeniería del software según la naturaleza del proyecto de la aplicación, los métodos y las herramientas a utilizarse, y los controles y entregas que se requieren. En un documento intrigante sobre la naturaleza del proceso del software, L.B.S. Raccoon [RAC95] utiliza fractales como base de estudio de la verdadera naturaleza del proceso del software completo, las etapas descritas anteriormente se aplican recursivamente a las necesidades del usuario y a la especificación técnica del desarrollador del software.

Page 7: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.4- MODELO LINEAL SECUENCIAL

el modelo lineal secuencial sugiere un enfoque sistemático, secuencial, para el desarrollo del software que comienza en un nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento.

INGENIERIA DE SISTEMAS/ INFORMACION

PRUEBA

DISEÑOCODIG

OANALISISC

Análisis de los requisitos del software. El proceso de reunión de requisitos se intensifica y se centra especialmente en el software. Diseño. El diseño del software es realmente un proceso de muchos pasos que se centra en cuatro atributos distintos de programa: estructura de datos, arquitectura de software, representaciones de interfaz y detalle procedimental (algoritmo). Generación de código. El diseño se debe traducir en una forma legible por la máquina. El paso de generación de código lleva a cabo esta tarea. Pruebas. Una vez que se ha generado el código, comienzan las pruebas del programa. Mantenimiento. El software indudablemente sufrirá cambios después de ser entregado al cliente (una excepción posible es el software empotrado).

Page 8: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.5- EL MODELO DE CONSTRUCCION DE PROTOTIPOS

En la mayoría de los proyectos, el primer sistema construido apenas se puede utilizar. Puede ser demasiado lento, demasiado grande o torpe en su uso, o las tres a la vez. No hay otra alternativa que comenzar de nuevo, aunque nos duela pero es más inteligente, y construir una versión rediseñada en la que se resuelvan estos problemas ... Cuando se utiliza un concepto nuevo de sistema o una tecnología nueva, se tiene que construir un sistema que no sirva y se tenga que tirar, porque incluso la mejor planificación no es omnisciente como para que esté perfecta la primera vez. Por lo tanto la pregunta de la gestión no es si construir un sistema piloto y tirarlo. Tendremos que hacerlo. La Única pregunta es si planificar de antemano construir un desechable, o prometer entregárselo a los clientes.. .

Page 9: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.6- EL MODELO DRAEl Desarrollo Rápido de Aplicaciones (DRA) es un modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto.. Modelado de Gestión. El flujo de información entre las funciones de gestión se modela de forma que responda a las siguientes preguntas: ¿Qué información con-duce el proceso de gestión? ¿Qué información se genera?¿Quién la genera? ¿A dónde va la información? ¿Quién la procesa? El modelado de gestión se describe con másdetalle en el Capítulo 10.Modelado de datos. El flujo de información definido como parte de la fase de modelado de gestión se refina como un conjunto de objetos de datos necesarios paraapoyar la empresa. Se definen las características (llamadas atributos) de cada uno de los objetos y las relaciones entre estos objetos. El modelado de datos se trataen el Capítulo 12.Modelado del proceso. Los objetos de datos definidos en la fase de modelado de datos quedan transformados para lograr el flujo de información necesario paraimplementar una función de gestión. Las descripciones del proceso se crean para añadir, modificar, suprimir, o recuperar un objeto de datos. Pruebas y entrega. Como el proceso DRA enfatiza la reutilización, ya se han comprobado muchos de los componentes de los programas. Esto reduce tiempode pruebas. Sin embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las interfaces a fondo.

Page 10: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

EL MODELO DRA

Page 11: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.7- MODELO EVOLUTIVO DEL PROCESO DEL SOFTWARE2.7.1. El modelo incremental

2.7.2. El modelo espiral

Page 12: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.7.3. El modelo espiral WINWIN(Victoria&Victoria)

2.7.4. El modelo de desarrollo concurrente

Page 13: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.8- DESARROLLO BASADO EN COMPONENTES

El modelo de desarrollo basado en componentes con-duce a la reutilización del software, y la reutilización proporciona beneficios a los ingenieros de software. Según estudios de reutilización, QSM Associates, Inc. informa que el ensamblaje de componentes lleva a una reducción del 70 por 100 de tiempo de ciclo de desarrollo, un 84 por 100 del coste del proyecto y un índice de productividad del 26.2, comparado con la norma de industria del 16.9 [YOU94]. Aunque estos resultados están en función de la robustez de la biblioteca de componentes, no hay duda de que el ensamblaje de componentes proporciona ventajas significativas para los ingenieros de software. El proceso unificado de desarrollo de software

Page 14: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.9-EL MODELO DE METODOS FORMALES

El modelo de métodos formales comprende un conjunto de actividades que conducen a la especificación matemática del software de computadora. Los métodos formales permiten que un ingeniero de software especifique, desarrolle y verifique un sistema basado en computadora aplicando una notación rigurosa y matemática. Algunas organizaciones de desarrollo del software actualmente aplican una variación de este enfoque, llamado ingeniería del software de sala limpia [MIL87,DYE921. software libre de defectos. Sin embargo, se ha hablado de una gran preocupación sobre su aplicabilidad en un entorno de gestión:1. El desarrollo de modelos formales actualmente es bastante caro y lleva mucho tiempo.2. Se requiere un estudio detallado porque pocos responsables del desarrollo de software tienen los antecedentes necesarios para aplicar métodos formales.3. Es difícil utilizar los modelos como un mecanismo de comunicación con clientes que no tienen muchos conocimientos técnicos.

Page 15: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.10- TECNICAS DE CUARTA GENERACION

El término técnicas de cuarta generación (T4G) abarca un amplio espectro de herramientas de software que tienen algo en común: todas facilitan al ingeniero del software la especificación de algunas características del software a alto nivel. Luego, la herramienta genera automáticamente el código fuente basándose en la especificación del técnico. Cada vez parece más evidente que cuanto mayor sea el nivel en el que se especifique el software, más rápido se podrá construir el programa. El paradigma T4G para la ingeniería del software se orienta hacia la posibilidad de especificar el software usando formas de lenguaje especializado o notaciones gráficas que describa el problema que hay que resolver en términos que los entienda el cliente. Actualmente, un entorno para el desarrollo de software que soporte el paradigma T4G puede incluir todas o algunas de las siguientes herramientas: lenguajes no procedimentales de consulta a bases de datos, generación de informes, manejo de datos, interacción y definición de pantallas, generación de códigos, capacidades gráficas de alto nivel y capacidades de hoja de cálculo, y generación automatizada de HTML y lenguajes similares utilizados para la creación de sitios web usando herramientas de software avanzado.

Page 16: CAPITULO II 1. EL PROCESO definimos un proceso de software como un marco de trabajo de las tareas que se requieren para construir software de alta calidad

2.11-TECNOLOGIAS DEL PROCESOLos modelos de procesos tratados en las secciones anteriores se deben adaptar para utilizarse por el equipo del proyecto del software. Para conseguirlo, se han desarrollado herramientas de tecnología de procesos para ayudar a organizaciones de software a analizar los procesos actuales, organizar tareas de trabajo, controlar y supervisar elprogreso y gestionar la calidad técnica [BAN95].

2.12- PRODUCTO Y PROCESOSi el proceso es débil, el producto final va a sufrir indu-dablemente. Aunque una dependencia obsesiva en elproceso también es peligrosa. En un breve ensayo, Mar-garet Davis [DAV95] comenta la dualidad producto yproceso: