Fundamentos de Ingeniería de Software

Slides:



Advertisements
Presentaciones similares
Metodologías para el desarrollo de aplicaciones Web.
Advertisements

MODELOS ORIENTADOS A OBJETOS
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
Pruebas Orientadas a Objeto
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Arquitectura CLARO-TECNOTREE
Introducción a la Orientación a Objetos
CONCEPTOS Y PRINCIPIOS ORIENTADOS A OBJETOS
Ingeniería del Software
Análisis y Diseño O.O. Click to add notes Preguntas del diseño :
ACI 602 Ingeniería de Software
Desarrollo Orientado a Objetos con UML
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Ingeniería de software Unidad II Ingeniería de Software Orientado a Objetos Principios Orientados a Objetos Tema Semana 7.
Ingeniería de Software Orientada a Objetos
Fundamentos de Programación
Introducción a la programación Orientada a objetos
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
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
Diseño e Implementación
CICLO DE VIDA DEL SOFTWARE
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
Análisis y Diseño Orientado a Objetos utilizando UML
Metodología para el desarrollo de Software educativo POO
Tecnológico de Estudios Superiores Huixquilucan Fundamentos de Sistemas Ingeniería en Sistemas Computacionales Lic.: Lydia Villavicencio Gómez “Paradigmas.
CONCEPTOS BÁSICOS Diseño de Sistemas.
METODOLOGÍA OMT Diseño de sistemas.
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Métricas Técnicas para Sistemas Orientados a Objeto
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2.
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
Importancia en la efectividad del:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Desarrollo de Software Orientado a Objetos (deficiencias)
Programación Orientada a Objetos (P.O.O.)
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
PROGRAMACION ORIENTADA A OBJETOS
Alexander Aristizabal Ángelo flores herrera
Diseño de Sistemas.
Introducción a UML Departamento de Informática Universidad de Rancagua
Conceptos Fundamentales
Ingeniería de Requisitos
IDENTIFICACIÓN DEL CICLO DE VIDA DEL SOFTWARE. POLITÉCNICO COLOMBIANO JAIME ISAZA CADAVID.
Jairo Pinto Ing. sistemas
Programación orientada a objetos
UML.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Relación con otras asignaturas del plan de estudio
Unidad 3 MODELO DE ANALISIS.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
PROGRAMACIÓN IV INTRODUCCIÓN.
Proceso de desarrollo de Software
La Programación Orientado a Objetos
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS
Fundamentos de Ingeniería de Software
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Entregables del Proyecto
Universidad Nacional de Ingeniería Comprendiendo los Fundamentos de
Transcripción de la presentación:

Fundamentos de Ingeniería de Software Modelo de Diseño Diseño Orientado a Objetos

Modelos de desarrollo Orientación a objetos Primero se empezaron a utilizar los lenguajes de programación estructurados, que permiten la descomposición modular de los programas; esto condujo a la adopción de técnicas de diseño estructuradas y de ahí se paso al análisis estructurado. El paradigma orientado a objetos ha seguido el mismo camino: el uso de la Programación Orientada a Objetos (POO) ha modificado las técnicas de diseño para adaptarlas a los nuevos lenguajes y ahora se están empezando a utilizar técnicas de análisis basadas en esta nueva forma de desarrollar software.

Métodos orientados a objeto Describen e implementan los sistemas de información desde un punto de vista más real.

Modelos de desarrollo Orientación a objetos La cultura implícita en los modelos usuales de ciclo de vida está basada en el “proyecto” ( y “Beneficios”), mientras que en el desarrollo orientado a objetos está basada en el “producto” (e “inversión”).

Términos más importantes en la orientación a objetos Reusabilidad: Los nuevos Sistemas OO pueden ser creados utilizando otros sistemas OO ya existentes. Extensibilidad: Los nuevos sistemas OO son fácilmente ampliables, sin tener que retocar los módulos empleados en su construcción.

Características principales del enfoque orientado a objetos Las características principales del enfoque orientado a objetos son, en primer lugar: Identidad: Los datos se organizan en entidades discretas y distinguibles llamadas objetos. Estos objetos pueden ser concretos o abstractos, pero cada objeto tiene su propia identidad. Dicho de otra forma: dos objetos son distintos incluso aún en el caso de que los valores de todos sus atributos coincidan. Dos manzanas pueden ser totalmente idénticas pero no por eso pierden su identidad: nos podemos comer una u otra.

Características principales del enfoque orientado a objetos Clasificación: Los objetos que tengan los mismos atributos y comportamiento se agrupan en clases. Todas las manzanas tienen una serie de atributos comunes: tamaño, peso, grado de maduración, y un comportamiento común: podemos coger una manzana, moverla o comerla. Los valores de los atributos podrán ser distintos para cada una de ellas, pero todas comparten los mismos atributos y comportamiento (las operaciones que se pueden realizar sobre ellas). Una clase es una abstracción que describe propiedades (atributos y comportamiento) relevantes para una aplicación determinada, ignorando el resto.

Polimorfismo El polimorfismo permite que una misma operación pueda llevarse a cabo de forma diferente en clases diferentes. Por ejemplo, la operación mover, es distinta para una pieza de ajedrez que para una ficha de damas, pero ambos objetos pueden ser movidos. Una operación es una acción o transformación que realiza o padece un objeto. La implementación específica de una operación determinada en una clase determinada se denomina método.

Herencia El concepto de herencia se refiere al compartir atributos y operaciones basada en una relación jerárquica entre varias clases. Una clase puede definirse de forma general y luego refinarse en sucesivas subclases. Cada clase hereda todas las propiedades (atributos y operaciones) de su superclase y añade sus propiedades particulares. La posibilidad de agrupar las propiedades comunes de una serie de clases en una superclase y heredar estas propiedades en cada una de las subclases es lo que permite reducir la repetición de código en el paradigma OO y es una de sus principales ventajas.

Etapas del Desarrollo OO Fase Planificación y Especificación de Requerimientos Definir el Plan-Borrador. Crear el Informe de Investigación Preliminar. Definir los Requerimientos. Registrar Términos en el Glosario. Implementar un Prototipo. (opcional) Definir Casos de Uso (de alto nivel y esenciales). Definir el Modelo Conceptual-Borrador. Definir la Arquitectura del Sistema-Borrador. Refinar el Plan.

Etapas del Desarrollo OO Fase de Construcción: Análisis Definir Casos de Uso Esenciales en formato expandido. Refinar los Diagramas de Casos de Uso. Refinar el Modelo Conceptual. Refinar el Glosario. Definir los Diagramas de Secuencia del Sistema. Definir Diagramas de Estados. (opcional)

Etapas del Desarrollo OO Fase de Construcción: Diseño Definir los Casos de Uso Reales. Definir Informes e Interfaz de Usuario. Refinar la Arquitectura del Sistema. Definir los Diagramas de Interacción. Definir el Diagrama de Clases de Diseño. Definir el Esquema de Base de Datos. Fases de Implementación y Pruebas

Diseño Orientados a Objetos Consiste en representar un modelo de datos que pueda ser fácilmente implantable con algún lenguaje de programación orientado a objetos. Los objetos son componentes potencialmente reutilizables, lo que hace que el software sea más fácil de mantener.

Diseño Orientado a Objeto El proceso general para el diseño orientado a objetos tiene varias etapas: Comprender y definir el contexto y los modos de utilización del sistema. Diseñar la arquitectura del sistema. Identificar los objetos principales en el sistema.

Diseño Orientado a Objetos Desarrollar los modelos de diseño. Especificar las interfaces de los objetos. No es un proceso sistematizado al 100%, por lo que necesita refinarse con varias iteraciones.

Diseño Orientado a Objetos El primer paso consiste en identificar los tipos de relaciones definidos en el sistema, los cuales pueden ser internos y externos. Estas relaciones pueden ser dos: El contexto del sistema: es un modelo estático que describe a los otros sistemas en ese entorno.

Diseño Orientado a Objetos El modelo que el sistema utiliza: es un modelo dinámico que describe cómo interactúa el sistema con su entorno. Con el diseño de contexto se puede crear fácilmente el diseño arquitectónico de la aplicación. Existen diversas técnicas para identificar objetos:

Diseño Orientado a Objetos Utilizar un análisis gramatical de la descripción en lenguaje natural de un sistema. Utilizar entidades tangibles (cosas). Utilizar un enfoque de comportamiento. Utilizar un análisis basado en escenarios.

Diseño Orientado a Objetos Existen dos tipos de modelos de diseño para describir un diseño orientado a objetos: Modelos Estáticos. Modelos Dinámicos. Ejemplos de algunos modelos:

Diseño Orientado a Objetos Los modelos de subsistemas Los modelos de secuencia Los modelos de máquinas de estado La encapsulación de las clases hace que los sistemas evolucionen de forma rápida y sencilla.

Métodos Orientado a Objetos Existen diversas metodologías para la realización de análisis y diseño orientado a objetos como: Método de Booch: abarca un microproceso de desarrollo y un macroproceso de desarrollo. Método OMT (Rumbaugh)

Métodos Orientado a Obejtos Objectory (Jacobson) Método de Coad-Yourdon Método UML: Análisis: tiene 5 diferentes vistas con diferentes diagramas en cada una de ellas.

Métodos Orientado a Objetos Vista usuario: representa el sistema (producto) desde la perspectiva del usuario. Se suele utilizar diagramas de casos de uso. Vista estructural: modela los datos y la funcionalidad del sistema; es decir, la estructura estática (clases, objetos y relaciones).

Métodos Orientado a Objetos Vista del comportamiento: representa los aspectos dinámicos o de comportamiento del sistema. También muestra las interacciones o colaboraciones entre los diversos elementos estructurales descritos en vistas anteriores. Vista de implementación Los aspectos estructurales y de comportamiento se representan aquí tal y como van a ser implementados.

Métodos Orientado a Objetos Vista del entorno: aspectos estructurales de comportamiento en el que el sistema a implementar se representa. En cuestión de diseño se tienen dos actividades principales: Diseño de sistema. Diseño de objetos.

MODELOS ORIENTADOS A OBJETOS Se emplean clases para definir las entidades Clase -> Define estructura y compotamiento de objetos Esquema OO -> Conjunto de clases. Modelo -> Aspecto de la realidad y se construye de modo que nos ayude a comprender a esta.

MODELOS ORIENTADOS A OBJETOS Mundo real Análisis y diseño Modelo Código Programa

MODELOS ORIENTADOS A OBJETOS Dimensión estructural de los objetos -> Propiedades estáticas Dimensión dinámica del comportamiento -> Propiedades activas, comportamiento individual y colaboración entre objetos. Dimensión funcional de los requerimientos -> Propiedades de transformación del sistema Dimensiones que describen un sistema de objetos

MODELOS ORIENTADOS A OBJETOS Las actividades que se deben seguir para llevar un MOO son: Identificar clases, objetos y atributos Asociar estáticamente los objetos Describir el comportamiento de los objetos Definir la colaboración del comportamiento de los objetos Organizar las clases en jerarquías de herencia Agregar y/o particionar las clases por niveles de abstracción

MODELOS ORIENTADOS A OBJETOS ANÁLISIS ORIENTADO A OBJETOS Se basa en conceptos sencillos (objetos y atributos , el todo y las partes). El paradigma orientado a objetos ha evolucionado. Lenguajes de programación estructurados Análisis estructurado Programación orientada a objetos (POO)

MODELOS ORIENTADOS A OBJETOS ANÁLISIS ORIENTADO A OBJETOS El AOO ofrece un enfoque nuevo para el análisis de requisitos de sistemas software . AOO consigue una abstracción mayor que el Análisis estructurado. Antes de empezar a diseñar un sistema es necesario realizar un estudio previo de este. La ventaja del AOO es que se basa en la utilización de objetos como abstracciones del mundo real.

MODELOS ORIENTADOS A OBJETOS ANÁLISIS ORIENTADO A OBJETOS En AOO los objetos encapsulan tanto atributos como procedimientos e incorpora otros conceptos (herencia, polimorfismo, etc).-> Reutilización de código El uso de AOO puede facilitar mucho la creación de prototipos, y las técnicas de desarrollo evolutivo de software Objetos reutilizables -> catálogo de objetos.

MODELOS ORIENTADOS A OBJETOS VENTAJAS DEL AOO Dominio del problema -> Permite pasar del dominio del problema al modelo del sistema. Comunicación: -> Cliente / Analista Consistencia -> Reduce distancias entre datos y procesos. Expresión de características comunes -> Reutilización = Mecanismos efectivos Resistencia al cambio -> Facilidad de realizar modificaciones. Reutilización.

MODELOS ORIENTADOS A OBJETOS TECNICA DE MODELADO DE OBJETOS (OMT) Se basa en aplicar el enfoque orientado a objetos a todo el proceso de desarrollo de un sistema software, desde el análisis hasta la implementación. La metodología consiste en construir un modelo del dominio de aplicación e ir añadiendo detalles a este modelo durante la fase de diseño.

MODELOS ORIENTADOS A OBJETOS FASES DE OMT Conceptualizacion Inicia con análisis de empresa o negocio. Se deben resolver las preguntas: Cual es la aplicación? Que problemas deben ser resueltos? Donde será usado el sistema? Cuando será requerido el sistema? Para que es necesario el sistema?

MODELOS ORIENTADOS A OBJETOS FASES DE OMT Analisis Especifica las necesidades que se deben satisfacer. Se determina el modelo de objeto. Se busca un nivel de abstracción para modelar subsistemas. Se definen diccionarios de datos para los objetos modelados

MODELOS ORIENTADOS A OBJETOS FASES DE OMT Diseño Se crean estrategias, arquitecturas para el sistema y sus políticas, teniendo en cuenta: Elegir una implementación para control externo Elegir el paradigma de administración de Base de datos. Determinar oportunidades para el reuso Seleccionar estrategias para interacción de datos Detallar el diseño

MODELOS ORIENTADOS A OBJETOS FASES DE OMT Implementación Se instala el nuevo sistema para su utilización. El sistema debe ser flexible y extensible