Engenharia de Software II

Slides:



Advertisements
Presentaciones similares
MODELOS ORIENTADOS A OBJETOS
Advertisements

U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
METODOLOGÍA ORIENTADA A OBJETOS CARACTERISTICAS DEL PROCESO
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Fundamentos de Diseño de Software INFT.1
FACHADA COMPOSITOR MEMENTO
Lenguaje Unificado de Modelado
TECNICATURA UNIVERSITARIA EN INFORMATICA
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
Pruebas Orientadas a Objeto
Arquitectura CLARO-TECNOTREE
Modelos de Datos Modelado y Diseño de Bases de Datos
Curso de Diseño y Construcción de Productos de Software CLASE 2
Fundamentos de Ingeniería de Software
Prof. César Luza Montero
Etapas y actividades en el desarrollo OO basado en UML
CONCEPTOS Y PRINCIPIOS DE DISEÑO
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Ingeniería del Software
Análisis y Diseño O.O. Click to add notes Preguntas del diseño :
Aspectos Avanzados de la Tecnología de Objetos
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Programación orientada a objetos Rosemary Torrico Bascopé.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Modelo de Análisis Centro ISYS Escuela de Computación
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Laura Patricia Pinto Prieto Ingeniera de sistemas.
Patrones de asignación de responsabilidades (GRASP)
Modelado Arquitectónico
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Diseño del Software Diseño de datos Diseño arquitectónico
(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.
Ingeniería de Software
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
Diseño e Implementación
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad
Patrones GRASP.
1 Diseño Orientado a Objetos Agustín J. González ELO-329: Diseño y Programación Orientados a Objetos 1er. Sem
Modelos de Bases de Datos
Patrones para asignar responsabilidades
Tecnológico de Estudios Superiores Huixquilucan Fundamentos de Sistemas Ingeniería en Sistemas Computacionales Lic.: Lydia Villavicencio Gómez “Paradigmas.
METODOLOGÍA OMT Diseño de sistemas.
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
Son la base para la búsqueda de soluciones o problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Ingeniería de Software
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
1 Diseño Orientado al Objeto Agustín J. González ELO-326: Seminario de Computadores II 2do. Sem
Importancia en la efectividad del:
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Desarrollo de Software Orientado a Objetos (deficiencias)
TEMA 9: DIAGRAMA DE CLASE EN UML
PROGRAMACION ORIENTADA A OBJETOS
Diseño de Sistemas.
Ingeniería de Requisitos
Diseño del Software e Ingeniería del Software
Patrones de diseño equipo n.1
UML.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Proceso de desarrollo de Software
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
MODELAMIENTO VISUAL Y UML
Fundamentos de Ingeniería de Software
Modelado UML Diagrama de Clases
Entregables del Proyecto
Universidad Nacional de Ingeniería Comprendiendo los Fundamentos de
Transcripción de la presentación:

Engenharia de Software II

Recordando…

MODELOS ANÁLISIS DISEÑO ¿Qué funciones? ¿Cómo funciona? Representar el ¿qué? Representar el ¿cómo? Modelación

Cria uma representação ou modelo de software que proporciona detalhes a respeito das estruturas dos dados, as arquitecturas, as interfaces e os componentes do software que são necessários para implementar o sistema.. Desenho de Software

Permite fazer uma ponte entre a linguagem do cliente e a linguagem que entendem os desenvolvedores. Permite fazer efetiva a arquitectura candidata, contribuindo a conseguir uma arquitectura estável e sólida. Permite criar um plano mais próximo ao que posteriormente deve se escrever como código. Papel do Desenho de Software

¿Principios del diseño de software?

1.O desenho deve ser rastreable até o modelo de análise. 2.Sempre se deve considerar a arquitectura do sistema que se vai construir. 3.O desenho de dados é tão importante como o desenho de funções de processamento. 4.As interfaces (internas e externas) devem desenhar-se com cuidado. Princípos do Desenho de Software

5.O desenho de interface do utente deve ajustar às necessidades do utente final. 6.O desenho a nível de componentes deve ser independente do modo funcional. 7.Os componentes devem estar juntados entre se em forma mínima e vinculados com o ambiente externo. Princípos do Desenho de Software

8.As representações do desenho (modelos) devem ser facilmente compreensíveis. 9.O desenho deve desenvolver-se de maneira iterativa. Na cada iteração o desenhador deve procurar a maior simplicidad.

¿Cómo construir un modelo del diseño?

Conferencia 4: Diseño de Software Orientado a Objetos

1.Diseño orientado a objetos.  Marco conceptual.  Patrones de diseño  Paquetes y subsistemas. Contéudos

Identificar los elementos básicos necesarios para diseñar la estructura de un software orientado a objetos. Objectivo

Relación M. Análisis- M. Diseño Desenho do Software

Relación entre los elementos estructurales más importantes del software, los estilos arquitectónicos y patrones que pueden usarse para satisfacer los requisitos del sistema y las restricciones de implementación. Diseño arquitectónico

 Entidad que tiene un estado y un conjunto definido de operaciones que operan en ese estado. El estado es representado como un conjunto de atributos del objeto. (…)  Son creados de acuerdo a una definición de clases de objetos. Sommerville Objeto

Un sistema OO está compuesto por objetos que interactúan, los cuales mantienen su estado local y proveen operaciones sobre su estado. Diseño OO

El proceso de diseño OO comprende el diseño de clases de objetos y las relaciones entre estas clases. Las clases definen los objetos del sistema y sus interacciones. Diseño OO

Transforma los modelos del análisis y clases, en las clases del diseño y estructuras de datos que se requieren para implementar el Software. Pressman Cap 9 Diseño de datos/clases

1.Los objetos son entidades autónomas. 2.Los objetos son independientes. 3.Los cambios en un objeto no deben 4.afectar a los demás objetos. 5.Los objetos son unidades reutilizables. Principios de diseño OO Iguales principios que la Programación Orientada a Objetos (POO)

Representa una abstracción de una o varias clases en la implementación del sistema, dependiendo del lenguaje de programación. Las clases definen los objetos, con los cuales se implementan los casos de uso. Las particularidades del lenguaje de programación influyen en el diseño de las clases. Diagramas de clases del diseño.

Contiene :  Clases.  Interfaces.  Colaboraciones.  Relaciones de dependencia, generalización y asociación Diagramas de clases del diseño

Marco Conceptual Modelo Conceptual Classes conceptuaisAtributosAsociaçõesMultiplicidadeAnotações

Classes conceptuais Elementos lógicos ou físicos que ajudam a entender o problema, é parte da linguagem utilizada pelo cliente e geralmente se nomeia como substantivo. Representam-se com o símbolo de uma classe. Ej: Cliente, casa

Atributos Informação que caracteriza à classe. Mostra-se no segundo compartimento da representação da classe. Ej: nome, idade.

Asociações Relações lógicas ou físicas que existem entre 2 conceitos.

Multiplicidade Número de instâncias de um conceito relacionadas com o outro conceito.

Anotações Nomenclatura que caracteriza ou descreve um determinado conceito..

Se desea implementar un software que tiene como objetivos la gestión de la información relacionada con los partidos de Futbol. Caso de Estudio

Un equipo está compuesto por 11 futbolistas. Los futbolistas tienen nombre. Un partido lo juegan 2 equipos En un partido cada equipo puede meter goles Un gol se mete en un momento determinado. Datos importantes

Diagramas de clases del diseño.

Para la realización de estos diagramas se utilizan patrones. La aplicación de patrones de diseño garantiza un diseño de sistema consistente y bien estructurado.

Un patrón de diseño es una descripción de clases y objetos comunicándose entre sí adaptada para resolver un problema de diseño general en un contexto particular. PATRONES DE DISEÑO.

 Un solución estándar para un problema común de programación.  Una técnica para flexibilizar el código haciéndolo satisfacer ciertos criterios.  Una manera más práctica de describir ciertos aspectos de la organización de un programa.  Conexiones entre componentes de programas.  La forma de un diagrama de objeto o de un modelo de objeto. UN PATRONES DE DISEÑO ES:

 Son soluciones concretas.  Se utilizan en situaciones frecuentes.  Favorecen la reutilización de código.  El uso de un patrón no se refleja en el código.  Es difícil reutilizar la implementación de un patrón. CARACTERÍSTICAS

Se desean las siguientes funcionalidades: – Insertar goles al partido – De qué equipo es un jugador determinado – El listado de futbolistas por equipos – La cantidad de goles de un partido. – El futbolista que metió determinado gol – La cantidad de goles que ha metido cada equipo – La cantidad de goles de cada futbolista, con el momento exacto en que lo ha metido y contra quien.

¿Cómo asignar las responsabilidades en las clases?

Patrones de los principios generales para asignar responsabilidades. (General Responsibility Assignment Software Patterns) GRASP

Este patrón ayuda a responder la pregunta de qué clase debe ser la responsable de crear nuevos objetos (instancias de alguna clase). GRASP

GRASP. TIPOS  Creador  Experto  Alta cohesión  Bajo acoplamiento  Controlador

El equipo: el gol lo mete un equipo, pero el equipo no sabe contra quién juega. El futbolista: el gol lo ha metido él, pero el jugador no sabe cuándo lo ha metido, ni contra quien. El partido: el partido sería el creador perfecto, ya que el sabe que equipos están jugando, que jugadores están en el campo, etc. GRASP. Creador. Ejemplo

CREATOR

Asignar una responsabilidad al experto en información: la clase que cuenta con la información necesaria para cumplir la responsabilidad. Experto

Se desean las siguientes funcionalidades: – Insertar goles al partido – De qué equipo es un jugador determinado – El listado de futbolistas por equipos – La cantidad de goles de un partido. – El futbolista que metió determinado gol – La cantidad de goles que ha metido cada equipo – La cantidad de goles de cada futbolista, con el momento exacto en que lo ha metido y contra quien.

Experto

Asigna la responsabilidad del manejo de los eventos del sistema a una clase. Controlador

GRASP. Controlador. Ejemplo CRONTROLADOR

Alta Cohesión y Bajo Acomplamiento Asignar responsabilidades a las clases que trabajen sobre una misma área de la aplicación y que no tengan mucha complejidad, evitando así que una clase sea la única responsable de muchas tareas en áreas funcionales muy heterogéneas.

Alta Cohesión y Bajo Acomplamiento Se asignan las responsabilidades de forma tal que cada clase se comunique con el menor número de clases, minimizando el nivel de dependencia.

Alta cohesión- Bajo acoplamiento

¿Cuántas clases puede tener un proyecto? ¿Cómo se pueden organizar para lograr mejor entendimiento?

Paquete de Diseño Estructura el modelo de diseño dividiéndolo en partes más pequeñas.

Paquete de Diseño Contiene:  Clases  Interfaces.  Colaboraciones.  Relaciones de dependencia, generalización y asociación.

Subsistema de Diseño Parte del modelo de diseño que encapsula comportamientos, expone un conjunto de interfaces, y empaqueta otros elementos del modelo.

Interfaz (No UI) Elemento del modelo que define una entrada de comportamientos ofrecidas por un elemento clasificador del modelo. Provee una única y bien definida entrada de operaciones

Relaciones Subsistema-Interfaz

¿Cómo se diseña la estructura de un sistema? ¿Qué elementos permiten el modelado del diseño? ¿Qué representa cada uno? ¿Son útiles los patrones? Conclusiones

Sommerville, I.; “Ingeniería de Software‖, Parte III. Capítulo 14. Pressman, Roger S.; ‖Ingeniería de software. Un enfoque práctico‖. 6ta Edición. Capítulo 9 Jacobson, Ivar y otros; El Lenguaje Unificado de Modelado de Software: Manual de referencia. Editorial Félix Varela, Ciudad de La Habana. Bibliografía

Engenharia de Software II