Sie sind auf Seite 1von 83

INTRODUCCIN A LA INGENIERA DEL SOFTWARE

F.Javier Zarazaga Soria Javier Nogueras Iso Ingeniera del Software I


febrero 2.008

Departamento de Informtica e Ingeniera en Sistemas

ndice
Introduccin y conceptos bsicos El ciclo de vida Herramientas CASE

INTRODUCCIN A LA INGENIERA DEL SOFTWARE


Introduccin y Conceptos Bsicos

F.Javier Zarazaga Soria Javier Nogueras Iso Ingeniera del Software I

Departamento de Informtica e Ingeniera en Sistemas

Intr. y conceptos bsicos. ndice


Historia del software Caractersticas especiales del software Crisis del software e Ingeniera del software Mitos del software La industria del software Sistemas de informacin El analista de sistemas Estandarizacin del desarrollo del software Introduccin a Mtrica 2

Breve sinopsis de la historia del SW (I)


1 generacin del software
???? - 1965 Hardware de propsito general Software como algo aadido Desarrollo a medida Ninguna planificacin Orientacin por lotes

2 generacin del software


1965 - 1975 Sistemas multiusuario Interactividad (Tiempo Real) Almacenamiento y bases de datos La industria del software Software de gran volumen Mantenimiento

Breve sinopsis de la historia del SW (II)


3 generacin del software
1975 - 1990 Microprocesadores, PCs y sistemas distribuidos Hardware de bajo coste Industria planetaria

4 generacin del software


1990 - ???? Tecnologas Orientadas a Objeto Interfaces grficas de usuario Sistemas expertos Proceso paralelo Tecnologas de componentes COTS (Commercial OffThe-Shelf ) Internet y Servicios Web

Terminologa habitual en el software


Bug:
Chinche, bicho, microbio Fastidiar, molestar

Patch:
Parche, remiendo, zurcido

Desfase de presupuesto
Costes por encima de lo previsto

Retrasos en entregas
No cumplimiento de plazos

Mantenimiento
Rehacer la aplicacin aadiendo nuevas posibilidades y mejorando las existentes

Crticas a las aplicaciones Software


Retrasos no previstos Desbordamiento de costes Software no acorde con los requisitos Errores en los programas Sensibilidad a los errores humanos y a las averas fsicas Dificultad de puesta en marcha Dificultad de evolucin Mantenimiento ruinoso

Coste de Mantenimiento del Software


Desarrollo 35-40% Mantenimiento

1970
Desarrollo 40-60% Mantenimiento

1980

Desarrollo

Mantenimiento 40-60%

1990

La complejidad del Software (I)

La complejidad del software es una propiedad esencial, no una propiedad accidental

10

La complejidad del Software (II)


Motivos que llevan a que el software sea complejo
Complejidad del dominio del problema Imagen que del dominio del problema tiene el cliente Imagen que del dominio del problema tiene el desarrollador El dominio del problema en si La dificultad de la gestin del proceso de desarrollo La flexibilidad del desarrollo software Necesidad de grandes labores de abstraccin Falta de estndares Problemas en la caracterizacin del comportamiento de sistemas discretos Gran volumen de variables Interacciones entre las mismas

11

Peculiaridades del Software


El producto software es enteramente conceptual. No tiene propiedades fsicas como peso, color o voltaje, y, en consecuencia no est sujeto a leyes fsicas o elctricas. Su naturaleza conceptual crea una distancia intelectual entre el software y el problema que el software resuelve. Difcil para una persona que entiende el problema entender el sistema software que lo resuelve. Para probar es necesario disponer de un sistema fsico. El mantenimiento no es slo una substitucin de componentes.

12

Fallos en Hardware vs fallos en Software


n de fallos

El software se degrada con el tiempo


edad

Hardware

n de fallos

cambios n de fallos edad

Software (terico)

Software (real)
edad

13

Caractersticas de un buen software


Correccin. Completitud. Concisin. Robustez Fiabilidad. Eficiencia. Integridad. Facilidad de uso. Facilidad de mantenimiento. Facilidad de traza. Generalidad. Modularidad. Flexibilidad. Facilidad de prueba. Portabilidad. Facilidad de reuso. Interoperabilidad. Facilidad de auditora. Exactitud y precisin de clculos. Consistencia. Estandarizacin de los datos. Independencia del Hardware. Legibilidad.

14

Origen de la Ingeniera del Software


Aunque no hay consenso, el origen del trmino se atribuye a dos conferencias organizadas por la OTAN en 1967 y 1968. Ambas conferencias fueron convocadas para tratar la llamada crisis del software. La llamada crisis del software es todava hoy un problema no resuelto.

15

Crisis del software (I)


Primera Fase. Los albores (1945-1955)
Programar no es una tarea diferenciada del diseo de una mquina. Uso de lenguaje mquina y ensamblador.

Segunda Fase. El florecimiento (1955-1965)


Aparecen multitud de lenguajes. Era posible hacer de todo.

Tercera Fase. La crisis (1965-1970).


Desarrollo inacabable de grandes programas. Ineficiencia, errores, coste impredecible. Nada es posible.

16

Crisis del software (II)


Cuarta Fase. Innovacin conceptual 1980)
Fundamentos de programacin. Verificacin de programas. Metodologas de diseo.

(1970-

Quinta Fase. El diseo es el problema (1980????)


Entornos de programacin. Especificacin formal. Programacin automtica.

17

Qu es la Ingeniera del Software?


El IEEE define:
Ingeniera es la aplicacin de un mtodo sistemtico, estructurado y cuantificable a estructuras, mquinas, productos, sistemas o procesos. Ingeniera del software es la aplicacin de un mtodo sistemtico, estructurado y cuantificable al desarrollo, operacin y mantenimiento de software.

Bauer, 1972
La IS es el establecimiento y uso de slidos principios de ingeniera y buenas prcticas de gestin, as como la evolucin de herramientas y mtodos aplicables y su uso cuando sea apropiado para obtener, dentro de las limitaciones de recursos existentes, software que sea de alta calidad en un sentido explcitamente definido.
F.L.Bauer. Software Engineering, Information Processing, 71, North Holland Publishing Co., Amsterdam 1972.

18

Comparacin con otras ingenieras


Ingeniera mecnica como buscar un gato negro en una habitacin iluminada. Ingeniera qumica como buscar un gato negro en una habitacin oscura. Ingeniera software como buscar un gato negro en una habitacin oscura donde no hay ningn gato. Ingeniera de sistemas como buscar un gato negro en una habitacin oscura donde no hay gato y alguien dice !!!lo encontr!!!.

19

Desarrollo de Software sin Ingeniera


Especificacin de Requerimientos

?
Producto Software

Existencia de un vaco de informacin entre la especificacin del producto software y su entrega. El producto surge espontneamente despus de un largo periodo de oscuridad Qu pasa si alguien se va a mitad de un proyecto? y si se va todo un equipo?

20

Ingeniera del SW - Anlisis de problemas


Actividad dirigida a la solucin de problemas Anlisis:
Comprender la naturaleza del problema (descomponerlo)
Problema

Subproblemas

21

Ingeniera del SW - Sntesis de problemas


Sntesis:
Unir las soluciones parciales componiendo una estructura de mayor tamao
Soluciones parciales

Solucin

22

Objetivos de la Ingeniera del Software


La ingeniera del software persigue la produccin de sistemas de calidad a bajo coste y a tiempo
Sistemas de calidad La calidad de un sistema viene definida por el cumplimiento de los objetivos establecidos para el sistema Bajo coste El coste de un sistema debe incluir tanto el coste de desarrollo como el de mantenimiento

A tiempo En unos plazos preestablecidos y que vienen garantizados por el establecimiento de una secuencia de actividades a llevar a cabo

23

Definicin de Ingeniera del Software


Tcnicas, Metodologas y Herramientas
que ayudan a la produccin de un software de alta calidad, con un determinado presupuesto y antes de una determinada fecha

24

Ingeniera del Software vs Informtica


Computer Scientist
Proves theorems about algorithms, designs languages, defines knowledge representation schemes Has infinite time

Engineer
Develops a solution for an application-specific problem for a client Uses computers & languages, tools, techniques and methods

Software Engineer
Works in multiple application domains Has only 3 months... while changes occurs in requirements and available technology

25

Ingeniera del Software - Terminologa


Tcnica (Mtodo):
Procedimiento formal para obtener resultados utilizando alguna notacin bien especificada

Metodologa:
Coleccin de mtodos aplicados a lo largo del ciclo de vida del software y unificados mediante alguna aproximacin filosfica genrica

Herramienta
Instrumento, o sistema automatizado, utilizado para poner en prctica un mtodo

26

Mtodos o Tcnicas
Modelado del comportamiento haciendo uso de los diagramas de estado Diagramas de Flujo de Datos

Entrevistas

Modelado de datos mediante el uso del modelo Entidad-Relacin (o Entidad Asociacin)

Modelado de sistemas mediante los diagramas de clases propuestos por BOOCH

Tcnicas matriciales

27

Metodologas (I)
MERISE Metodologa pblica francesa SSADM Metodologa pblica britnica

MTRICA 2 Metodologa pblica espaola

METHOD 1 Metodologa de Andersen Consulting

SUMMIT-D Metodologa de Coopers & Lybrand

28

Metodologas (II)
Metodologas estructuradas
Basadas en tcnicas estructuradas Algunos ejemplos: Gane-Sarson Yourdon/DeMarco Mtrica 2

Metodologas Orientadas a Objeto


Basadas en tcnicas orientadas a objeto Algunos ejemplos: OMT Booch Mtrica 3

29

Herramientas
Hojas de Clculo Bases de Datos Rational Rose System Achytect Procesadores de Texto

Easy Case

Object Oriented Tool

30

Mitos del SW. El gestor


Ya hay estndares y procedimientos. No tiene ya bastante el equipo? Tenemos las herramientas de desarrollo ms avanzadas porque compramos los ordenadores ms modernos. Si fallamos en la planificacin, aadimos ms gente y sanseacab.

31

Mitos del SW. El cliente


Una declaracin inicial de objetivos es suficiente para empezar a escribir programas. Ya detallaremos ms adelante. Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fcilmente porque el software es flexible. La labor del desarrollador consiste NICAMENTE en escribir lneas de cdigo fuente.

32

Mitos del SW. El desarrollador


Una vez que escribimos el programa y hacemos que funcione, se acab el trabajo. No podemos comprobar la calidad hasta que se ejecute el programa. Lo que se entrega al terminar el proyecto es el programa funcionando

33

La industria del Software

El software es una industria,...

... no es un arte.

34

Importancia de la Ingeniera del Software


La economa de todos los pases desarrollados depende del software, representando cada vez un mayor porcentaje de su PIB. Cada vez son ms los sistemas controlados por software. Los costes del software llegan, en ocasiones, a dominar los costes de todo el sistema.

35

Tipos de productos software


Genricos. Sistemas autnomos desarrollados por una organizacin y puestos en el mercado para cualquier cliente. Software a medida (especializado). Sistemas pensados para un cliente especfico y desarrollados especficamente por alguna organizacin contratada a tal efecto. Sistemas genricos adaptados a clientes especficos.

La mayor parte del volumen de facturacin es de software genrico (Microsoft), sin embargo el mayor nmero de ingenieros se encuentran trabajando en software a medida o adaptando software genrico (SAP R3, Meta4).

36

Sistemas de Informacin (I)


Sistema
Conjunto de componentes que interaccionan entre s para lograr un objetivo comn. Ejemplos: el sistema nervioso, el sistema econmico. Un sistema puede estar compuesto por varios niveles de sistemas, tambin denominados subsistemas.

Sistemas de Informacin
Es un sistema cuyo objetivo principal es el procesamiento de informacin. La finalidad de los sistemas de informacin es procesar entradas, mantener archivos de datos relacionados con la organizacin en la que estn enmarcados, y producir informacin. Los principales componentes de un sistema de informacin son las personas, los equipos y los procedimientos.

37

Sistemas de Informacin (II)


Anlisis
Descomposicin de un sistema para conocer su naturaleza, funciones, relaciones y requerimientos.

Anlisis de Sistemas
Proceso de clasificacin e interpretacin de hechos, diagnstico de problemas y empleo de la informacin para recomendar mejoras al sistema.

Diseo de Sistemas
Proceso de planificar, reemplazar o complementar un sistema organizacional existente. El Anlisis especifica lo hacer. El Diseo establece QU el sistema debe alcanzar el objetivo.

CMO

38

Cambios generados por los SI (I)


Trabajo inteligente
El ordenador se ocupa de las labores repetitivas y rutinarias. La transformacin de informacin, no de bienes, permite a la empresa diversificar su rea de negocio. Antes la base del negocio era el uso del dinero y los recursos tangibles. Ahora son las ideas y la informacin. La industria de la manufactura representa el 28% de los sueldos, el resto se alojan en empresas de servicios y manejo de informacin.

Fusin global de empresas Idea e Informacin

Usuarios: trabajadores de la informacin

39

Cambios generados por los SI (II)


Soporte tecnolgico al crecimiento de la empresa
Hace 20 aos una empresa de distribucin generaba 500 facturas ao utilizando mquinas de escribir. Actualmente genera 50.000 con ayuda de ordenadores. Una caida en la red de comunicaciones forzo la publicacin en BOE de una extensin de plazo para presentacin decaracin de impuestos

Dependencia legal de los SI

40

Los participantes en el juego de los SI (I)


El usuario
heterogneos visin muy sesgada de las problemticas

El administrador
de usuarios - supervisor de los usuarios de informtica - gestor de proyectos general - de la organizacin, financieros. Planificacin estratgica.

El cliente El personal de operaciones


instalaciones copias de seguridad mantenimiento de infraestructura

41

Los participantes en el juego de los SI (II)


El auditor
control de calidad y consultor de proceso

El analista de sistemas
es la persona cuyo trabajo consiste en centralizar el desarrollo del sistema en su conjunto

El diseador
es la persona que partiendo del anlisis de un problema y el planteamiento de una solucin al mismo libre de trabas tecnolgicas, construye el diseo de dicha solucin enmarcandolo dentro de un contexto tecnolgico particular

El programador
es la persona encargada de codificar el diseo de la solucin

Analoga con el mundo de la construccin


Analista - Arquitecto, Diseador - Aparejador, Programador Albail

42

El analista de sistemas
Labores del analista de sistemas
es arquelogo y escribano es innovador es mediador

Separacin de papeles
Analista, Analista/Diseador, Analista/Diseador/Programador Evolucin: Programador ... Analista

43

Ms terminologa (I)
Especificacin de requerimientos
Es el proceso de recopilacin de las caractersticas con las que deber contar el software a desarrollar. Trminos relacionados: Especificacin del sistema. Requisitos de usuario.

Codificacin / Implementacin
Traduccin de las especificaciones de diseo a un lenguaje de programacin determinado.

Prueba / Test
Verificacin del funcionamiento requerido del software

Riesgo
Problema que puede surgir en un proyecto afectando a su correcto desarrollo. Los riesgos deberan estar identificados y se debera determinar estrategias que permitan mitigarlos.

44

Ejemplos de riesgos
Tecnologa desconocida (ejemplos: lenguaje de programacin no conocido, nuevo hardware, etc.). Poca experiencia del equipo de desarrollo. Problema mal descrito y/o modificaciones en la descripcin del problema. Retraso en algn determinado proveedor. Problemas en mdulos que sean cuellos de botella en el desarrollo.

45

Ms terminologa (II)
Integracin
Unin de los diferentes componentes del software

Mantenimiento
Modificaciones que se realizan sobre el software una vez que este se ha entregado al cliente. El motivo de estas modificaciones puede ser la correccin de defectos detectados en su funcionamiento, o la ampliacin o modificacin de la funcionalidad a peticin del cliente.

Contrato o acuerdo del proyecto


Acuerdo entre desarrollador y cliente en el que se especifica QU es lo que se va a entregar como resultado del proyecto, CUNTO dinero se va a pagar por ello y CUNDO se realizara esta entrega. Debe estar firmado por las dos partes.

Transferencia al cliente
Proceso por el cual se entrega al cliente el resultado del proyecto y ste comprueba que el resultado es el que se haba acordado.

46

Ms terminologa (III)
Acoplamiento
Medio de evaluar la relacin entre elementos de un sistema. Es la medida del grado de interdependencia entre los elementos de un sistema.

Cohesin
Indica el grado de conexin funcional entre elementos. Es una medida de la fuerza de la relacin funcional entre elementos de un sistema.

47

Estandarizacin del desarrollo del SW


Estndares de Ingeniera del Software Objetivo: Garantizar la calidad, presupuesto y plazos de los proyectos software

ESA Agencia Espacial Europea

MIL Departamento de defensa USA

IEEE The Institute of Electrical and Electronics Engineers, Inc

48

IEEE - Estndares para Ingeniera del SW


IEEE 1058 - Standard for Software Project Management Plans IEEE 828 - Standard for Software Configuration Management Plans Otros estndares de inters:
IEEE 610 - Glossary of Software Engineering Terminology IEEE 830 - Guide for Software Requirements Specification IEEE 1002 - Standard Taxonomy for Software Engineering Standards IEEE 1074 - Standard for Developing Software Life Cycle Processes IEEE 1028- Standard for Software Reviews and Audits

Los estndares son revisados y actualizados cada 5 aos Reconocidos y aceptados por gran nmero de organismos y empresas

49

MIL DOD - STD - 2167A


Establece los requerimientos del Departamento de Defensa USA para el ciclo de vida del software Actividades de desarrollo del software
Anlisis y Diseo de requerimientos del sistema Anlisis de los requerimientos software Diseo preliminar Diseo detallado Codificacin y testeo de unidades Integracin y tests de CSC (Computer Software Component, se compone de CSCs y unidades) Test de CSCI (Computer Software Configuration Item) Integracin del sistema y tests

50

Estndares de la ESA
Conjunto de estndares definidos por la Agencia Espacial Europea para la especificacin , desarrollo y mantenimiento del software

Software Engineering Standards Definen las obligaciones y recomendaciones prcticas para la especificacin, desarrollo y mantenimiento del software Software Engineering Guides Discuten su aplicacin prctica en mayor nivel de detalle, y describen los mtodos y herramientas para llevarlos a cabo. Tambin contienen informacin para la redaccin de los documentos requeridos por los estndares

51

Estructura de los estndares y guas ESA


Software Engineering Standards
Product Standards Procedure Standards

User Requirements Definition Phase Guide Software Requirements Definition Phase Guide Architectural Design Phase Guide Detail Design and Production Phase Guide Transfer Phase Guide Operations and Maintenance Phase Guide

Software Project Management Guide Software Configuration Management Guide Software Verification and Validation Guide Software Quality Assurance Guide

52

Otros estndares
ISO (International Organization for Standardization)
OSI (Open System Interconnection) EDI (Electronic Data Interchange) ISO 9001 (Estandard para el desarrollo de software)

CCITT (International Consultative Committee on Telephony and Telegraphy)


Compuesto por compaas telefnicas de todo el mundo X.25 estd. de comunicaciones para servicios del nivel de red

ANSI (American National Standard Institute)


Representante oficial de USA en ISO y CCITT ASCII

OMG (Object Management Group): Comit que busca la armonizacin de los fabricantes en dos lneas, la terminologa en la orientacin a objeto, y la estandarizacin de interfaces
CORBA (Common Object Request Broker Architecture)

53

Introduccin Mtrica 2.1 (I)


Metodologa de Planificacin y Desarrollo de Sistemas Informticos
Promovida por el Consejo Superior de Informtica (rgano encargado de elaborar y desarrollar la poltica informtica del Gobierno)

Objetivos:
Crear un entorno que permita al equipo de trabajo construir Sistemas, que:
- Den SOLUCIONES a los objetivos considerados prioritarios en la Administracin. - Se desarrollen CUANDO EL USUARIO LOS NECESITE y DE ACUERDO A LOS PRESUPUESTOS Y DURACIN ESTIMADOS - Se MANTENGAN FCILMENTE para soportar los cambios futuros en la organizacin

54

Introduccin Mtrica 2.1 (II)


Mtrica versin 2 ofrece un marco de trabajo en el que se define:
Una estructura de proyecto que sirva de gua al equipo de trabajo e involucre a los usuarios en su desarrollo y en sus puntos decisivos. Un conjunto de productos finales a desarrollar. Un conjunto de tcnicas para obtener los productos finales. Las diferentes responsabilidades y funciones de los miembros del equipo de proyecto y de los usuarios.

Mtrica versin 3
Basada en tcnicas Orientadas a Objetos Ya est operativa

55

Visin general de Mtrica 2.1

56

INTRODUCCIN A LA INGENIERA DEL SOFTWARE


El Ciclo de Vida

F.Javier Zarazaga Soria Javier Nogueras Iso Ingeniera del Software I

Departamento de Informtica e Ingeniera en Sistemas

Ciclo de vida del software. ndice


Introduccin Fases, Tareas y Actividades Ciclo de Vida de un producto Software
Ciclo de Vida en Cascada Clsico Ciclo de Vida en V Ciclo de Vida en Cascada Mejorado Ciclo de Vida con Prototipado Modelo Incremental Ciclo de Vida en Espiral

Estndares para el desarrollo de Ciclos de Vida

58

Introduccin al ciclo de vida


El desarrollo del software atraviesa una sucesin de estados (actividades de desarrollo del software)
del a v i t a Oper oftware e s a F to S c u d pro

Infancia
de Ciclo l Software e rollo d

Madurez

Jubilacin
Retirad Fase de a o Su stituci n

Desar

59

Ciclo de vida. Terminologa I

Ciclo de Vida de un Producto Software

Sucesin de pasos a travs de los cuales el producto software va progresando. Estos pasos abarcan desde el planteamiento del problema a resolver mediante el producto software, hasta la retirada de dicho producto una vez que ha finalizado su vida operativa

60

Ciclo de vida. Terminologa II


Funcin

Proyecto
Funcin Fase Tarea

Actividades del Proceso o de Gestin

Fase Tarea

Fase Tarea

Actividades del Producto

61

Ciclo de vida. Terminologa III


Funcin Actividad o conjunto de actividades que abarcan la duracin del proyecto
Ejemplos: Gestin de Configuraciones Gestin del Proyecto

En IEEE-1074 -> Procesos Integrales Fase Mayor unidad de trabajo Finalizan con los hitos ms importantes del proyecto
Ejemplos: Definicin de los Requerimientos de usuario Diseo Arquitectural

Tarea Menor unidad de trabajo sujeta a gestin Suficientemente pequea para una adecuada planificacin y seguimiento Suficientemente grande para permitir micro gestin
Ejemplos: Escribir el manual de usuario Test de subsistemas

62

Ciclo de Vida en Cascada Clsico (I)


Requerimientos Cambio de Requerimientos

Especificacin

Diseo

Implementacin Tests de Unidades

Desarrollo

Integracin y Tests del Sistema Modo Operacional

Mantenimiento
Retirada

63

Ciclo de Vida en Cascada Clsico (II)


Ventajas:
Fuerza a una aproximacin disciplinada fruto de su surgimiento a partir del ciclo convencional de una ingeniera Sencillo de implantar y gestionar (es el preferido por los gestores de proyectos)

Problemtica:
Es linear y el desarrollo del software no lo es El cliente debe tener paciencia (no ve resultados hasta el final) Diferencias en la interpretacin de los requerimientos entre cliente y desarrollador Los proyectos raramente siguen el flujo secuencial que propone el modelo (imposibilidad de actividades en paralelo) Es difcil para el cliente establecer al principio todos los requisitos de forma explcita

64

Ciclo de Vida en V
oferta especif. manten. pru. acep.

arquitect. mdul.1

pru. integ.

Ventajas:
Supone una mejora respecto al modelo en cascada, eliminando parte de la secuencialidad

Problemas:
Prcticamente los mismos que los del modelo en cascada

65

Ciclo de Vida en Cascada Mejorado (I)


Requerimientos Verificacin Especificacin Verificacin Planificacin Verificacin Diseo Verificacin Implementacin Test Cambio de Requerimientos Verificacin

Desarrollo

Integracin Test Modo Operacional

Mantenimiento
Retirada

66

Ciclo de Vida en Cascada Mejorado (II)


Mejoras:
Estipula la documentacin que debe acompaar cada fase y los requerimientos que todos los productos de cada una de las fases deben cumplir En los hitos que finalizan cada fase se realiza la aprobacin de todos los productos de esa fase, incluyendo los documentos El testing es inherente a cada una de las fases del modelo y no se trata como una fase ms del mismo a ser realizada una vez que se ha construido el producto Todos los cambios que se produzcan en las operaciones de mantenimiento deben ser reflejados en los documentos de las fases a las que afecten

Problemtica:
Modelo guiado por la documentacin (los documentos son los hilos conductores del modelo). Esto puede producir diferencias en la interpretacin de los mismos entre cliente y desarrollador

67

Ciclo de Vida con Prototipado (I)


Comienzo Parada Recoleccin y refinamiento de requisitos Producto de ingeniera Diseo rpido

Refinamiento del prototipo

Construccin del prototipo

Objetivo:
Obtener rpidamente un prototipo de la aplicacin que permitan al cliente interactuar con ella con el fin de detectar deficiencias en las especificaciones Construimos un rpido boceto de la aplicacin

Evaluacin del prototipo por el cliente

68

Ciclo de Vida con Prototipado (II)


Ventajas
Mejora la comunicacin analista - cliente Mejor identificacin de los requerimientos del cliente Satisface la curiosidad del cliente (en seguida puede ver cosas)

Problemas:
Identificacin del prototipo con el producto final Prototipo no reaprovechable Posibles asumpciones tcnicas inapropiadas con el fin de prototipar ms rpidamente

69

Modelo Incremental (I)


Requerimientos Verificacin Especificacin Verificacin Planificacin Verificacin Diseo Arquitectural Verificacin Para cada mdulo: Realizar el diseo detallado, implementacin, integracin y test. Transferir al cliente Software is built, not written [Schach 96] Propone la construccin del software paso a paso: realizacin de software igual a una ingeniera incremental

Desarrollo

Mantenimiento

Modo Operacional

Retirada

70

Modelo Incremental (II)


Ventajas:
Satisface la curiosidad del cliente El cliente puede ir viendo la aplicacin real, no un prototipo Muy ligado al proceso de sustitucin de un sistema por otro Posibilidad de detener el proyecto sin perder todo lo realizado Mayor flexibilidad ante cambios en los requerimientos durante el desarrollo

Problemtica:
Cada nuevo mdulo se debe integrar en el sistema sin afectar a lo que ya est funcionando (datos, interfaces,...) El diseo y desarrollo de los diferentes mdulos debe ser coherente entre s Gran tendencia a la degeneracin del control del proyecto ante la imposibilidad de verlo como un todo

71

El Ciclo de Vida en Espiral (I)


Determinacin de objetivos, alternativas y restricciones Anlisis de riesgos Anlisis de riesgos Evaluacin de las alternativas identificadas, solucionando riesgos

Anlisis de riesgos Prototipo operacional REVISIN Anlisis de riesgos Prototipo 2 Prototipo 1 Prototipo 3

Plan de requerimientos Plan del ciclo de vida

Simulaciones, Concepto de operacin Requerimientos SW Validacin de requerimientos

modelos,

medidas

Diseo del producto

Diseo detallado Codificacin

Plan de desarrollo

Plan de integracin y test

Diseo de la verificacin y validacin Test de aceptacin

Test de unidades Test de integracin

Siguiente fase del plan

Puesta en servicio

Desarrollo y verificacin del siguiente nivel del producto

Propuesto por Boehm, 1988

72

El Ciclo de Vida en Espiral (II)


Identificacin de Riesgos Asignar prioridades a los riesgos Desarrollar una serie de prototipos para los riesgos identificados comenzando con el ms prioritario Hacer uso del modelo en cascada para cada fase de desarrollo Si los riesgos han sido resueltos satisfactoriamente, evaluar los resultados de la fase y planificar la siguiente Si alguno de los riesgos no puede ser resuelto, abandonar el proyecto inmediatamente

73

El Ciclo de Vida en Espiral (III)


Ventajas:
Inclusin de de anlisis de riesgos a lo largo del proceso Desarrollo de software = proceso evolutivo Uso de prototipos, uso de simulaciones El cliente ve evolucionar el proyecto Tratamiento del mantenimiento al mismo nivel que el desarrollo (se trata de otra espiral ms)

Problemas:
Difcil de convencer al cliente de su utilidad (hay que realizar muchos tests y esto cuesta dinero) Implantacin muy compleja Necesita gran habilidad en la valoracin de riesgos Mtodo muy nuevo

74

IEEE - Std 1074 - 1991


Std 1074-1991
Standard for Developing Software Life Cycle Processes

Alcance
Indica un conjunto de actividades que constituyen los procesos que son obligatorios para el desarrollo y mantenimiento del software, tanto por si slo, como formando parte de un sistema No incluye actividades para el desarrollo del hardware, realizacin de compras, ... No recomienda un ciclo de vida especfico

Aplicabilidad
Proyectos de desarrollo y mantenimiento de software Descomponer proyectos grandes en subproyectos, aplicar el estndar a cada uno de ellos y al conjunto

75

Estndar ESA para el Ciclo de Vida (I)


Producto

76

Estndar ESA para el Ciclo de Vida (II)


Proceso

77

INTRODUCCIN A LA INGENIERA DEL SOFTWARE


Herramientas y Tecnologa CASE

F.Javier Zarazaga Soria Javier Nogueras Iso Ingeniera del Software I

Departamento de Informtica e Ingeniera en Sistemas

Herramientas CASE. ndice


Introduccin a las herramientas CASE Historia de las Herramientas CASE Tipos de herramientas CASE

79

Introduccin a las herramientas CASE


CASE: Computer Assisted Software Engineering Herramienta CASE
Herramienta de software que automatiza tareas particulares del ciclo de vida del software. Dibujado de diagramas. Prototipado de la interfaz de usuario. Utilidades para almacenar y obtener informes, as como consultar toda la informacin de desarrollo con la que se cuenta. Verificacin y correccin de especificaciones. Generacin de cdigo.

80

Historia de las herramientas CASE


A principios de los 80
dibujado de diagramas elaboracin de documentacin

A mediados de los 80
comprobacin automtica de errores basada en especificacin de reglas y lenguajes formales repositorios o diccionarios para almacenar la informacin del sistema

Finales 80, principios 90


generacin automtica de cdigo partiendo de la especificacin del diseo

Actualmente
ingeniera inversa o reingeniera reutilizacin

81

Tipos de herramientas CASE


Herramientas de
Ingeniera de la Informacin. Manejan datos de negocio, sus relaciones y la forma en que fluyen entre distintas reas de la organizacin. planificacin y administracin de proyectos. estimacin de esfuerzos y coste de desarrollo del software. planificacin de proyectos. anlisis de riesgos. control de calidad. anlisis y diseo. prototipado y simulacin. diseo y desarrollo de interfaces de usuario. programacin. ingeniera inversa.

Entornos integrados.

82

83

Das könnte Ihnen auch gefallen