Вы находитесь на странице: 1из 53

Definicin

(1993) La aplicacin mecanismos sistemticos, disciplinados, y cuantificables para el desarrollo, operacin y mantencin de software; esto es la aplicacin de la ingeniera al software. Establecimiento y uso de principios con caracteres de ingeniera apropiados para obtener, eficientemente, software confiable, que opere eficaz y eficientemente en mquinas reales La aplicacin del arte del desarrollo software junto con las ciencias matemticas y computadores para disear, construir, y mantener programas computacionales eficientes y econmicos que logran sus objetivos.
Ing.Jose Meja Viteri Ing.Software II

Estado del arte en Ing. De Software

Es una ciencia rigurosa con fuertes fundamentos matemticos? Es una campo tcnico bien desarrollado con mucho de disciplina de ingeniera? O est realmente en un estado primitivo...

A lo ms una serie de mejores prcticas, desarrolladores de software construyen software y si stos funcionan entonces nosotros estudiamos como ellos lo hicieron. Si stos funcionan por un largo tiempo entonces estudiamos sus procesos de software an ms Ing.Jose Meja Viteri cuidadosamente. Ing.Software II

Construccin de una casa para fido

Puede hacerlo una sola persona Requiere: Modelado mnimo Proceso simple Herramientas simples

Ing.Jose Meja Viteri Ing.Software II

Construccin de una casa

Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas ms sofisticadas Ing.Jose Meja Viteri
Ing.Software II

Construccin de un rascacielos

Ing.Jose Meja Viteri Ing.Software II

Claves en Desarrollo de SI
Notacin
(UML)

Calidad: Ej: CMM

Herramientas
(Ej: Rational Rose)

(Metodologas Ej: ITIL, Extreme Programming, RUP: Rational Unified Ing.Jose Meja Viteri Process) Ing.Software II

Proceso

Abstraccin - Modelado Visual (MV)


El modelado captura las partes esenciales del sistema
Orden Item

envo

Proceso de Negocios
Sistema Computacional
Ing.Jose Meja Viteri Ing.Software II

Notacin (Visual) - Beneficios


Manejar la complejidad

Interfaz de Usuario (Visual Basic, Java, ..)

Lgica del Negocio (C++, Java, ..)

Mltiples Sistemas

Servidor de BDs (C++ & SQL, ..)

Modelar el sistema independientemente del lenguaje de implementacin

Componentes Reutilizados

Ing.Jose Meja Viteri Promover la Reutilizacin Ing.Software II

Por qu la Orientacin a Objetos?

Proximidad de los conceptos de modelado respecto de las entidades del mundo real

Mejora la captura y validacin de requisitos Acerca el espacio del problema y el espacio de la solucin

Modelado integrado de propiedades estticas y dinmicas del mbito del problema

Facilita construccin, mantenimiento y reutilizacin

Podramos dar muchas razones pero hay problemas..


Ing.Jose Meja Viteri Ing.Software II

Problemas en OO
...Los conceptos bsicos de la OO se conocen desde hace dos dcadas, pero su aceptacin todava no est tan extendida como los beneficios que esta tecnologa puede sugerir

Ing.Jose Meja Viteri Ing.Software II

Problemas en OO

Un objeto contiene datos y operaciones que operan sobre los datos, pero ... Podemos distinguir dos tipos de objetos degenerados:

Un objeto sin datos (que sera lo mismo que una biblioteca de funciones) Un objeto sin operaciones, con slo operaciones del tipo crear, recuperar, actualizar y borrar (que se correspondera con las estructuras de datos tradicionales)

Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos


Ing.Jose Meja Viteri Ing.Software II

Proceso de Desarrollo de SW

Ing.Jose Meja Viteri Ing.Software II

El proceso de desarrollo Completo

Se da en un contexto y dependiendo el texto o investigador destaca ms o menos etapas. El ms completo que he visto incluye:
Investigacin Desarrollo Lanzamiento Soporte

Sueo

Tiempo

Al desarrollo es a lo que normalmente se la da ms nfasis en la literatura.


Ing.Jose Meja Viteri Ing.Software II

Qu es un Proceso de Desarrollo de SW?


Sueo Investigacin Desarrollo Lanzamiento Soporte
Tiempo Define Quin debe hacer Qu, Cundo y Cmo debe hacerlo Sistema nuevo Requisitos nuevos Proceso de Desarrollo o modificado o modificados

de Software No existe un proceso de software universal. Las caractersticas de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable
Ing.Jose Meja Viteri Ing.Software II

reas cubiertas por la Ing. de Solftware


La Ingeniera del Software estudia todos los aspectos involucrados en el desarrollo de software, entre los cuales se encuentran: Etapas de un Proyecto de software

Paradigmas / enfoques para enfrentar el desarrollo del proyecto de software (Cascada, Interativo incremental) Tiempo y Costos Aspectos tecnolgicos Gestin de Proyectos
Ing.Jose Meja Viteri Ing.Software II

Etapas /de un proyecto deen un proyecto de Etapas Hitos escenciales rqueridos Software
desarrollo de software:

Oportunidad de Negocio (Hito) Levantamiento Incial de Requerimientos (Dominio del problema)


Entendimiento inicial de la problemtica a resolver Reuniones con Cliente Especificacin inicial de requerimientos

Confeccin de Propuesta
Estimacin de esfuerzos y planificacin del proyecto. Uso

de tcnicas (COCOMO) y estadisticas de proyectos similares al que se dessarrollar, entrevistas a personas con experiencia en proyectos similares al que se desarrollar Definicin del alcance del proyecto Costos

Anlisis OO (Dominio del problema)


Casos de Uso

anlisis dinmico Ing.Jose Meja Viteri Modelos Conceptuales anlisis esttico Ing.Software II Diseo preliminar de interfaces (web, GUI, comandos,

Etapas de un proyecto de Software (cont) Arquitectura (Dominio de la Solucin)

Especificacin de la tecnologa a utilizar (J2EE, .NET)

Especificacin de Patrones de Diseo

Diseo (Dominio de la Solucin)


Diseo de Interfaces (web, gui, comandos, voz) Realizacin de diagramas de secuencia Realizacin de diagramas de clases

Construccin / Codificacin
Entendimiento real del diseo ( solucin) a programar Programacin eficiente y optima del cdigo fuente Comentar en forma entendible y razonable el cdigo

fuente Construccin de programa de TEST Prueba unitaria del desarrollador mediante un programa de TEST

Pruebas Unitarias Pruebas Integradas Ing.Software II


Realizacin Ing.Jose de pruebas de plan Meja Viteri

Etapas de un proyecto de Software (cont)

Capacitacin a Usuarios
Confeccin de Manuales de Usuario Reuniones con usuario final

Puesta en Produccin
Confeccin de plan de puesta en produccin

Marcha Blanca Garanta


Resolucin de Incidencias

Ing.Jose Meja Viteri Ing.Software II

Planificar y Evaluar Proyectos ...


Podr cumplir con los plazos? Estar dentro de lo presupuestado? El cliente quedar satisfecho?

Las Metodologas pueden ser la ayuda que necesitamos, si podemos usarlas correctamente !!
Ing.Jose Meja Viteri Ing.Software II

Procesos, Metodologas

Ing.Jose Meja Viteri Ing.Software II

Qu es una Metodologa ...

Las metodologas imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo ms predecible y eficiente.

Ing.Jose Meja Viteri Ing.Software II

Las giles ms conocidas ...


XP (Programacin Extrema) La familia Cristal de Cockburn Cdigo Abierto ASD (Desarrollo de Software Adaptable) FFD (Desarrollo Manejado por Rasgos) DSDM (Mtodo de desarrollo de sistema dinmico) RUP (Rational Unified Process)

Yo no conozco todas, pero vale la pena conocer al menos una. Aquellas en rojo son la ms populares.
Ing.Jose Meja Viteri Ing.Software II

Metodologas en rea TI

Ms detalles

Ing.Jose Meja Viteri aqu. Ing.Software II

Apostando por RUP ...

Ing.Jose Meja Viteri Ing.Software II

Desarrollo de software: Caractersticas de RUP ...


Guiado y Manejado por Casos de Uso Centrado en la Arquitectura Iterativo e Incremental Desarrollo Basado en Componentes Utilizacin de UML Proceso Integrado
Ing.Jose Meja Viteri Ing.Software II

Principales metodologas en el tiempo


Definicin de Requerimientos Anlisis & Diseo

Construccin/Pruebas
Implementacin y Test Unitarios Integracin y test del sistema Operacin y mantencin

Modelo Tradicional de Cascada

Tiempo

Modelo Iterativo Incremental

Iteracin 1
R A&D C P R

Iteracin 2
A&D C P

Iteracin 3
R A&D C P

Tiempo

Ing.Jose Meja Viteri Ing.Software II

RUP Define Fases de Desarrollo ...


reas de trabajo (Workflow)
Requerimientos

Concepcin

Elaboracin

Construccin

Transicin

Anlisis & Diseo

Esfuerzo Necesario por Actividad

A& D

A& D

A& D

A& D

Construccin

Pruebas

Distribucin

D
Iteracin Preliminar Iteracin 1

D
Iteracin 2

D
Iteracin n

D
Iteracin n+1

... . Ing.Jose .Meja Viteri. . . Ing.Software II

Tiempo

Importancia de los Hitos en RUP ...


Compromiso de recursos para fase elaboracin Aceptacin del cliente

Concepcin

Elaboracin

Construccin

Transicin

Tiempo
Hito Objetivos, visin Hito Arquitectura Hito Capacidad Operacional Liberacin Producto

Ing.Jose Meja Viteri Ing.Software II

Mejores Prcticas de RUP ...

Desarrolle Iterativamente
Use Arquitectura de Componentes

Administre los Requerimientos

Modele Visualmente

Verifique Calidad

Controle los Cambios

Ing.Jose Meja Viteri Ing.Software II

Un Ejemplo: Comparar con V-Model (Motorola)

Ing.Jose Meja Viteri Ing.Software II

Rational Unified Process (RUP)


Rational Unified Process
1998
Pruebas funcionales Pruebas de desempeo Gestin de requisitos Gestin de cambios y configuracin Ingeniera de Negocio Ingeniera de datos Diseo de interfaces

Rational Objectory Process


1996-1997

Objectory Process
1987-1995

UML

Ing.Jose Enfoque Ericsson Meja Viteri Ing.Software II

Otra visin similar con ms Actividades

Ing.Jose Meja Viteri Ing.Software II

Otra visin similar con ms Actividades


Disciplinas o reas de trabajo Modelado del Negocio Requisitos Anlisis y Diseo Implementacin Pruebas Despliegue, distribucin Gestin de configuracin y cambios Gestin del proyecto

Primarios

De Apoyo

Entorno
Ing.Jose Meja Viteri Ing.Software II

... Elementos en RUP


Artefactos Es el Resultado parcial o final que es producido y usado durante el proyecto. Son las entradas y salidas de las actividades Un artefacto puede ser un documento, un modelo o un elemento de modelo Conjuntos de Artefactos
Business Modeling Set Requirements Set Analysis & Design Set Implementation Set Test Set Deployment Set Project Management Set Configuration & Change Management Set Environment Set Ing.Jose Meja Viteri Ing.Software II

Caractersticas Esenciales de RUP


Proceso Dirigido por los Casos de Uso Proceso Iterativo e Incremental Proceso Centrado en la Arquitectura

Ing.Jose Meja Viteri Ing.Software II

Proceso dirigido por los Casos de Uso


Capturar, definir y validar los casos de uso
Casos de Uso integran el trabajo

Requisitos
Anlisis & Diseo

Realizar los casos de uso

Implementacin
Pruebas

Verificar que se satisfacen los casos de uso

Ing.Jose Meja Viteri Ing.Software II

... Proceso dirigido por los Casos de Uso


trace Caso de Uso trace Realizacin de Diseo

Realizacin de Anlisis

trace

trace Pruebas Unitarias

Pruebas Funcionales

X
Caso de Prueba

[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]

Ing.Jose Meja Viteri Ing.Software II

... Proceso dirigido por los Casos de Uso

Ing.Jose Meja Viteri Ing.Software II

Proceso Iterativo e Incremental


El ciclo de vida iterativo se basa en la evolucin de prototipos ejecutables que se muestran a los usuarios y clientes En el ciclo de vida iterativo en cada iteracin se reproduce el ciclo de vida en cascada a menor escala Los objetivos de una iteracin se establecen en funcin de la evaluacin de las iteraciones precedentes
Ing.Jose Meja Viteri Ing.Software II

... Proceso Iterativo e Incremental

Las actividades se encadenan en una minicascada con un alcance limitado por los objetivos de la iteracin
Anlisis Diseo Codific. n veces Pruebas e Integracin
Ing.Jose Meja Viteri Ing.Software II

... Proceso Iterativo e Incremental

Cada iteracin comprende:


Planificar la iteracin (estudio de riesgos) Anlisis de los Casos de Uso y escenarios Diseo de opciones arquitectnicas Codificacin y pruebas. La integracin del nuevo cdigo con el hecho en iteraciones anteriores se hace gradualmente durante la construccin Evaluacin de la entrega de ejecutable (evaluacin del prototipo en funcin de las pruebas y de los criterios definidos) Preparacin de la entrega (documentacin e Ing.Jose instalacin del prototipo)Meja Viteri
Ing.Software II

Proceso Iterativo e Incremental


Enfoque Cascada

Enfoque Iterativo e Incremental


Ing.Jose Meja Viteri Ing.Software II

... Proceso Iterativo e Incremental


Grado de Finalizacin de Artefactos

Ing.Jose Meja Viteri Ing.Software II

Proceso Centrado en la Arquitectura

La arquitectura de un sistema es la organizacin o estructura de sus partes ms relevantes Un arquitectura ejecutable es una implementacin parcial del sistema, construida para demostrar algunas funciones y propiedades RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo
Elaboration Construction

Inception

Transition

Architecture Meja Viteri Ing.Jose


Ing.Software II

Fases del Ciclo de Vida


El ciclo de vida consiste en una serie de ciclos, cada uno de los cuales produce una nueva versin del producto

Cada ciclo est compuesto por fases y cada una de estas fases est compuesta por un nmero de iteraciones
Las fases son: Inicio o Estudio de oportunidad Elaboracin Construccin Ing.Jose Meja Viteri Transicin Ing.Software II

...Fases del Ciclo de Vida


Inicio o Estudio de oportunidad (inception) Define el mbito y objetivos del proyecto Se define la funcionalidad y capacidades del producto Elaboracin Tanto la funcionalidad como el dominio del problema se estudian en profundidad Se define una arquitectura bsica Se planifica el proyecto considerando recursos disponibles Meja Viteri Ing.Jose
Ing.Software II

...Fases del Ciclo de Vida

Construccin

El producto se desarrolla a travs de iteraciones donde cada iteracin involucra tareas de anlisis, diseo e implementacin Las fases de estudio y anlisis slo dieron una arquitectura bsica que es aqu refinada de manera incremental conforme se construye (se permiten cambios en la estructura) Gran parte del trabajo es programacin y pruebas Se documenta tanto el sistema construido como el manejo del mismo Ing.Jose producto Esta fase proporciona unMeja Viteri construido junto Ing.Software II con la documentacin

...Fases del Ciclo de Vida

Transicin

Se libera el producto y se entrega al usuario para un uso real Se incluyen tareas de marketing, empaquetado atractivo, instalacin, configuracin, entrenamiento, soporte, mantenimiento, etc. Los manuales de usuario se completan y refinan con la informacin anterior Estas tareas se realizan tambin en iteraciones

Ing.Jose Meja Viteri Ing.Software II

Esfuerzo respecto de las Workflows


I nce ption E la bora tion C onstruction Tra nsition

15%
Requisitos

Una iteracin en la fase de elaboracin


Anlisis

10%
15% 30% 15%

Diseo

Implementacin

Pruebas
P r e lim in a ry I te r a tio n ( s ) ite r. #1 ite r. #2 ite r. #n ite r. # n+ 1 ite r. #n+2 it e r. #m ite r. #m +1

Ing.Jose Meja Viteri Ing.Software II

...Esfuerzo respecto de las Fases


I nce ption E la bora tion C onstruction Tra nsition Requisitos Una iteracin en la fase de elaboracin Anlisis

Diseo

Implementacin

Pruebas
P r e lim in a ry I te r a tio n ( s ) ite r. #1 ite r. #2 ite r. #n ite r. # n+ 1 ite r. #n+2 it e r. #m ite r. #m +1

Esfuerzo: Duracin:

5% 10%

Ing.Jose Meja Viteri 20% 65% Ing.Software II 30% 50%

10% 10%

Dos lecciones importantes

El tiempo es independiente del contexto. Ahorrar una semana la comienzo de un proyecto es tan bueno como ahorrarla al final. Una semana es una semana. Es mucho ms fcil ahorrar tiempo al inicio del proyecto (cuando los entregables son menos claros). Conclusin: Pronto hay que tener claro el proyecto del ramo.
Ing.Jose Meja Viteri Ing.Software II

Idea relacionada: Patrones de Diseo


Es una solucin a un problema general de diseo. Tiene la forma de un conjunto de clases que interactan. Las clases requieren personalizacin al caso especfico (partes en blanco)

Ing.Jose Meja Viteri Ing.Software II

Ejemplo: Patrn Observador

Vista

Controlador

Modelo

Ing.Jose Meja Modelo, vista, controlador Viteri Ing.Software II

Вам также может понравиться