inge.de.software clase 2

75
Ingeniería de Software Diapositiva 1 MODULOS DEL CURSO CONCEPTOS FUNDAMENTALES DE LA INGENIERIA DE SISTEMAS Y DE LA INGENEIRIA DE SOFTWARE EL LENGUAJE UNIFICADO DE MODELAMIENTO UML EL MODELO ORIENTADO A OBJETOS UNIDADES DE CONSTRUCCION Ingeniería de Software

Upload: oscar-martinez

Post on 25-Jun-2015

984 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 1

MODULOS DEL CURSO

CONCEPTOS FUNDAMENTALES DE LA INGENIERIA DE SISTEMAS Y DE LA INGENEIRIA DE SOFTWARE

EL LENGUAJE UNIFICADO DE MODELAMIENTO UML

EL MODELO ORIENTADO A OBJETOS

UNIDADES DE CONSTRUCCION

Ingeniería de Software

Page 2: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 2

Ingeniería de Sistemas

CONCEPTOS FUNDAMENTALES DE LA INGENIERIA DE SISTEMAS

“Diseño, implementación e instalación de sistemas que incluyen hardware, software y gente.”

Page 3: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 3

Objetivos

Introducir conceptos de Ingeniería de Sistemas a los Ingenieros de Software.

Discutir las dificultades de la Ingeniería de Sistemas. Describir el concepto de realización de sistema y el

proceso de Ingeniería del Sistema. Discutir el concepto de confiabilidad en un contexto de

sistema.

Page 4: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 4

Tópicos

Sistemas y su ambiente. Realización del sistema. El proceso de Ingeniería de Sistemas. Modelado de la Arquitectura del Sistema. Factores Humanos. Ingeniería de la confiabilidad en el sistema

Page 5: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 5

Que es un Sistema ?

Un conjunto de componentes inter-relacionados trabajando conjuntamente para un fin común. El sistema puede incluir software, dispositivos mecánicos y eléctricos, hardware, y ser operado por gente.

Los componentes del sistema son dependientes de otros componentes.

Las propiedades y el comportamiento de los componentes del sistema están inter-relacionados de forma compleja.

Page 6: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 6

Problemas con la Ingeniería de Sistemas

Los sistemas grandes están usualmente diseñados para resolver problemas complejos

La Ingeniería de Sistemas requiere un gran esfuerzo de coordinación entre varias disciplinas.

Existen combinaciones infinitas para el diseño de software entre componentes.

Existe desconfianza mutua y poco entendimiento entre distintas disciplinas.

Los sistemas deben diseñarse para que duren varios años en un ambiente con cambios continuos.

Page 7: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 7

Ingeniería de Software y Sistemas

La proporción del software en los sistemas esta creciendo. La electrónica esta siendo controlada por software, con lo que se están remplazando los sistemas de propósito específico.

Los problemas de la Ingeniería de Sistemas son similares a los de la Ingeniería de Software.

El software ha sido visto siempre como un problema dentro de la Ingeniería de Sistemas. Muchos proyectos grandes se han visto retrasados por el software.

Page 8: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 8

Los Sistemas y su Ambiente

Los sistemas no son independientes, sino que existen dentro de un ambiente.

La función del sistema puede ser la de cambiar su ambiente.

Los efectos del ambiente pueden alterar el funcionamiento del sistema. p.ej. la fuente de poder puede afectar al sistema

El ambiente físico y organizacional puede ser importante.

Page 9: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 9

Jerarquías del Sistema

Ciudad

Barrio

Casa

Sistema deCalefacción

Sistema dePotencia

Sistema deAgua

Sistema deSeguridad

Sistema deAlumbrado

Sistema deDesperdicios

Page 10: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 10

Procuración del Sistema

Es la adquisición de un sistema en una organización, para satisfacer una necesidad.

Es necesario especificar el sistema y desarrollar la arquitectura antes de cualquier adquisición.

Es necesaria una especificación que permita al contratista desarrollar el sistema.

La especificación puede permitir comprar sistemas comerciales existentes, que resulten mas baratos que desarrollar el sistema.

Page 11: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 11

Contratistas y Sub-contratistas

La adquisición de sistemas de hardware-software muy grandes se hace usualmente a través de un contratista principal.

Los sub-contratos se hacen para que sean llevados a cabo por otros proveedores de partes del sistema.

El cliente contrata el sistema con el contratista principal y no con los sub-contratistas.

Page 12: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 12

Modelo Contratista/Sub-Contratista

Cliente del Sistema

ContratistaPrincipal

Sub-Contratista 2Sub-Contratista 1 Sub-Contratista 3

Page 13: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 13

Proceso de Realización del Sistema

Estudio de Sistemas existentes

Sistemaa Desarrollar

AdaptaRequerimientos

EligeSistema

Envía peticióna desarrollador

DetallaRequerimientos

EligeProveedores

Contrato deDesarrollo

NegociaContrato

SeleccionaDesarrollador

SistemaComercial

Page 14: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 14

El Proceso de Ingeniería de Sistemas

Involucra a Ingenieros de diferentes áreas. Existe mucho espacio para malentendidos aquí. Distintas disciplinas

utilizan diferente vocabulario y se requiere mucha negociación.

Usualmente se sigue el modelo de cascada dada la necesidad de desarrollo en paralelo de distintas partes del sistema.

Poco margen para iteración entre fases debido a que los cambios de hardware pueden ser muy costosos. El software tendrá que compensar los problemas de hardware.

Page 15: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 15

Proceso de Ingeniería de Sistemas

Definición deRequerimientos

diseño delSistema

Desarrollo deSub-sistemas

Integracióndel Sistema

Instalación del Sistema

Evolución del Sistema

Entrega del Sistema

Page 16: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 16

Desarrollo Interdisciplinario

Ingeniería Electrónica

Ingenieríade Software

IngenieríaMecánica

diseño deInterfaces

Ingenieríade Estructuras

IngenieríaWeb

IngenieríaEléctrica

Arquitectura

Ingenieríade Sistemas

Page 17: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 17

Definición de Requerimientos del Sistema

En esta etapa se definen tres tipos de requerimientos. Requerimientos funcionales finos. Las funciones del sistema son definidas

en forma abstracta. Propiedades del sistema. Los requerimientos no-funcionales para el

sistema en general son definidos. Características indeseables. Comportamiento inaceptable del sistema es

especificado.

Se deben definir también los objetivos organizacionales para el sistema.

Page 18: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 18

Objetivos del Sistema

Objetivos Funcionales. Proveer un sistema de alarmas e intrusos para un edificio que proveerá

alerta interna y externa contra incendios o entradas no-autorizadas.

Objetivos Organizacionales. Asegurar el funcionamiento normal del trabajo que se lleva a cabo en el

edificio, y que no sea interrumpido por eventos tales como incendios o entradas no-autorizadas.

Page 19: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 19

Problemas con los Requerimientos del Sistema

A medida que el sistema está siendo especificado, ocurren cambios.

Se deben anticipar los desarrollos de hardware o comunicaciones en el ciclo de vida del sistema.

Difícil definir requerimientos no-funcionales del sistema, sin tener una idea clara de un componente específico.

Page 20: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 20

Proceso de Diseño del Sistema

Descomposición deRequerimientos

Identificación de Sub-sistemas

Asignación deRequerimientos a

los Sub-Sistema

Especificación Funcional deSub-Sistemas

Definición deInterfaces de los

Sub-Sistema

Page 21: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 21

El Proceso de Diseño del Sistema

Partición de Requerimientos. Organización de requerimientos en grupos relacionados.

Identificación de subsistemas. Identificar un conjunto de subsistemas que cumplen con los

requerimientos del sistema.

Asignación de requerimientos a subsistemas. Especificación de funcionalidad de cada subsistema. Definición de interfaces entre subsistemas.

Actividad crítica cuando se desarrolla el sistema el forma paralela.

Page 22: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 22

Problemas del Proceso de Diseño del Sistema

La partición de requerimientos de hardware, software y componentes humanos puede involucrar mucha negociación.

Con frecuencia se asume que los problemas difíciles de diseño son fácilmente resueltos por software.

Las plataformas de software pueden ser inapropiadas para los requerimientos de software, por lo que deben de compensar esto.

Page 23: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 23

Desarrollo de Sub-Sistemas

Típicamente se desarrollan en paralelo con distintos grupos de desarrolladores.

Falta de comunicación entre grupos de trabajo. Si existen mecanismos burocráticos lentos para proponer

cambios en el sistema, provocarán que la planificación se extienda.

Page 24: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 24

Integración del Sistema

Es el proceso de reunir hardware, software y gente, para llevar a cabo un sistema.

Debe de ser llevado a cabo de forma incremental, de forma que los sub-sistemas sean integrados uno a la vez.

En esta etapa, usualmente se encuentran los problemas de interfaces.

Puede haber problemas si no se coordina bien la entrega de componentes del sistema.

Page 25: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 25

Instalación del Sistema

Puede haber suposiciones incorrectas en el ambiente del sistema.

Puede haber resistencia humana a la introducción de un nuevo sistema.

El sistema puede tener que co-existir con algún sistema alternativo por algún tiempo.

Puede haber problemas físicos en la instalación (p.ej. cableado, etc)

Tiene que identificarse el entrenamiento del operador.

Page 26: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 26

Operación del Sistema

Traerá problemas no contemplados en los requerimientos.

Los usuarios podrían usar el sistema de forma no contemplada por los Ingenieros del Sistema.

Puede revelar problemas con la interacción con otros sistemas.

Problemas físicos por incompatibilidad. Problemas de conversión de datos. Errores frecuentes del operador derivados de interfaces inconsistentes.

Page 27: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 27

Evolución del Sistema

Los sistemas grandes tienen una larga vida. Pero deben evolucionar para adaptarse a requerimientos cambiantes.

La evolución es inherentemente costosa. Los cambios pueden ser vistos desde una perspectiva técnica y de

negocio. Los sub-sistemas interactúan de forma que en el futuro problemas no

contemplados pueden aparecer.. No existe una racionalidad para justificar el proceso de diseño. La estructura del sistema se corrompe a medida que se le hacen cambios.

La mayoría de los sistemas requieren mantenimiento.

Page 28: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 28

Modelado de la Arquitectura del Sistema

El modelo de la arquitectura presenta una visión abstracta de los sub-sistemas que configuran el sistema.

Incluye flujos de información entre sub-sistemas. Identifica distintos tipos de componentes funcionales del

modelo.

Page 29: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 29

.

Arquitecturade un Sistemade Control deTráfico Aéreo

Sistema deRadar

Sistema deTransponder

Sistema deComunicaciones

Comunicacionescon el avión

Sistema deTelefonía

Procesador dePosicionamiento Procesador de

Respaldo

Procesador deComunicaciones

Procesador deRespaldo

Sistema deSimulación del

Avión

Sistema de mapeo de

clima

Caja Negra delSistema

Base de Datos de Plan de vuelo

Controlador de laInf. del Sistema

Consolas deControl

Sistema de reporte deActividades del Sistema

Page 30: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 30

Componentes Funcionales del Sistema

Componentes sensores. Obtiene información del ambiente del sistema, pe.j. radares del sistema de

control de tráfico aéreo.

Componentes actuadores. Componentes que causan algún cambio en el ambiente del sistema. p.ej.

las válvulas en el proceso de control del sistema que incrementa o decrementa el flujo de control de un ducto.

Componentes de cómputo. Lleva a cabo cómputo de algunas entradas recibidas para producir

salidas. pej. el procesador de punto flotante del sistema.

Page 31: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 31

Componentes Funcionales del Sistema

Componentes de comunicaciones Permite comunicar distintos componentes del sistema entre sí. p.ej. los

enlaces entre un sistema de cómputo distribuido.

Componentes de control Coordina la interacción de los componentes del sistema. pej. el

planificador en un sistema en tiempo real.

Componentes de interfaces. Facilita la interacción entre los componentes del sistema. pej. interfaz del

operador.

Todos los componentes son usualmente controlados por software.

Page 32: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 32

Factores Humanos

Todos los sistemas tienen usuarios y son utilizados en un contexto social y organizacional.

Es necesaria una interfaz de usuario apropiada para un control de operación efectivo.

Los factores humanos son con frecuencia un factor que determina el éxito o el fracaso de un sistema.

Cambios en el proceso de trabajo causa problemas. Habilidades de los usuarios. Cambios introducidos en la organización.

Page 33: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 33

Resumen

La Ingeniería de Sistemas es difícil. Nunca habrá una respuesta fácil en la solución de problemas de desarrollo de sistemas complejos.

Los Ingenieros de Software no tienen respuesta a todas las preguntas, pero entienden el funcionamiento del sistema.

Se debe de reconocer el papel que juega cada disciplina y cooperar entre todas en el proceso de Ingeniería de Sistemas.

La Ingeniería de Sistema involucra a múltiples disciplinas. El Proceso de I.S sigue a menudo el modelo de cascada.

Page 34: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 34

Ingeniería de Software

CONCEPTOS FUNDAMENTALES DE

LA INGENIERIA DE SOFTWARE

Page 35: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 35

Objetivos

Definir la Ingeniería de Software y explicar su importancia.

Discutir los conceptos de producto de software y proceso de software.

Explicar la importancia de la visibilidad de los procesos. Introducir la noción de responsabilidad profesional.

Page 36: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 36

Tópicos

Productos de Software. El proceso de Software. El modelo de Espiral de Boehm. La visibilidad de los procesos. Responsabilidad profesional.

Page 37: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 37

Ingeniería de Software

Las economías de los países desarrollados dependen en gran parte del software.

Mas y más sistemas son actualmente controlados por software.

La Ingeniería de Software concierne a teorías, métodos y herramientas para el desarrollo profesional de software.

El gasto en La Ingeniería de Software, representa un alto porcentaje del PIB de los países desarrollados.

Page 38: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 38

Costos del Software

Los costos del software a menudo dominan al costo del sistema. El costo del software en un PC es a menudo mas caro que la PC.

Cuesta mas mantener el software que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica.

La Ingeniería de Software concierne a un desarrollo efectivo en cuanto a costos del software.

Page 39: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 39

Productos de Software

Productos genéricos. Productos que son producidos por una organización para ser vendidos al

mercado.

Productos hechos a medida. Sistemas que son desarrollados bajo pedido a un desarrollador específico.

La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida.

Page 40: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 40

Características de los Productos de Software

Mantenibles. Debe ser posible que el software evolucione y que siga cumpliendo con

sus especificaciones.

Confiabilidad. El software no debe causar danos físicos o económicos en el caso de

fallos.

Eficiencia. El software no debe desperdiciar los recursos del sistema.

Utilización adecuada. El software debe contar con una interfaz de usuario adecuada y su

documentación.

Page 41: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 41

Importancia de las características del producto

La importancia relativa de las características depende en el tipo de producto y en el ambiente en el que será utilizado.

En algunos casos, algunos atributos pueden dominar. En sistemas de seguridad críticos de tiempo real, los atributos clave

pueden ser la confiabilidad y la eficiencia.

Los costos tienden a crecer exponencialmente si son requeridos altos niveles de alguna característica.

Page 42: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 42

Costes de Eficiencia.

Costos

Eficiencia

Page 43: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 43

El Proceso de Software

Conjunto estructurado de actividades requeridas para desarrollar un sistema de software. Especificación. Diseño. Validación. Evolución.

Las actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse.

Debe estar explícitamente modelado si va a ser bien administrado.

Page 44: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 44

Características del proceso

Entendible Se encuentra el proceso bien definido y es entendible ?.

Visible El proceso es visible al exterior ?.

Soportable Puede el proceso ser soportado por herramientas CASE ?.

Aceptable El proceso es aceptado por aquellos involucrados en el ?.

Page 45: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 45

Características del proceso

Confiable Los errores del proceso son descubiertos antes de que se conviertan en

errores del producto ?. Robusto

Puede continuar el proceso a pesar de problemas inesperados ?.

Mantenible Puede el proceso evolucionar para cumplir con los objetivos

organizacionales ?.

Rapidez Que tan rápido puede producirse el sistema ?.

Page 46: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 46

Modelo de Ingeniería del Proceso

Especificación - establecer los requerimientos y restricciones del sistema

Diseño - Producir un modelo en papel del sistema Manufactura - construir el sistema Prueba - verificar que el sistema cumpla con las

especificaciones requeridas Instalación - entregar el sistema al usuario y asegurar su

operacionalidad Mantenimiento - reparar fallos en el sistema cundo sea

descubiertos

Page 47: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 47

Problemas en el Modelo del Proceso

Normalmente, las especificaciones son incompletas o anómalas

No existe una distinción precisa entre la especificación, el diseño y la manufactura

Solo hasta que el sistema se ha producido se puede probar El software no se puede remplazar siempre durante el

mantenimiento

Page 48: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 48

Modelos Genéricos de Desarrollo de Software

Modelo de Cascada Separar en distintas fases de especificación y desarrollo.

Desarrollo Evolutivo La especificación y el desarrollo están intercalados.

Basado en Prototipos Un modelo sirve de prototipo para la construcción del sistema final.

Transformación Formal Un modelo matemático del sistema se transforma formalmente en la

implementación.

Desarrollo basado en Reutilización El sistema es ensamblado a partir de componentes existentes.

Page 49: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 49

Modelo de Cascada (gráfica)

Definición de Requerimientos

Diseño del Softwarey del Sistema

Implementación yPrueba de unidades

Integración y Prueba del Sistema

Operación yMantenimiento

Page 50: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 50

Fases del Modelo de Cascada

Análisis de requerimientos y definición. Diseño del sistema y del software. Implementación y prueba de unidades Integración y prueba del sistema. Operación y mantenimiento. La dificultad en esta modelo reside, en la dificultad de

hacer cambios entre etapas.

Page 51: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 51

Desarrollo Evolutivo

Descripcióndel sistema

VersiónInicial

VersiónFinal

VersionesIntermedias

Especificación

Desarrollo

Validación

ActividadesConcurrentes

Page 52: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 52

Desarrollo Evolutivo

Problemas Poca visibilidad en el proceso Los sistemas están pobremente especificados Se requieren habilidades especiales.

Aplicabilidad Para sistemas interactivos pequeños o medianos. Para partes de sistemas grandes (p.ej. la interfaz de usuario). Para sistemas de corta vida.

Page 53: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 53

Prototipado

Prototipos exploratorios El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a

partir de una especificación inicial. Se debe comenzar con unas especificaciones bien entendidas.

Prototipos de “throw-away”. El objetivo es entender los requerimientos del sistema. Se puede

comenzar con especificaciones poco entendidas.

Page 54: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 54

Problemas y Riesgos con los Modelos.

Cascada. Alto riesgo en sistemas nuevos debido a problemas en las especificaciones

y en el diseño. Bajo riesgo para desarrollos bien comprendidos utilizando tecnología

conocida.

Prototipos. Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y

el diseño se llevan a cabo paso a paso. Alto riesgo debido a falta de visibilidad

Evolutivo. Alto riesgo debido a la necesidad de tecnología avanzada y habilidades

del grupo desarrollador.

Page 55: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 55

Manejo de Riesgos

La tarea principal del administrador consiste en minimizar riesgos.

El “riesgo” inherente en una actividad es se mide en base a la incertidumbre que presenta el resultado de esa actividad.

Las actividades con alto riesgo causan sobre-costos en cuanto a planeación y costos

El riesgo es proporcional al monto de la calidad de la información disponible. Cuanto menos información, mayor el riesgo.

Page 56: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 56

Modelos de Procesos Híbridos

Los sistemas grandes están hechos usualmente de varios subsistemas.

No es necesario utilizar el mismo modelo de proceso para todos los subsistemas.

El desarrollo por prototipos es recomendado cuando existen especificaciones de alto riesgo.

El modelo de cascada es utilizado en desarrollos bien comprendidos.

Page 57: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 57

Modelo de Proceso de Espiral

Determine objetivosalternativas yrestricciones

Evalúe alternativas,identifique y resuelva

riesgosAnálisis de

Riesgos

Análisis deRiesgos

Análisis deRiesgos

Análisis de

Riesgos

Planea la siguiente fase

Desarrolla y verificael siguiente nivel

del producto

PrototipoOperacionalPrototipo

3Prototipo2Proto

tipo 1

Plan de requerimientosPlan del ciclo de vida

REVISIÓN

Plan de Desarrollo

Plan de Integracióny Prueba

Concepto deOperación

Simulaciones, modelos y benchmarks

Requerimientos de

SWValidación deRequerimientos

DiseñoV &V

Servicio

Prueba deAceptación

Prueba deIntegración

Prueba deUnidades

Codificación

DiseñoDetallado

Diseño delProducto

Page 58: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 58

Fases del Modelo de Espiral

Planteamiento de Objetivos Se identifican los objetivos específicos para cada fase del proyecto.

Identificación y reducción de riesgos. Los riesgos clave se identifican y analizan, y la información sirve para

minimizar los riesgos.

Desarrollo y Validación. Se elige un modelo apropiado para la siguiente fase del desarrollo.

Planeación. Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral.

Page 59: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 59

Plantilla para una ronda del espiral

Objetivos. Restricciones. Alternativas. Riesgos. Resolución de riesgos. Resultados. Planes. Garantías (commitments).

Page 60: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 60

Mejoramiento de la Calidad en el Modelo de Espiral.

Objetivos Mejorar significativamente la calidad del software.

Restricciones. Dentro de los 3 primeros anos. Sin que se produzcan grandes inversiones de capital. Sin que se lleven a cabo grandes cambios organizacionales.

Alternativas. Reutilizar software certificado existente. Introducir especificaciones formales y verificación. Invertir en herramientas de prueba y validación.

Page 61: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 61

Mejoramiento de la Calidad

Riesgos. No existen mejoras en el software baratas. Las mejoras en la calidad pueden incrementar costes excesivamente Los nuevos métodos pueden causar bajas en el personal.

Solución de riesgos. Estudio de la literatura existente. Proyecto piloto. Búsqueda de todos los componentes reutilizables potenciales. Identificación del soporte disponible de herramientas Entrenamiento al personal y seminarios motivacionales.

Page 62: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 62

Mejoramiento de la Calidad

Resultados. La experiencia en métodos formales es limitada - es muy difícil cuantificar las

mejoras. Limitado el soporte en herramientas para sistemas de desarrollo de la compañía. Existencia de componentes reutilizables, pero poco soporte de herramientas de

reuso.

Planes. Explorar la opción de la reutilización a mas detalle. Desarrollar herramientas prototipo para reutilización. Explorar el esquema de certificación de componentes.

Garantías. Explorar los siguientes 18 meses.

Page 63: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 63

Modelo de Espiral para la elaboración de un catálogo.

Objetivos Desarrollar un catálogo de componentes de software

Restricciones. A un ano. Debe soportar los tipos de componentes existentes. Costo total menor de $100,000.

Alternativas. Comprar software de captura de información. Comprar bases de datos y desarrollar el catálogo utilizando la BD. Desarrollar catálogo de propósito especial.

Page 64: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 64

Mejoramiento de la Calidad

Riesgos. Puede ser imposible satisfacer las restricciones. La funcionalidad del catálogo puede ser inapropiada.

Solución de riesgos. Desarrolla un prototipo del catálogo (utilizando lenguajes de cuarta

generación 4GL y una BD existente) para clarificar los requerimientos. Relaja restricciones de tiempo.

Page 65: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 65

Mejoramiento de la Calidad

Resultados. Los sistemas de captura de información son inflexibles. Los

requerimientos no pueden cumplirse. El prototipo que utiliza la BD puede mejorarse para completar el sistema. El desarrollo de un catálogo de propósito específico no es costeable.

Planes. Desarrolla el catálogo utilizando una BD existente mejorando el prototipo

y la interfaz de usuario.

Garantías. Explorar los siguientes 12 meses.

Page 66: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 66

Flexibilidad en el modelo de Espiral

Para sistemas bien comprendidos utiliza el Modelo de Cascada. La fase de análisis de riesgos es relativamente fácil.

Con requerimientos estables y sistemas de seguridad críticos, utiliza modelos formales.

Con especificaciones incompletas, utiliza el modelo de prototipos.

Pueden utilizarse modelos híbridos en distintas partes del desarrollo.

Page 67: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 67

Ventajas del Modelo de Espiral

Centra su atención en la reutilización de componentes y eliminación de errores en información descubierta en fases iniciales.

Los objetivos de calidad son el primer objetivo. Integra desarrollo con mantenimiento. Provee un marco de desarrollo de hardware/software.

Page 68: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 68

Problemas con el Modelo de Espiral

El desarrollo contractual especifica el modelo del proceso y los resultados a entregar por adelantado.

Requiere de experiencia en la identificación de riesgos. Requiere refinamiento para uso generalizado.

Page 69: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 69

Visibilidad de Procesos

Los sistemas de software son intangibles por lo que los administradores necesitan documentación para identificar el progreso en el desarrollo.

Esto puede causar problemas.. El tiempo planeado para entrega de resultados puede no coincidir con el

tiempo necesario para completar una actividad. La necesidad de producir documentos restringe la iteración entre

procesos. El tiempo para revisar y aprobar documentos es significativo.

El modelo de cascada es aún el modelo basado en resultados mas utilizado.

Page 70: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 70

Documentos del Modelo de Cascada

Actividad Documentos ProducidosAnálisis de Requerimientos Documento de RequerimientosDefinición de Requerimientos Documento de Requerimientos.Especificación del Sistema. Especificación Funcional, Plan de Pruebas

de Aceptación.Diseño Arquitectural Especificación de la Arquitectura, y Plan de

Pruebas del SistemaDiseño de Interfaces Especificación de la Interfaces y Plan de

pruebas de Integración.Diseño Detallado Especificación del diseño y Plan de prueba

de Unidades.Codificación Código de ProgramaPrueba de Unidades Reporte de prueba de unidadesPrueba de Módulos Reporte de prueba de módulosPrueba de Integración Reporte de prueba de integración y Manual

de usuario finalPrueba del Sistema Reporte de prueba del sistemaPrueba de Aceptación Sistema final mas la documentación.

Page 71: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 71

Visibilidad del Modelo

Modelo de Proceso Visibilidad del ProcesoModelo de Cascada Buena visibilidad, cada actividad produce un

documento o resultadoDesarrollo Evolutivo Visibilidad pobre, muy caro al producir

docuementos en cada iteración.Modelos Formales Buena visibilidad, en cada fase deben

producirse documentos.Desarrollo orientado a la reutilización Visibilidad moderada. Importante contar con

documentación de componentes reutilizables.Modelo de Espiral Buena visibilidad, cada segmento y cada

anillo del espiral debe producir undocumento.

Page 72: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 72

Responsabilidad profesional

Los Ingenieros de software no solo deben considerar aspectos técnicos. Deben tener una visión mas amplia, en lo ético, social y profesional.

No existe estatutos para ninguno de estos aspectos. Desarrollo de sistemas militares. Piratería. Que es mejor para la profesión de Ingeniero de Software.

Page 73: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 73

Aspectos Éticos

Confidencialidad. Competencia. Derechos de propiedad intelectual. Mal uso de la computadora.

Page 74: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 74

Resumen

La Ingeniería de software concierne a las teorías, métodos y herramientas para el desarrollo, administración y evolución de productos de software.

Los productos de software consisten de programas y documentación. Los atributos de los productos son, mantenibilidad, robustez, eficiencia y usabilidad.

El proceso de software consiste en aquellas actividades involucradas en el desarrollo de software.

Page 75: Inge.de.software  clase 2

Ingeniería de Software Diapositiva 75

Resumen

El modelo de cascada considera cada actividad del proceso como una actividad discreta.

El modelo de desarrollo evolutivo considera actividades del proceso en forma concurrente.

El modelo de espiral se basa en análisis de riesgos. La visibilidad del proceso involucra la creación de

documentos o resultados de las actividades. Los Ingenieros de software deben tener responsabilidades

éticas, sociales y profesionales.