Fundamentos de I.S

Page 1

Educación a distancia

Fundamentos de Ingeniería de Software

Ingeniería en Sistemas Computacionales Fundamentos de Ingeniería de Software

Semana 9. Unidad 4. Modelo de Diseño. 4.1. Estrategias de diseño 4.2. Diseño de objetos

Antología realizada por: M.C. Gricelda Rodríguez Robledo Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

CONTENIDO 4.1.

Estrategias de diseño ................................................................................................................ 4

Diseño ............................................................................................................................................... 4 Directrices para un buen diseño ....................................................................................................... 4 Principios básicos de diseño ............................................................................................................. 5 metodologías de diseño ................................................................................................................... 5 Generando Alternativas De Estrategias De Diseño .......................................................................... 7 Hardware Y Software. ................................................................................................................... 8 Organizacionales. .......................................................................................................................... 8 4.2.

Diseño de objetos ..................................................................................................................... 9

El diseño orientado a objetos (DOO) .............................................................................................. 10 El enfoque convencional y el enfoque OO ..................................................................................... 11 Referencias ......................................................................................................................................... 12

Semana 9


Fundamentos de Ingeniería de Software

Educación a distancia

Competencia específica a desarrollar

Competencia específica a desarrollar

Actividades de Aprendizaje

Aplicar modelos, técnicas y herramientas para A partir del modelo de análisis del proyecto la etapa de diseño del software. propuesto se realizarán las siguientes actividades:  • • • • • •

Refinamiento a clases. Refinamiento a subsistemas Refinamiento a diagramas de colaboración. Refinamiento a diagramas de componentes. Refinamiento a diagramas de actividades. Refinamiento a diagrama de secuencia. Realizar una tabla comparativa que muestre las inconsistencias detectadas. • Reporte de la estructura del sistema después de haber realizado el modelo de diseño en el caso de estudio.

Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

4.1. ESTRATEGIAS DE DISEÑO DISEÑO El Diseño del sistema es el proceso de describir, organizar y estructurar los componentes del sistema. Tanto a nivel arquitectónico como a nivel detallado, con la intención de construir el sistema propuesto. Es el proceso de aplicar distintas técnicas y principios con el propósito de definir un producto con los suficientes detalles como para permitir su realización física. • Con el diseño se pretende construir un sistema que: – Satisfaga determinada especificación del sistema – Se ajuste a las limitaciones impuestas por el medio de destino – Respete requisitos sobre forma, rendimiento utilización de recursos, coste, etc. • El diseño es la primera etapa técnica del proceso de Ingeniería del Software, consiste en producir un modelo o representación técnica del software que se va a desarrollar • El diseño es el proceso sobre el que se asienta la calidad del software • El diseño de software es un proceso iterativo a través del cual se traducen los requisitos en una representación del software • El diseño se representa a un alto nivel de abstracción, un nivel que se puede seguir hasta requisitos específicos de datos, funcionales y de comportamiento El diseño de más alto nivel también es llamado: diseño general, arquitectónico o conceptual. • También es una actividad de modelaje. • La información modelada en la identificación de los requerimientos se convierte en modelos que representan la solución.

DIRECTRICES PARA UN BUEN DISEÑO • El diseño debe implementar todos los requisitos explícitos contenidos en el modelo de análisis y debe acomodar todos los requisitos implícitos que desee el cliente

Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

• El diseño debe ser una guía que puedan leer y entender los que construyan el código y los que prueban y mantienen el software • El diseño debería proporcionar una completa idea de lo que es el software, enfocando los dominios de datos, funcional y de comportamiento desde la perspectiva de la implementación

PRINCIPIOS BÁSICOS DE DISEÑO • El diseñador debe considerar enfoques alternativos juzgando a cada uno en base a los requisitos del problema, los resultados disponibles y los criterios de calidad interna • Se deberían poder seguir los pasos de diseño hasta el modelo de análisis • El diseño no va a reinventar nada que ya esté inventado • El diseño debería presentar uniformidad e integración • Debe estructurarse para admitir cambios • El diseño no es escribir código y escribir código no es diseñar • Se debería valorar la calidad del diseño mientras se crea, no después de terminado METODOLOGÍAS DE DISEÑO • Diseño de datos: Modelo de información a estructuras de datos • Diseño arquitectónico: Define las relaciones entre los elementos estructurales de nuestro programa • Diseño procedimental: Se transforman los elementos estructurales de nuestro programa en una descripción procedimental del software • Diseño de interfaz: Describe cómo se comunica el software consigo mismo y con su entorno

Semana 9


Fundamentos de Ingeniería de Software

Educación a distancia

ALTERNATIVAS DE ESTRATEGIA DE DISEÑO Para concluir el proceso de análisis, se debe trabajar en tomar estos requisitos estructurados y transformarlos en varias estrategias de diseño, donde una de ellas será la que se seguirá en la fase de de diseño del ciclo de vida. ESTRATEGIA DE DISEÑO. Declaración de alto nivel sobre el enfoque del SI a desarrollar. Incluye la funcionalidad del sistema, el hardware y la plataforma de software del sistema, y el método para su adquisición o desarrollo. La selección de la mejor alternativa del diseño del sistema incluye al menos dos pasos básicos: – Generación de un conjunto comprehensivo de alternativas de estrategias de diseño y, – Selección de la mejor alternativa para el SI deseado, sobre la base de todas las restricciones organizacionales, económicas y técnicas, que limitan su desarrollo.

PROCESO DE SELECCIÓN DE LA MEJOR ALTERNATIVA DE ESTRATEGIA DE DISEÑO La configuración de alternativas procesos:

de estrategias de diseño de sistemas abarca los siguientes

1) Dividir los requerimientos en conjuntos de capacidades, en un rango que vaya de lo más simple que los usuarios aceptarían (los requerimientos mínimos) hasta lo más elaborado y avanzado en sistemas que la compañía podría llegar a desarrollar (incluye todas las características deseadas por todos los usuarios).

Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

Alternativamente, combinaciones de diferentes conjuntos de capacidades podrían representar la posición de aquellas unidades organizacionales que tienen conflictos acerca de lo que el sistema debería hacer. 2) Enumerar los diferentes ambientes de implementación (HW, SW, red, web) que potencialmente podrían ser usados para acometer los diferentes conjuntos de capacidades. 3) Proponer diferentes maneras de acometer y desarrollar varios conjuntos de capacidades con los diferentes ambientes de implementación. Los analistas pueden recomendar lo que ellos creen es la mejor alternativa, pero el cuerpo gerencial (una combinación de un comité y de los encargados de hacerle seguimiento al desarrollo del proyecto de sistema) tomarán la última decisión sobre cual estrategia de diseño de sistemas seguir. Los documentos que deben surgir como resultado de la generación de alternativas de diseño de sistemas y, la selección de la mejor estrategia, son: 1) Por lo menos tres (3) estrategias de diseño de sistemas sustancialmente diferentes para la construcción del nuevo SI. 2) La mejor estrategia de diseño para alcanzar el SI deseado. 3) La línea base del Proyecto de planificación para convertir la mejor estrategia de diseño en un SI en plena operación

GENERANDO ALTERNATIVAS DE ESTRATEGIAS DE DISEÑO ¿Cómo saber los límites del posible espacio solución?. El equipo de analistas ya tiene recolectada la información necesaria para identificar el espacio solución. Pero primero debe organizar sistemáticamente la información. En este sentido, existen dos (2) consideraciones: • La primera se refiere a los requerimientos del nuevo sistema que son mandatorios; si alguno de ellos es olvidado, hace que la estrategia no tenga sentido. Para comparar diferentes estrategias de diseño, los requerimientos del sistema pueden ser divididos en tres categorías: mandatorios, esenciales y deseados. • Las segunda se refiere a las restricciones para el desarrollo del sistema, tales como: fechas de entrega del sistema, disponibilidad de recursos humanos y financieros, elementos del sistema actual que deben conservarse, restricciones legales y contractuales y, la importancia o dinámica del problema, ya que puede limitar cómo adquirir el sistema (comprar vs. desarrollar). Tanto los

Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

requerimientos como las restricciones deben ser identificados y clasificados en orden de importancia. Cuando se piensa comprar un software off-the-shelf, hay que comparar el paquete de software y el proceso de desarrollo de la misma aplicación en casa, según los siguientes criterios: costo, funcionalidad, soporte del vendedor, viabilidad del vendedor, flexibilidad, documentación, tiempo de respuesta y facilidad de instalación. Además, hay que recurrir a métodos cuantitativos cuando se comparan distintos paquetes de software.

HARDWARE Y SOFTWARE . Es necesario determinar si la plataforma de HW y SW existente en la organización soporta el nuevo sistema o si es necesario realizar mejoras de HW y/o adquisición de SW (manejadores de bases de datos, lenguajes de programación, sistemas operativos, SW de red, generadores de código, entre otros). Esto tiene que ser parte esencial de las alternativas de estrategias de diseño. Es necesario tener en cuenta los aspectos técnicos y sociales de la implementación del nuevo SI como parte de las alternativas de estrategias de diseño. Los gerentes y los usuarios deben conocer qué tiempo tomará a implementación, qué entrenamiento se requerirá, cómo será el impacto en los procesos, qué nuevas habilidades serán necesarias, qué tan “doloroso” será el proceso.

ORGANIZACIONALES. El costo (financiero y humano), la forma en que la gerencia será soportada y, la aceptación y uso que le darán los usuarios al nuevo SI, son temas que las alternativas de estrategias de diseño no

Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

pueden dejar fuera. No hay que olvidar que el SI a desarrollar está inmerso dentro de una organización y que ésta influye directamente sobre el uso y aprovechamiento del SI, así como el funcionamiento de éste influye en el desempeño de la organización.

4.2. DISEÑO DE OBJETOS DISEÑO DE LOS OBJETOS La fase de análisis determina lo que debe hacer la implementación y la fase de diseño del sistema determina el plan de ataque. La fase de diseño de objetos determina las definiciones completas de las clases y asociaciones que se utilizarán en la implementación, así como las interfaces y algoritmos de los métodos utilizados para implementar las operaciones. La fase de diseño de objetos añadirá objetos internos para la implementación y optimizará las estructuras de datos y los algoritmos. El diseño de objetos es análogo a la fase preliminar de diseño del ciclo de vida de desarrollo de software tradicional.

Aspectos generales del diseño de objetos Durante el diseño de objetos, se ejecuta la estrategia seleccionada durante el diseño del sistema y se rellenan los detalles. Se produce un desplazamiento del énfasis pasando de los conceptos del dominio de la aplicación a los propios de las computadoras. Los objetos descubiertos durante el análisis sirven como esqueleto del diseño, pero el diseñador debe escoger distintas formas de implementarlos con el objetivo de minimizar el tiempo de ejecución, la memoria y el costo. En particular, las operaciones identificadas durante el análisis deben expresarse en forma de algoritmos, descomponiendo las operaciones complejas en operaciones internas más sencillas. Las clases, atributos y asociaciones del análisis deben de implementarse en forma de estructuras de datos específicas. Es necesario introducir nuevas clases de objetos para almacenar resultados intermedios durante la ejecución del programa y para evitar la necesidad de recalcularlos. La optimización del diseño no debería llevarse a extremos exagerados porque la facilidad de implementación y mantenimiento y la extensibilidad son también objetivos importantes.

Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

EL DISEÑO ORIENTADO A OBJETOS (DOO) Diseño orientado a objetos es una fase de la metodología orientada a objetos para el desarrollo de Software. Su uso induce a los programadores a pensar en términos de objetos, en vez de procedimientos, cuando planifican su código. Un objeto agrupa datos encapsulados y procedimientos para representar una entidad. La 'interfaz del objeto', esto es, las formas de interactuar con el objeto, también es definida en esta etapa. Un programa orientado a objetos es descrito por la interacción de esos objetos. El diseño orientado a objetos es la disciplina que define los objetos y sus interacciones para resolver un problema de negocio que fue identificado y documentado durante el análisis orientado a objetos. El diseño orientado a objetos (DOO) transforma el modelo el modelo de análisis creado usando el análisis orientado a objetos, en un modelo de diseño que sirve como anteproyecto para la construcción del software. El DOO constituye un tipo de diseño que logra un cierto numero de diferentes niveles de modularidad. Los componentes principales del sistema están organizado en módulos denominados subsistemas. La naturaleza única del DOO descansa en su capacidad de apoyarse en cuatro conceptos importantes del diseño del software: Abstracción, ocultamiento de la información, independencia funcional y modularidad. El diseño orientado a objetos es duro, siendo un poco mas difícil que los diseños estructurales, a un para aquellas personas que llevan algo de tiempo aplicando este diseño.

DISEÑO DE SISTEMAS ORIENTADO A OBJETOS. Se han definido cuatro capas de diseño:D atos, arquitectura, interfaz, y procedimental, para los sistemas orientados a objetos también podemos definir un sistema en pirámide, pero las capas son un poco distintas: La capa del subsistema: Contiene una representación de cada uno de los subsistemas que permite al software conseguir que los requerimientos definidos por el cliente e implementar la arquitectura técnica que los soporta. La capa de clases y objetos: Contiene las jerarquía de las clases que permiten crear el sistema, también contiene representaciones de cada uno de los objetos.

Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

La capa de mensajes: Contiene los detalles que permiten a cada objeto comunicarse con sus colaboradores. En esta capa establece las interfaces internas y externas del sistema. La capa de responsabilidades: Contiene las estructuras de datos y el diseño algorítmico para los atributos y operaciones de cada objeto.

El de diseño se centra exclusivamente en el deseño de un producto o sistema especifico.

EL ENFOQUE CONVENCIONAL Y EL ENFOQUE OO Los enfoques convencionales para el diseño aplican anotaciones y un conjunto de normas heurísticas para establecer para establecer correspondencia entre el modelo de análisis y el diseño. El DOO aplica el diseño de datos(cuando se representan atributos), diseño arquitectónico( cuando se desarrolla un modelo de intercambio de mensajes), y el diseño procedimental(en el diseño de operaciones). A diferencia de los diseños convencionales el diseño orientado a objetos no exhibe una estructura de control jerárquica. De hecho la arquitectura del DOO tiene mas que ver con la colaboraciones entre objetos que con flujo de control.

Semana 9


Educación a distancia

Fundamentos de Ingeniería de Software

REFERENCIAS   

"Modelado y Diseño Orientados a Objetos" James Rumbaugh et al Ed. Prentice Hall 1997 http://dircompucv.ciens.ucv.ve/generador/sites/disist/archivos/clase1.pdf http://www.info-ab.uclm.es/asignaturas/42579/pdf/01-Capitulo1.pdf

Semana 9


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.