You are on page 1of 85

Universidad Peruana Unin

Curso: Anlisis y Diseo I Unidad 1 - Entrenamiento en Gestin de Requisitos y Diseo de Sistemas

Anlisis y Diseo de Sistemas: Overview


Docente: Ing. Angel Sullon asullom

Objetivos

Universidad Peruana Unin

Reconocer la importancia del Anlisis y Diseo de Sistemas en el marco de trabajo de la ingeniera de software

Agenda

Universidad Peruana Unin

Introduccin Ingeniera de requerimientos Modelos de procesos de software Conclusiones

Universidad Peruana Unin

INTRODUCCIN

Intro>Alert!

Universidad Peruana Unin

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?

Universidad Peruana Unin

Intro>Problema

Universidad Peruana Unin

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.

Intro>Qu necesito saber para definir un sistema?

Universidad Peruana Unin

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

Intro>Involucrados en el Desarrollo de Software


Universidad Peruana Unin

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

Universidad Peruana Unin

La Ingeniera de Software es un enfoque sistemtico del desarrollo, operacin y mantenimiento, y retiro del software (IEEE).
Desarrollo Produccin Retiro

El curso Anlisis y diseo de sistemas I, es el punto de partida para el desarrollo de software

Intro>Pero por donde comienzo?

Universidad Peruana Unin

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

Universidad Peruana Unin

PROCESOS DE INGENIERA DE REQUISITOS

Requisitos>Introduccin

Universidad Peruana Unin

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

Universidad Peruana Unin

Requisitos> Introduccin Para poder desarrollar software se necesitan usuarios comprometidos, disponibles e involucrados en el desarrollo.

Requisitos>Definicin

Universidad Peruana Unin

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

Universidad Peruana Unin

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

Universidad Peruana Unin

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.

Requisitos>La ingeniera de requisitos como solucin

Universidad Peruana Unin

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.

Procesos de ingeniera de requisitos

Universidad Peruana Unin

Gestin de los Requerimientos

Especificacin

Captura

Procesos de Ingeniera de Requerimientos

Validacin

Anlisis

Requisitos>Captura

Universidad Peruana Unin

Es la actividad por medio de la cual se obtienen los requerimientos Tcnicas:


Entrevistas Observacin directa Modelando el negocio Lectura/anlisis de documentos Prototipos Otros.

Requisitos>Captura: Entrevistas

Universidad Peruana Unin

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

Universidad Peruana Unin

Cuando el cliente ya est hablando. debes actuar como un nio.


Por qu? Y por qu? Qu es esto? Y esto otro? Cmo se hace esto? Y esto otro? Quin hace esto?

Requisitos>Captura: Entrevistas

Universidad Peruana Unin

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.

Requisitos>Tipos segn RUP

Universidad Peruana Unin

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

Functional Requirements Nonfunctional Requirements

Requisitos>Anlisis

Universidad Peruana Unin

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

Universidad Peruana Unin

Es la actividad por medio de la cual se describen en b/n los requerimientos


Documento de Definicin de Requerimientos Documento de SRS

!si los requerimientos no estn por escrito, no sirven porque no existen!

Requisitos>Validacin

Universidad Peruana Unin

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

!si los requerimientos no se han validado, no sirven!

Universidad Peruana Unin

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

Universidad Peruana Unin

MODELOS DE PROCESOS DE SW

Qu es un Modelo?

Universidad Peruana Unin

Un modelo es una simplificacin de la realidad

Proceso de Desarrollo de Software

Universidad Peruana Unin

Conjunto de etapas con la intencin de en tiempo y presupuesto definido.

Qu es un Modelo de Procesos de Software?

Universidad Peruana Unin

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

Plan del proyecto

Fases y Actividades Genricas

Universidad Peruana Unin

Ingeniera del SW

La Fase de Definicin Qu? La Fase de Desarrollo Cmo?


Diseo Codificacin Pruebas Instalacin Anlisis de requisitos Planificacin del Proyecto

Reingeniera del SW
Preventivo Correctivo Adaptativo Perfectivo

La Fase de Mantenimiento Cambio

Clasificacin de los Modelos de Proceso de SW Formales


Cascada Prototipeo Modelo en V Evolutivos: Espiral RUP OpenUP AgileUP NTP ISO 12207 SWEBOK PMBOK Modelos dirigidos por procesos de negocio Etc.

Universidad Peruana Unin

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

Universidad Peruana Unin

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.

Universidad Peruana Unin

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

Universidad Peruana Unin

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

Ing. Sist. Anlisis Diseo

Codif. Prueba Mant.

Prototipeo No estn claros los reqs. de entrada Iterativo. Hasta cuando se itera? Working prototype, desechar y empezar con desarrollo de sistema.

Universidad Peruana Unin

Cundo usar?

Para sistemas pequeos o de vida corta. Cuando es difcil conocer bien los requerimientos.

Establecer objetivos prototipo

Definir funcionalidad prototipo

Desarrollar prototipo

Evaluar prototipo

Plan prototipo

Definicin prototipo

Prototipo ejecutable

Reporte eveluacin

Proceso Genrico del Prototipeo

Modelo en V

Universidad Peruana Unin

Evolutivos

Universidad Peruana Unin

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

Universidad Peruana Unin

Inc1

Anlisi s

Diseo

Codif.

Prueba

Entrega 1er Incremento

Inc2

Anlisi s

Diseo

Codif.

Prueba

Entrega 2do Incremento

Inc3

Anlisi s

Diseo

Codif.

Prueba
Tiempo

Entrega 3er Incremento

Espiral

Universidad Peruana Unin

Basado en Componentes

Universidad Peruana Unin

Basado en modelo en Espiral (evolutivo e iterativo) + Tecnologas de Objetos. Enfatiza la Reusabilidad.


Planificacin Comunicacin con el Cliente Anlisis de Riesgos

Ident. Comps. candidatos Buscar Comps. en biblioteca


F

Ingeniera, Construccin y Entrega Evaluacin del Cliente

Construir Colocar en biblioteca

Extraer

Construir iteracin

Universidad Peruana Unin

Estructura Caractersticas Artefactos Roles y Actividades

RUP

RUP>Estructura

Universidad Peruana Unin

RUP>Estructura

Universidad Peruana Unin

Disciplinas de soporte

RUP> Caractersticas

Universidad Peruana Unin

RUP>Proceso Iterativo e Incremental

Universidad Peruana Unin

RUP>Centrado en al Arquitectura 4+1

Universidad Peruana Unin

Arquitectura Fsica

Universidad Peruana Unin

Arquitectura tecnolgica del software

Universidad Peruana Unin

User (.HTML) View Layer (MVVM) UserControls (.XAML) ViewModel (.cs) Windows Comunication Foundation [WCF] Service 4 (.svc)
Entities

Service Layer Business Layer Data Layer

Service Test Business Test Data Test Persistent Strategy

Service Contracts Service Implementation Business Data Contracts Data Implementation

Arquitectura ADEMS

Universidad Peruana Unin

Arquitectura BIMS Library

User (.HTML)
PrimeFaces (.XHTML) FacesBean (.Java) UserComponents (.MXML) ActionScript (.as) BlazeDS(AMF) Service Contracts Service SfContexts Service Test
(SpringJUnit4+Mock)

View Layer (MVP)

Service Layer Business Layer Data Layer

Entities

Business (SfContexts) Data Contracts Data HbContexts

Business Test

Data Test (SpringJUnit4)

Persistent Strategy: Spring3 + Hibernate3

Tecnologas emergente para el desarrollo web moderna

Universidad Peruana Unin

Orientacin

Universidad Peruana Unin

http://twitter.github.com/bootstrap/

Dependencia entre los modelos de RUP

Universidad Peruana Unin

Qu es UML?

Universidad Peruana Unin

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

DIAGRAMAS UML 2.0

Universidad Peruana Unin

RUP>Artefactos principales

Universidad Peruana Unin

RUP>Artefactos al culminar cada fase

Universidad Peruana Unin

Inicio

Elaboracin

Construccin

Transicin

Objetivos (Vision) tiempo

Arquitectura

Capacidad Operacional Inicial

Release del Producto

RUP> Roles y Actividades: Requerimientos

Universidad Peruana Unin

RUP> Roles y Actividades: Anlisis y Diseo

Universidad Peruana Unin

RUP> Roles y Actividades: Implementacin

Universidad Peruana Unin

RUP> Roles y Actividades: Pruebas

Universidad Peruana Unin

RUP> Roles y Actividades: Despliegue

Universidad Peruana Unin

Universidad Peruana Unin

OTROS MODELOS FORMALES

Open UP

Universidad Peruana Unin

NTP ISO 12207

Universidad Peruana Unin

De los Procesos del Negocio a los Casos de Uso (del Sistema)

Universidad Peruana Unin

Es decir, el proceso es la aplicacin, y la aplicacin es el proceso. Ver BizagiBPMS, IntalioBPMS

agend

Universidad Peruana Unin

Factibilidad

Universidad Peruana Unin

Requisitos-anlisis

Universidad Peruana Unin

Diseo

Universidad Peruana Unin

Universidad Peruana Unin

Universidad Peruana Unin

MTODOS GILES

eXtreme Programming (XP)

Universidad Peruana Unin

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

Desarrollo Dirigido por Tests (TDD)

Universidad Peruana Unin

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

Universidad Peruana Unin

Escribir la especificacin del requisito (el ejemplo, el test). Implementar el cdigo segn dicho ejemplo. Refactorizar para eliminar duplicidad y hacer mejoras.

Desarrollo Dirigido por Tests de Aceptacin (ATDD)

Universidad Peruana Unin

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

Universidad Peruana Unin

SCRUM

Scrum>Proceso

Universidad Peruana Unin

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

Universidad Peruana Unin

Artefactos

Reuniones Eventos

Universidad Peruana Unin

Nosotros, qu mtodos vamos a usar?

Scrum + Algunos artefactos de RUP + ATDD + Aspectos de Seguridad y de Calidad

Plugin SAD para Scrum


Secure Application Development - SAD
Lista de obstculos Lista de nuevas vulnerabilidades Visin Lista de requisitos Lista de objetivos de seguridad Otros

Universidad Peruana Unin

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

Universidad Peruana Unin

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

Universidad Peruana Unin

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.

You might also like