Está en la página 1de 52

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

QUE QUEREMOS DECIR CON PROCESO DE DESARROLLO?

Deseos, necesidades, Especificaciones,

Software

3. EL PROCESO DE DESARROLLO DE SOFTWARE

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

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

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

EL GRADO DE PRECISIN CON QUE SE LLEVE A CABO CADA PASO INFLUIR EN EL RESULTADO
Me 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

INGENIERA E INGENIERA DEL SOFTWARE


Donde nos encontramos? Que hace un Ingeniero? Definiciones de Ingeniera del software Tcnicas bsicas utilizadas histricamente

3. EL PROCESO DE DESARROLLO DE SOFTWARE

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

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

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. 11
3. 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 INGENIERAS


Histricamente 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

Pruebas
17

3. EL PROCESO DE DESARROLLO DE SOFTWARE

EN EL DESARROLLO DE SOFTWARE NOS ENCONTRAMOS CON LA SIGUIENTE SITUACIN


Ciclos de Vida del SOFTWARE Metodologas de Desarrollo del SOFTWARE

3. EL PROCESO DE DESARROLLO DE SOFTWARE

18

CICLO DE VIDA DEL SOFTWARE


Consiste 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 diseo
Aplicacin

Codificacin y Depuracin
Test y pruebas previas a la OPERACIN

Codificacin

Validacin Instalacin, Explotacin


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

Codificacin
3. EL PROCESO DE DESARROLLO DE SOFTWARE

24

EL HELADO DE CUCURUCHO

Identificacin de Necesidades
Especificacin Esencial Especificacin Fsica

USUARIOS Explotacin CLIENTES Validacin

ANALISTA Empaquetado Integracin

Diseo DISEADORES Y CODIFICADORES

Codificacin
3. EL PROCESO DE DESARROLLO DE SOFTWARE

25

EL MODELO REAL

Identificacin de Necesidades
Especificacin Esencial

Explotacin

Validacin

Especificacin Fsica

Empaquetado

Diseo

Integracin

Codificacin
3. 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 DESECHABLES


Al 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

o
Requerimientos
Requerimientos

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 rpido
3. EL PROCESO DE

Prototipo Verificacin Experimentar Validacin DESARROLLO DE SOFTWARE

32

REUTILIZACIN DE SOFTWARE
Tiene 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, verificar
3. EL PROCESO DE DESARROLLO DE SOFTWARE

35

METODOLOGAS DE DESARROLLO DEL SOFTWARE


Mtodos informales Mtodos Semiformales Mtodos Formales

3. EL PROCESO DE DESARROLLO DE SOFTWARE

36

MTODOS INFORMALES
Joaqun 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) Mtrica


Mtodos Orientados a Objetos OMT UML

3. EL PROCESO DE DESARROLLO DE SOFTWARE

38

MTODOS ESTRUCTURADOS
Mtodos Orientados a la Estructura de los Datos Mtodos de flujo de datos

PROCESOS

DATOS
3. 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 DESARROLLO


Hay 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 Proceso


Medicin del Proceso Definicin del Proceso Control Bsico

Optimizacin

Gestionado

Definido

Repetible
3. EL PROCESO DE DESARROLLO DE SOFTWARE

Inicial
45

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

RESUMEN
Hemos 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