Modelos / Diseño Estructurado
Modelos / Diseño Estructurado
Modelos / Diseño Estructurado
Una vez que se han establecido los requisitos del software (en el análisis), el
diseño del software es la primera de tres actividades técnicas: diseño, codificación,
y prueba. Cada actividad transforma la información de forma que finalmente se
obtiene un software para computadora válido.
Eficiencia
Mantenibilidad
Modificabilidad
Flexibilidad
Generalidad
Utilidad
Abstracción:
La noción psicológica de abstracción permite concentrarse en un problema al
mismo nivel de generalización, independientemente de los detalles irrelevantes de
bajo nivel. El uso de la abstracción también permite trabajar con conceptos y
términos que son familiares al entorno del problema, sin tener que transformarlos
a una estructura no familiar.
Refinamiento sucesivo:
La arquitectura de un programa se desarrolla en niveles sucesivos de refinamiento
de los detalles procedimentales. Se desarrolla una jerarquía descomponiendo una
declaración macroscópica de una función de una forma sucesiva, hasta que se
llega a las sentencias del lenguaje de programación.
Modularidad:
La arquitectura implica modularidad, el software se divide en componentes con
nombres y ubicaciones determinados, que se denominan módulos, y que se
integran para satisfacer los requisitos del problema.
Arquitectura del software:
La arquitectura del software se refiere a dos características importantes del
software de computadoras:
1.la estructura jerárquica de los componentes procedimentales (módulos)
2.la estructura de datos
Jerarquía de control:
La jerarquía de control, también denominada estructura de programa, representa
la organización
(Frecuentemente jerárquica) de los componentes del programa (módulos) e
implica una jerarquía de control. No representa aspectos procedimentales del
software, tales como secuencias de procesos, o la repetición de operaciones.
Estructura de datos:
La estructura de datos es una representación de la relación lógica existente entre
los elementos individuales de datos. Debido a que la estructura de la información
afectará invariablemente al diseño procedimental final, la estructura de datos es
tan importante como la estructura del programa en la representación de la
arquitectura del software.
COMPONENTES
Símbolos gráficos; iconos y convenciones para identificar y describir los
componentes de un sistema junto con las relaciones entre estos componentes.
HERRAMIENTAS
Diagrama de Flujo de Datos: Es la base para otros componentes y
describe como navegan los datos entre procesos y elementos relacionados.
• 2. Diseño de la Interfaz.
se comunica el software consigo mismo, con los sistemas que operan con él y con
los operadores que los emplean.
• 3. Diseño Procedimental.
Transforma elementos estructurales del programa en una descripción
procedimientos del software.
• 4. Diseño Arquitectónico.
importancia del diseño del software reside en la calidad. es la única manera de
traducir los requisitos del cliente un sistema o producto de software.
CARACTERÍSTICAS
El diseño debe implementar todos los requisitos contenidos en el modelo de
análisis y debe acomodar todos los requerimientos implícitos que desea el
cliente
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.
Es el proceso de decidir que componentes, y
la interconexión entre los mismos, para
solucionar un problema bien especificado.
*Abstracción
PRINCIPIOS *Refinamiento sucesivo
UTILIZADOS POR *Modularidad
EL DISEÑO *Jerarquía de control
ESTRUCTURADO * Estructura de datos
*Símbolos gráficos
*Diccionario de datos
COMPONENTES *Descripciones de procesos y
procedimientos
*Reglas
1. Diseño de datos.
CARACTERISTICAS:
Debe implementar todos los requisitos
contenidos en el modelo de análisis y debe
acomodar todos los requerimientos implícitos
que desea el cliente
Debe ser una guía que puedan leer y entender
los que construyan el código y los que prueban y
mantienen el software.
UNIVERSIDAD MEXIQUENSE DEL BICENTENARIO.
UNIDAD DE ESTUDIOS SUPERIORES TULTEPEC.
LIC. INFORMÁTICA ADMINISTRATIVA Y FINANCIERA.
INTEGRANTES:
FECHA:8/MAYO/2016
MODELO DE ORIENTADO A OBJETOS (OO)
Conceptos y propósito del modelo de estructura de objetos
• La dimensión estructural.
• La dimensión dinámica.
• La dimisión funcional.
Complementos:
Análisis del Negocio: se reconocen objetos claves del negocio y generan las
abstracciones en las clases apropiadas (objetos entidad).
Objetos entidad
Objetos Interface
Objetos de control
Una clase abstracta es aquella que no instancias (objetos) propias. Las clases
abstractas son un poderoso mecanismo conceptual para definir estructuras
comunes de atributos, operaciones, y restricciones, reutilizadas a través de la
herencia por múltiples clases concretas.
Modelo Dinámico.
El modelo dinámico está basado y constituido en aquellos aspectos de un sistema
relacionados con el tiempo (objetos y cambio de los mismos) a lo largo del tiempo.
El modelo dinámico describe el control del sistema, esto quiere decir, las
secuencias que ocurren como consecuencia del uso de los usuarios finales, sin
tener en cuenta lo que hacen las operaciones sobre que operan y como se
implementan. Como ocurre en el modelo orientado a objetos los objetos se
comunican entre sí a través del paso de mensajes (parámetros), a esta acción el
modelo dinámico se denomina interacción entre objetos.
Modelo Funcional.
El modelo funcional representa todos los factores esenciales del desarrollo de
software ignorando aquellos que forman parte de los detalles más específicos de
sistema. Este modelo parte de un propósito general bien especificado y de la
manera más simplificada posible.
• Particionamiento
• Abstracción
• Proyección
• Función asíncrona: Una función asincrónica puede ser activado por otro
objeto o función para realizar alguna acción.
• Función asíncrona dependiente de un estado: Un asíncrono dependiente
del estado es generalmente una función "one-shot" de acción, que se
ejecuta durante una transición de un estado a otro estado. Esta función se
activa mediante una transformación de control
• Función periódica: Una función periódica se activa a intervalos regulares
para realizar alguna acción. La frecuencia con la que se activa una función
específica depende de la aplicación
• Función periódica dependiente de un estado: Una función periódica se
activa a intervalos regulares para realizar alguna acción. La frecuencia con
la que se activa una función específica depende de la aplicación. Esta
función se activa mediante una transformación de control
Metodología OOHDM
Es una metodología orientada a objetos la cual comprende 5 fases:
1. Obtención de requerimientos.
2. Modelo conceptual.
3. Diseño navegacional.
4. Diseño de la interfaz abstracta.
5. Implementación.
SOHDM
RUP
Inicio: Se hace un plan de fases, donde se identifican los principales casos de uso
y se identifican los riesgos. Se concreta la idea, la visión del producto, como se
enmarca en el sistema, el alcance del proyecto. Elaboración: Se realiza el plan
que seguirá el proyecto de software, donde se contemplan todos los casos de uso
del sistema. Construcción: Se realiza un producto totalmente operativo y se
elabora el manual de usuario, es en esta fase donde se define la arquitectura del
proyecto. Transición: Se implementa el proyecto, en esta fase se entrena a los
usuarios como deben utilizar el producto, en esta fase se el proyecto pasa del
desarrollador el usuario (transición).
UML
Objetory: Un método de Caso de Uso guiado para el desarrollo, creado por Ivar
Jacobson.
SISTEMAS DE INFORMACION
INTEGRANTES:
*GARCIA LONGINOS JESSICA ELENA
*LINARES ROMERO EMILIA DEL ROSARIO
*MENDOZA RODRIGUEZ ADRIAN
* OCHOA DAGDUG JAQUELINE
*MOLINA RUIZ CAROLINA
*VARGAZ HERNANDEZ LEONARDO
*SERRATO AGUILAR VIRIDIANA
*VENTURA RODRIGUEZ CARLOS EDUARDO
GRUPO: 28LF261
Objetivos
El desarrollo basado en componentes es una aplicación de la técnica de; divide y conquer, para
manejar la complejidad. La diferencia principal con los métodos estructurados principalmente
que el análisis y diseño es realizado dentro del mismo paradigma que la implementación. Esta
implementación queda relegada a un segundo plano, siendo importante dar una solución lógica al
problema, previo a su codificación. Este principio fue utilizado en el paradigma de orientación a
objetos, el hecho de combinar operaciones e información en una misma unidad, y de contar con
técnicas de modelado dentro del mismo paradigma, hizo que la orientación a objetos tuviera un
éxito importante.
PRINCIPALES OBJETIVOS
2. Buscar el fácil reemplazo. (Esto implica una nueva implementación del componente para
que pueda ser utilizada en lugar de la implementación anterior sin afectar el funcionamiento
del resto de los componentes.)
COMPONENTE
“Un componente es una unidad de composición de aplicaciones software, que posee un conjunto
de
interfaces y un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado
al sistema y compuesto con otros componentes de forma independiente, en tiempo y espacio”
Identificable: Debe tener una identificación que permita acceder fácilmente a sus servicios que
permita su clasificación.
Auto contenido: Un componente no debe requerir de la utilización de otros para finiquitar la
función para la cual fue diseñado.
Puede ser remplazado por otro componente: Se puede remplazar por nuevas versiones u otro
componente que lo remplace y mejore.
Con acceso solamente a través de su interfaz: Debe asegurar que estas no cambiaran a lo largo
de su implementación.
Sus servicios no varían: Las funcionalidades ofrecidas en su interfaz no deben variar, pero su
implementación sí.
Bien Documentado: Un componente debe estar correctamente documentado para facilitar su
búsqueda si se quiere actualizar, integrar con otros, adaptarlo, etc.
Es genérico: Sus servicios deben servir para varias aplicaciones.
Reutilizado dinámicamente: Puede ser cargado en tiempo de ejecución en una aplicación.
Independiente de la plataforma: Hardware, Software, S.O.[9]
LA INTERFAZ DE UN COMPONENTE
Una interfaz define el conjunto de operaciones que un componente puede realizar; estas
operaciones son llamadas también servicios o responsabilidades. Las interfaces proveen un
mecanismo para interconectar componentes y controlar las dependencias entre ellos.
La naturaleza de la interfaz varía dependiendo del lenguaje programación empleado para
implementar el componente.
En general, una interfaz de programación de aplicaciones (API, Application Programming
Interface) es una especificación, en un lenguaje de programación, de las propiedades de un
módulo de software. Los clientes del módulo sólo deben depender exclusivamente de las
propiedades definidas por el API de forma explícita.
Es útil diferenciar los tipos de propiedades de los componentes. Por ejemplo, Beugnard et al.
[25] define cuatro tipos de propiedades relacionadas con:
1. Sintaxis: corresponden a las propiedades funcionales expresadas explícitamente a través de la
interfaz del componente.
2. Comportamiento: definen las condiciones que deben cumplir los valores de entrada
(precondiciones) y salida (postcondiciones) de las operaciones.
3. Sincronización: expresan aspectos de concurrencia.
4. Calidad de Servicio: contempla atributos tales como tiempo de respuesta, uso de memoria,
precisión, confiabilidad, facilidad de mantenimiento y reutilización, entre otros.
El paradigma de ensamblar componentes y escribir código para hacer que estos componentes
funcionen se conoce como Desarrollo de Software Basado en Componentes.
Un componente de software puede ser visto desde dos perspectivas distintas, como:
modelo de componentes.
Para esto debemos recordar que un modelo en espiral se desarrolla en una serie de versiones
incrementales. Se divide en un número de actividades de marco de trabajo también llamadas
regiones de tareas las cuales son:
2_. Planificación
4_. Ingeniería
ARQUITECTURA
El enfoque metodológico se centra en aquellas capas que representan las funcionalidades del
sistema, a saber, la capa de Servicios del Sistema y la capa de Servicios del Negocio. La
definición de la arquitectura de componentes cubre aspectos únicamente lógicos y es totalmente
independiente de la tecnología con la cual se implementarán los componentes y sobre la cual se
hará el deploy del sistema. Esta vista lógica nos permite medir el nivel de acoplamiento del
sistema y razonar sobre los efectos de modificar o reemplazar un componente. La independencia
de la tecnología nos permite abstraernos de los tecnicismos de éstas así como elegir la más apta
BENEFICIOS.
1. Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización de softwa
re.
2. Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de l
os componentes antes de probar el conjunto completo de componentes ensamblados.
3. Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre
componentes, el desarrollador es libre de actualizar y/o agregar componentes según sea
necesario, sin afectar otras partes del sistema.
4. Mayor calidad. Dado que un componente puede ser construido y luego mejorado
continuamente por un experto u organización, la calidad de una aplicación basada en
componentes mejorará con el paso del tiempo.
Se trabajará en la especificación de
interfaces y de componentes, definiendo
4.- Especificación de los principales componentes Contratos de uso y Contratos de
realización. Se realizan en esta etapa, los
Modelos de Información de Interfaces.