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.pdf7/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.shtmlTop Related