Ingeniería de Software Repaso de Requerimientos y Diseño



Documentos relacionados
Arquitectura de Software III: Elaboración. Contenido del curso. III: Elaboración

Ingeniería de Software Arquitectura y Diseño [2]

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Pauta de Informe de Proyecto

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos

Ingeniería de Software Calidad de Procesos y Productos de Software

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

UML, ejemplo sencillo sobre Modelado de un Proyecto

Unidad VI: Supervisión y Revisión del proyecto

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

Resumen General del Manual de Organización y Funciones

Contenido del curso. Arquitectura de Software III: Elaboración. III: Elaboración. Estilos y patrones. Estilos y patrones. Estilos de arquitectura

Ciclo de Vida del Desarrollo de un Sistema de Información. Departamento de Ingeniería Industrial Universidad de Chile

JAVATO: UN FRAMEWORK DE DESARROLLO JAVA LIBRE

Arquitecturas de Software

Especificación de Requerimientos Funcionales y No Funcionales. Sistema Reservación Hotelera

INGENIERÍA DEL SOFTWARE I Tema 1. Introducción a la Ingeniería del Software. Univ. Cantabria Fac. de Ciencias Francisco Ruiz


Unidad I: Introducción a la gestión de proyectos

Dirección de Proyectos

Figure 16-1: Phase H: Architecture Change Management

Estilos Arquitectónicos

Instructivo para la elaboración de un Manual Técnico

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Análisis y Diseño de Soluciones de Software

El Proceso Unificado de Desarrollo de Software

Aplicaciones de Ingeniería de Software

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN

Tema 5. Diseño detallado.

Estilos Arquitectónicos

Desafío#5 Mapas conceptuales Redes de conceptos

Ingeniería de Software IV: Requerimientos

Evaluación del Software

Unidad 9. Implementación. M.C. Martín Olguín

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Capacitación YELL. Usabilidad. Jorge Vera Vargas Abril 2012

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

Ministerio de Agricultura y Ganadería Servicio Fitosanitario del Estado Dirección. Gestión del sitio web del SFE

Arquitectura de Proyectos de IT

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

El elearning paso a paso

Ambientes que comunican

Verificación de la Calidad en los Productos de Software Desarrollados

GUIA PARA LA GESTIÓN DE TALENTO HUMANO

GESTION DE PROYECTOS INFORMATICOS Facultad de Ingeniería Universidad Nacional de Jujuy Analista Programador Universitario Ciclo Jorge R.

Sistema de Administración de Farmacias Plan de Proyecto Versión 1.1. Historia de revisiones

Anexo I - Descripción de Posición: Gestor de Demandas y Proyectos 1

Observa que la cultura dice qué se permite y qué no se permite hacer en la empresa y cómo hacerlo.

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Soporte y mantenimiento. Generalidades

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

Gestión de Permisos. Documento de Construcción. Copyright 2014 Bizagi

ANEXO : PERFILES. Guía de Comunicación Digital para la Administración General del Estado. ANEXO PERFILES

Estimación de Tamaño de Software: Puntos Funcionales. Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

Bloque I: Conceptos básicos y fundamentos de la Dirección de Proyectos.

Estructuración de soluciones SOA a partir de una visión de Arquitectura Empresarial. Jorge A. Villalobos. jvillalo@uniandes.edu.co

Planificación, Administración n de Bases de Datos. Bases de Datos. Ciclo de Vida de los Sistemas de Información. Crisis del Software.

REINGENIERÍA DE LOS PROCESOS DEL NEGOCIO. Conceptos, Principios, Antecedentes... La idea de Smith: la especialización del trabajo.

Análisis y diseño del sistema CAPÍTULO 3

Diplomado en Aseguramiento de la Calidad De los Procesos y Productos de Software

Control de prestaciones de un proyecto

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

Sistemas de Calidad Empresarial

El alumno conocerá el diseño y la planificación de estrategias corporativa y competitiva, para proyectar a la empresa en una posición de ventaja

Anexo 3 GUIÓN DE LA ENTREVISTA PARA EL ORIENTADOR

CONTROL DE CAMBIOS. FICHA CONTROL DE CAMBIOS Versión Fecha Descripción de la Modificación

Gestión de Proyectos de desarrollo de software. Ing. Rafael Bentancur Universidad ORT Uruguay

Proyecto Tutelkán Tutelkan Reference Process (TRP) Versión 2.0

DEFINICIÓN PROYECTO INTEGRADOR PROYECTO INTEGRADOR PRIMER SEMESTRE TECNOLOGÍA EN DESARROLLO DE SOFTWARE

CAPÍTULO 2 PROBLEMÁTICA, OBJETIVOS Y ALCANCE. El presente capítulo describe la problemática que la agencia presenta en su área de servicio.

Capitulo III. Diseño del Sistema.

Técnica 2(Instrumental)

Elementos requeridos para crearlos (ejemplo: el compilador)

Vicerrectorado de Investigación Oficina de Patentes y Valorización

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Información General del Servicio de Hosting

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

Distribución CPG. Cómo mejorar las ganancias y la satisfacción del cliente a través de la innovación

Unidad II: Administración de Procesos y del procesador

LA PLANIFICACIÓN ESTRATÉGICA EN MATERIA TIC EN EL ÁMBITO DE LA AGE

Documento de Arquitectura de Software IEEE

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

CLASE 7: ARQUITECTURA: DEL ANÁLISIS AL DISEÑO DIAGRAMAS DE SECUENCIA Y CONTRATOS

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

COMPONENTES DEL SISTEMA CONTABLE. Contabilidad Financiera Contabilidad de costos Contabilidad gerencial

EJEMPLO DE REPORTE DE LIBERTAD FINANCIERA

Calidad Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

CREACIÓN DE VALOR. Creatividad e innovación

Sistemas de Operación II

Resumen General del Manual de Organización y Funciones

PEEPER PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA CARRERA DE INGENIERIA DE SISTEMAS. Mayo Versión 2.1 OSCAR IVAN LÓPEZ PULIDO

REPUBLICA DE COLOMBIA PROGRAMA DE LAS NACIONES UNIDAS PARA EL DESARROLLO PNUD

HERRAMIENTAS DE APOYO PARA LA IMPLEMENTACIÓN DE LA GESTIÓN POR PROCESOS EN EL MARCO DE LA POLÍTICA NACIONAL DE MODERNIZACIÓN DE LA GESTIÓN PÚBLICA

Capítulo II. Arquitectura del Software

En este capítulo se describe las herramientas, así como los procesos involucrados en el análisis y desarrollo de sistemas de información, por otro

SISTEMAS DE INFORMACIÓN I TEORÍA

COE Dirección Áreas de Conservación

LICITACIÓN N L13045 NUEVO SISTEMA LEY DE TRANSPARENCIA

Patrones de Diseño Orientados a Objetos 2 Parte

Transcripción:

Ingeniería de Software Repaso de Requerimientos y Diseño Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María <hernan at inf.utfsm.cl>

Introducción Proceso y ciclo de vida Manejo de proyectos Análisis de Requerimientos Arquitectura y Diseño Contenidos hasta ahora Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 2

Requerimientos

Ideas-fuerza Introducción Hay que saber lo que hay que hacer antes de ponerse a hacerlo Conocer el problema antes de inventar la solución Propósito: Reducir el riesgo de construcción Efectividad: riesgo de hacer algo inútil Eficiencia: riesgo de sub-/sobre-estimar recursos Problema: Parálisis de análisis Querer saberlo todo antes de hacer nada Ideas revolucionarias? U obvias? Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 4

Revolucionario u obvio? Estudio de 8000 proyectos en EUU En plazo y costo: 9%-16% Retrasados/excedidos: 53%-60% Cancelados (abortados): 31% Porqué fueron cancelados? Requerimientos incompletos: 13% Falta de participación del usuario: 12% Falta de recursos: 11% Expectativas descontroladas: 10% Falta de apoyo gerencial: 9% Requerimientos inestables: 9% Falta de planificación: 8% Obsolescencia pre-parto: 7% Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 5

Tipos de requerimientos Requerimiento : atributo del sistema Algo que el sistema debe ser capaz de hacer para cumplir su propósito Tipos clásicos de requerimientos Funcionales : describen tareas específicas que el sistema debe ser capaz de hacer p.ej.: imprimir cheques de sueldos No-funcionales (restricciones): limitan nuestras opciones para construir una solución p.ej.: generar cheques máx. 4 hrs después de recibir listados de contabilidad Analogía Requisitos funcionales: los verbos (Xear) Requisitos no-funcionales: los adverbios (Xmente) Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 6

Proceso 1. Levantamiento y análisis Análisis del problema Descripción del problema Prototipo y prueba 2. Definición y especificación de requerimientos Documentación y validación Idea: determinar QUÉ hacer, no CÓMO hacerlo Un enfoque: identificar gente, procesos y recursos que apoyan el sistema actual (socio-técnico) documentar sus relaciones e interacciones Priorizar requerimientos 1. Esenciales (deben ser cumplidos) 2. Deseables pero no esenciales 3. Opcionales pero eliminables Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 7

Técnicas de Descripción Estáticas Dinámicas O.O. Otras Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 8

Técnicas Estáticas Permiten razonar sobre comportamiento de sistemas que cambian poco (o nada) en el tiempo Referencia indirecta Definición axiomática Abstracción de datos Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 9

Técnicas dinámicas Permiten razonar sobre comportamiento de sistemas que cambian en el tiempo Tablas de decisión Diagramas de transición Redes de Petri Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 10

Prototipos Throw away Evolutivo Prototipos Prototipos son herramientas de control de riesgo Prototipos funcionales Reducen riesgo de no entender lo que el usuario quiere Prototipos tecnológicos Reducen riesgo de asumir que ciertas cosas son posibles Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 11

Diseño y Arquitectura

Diseño Diseño: proceso creativo de derivar una solución a partir de un problema Características: En general, no hay UNA solución En general, no hay una solución mejor Evaluación y elección depende del cliente Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 13

Diseño conceptual Describir aspectos fundamentales del sistema ámbito (límites) entidades, atributos, relaciones Responder preguntas como: de dónde vienen los datos? qué le pasa a los datos en el sistema? cómo verán los usuarios el sistema? qué operaciones y opciones tendrán los usuarios? Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 14

Arquitectura, diseño y programación Arquitectura de Software Diseño en grande En general, al construir grandes sistemas es más difícil cumplir propiedades sistémicas que las funcionales Arquitectura/diseño: contraste escala/propósito Análisis dice qué debe hacer el sistema Arquitectura dice qué software hacer (reusar/comprar) Diseño dice cómo hacer el software Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 15

Tarea del diseñador Diseñador misión Con una descripción de tareas y propiedades sistémicas especificar una solución en términos de componentes que responda las preguntas de los stakeholders Propósito:...permitir evaluar a priori el sistema a ser construido...ser guía de acción a los constructores...permitir elaborar un plan de construcción Permitir razonar sobre el sistema y sobre el proceso Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 16

Stakeholders analista specs sistema arquitecto arquitetura arquitetura arquitetura revisor jefe de projeto implantador QA sistema admin Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 17

Calidad según los stakeholders La solución (computaciones) debe... Satisfacer los requisitos (según analistas) La solución (ejecutables) debe... Ser administrable (según administradores) La solución (software) debe Ser construible (según programadores & diseñadores) Ser testeable (según QA) La descripción de la solución debe... Ser evaluable (según otros arquitectos) El proceso de construcción debe... Ser manejable (según jefe de proyecto) Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 18

Estilos de arquitectura Estilo = definición de una familia de sistemas en términos de un patrón de organización estructural Un estilo define: vocabulario de tipos de componentes y conectores restricciones de combinación uno o más modelos semánticos para determinar propiedades del todo a partir de las partes Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 19

Procesamiento descompuesto en sub-unidades Pipes and filters Tipos de datos abstractos Basado en eventos (invocación implícita) Sistemas en capas Repositorios Intérpretes Control de procesos (bucles) Ejemplos Unix: capas, pipes, event-driven Estilos Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 20

Estilo: pipes & filters Vocabulario: filtros y pipes Estructuras permisibles: salidas a entradas Invariantes: filtros son independientes (no comparten estado con otros filtros) Especializaciones: pipelines (topología lineal) sistema secuencial en lotes ( batch ) Ejemplos programación shell Unix Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 21

Estilo: repositorio Estado compartido por varios componentes Vocabulario: repositorio (almacenamiento central) componentes (almacenar, recuperar, actualizar) Especializaciones blackboard : almacén crentral lanza procesamiento bases de datos: transacciones (externas) lanzan procesamiento Ejemplos Nota: nada se dice sobre la implementación de la comunicación ni del repositorio Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 22

Patrones de diseño Patrones de diseño Heurísticas sistematizadas Originados en comunidad de POO [Gamma+] Patrón =... una solución (descripción) a un problema en un contexto (evaluación de fuerzas y comentarios) Proceso: patrones Elaboración, aprobación y publicación Comunidad fuerte y combativa Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 23

Categorías de patrones Patrones de Buschman+ Estructurales ( from mud to structure ) Capas ( layers ) Pipes & Filtros Pizarra ( blackboard ) Sistemas distribuidos Broker Sistemas interactivos MVC: Model-View-Controller Presentación-Abstracción-Control Sistemas adaptables Reflexión Micro-kernel Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 24

Patrón de arquitectura: MVC MVC: Model-View-Controller Modelo: elemento de interés para observar/manipular Vista: representación (gráfica u otra) Controlador: manejo y control de vistas de un modelo Ejemplos famosos Smalltalk Struts (framework Web) Especializaciones Observer-Oberved Publisher-Subscriber Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 25

Avance notable...desde estilos descriptivos...a patrones clásicos de sistemas...a patrones de integración Patrones Frutos de la experiencia Heurísticas sistematizadas Patrones: Resumen Sesión 07 [2004/v/04] Ingeniería de Software - H.Astudillo 26