Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje.

Slides:



Advertisements
Presentaciones similares
Fundamentos de Diseño de Software INFT.1
Advertisements

Lenguaje Unificado de Modelado
ANÁLISIS DE REQUERIMIENTOS
Pruebas Orientadas a Objeto
Diseño orientado al flujo de datos
Técnico en programación de Software
CONCEPTOS Y PRINCIPIOS DE DISEÑO
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Ingeniería del Software
PROGRAMACION ORIENTADA
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
METODOLOGIA DE LA PROGRAMACION
Contexto: Aplicación gráfica.  Siempre que se piensa en separar la funcionalidad de una aplicación de su interacción con el usuario, bien sea una aplicación.
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
* FRAUSTO JIMENEZ GABRIELA * * HERNANDEZ TORRES ANA LAURA * * MANDUJANO JUAN CARLOS * * NOVA MARIN YARELI PAULINA * * ZAVALA CORTE JOCELYN ARELI *
ADMINISTRACIÓN DE REQUERIMIENTOS
Ingeniería de Software
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
Ciclo de Vida del Software Paradigmas de Desarrollo
5.3 APROXIMACIONES AL DISEÑO
LENGUAJE DE PROGRAMACIÓN
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
Comunicación y Multimedia
Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2.
Ingeniería de software
Importancia en la efectividad del:
DOCUMENTACIÓN DEL SISTEMA DE GESTIÓN DE LA CALIDAD
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Facultad de Ingeniería
Ámbito y Estimaciones de Proyecto ISF5501 Ingeniería de Software Semana 7/1.
Introducción a UML Departamento de Informática Universidad de Rancagua
Ingeniería de Requisitos
Patrones de diseño equipo n.1
Unidad 3 MODELO DE ANALISIS.
Algoritmos Programación
Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
Proceso de desarrollo de Software
Las fases del ciclo de la vida de desarrollo de sistemas
Fundamentos de Ingeniería de Software
USO DE LAS HERRAMIENTAS CASE MARIA VERA ANGEL CEDEÑO.
ANALISIS Y DISEÑO DE SISTEMAS II “DIAGRAMAS DE DESPLIEGUE ” INTEGRANTES: COPA PALMA CARLOS REYNALDO MAMANI PACO EDWIN ALVARO SIRPA LAURA HECTOR ELOY.
INTRODUCCIONHISTORIAQUE ES UN PLCELEMENTOS VENTAJAS TIPOSCONCLUSIONESREFERENCIAS.
UNIVERSIDAD NACIONAL DE LOJA ÁREA DE LA EDUCACIÓN, EL ARTE Y LA COMUNICACIÓN CARRERA DE INFORMÁTICA EDUCATIVA MODULO IV DOCENTE Ing. : Lena Ruiz Rojas.
CAPABILITY MATURITY MODEL INTEGRATION Álvarez, Wilsandy V Castillo, Kerwint V García, María F.V
Modelo de Entidad-Relación (Modelo Conceptual) Ing. Linda Masias Morales INTEGRACION DE LAS TECNOLOGIAS DE INFORMACION Y COMUNICACION.
Tema 7: Ingeniería del software Definición de software El software es: 1. instrucciones (programas de computadora) que cuando se ejecutan proporcionan.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Diagrama de clases Silvia Herzovich Rodrigo Aronas Matias Silversteyn.
INTRODUCCIÓN:. La programación consiste en desarrollar programas para procesar información. Una computadora es totalmente inútil si no dispone de un programa.
Introducción a la POO y C++ Pablo San Segundo (C-206)
Diagramas UML Richard Mora Republica Bolivariana de Venezuela Ministerio del poder popular para la educación I.U.T. Antonio José de Sucre Barquisimeto,
Accesibilidad Rafael Pedraza Jiménez Àrea de Coneixement de Biblioteconomia i Documentació Universitat Pompeu Fabra
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
Entregables del Proyecto
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
UML Lenguaje Unificado de Modelado. Unified Modeling Language UML es un lenguaje de propósito general para el modelado orientado a objetos. Es un lenguaje.
Administración de la Producción Administración de la Producción
Universidad Nacional de Ingeniería Comprendiendo los Fundamentos de
Representación en espacio de estado
Silvia Herzovich – Gabriel Weinstein – Matías Silversteyn 5to BTO SPI II.
1 Análisis y Diseño Estructurado Definiciones Básicas.
Presentada por: Johan Manuel Cabrera Chavarro Universidad Surcolombiana Tecnología en Desarrollo de Software.
Modelo del Proceso de Negocio Francisco Valdés Souto 2 al 6 de marzo 2009 © Avantare Consultores S. A. de C. V. – Derechos.
INTRODUCCIÓN AL UML (Lenguaje Unificado de Modelado)
1 Lenguaje de Programación Clase 1 Alberto Huamani Escobar
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Transcripción de la presentación:

Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje a través del estudio de sistemas existentes Etapas: Estudiar y entender el problema Conseguir mas de una solución factible Describir cada abstracción usada en la solución

Introducción a la Ingeniería del Software 2 El Proceso de Diseño PrimerDiseñoInformal DiseñoInformal Diseño mas Formal Diseñoterminado

Introducción a la Ingeniería del Software 3 Objetivos del Proceso de Diseño Formalizar la especificación Describir el sistema bajo distintos niveles de abstracción Especificar como se comporta el sistema y como ejecuta las funciones levantadas en la especificación Descomposición Errores y Omisiones son descubiertos en las primeras etapas del diseño.

Introducción a la Ingeniería del Software 4 Las Actividades del Proceso de Diseño Diseño Arquitectural. Se definen los subsistemas y sus relaciones y se documentan Especificación Abstracta. Para cada subsistema se definen sus funcionalidades y las restricciones sobre las cuales debe operar Diseño de la Interfaz. Para cada subsistema se diseña y documenta su interfaz con otros subsistemas Diseño de Componentes. Los servicios que provee el subsistema son particionados en componentes Diseño de la Estructura de Datos. La estructura de data a ser implementada en el sistema es diseñada en detalle y documentada Diseño Algorítmico. Los algoritmos usados para proveer los servicios son diseñados en detalles y documentados

Introducción a la Ingeniería del Software 5 Estas Actividades son realizadas con cada subsistema, hasta que los componentes identificados pueden ser llevados directamente a un lenguaje de programación. La práctica recomendada:  Diseño Estructurado: TOP - DOWN  Diseño Orientado a Objetos: Componentes Reusables Las Actividades del Proceso de Diseño

Introducción a la Ingeniería del Software 6 El Método Estructurado:  Ampliamente usado.  Reducción de Costos  Usa Notación Estándar  Asegura que el diseño sigue las formas estándar  Envuelve documentación de diseño diagramatizada  Es soportado por cantidad de herramientas CASE (Computer Aided Software Engineering) Los Métodos son notaciones estándar que incorporan una buena práctica. Métodos de Diseño

Introducción a la Ingeniería del Software 7 Existen un gran número de métodos, pero la mayoría soporta:  Vistas del Flujo de la Data, en donde el sistema es modelado usando la transformación de la data a través como esta es procesada.  Vista del Diagrama Entidad Relación, el cual es usado para describir las estructuras de datos a ser usadas.  Una Vista Estructural, donde los componentes del sistema y sus relaciones son documentadas. Métodos de Diseño

Introducción a la Ingeniería del Software 8 El diseño de Software es un modelo de un sistema del mundo real en el cual participan entidades y relaciones Hay tres tipos de notaciones básicas que son ampliamente usadas para la documentación del diseño:  Notación Gráfica  Lenguajes de Descripción de Programas  Texto Informal Métodos de Diseño

Introducción a la Ingeniería del Software 9 La estrategia mas usada para desarrollo de sw es la de Funcional o Estructurada. Descomposición del diseño en Componentes Funcionales Información de los Estados del Sistema con un área de datos compartidos En 1972 Parnas sugiere una estrategia alternativa (diseño Orientado a Objetos) con la versión de Smalltalk (Goldberg & Robson). Pero esta estrategia es adoptada a mediados de los 80. Estrategias de Diseño

Introducción a la Ingeniería del Software 10 Diseño Funcional o Estructurado:  Es realizado a través de puntos de vistas funcionales  Comienza con un alto nivel de abstracción que va siendo progresivamente refinado Diseño Orientado a Objetos:  El sistema es visto como una colección de objetos mas que como funciones.  Cada objeto maneja su propia información  Los Objetos poseen un conjunto de atributos que definen su estado y las operaciones que actúan sobre ellos.  Los objetos son miembros de una clase  Existe la herencia y la composición  Los objetos se comunican a través del paso de mensajes Características de las Estrategias de Diseño

Introducción a la Ingeniería del Software 11 Se dice que es un diseño con calidad, si es:  Mantenible:facilidad de modificar o añadir funcionalidades  Entendible  Modular: los cambios tienen un efecto local  Cohesivo: todas las partes de una componente del sistema tienen relación lógica  Acoplado: relación/unión entre los componentes. La cual debe ser baja “Los atributos de calidad no están atados a las estrategias de diseño”. Calidad del Diseño

Introducción a la Ingeniería del Software 12 La Cohesión es una medida de relación lógica entre las partes de un componente, la cual contribuye con la implementación Existen diferentes niveles de cohesión (Constantino y Yourdon):  Cohesión Coincidencial, las partes de una componente no están relacionadas pero están empaquetados dentro de una única componente.  Asociación Lógica, componentes que desarrollan similares funciones como salidas, manejos de errores, etc. Son puestas juntas en una misma componente.  Cohesión Procedimental, los elementos en una componente completan una única secuencia de control Cohesión

Introducción a la Ingeniería del Software 13  Cohesión Comunicacional, todos los elementos de una componente operan sobre una misma data de entrada o producen una misma data de salida.  Cohesión Secuencial, la salida desde un elemento de la componente sirve de entrada para cualquier otro elemento.  Cohesión Funcional, cada una de las partes de una componentes son necesarias para la ejecución de una función. Por ser desarrollado por Constantine & Yourdon, la naturaleza de estos niveles es funcional. Sin embargo, existen niveles de cohesión para el enfoque Orientado a Objetos. Cohesión

Introducción a la Ingeniería del Software 14 Un objeto Cohesivo, es aquel en donde una entidad es representada y todas las operaciones sobre la entidad están incluidas dentro del objeto. Una cohesión de clase puede ser definida como:  Cohesión de Objeto, Cada operación provee funcionalidad la cual permite a los atributos del objeto ser modificados, inspeccionados o usados como base para proveer un servicio. La cohesión es una característica deseable debido a que esta significa que una unidad representa una parte de la solución del problema Cohesión

Introducción a la Ingeniería del Software 15 Está relacionado con la cohesión. Indica la fuerza de interconexión entre las unidades de programa. Como regla general, los módulos son altamente acoplados sí hacen uso de variables compartidas o sí intercambian información de control. Modulo A Modulo A Modulo D Modulo D Modulo B Modulo B Modulo C Modulo C Area de Data Compartida Alto Acoplamiento Acoplamiento

Introducción a la Ingeniería del Software 16 Bajo acoplamiento es ejecutado para asegurar que la información de representación está atada a una componente y que su interfaz de datos con otras unidades es vía una lista de parámetros. Modulo A Data de A Modulo A Data de A Modulo B Data de B Modulo B Data de B Modulo D Data de D Modulo D Data de D Modulo C Data de C Modulo C Data de C Bajo Acoplamiento Acoplamiento

Introducción a la Ingeniería del Software 17 Los cambios en el diseño de una componente implican que la persona responsable de hacer el cambio entienda la operación de dicho componente. Este entendimiento está atado a unas características:  Cohesión, Puede el componente ser entendido sin referencias de otro componentes?  Nombre, Los nombres de los componentes son significativos?  Documentación, La documentación de la componente muestra una relación clara entre las entidades del mundo real y la componente?  Complejidad, Cuan complejos son los algoritmos para implementar la componente? Ser Entendible

Introducción a la Ingeniería del Software 18  Si un diseño va a ser mantenido, este debe ser adaptable. Esto implica, que sus componentes deben ser de bajo acoplamiento.  La adaptabilidad significa, que el diseño debe estar muy bien documentado, que la documentación sea entendible y consistente con la implementación y la implementación debe estar escrita en una forma leíble.  Un diseño adaptable debe tener alto nivel de visibilidad y deben estar determinada las relaciones entre los diferentes niveles. Adaptabilidad

Introducción a la Ingeniería del Software 19  Debe ser fácil incluir modificaciones tanto al diseño como al documento de diseño.  Las componentes deben ser autocontenidos. Una componente debe ser de bajo acoplamiento y solamente cooperar con otras componentes bajo el paso de mensajes. Adaptabilidad