ciclo de vida del software
TRANSCRIPT
E L P R O C E S O D E D E S A R R O L L O D E S O F T WA R E
1
QUE QUEREMOS DECIR CON PROCESO DE DESARROLLO?
Deseos, necesidades, Especificaciones,
Software
3. EL PROCESO DE DESARROLLO DE SOFTWARE
2
INTRODUCCIN AL PROCESO DE DESARROLLO.En general, cuando las personas abordan el desarrollo de cualquier proyecto evolucionan desde ideas abstractas hacia concreciones realizables.
EL PROCESO DE DESARROLLO DE SOFTWARE
3
ES EXTRAO QUE ALGUIEN DIGA:
"Me puse a programar y me sali una contabilidad" Algunas aplicaciones da la impresin de que... Recordar que la probabilidad de que un mono teclee en una maquina de escribir y salga el quijote no es cero
3. EL PROCESO DE DESARROLLO DE SOFTWARE
4
NORMALMENTE EL PLANTEAMIENTO ES:Vamos a desarrollar una contabilidad, Hacer la especificacin. en Visual BASIC .NET , Sql Server, Oracle, C # Realizar el diseo. y se codifica la aplicacin.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
5
EL GRADO DE PRECISIN CON QUE SE LLEVE A CABO CADA PASO INFLUIR EN EL RESULTADOMe podras indicar, por favor, hacia dnde tengo que ir?Eso depende de adnde quieras llegar, contesto el gato. A m no me importa demasiado adnde...empez a explicar Alicia. En ese caso, da igual cualquier direccin interrumpi el Gato. ...Siempre que llegue a alguna parte termin Alicia a modo de explicacin.
Basta que empieces a andar - le aseguro el Gato-, dando un paso tras otro. Alicia en el pas de las maravillas
3. EL PROCESO DE DESARROLLO DE SOFTWARE
6
INGENIERA E INGENIERA DEL SOFTWAREDonde nos encontramos? Que hace un Ingeniero? Definiciones de Ingeniera del software Tcnicas bsicas utilizadas histricamente
3. EL PROCESO DE DESARROLLO DE SOFTWARE
7
DONDE NOS ENCONTRAMOS?
Con Problemas, tendremos que disponer de: Tcnicas de desarrollo que minimicen la complejidad de un sistema software. Mtodos y conceptos que permitan al productor y al cliente explorar la naturaleza del sistema software lo antes posible. Tcnicas que minimicen los efectos devastadores de las modificaciones durante el desarrollo y la explotacin.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
8
QUE HACE UN INGENIERO?
Construir artefactos dentro de unas limitaciones de coste, utilizando el conocimiento y las teoras de la ciencia sobre la cual se basa el artefacto.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
9
DEFINICIN DE LA INGENIERA DEL SOFTWARE (NATO 68)La ingeniera del software es el establecimiento y uso de principios de ingeniera razonables con el objetivo de obtener software econmicamente, que sea de confianza y trabaje eficientemente en las maquinas reales.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
10
DEFINICIN (R.E. FAIRLEY 1985)
Hemos definido la Ingeniera del Software como la disciplina tecnolgica concerniente a la produccin y mantenimiento sistemticos de productos software que son desarrollados y modificados en el tiempo y con los costes estimados... Adems, la Ingeniera del software tiene que ver con cuestiones de gestin que caen fuera del dominio de la programacin tradicional. 113. EL PROCESO DE DESARROLLO DE SOFTWARE
CARACTERSTICAS DE LA INGENIERA DEL SOFTWARE (VAN VLIET 1993)Construccin de programas grandes Controlar la complejidad Cooperacin entre las personas implicadas Evolucin del software Eficiencia en el desarrollo Soporte real a los usuarios
3. EL PROCESO DE DESARROLLO DE SOFTWARE
12
MODELO DE LA INGENIERA DEL SOFTWARE (THAYER 1988)Ingeniera del software Desarrollo de Software Analisis Diseo Codificacin Pruebas Gestin de proyectos Planificacin Organizacin Reclutamiento Direccin Control Metricas Mantenimiento del software de software Fiabilidad Correccin de Errores Usabilidad Modificaciones Flexibilidad Mantenibilidad Reusabilidad Etc.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
13
TCNICAS BSICAS USADAS EN LAS INGENIERASHistricamente se han utilizado tcnicas como: El modelado Divisin del Producto Divisin del Proceso En principio se deberan utilizar estas tcnicas, tambin en informtica .
3. EL PROCESO DE DESARROLLO DE SOFTWARE
14
EL MODELADO.Simplificacin del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrir en la realidad y usarse como base del desarrollo.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
15
DIVISIN DEL PRODUCTO.Se fracciona el producto de modo que cada fragmento lo puede realizar un miembro del grupo de desarrollo.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
16
DIVISIN DEL PROCESO.
Implica dividir el desarrollo del artefacto por fases. Normalmente se habla de especificacin, diseo y fabricacin.
Que ?
Como?
Realizacin
Pruebas17
3. EL PROCESO DE DESARROLLO DE SOFTWARE
EN EL DESARROLLO DE SOFTWARE NOS ENCONTRAMOS CON LA SIGUIENTE SITUACINCiclos de Vida del SOFTWARE Metodologas de Desarrollo del SOFTWARE
3. EL PROCESO DE DESARROLLO DE SOFTWARE
18
CICLO DE VIDA DEL SOFTWAREConsiste en determinar: las fases productivas de un proyecto, los objetivos de cada fase productiva, y los productos obtenidos en cada una de estas fases as como sus caractersticas.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
19
CICLOS DE VIDA DEL SOFTWARE
Se han propuesto muchos ciclos de vida para el desarrollo del software, pero estos son los ms representativos: Poner la cola al burro. Ciclo de vida clsico o en cascada. Construccin rpida de Prototipos Desechables Incremental Evolucin de prototipos Reutilizacin de Software Sntesis automtica de software En espiral.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
20
PONER LA COLA AL BURRO
Se coge a uno o varios informticos, Se les muestra ms o menos el problema, Se les deja solos en un cuarto a oscuras, Transcurrido un tiempo se abre la puerta.3. EL PROCESO DE DESARROLLO DE SOFTWARE
21
CICLO DE VIDA CLSICO O EN CASCADA.La Versin Ideal (Perfecta) El Modelo en V El Helado de Cucurucho El Modelo Real Propuesta de Yourdon
3. EL PROCESO DE DESARROLLO DE SOFTWARE
22
LA VERSIN IDEAL
Requerimientos del Sistema Requerimientos del Software Diseo Preliminar y Detallado
A alguien se le ha ocurrido la Brillante idea de Informatizar ? Investigacin Inicial, Identificacin de Necesidades, Encuesta, etc.Estudio de Viabilidad Anlisis Especificacin Diseo
Especificacin de diseoAplicacin
Codificacin y DepuracinTest y pruebas previas a la OPERACIN
Codificacin
Validacin Instalacin, Explotacin3. EL PROCESO DE DESARROLLO DE SOFTWARE
OPERACIN Y MANTENIMIENTO
23
EL MODELO EN V
Identificacin de Necesidades Especificacin Esencial Especificacin Fsica
Explotacin
Validacin
Empaquetado
Diseo
Integracin
Codificacin3. EL PROCESO DE DESARROLLO DE SOFTWARE
24
EL HELADO DE CUCURUCHO
Identificacin de NecesidadesEspecificacin Esencial Especificacin Fsica
USUARIOS Explotacin CLIENTES Validacin
ANALISTA Empaquetado Integracin
Diseo DISEADORES Y CODIFICADORES
Codificacin3. EL PROCESO DE DESARROLLO DE SOFTWARE
25
EL MODELO REAL
Identificacin de NecesidadesEspecificacin Esencial
Explotacin
Validacin
Especificacin Fsica
Empaquetado
Diseo
Integracin
Codificacin3. EL PROCESO DE DESARROLLO DE SOFTWARE
26
PROPUESTA DE YOURDON
Requerimientos del Usuario Encuesta
Sistema Probado Prueba de Sistema
Especificacin Funcional Necesidades de diseo Rendimiento Preliminar
Anlisis
Subsistemas Probados Prueba de subsistema Mdulos Probados Prueba de Unidad Mdulos Codificados
Estudio del HW
Configuracin Especificacin Final Diseo del Sistema Detallado Especificacin de los Programas
Codificacin
3. EL PROCESO DE DESARROLLO DE SOFTWARE
27
CONSTRUCCIN RPIDA DE PROTOTIPOS DESECHABLESAl igual que otras ingenieras se utilizan los prototipos para que el cliente observe, confirme y mejore el producto Este enfoque es apropiado cuando: El cliente no tiene claro lo que quiere, Al cliente le gustara ver algo similar para poder hacerse una idea de lo que obtendr
3. EL PROCESO DE DESARROLLO DE SOFTWARE
28
EL CICLO DE VIDA DE PROTOTIPOS DESECHABLES ES EL SIGUIENTE:
Obtencin Especificacin
Construccin Prototipo Mejora de la Especificacin
Aceptado Evaluacin Cliente
Ciclo de Vida Clsico
NO Aceptado
3. EL PROCESO DE DESARROLLO DE SOFTWARE
29
EXISTEN DOS CLASES DE PROTOTIPOS
De INTERFACE. Usualmente un modelo de papel o sobre PC en el que se muestran pantallas y listados. De COMPORTAMIENTO: En anchura. Ofrece todos los mens del sistema y simula dbilmente los procesos. En profundidad. Cubre funciones que presentan ambigedades al cliente o a los informticos. Completo pero de baja calidad y rendimiento.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
30
INCREMENTAL
Bloque 1
Requeri mientos
Diseo
Impleme Pruebas ntacin
Bloque N
Requeri mientos
Diseo
Impleme Pruebas ntacin
oRequerimientosRequerimientos
Diseo
Bloque 1
Impleme Pruebas ntacin
Permite el desarrollo concurrente
Diseo
Bloque N
Impleme ntacin
Pruebas
3. EL PROCESO DE DESARROLLO DE SOFTWARE
31
EVOLUCIN DE PROTOTIPOS
Observacin Requerimientos Abstraccin Validacin Especificacin Verificacin Empezamos por los requerimientos ms claros, menos complejos y ms necesarios. Prototipo rpido3. EL PROCESO DE
Prototipo Verificacin Experimentar Validacin DESARROLLO DE SOFTWARE
32
REUTILIZACIN DE SOFTWARETiene como objetivos: reducir el coste del software. Producir sistemas de mayor calidad. Se basa en reutilizar Diseos, programas, mdulos y datos. Es compatible con el prototipo evolutivo.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
33
SNTESIS AUTOMTICA DE SOFTWARE
Requerimientos Informales
Anlisis de Requerimientos Validacin Mantenimiento
Especificacin Formal (Prototipo)
Optimizacin Mecnica
Racionalidad y Decisiones Ajuste (tuning) Desarrollo Formal Programa Fuete
3. EL PROCESO DE DESARROLLO DE SOFTWARE
34
EN ESPIRAL.
Determinar objetivos, alternativas, restricciones
Evaluar alternativas, identificar y resolver riesgos
Acuerdo REVISIN
Planificar las prximas fases
Desarrollar, verificar3. EL PROCESO DE DESARROLLO DE SOFTWARE
35
METODOLOGAS DE DESARROLLO DEL SOFTWAREMtodos informales Mtodos Semiformales Mtodos Formales
3. EL PROCESO DE DESARROLLO DE SOFTWARE
36
MTODOS INFORMALESJoaqun Lucio-Villegas los clasifica como: Quick & Dirty (USA) Match stick box (Europa) Balones p'alante y maricn el ltimo
3. EL PROCESO DE DESARROLLO DE SOFTWARE
37
MTODOS SEMIFORMALES
Mtodos Estructurados SA/SD (structured analysis & structured design) MtricaMtodos Orientados a Objetos OMT UML
3. EL PROCESO DE DESARROLLO DE SOFTWARE
38
MTODOS ESTRUCTURADOSMtodos Orientados a la Estructura de los Datos Mtodos de flujo de datos
PROCESOS
DATOS3. EL PROCESO DE DESARROLLO DE SOFTWARE
39
MTODOS ORIENTADOS A OBJETOS
Los mtodos orientados a objeto describen e implementan los sistemas de informacin desde un punto de vista ontolgico.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
40
MTODOS FORMALES
Los mtodos formales permiten al ingeniero de software especificar, desarrollar y verificar un sistema informtico mediante la aplicacin de una notacin matemtica rigurosa. Utilizando un lenguaje de especificacin formal, un mtodo formal proporciona los medios de especificar un sistema de forma que se aseguren, de forma sistemtica, la consistencia, la completitud y la correccin. Se suelen basar en notaciones matemticas similares a las del lgebra de conjuntos y la lgica
3. EL PROCESO DE DESARROLLO DE SOFTWARE
41
MADUREZ DEL PROCESO EN LA ORGANIZACIN DE DESARROLLO
La misma industria, diferentes niveles de madurez.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
42
MADUREZ DEL PROCESO EN LA ORGANIZACIN DE DESARROLLOHay factores que no quedan claramente reflejados en el ciclo de vida ni en las tcnicas de desarrollo. Los factores no estudiados son: El cumplimiento de los plazos de entrega. La calidad (nmero de errores en el Software). El coste del proyecto.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
43
CMM (CAPABILITY MATURITY MODEL)Proporciona una Gua sobre como controlar los procesos: de desarrollo del software. de mantenimiento. Hacer evolucionar hacia una cultura de: Ingeniera del software. Gestin eficiente.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
44
EVOLUCIN DE LAS ORGANIZACIONES SEGN EL CMM
Control del ProcesoMedicin del Proceso Definicin del Proceso Control Bsico
Optimizacin
Gestionado
Definido
Repetible3. EL PROCESO DE DESARROLLO DE SOFTWARE
Inicial45
CORRELACIN ENTRE ESTIMACIONES Y NIVELES DE MADUREZ
3. EL PROCESO DE DESARROLLO DE SOFTWARE
46
NIVEL INICIAL.
Segn las circunstancias utilizamos un proceso distinto. (algunos caticos) A medida, Poco formalizado, Uso de herramientas informales.
Pocos procesos definidos.El xito depende del esfuerzo individual.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
47
NIVEL DE REPETICIN.
Se tiene procesos estables de desarrollo, con control estadstico.Uso de datos historicos Establecimiento de procesos de gestin de proyecto, para hacer seguimiento de: Coste. Planificacin. Funcionalidad.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
48
NIVEL DE DEFINICIN.Proceso de desarrollo perfectamente definido y estandarizado. Integrado en la organizacin. Bien documentado. Todos los proyectos utilizan una versin documentada y aprobada de proceso.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
49
NIVEL DE GESTIN.Mejoras de calidad sustanciales. Control cuantitativo de productos y proceso a travs de Mediciones del proceso comprensibles. Mediciones de la calidad
3. EL PROCESO DE DESARROLLO DE SOFTWARE
50
NIVEL DE OPTIMIZACIN.A travs de mediciones del proceso utilizando ideas y tecnologas innovadoras obtenemos: Mejoras en calidad y cantidad.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
51
RESUMENHemos visto: Como trabajan los ingenieros, Definiciones de ingeniera del software, El ciclo de vida del software, Metodolgicas de desarrollo Madurez del proceso de desarrollo.
3. EL PROCESO DE DESARROLLO DE SOFTWARE
52