Sunteți pe pagina 1din 61

Universidad de Los Lagos

Curso Ingeniera de Software INFT.1


Profesor : Hermn Alfaro F. Hermon.alfaro@tm-mas.com

Objetivos

Descripcin de las actividades tcnicas e ingenieriles que se llevan a cabo en el ciclo de vida de un producto software

Descripcin de los problemas, principios, mtodos y tecnologas asociadas con la Ingeniera del Software Presentacin de la importancia de los requisitos en el ciclo de vida del software Introduccin a las tcnicas bsicas de elicitacin, documentacin, especificacin y prototipado de los requisitos de un sistema software Introduccin a los mtodos de anlisis/diseo estructurado, y los mtodos de anlisis/diseo orientado a objetos Estudio y comprensin de los fundamentos del diseo de sistemas software Aplicar de forma prctica los conceptos tericos sobre el desarrollo estructurado y orientado a objetos

Motivacin

La Ingeniera del Software dentro del currculo de los ingenieros en informtica aporta la primera aproximacin a la prctica real del desarrollo de software

Proyectos realizados por equipos de desarrollo Programacin a gran escala (programming in large) Obtencin (elicitacin) de los requisitos Modelos de ciclo de vida Gestin de la configuracin Calidad del software Mantenimiento

Ingeniera? de Software

Ingeniera vs Mtodos Tradicionales

Grandes Problemas Histricos


Retraso respecto al potencial de hardware Insatisfaccin de la demanda Bajo cumplimiento de compromisos costos, plazos Baja calidad y satisfaccin de clientes/usuarios Mantencin de sistemas legados

Percepciones de la Disciplina

Ineficiencia Altos costos Baja confiabilidad Escasa ingeniera

Crisis del Software


Origina la disciplina Ingeniera de Software en los 60s Sntomas tpicos


funcionalidad incorrecta costos y plazos excedidos insatisfaccin de clientes y usuarios poca o nula visibilidad de lo que ocurre

Crisis del Software

Algunas causas potenciales


carcter lgico del software formacin profesional (o falta de) entrenamiento y actualizacin resistencia al cambio incorporar enfoque ingenieril en la forma de un proceso de software

Solucin potencial

Crisis del Software

Algunos mitos bastantes arraigados tambin


estndares y procedimientos bastan tecnologa de punta basta ms gente para ponerse al da programacin inmediata fcil acomodo de los cambios programacin: fin del trabajo calidad: slo del ejecutable cdigo es el nico producto

Ingeniera de Software

Establecimiento y uso de principios con caracteres de ingeniera apropiados para obtener, eficientemente, software confiable, que opere eficaz y eficientemente en mquinas reales

Concepto se acu en 1968, en Conferencia de la OTAN en Alemania , con la intencin de que mediante el uso de filosofas y paradigmas de disciplinas ingenieriles establecidas se resolviera la denominada crisis del software

Ingeniera de Software

Objetivos

maximizar calidad maximizar productividad minimizar riesgos

Ingeniera de Software

Implicancias

mejores tcnicas de control de calidad mejores herramientas y mtodos

Todo en la forma de proceso de software adecuado al tipo de problema que se resuelve y que permitan gestionar de mejor manera los principales riesgos relevantes para todos los stakeholders (involucrados o afectados)

Proceso de Software Para Gestionar Riesgos

Proceso de Software
Desarrollo de software
Operacin

Anlisis

Diseo

Construccin y Pruebas Unitarias

Pruebas

Mantencin

Procesos de apoyo: Gestin de proyectos, Gestin de Configuracin, Gestin de Requerimientos, Gestin de la Calidad, .

Riesgos de Software

Categoras - Top 10

Mtricas inadecuadas Medicin inadecuada Presin excesiva de tiempo Malas prcticas de gestin Estimacin imprecisa de costos Sndrome del silver bullet Requerimientos Baja calidad Baja productividad Cancelacin de proyectos

Proceso de Software

Proveer un producto o un servicio, siempre consiste en seguir una secuencia de pasos, para llevar a cabo un conjunto de tareas Las tareas se ejecutan usualmente en el mismo orden todas las veces Un proceso es una serie de pasos que involucran actividades, restricciones y recursos, que producen una salida esperada, de algn tipo. Un proceso involucra usualmente un conjunto de herramientas y tcnicas.

Proceso de Software

Es importante, pues impone consistencia y estructura al conjunto de actividades Es ms que un procedimiento, es un conjunto organizado de stos. La estructura del proceso gua la accin, permitiendo examinar, entender, controlar y mejorar las actividades comprendidas por ste. Tambin es importante pues permite capturar y transmitir la experiencia, a proyectos futuros Cada proceso puede ser descrito por una combinacin de diferentes medios.

Un poco de Historia

El modelo usado era de codificar-corregir:


Escribir el cdigo. Revisar y eliminar los errores o mejorar/aumentar funcionalidad.

la

A medida que el hardware aument sus capacidades y disminuy sus costos, se ampli el mbito de las aplicaciones y se masific el uso de computadores. Se incursion en reas donde los problemas no eran tan bien acotados (ej. administrativos) y el desarrollo se torn ms complejo.

Un poco de Historia

Aparece un problema an mayor: haba que mantener los sistemas. Esto escap de las manos de los usuarios- programadores, quienes ya no pudieron controlar el proceso, pues slo dominaban su especialidad, no el desarrollo de software. Se incorporan tpicos organizacionales y psicolgicos, as como tambin la demanda por mayor calidad y confiabilidad.

Un poco de Historia

Adems, ahora el desarrollo se convierte en una actividad de grupo, lo cual demanda planificar, organizar y estructurar el trabajo en torno a proyectos. La comunicacin entre humanos (usuario- desarrollador y desarrollador-desarrollador) se convierte en un problema. Se hace necesario definir un Proceso

Un poco de Historia

El proceso a la antigua, como caja negra.

Modelos de Proceso de Software

En la Ingeniera de Software se describen muchos Modelos de Proceso.

Unos son prescriptivos: establecen la forma en que debera progresar el proceso de software. Otros son descriptivos: dicen la forma en que el proceso de software progresa en la realidad.

Algunos Modelos de Proceso de Software


Modelo en Cascada. Modelo en V. Modelo de Prototipacin. Modelo en Espiral. RUP Mtodos giles.

Modelo en Cascada

Es el ms antiguo. Debe completarse un estado antes de comenzar el siguiente. Es til para que el desarrollador visualice lo que va a hacer. Su principal problema es que no refleja la realidad..

Modelo en Cascada

Modelo en Cascada

Anlisis de Requerimientos:

Se centra e intensifica especialmente en el software El ingeniero de software debe comprender el mbito de la informacin del software, as como la funcin, el rendimiento y las interfaces requeridas Se enfoca en cuatro atributos: la estructura de los datos, la arquitectura del software, el detalle procedimental y la caracterizacin de la interfaz El proceso de diseo traduce los requisitos en una representacin del software con la calidad requerida antes de que comience la codificacin El diseo debe traducirse en una forma legible para la maquina. Si el diseo se realiza de una manera detallada la codificacin puede realizarse automticamente

Diseo (sistema y programa):

Codificacin:

Modelo en Cascada

Prueba (unitario, integracin, sistema, aceptacin):

una vez que se ha generado el cdigo comienza la prueba del programa. La prueba se centra en la lgica interna del software, y en las funciones externas, realizando pruebas que aseguren que la entrada definida produce los resultados requeridos

Mantenimiento:

el software sufrir cambios despus de que se entrega al cliente, los cambios ocurrirn debido a que hayan encontrado errores, a que el software deba adaptarse a cambios del entorno externo (sistema operativo o dispositivos perifricos), o debido a que el cliente requiera ampliaciones funcionales o del rendimiento

Modelo V

Modelo V

La primera mitad es similar al Modelo en Cascada, y la otra mitad tiene como finalidad hacer pruebas e integracin asociado a cada una de las etapas de la mitad anterior. Se puede identificar una ventaja principal con respecto al Modelo Cascada ms simple, y se refiere a que este modelo involucra chequeos de cada una de las etapas del modelo de cascada.

Modelo de Prototipacin

Permite la construccin rpida del sistema (o parte de ste). Usuario y desarrollador tienen una visin comn. Se reduce el riesgo y lo incierto del desarrollo

Modelo en Espiral

Se combinan las actividades de desarrollo con Anlisis de Riesgo. El modelo es de tipo iterativo:

Planificacin Anlisis de Riesgo Ingeniera Evaluacin Planificacin

..En cada iteracin, se evalan las diferentes alternativas y se elige una. Los gestores del proyecto intentan eliminar o minimizar el riesgo.

Modelo en Espiral

RUP Rational Unified Process

Su objetivo es asegurar la produccin de software de calidad dentro de plazos y presupuestos predecibles. Dirigido por casos de uso, centrado en la arquitectura, iterativo (mini-proyectos) e incremental (versiones) Cada ciclo de vida del software abarca 4 fases en el siguiente orden: concepcin/planificacin, elaboracin, construccin y transicin La esencia de RUP es la iteracin, y cada iteracin resulta en un entregable preferentemente ejecutable

RUP Rational Unified Process

Mapa Conceptual de RUP

37

Fases de RUP: Inception (Inicio)


Se establece la oportunidad y alcance el proyecto. Se identifican todas las entidades externas con las que se trata (actores) y se define la interaccin a un alto nivel de abstraccin:
Identificar todos los casos de uso Describir algunos en detalle

La oportunidad del negocio incluye:


Criterios de xito Identificacin de riesgos Estimacin de recursos necesarios Plan de las fases incluyendo hitos
38

Fases de RUP: Inception (Inicio)


Productos:
Un documento de visin general:
Requerimientos generales del proyecto Caractersticas principales Restricciones

Caso de negocio:
Contexto Criterios de xito Pronstico financiero

Modelo inicial de casos de uso (10% a 20 % listos). Glosario.

Identificacin inicial de riesgos. Plan de proyecto. Uno o ms prototipos.

39

Fases de RUP: Inception (Inicio)


Hito:
Objetivos del Ciclo de Vida

Inicio

Elaboracin

Construccin

Transicin

Las partes interesadas deben acordar el alcance y la estimacin de tiempo y costo. Comprensin de los requerimientos plasmados en casos de uso.
40

Fases de RUP: Elaboracin


Objetivos:
Analizar el dominio del problema Establecer una arquitectura base slida Desarrollar un plan de proyecto Eliminar los elementos de mayor riesgo para el desarrollo exitoso del proyecto

Visin de una milla de amplitud y una pulgada de profundidad porque las decisiones de arquitectura requieren una visin global del sistema.
41

Fases de RUP: Elaboracin


Productos:
Es la parte ms crtica del proceso:
Al final toda la ingeniera dura est hecha Se puede decidir si vale la pena seguir adelante

Ya hay menos riesgos y se puede planificar el resto del proyecto con menor incertidumbre. Se construye una arquitectura ejecutable que contemple:
Los casos de uso crticos Los riesgos identificados

A partir de aqu la arquitectura, los requerimientos y los planes de desarrollo son estables.

42

Fases de RUP: Elaboracin


Productos:
Modelo de casos de uso (80% completo) con descripciones detalladas. Otros requerimientos no funcionales o no asociados a casos de uso. Descripcin de la Arquitectura del Software. Un prototipo ejecutable de la arquitectura. Lista revisada de riesgos y del caso de negocio. Plan de desarrollo para el resto del proyecto. Un manual de usuario preliminar.

43

Fases de RUP: Elaboracin


Hito:
Arquitectura de Ciclo de Vida

Inicio

Elaboracin

Construccin

Transicin

Condiciones de xito de la elaboracin:


Es estable la visin del producto? Es estable la arquitectura? Las pruebas de ejecucin demuestran que los riesgos han sido abordados y resueltos? Es el plan del proyecto algo realista? Estn de acuerdo con el plan todas las personas involucradas?
44

Fases de RUP: Construccin


En esta fase todas las componentes restantes se desarrollan e incorporan al producto.

Todo es probado en profundidad.


El nfasis est en la produccin eficiente y no ya en la creacin intelectual. Puede hacerse construccin en paralelo, pero esto exige una planificacin detallada y una arquitectura muy estable.
45

Fases de RUP: Construccin


Productos:
El producto de software integrado y corriendo en la plataforma adecuada. Manuales de usuario. Una descripcin del release actual.

46

Fases de RUP: Construccin


Hito:
Capacidad Operacional

Inicio

Elaboracin

Construccin

Transicin

Se obtiene un producto Beta que debe decidirse si puede ponerse en ejecucin sin mayores riesgos. Condiciones de xito:
El producto est maduro y estable para instalarlo en el ambiente del cliente? Estn los interesados listos para recibirlo?
47

Fases de RUP: Transicin


El objetivo es traspasar el software desarrollado a la comunidad de usuarios. Una vez instalado surgirn nuevos elementos que implicarn nuevos desarrollos (ciclos). Incluye:
Pruebas Beta para validar el producto con las expectativas del cliente Ejecucin paralela con sistemas antiguos Conversin de datos Entrenamiento de usuarios Distribuir el producto
48

Fases de RUP: Transicin


Objetivos: Obtener autosuficiencia de parte de los usuarios. Concordancia en los logros del producto de parte de las personas involucradas. Lograr el concenso cuanto antes para liberar el producto al mercado.
Inicio Elaboracin Construccin Transicin

Producto
49

Mtodos giles

Inters creciente en los mtodos giles (inicialmente llamados ligeros, lightweight) en los ltimos aos

enfrentamiento de requerimientos cambiantes tiempos de desarrollo escasos clientes y usuarios cada vez ms exigentes

Caracterizados alternativamente como

antdoto a la burocracia (mtodos planificados, pesados)

Mtodos giles

Algunas caractersticas de los mtodos giles


Documentacin mnima Ciclos iterativos breves Reaccin rpida ante los cambios Estrecha relacin con el cliente Diseo simple Satisfaccin de necesidades inmediatas Foco en las personas Organizacin libre Procesos adaptables, no predictivos

Mtodos giles

El proceso de Desarrollo XP

Fase inicial de captura de requerimientos es eliminada El ciclo de desarrollo de XP se divide en liberaciones cada una de las cuales es medida en historias de usuario

Historia de usuario: unidad funcional en un proyecto XP, debe ser entendible tanto para el cliente como para los desarrolladores, verificable y pequea

Mtodos giles

El proceso de desarrollo XP

Fase de Exploracin Fase de Planificacin Fase de Iteraciones y Entregas Fase de Produccin Fase de Mantenimiento Fase de Muerte

Mtodos giles

Principales Mtodos giles


Extreme Programming, XP Scrum Crystal Family Feature-Driven Design Adaptive Software Development DSDM Otros

Agilidad vs. Proceso

Ultimamente, distintos trabajos han investigado la relacin entre modelos de proceso y mtodos giles, observando lo siguiente

CMM/CMMI y XP pueden complementarse (foco en aspectos de gestin vs. tcnicos) Mtodos giles calzan con la esencia del mejoramiento de procesos bajo una interpretacin menos literal (que CMMI, por ejemplo) Mtodos giles apuntan a gestin de proyectos, no a gestin de procesos

Bibliografa

Pressman Roger. Ingeniera del Software. Tercera Software Engineering: Theory and Practice (2nd Ed.) Shari Pfleeger, Prentice Hall (2001), Cap. 1&2 The Software-Research Crisis. Robert L. Glass, IEEE Software, Noviembre 1994 Using Risk to Balance Agile and Plan-Driven Methods Barry Boehm, Richard Turner, IEEE Computer, Junio 2003 Agile Alliance http://www.agilealliance.com/ What is extreme programming? http://www.xprogramming.com/

Anexos

Arquitectura de Sistemas Computacionales


Ingeniera de Software
Estructuracin de los Procesos Estructuracin de las Comuni caciones

Ingeniera de las comunicaciones


Estructuracin de los Datos Ingeniera de la Informacin

59

Arquitectura de Sistemas Computacionales

Datos
Nivel Conceptual (Esquema del Negocio) Nivel Lgico (S.I.A)

Funcin

Comunicaciones

. ...

Nivel Fsico
(Implementa cin Compu tacional)
60

61

S-ar putea să vă placă și