Professional Documents
Culture Documents
Objetivos
Reconocer la importancia del Anlisis y Diseo de Sistemas en el marco de trabajo de la ingeniera de software
Agenda
INTRODUCCIN
Intro>Alert!
Las ideas dadas durante el desarrollo del curso no necesariamente puede aplicarse a todos los escenarios de la factora de software, esto depender del contexto donde se aplique como el proyecto a desarrollar, los procesos, los mtodos, las herramientas, experiencia, etc. i.e. desarrollar pensamiento crtico
Intro>Qu es el software?
Intro>Problema
Imagnese que tiene un cliente enfrente, y que este cliente necesita un software En su imaginacin describa todo lo que ocurre desde que usted conoce al cliente hasta que termina el trabajo y le entrega su software.
Los objetivos de negocio que se desean satisfacer con el sistema (esto viene del modelo de negocio del cliente o del dominio del problema) La visin general del sistema. De qu se trata (Lista de caractersticas del sistema) El propsito del sistema. Para qu lo necesito Los objetivos del proyecto (hasta qu etapa debo llegar) y cmo mido si se cumplieron o no Factibilidad Requisitos Los involucrados Restricciones impuestas (por el cliente o el entorno) Riesgos Otro hechos relevantes
Consumidores Usuarios Clientes de la empresa Instituciones Gubernamentales Comunidad Empresa contratante Gerentes Clientes Analistas Arquitectos Diseadores Programadores Lderes de proyecto Proveedores Consultores Etc.
Intro>Solucin
La Ingeniera de Software es un enfoque sistemtico del desarrollo, operacin y mantenimiento, y retiro del software (IEEE).
Desarrollo Produccin Retiro
Por los Procesos de ingeniera de requisitos Luego, vamos a ver los Modelo de Proceso de Software ms importantes. Un modelo tambin es llamado Mtodo o metodologa. La estructura de un modelo no necesariamente se representa mediante una grfica. Al proceso de software tambin se le conoce como Ciclo de Vida del Software Ciclo de Vida de Desarrollo de Software
Requisitos>Introduccin
Ante la duda, siempre consulte al cliente involucrado Nunca d nada por sentado
Mala comprensin de lo que quiere el cliente. El cliente o usuario no tiene claro lo que quiere El analista cree que sabe que es lo que necesita el cliente y por lo tanto no le consulta. Nunca diga yo creo
Requisitos> Introduccin
Requisitos>Introduccin
Requisitos> Introduccin Para poder desarrollar software se necesitan usuarios comprometidos, disponibles e involucrados en el desarrollo.
Requisitos>Definicin
Un requisito es lo que el cliente quiere que haga el software. Los requisitos definen el qu debe hacer, mas no el cmo debe hacerlo. e.g. RF06:El sistema debe permitir manejar diferentes listas de precios de los productos. RN02: La actualizacin de precios de productos solo debe ser realizado por el gerente
Requisitos>Ms problemas
Los requisitos cambian constantemente Aislamiento de los equipos del proyecto. El cliente (lenguaje asociado al dominio del cliente) y el analista (lenguaje tcnico) no se entienden Requisitos que no reflejan las necesidades reales del cliente, son inconsistentes, incompletos, no factibles, etc. Requisitos que el usuario no necesita realmente
Requisitos>Ms problemas
Y cmo obtengo los requisitos? Cmo se pone orden en los requerimientos? Qu usuario defini qu requerimiento? Qu requerimiento satisfacen qu objetivos de negocio? (por qu lo necesita el cliente?) Qu requerimiento afecta a qu otro requerimiento? Dnde estn diseados e implementados los requerimientos? Qu sucede si un usuario quiere cambiar un requerimiento? Cmo se manejar los cambios, cul es el proceso para manejar los cambios? Etc.
La IR, es el proceso de establecimiento de los servicios que debe proporcionar un sistema, as como de las restricciones sobre las cuales debe operar. Es considerada una etapa clave en el desarrollo de software Recuerde que la satisfaccin del cliente es la mejor mtrica de calidad de un sistema.
Especificacin
Captura
Validacin
Anlisis
Requisitos>Captura
Requisitos>Captura: Entrevistas
Quin est detrs de las solicitudes? Clientes Quin usar la solucin? Usuarios Cul ser el beneficio econmico de una solucin exitosa? Cmo s que una solucin es buena? Cules problemas debera atacar la solucin? Podra usted mostrar o describir el ambiente de negocios en el que se utilizar la solucin?
Requisitos>Captura: Entrevistas
Requisitos>Captura: Entrevistas
Es usted la persona adecuada para contestar esta pregunta?. Sus repuestas con oficiales? Mis preguntas son relevantes para su problema? Estoy haciendo demasiadas preguntas? Alguien ms puede proporcionar informacin adicional? Debera preguntarle alguna otra cosa? Cmo se soluciona el problema actualmente? Entre qu rango de costos se debera mover una solucin para ser rentable? Etc.
Stakeholder Requests
Features
Types of Requirements
System Constraints
TIPOS DE REQUISITOS (FURPS+): Functionality (Funcionalidad) No Funcionales: Usability (Capacidad de Uso) Reliability (Confiabilidad) Performance (Desempeo) Supportability (Capacidad de Soporte) + Requerimientos de diseo / implementacin, Requerimientos de interface, y Requerimientos fsicos.
Software Requirements
Design Constraints
Requisitos>Anlisis
Es la actividad por medio de la cual se extiende el modelo de requisitos, se buscan y localizan errores, inconsistencias, limitaciones, carencias, etc.
Inspecciones de documentos Discusiones, entrevistas, talleres Desarrollo de prototipo Tcnicas de captura
Requisitos>Especificacin
Requisitos>Validacin
Es la actividad crtica por medio de la cual se validan los requerimientos con el cliente
Inspecciones de documentos Discusiones, entrevistas, talleres Tcnicas de captura
Recuerde: Desarrolle el software no solo correctamente sino el software correcto. Una vez que comprenda algo, reptalo al cliente con sus propias palabras, y si ste lo entiende, entonces usted estar seguro de que lo ha entendido correctamente
MODELOS DE PROCESOS DE SW
Qu es un Modelo?
Es una estrategia mtodo de desarrollo que los ingenieros de software deben emplear para resolver problemas de la industria de software
Requerimientos de Usuarios
Modelo de proceso
Software
Ingeniera del SW
Reingeniera del SW
Preventivo Correctivo Adaptativo Perfectivo
giles
XP TDD ATDD Scrum Muro Kanban (Toyota) Etc.
Sin embargo, stos procesos, para realizar adecuadamente el trabajo, necesita de algunos de los artefactos de los procesos formales
Cul es el modelo apropiado que debo aplicar al equipo de proyecto? Cules son los modelos apropiados que debo combinar y aplicar al equipo de proyecto? Estos modelos son suficientes para desarrollar mi sistema?. No Se necesita todo un marco de trabajo que incluya: modelos guas, plantillas, herramientas, estndares, mtodo de trabajo, libreras, tcnicas de codificacin de alto rendimiento, etc.
Para comenzar a desarrollar lo que el cliente quiere se debe partir de un administrador del backend de la aplicacin y no partir de cero. Este backend debe estar codificado bajo el estndar de desarrollo y bajo el estilo de codificacin que guiar el resto de componentes. Vamos conociendo algunos de los modelos de procesos de software antes de conocer las herramientas y tecnologas a emplear.
Cascada
Ciclo de vida clsico, + antiguo, + usado Enfoque sistemtico secuencial Dirigido por documentos
Cundo usar?
Usar cuando todos los requerimientos han sido establecidos claramente de entrada
Prototipeo No estn claros los reqs. de entrada Iterativo. Hasta cuando se itera? Working prototype, desechar y empezar con desarrollo de sistema.
Cundo usar?
Para sistemas pequeos o de vida corta. Cuando es difcil conocer bien los requerimientos.
Desarrollar prototipo
Evaluar prototipo
Plan prototipo
Definicin prototipo
Prototipo ejecutable
Reporte eveluacin
Modelo en V
Evolutivos
Se adaptan ms fcilmente a los cambios introducidos a lo largo del desarrollo. Iterativos En cada iteracin se obtienen versiones ms completas del SW. Modelos Evolutivos:
Modelo Incremental (*) Modelo en Espiral (*) Modelo de Desarrollo Basado en Componentes (*) Modelo WINWIN Modelo de Desarrollo Concurrente
Incremental
Inc1
Anlisi s
Diseo
Codif.
Prueba
Inc2
Anlisi s
Diseo
Codif.
Prueba
Inc3
Anlisi s
Diseo
Codif.
Prueba
Tiempo
Espiral
Basado en Componentes
Extraer
Construir iteracin
RUP
RUP>Estructura
RUP>Estructura
Disciplinas de soporte
RUP> Caractersticas
Arquitectura Fsica
User (.HTML) View Layer (MVVM) UserControls (.XAML) ViewModel (.cs) Windows Comunication Foundation [WCF] Service 4 (.svc)
Entities
Arquitectura ADEMS
User (.HTML)
PrimeFaces (.XHTML) FacesBean (.Java) UserComponents (.MXML) ActionScript (.as) BlazeDS(AMF) Service Contracts Service SfContexts Service Test
(SpringJUnit4+Mock)
Entities
Business Test
Orientacin
http://twitter.github.com/bootstrap/
Qu es UML?
Es un estndar notacional empleado para modelar y representar sistemas de software y sus partes desde distintas perspectivas, generando diagramas o artefactos. Etapas donde se utiliza UML
Requerimientos Anlisis Diseo Implementacin
RUP>Artefactos principales
Inicio
Elaboracin
Construccin
Transicin
Arquitectura
Open UP
agend
Factibilidad
Requisitos-anlisis
Diseo
MTODOS GILES
Se basa sobre la suposicin de que es posible desarrollar software de gran calidad a pesar, o incluso como consecuencia del cambio continuo. Su principal asuncin es que con un poco de planificacin, un poco de codificacin y unas pocas pruebas se puede decidir si se est siguiendo un camino acertado o equivocado, evitando as tener que echar marcha atrs demasiado tarde. Valores:
SIMPLICIDAD
FEEDBACK RESPETO
CORAJE
COMUNICACIN
Diseo Dirigido por Ejemplos Es una tcnica de diseo e implementacin de software incluida dentro de la metodologa XP. Pilares:
La implementacin de las funciones justas que el cliente necesita y no ms. La minimizacin del nmero de defectos que llegan al software en fase de produccin. La produccin de software modular, altamente reutilizable y preparado para el cambio.
TDD>Algoritmo
Escribir la especificacin del requisito (el ejemplo, el test). Implementar el cdigo segn dicho ejemplo. Refactorizar para eliminar duplicidad y hacer mejoras.
Story Test-Driven Development (STDD), es igualmente TDD pero a un nivel diferente. Los tests de aceptacin o de cliente son el criterio escrito de que el software cumple los requisitos de negocio que el cliente demanda. Son ejemplos escritos por los dueos de producto. Es el punto de partida del desarrollo en cada iteracin, la conexin perfecta entre Scrum y XP
SCRUM
Scrum>Proceso
Scrum> Estructura
Roles
El Product Owner El Scrum Master El Team El Product Backlog (Requerimientos funcionales y no funcionales) Sprint Backlog Burndown del Sprint Burndown del Release o Producto Backlog de impedimentos Sprint Planning Meeting (Parte 1 y 2) Daily Scrum Meeting Sprint Review Meeting (Demo) Sprint Retrospective meeting
Artefactos
Reuniones Eventos
3. DemostracinRetrospectiva
1. Planificacin
Incremento seguro
2. Iteracin Ejecucin
Recursos de seguridad
Otros: Plan del proyecto-Inicial Estndares de desarrollo Lista de Mtodo de trabajo del equipo Tareas con Arquitectura tecnolgica ejemplos del Diagramas de entidades, de usuario clases segn patrn arquitectnico y las interfaces grficas de usuario Configuracin del trabajo del equipo. Mdulo de administracin del Backend de la aplicacin.
Conclusiones
Los modelos formales como RUP requieren grandes esfuerzos en la construccin de modelos. En lo mtodos giles, la comunicacin resulta vital para identificar qu se debe y qu no se debe hacer. Nada asegura el xito de un proyecto, pero el aplicar un proceso disminuye la probabilidad de fracaso. La experiencia es lo ms importante que conocer mtodo y herramientas.
Referencias
Diseo de una Metodologa gil de Desarrollo de Software. Schenone Marcelo Hernn. Un mejor Scrum http://www.scrumsense.com/wpcontent/uploads/2012/03/Un-mejor-Scrum-2.pdf PROCESO DE DESARROLLO DE SOFTWARE MIXTO COMBINANDO RUP Y SCRUM http://revista.info.unlp.edu.ar/tesinas/tesis88.pd f Diseo gil con TDD. Carlos Bl Jurado y colaboradores.