sesión 02 estructura, modelos y procesos

76
Ing. Lenin Huayta Flores Sesión 02: Estructura, Modelos y Procesos Ingeniería de Software

Upload: john-ever-maron-puma

Post on 16-Dec-2015

24 views

Category:

Documents


0 download

DESCRIPTION

poryecto

TRANSCRIPT

  • Ing. Lenin Huayta Flores

    Sesin 02:Estructura, Modelos y Procesos

    Ingeniera de Software

  • Ingeniera de Software

    Planeacin de una estructura organizacional

    1. Factores a considerar

    2. Paradigmas organizacionales

    3. Los actores en proyecto

    4. Los trabajadores

    2

  • Ing. Lenin Huayta Flores

    1. Factores a considerar

    Ingeniera de Software

  • Ingeniera de Software

    Factores a considerar para formar Equipos de Software

    Los siguientes factores deben ser considerados

    cuando se selecciona la estructura del equipo del

    proyecto de software...

    Dificultad del problemas a ser resuelto

    El tamao de las lneas de cdigo de los programas

    resultantes o puntos funcin

    El tiempo en que el equipo estar junto (tiempo de vida del

    equipo)

    El grado de modularidad del problema

    La calidad y confiabilidad requeridas del sistema a ser

    construido

    La rigidez de la fecha de entrega

    El grado de sociabilidad (comunicacin) requerida para el

    proyecto.

    4

  • Ingeniera de Software

    Riesgos Asociados a las Personas

    Cuestionamientos que deben ser resueltos:

    Est disponible el mejor personal?

    El staff tiene las habilidades adecuadas?

    Hay suficiente personal disponible?

    Existe el compromiso completo?

    Habr gente que trabaje parcialmente?

    El staff tiene las expectativas adecuadas?

    El staff tiene el suficiente entrenamiento?

    Podra la respuesta del staff ser baja?

    5

  • Ing. Lenin Huayta Flores

    2. Paradigmas organizacionales

    Ingeniera de Software

  • Ingeniera de Software

    Paradigmas Organizacionales

    Paradigma cerrado estructura al equipo a travs de una

    jerarqua de autoridad tradicional

    Paradigma aleatorio estructura a un equipo de manera

    dispersa y depende de la iniciativa individual de los

    miembros del equipo

    Paradigma abierto estructura al equipo de una manera en

    la que se llevan a cabo algunos de los controles asociados

    con el paradigma cerrado pero tambin mucha de la

    innovacin ocurre cuando se usa el paradigma aleatorio

    Paradigma sncrono depende de la fragmentacin natural

    de un problema y organiza a los miembros del equipo para

    trabajar en piezas del problema con poca comunicacin

    activa entre ellos.

    7

  • Ingeniera de Software

    Distribucin del Esfuerzo

    8

    Actividades Front-end Comunicacin con el cliente

    Anlisis

    Diseo

    Revisin y modificacin

    Actividades de construccin

    Codificacin o generacin de cdigo

    Prueba e instalacin

    Unitarias, integracin

    Caja-blanca, caja-negra

    Regresin

    40 50%

    15 20%

    30 40%

  • Ing. Lenin Huayta Flores

    3. Los actores

    Ingeniera de Software

  • Ingeniera de Software

    Los Actores

    10

    Lder de Proyecto

    (gestor tcnico) SQA

    Productores

    (trabajadores)

    Clientes

    (requisitos)

    Gestor superior

    (aspectos de negocio)

    Representante de usuario

    (coordinador de usuarios)

    Usuario final

    (pruebas)

  • Ing. Lenin Huayta Flores

    4. Los trabajadores

    Ingeniera de Software

  • Ingeniera de Software

    Trabajadores (Workers)

    Personas que participan en el proceso

    Tienen competencias especficas

    En cada flujo de trabajo

    Worker

    12

  • Ingeniera de Software

    Trabajadores

    1. Analista de Sistemas

    2. Especificador de Casos de Uso

    3. Arquitecto

    4. Ingeniero de Casos de Uso

    5. Ingeniero de Componentes

    6. Integrador de Sistemas

    7. Diseador de Pruebas

    8. Ingeniero de Pruebas de Integracin

    9. Ingeniero de Pruebas del Sistema

    13

  • Ingeniera de Software

    Analista de Sistemas

    Responsable del conjunto de requisitos

    modelados en los casos de uso Requisitos funcionales y no funcionales

    Delimitar el sistema

    Encontrar actores y casos de uso

    Asegurar modelos de casos de uso completos

    y consistentes

    Elaborar un glosario para mantener la

    consistencia semntica

    Dirigir el modelado

    Coordinar la captura de requisitos

    14

    Analista de

    Sistemas

    Flujos de Trabajo

    Requerimientos

  • Ingeniera de Software

    Especificador de Casos de Uso

    15

    Responsable de la descripcin detallada de

    un caso de uso

    Establecer una comunicacin estrecha y

    eficaz con los usuarios (directos)

    Especificador

    de C.U.

    Flujos de Trabajo

    Requerimientos

  • Ingeniera de Software

    Diseador de Interfaces

    16

    Disear las interfaces de usuario Aspecto visual

    Desarrollar prototipos de interfaces de

    usuario para algunos casos de uso

    Diseador de

    Interfaces

    Flujos de Trabajo

    Requerimientos

  • Ingeniera de Software

    Arquitecto

    17

    Requerimientos Describir la arquitectura y prioridades del modelo de

    casos de uso

    Anlisis Garantizar la integridad del modelo de anlisis

    Correcto, consistente y legible

    Diseo Garantizar la integridad de los modelos de diseo y

    despliegue

    Implantacin Garantizar la integridad del modelo de implantacin

    Asignar componentes a nodos

    Arquitecto

    Flujos de Trabajo

    Requerimientos Anlisis Diseo Implantacin

  • Ingeniera de Software

    Ingeniero de Casos de Uso

    18

    Anlisis Mantener la integridad de las realizaciones de casos

    de uso

    Diseo Detallar las realizaciones de casos de uso

    Verificar la correspondencia entre anlisis y diseo

    Ingeniero

    de C.U.

    Flujos de Trabajo

    Anlisis Diseo

  • Ingeniera de Software

    Ingeniero de Componentes

    19

    Anlisis Definir y mantener las responsabilidades, atributos,

    relaciones y requisitos especiales de una o varias

    clases del anlisis

    Diseo Definir y mantener las operaciones, mtodos,

    atributos, relaciones y requisitos de implantacin de

    una o ms clases del diseo

    Implantacin Definir y mantener el cdigo fuente de uno o varios

    componentes

    Pruebas Desarrollar componentes de prueba que automatizan

    algunos de los procedimientos de prueba

    Ingeniero de

    Componentes

    Flujos de Trabajo

    Anlisis Diseo Implantacin Pruebas

  • Ingeniera de Software

    Integrador de Sistemas

    20

    Planificar la secuencia de construcciones

    necesarias en cada iteracin

    Integrar cada construccin a partir de sus

    partes implementadas

    Integrador de

    Sistemas

    Flujos de Trabajo

    Implantacin

  • Ingeniera de Software

    Diseador de Pruebas

    21

    Garantizar la integridad del modelo de

    pruebas

    Planear las pruebas Establecer objetivos de prueba apropiados

    Seleccionar y describir casos de prueba y los

    procedimientos de pruebaDiseador

    de Pruebas

    Flujos de Trabajo

    Pruebas

  • Ingeniera de Software

    Ingeniero de Pruebas de Integracin

    22

    Ejecutar las pruebas de integracin

    Verificar el correcto funcionamiento de

    componentes

    Documentar los defectos

    Ing. de Pruebas

    de Integracin

    Flujos de Trabajo

    Pruebas

  • Ingeniera de Software

    Ingeniero de Pruebas del Sistema

    23

    Ejecutar las pruebas del sistema para cada

    iteracin completa

    Verificar los resultados en conjunto con los

    usuarios finales

    Documentar los defectos

    Facilidad para tener familiaridad con el

    comportamiento observable del sistemaIng. de Pruebas

    del Sistema

    Flujos de Trabajo

    Pruebas

  • Ing. Lenin Huayta Flores

    Modelos y Procesos

    Ingeniera de Software

  • Ingeniera de Software

    Significado del proceso

    Conjunto ordenado de tareas como Proceso: serie

    de pasos con actividades, restricciones y recursos

    que producen una salida de cierto tipo.

    Cuando el proceso involucra la construccin de un

    producto, a veces se menciona como Ciclo de Vida

    (del producto).

    25

  • Ingeniera de Software

    Siguiendo un Proceso

    Un proceso es un conjunto de procedimientos

    (receta), organizado para construir productos que

    satisfacen una seria de objetivos y estndares.

    Los procesos son importantes porque imponen

    consistencia y estructura en un conjunto de

    actividades.

    Sabemos cmo hacer algo bien y queremos forzar

    que otros lo hagan de la misma forma.

    26

  • Ingeniera de Software

    Escribiendo un Proceso(un programa que otros deben seguir)

    Prescribir todas las actividades principales

    Usa recursos sujeto a restricciones

    Puede estar compuesto de subprocesos

    Cada actividad tiene un criterio de entrada y otro de

    salida

    Las Actividades estn organizadas en una

    secuencia.

    Establecer los objetivos de cada actividad.

    27

  • Ingeniera de Software

    Modelos de Procesos de Software

    Prescripciones de la forma en que el desarrollo de

    software debera llevarse a cabo.

    Descripciones de la forma en que el desarrollo se

    lleva a cabo realmente.

    Cada modelo de desarrollo de software incluye los

    requerimientos del sistema como entrada y el

    producto librado al uso como salida.

    28

  • Ingeniera de Software

    Modelo Cascada

    29

    Definicin de Requerimientos

    Diseo del Sistema y Software

    Implementacin y Pruebas de Unidad

    Integracin y Prueba

    Operacin y Mantenimiento

  • Ingeniera de Software

    (Proceso de desarrollo en la realidad)

    30

    ANLISIS DE REQUERIMIENTOS

    DISEO DEL SISTEMA

    DISEO DE PROGRAMAS

    IMPLEMENTACIN DE PROGRAMAS

    PRUEBA UNITARIAPRUEBA DE

    INTEGRACIN

    PRUEBA DEL SISTEMA

    LIBRAR AL USO

    MANTENIMIENTO

  • Ingeniera de Software

    Cascada c/prototipos

    31

    ANALISIS DE REQUERIMIENTOS

    DISEO DEL SISTEMA

    DISEO DE PROGRAMAS

    IMPLEMENTACION DE PROGRAMAS

    PRUEBA UNITARIA Y DE INTEGRACION

    PRUEBA DEL SISTEMA

    PRUEBA DE ACEPTACION

    OPERACION Y MANTENIMIENTO

    PROTOTIPADO

  • Ingeniera de Software

    Modelo V

    32

    Definicin de Requerimientos

    Diseo del Sistema

    Desarrollo de Sub-sistemas

    Integracin de Sistemas

    Instalacin de Sistemas

    Evolucin del Sistema

    Desincorporacin del Sistema

  • Ingeniera de Software

    Modelo de Prototipacin

    33

    LISTA DEREVISIONES

    PROTOTIPARREQUERIMIENTOS

    revisarprototipo

    LISTA DEREVISIONES

    PROTOTIPARDISEO

    LISTA DEREVISIONES

    PROTOTIPARSISTEMA

    REQUERIMIENTOSDEL SISTEMA

    (a veces informales o incompletos)

    PRUEBA

    SISTEMALIBRADOAL USO

  • Ingeniera de Software

    Especificacin Operacional:

    34

    Los requerimientos se ejecutan utilizando

    un producto de software

    EJECUTAR YREVISAR

    ESPECIFICACIONOPERACIONAL(orientada al

    problema)

    ESPECIFICACIONTRANSFORMADA

    (orientada a la implementacin)

    PRUEBA

    REQUERIMIENTOSDEL SISTEMA

    (a veces informales o incompletos)

    SISTEMALIBRADOAL USO

  • Ingeniera de Software

    Modelo Transformacional

    35

    TRANSFORM. N..

    Comparar con requerimientos; actualizar si se

    necesita

    ESPECIFICACIONFORMAL

    TRANSFORM. 2 PRUEBA

    REQUERIMIENTOSDEL SISTEMA

    (a veces informales o incompletos)

    SISTEMALIBRADOAL USO

    TRANSFORM. 1

    REGISTRO FORMAL DEL DESARROLLO

    Secuencia de transformaciones + sus justificaciones

  • Ingeniera de Software

    Desarrollo en Fases

    36

    Usarliberacin 1

    Usarliberacin 2

    Usarliberacin 3

    Construirliberacin 1

    Construirliberacin 2

    Construirliberacin 3

    Tiempo

    DES

    AR

    RO

    LLA

    DO

    RES

    USU

    AR

    IOS

    Sistemas en Desarrollo

    Sistemas en Produccin

  • Ingeniera de Software

    Incrementos e Iteraciones

    37

    DESARROLLO INCREMENTAL

    DESARROLLO ITERATIVO

  • Ingeniera de Software

    Modelo Espiral

    38

  • Ingeniera de Software

    Modelo Espiral

    39

  • Ingeniera de Software

    Modelo de Proceso y de Ciclo de Vida

    La preocupacin por el Proceso (fin de los 80) es

    ms reciente que la definicin del Ciclo de Vida

    (fin de los 60)

    En general se asocia a la nocin de modelo de

    proceso un mayor detalle y precisin

    Los modelos previos presentan en general poco nivel

    de detalle y fueron propuestos originalmente como

    modelos de Ciclo de Vida

    40

  • Ingeniera de Software

    Herramientas y Tcnicas para el Modelado de Procesos

    Elegir un lenguaje o notacin

    Tener claro objetivos del modelo

    Detalle (granularidad)

    Describir-prescribir

    Predecir (requiere agregar relaciones cuantitativas entre

    elementos)

    Ejecutar (asistir en el uso)

    Vamos a ver algunos ejemplos

    41

  • Ingeniera de Software

    Modelo de Factores que inciden en la productividad (Abdel-Hamid 96)

    Porcin de personal experiente

    Productividad potencial nominal

    de personal experiente

    Productividad potencial

    nominal de personal nuevo

    Productividad potencial

    promedio nominal

    Productividad

    potencial

    % completado del

    proyecto

    Multiplicador de

    aprendizaje

    Productividad de Desarrollo

    Porcin real de persona-da

    en el proyecto

    Sobre/bajo Tolerancia

    del trabajo

    Prdidas por motivacin y

    comunicacin

    Presin del Calendario

    Esfuerzo adicional de

    omunicaciones

    Tamao del equipo

    42

  • Ingeniera de Software

    Estructura del Desarrollo de Software (Abdel-Hamid 96)

    43

    PRODUCCION DE SOFTWARE GESTION DE RRHH

    PLANIFICACION CONTROL

    Prdidas del Proceso

    Deteccin yCorreccin de Errores

    Esfuerzo de Q A

    Tasa deDesarrollode SW

    Tasa deErrores

    ProductividadPotencial

    ProductividadReal

    Aprendizaje

    Tasa deIncorporacinDe personal

    Tasa debajas

    Personal

    Mezcla de experiencia del personal

    Nivel de Personal percibido como necesario

    Presin del Calendario

    Ajustes aPersonal yCalendario

    Fecha Planificada de Terminacin

    Fecha estimada de Terminacin

    Productividad Percibida

    Tareas percibidascomo terminadas

    Esfuerzo faltantepercibido

    Nivel de precisinen medir el avance

    Estado percibido del proyecto

  • Ingeniera de Software

    Modelado de Proceso Para que?

    Entender el proceso (real o propuesto)

    Revelar inconsistencias, problemas (base para la mejora)

    Simulacin del proceso y planificacin del proyecto

    Poco nivel de detalle adicional necesario

    Factores que afectan la productividad global.

    Relaciones (cuantificadas) entre los factores.

    Soportados por software que simulan el proceso.

    Gua en la ejecucin real del proceso

    Se precisa agregar mltiples detalles

    44

  • Ingeniera de Software

    Modelo de Ingeniera del Proceso

    Especificacin - establecer los requerimientos y

    restricciones del sistema

    Diseo - Producir un modelo en papel del sistema

    Manufactura - construir el sistema

    Prueba - verificar que el sistema cumpla con las

    especificaciones requeridas

    Instalacin - entregar el sistema al usuario y

    asegurar su operacionalidad

    Mantenimiento - reparar fallos en el sistema cundo

    sea descubiertos

    45

  • Ingeniera de Software

    Problemas en el Modelo del Proceso

    Normalmente, las especificaciones son incompletas

    o anmalas

    No existe una distincin precisa entre la

    especificacin, el diseo y la manufactura

    Solo hasta que el sistema se ha producido se puede

    probar

    El software no se puede remplazar siempre durante

    el mantenimiento

    46

  • Ingeniera de Software

    Modelos Genricos del Desarrollo de Software

    Modelo de Cascada

    Separar en distintas fases de especificacin y desarrollo.

    Desarrollo Evolutivo

    La especificacin y el desarrollo estn intercalados.

    Prototipado

    Un modelo sirve de prototipo para la construccin del

    sistema final.

    Transformacin Formal

    Un modelo matemtico del sistema se transforma

    formalmente en la implementacin.

    Desarrollo basado en Reutilizacin

    El sistema es ensamblado a partir de componentes

    existentes.

    47

  • Ingeniera de Software

    Modelo Cascada (grfica)

    48

    Definicin de Requerimientos

    Diseo del Sistema y Software

    Implementacin y Pruebas de Unidad

    Integracin y Prueba

    Operacin y Mantenimiento

  • Ingeniera de Software

    Fases del Modelo de Cascada

    Anlisis de requerimientos y definicin.

    Diseo del sistema y del software.

    Implementacin y prueba de unidades

    Integracin y prueba del sistema.

    Operacin y mantenimiento.

    La dificultad en esta modelo reside, en la dificultad

    de hacer cambios entre etapas.

    49

  • Ingeniera de Software

    Desarrollo Evolutivo

    50

    DesarrolloDesarrollo

    Especificacin

    Desarrollo

    Validacin

    Versin Inicial

    VersionesIntermedias

    VersinFinal

    Descripcin

  • Ingeniera de Software

    Desarrollo Evolutivo

    Problemas

    Poca visibilidad en el proceso

    Los sistemas estn pobremente especificados

    Se requieren habilidades especiales.

    Aplicabilidad

    Para sistemas interactivos pequeos o medianos.

    Para partes de sistemas grandes (p.ej. la interfaz de

    usuario).

    Para sistemas de corta vida.

    51

  • Ingeniera de Software

    Prototipado

    Prototipado exploratorio

    El objetivo es trabajar con clientes hasta evolucionar a un

    sistema final, a partir de una especificacin inicial. Se debe

    comenzar con unas especificaciones bien entendidas.

    Prototipado de throw-away.

    El objetivo es entender los requerimientos del sistema. Se

    puede comenzar con especificaciones poco entendidas.

    52

  • Ingeniera de Software

    Problemas y Riesgos con los Modelos

    Cascada.

    Alto riesgo en sistemas nuevos debido a problemas en las

    especificaciones y en el diseo.

    Bajo riesgo para desarrollos bien comprendidos utilizando

    tecnologa conocida.

    Prototipado.

    Bajo riesgo para nuevas aplicaciones debido a que las

    especificaciones y el diseo se llevan a cabo paso a paso.

    Alto riesgo debido a falta de visibilidad

    Evolutivo.

    Alto riesgo debido a la necesidad de tecnologa avanzada y

    habilidades del grupo desarrollador.

    53

  • Ingeniera de Software

    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-costes

    en cuanto a planeacin y costos

    El riesgo es proporcional al monto de la calidad de

    la informacin disponible. Cuanto menos

    informacin, mayor el riesgo.

    54

  • Ingeniera de Software

    Modelos de Procesos Hbridos

    Los sistemas grandes estn hechos usualmente de

    varios subsistemas.

    No es necesario utilizar el mismo modelo de proceso

    para todos los subsistemas.

    El prototipado es recomendado cuando existen

    especificaciones de alto riesgo.

    El modelo de cascada es utilizado en desarrollos

    bien comprendidos.

    55

  • Ingeniera de Software

    Modelo de Proceso de Espiral

    56

  • Ingeniera de Software

    Fases del Modelo de Espiral

    Planteamiento de Objetivos

    Se identifican los objetivos especficos para cada fase del

    proyecto.

    Identificacin y reduccin de riesgos.

    Los riesgos clave se identifican y analizan, y la informacin

    sirve para minimizar los riesgos.

    Desarrollo y Validacin.

    Se elige un modelo apropiado para la siguiente fase del

    desarrollo.

    Planeacin.

    Se revisa el proyecto y se trazan planes para la siguiente

    ronda del espiral.

    57

  • Ingeniera de Software

    Plantilla para una ronda del espiral

    Objetivos.

    Restricciones.

    Alternativas.

    Riesgos.

    Resolucin de riesgos.

    Resultados.

    Planes.

    Garantas (commitments).

    58

  • Ingeniera de Software

    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 verificacin.

    Invertir en herramientas de prueba y validacin.

    59

  • Ingeniera de Software

    Mejoramiento de la Calidad

    Riesgos.

    No existen mejoras en el software baratas.

    Las mejoras en la calidad pueden incrementar costes

    excesivamente

    Los nuevos mtodos pueden causar bajas en el personal.

    Solucin de riesgos.

    Estudio de la literatura existente.

    Proyecto piloto.

    Bsqueda de todos los componentes reutilizables

    potenciales.

    Identificacin del soporte disponible de herramientas

    Entrenamiento al personal y seminarios motivacionales.

    60

  • Ingeniera de Software

    Mejoramiento de la Calidad

    Resultados.

    La experiencia en mtodos formales es limitada - es muy

    difcil cuantificar las mejoras.

    Limitado el soporte en herramientas para sistemas de

    desarrollo de la compaa.

    Existencia de componentes reutilizables, pero poco soporte

    de herramientas de reuso.

    Planes.

    Explorar la opcin de la reutilizacin a mas detalle.

    Desarrollar herramientas prototipo para reutilizacin.

    Explorar el esquema de certificacin de componentes.

    Garantas.

    Explorar los siguientes 18 meses.

    61

  • Ingeniera de Software

    Modelo de Espiral para la elaboracin de un catlogo

    Objetivos

    Desarrollar un catlogo 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 informacin.

    Comprar bases de datos y desarrollar el catlogo utilizando

    la BD.

    Desarrollar catlogo de propsito especial.

    62

  • Ingeniera de Software

    Mejoramiento de la Calidad

    Riesgos.

    Puede ser imposible satisfacer las restricciones.

    La funcionalidad del catlogo puede ser inapropiada.

    Solucin de riesgos.

    Desarrolla un prototipo del catlogo (utilizando lenguajes de

    cuarta generacin 4GL y una BD existente) para clarificar

    los requerimientos.

    Relaja restricciones de tiempo.

    63

  • Ingeniera de Software

    Mejoramiento de la Calidad

    Resultados.

    Los sistemas de captura de informacin son inflexibles. Los

    requerimientos no pueden cumplirse.

    El prototipo que utiliza la BD puede mejorarse para

    completar el sistema.

    El desarrollo de un catlogo de propsito especfico no es

    costeable.

    Planes.

    Desarrolla el catlogo utilizando una BD existente

    mejorando el prototipo y la interfaz de usuario.

    Garantas.

    Explorar los siguientes 12 meses.

    64

  • Ingeniera de Software

    Flexibilidad en el modelo de Espiral

    Para sistemas bien comprendidos utiliza el Modelo

    de Cascada. La fase de anlisis de riesgos es

    relativamente fcil.

    Con requerimientos estables y sistemas de

    seguridad crticos, utiliza modelos formales.

    Con especificaciones incompletas, utiliza el modelo

    de prototipado.

    Pueden utilizarse modelos hbridos en distintas

    partes del desarrollo.

    65

  • Ingeniera de Software

    Ventajas del Modelo de Espiral

    Centra su atencin en la reutilizacin de

    componentes y eliminacin de errores en

    informacin descubierta en fases iniciales.

    Los objetivos de calidad son el primer objetivo.

    Integra desarrollo con mantenimiento.

    Provee un marco de desarrollo de hardware/

    software.

    66

  • Ingeniera de Software

    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 identificacin de

    riesgos.

    Requiere refinamiento para uso generalizado.

    67

  • Ingeniera de Software

    Visibilidad de Procesos

    Los sistemas de software son intangibles por lo que

    los administradores necesitan documentacin 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 iteracin

    entre procesos.

    El tiempo para revisar y aprobar documentos es

    significativo.

    El modelo de cascada es an el modelo basado en

    resultados mas utilizado.

    68

  • Ingeniera de Software

    Documentos del Modelo de Cascada

    Actividad Documentos Producidos

    Anlisis de Requerimientos Documento de Requerimientos

    Definicin de Requerimientos Documento de Requerimientos

    Especificacin del Sistema Especificacin Funcional, Plan de Pruebas de Aceptacin

    Diseo Arquitectural Especificacin de la Arquitectura, y Plan de Pruebas del

    Sistema

    Diseo de Interfaces Especificacin de las Interfaces y Plan dePpruebas de

    Integracin

    Diseo Detallado Especificacin del diseo y Plan de prueba de Unidades

    Codificacin Cdigo de Programa

    Prueba de Unidades Reporte de prueba de unidades

    Prueba de Mdulos Reporte de prueba de mdulos

    Prueba de Integracin Reporte de prueba de integracin y Manual de usuario

    final

    Prueba del Sistema Reporte de prueba del sistema

    Prueba de Aceptacin Sistema final mas la documentacin

    69

  • Ingeniera de Software

    Visibilidad del Modelo

    Modelo de Proceso Visibilidad del Proceso

    Modelo de Cascada Buena visibilidad, cada actividad produce un documento o

    resultado.

    Desarrollo Evolutivo Visibilidad pobre, muy caro al producir documentos en

    cada iteracin.

    Modelos Formales Buena visibilidad, en cada fase deben producirse

    documentos.

    Desarrollo orientado a la reutilizacin Visibilidad moderada. Importante contar con

    documentacin de componentes reutilizables.

    Modelo de Espiral Buena visibilidad, cada segmento y cada anillo del espiral

    debe producir un documento.

    70

  • Ingeniera de Software

    Responsabilidad profesional

    Los Ingenieros de software no solo deben considerar

    aspectos tcnicos. Deben tener una visin mas

    amplia, en lo tico, social y profesional.

    No existe estatutos para ninguno de estos aspectos.

    Desarrollo de sistemas militares.

    Piratera.

    Que es mejor para la profesin de Ingeniero de Software.

    71

  • Ingeniera de Software

    Aspectos ticos

    Confidencialidad.

    Competencia.

    Derechos de propiedad intelectual.

    Mal uso de la computadora.

    72

  • Ingeniera de Software

    Resumen

    La Ingeniera de software concierne a las teoras,

    mtodos y herramientas para el desarrollo,

    administracin y evolucin de productos de

    software.

    Los productos de software consisten de programas y

    documentacin. Los atributos de los productos son,

    mantenabilidad, dependabilidad, eficiencia y

    usabilidad.

    El proceso de software consiste en aquellas

    actividades involucradas en el desarrollo de

    software.

    73

  • Ingeniera de Software

    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 anlisis de riesgos.

    La visibilidad del proceso involucra la creacin de

    documentos o resultados de las actividades.

    Los Ingenieros de software deben tener

    responsabilidades ticas, sociales y profesionales.

    74

  • Ingeniera de Software

    OtrosIEEE-Std1074-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,

    75

  • Ingeniera de Software

    Estndar ESA para el Ciclo de Vida

    76