SlideShare una empresa de Scribd logo
Desarrollo de Software Orientado a Objetos Carolina Valencia Gil Carolina Henao Acosta Juan Pablo Ortiz Villegas
INTRODUCCION El análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería del software . Modela un Sistema como un grupo  de objetos que interactúan entre sí. Dominio en términos de conceptos compuestos por verbos y sustantivos, clasificados deacuerdo a su dependencia funcional. En este método se crea un conjunto de modelos utilizando una notación acordada, Eje: UML. No está orientado solamente a diseño de programas de computadora, cubre sistemas de distintos tipos. El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar usado en análisis y diseño orientado a objetos.
Conceptos de la POO Se basa en Objetos y ofrece dos ventajas con respecto a la programación tradicional: Permite al programador organizar un programa de acuerdo a abstracciones de mas alto nivel, la manera de pensar de la gente. Los datos globales desaparecen, se convierten en parte interna de los objetos, por lo tanto los cambios generados en algún objeto solo los afectarían a el nada más.
Análisis Orientado a Objetos  objeto objeto objeto datos funciones objeto Objetos Globales que contienen datos y funciones locales.
Análisis Orientado a Objetos  Objeto x Fecha Objeto y Año de 4 Dígitos funciones objeto Día Mes Año Año de 2 Dígitos funciones Día Mes Año
Desarrollo de Software Orientado a Objetos
MODELO DE REQUISITOS Permite delimitar y darle claridad al problema con sus implicaciones, con el acompañamiento del usuario pero con la perspectiva del desarrollador.
MODELO DE REQUISITOS Descripción del problema Informe preliminar de necesidades Modelo de Casos de Uso Describe un sistema desde sus distintas formas de utilización. Cada caso de uso debe ser guiado por el usuario de manera secuencial por eventos.
MODELO DE REQUISITOS Actores Son entidades externas al software que no necesariamente son los usuarios. Son la herramienta principal para modelar los casos de uso
MODELO DE REQUISITOS MODELO DE CASOS DE USO Se lee la descripción del problema y se discute con los actores
MODELO DE REQUISITOS Extensión Inclusión
MODELO DE REQUISITOS Generalización Documentación
MODELO DE REQUISITOS Ejemplo de Documentación
MODELO DE REQUISITOS Modelo de Interfaces Describe la presentación de información entre los actores y el sistema. Se especifica en detalle como se verán las interfaces de usuario al ejecutar cada uno de los casos de uso.
MODELO DE REQUISITOS Ejemplo de Interfaces Gráficas
MODELO DE REQUISITOS Ejemplo de Interfaces Gráficas
MODELO DE REQUISITOS Modelo de Dominio del Problema Define un modelo de clases común, para los analistas y los clientes.  El desarrollador deberá definir con base a lo que el usuario describa, los objetos que va a utilizar en el desarrollo. Es importante separar las clases en módulos cuando el sistema es muy grande.
MODELO DE REQUISITOS Identificación de Clases Se toma la descripción del problema y se resaltan los sustantivos para obtener las  clases candidatas.
MODELO DE REQUISITOS Identificación de Clases Se seleccionan las clases mas relevantes, teniendo en cuenta: Que no tengan que ver con interfaces de usuario Que sean claras y no permitan ambigüedades Que no sean de actores del sistema Que no sean redundantes
MODELO DE REQUISITOS Clases Identificadas  y Diagrama de Clases
MODELO DE REQUISITOS Diagrama de Asociaciones
MODELO DE REQUISITOS Diagrama de Clases con Asociaciones
MODELO DE REQUISITOS Diagrama de Clases con Roles
MODELO DE REQUISITOS Diagrama de Clases con Roles
MODELO DE REQUISITOS Identificación de Atributos
MODELO DE REQUISITOS Diagrama de Clases con Atributos
MODELO DE ANÁLISIS  El objetivo del modelo de análisis es comprender y generar una arquitectura de objetos para el sistema en base a lo especificado en el modelo de requisitos. No se considera el ambiente de implementación todavía , en otras palabras el análisis pretende modelar el sistema bajo condiciones ideales. No es una reflexión del dominio del problema sino una representación de ésta adaptada a la aplicación particular, genera una representación conceptual del sistema. Consistiendo de clases de objetos.
MODELO DE ANÁLISIS
Arquitectura de clases  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 de la aplicación existen diversas arquitecturas que se pueden utilizar, para nuestro caso nos enfocamos en aquellas diseñadas para el manejo de sistemas de información La funcionalidad de cada arquitectura se determina por la de sus objetos involucrados, ejemplo el manejo de bordes y base de datos , si existen distintos tipos se considera la arquitectura de  dos dimensiones.
En el caso de los sistemas de información uno de los tipos de arquitectura más importantes es la arquitectura MVC-Modelo, vista, control popularizada por los ambientes de desarrollo smalltalk, esta arquitectura se basa en tres dimensiones principales: Modelo (información), Vista (Presentación) y control (comportamiento):
La vista o presentación corresponde a los bordes que se le presentan al usuario para el manejo de la información. La información representa el dominio del problema y es almacenada en una base de datos Por otro lado el control corresponde a la manipulación de la información a través de  sus diversas presentaciones. Aunque exista cierta independencia entre estas tres dimensiones se considera que la manera de presentar la información es independiente de la propia información y de cómo esta se controla Sin embargo, cada una de ellas probablemente experimente cambios a lo largo de la vida del sistema, donde el control es el más propenso a ser modificado, seguido de la vista y finalmente el modelo.
Clases con Estereotipos El tipo de funcionalidad o “la razón de ser” de un objeto dentro de una arquitectura se le conoce como su  estereotipo. Para los sistemas de información la arquitectura del sistema según nuestro modelo de análisis se basa en  tres estereotipos básicos de objetos: El estereotipo  entidad (“entity” en inglés)para objetos que guarden información sobre el estado interno del  sistema, a corto y largo plazo, correspondiente al dominio del problema. Todo comportamiento naturalmente acoplado con esta información también se incluye en los objeto entidad. Un ejemplo de un objeto entidad es un registro de usuario con sus datos y comportamiento asociados. El estereotipo  interface o borde (“boundary” en inglés) para objetos que implementen la presentación o vista  correspondiente a las bordes del sistema hacia el mundo externo, para todo tipo de actores, no sólo usuarios humanos. Un ejemplo de un objeto borde es la funcionalidad de interface de usuario para insertar o modificar información sobre el registro de usuario. El estereotipo  control (“control” en inglés) para objetos que implementen el comportamiento o control  especificando cuando y como el sistema cambia de estado, correspondiente a los casos de uso. Los objetos control modelan funcionalidad que no se liga naturalmente con ningún otro tipo de objeto, como el comportamiento que opera en varios objetos entidad a la vez, por ejemplo, hacer alguna computación y luego devolver el resultado a un objeto borde. Un ejemplo típico de objeto control es analizar el uso del sistema por parte de algún usuario registrado y presentar tal información posteriormente. Este comportamiento no le pertenece a ningún objeto entidad u objeto borde específico.
Clases con Estereotipos
MODELO DE DISEÑO Prototipos de Diseño Se desarrolla para explorar y comprender la arquitectura particular del sistema, sirve como base  para la evaluación de rendimiento y espacio y para pruebas de redundancia e inconsistencias en el diseño. Identifica cuellos de botella en el sistema y donde se quiere revisar con más detalle el producto final. Se transforma el análisis, a una arquitectura particular y detallada del sistema que satisfaga todos los requisitos del sistema, donde las condiciones dadas durante el análisis se reemplazan por requisitos del ambiente de implantación particular, se contesta la pregunta del “como” del sistema.
La funcionalidad de los casos de uso ya estructurada por el análisis es realizada por el modelo de diseño, adaptándose al ambiente de implementación real y refinándose aún más. MODELO DE DISEÑO
Es un refinamiento y formalización adicional al modelo de análisis. El resultado son especificaciones muy detalladas de todos los objetos, incluyendo sus operaciones y atributos. Es requerido ya que el modelo de análisis no es lo suficientemente formal para poder llegar al código fuente Se busca además aspectos como: Requisitos de rendimiento, necesidades de tiempo real, concurrencia, manejo de BD. Durante el diseño se puede ver si los resultados del análisis son apropiados para su implementación. Se considera el modelo de diseño como una formalización del espacio de análisis, extendiéndolo para incluir una dimensión adicional correspondiente al ambiente de implementación.  MODELO DE DISEÑO
La transición de análisis a diseño debe decidirse por separado para cada aplicación en particular, no es recomendable abarcar los dos modelos al tiempo ya que esto aumenta su complejidad. MODELO DE DISEÑO
Aspectos principales del modelo del diseño Diseño de Objetos:  Se refina y formaliza el modelo para generar especificaciones muy detalladas de todos los objetos incluyendo operaciones y atributos. Diseño de Sistema:  Se adapta el modelo al ambiente de implementación. Se incluye identificar e investigar las consecuencias del ambiente de implementación sobre el diseño. MODELO DE DISEÑO
Estrategias de diseño Arquitectura:  Es la organización de las clases dentro del sistema, durante el análisis se generó una arquitectura de clases y su funcionalidad “conceptual”, aquí esta arquitectura debe detallarse. Robustez:  Es uno de los objetivos principales del diseño, jamás debe agregarse funcionalidad o simplificar código a expensas de la robustez , se deben escoger lenguajes que apoyen el manejo de excepciones , las principales consideraciones relacionadas con la robustez son: El sistema debe estar protegido contra parámetros incorrectos  proporcionados por el usuario. El sistema no debe optimizarse hasta que funcione de manera  correcta. MODELO DE DISEÑO
Reuso:  Aspecto fundamental, cuanto mas se pueda reutilizar el código mayor será su robustez.  Posibilidades de mejorar el reuso: A través de la herencia se puede incrementar el reuso del  código. El uso de impropio de la herencia puede hacer que los  programas sean difíciles de mantener, alternativa la  delegación provee un mecanismo para lograr el reuso del  código, agregación a través de clases intermedias. El encapsulamiento es efectivo para lograr el reuso. Estrategias de diseño MODELO DE DISEÑO
Extensibilidad:  La mayoría de los sistemas se vuelven extensivos de manera no prevista en el diseño, por lo tanto los componentes reutilizables mejoran la extensibilidad: No se deben exportar estructuras de datos desde un método. Una clase debe tener un conocimiento limitado de la    arquitectura de clases del sistema. Se debe n evitar expresiones de caso s (case) sobre tipos de    objetos. Se debe distinguir entre operaciones privadas y públicas. Estrategias de diseño MODELO DE DISEÑO
Diseño de Objetos Es un proceso de añadir detalles al análisis y tomar decisiones junto con diseño de sistema Para el diseño de objeto se seguirá el  diseño por responsabilidades  (RDD), está basado en un modelo cliente-servidor donde las clases son vistas como clientes cuando generan alguna petición y como servidores cuando reciben peticiones de otras clases. MODELO DE DISEÑO
Diseño de Objetos Tarjeta de Clase: También conocidas como tarjetas CRC Clase-Responsabilidad-Colaboración permiten al diseñador  visualizar las diferentes clases de manera independiente y detallada . MODELO DE DISEÑO
Diseño de Objetos De tal manera se debe especificar una tarjeta para cada clase en el sistema, donde inicialmente las tarjetas incluirán únicamente entradas para el nombre de la clase, módulo al que pertenecen y estereotipo correspondiente. Dado que aún no se ha identificado herencia, no habrán entradas para propiedades, superclase o subclase. Responsabilidades:  Uno de los esfuerzos más grandes del desarrollo y que involucra mayor complejidad es la especificación del comportamiento de cada una de las clases del sistema. MODELO DE DISEÑO
Diseño de Objetos Colaboraciones:  Es indispensable que los objetos dentro de un programa colaboren entre si o de lo contrario el programa consistirá de múltiples “mini-programas” independientes. Las colaboraciones entre objetos se dan en base a las relaciones entre las responsabilidades de las distintas clases. Dado la infinidad de posibles relaciones entre clase, las colaboraciones son la fuente principal de complejidad en el diseño de objetos. MODELO DE DISEÑO
Diseño de Objetos Ejemplo Colaboraciones: MODELO DE DISEÑO
Diseño de Objetos Subsistemas: Como se ha podido apreciar hasta el momento, la complejidad del sistema aumenta a medida que se incorporan nuevos detalles en el diseño, algo que por lo general es inevitable. Para lograr un mejor manejo de esta complejidad introducimos el concepto de  subsistemas, el cual permite dividir el sistema completo en diversas partes, inspirado en  la idea de “divide y conquista”. MODELO DE DISEÑO
En esta etapa lo más importante es definir el código fuente de la aplicación. El modelo de implementación toma el resultado del modelo de diseño para generar el código final. Con un buen diseño, la tarea de implementación es mucho más fluida, y el implementador se ocupa solo de resolver problemas de implementación. Ejemplo: si se necesita una funcionalidad que no fue diseñada MODELO DE IMPLEMENTACION
Durante el modelo de implementación se hace una adaptación al lenguaje de programación y la base de datos de acuerdo a la especificación del diseño y según las propiedades del lenguaje de implementación y base de datos. La elección del lenguaje influye en el diseño, pero el diseño no debe depender de los detalles del lenguaje.  Ejemplo: Si se cambia de lenguaje de programación no debe requerirse el re-diseño del sistema. MODELO DE IMPLEMENTACION
En general, no se debe comenzar prematuramente a programar, es importante primero completar el proceso de planeación del sistema final desarrollado durante el diseño.  Se debe usar guías de programación existentes en la organización. Si no existen, el equipo de software deben crear sus propias guías para decidir aspectos como: Formatos para la asignación de nombres a las  variables. Estilo de programación. Métodos de documentación. Documentación en línea. MODELO DE IMPLEMENTACION
Editor de texto para escribir el código fuente como un archivo de tipo texto plano. ejemplo: notepad para guardar los archivos como HTML Intérprete que procese el código fuente y lo ejecute ejemplo: el browser que ejecuta scripts en javaScript al cargar la página web  Debugger que ayude a depurar los errores y a corregir el código fuente hasta lograr un programa ejecutable sin errores  Ejemplo: el browser que envía mensajes para encontrar errores al ejecutar el programa MODELO DE IMPLEMENTACION Herramientas a utilizar
Encargado de revisar  la calidad del sistema desarrollado Debe ser planificado y tenido en cuenta durante toda la etapa del desarrollo MODELO DE PRUEBAS TIPOS DE PRUEBAS Verificación Validación
Prueba de Regresión Prueba de Operación Prueba de Escala Completa Prueba de Rendimiento Prueba de Sobrecarga Prueba Negativa Prueba basada en requisitos o de casos de uso Pruebas Ergonómicas Prueba de Documentación de Usuario Prueba de Aceptación o de Validación MODELO DE PRUEBAS TECNICAS DE PRUEBAS
Prueba de Unidad Prueba de Especificación o de caja de negra Prueba Basada en Estados Prueba Estructural Prueba de Integración Prueba de Sistema MODELO DE PRUEBAS NIVEL DE PRUEBAS
MODELO DE PRUEBAS
MODELO DE PRUEBAS
MODELO DE PRUEBAS
MODELO DE PRUEBAS

Más contenido relacionado

PPTX
Norma iso 27001
PDF
IHM Unidad 2: Factores Humanos, Estilos y Dispositivos de interacción
PPTX
PPTX
Pilares de la POO
PPTX
Malware Presentacion.pptx
PPTX
Programacion Orientada a Objetos
PPTX
Presentation on Cloud computing
PDF
Metodologia orientada a objeto
Norma iso 27001
IHM Unidad 2: Factores Humanos, Estilos y Dispositivos de interacción
Pilares de la POO
Malware Presentacion.pptx
Programacion Orientada a Objetos
Presentation on Cloud computing
Metodologia orientada a objeto

La actualidad más candente (20)

PPT
Modelado del análisis
PPTX
Diagrama de clases
PPTX
Diagramas de caso de uso
PPT
Modelo Del Negocio con RUP y UML Parte 3
PPTX
Tecnicas y herramientas de desarrollo de software(1)
PPTX
2 1 vistas arquitectonicas
PPTX
Requerimiento funcional y no funcional
PDF
14704374 arquitectura-basada-en-componentes
PPTX
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
PPTX
2 2 estilos arquitectonicos
DOCX
Modelado Orientado a Objetos
PPSX
Ieee 830
PPTX
Patrón de diseño Modelo-Vista-Controlador (MVC)
PPT
UML: CASOS DE USO
PDF
Requerimientos no funcionales
PDF
Patrones de diseño de software
PPTX
Analisis Y DiseñO Orientado A Objetos
DOCX
Casos De Uso
DOC
Requerimientos norma ieee830
PPTX
Vistas Arquitectonicas Ingenieria de Software
Modelado del análisis
Diagrama de clases
Diagramas de caso de uso
Modelo Del Negocio con RUP y UML Parte 3
Tecnicas y herramientas de desarrollo de software(1)
2 1 vistas arquitectonicas
Requerimiento funcional y no funcional
14704374 arquitectura-basada-en-componentes
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
2 2 estilos arquitectonicos
Modelado Orientado a Objetos
Ieee 830
Patrón de diseño Modelo-Vista-Controlador (MVC)
UML: CASOS DE USO
Requerimientos no funcionales
Patrones de diseño de software
Analisis Y DiseñO Orientado A Objetos
Casos De Uso
Requerimientos norma ieee830
Vistas Arquitectonicas Ingenieria de Software
Publicidad

Destacado (20)

PDF
Modelo Orientado A Objetos
DOCX
Metodología orientadas a objetos
PPTX
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
DOCX
Modelos de desarrollo de software
PPTX
PROGRAMACION ORIENTADA A OBJETOS
DOC
Trabajo de diseño de sistemas orientados a objetos
PPTX
Metodologia estructurada
PPT
Diseño Orientado a Objetos
DOCX
Algoritmos, programas, compiladores y lenguajes de programacion
PPTX
Paradigma Orientado a Objetos
PPTX
Analisis Y Diseño De Sistemas Orientado A Objetos
PPT
POO: Herencia, Abstraccion y Polimorfismo
PDF
Software Testing (2)
PPTX
Desarrollo Orientado a Objetos
PDF
Adoo grady booch
PPTX
Editores de texto PHP
PPTX
Herencia poo
PDF
Ingeniería de software II- Parte 3.2
DOCX
Entornos De Desarrollo Integrados
 
PDF
Diseno de-software-en-arquitectura-cliente-servidor
Modelo Orientado A Objetos
Metodología orientadas a objetos
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
Modelos de desarrollo de software
PROGRAMACION ORIENTADA A OBJETOS
Trabajo de diseño de sistemas orientados a objetos
Metodologia estructurada
Diseño Orientado a Objetos
Algoritmos, programas, compiladores y lenguajes de programacion
Paradigma Orientado a Objetos
Analisis Y Diseño De Sistemas Orientado A Objetos
POO: Herencia, Abstraccion y Polimorfismo
Software Testing (2)
Desarrollo Orientado a Objetos
Adoo grady booch
Editores de texto PHP
Herencia poo
Ingeniería de software II- Parte 3.2
Entornos De Desarrollo Integrados
 
Diseno de-software-en-arquitectura-cliente-servidor
Publicidad

Similar a Desarrollo de Software Orienta a Objetos (20)

PDF
7 analisis (caso de uso)
PDF
Metodología OOSE.pdf
PPT
Modelo de analisis expo
PPTX
Diseño Oriendado a Objetos
DOCX
Metodologia de iconix jhon poo
PPTX
0 todo
PDF
Analisis orientados a objetos
PPTX
Alejandro soto ingeneria sistema
PPT
13 Clase Flujo De Analisis
PPTX
Analisis y Diseños de Sistemas 2-Metodologia OOSE
PPSX
Uml presentacion
PPTX
Fundamentos y metodos de analisis de requerimientos
PPTX
Planificacion de proyecto de software
PPTX
Proceso de analisis wilmer santeliz
PPTX
Análisis y diseño orientado a objetos
PPT
Modelado del AnáLisis
PPTX
Fundamentos y metodos analisis de requerimiento
DOC
Deber analisis
PPT
Exponer yony y estefany
7 analisis (caso de uso)
Metodología OOSE.pdf
Modelo de analisis expo
Diseño Oriendado a Objetos
Metodologia de iconix jhon poo
0 todo
Analisis orientados a objetos
Alejandro soto ingeneria sistema
13 Clase Flujo De Analisis
Analisis y Diseños de Sistemas 2-Metodologia OOSE
Uml presentacion
Fundamentos y metodos de analisis de requerimientos
Planificacion de proyecto de software
Proceso de analisis wilmer santeliz
Análisis y diseño orientado a objetos
Modelado del AnáLisis
Fundamentos y metodos analisis de requerimiento
Deber analisis
Exponer yony y estefany

Último (20)

DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Maste clas de estructura metálica y arquitectura
PPTX
Administración se srevidores de apliaciones
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
Introduccion a servidores de Aplicaciones (1).pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
Temas y subtemas de las fichas 1 y 2.pdf
DOCX
Trabajo colaborativo Grupo #2.docxmmuhhlk
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
Presentación de Redes de Datos modelo osi
PDF
Conceptos básicos de programación tecnología.pdf
PDF
SAP Transportation Management para LSP, TM140 Col18
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Maste clas de estructura metálica y arquitectura
Administración se srevidores de apliaciones
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Introduccion a servidores de Aplicaciones (1).pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
historia_web de la creacion de un navegador_presentacion.pptx
Temas y subtemas de las fichas 1 y 2.pdf
Trabajo colaborativo Grupo #2.docxmmuhhlk
Estrategia de apoyo tecnología grado 9-3
Calidad desde el Docente y la mejora continua .pdf
Plantilla para Diseño de Narrativas Transmedia.pdf
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
REDES INFORMATICAS REDES INFORMATICAS.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Presentación de Redes de Datos modelo osi
Conceptos básicos de programación tecnología.pdf
SAP Transportation Management para LSP, TM140 Col18

Desarrollo de Software Orienta a Objetos

  • 1. Desarrollo de Software Orientado a Objetos Carolina Valencia Gil Carolina Henao Acosta Juan Pablo Ortiz Villegas
  • 2. INTRODUCCION El análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería del software . Modela un Sistema como un grupo de objetos que interactúan entre sí. Dominio en términos de conceptos compuestos por verbos y sustantivos, clasificados deacuerdo a su dependencia funcional. En este método se crea un conjunto de modelos utilizando una notación acordada, Eje: UML. No está orientado solamente a diseño de programas de computadora, cubre sistemas de distintos tipos. El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar usado en análisis y diseño orientado a objetos.
  • 3. Conceptos de la POO Se basa en Objetos y ofrece dos ventajas con respecto a la programación tradicional: Permite al programador organizar un programa de acuerdo a abstracciones de mas alto nivel, la manera de pensar de la gente. Los datos globales desaparecen, se convierten en parte interna de los objetos, por lo tanto los cambios generados en algún objeto solo los afectarían a el nada más.
  • 4. Análisis Orientado a Objetos objeto objeto objeto datos funciones objeto Objetos Globales que contienen datos y funciones locales.
  • 5. Análisis Orientado a Objetos Objeto x Fecha Objeto y Año de 4 Dígitos funciones objeto Día Mes Año Año de 2 Dígitos funciones Día Mes Año
  • 6. Desarrollo de Software Orientado a Objetos
  • 7. MODELO DE REQUISITOS Permite delimitar y darle claridad al problema con sus implicaciones, con el acompañamiento del usuario pero con la perspectiva del desarrollador.
  • 8. MODELO DE REQUISITOS Descripción del problema Informe preliminar de necesidades Modelo de Casos de Uso Describe un sistema desde sus distintas formas de utilización. Cada caso de uso debe ser guiado por el usuario de manera secuencial por eventos.
  • 9. MODELO DE REQUISITOS Actores Son entidades externas al software que no necesariamente son los usuarios. Son la herramienta principal para modelar los casos de uso
  • 10. MODELO DE REQUISITOS MODELO DE CASOS DE USO Se lee la descripción del problema y se discute con los actores
  • 11. MODELO DE REQUISITOS Extensión Inclusión
  • 12. MODELO DE REQUISITOS Generalización Documentación
  • 13. MODELO DE REQUISITOS Ejemplo de Documentación
  • 14. MODELO DE REQUISITOS Modelo de Interfaces Describe la presentación de información entre los actores y el sistema. Se especifica en detalle como se verán las interfaces de usuario al ejecutar cada uno de los casos de uso.
  • 15. MODELO DE REQUISITOS Ejemplo de Interfaces Gráficas
  • 16. MODELO DE REQUISITOS Ejemplo de Interfaces Gráficas
  • 17. MODELO DE REQUISITOS Modelo de Dominio del Problema Define un modelo de clases común, para los analistas y los clientes. El desarrollador deberá definir con base a lo que el usuario describa, los objetos que va a utilizar en el desarrollo. Es importante separar las clases en módulos cuando el sistema es muy grande.
  • 18. MODELO DE REQUISITOS Identificación de Clases Se toma la descripción del problema y se resaltan los sustantivos para obtener las clases candidatas.
  • 19. MODELO DE REQUISITOS Identificación de Clases Se seleccionan las clases mas relevantes, teniendo en cuenta: Que no tengan que ver con interfaces de usuario Que sean claras y no permitan ambigüedades Que no sean de actores del sistema Que no sean redundantes
  • 20. MODELO DE REQUISITOS Clases Identificadas y Diagrama de Clases
  • 21. MODELO DE REQUISITOS Diagrama de Asociaciones
  • 22. MODELO DE REQUISITOS Diagrama de Clases con Asociaciones
  • 23. MODELO DE REQUISITOS Diagrama de Clases con Roles
  • 24. MODELO DE REQUISITOS Diagrama de Clases con Roles
  • 25. MODELO DE REQUISITOS Identificación de Atributos
  • 26. MODELO DE REQUISITOS Diagrama de Clases con Atributos
  • 27. MODELO DE ANÁLISIS El objetivo del modelo de análisis es comprender y generar una arquitectura de objetos para el sistema en base a lo especificado en el modelo de requisitos. No se considera el ambiente de implementación todavía , en otras palabras el análisis pretende modelar el sistema bajo condiciones ideales. No es una reflexión del dominio del problema sino una representación de ésta adaptada a la aplicación particular, genera una representación conceptual del sistema. Consistiendo de clases de objetos.
  • 29. Arquitectura de clases 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 de la aplicación existen diversas arquitecturas que se pueden utilizar, para nuestro caso nos enfocamos en aquellas diseñadas para el manejo de sistemas de información La funcionalidad de cada arquitectura se determina por la de sus objetos involucrados, ejemplo el manejo de bordes y base de datos , si existen distintos tipos se considera la arquitectura de dos dimensiones.
  • 30. En el caso de los sistemas de información uno de los tipos de arquitectura más importantes es la arquitectura MVC-Modelo, vista, control popularizada por los ambientes de desarrollo smalltalk, esta arquitectura se basa en tres dimensiones principales: Modelo (información), Vista (Presentación) y control (comportamiento):
  • 31. La vista o presentación corresponde a los bordes que se le presentan al usuario para el manejo de la información. La información representa el dominio del problema y es almacenada en una base de datos Por otro lado el control corresponde a la manipulación de la información a través de sus diversas presentaciones. Aunque exista cierta independencia entre estas tres dimensiones se considera que la manera de presentar la información es independiente de la propia información y de cómo esta se controla Sin embargo, cada una de ellas probablemente experimente cambios a lo largo de la vida del sistema, donde el control es el más propenso a ser modificado, seguido de la vista y finalmente el modelo.
  • 32. Clases con Estereotipos El tipo de funcionalidad o “la razón de ser” de un objeto dentro de una arquitectura se le conoce como su estereotipo. Para los sistemas de información la arquitectura del sistema según nuestro modelo de análisis se basa en tres estereotipos básicos de objetos: El estereotipo entidad (“entity” en inglés)para objetos que guarden información sobre el estado interno del sistema, a corto y largo plazo, correspondiente al dominio del problema. Todo comportamiento naturalmente acoplado con esta información también se incluye en los objeto entidad. Un ejemplo de un objeto entidad es un registro de usuario con sus datos y comportamiento asociados. El estereotipo interface o borde (“boundary” en inglés) para objetos que implementen la presentación o vista correspondiente a las bordes del sistema hacia el mundo externo, para todo tipo de actores, no sólo usuarios humanos. Un ejemplo de un objeto borde es la funcionalidad de interface de usuario para insertar o modificar información sobre el registro de usuario. El estereotipo control (“control” en inglés) para objetos que implementen el comportamiento o control especificando cuando y como el sistema cambia de estado, correspondiente a los casos de uso. Los objetos control modelan funcionalidad que no se liga naturalmente con ningún otro tipo de objeto, como el comportamiento que opera en varios objetos entidad a la vez, por ejemplo, hacer alguna computación y luego devolver el resultado a un objeto borde. Un ejemplo típico de objeto control es analizar el uso del sistema por parte de algún usuario registrado y presentar tal información posteriormente. Este comportamiento no le pertenece a ningún objeto entidad u objeto borde específico.
  • 34. MODELO DE DISEÑO Prototipos de Diseño Se desarrolla para explorar y comprender la arquitectura particular del sistema, sirve como base para la evaluación de rendimiento y espacio y para pruebas de redundancia e inconsistencias en el diseño. Identifica cuellos de botella en el sistema y donde se quiere revisar con más detalle el producto final. Se transforma el análisis, a una arquitectura particular y detallada del sistema que satisfaga todos los requisitos del sistema, donde las condiciones dadas durante el análisis se reemplazan por requisitos del ambiente de implantación particular, se contesta la pregunta del “como” del sistema.
  • 35. La funcionalidad de los casos de uso ya estructurada por el análisis es realizada por el modelo de diseño, adaptándose al ambiente de implementación real y refinándose aún más. MODELO DE DISEÑO
  • 36. Es un refinamiento y formalización adicional al modelo de análisis. El resultado son especificaciones muy detalladas de todos los objetos, incluyendo sus operaciones y atributos. Es requerido ya que el modelo de análisis no es lo suficientemente formal para poder llegar al código fuente Se busca además aspectos como: Requisitos de rendimiento, necesidades de tiempo real, concurrencia, manejo de BD. Durante el diseño se puede ver si los resultados del análisis son apropiados para su implementación. Se considera el modelo de diseño como una formalización del espacio de análisis, extendiéndolo para incluir una dimensión adicional correspondiente al ambiente de implementación. MODELO DE DISEÑO
  • 37. La transición de análisis a diseño debe decidirse por separado para cada aplicación en particular, no es recomendable abarcar los dos modelos al tiempo ya que esto aumenta su complejidad. MODELO DE DISEÑO
  • 38. Aspectos principales del modelo del diseño Diseño de Objetos: Se refina y formaliza el modelo para generar especificaciones muy detalladas de todos los objetos incluyendo operaciones y atributos. Diseño de Sistema: Se adapta el modelo al ambiente de implementación. Se incluye identificar e investigar las consecuencias del ambiente de implementación sobre el diseño. MODELO DE DISEÑO
  • 39. Estrategias de diseño Arquitectura: Es la organización de las clases dentro del sistema, durante el análisis se generó una arquitectura de clases y su funcionalidad “conceptual”, aquí esta arquitectura debe detallarse. Robustez: Es uno de los objetivos principales del diseño, jamás debe agregarse funcionalidad o simplificar código a expensas de la robustez , se deben escoger lenguajes que apoyen el manejo de excepciones , las principales consideraciones relacionadas con la robustez son: El sistema debe estar protegido contra parámetros incorrectos proporcionados por el usuario. El sistema no debe optimizarse hasta que funcione de manera correcta. MODELO DE DISEÑO
  • 40. Reuso: Aspecto fundamental, cuanto mas se pueda reutilizar el código mayor será su robustez. Posibilidades de mejorar el reuso: A través de la herencia se puede incrementar el reuso del código. El uso de impropio de la herencia puede hacer que los programas sean difíciles de mantener, alternativa la delegación provee un mecanismo para lograr el reuso del código, agregación a través de clases intermedias. El encapsulamiento es efectivo para lograr el reuso. Estrategias de diseño MODELO DE DISEÑO
  • 41. Extensibilidad: La mayoría de los sistemas se vuelven extensivos de manera no prevista en el diseño, por lo tanto los componentes reutilizables mejoran la extensibilidad: No se deben exportar estructuras de datos desde un método. Una clase debe tener un conocimiento limitado de la arquitectura de clases del sistema. Se debe n evitar expresiones de caso s (case) sobre tipos de objetos. Se debe distinguir entre operaciones privadas y públicas. Estrategias de diseño MODELO DE DISEÑO
  • 42. Diseño de Objetos Es un proceso de añadir detalles al análisis y tomar decisiones junto con diseño de sistema Para el diseño de objeto se seguirá el diseño por responsabilidades (RDD), está basado en un modelo cliente-servidor donde las clases son vistas como clientes cuando generan alguna petición y como servidores cuando reciben peticiones de otras clases. MODELO DE DISEÑO
  • 43. Diseño de Objetos Tarjeta de Clase: También conocidas como tarjetas CRC Clase-Responsabilidad-Colaboración permiten al diseñador visualizar las diferentes clases de manera independiente y detallada . MODELO DE DISEÑO
  • 44. Diseño de Objetos De tal manera se debe especificar una tarjeta para cada clase en el sistema, donde inicialmente las tarjetas incluirán únicamente entradas para el nombre de la clase, módulo al que pertenecen y estereotipo correspondiente. Dado que aún no se ha identificado herencia, no habrán entradas para propiedades, superclase o subclase. Responsabilidades: Uno de los esfuerzos más grandes del desarrollo y que involucra mayor complejidad es la especificación del comportamiento de cada una de las clases del sistema. MODELO DE DISEÑO
  • 45. Diseño de Objetos Colaboraciones: Es indispensable que los objetos dentro de un programa colaboren entre si o de lo contrario el programa consistirá de múltiples “mini-programas” independientes. Las colaboraciones entre objetos se dan en base a las relaciones entre las responsabilidades de las distintas clases. Dado la infinidad de posibles relaciones entre clase, las colaboraciones son la fuente principal de complejidad en el diseño de objetos. MODELO DE DISEÑO
  • 46. Diseño de Objetos Ejemplo Colaboraciones: MODELO DE DISEÑO
  • 47. Diseño de Objetos Subsistemas: Como se ha podido apreciar hasta el momento, la complejidad del sistema aumenta a medida que se incorporan nuevos detalles en el diseño, algo que por lo general es inevitable. Para lograr un mejor manejo de esta complejidad introducimos el concepto de subsistemas, el cual permite dividir el sistema completo en diversas partes, inspirado en la idea de “divide y conquista”. MODELO DE DISEÑO
  • 48. En esta etapa lo más importante es definir el código fuente de la aplicación. El modelo de implementación toma el resultado del modelo de diseño para generar el código final. Con un buen diseño, la tarea de implementación es mucho más fluida, y el implementador se ocupa solo de resolver problemas de implementación. Ejemplo: si se necesita una funcionalidad que no fue diseñada MODELO DE IMPLEMENTACION
  • 49. Durante el modelo de implementación se hace una adaptación al lenguaje de programación y la base de datos de acuerdo a la especificación del diseño y según las propiedades del lenguaje de implementación y base de datos. La elección del lenguaje influye en el diseño, pero el diseño no debe depender de los detalles del lenguaje. Ejemplo: Si se cambia de lenguaje de programación no debe requerirse el re-diseño del sistema. MODELO DE IMPLEMENTACION
  • 50. En general, no se debe comenzar prematuramente a programar, es importante primero completar el proceso de planeación del sistema final desarrollado durante el diseño. Se debe usar guías de programación existentes en la organización. Si no existen, el equipo de software deben crear sus propias guías para decidir aspectos como: Formatos para la asignación de nombres a las variables. Estilo de programación. Métodos de documentación. Documentación en línea. MODELO DE IMPLEMENTACION
  • 51. Editor de texto para escribir el código fuente como un archivo de tipo texto plano. ejemplo: notepad para guardar los archivos como HTML Intérprete que procese el código fuente y lo ejecute ejemplo: el browser que ejecuta scripts en javaScript al cargar la página web Debugger que ayude a depurar los errores y a corregir el código fuente hasta lograr un programa ejecutable sin errores Ejemplo: el browser que envía mensajes para encontrar errores al ejecutar el programa MODELO DE IMPLEMENTACION Herramientas a utilizar
  • 52. Encargado de revisar la calidad del sistema desarrollado Debe ser planificado y tenido en cuenta durante toda la etapa del desarrollo MODELO DE PRUEBAS TIPOS DE PRUEBAS Verificación Validación
  • 53. Prueba de Regresión Prueba de Operación Prueba de Escala Completa Prueba de Rendimiento Prueba de Sobrecarga Prueba Negativa Prueba basada en requisitos o de casos de uso Pruebas Ergonómicas Prueba de Documentación de Usuario Prueba de Aceptación o de Validación MODELO DE PRUEBAS TECNICAS DE PRUEBAS
  • 54. Prueba de Unidad Prueba de Especificación o de caja de negra Prueba Basada en Estados Prueba Estructural Prueba de Integración Prueba de Sistema MODELO DE PRUEBAS NIVEL DE PRUEBAS

Notas del editor

  • #9: Modelo de casos de uso : Es describir un sistema desde sus distintas formas de utilización. Cada caso de uso debe ser guiado por el usuario para determinar cual es el que necesito. Modelo de interfaces: Es presentarle al usuario de manera gráfica lo que el quiere, pero haciendo un modelado de cada caso de uso. Tiene que haber consistencia entre la imagen del usuario y el comportamiento real del sistema. Modelo del dominio del problema: Define un modelo de clases común, para los analistas y los clientes. En esta técnica se utiliza un lápiz y un papel para que el cliente dibuje su visión del sistema. El desarrollador deberá definir con base a lo que el usuario describa, los objetos que va a utilizar en el desarrollo. Es importante separar las clases en módulos cuando el sistema es muy grande.
  • #10: .