1 Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Mayo 2011.

Slides:



Advertisements
Presentaciones similares
Sistema de notificación de incidencias de analizadores para dispositivos móviles Master Universitario de Desarrollo de aplicaciones para dispositivos móviles.
Advertisements

Lcda. Ingrid Graü Diseño de Sistemas 1. Lcda. Ingrid Graü Diseño de Sistemas 2.
1 Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011.
NORMA ISO DIS 9001:2015 Draft International Standard.
BASE DE DATOS Reingeniería de Procesos. Modelo de BPR Definición del Negocio Refinamiento e instanciación Evaluación de procesos Especificación y diseño.
FUNDAMENTOS DEL ANÁLISIS DE SISTEMAS Un sistema es un conjunto de componentes que se unen e interactúan entre si para formar un todo en base a un mismo.
Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Abril 2009.
Organizaciones involucradas: El centro de cálculo noruego. Crea lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en 1967.
La Ingeniería de Sistemas
Ingeniería en Informática
GESTIÓN DEL RIESGO E INGENERÍA DE SOFTWARE BASADO EN COMPONENTES
El Lenguaje de Modelación Unificado
Ingeniería de requisitos y
Flujo de trabajo: Requerimientos
Gestión de Proyectos.
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
Ingeniería de Software
BASE DE DATOS INTRODUCCION.
SWEBOK.
Programación Orientada a Objetos
U.T. 11: Introducción A Las Bases De Datos
Formulación y planeación para la Ingeniería Web
MODELO CLIENTE -SERVIDOR
SISTEMAS DE INFORMACIÓN
Modelado de diseño para aplicaciones web. Proceso de Diseño Diseño y Calidad del software Calidad de la aplicación web Facilidad de uso FuncionalidadConfiabilidadEficiencia.
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
INTRODUCCIÒN AL SISTEMA GESTOR DE BASE DE DATOS
Ingeniería de Sistemas Requerimientos
Ingeniería de Software Somerville
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
UNIVERSIDAD NACIONAL DE LOJA Área de la Educación, el Arte y la Comunicación Informática Educativa IV INGENIERIA DE SOFTWARE Taller de Análisis y Diseño.
Fundamentos de Ingeniería de Software MODELO DE CASOS DE USO
Definición de un Sistema Distribuido
Metodología OOHDM Jairo Pinto Ing. sistemas.
Principales desafíos: adaptabilidad y agilidad empresarial
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
Danny Frank Otero Arrascue Ingeniería de Requisitos / Requerimientos Advisor: MEJIA CABRERA HEBER IVAN.
Unidad 5: Evaluación de los sistemas
Comprensión y obtención de los requerimientos
Fundamentos de Sistemas de Información
Metodologías de Desarrollo de Software RUP – Proceso Racional Unificado Gilber BASILIO ROBLES I.E.S.T.P. “DANIEL ALCIDES CARRIÓN” Taller de Modelamiento.
ERP Software de gestión integrada. Criterios de selección de un ERP Sostenibilidad Facilidad de uso Características Seguridad de los datos Control de.
Planeamiento: un plan incremental para que la ingeniería web produzca resultados. La ingeniería web es un área que abarca procesos, técnicas y modelos.
Patrones de Diseño Sistemas de Información II – IS 445 Docente: Lisber Arana Hinostroza Mayo
INTRODUCCIÓN A UML Y AL ADOO 1 Diagramas en UML ◦Diagramas de casos de uso ◦Diagramas de clases y objetos ◦Diagramas de secuencia ◦Diagramas de colaboración.
CC51A – Ingeniería de Software Documento de Diseño: Arquitectónico y Detallado Sergio Ochoa D.
DISEÑO DE SOFTWARE 1ª. Parte
Servidor de Reportes basado en Tecnología Java y XML
Niveles de abstracción de una BD
Introducción a las bases de datos (I)
Spring Framework.
Nuestros canales de comunicación Gestión de la Calidad del Software Modelos y Estándares de Calidad en el Software.
ARQUITECTURA DEL PROYECTO. La estructura modelo vista controlador se muestra en la siguiente ilustración : ESTRUCTURA DE PROYECTOS DE MVC.
Casos de Uso Análisis de requisitos con casos de uso.
PARÁMETROS PARA LA PRESENTACIÓN DE PROYECTOS EN LA ESCUELA DE TECNOLOGIAS E INNOVACION. ING. Hugo de Jesús Peláez Giraldo Líder Escuela de Tecnologías.
IEEE-STD PRÁCTICA RECOMENDADA PARA LA ESPECIFICACIÓN DE REQUERIMIENTOS DE SOFTWARE.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
NORMA ISO/IEC 9126 Norma publicada en Usada para la evaluación de la calidad de software. Establece las características de calidad para productos.
INTRODUCCIÓN A UML.  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Desarrollo de sistemas
PRUEBAS DE CAJA NEGRA. -Internationa Software Testing Qualification Board (ISTQB) Internationa Software Testing Qualification Board (ISTQB) Técnica de.
Estudio de Viabilidad del Sistema (EVS). Estudio de Viabilidad del Sistema Cuestiones ¿Qué es la viabilidad de un sistema? ¿Cuáles son los objetivos del.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS CHACALIAZA BOZA MARGARET AMARLLY.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS CHACALIAZA BOZA MARGARET AMARLLY.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS Magallanes Napa, Anthony Yair.
Ha llegado el momento de dar una mirada al interior de los Sistemas Operativos. En las siguientes secciones examinaremos cuatro estructuras distintas.
ICI 502 Procesos de Software
ARQUITECTURA DE SOFTWARE FLUJO DE DATOS Tuberías y Filtros DOCENTE: ING. ALFREDO YAPIAS CIRINEO INTEGRANTES: TINOCO BLANCO, HANS BALVIN QUISPE, JOSE MORALES.
Transcripción de la presentación:

1 Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Mayo 2011

2 ¿Qué es Diseño de Software? En Ingeniería del Software, el diseño es definir como se transformará el que en el como Definición de Requerimientos Diseño de Sistema y de Software Implementación y Pruebas de Unidades Integración y Prueba del Sistema Operación y Mantenimiento ¿Que voy a hacer? ¿Cómo lo voy a hacer? ¿Cómo se ve completo? ¿Lo hice bien?

3 ¿Qué es Diseño de Software? Diseño es el proceso creativo de transformar un problema en una solución. La descripción de esa solución es, también, denominada diseño Pfleeger, 1998 El diseño de software es el proceso de concebir (modelar) y especificar los detalles de como el sistema cumplirá las especificaciones de requerimientos establecidas en el análisis En Ingeniería del Software, el diseño es definir como se transformará el que en el como

4 ¿Qué es Diseño de Software? Diseño = Proceso Creativo Diseño = Solución No hay UNA única solución No existe una solución completamente óptima Sólo hay soluciones buenas, mediocres, malas... La evaluación y elección depende del cliente, de los requerimientos, del criterio del diseñador, del contexto, etcétera

5 ¿Qué es Diseño de Software? Diseño de la Interfaz H/MDiseño de los modelos de datos Diseño de las Interfaces con otros SistemasDiseño de la Arquitectura del Software ¿cómo? Requerimientos del Sistema (¿qué?) Diseño de Procesos / Interacción, etcétera El objetivo del diseño es “implementar” los requerimientos del usuario

6 ¿Qué es Diseño de Software? Diseño de la Interfaz H/M Diseño de los modelos de datos Diseño de la Arquitectura del Software (General) Diseño de las Interfaces con otros Sistemas El diseño se hace en función y para cada caso de uso......por medio de un “marco” conceptual preestablecido (Ej: Watch / Diseño Orientado a Objetos) Diseño Detallado de la Arquitectura (Clases / Secuencias)

7 Modelo 4+1 de Krutchen Introducido por Philippe Kruchten en 1995 Es un enfoque que permite ver distintas partes (facetas) de la arquitectura de un sistema por separado Usando UML, el sistema también puede ser diseñado en términos de vistas Vista Lógica o Estructural Vista de Implementación Vista de Despliegue Vista de Procesos Vista de Usuarios Una vista captura aspectos del sistema desde una o más perspectivas dadas

8 ¿Diseño de Software Conceptual / Técnico? Diseño Diseño Técnico (Interno) Diseño Conceptual (Externo) Orientado al Cliente Orientado a los “Constructores” (Programadores) del sistema Mayor nivel de Abstracción Menor nivel de Abstracción

9 ¿Diseño de Software Conceptual / Técnico? Conceptua l Técnic o

10 ¿Diseño de Software Conceptual (Externo)? Definir la estructura general del sistema programado Describir las funciones que deberá ejecutar el sistema bajo el ambiente operativo establecido en los requerimientos ¿El “qué”? ¿Casos de Uso? Resulta que desde cierto punto de vista, los casos de uso también forman parte el diseño

11 ¿Diseño de Software Conceptual (Externo)? Diseñar la Interfaz Usuario / Sistema, incluyendo la entrada de datos y salida de información Establecer los atributos de calidad de diseño que deberá satisfacer el sistema Describir las fuentes de los datos y sus procesos de transformación

12 ¿Diseño de Software Técnico (Interno)? Diseño de la Arquitectura: Usando Estilos Arquitectónicos, Patrones de Diseño, Frameworks (marcos)

13 ¿Diseño de Software Técnico (Interno)? Diseño de Archivos o Bases de Datos

14 ¿Arquitectura? La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución. IEEE

15 ¿Arquitectura? La Arquitectura de Software es, a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes según se la percibe desde el resto del sistema y las formas en que los componentes interactúan y se coordinan para alcanzar la misión del sistema. La vista arquitectónica es una vista abstracta, aportando el más alto nivel de comprensión y la supresión o diferimiento del detalle inherente a la mayor parte de las abstracciones Paul Clements, 1996

16 ¿Arquitectura? La Arquitectura de un sistema define la división y estructura de un sistema en subsistemas y establece un marco de control y comunicación entre los distintos subsistemas

17 ¿Arquitectura? Sistema de Visión Sistema de Identificación de Objetos Controlador de la Cinta Transportadora Sistema de Selección de Empaquetado Sistema de Empaquetado Controlador de la Mano Articulada Controlador del Brazo Sistema robótico de control de empaquetado Fuente: Sommerville / Ingeniería del Software

18 ¿Arquitectura?

19 ¿Arquitectura? Estructura y componentes* del sistema desde el punto de vista del programador Jerarquía y funciones de cada componente* de software Flujos de datos entre los componentes* Estructuras de datos empleadas por cada componente* * También se puede ver desde el punto de vista de Clases / Objetos

20 ¿En que afecta una buena / mala arquitectura? Rendimiento: Operaciones críticas en un pequeño número de subsistemas / reducción de comunicación entre subsistemas Protección: Es necesario proteger el acceso a ciertos recursos, se puede usar una arquitectura que esconda y limite el acceso y comunicación con los recursos a proteger Seguridad: Centralizar las operaciones relacionadas con la seguridad en un subsitema (o en un conjunto pequeño de subsistemas) para reducir costos y desarrollar los mecanismos de acceso adecuados Fuente: Sommerville / Ingeniería del Software

21 ¿En que afecta una buena / mala arquitectura? Disponibilidad: Incluir componentes redundantes y permitir reemplazar componentes sin necesidad de detener el sistema Mantenibilidad: Utilizar componentes independientes de grano fino que pueden modificarse con facilidad de forma independiente, separar productores de consumidores de información y evitar (o estandarizar) estructuras de datos compartidas Fuente: Sommerville / Ingeniería del Software Otros...

22 Arquitectura (Ejemplo) Arquitectura a 3 capas Capa de Presentación (Interfaz Gráfica de Usuario) (HTML, Swing, Qt, GTK, etcétera) Capa de Proceso / Negocio (Lógica / Reglas de Negocio) Capa de Persistencia BD

23 Arquitectura (Ejemplo con más detalle) BD Motor de Workflow (CledaFlow, CledaScheduler y CledaBase) Hibernate JDBC Documentos MVC CledaMVC (Struts1) o Echo2 Modelo de Dominio Servlets Navegador WEB CledaTags CledaCore Aplicación Arquitectura a 3 capas bien definida (Cleda)

24 Arquitectura (Ejemplo con más detalle) Detalle del Motor de Workflow Cliente Definición de Workflow (XML) Cargador BD Motor de Workflow (CledaFlow) HibernateJDBC Documentos Modelo de Workflow Scheduler (CledaSchedul er) Modelo de Scheduler Usuarios Perfiles Roles (CledaBase) Modelo de Cleda Base Agentes Embebido o Vía Web Services*

25 Diseño Arquitectónico Arquitectura del Software Bibliotecas / Componentes Patrones de Diseño Clases / Funciones Frameworks (Marcos) Estilos Arquitectónicos En general, estos elementos se verán mas adelante en clases

26 Gracias ¡Gracias!