Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conceptos importantes
Personas
los que trabajan
Producto
lo que se obtiene
Proyecto
la pauta a seguir para desarrollar un producto
Proceso
la pauta a seguir para desarrollar un proyecto
Un traje
Personas
El sastre
Producto
El traje
Proyecto:
el sastre, el traje, el presupuesto del traje, el traje en s, los pasos a dar para hacer el traje...
Proceso
La secuencia de acciones para hacer un traje concreto
Una cena
Personas
Empleados de una empresa de catering
Producto
La cena que se sirve
Proyecto
El men, el presupuesto, lo que hay que hacer para conseguir el men, ...
Proceso
La secuencia de acciones de servir una cena
Producto
Los automviles
Proyecto
Desarrollo de un modelo nuevo
Proceso
Las instrucciones de la empresa sobre cmo desarrollar un modelo nuevo
Para vosotros
Personas
vuestro grupo
Producto
la aplicacin elegida
Proyecto
parte prctica IS
Proceso
entregas mensuales + cmo vosotros decidis organizaros
Capas de la IS
Capa de enfoque de calidad Capa de proceso Capa de mtodos Capa de herramientas
Capas de la IS
Capa de calidad
Base de cualquier proceso de ingeniera La IS se basa en calidad
Mejores tcnicas de construccin de software
Capa de proceso
Capa que une calidad y mtodos
Desarrollo racional de la IS
Conjunto de actividades y resultados asociados que sirven para construir un producto software
Capas de la IS
Capa de mtodos
Un mtodo incluye:
Anlisis de requisitos Diseo Construccin de programas Prueba Mantenimiento
Capa de herramientas
Soporte automtico o semiautomtico para el proceso y los mtodos Herramientas CASE
Visin general de la IS
Con independencia del modelo de proceso hay tres fases genricas:
Fase de definicin Fase de desarrollo Fase de mantenimiento
Fase de definicin/especificacin
Se identifican requisitos de sistema y software:
Informacin a procesar Funcin y rendimiento deseados Comportamiento del sistema Interfaces establecidas Restricciones de diseo Tareas principales:
Planificacin del proyecto software Ingeniera de sistemas o de informacin Anlisis de requisitos
Fase de desarrollo
Se define:
Cmo disear las estructuras de datos Cmo implementar las funciones Cmo caracterizar las interfaces Cmo traducir el diseo a programacin Cmo validar el producto (pruebas, verificacin) Tareas principales:
Diseo del software Generacin del cdigo Pruebas del software
Fase de mantenimiento
Centrada en cambios que se pueda necesitar realizar sobre un producto Se vuelven a aplicar las fases de definicin y desarrollo, pero sobre software ya existente Pueden producirse cuatro tipos de cambio:
Correccin: Corregir los defectos Adaptacin: Modificaciones por cambio externo Mejora: Ampliar los requisitos funcionales originales, a peticin del cliente Prevencin: Cambio para facilitar el cambio
Visin general de la IS
Estas fases se complementan con las actividades de soporte
No crean software Mejoran su calidad Facilitan su desarrollo
Visin general de la IS
Ejemplos de actividades de soporte
Documentacin Gestin de configuracin Seguimiento y control del proyecto de software Revisiones tcnicas formales Garanta de la calidad del software Gestin de reutilizacin Mediciones Gestin de riesgos
Proceso software
Conjunto estructurado de actividades y resultados asociados requeridos para desarrollar un sistema de software
Especificacin: establecer requisitos y restricciones Diseo: Producir un modelo en papel del sistema Implementacin: construccin del sistema de software Validacin: verificar (por ejemplo mediante pruebas) que el sistema cumple con las especificaciones requeridas Instalacin: entregar el sistema al usuario Evolucin y mantenimiento: cambiar/adaptar el software segn las demandas; reparar fallos en el sistema
Modelos de proceso
Un modelo de proceso, o paradigma de IS, es una plantilla, patrn 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 En esta asignatura los trminos proceso y modelo de proceso se utilizan indistintamente
Modelos de proceso
Una organizacin podra variar su modelo de proceso para cada proyecto, segn:
La naturaleza del proyecto La naturaleza de la aplicacin Los mtodos y herramientas a utilizar Los controles y entregas requeridas
Operacin y Mantenimiento
Se supone que slo se baja en la cascada... pero tambin se puede subir (aunque difcilmente)
Crticas:
No se ve un producto hasta muy tarde en el proceso
Un error grave detectado en las ltimas fases puede ser letal
Prototipado
Se usa un prototipo para dar al usuario una idea concreta de lo que va a hacer el sistema Se aplica cada vez ms cuando la rapidez de desarrollo es esencial Prototipado evolutivo: el prototipo inicial se refina progresivamente hasta convertirse en versin final Prototipado desechable: de cada prototipo se extraen ideas buenas que se usan para hacer el siguiente, pero cada prototipo se tira entero
Prototipado
Escuchar al cliente Construir/ revisar prototipo El cliente evala el prototipo
Prototipado
Comienza con la recoleccin de requisitos
Cliente y desarrolladores definen los objetivos globales del software. Adems, identifican los requisitos conocidos y aquellos que deben ser ms definidos.
Aparece un diseo rpido centrado en los aspectos visibles para el cliente (e.g. informacin de E/S)
El diseo rpido lleva a la construccin de un prototipo
El prototipo lo evala el cliente y lo utiliza para refinar los requisitos El proceso se itera... desechando el prototipo?
Prototipado
Ventajas
Permite identificar los requisitos incrementalmente Permite probar alternativas a los desarrolladores Tiene una alta visibilidad tanto clientes como desarrolladores ven resultados rpidamente
Inconvenientes
El cliente no entiende por qu hay que desechar el prototipo
Si simplemente ha pedido unos ajustes...(?)
Modelos evolutivos
Caractersticas:
Gestionan bien la naturaleza evolutiva del software Son iterativos: construyen versiones de software cada vez ms completas
Se adaptan bien:
Los cambios de requisitos del producto Fechas de entrega estrictas poco realistas Especificaciones parciales del producto
Modelos evolutivos
Actividades Concurrentes
Especificacin
Versin Inicial
Desarrollo
Validacin
Versin Final
2 incremento
Se itera
Hasta elaborar el producto completo
Personal
Permite variar el personal asignado a cada iteracin
Inconvenientes
La primera iteracin puede plantear los mismos problemas que en un modelo lineal secuencial
Prototipo Operacional
REVISIN
Requeri Diseo Diseo mientos de del Detallado SW Plan de Validacin de Producto Codificacin Desarrollo Requerimientos Prueba de Unidades Plan de Integracin Diseo Prueba de y Prueba V &V Prueba de Integracin Desarrolla y verifica Aceptacin el siguiente nivel Servicio del producto
Planificacin
Revisin del proyecto Decisin de una nueva vuelta
Equipo 2
A D C P
Equipo n
A
............
D C P
60-90 das
Inconvenientes
Exige conocer bien los requisitos y delimitar el mbito del proyecto Nmero de personas Clientes y desarrolladores comprometidos Gestin riesgos tcnicos altos
Uso de nueva tecnologa Alto grado de interoperabilidad con sistemas existentes
Requirements definition
Formal specification
Formal transformation
Transformaciones formales
T1 Formal transformations T2 T3 T4
Formal specification
R1
R2
R3
Executable program
P1
P2
P3
P4
Aplicabilidad
Sistemas crticos en los que la seguridad y fiabilidad debe poder asegurarse antes de poner el sistema en operacin
Visibilidad de Procesos
Los sistemas de software son intangibles por lo que los administradores necesitan documentacin para identificar el progreso en el desarrollo Esto puede causar problemas
El tiempo planeado para entregar resultados puede no coincidir con el necesario para completar una actividad La necesidad de producir documentos restringe la iteracin entre procesos Tiempo para revisar y aprobar documentos significativo
Visibilidad de Procesos
Modelo de Proceso Modelo de Cascada Visibilidad del Proceso Buena visibilidad, cada actividad produce un documento o resultado Visibilidad pobre, muy caro al producir documentos en cada iteracin Buena visibilidad, en cada fase deben producirse documentos Visibilidad moderada. Importante contar con documentacin de componentes reutilizables Buena visibilidad, cada segmento y cada anillo del espiral debe producir un documento
Desarrollo Evolutivo
Modelos Formales
Modelo de Espiral
Qu modelo utilizar?
Para sistemas bien conocidos se puede utilizar el Modelo de Cascada. La fase de anlisis de riesgos es relativamente fcil Con requisitos estables y sistemas de seguridad crticos, se recomienda utilizar modelos formales Con especificaciones incompletas, el modelo de prototipado ayuda a identificarlos y va produciendo un sistema funcional Pueden utilizarse modelos hbridos en distintas partes del desarrollo
Ejemplos
Dos modelos de proceso concretos:
Proceso Unificado de Rational (pesado) Extreme Programming (gil)
Proceso Unificado
Los autores de UML
Booch: mtodo Booch Rumbaugh: OMT Jacobson: proceso Objectory
Proceso Unificado
Es un proceso de desarrollo de software
Dirigido por casos de uso Centrado en la arquitectura Iterativo e incremental
Utiliza UML para definir los modelos del sistema software El sistema software en construccin est formado por
componentes software interconectados a travs de interfaces
Requisitos de usuario Proceso de desarrollo de software Sistema software
Proceso Unificado
Organization along time
Supporting Components
Management Environment Deployment
preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. iter. #n+1 #n+2 iter. #m iter. #m+1
Iterations
Caractersticas
Alta visibilidad debido a ciclos muy cortos Planificacin incremental Se adapta a cambios de negocio
Actividades en XP
Inconvenientes:
Poco probado Poco compatible con especificaciones/diseos totales Slo funciona con equipos pequeos (hasta diez personas)
La empresa ideal
El Dpto. de la Defensa de los US fund el Software Engineering Institute (SEI) asociado con la Universidad de Carnegie Mellon (CMU). Desarrollan el Software Capability Maturity Model (SW CMM) a mediados de 1980s, refinado en los inicios de l990s. Este modelo define una serie de reas clave de proceso (ACP)
Un rea clave de proceso es, bsicamente, una actividad de IS
CMM
Los niveles son acumulativos Nivel 1: Inicial
El proceso de software se caracteriza segn el caso Se definen poco procesos El xito depende del esfuerzo individual
CMM
Nivel 2: Repetible
Se incluye seguimiento del coste, la planificacin y la funcionalidad Se repiten tcnicas de proyectos anteriores con buenos resultados Las ACP son:
Planificacin del proyecto de software Seguimiento y supervisin del proyecto de software Gestin de requisitos Gestin de la configuracin software (GCS) Garanta de calidad del software (SQA) Gestin de la subcontratacin
CMM
Nivel 3: Definido
Nivel 2 Las actividades se documentan, estandarizan e integran en un proceso a nivel organizacin Existe un proceso documentado Las ACP son:
Definicin y enfoque del proceso de la organizacin Programa de formacin Revisiones peridicas Coordinacin entre grupos Ingeniera de productos software Gestin de integracin del software
CMM
Nivel 4: Gestionado
Nivel 3 Se recopilan medidas del proceso del software y de la calidad del producto Estas medidas sirven para gestionar el proceso Las ACP son:
Gestin de la calidad del software Gestin cuantitativa del software
CMM
Nivel 5: Optimizacin
Nivel 4 En base a la experiencia y mtricas se optimiza el proceso Las ACP son:
Gestin de cambios del proceso Gestin de cambios de tecnologa Prevencin de defectos
CMM
Un nivel razonable es el definido (nivel 3) Un nivel deseable es optimizacin (nivel 5) Con independencia del CMM, ACPs mnimas:
Planificacin del proyecto Seguimiento y supervisin del proyecto Gestin de requisitos GCS SQA Definicin del proceso Revisiones peridicas Coordinacin entre grupos
Referencias
Modelos de proceso
Pressman 17-46, Sommerville 42-67
Proceso Unificado
Jacobson, Krutchen
SW CMM
Pressman Cap. 2, Sommerville Cap. 25 http://www.sei.cmu.edu/cmm/obtain.cmm.html
Material
Pablo Gervs Juan Pavn y Jorge Gmez Natalia Juristo