02 Proceso Del Software

Embed Size (px)

Citation preview

  • 7/23/2019 02 Proceso Del Software

    1/48

    Clase 2:

    Proceso del Software

    Ingeniera de Software

    Clase 1

    Hugo R. Cordero S.

  • 7/23/2019 02 Proceso Del Software

    2/48

    Objetivos2

    Comprender las actividades fundamentales delproceso de software

    Conocer los modelos del proceso del software

    entendindolos como procesos genricos Comprender en qu casos es recomendable aplicar

    ciertos modelos de procesos

  • 7/23/2019 02 Proceso Del Software

    3/48

  • 7/23/2019 02 Proceso Del Software

    4/48

    Ejemplos de proceso

    Para preparar una cena

    Personas: Empleados de unaempresa de catering

    Producto: La cena que se sirve

    Proyecto: La secuencia deacciones de servir una cenaconcreta

    Proceso: Las instrucciones

    sobre cmo se sirve una cena

    Para el proyecto el curso

    Personas: Estudiantes del curso

    Producto: Aplicacin que elijan

    Proyecto: El proyecto del cursopara implementar la aplicacin

    Proceso: El conjunto deactividades que llevarn a lacreacin de la aplicacin

    4

  • 7/23/2019 02 Proceso Del Software

    5/48

    Proceso del software5

    El proceso de desarrollo del software tiene como propsito laproduccin eficaz y eficiente de un producto de software querena los requisitos del cliente.

    Es un proceso intensamente intelectual, afectado por lacreatividad y juicio de las personas involucradas.

    El proceso de desarrollo de software no es nico. No existe unproceso de software universal que sea efectivo para todos loscontextos de proyectos de desarrollo

  • 7/23/2019 02 Proceso Del Software

    6/48

    Proceso del software y ciclo devida

    6

    Proceso: conjunto de actividades que conducen a la creacinde un producto software

    Ciclo de vida: conjunto de estados por los cuales pasa el

    software

  • 7/23/2019 02 Proceso Del Software

    7/48

    Grupos de procesos especficos delsoftware

    7

    Procesos de acuerdo Adquisicin, suministro

    Procesos de organizacin del proyecto

    Gestin del modelo de ciclo de vida, gestin de la infraestructura,gestin de recursos humanos

    Procesos del proyecto Planificacin del proyecto, control y evaluacin del proyecto, gestin

    de las decisiones, gestin de riesgos, gestin de la configuracin,gestin de la informacin, medicin

    Procesos tcnicos Definicin de requisitos de los stakeholders, anlisis de requisitos del

    sistema, diseo arquitectnico del sistema

  • 7/23/2019 02 Proceso Del Software

    8/48

    Grupos de procesos especficos delsoftware

    8

    Procesos de implementacin del software Anlisis de requisitos, diseo arquitectnico, diseo detallado,

    construccin, integracin, pruebas

    Procesos de soporte del software Gestin de la documentacin, gestin de la configuracin,

    aseguramiento de la calidad, verificacin, validacin, revisinconjunta, auditora, resolucin de problemas

    Procesos de reutilizacin del software Ingeniera del dominio, gestin de assets (activos), gestin del

    programa de reutilizacin

  • 7/23/2019 02 Proceso Del Software

    9/48

    Actividades fundamentales9

    Especificacin de software: Se debe definir la funcionalidady restricciones operacionales que debe cumplir el software.

    Diseo e Implementacin: Se disea y construye el software

    de acuerdo a la especificacin. Validacin: El software debe validarse, para asegurar que

    cumpla con lo que quiere el cliente.

    Evolucin: El software debe evolucionar, para adaptarse alas necesidades del cliente.

  • 7/23/2019 02 Proceso Del Software

    10/48

    Actividades de proteccin osoporte

    10

    Gestin de proyecto de software

    Aseguramiento de la calidad del software

    Gestin de configuracin del software

    Preparacin y produccin de documentos

    Modelado del negocio

    Gestin de reutilizacin

    Revisiones tcnicas formales Mediciones

    Gestin de riesgos

  • 7/23/2019 02 Proceso Del Software

    11/48

    Elementos del proceso de software11

    Relaciones entre los elementos

    Un Artefacto es producido por un Rol en una de susActividades. Los artefactos se especifican utilizando

    Notaciones especficas. Las Herramientas apoyan laelaboracin de artefactos soportando ciertas notaciones.

  • 7/23/2019 02 Proceso Del Software

    12/48

    Modelos del proceso de software12

    Un modelo de proceso, o paradigma de Ingeniera deSoftware, o modelo del ciclo de vida de desarrollo desoftware, es una plantilla o marco que define el proceso a

    travs del cual se crea software Dicho de otra forma, los procesos son instancias de un

    modelo de proceso

    A veces los trminos proceso y modelo de proceso se utilizan

    indistintamente

  • 7/23/2019 02 Proceso Del Software

    13/48

    Modelos del proceso de software13

    Modelos Tradicionales

    Modelo en Cascada

    Basado en Prototipos

    Modelo Estructurado Desarrollo rpido de aplicaciones

    Modelo Incremental

    Modelos Evolutivos

    Modelo evolutivo

    Modelo en Espiral

    Modelo Iterativo

    Desarrollo concurrente

  • 7/23/2019 02 Proceso Del Software

    14/48

    Modelos del proceso de software14

    Modelos Especializados

    Desarrollo basado en componentes

    Proceso unificado de Rational (RUP)

    De mtodos formales Desarrollo orientado a aspectos

    Modelos giles

    Programacin extrema (XP)

    Scrum

    Desarrollo de software adaptativo (ASD)

    Otros como: DSDM, FDD y LD

  • 7/23/2019 02 Proceso Del Software

    15/48

    Modelo en Cascada15

    Este fue el primer modelo de desarrollo de software que sepublic. Se deriv de otros procesos de Ingeniera.

    Toma las actividades fundamentales del proceso como son

    especificacin, desarrollo, validacin y evolucin Tambin conocido como modelo lineal

    Modelo satisfactorio slo en desarrollos conocidos yestables

    http://www.serena.com/docs/agile/papers/

    Managing-The-Development-of-Large-Software-Systems.pdf

    http://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdfhttp://www.serena.com/docs/agile/papers/Managing-The-Development-of-Large-Software-Systems.pdf
  • 7/23/2019 02 Proceso Del Software

    16/48

    Modelo en Cascada16

    Clsico Clsico con retroalimentacin

  • 7/23/2019 02 Proceso Del Software

    17/48

    Modelo en Cascada17

    Versin actual

  • 7/23/2019 02 Proceso Del Software

    18/48

    Modelo en Cascada18

    Variante, modelo en V

  • 7/23/2019 02 Proceso Del Software

    19/48

    Modelo basado en prototipos19

    Un prototipo es un modelo experimental de un sistema o deun componente de un sistema que tiene los suficienteselementos que permiten su uso

    Objetivos: Son un medio eficaz para aclarar los requisitos de los usuarios e

    identificar las caractersticas de un sistema que deben cambiarseo aadirse

    Mediante el prototipo se puede verificar la viabilidad del diseode un sistema

  • 7/23/2019 02 Proceso Del Software

    20/48

    Modelo basado en prototipos20

    Caractersticas

    Es una aplicacin que funciona

    Su finalidad es probar varias suposiciones con respecto a las

    caractersticas requeridas por el sistema Se crean con rapidez

    Evolucionan a travs de un proceso iterativo

    Tienen un costo bajo de desarrollo

    Tipos Desechables, es una versin rudimentaria que posteriormente

    ser desechada

    Evolutivos, se convertir en la versin final del sistema

  • 7/23/2019 02 Proceso Del Software

    21/48

    Modelo basado en prototipos21

    Combinacin de prototipos desechables y evolutivos paralos requisitos poco conocidos

    Conocido como prototipado operativo

  • 7/23/2019 02 Proceso Del Software

    22/48

    Modelo Incremental22

    Modelo incremental segn la ISO/IEC TR 15271:1998

    Se tiene requisitos claros

  • 7/23/2019 02 Proceso Del Software

    23/48

    Modelo Evolutivo23

    La idea detrs de este modelo es el desarrollo de unaimplantacin del sistema inicial, exponerla a los comentariosdel usuario, refinarla en N versiones hasta que se desarrolle

    el sistema adecuado. Gestiona la naturaleza evolutiva del software

  • 7/23/2019 02 Proceso Del Software

    24/48

    Modelo en Espiral24

    Propuesto inicialmente por Boehm, 1988

    El ciclo de desarrollo se representa como una espiral, enlugar de una serie de actividades sucesivas con

    retrospectiva de una actividad a otra Principalmente, rene caractersticas del modelo clsico y de

    prototipos

    Reconoce explcitamente los riesgos a diferencia de otros

    modelos El ciclo ms interno puede relacionarse

    con la factibilidad del sistema

  • 7/23/2019 02 Proceso Del Software

    25/48

    Modelo en Espiral25

  • 7/23/2019 02 Proceso Del Software

    26/48

    Modelo en Espiral26

    Cada ciclo se divide cuatro sectores

    Establecimiento de objetivos

    Se definen objetivos, restricciones y se traza un plan detallado

    Se identifican los riesgos del proyecto

    Valoracin y reduccin del riesgo

    Se realiza el anlisis minucioso de cada uno de los riesgos

    Se dan acciones para reducir el riesgo

  • 7/23/2019 02 Proceso Del Software

    27/48

    Modelo en Espiral27

    Desarrollo y validacin

    Se elige un modelo de desarrollo: prototipos, basado en mtodosformales o en cascada

    Planeacin El proyecto se revisa y se toma una decisin si hay que continuar

    con otro ciclo

    Si se opta continuar se trazan los planes para la siguiente fase

  • 7/23/2019 02 Proceso Del Software

    28/48

    Modelo en Espiral28

    Modelo en espiral de Boston

    Variante del modelo inicial con 6 regiones de tareas

    Se define un eje con diferentes puntos de entrada para

    diferentes tipos de proyectos

    Puntos de Entrada

    Mantenimiento de producto Mejora de producto

    Desarrollo de producto

    Desarrollo de conceptos

  • 7/23/2019 02 Proceso Del Software

    29/48

    Modelo Iterativo29

    Es una forma de reducir la repeticin del trabajo en elproceso de desarrollo y dar oportunidad de retrasar latoma de decisiones en los requisitos hasta adquirir

    experiencia con el sistema. Es una combinacin del Modelo de Cascada y Modelo

    Evolutivo

    Cada iteracin, secuencia lineal secuencial produce un

    incremento del software Un incremento es un producto operacional de una parte del sistema

  • 7/23/2019 02 Proceso Del Software

    30/48

    Modelo Iterativo30

    Especficamente fusiona el modelo lineal secuencial con elde construccin de prototipos

    La primera iteracin suele ser un producto esencial o ncleo

    Requisitos bsicos

    Muchas funciones suplementarias se dejan para despus

  • 7/23/2019 02 Proceso Del Software

    31/48

    Modelo de desarrollo concurrente31

    El modelo de desarrolloconcurrente es un modelo de tipode red donde todas las personasactan simultneamente o al

    mismo tiempo Se puede representar en forma

    de esquema como una serie deactividades tcnicas importantes,tareas y estados asociados aellas

  • 7/23/2019 02 Proceso Del Software

    32/48

    Modelo basado en Componentes32

    Las unidades de software reutilizables puede ser dediferentes tamaos:

    Sistemas de aplicaciones

    Componentes Funciones

    Modelo orientado a la reutilizacin

    Configura aplicaciones a partir de componentes de

    software preparados Se enmarca en un contexto ms amplio: ingeniera del

    software basada en componentes

  • 7/23/2019 02 Proceso Del Software

    33/48

    Modelo basado en Componentes33

    Un componente es una unidad ejecutable e independiente

    Los componentes publican su interfaz y todas lasinteracciones son a travs de ella

    Una interfaz que se suministra define los servicios que ofrece elcomponente

    Una interfaz que se solicita especifica qu servicios deben estardisponibles

  • 7/23/2019 02 Proceso Del Software

    34/48

    Modelo basado en Componentes34

    Tiene un enfoque iterativo y evolutivo

  • 7/23/2019 02 Proceso Del Software

    35/48

    Modelo basado en Componentes35

    Para el desarrollo con reutilizacin:

    Debe ser posible encontrar los componentes reutilizablesapropiados

    Se debe confiar en que los componentes que se utilizan secomportan conforme a lo especificado

    Los componentes deben tener documentacin asociada paraayudar a comprenderlos y adaptarlos a una nueva aplicacin

  • 7/23/2019 02 Proceso Del Software

    36/48

    Proceso unificado36

    Ms conocido por su especificacin ms detallada dadapor Rational, como: Proceso Unificado de Rational (RUP)

    Definido por Rational Software Corporation:

    Evolucin del proceso Objectory (Orientado a Objetos) Utilizacin de UML como lenguaje de modelado

    Creado en 1996, posteriormente comprado por IBM en el 2003

    Mantiene un conjunto de mtodos adaptables al contexto

    y necesidades de cada organizacin

    Es una implementacin del modelo en espiral

  • 7/23/2019 02 Proceso Del Software

    37/48

  • 7/23/2019 02 Proceso Del Software

    38/48

    Proceso unificado38

    Fases

    Inicio: se define el alcance del proyecto y se desarrollan loscasos de negocio

    Elaboracin: se planifica el proyecto, se especifican endetalle la mayora de los casos de uso y se disea laarquitectura del sistema

    Construccin: se construye el producto

    Transicin: el producto se convierte en versin beta. Secorrigen problemas y se incorporan mejoras sugeridas en larevisin

  • 7/23/2019 02 Proceso Del Software

    39/48

    Proceso unificado39

    Dentro de cada fase se puede, a su vez, descomponer eltrabajo en iteraciones con sus incrementos resultantes

    Cada fase termina con un hito, cada uno de los cuales se

    caracteriza por la disponibilidad de un conjunto decomponentes de software

    Objetivos de los hitos:

    Toma de decisiones para continuar con la siguiente fase

    Controlar el progreso del proyecto

    Proporcionar informacin para la estimacin de tiempo yrecursos de proyectos sucesivos

  • 7/23/2019 02 Proceso Del Software

    40/48

    Proceso unificado40

    Cada ciclo concluye con una versin del producto para losclientes

  • 7/23/2019 02 Proceso Del Software

    41/48

  • 7/23/2019 02 Proceso Del Software

    42/48

    Cuadro comparativo42

    MODELO VENTAJAS /DESVENTAJAS APLICABILIDAD

    MODELO EN CASCADA

    Los proyectos raras veces siguenuna evolucin secuencial

    Utilizado cuando existenespecificaciones amplias de losrequerimientos del cliente.

    No todos los requisitos sonexpuestos, al principio, de formaexplcita como requiere este

    modelo.

    El cliente debe tener paciencia, yaque la aplicacin slo estardisponible en un estado muyavanzado del proyecto.

    MODELO BASADO EN

    PROTOTIPOS

    El cliente puede pensar que elprototipo es una versin acabada.

    Se utiliza si en el mercado no seencuentra el producto pero elcliente desea resultados

    inmediatos.

    Pueden llegar a pasarse por alto lacalidad del software global o elmantenimiento a largo plazo.

    Conveniente en caso de sernecesario desarrollar mdulos

    Las herramientas elegidas puedenser inadecuadas.

    Para sistemas interactivospequeos o de tamao pequeo

    Alto grado de participacin delusuario

    Para sistemas con vida corta.

  • 7/23/2019 02 Proceso Del Software

    43/48

    Cuadro comparativo43

    MODELO VENTAJAS /DESVENTAJAS APLICABILIDAD

    MODELO INCREMENTAL

    Los clientes no tienen que esperarhasta tener el sistema completo. Elprimer incremento satisface losrequisitos ms crticos.

    Reemplazar el antiguo desarrollocon uno nuevo que satisfaga lasnuevas necesidades segn lasredefiniciones del problema

    Los primeros incrementos sirvencomo prototipo y ayudan en la tareade detectar los posteriores requisitosManejo de Versiones

    Existe un riesgo bajo de fallar en elproyecto total.

    Puede ser difcil ajustar losrequisitos a los incrementos.

    MODELO ESPIRAL

    Requiere comunicacin permanentecon el cliente por lo tanto si secambia el contacto con le cual serealiza desarrollo es necesario queest al tanto de lo realizado y lopendiente, cliente debe ser granconocedor del sistema.

    Utilizado para el desarrollo deaplicaciones complejas y/oespecficas. (Ej. InvestigacinGentica)

  • 7/23/2019 02 Proceso Del Software

    44/48

    Cuadro comparativo44

    MODELO VENTAJAS /DESVENTAJAS APLICABILIDAD

    MODELO DE PROCESO

    UNIFICADO

    Su uso es libre (como decir barralibre, sin condiciones).Hay excelentes textos, que explicanla aplicacin de sus proceso paso apaso.

    Prcticamente cualquier tipo desistema, se puede adaptar a lanecesidad de la organizacin.

    Cuenta con muchas herramientasque ayudan a implementar ymantener los artefactos del modelo

    Proporciona una gua detalladasobre la mayora de actividadesrelacionadas a la construccin delsoftware, lo que contribuye a lamitigacin de los riesgos.

    Es necesario aterrizar losconceptos, lo cual puede resultar unpoco difcil para quien no tengaexperiencia en el uso de procesos deingeniera de software.Generalmente conlleva una excesivadocumentacin.

  • 7/23/2019 02 Proceso Del Software

    45/48

    Ventajas de definir un proceso45

    Es muy importante saber seleccionar un proceso para eldesarrollo del sistema ya que dependiendo del que elija sepueden obtener beneficios como:

    Aumentar la velocidad de desarrollo Predecir tiempos y costos

    Mejorar la calidad, el control y el seguimiento del sistema

    Minimizar gastos y riesgo

    Mejorar las relaciones con los usuarios Definir roles y perfiles

  • 7/23/2019 02 Proceso Del Software

    46/48

  • 7/23/2019 02 Proceso Del Software

    47/48

    Preguntas?47

    Qu proceso de software utilizara? Por qu?

  • 7/23/2019 02 Proceso Del Software

    48/48

    Referencias48

    Ingeniera de Software. Un enfoque desde la gua SWEBOK (1ra. edic.) Captulo 2: Modelos y procesos

    Ingeniera del Software (9na edicin) Ian Sommerville

    Captulo 2: Procesos de Software

    Ingeniera de Software: Un enfoque prctico (7ma edicin) Roger S.Pressman

    Captulo 2: Modelos del proceso

    Links:

    http://www.monografias.com/trabajos96/procesos-de-software/procesos-

    de-software.shtml

    http://lopezjesusb.blogspot.com/

    http://www.cs.odu.edu/~price/cs451/Lectures/01overview/process2/process2_htsu2.html

    http://www.ambysoft.com/onlineWritings.html

    http://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://lopezjesusb.blogspot.com/http://www.cs.odu.edu/~price/cs451/Lectures/01overview/process2/process2_htsu2.htmlhttp://www.cs.odu.edu/~price/cs451/Lectures/01overview/process2/process2_htsu2.htmlhttp://www.ambysoft.com/onlineWritings.htmlhttp://www.ambysoft.com/onlineWritings.htmlhttp://www.ambysoft.com/onlineWritings.htmlhttp://www.ambysoft.com/onlineWritings.htmlhttp://www.cs.odu.edu/~price/cs451/Lectures/01overview/process2/process2_htsu2.htmlhttp://www.cs.odu.edu/~price/cs451/Lectures/01overview/process2/process2_htsu2.htmlhttp://www.cs.odu.edu/~price/cs451/Lectures/01overview/process2/process2_htsu2.htmlhttp://www.cs.odu.edu/~price/cs451/Lectures/01overview/process2/process2_htsu2.htmlhttp://lopezjesusb.blogspot.com/http://lopezjesusb.blogspot.com/http://lopezjesusb.blogspot.com/http://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtmlhttp://www.monografias.com/trabajos96/procesos-de-software/procesos-de-software.shtml