1. Unidad 2 Paradigmas de la ingeniería del software
El Enfoque Estructurado
En el Enfoque Estructurado se usan los DFD (Diagrama de Flujo de Datos) como principal
herramienta para entender al sistema antes de plasmarlo a código fuente. DFD es un diagrama en
el que participan procesos (métodos), flujo de datos (argumentos) y archivos (Base de datos). Hay
de diferentes niveles dependiendo la complejidad del sistema que se analiza, hablando de lenguajes
tiene muchas diferencia con la orientada a objetos, un mínimo cambio en el código puede llegar
alterar al resto del programa cosa que en la orientada a objetos eso no sucede lo cual es una ventaja
porque así no se pierde tiempo en arreglar cosas ya hechas. Una desventaja es que una porción de
código en lenguaje estructurado es difícil que pueda servir en otros proyectos, esto si es habitual en
lenguaje orientada a objetos, con solo importar clases ya hechas se escribe menos código y se ahorra
tiempo.
Diagrama de Flujo de Datos
Un diagrama de flujo de datos (DFD) es una representación gráfica de los procesos que se realizan
con los datos en su organización, con el uso de tan solo cuatro símbolos, se puede crear una
descripción grafica de los procesos que, con el tiempo, contribuirán a desarrollar una sólida
documentación del sistema.
En seguida mencionan las ventajas sobre las explicaciones descriptivas en relación con la forma en
que los datos se mueven a través del sistema:
Libertad para emprender la implementación técnica del sistema en las primeras etapas.
Comprensión más profunda de la interrelación entre sistemas y subsistemas.
Comunicación con los usuarios sobre el conocimiento del sistema actual mediante
diagramas de flujos de datos.
Análisis de un sistema propuesto para determinar si se han definido los datos y procesos
necesarios.
La ventaja más grande es la libertad conceptual para utilizar los cuatro símbolos, los DFD’s hacen
énfasis en el procesamiento o la transformación conforme estos pasan por una variedad de procesos.
En los DFD’s lógicos no hay distinción entre procesos manuales o automatizados. Los procesos
tampoco se representan gráficamente en orden cronológico. En vez de ello, se agrupan solo si el
análisis detallado dicta que tiene sentido hacerlo. Los procesos manuales se agrupan, y los procesos
automatizados también se pueden agrupar.
Diccionario de Datos
2. El diccionario de datos surge de la necesidad de catalogar los procesos, flujos almacenes estructuras
y elementos de datos. Los nombres que se usan son muy importantes. Cuando se tiene la oportunidad
de asignar nombre a los componentes de los sistemas orientados a datos, es necesario trabajar en la
creación de un nombre significativo pero diferente al de otros componentes de datos existentes.
El diccionario de datos es un listado organizado de todos los elementos de datos que son pertinentes
para el sistema, con definiciones precisas y rigurosas que permiten que el usuario y el analista del
sistema tenga una misma comprensión de las entradas, salidas, de los componentes de los almacenes
y también los cálculos intermedios.
A pesar de la existencia de los diccionarios de datos automatizados, entender qué datos conforman
un diccionario de datos, las convenciones usadas en estos últimos y cómo se desarrolla un
diccionario de datos, son problemas que el analista de sistemas debe tener siempre presentes durante
el esfuerzo de sistemas. Entender el proceso de compilar un diccionario de datos puede ayudar al
analista de sistemas a visualizar el sistema y su funcionamiento. Además de proporcionar
documentación y eliminar la redundancia, el diccionario datos se podría usar para:
Validar la integridad y exactitud del diagrama de flujo de datos.
Proporcionar un punto de partida para desarrollar pantallas e informes.
Determinar el contenido de los datos almacenados en archivos.
Desarrollar la lógica para los procesos del diagrama de flujo de datos.
Diseño de Módulo
Un modelo de datos es un lenguaje orientado a describir una Base de Datos. Típicamente un Modelo
de Datos permite describir:
1. Las estructuras de datos de la base: El tipo de los datos que hay en la base y la forma
en que se relacionan.
2. Las restricciones de integridad: Un conjunto de condiciones que deben cumplir los
datos para reflejar correctamente la realidad deseada.
3. Operaciones de manipulación de los datos: Operaciones de agregado, borrado,
modificación y recuperación de los datos de la base.
4. Otro enfoque es pensar que un modelo de datos permite describir los elementos de
la realidad que intervienen en un problema dado y la forma en que se relacionan esos
elementos entre sí.
El Enfoque Orientado a Objetos
3. El contexto del Enfoque Orientado a Objetos (EOO) un objeto es una
entidad que encapsula datos (atributos) y acciones o funciones que los manejan (métodos). También
para el EOO un objeto se define como una instancia o particularización de una clase.
Los objetos de interés durante el desarrollo de software no sólo son tomados de la vida real (objetos
visibles o tangibles), también pueden ser abstractos. En general son entidades que juegan un rol bien
definido en el dominio del problema. Un libro, una persona, un carro, un polígono, son apenas
algunos ejemplos de objeto.
Cada objeto puede ser considerado como un proveedor de servicios utilizados por otros objetos que
son sus clientes. Cada objeto puede ser a la vez proveedor y cliente. De allí que un programa pueda
ser visto como un conjunto de relaciones entre proveedores clientes. Los servicios ofrecidos por los
objetos son de dos tipos:
Los datos, que llamamos atributos.
Las acciones o funciones, que llamamos métodos.
Fundamentos del Enfoque Orientado a Objeto
El Enfoque Orientado a Objeto se basa en cuatro principios que constituyen la base de todo
desarrollo orientado a objetos.
Estos principios son: la Abstracción, el Encapsulamiento, la Modularidad y la Herencia.
Otros elementos a destacar (aunque no fundamentales) en el EOO son: Polimorfismo, Enlace
dinámico (o binding),
Concurrencia y Persistencia.
El análisis orientado a objetos (AOO) y el diseño orientado a objetos (DOO) constituyen un enfoque
distinto de desarrollo de sistemas. Estas técnicas se basan en los conceptos de la programación
orientada a objetos, que han sido codificados en UML (Lenguaje Unificado de Modelación), un
lenguaje estandarizado de modulación en el cual los objetos generados no solo incluyen código
referente a los datos sino también instrucciones acerca de las operaciones que se realizaran sobre
los datos.
4. El proceso Orientado a Objetos se mueve a través de una espiral evolutiva que comienza con la
comunicación con el usuario. Es en esta parte donde se define el dominio del problema y se
identifican las clases básicas del problema. La planificación y el análisis de riesgos establecen una
base para el plan de proyecto OO. El trabajo técnico asociado con la ingeniería del software OO
sigue las siguientes tareas:
1. Identificar clases candidatas
2. Buscar clases en biblioteca
3. Extraer nuevas clases si existen
4. Desarrollar las clases sino existen
5. Añadir las nuevas clases a la biblioteca
6. Construir n-esima iteración del sistema
Las principales características del Enfoque Orientado a Objetos son:
1. Objeto: Los datos están cuantificados en entidades discretas y distinguibles llamadas
objetos.
2. Clase: Significa que los objetos con la misma estructura de datos (atributos) y
comportamiento (operaciones) se agrupa para formar una clase.
3. Atributo: Describen la clase o el objeto de alguna manera
4. Mensajes: Medio por el cual interactúan los objetos
5. Polimorfismo: Significa que una misma operación puede comportarse de modos
distintos en distintas clases.
6. Herencia: Compartir atributos y operaciones entre clases tomando como base una
relación jerárquica.
• Identidad: Los datos están cuantificados en entidades discretas y distinguibles denominadas objetos.
Estos pueden ser tangibles o intangibles.
• Clasificación: Los objetos con la misma estructura de datos (atributos) y comportamiento
(operaciones) se agrupan para formar una misma clase, se dice que cada objeto es una instancia de
su propia clase, y una clase es una abstracción que describe propiedades importantes para una
aplicación y se olvida del resto.
• Polimorfismo: Significa que una misma operación puede comportarse de modos distintos en
distintas clases, una operación es una acción o transformación que se aplica a un objeto.
5. • Herencia: Comparte atributos y operaciones entre clases tomando como base una relación
jerárquica, es decir que se puede definir una clase que después producirá subclases, sabiendo que
todas las subclases adquirirán todas y cada una de las propiedades de su super-clase y le agrega
además sus propiedades exclusivas.
Fase de Diseño
Para los sistemas orientados a objetos es posible definir un diseño en pirámide con las siguientes
cuatro capas:
Subsistema. Contiene una representación de cada uno de los subsistemas que le permiten al
software conseguir los requisitos definidos por el cliente e implementar la infraestructura técnica
que los soporta.
Clases y Objetos. Contiene las jerarquías de clases que permiten crear el sistema utilizando
generalizaciones y especializaciones mejor definidas incrementalmente. También contiene
representaciones de diseño para cada objeto.
Mensajes. Contiene los detalles que permiten a cada objeto comunicarse con sus
colaboradores. Establece las interfaces externas e internas para el sistema.
Responsabilidades. Contiene las estructuras de datos y el diseño algorítmico para todos los
atributos y operaciones de cada objeto.
Conclusion:
Bueno de este tema aprendí que las diferencias entre un enfoque estructurado y uno orientado a
6. objetos, aprendí que un enfoque estructurado utiliza los Diagrama de Flujo de Datoscomo principal
herramienta para entender al sistema antes de plasmarlo a código fuente, que un DFD es un
diagrama en el que participan métodos, argumentos y archivos .