Está en la página 1de 8

República Bolivariana De Venezuela

Ministerio Del poder Popular Para La Defensa


Universidad Nacional Experimenta Politécnica De Las Fuerzas Armadas
UNEFA- Núcleo Apure

DISEÑO DE PROGRAMAS

Profesora: Alumno:
Lingzay Acosta José Blanco

26.658.470

San Fernando, Edo Apure


Diseño Modular:

es el diseño basado en la modulación reticular de espacios que permitan optimizar el tiempo


de construcción y debido a que son transportables, desarmables y reorganizables permiten
impulsar múltiples funcionalidades y su reutilización al generar un nuevo uso diferente al que
fueron fabricados.

Un sistema modular se puede caracterizar por los siguientes párrafos:

-Partición funcional en discretas módulos escalables y reutilizables que consiste en aislados,


autónomos elementos funcionales
-Uso riguroso de interfaces modulares bien definidas, incluyendo descripciones orientado a
objetos de la función del módulo
-Facilidad de cambio lograr transparencia tecnología y, a la medida de lo posible, hacer uso de
estándares industriales para interfaces clave

Además de la reducción en los costos (debido a una menor personalización, y menos tiempo de
aprendizaje), y la flexibilidad en el diseño, la modularidad ofrece otros beneficios como al
incrementar (la adición de una nueva solución con sólo conectar un nuevo módulo), y la
exclusión. Ejemplos de sistemas modulares son los automóviles, los ordenadores y edificios de
gran altura. Ejemplos anteriores son los telares, los sistemas de señalización del ferrocarril,
centrales telefónicas, los órganos de tubos y sistemas de distribución de energía eléctrica. Las
computadoras utilizan la modularidad para superar las demandas cambiantes del cliente y poder
realizar el proceso de fabricación más de adaptación al cambio (ver Programación modular).

El diseño modular es un intento de combinar las ventajas de la estandarización (alto


volumen normalmente es igual a los bajos costos de fabricación) con los de personalización. Un
aspecto negativo a la modularidad (y esto depende del grado de modularidad) es que los
sistemas modulares no están optimizados para el rendimiento. Esto es generalmente debido al
costo de la colocación de las interfaces entre los módulos.

Descomposición Modular:

Descomposición modular es decir la modularidad se refiere al software cuando se divide en


componentes nombrados y abordados por separado, llamados, se integran para satisfacer los
requisitos del problema. Se ha afirmado que la modularidad es el único atributo del software
que permite gestionar un programa intelectualmente. El software monolítico que es un
programa grande formado por un único módulo.
Cinco criterios que nos permitirán evaluar un método de diseño en relación con la habilidad
de definir un sistema modular efectivo:

Capacidad de descomposición modular. Si un método de diseño proporciona un mecanismo


sistemático para descomponer el problema en subproblemas, reducirá la complejidad de todo el
problema, consiguiendo de esta manera una solución modular efectiva.
Capacidad de empleo de componentes modulares. Si un método de diseño permite ensamblar
los componentes de diseño existentes en un sistema nuevo, producirá una solución modular que
no inventa nada ya inventado.

Capacidad de comprensión modular. Si un módulo se puede comprender como una unidad


autónoma será más fácil de construir y de cambiar.

Continuidad modular. Si pequeños cambios en los requisitos del sistema provocan cambios en
los módulos individuales, en vez de cambios generalizados en el sistema, se minimizará el
impacto de los efectos secundarios de los cambios.

Protección modular. Si dentro de un módulo se produce una condición aberrante y sus efectos
se limitan a ese módulo, se minimizará el impacto de los efectos secundarios inducidos por los
errores.

Diseño asistido por herramientas CASE:


La herramienta CASE (Computer-Aided Systems Engineering ) cuyo significado en español es
ingeniería de sistemas asistida por ordenador, es la aplicación de tecnología informática a las
actividades, las técnicas y las metodologías propias de desarrollo de sistemas y al igual que las
herramientas CAD (Diseño Asistido por Computadora) o CAM (Manufactura Asistida por
Computadora) su objetivo es acelerar el proceso para el que han sido diseñadas, en el caso de
CASE para automatizar o apoyar una o mas fases del ciclo de vida del desarrollo de sistemas. La
primera herramienta CASE como hoy la conocemos fue Excelerator en 1984, era para PC.
Actualmente la oferta de herramientas CASE es muy amplia y tenemos por ejemplo el EASYCASE
o WINPROJECT.

La tecnología CASE supone la automatización del desarrollo del software, contribuyendo a


mejorar la calidad y la productividad en el desarrollo de sistemas de información. Para mejorar
la calidad y la productividad de los sistemas de información a la hora de construir software se
plantean los siguientes objetivos :
-Permitir la aplicación práctica de metodologías estructuradas, las cuales al ser realizadas con
una herramienta conseguimos agilizar el trabajo.
-Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones.
-Simplificar el mantenimiento de los programas.
-Mejorar y estandarizar la documentación.
-Aumentar la portabilidad de las aplicaciones.
-Facilitar la reutilización de componentes software.
-Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la utilización de
gráficos.
De una forma esquemática podemos decir que una herramienta CASE se compone de los
siguientes elementos:
Repositorio (diccionario) donde se almacenan los elementos definidos o creados por la
herramienta, y cuya gestión se realiza mediante el apoyo de un Sistema de Gestión de Base de
Datos (SGBD) o de un sistema de gestión de ficheros.
Metamodelo (no siempre visible), que constituye el marco para la definición de las técnicas y
metodologías soportadas por la herramienta.
Carga o descarga de datos, son facilidades que permiten cargar el repertorio de la herramienta
CASE con datos provenientes de otros sistemas, o bien generar a partir de la propia herramienta
esquemas de base de datos, programas, etc. que pueden, a su vez, alimentar otros sistemas.
Este elemento proporciona así un medio de comunicación con otras herramientas.
Comprobación de errores, facilidades que permiten llevar a cabo un análisis de la exactitud,
integridad y consistencia de los esquemas generados por la herramienta.
Interfaz de usuario, que constará de editores de texto y herramientas de diseño gráfico que
permitan, mediante la utilización de un sistema de ventanas, iconos y menús, con la ayuda del
ratón, definir los diagramas, matrices, etc. que incluyen las distintas metodologías.

DISEÑO ORIENTADO A OBJETOS

Diseño del componente de dominio problema:


El componente del dominio del problema (PDC) es el conjunto básico de objetos funcionales que
llega de la etapa de análisis. Tales objetos directamente resuelven el problema que se pretende
ser resuelto por el sistema que se está construyendo, lo que quiere decir que el diseño del PDC
se termina en su mayor parte en la etapa de análisis, completándose ahora con la ejecución de
tres actividades, las cuales son:

-Diseño de reuso: Se pueden añadir en esta etapa nuevas clases para reusar objetos que serán
útiles más adelante. Es el caso de los paquetes comerciales de clase generalizada como las que
contienen las organizaciones de programadores OO con experiencia, ellos por lo general poseen
una biblioteca de clases desarrollada para los objetos. Estas bibliotecas y paquetes pueden
contener clases que tienen atributos y servicios para objetos similares a los requeridos en el
diseño del sistema a desarrollarse. Estas clases reusables pueden ser añadidas al diseño como
clases bases en una estructura Gen-Spec.
-Estructura de Implementación: Debido a la implementación en un lenguaje de programación
en particular podría ser necesario que en el diseño se agreguen estructuras que pueden ser de
agregación, o Gen-Spec, este último para permitir que varias clases de objetos compartan un
protocolo o estructura de datos. Estas estructuras usan el concepto de herencia para hacer más
fácil el enfoque de programación.

-Acomodo al lenguaje: En esta sección podemos corregir (si es necesario) el diseño para que
las estructuras puedan ser construidas en el lenguaje de programación seleccionado, debido a
que estos lenguajes pueden tener diferentes patrones de herencia. Algunos lenguajes, por
ejemplo, incluyen herencia múltiple (C++), otros solamente incluyen herencia simple (Java) y
todavía otros que posiblemente no incluyen herencia. En los casos más restrictivos, los patrones
dherencia del diseño deben ser modificados para permitir las capacidades del lenguaje de
programación.

Diseño del componente de interfaz humana:

En esta actividad creamos los menús, reportes y pantallas interactivas que usarán las
personas para trabajar con el sistema. Por lo general, se puede obtener ayuda en gran forma en
clases de bibliotecas para el diseño de clases de Interfaz. Esta es un área donde la reusabilidad
de las clases Orientado a Objetos ha probado ser muy efectiva. Las clases de bibliotecas
generalmente proporcionan generalizaciones de menús, ventanas, control de tipo de letra, y
utilerías de cortar y pegar. Los prototipos son muy útiles durante el diseño de Interfaz para
hacer más fácil la manera en que trabajarán las clases de biblioteca con los objetos del Dominio.
Por lo general, con la información obtenida en las entrevistas y casos de uso podemos recopilar
información acerca de los perfiles de usuarios involucrados en el sistema y diseñar una interfaz
correspondiente a su perfil. Con base a estos y otros perfiles, podemos seleccionar una interfaz.

Diseño de los componentes de administración de tarea y datos:

Ambos componentes están estrechamente relacionados con la tecnología de


implementación. El manejo de tareas esta muy determinado por la configuración de hardware
de computación, y el manejo de datos esta muy determinado por el software de sistema
disponible cuando el sistema este de hecho en ejecución.

El componente de manejo de tareas es más importante cuando el sistema está ejecutándose en


varios procesadores o computadoras. Una “tarea”es un conjunto de servicios relacionados que
deben ejecutarse juntos (tal ves en el mismo procesador). Las tareas son activadas por el
tiempo transcurrido o por un evento. Los objetos del manejo de tarea obedecen a activadores
de tareas, asignación de procesadores y prioridades cuando son llamados los servicios.

Un ejemplo de componente de tareas es como se muestra a continuación, en él, el tema del


componente de manejo de tareas se añade al paquete de diagrama de capas existente. Este
componente es implementado luego creando objetos Tarea conforme son necesarios por el
sistema.
El componente de Manejo de Datos comprende, por lo general, clases y objetos necesarios
para almacenar y recuperar a los otros objetos del sistema. El Componente Manejo de Datos varia
considerablemente dependiendo de si la tecnología de tiempo de ejecución subyacente es una
base de datos orientada a objetos, una base de datos relacional o un sistema de archivos “plano”
ordinario. En un ambiente de Base de Datos relacional o de archivo plano el componente de
manejo de datos debe proporcionar servicios de almacenamiento al sistema.

Hay tres formas diferentes para diseñar el Diagrama de Manejo de Datos:

1. Construir servicios de almacenamiento en cada Clase y Objetos en el diseño: Esto involucra, por
lo general, una cantidad considerable de programación de diseño adicional.

2. Crear una Clase y Objeto, ServidorObjeto, que proporcione todos los servicios de Base de Datos:
Involucra un complejo objeto que sepa cómo guardar o recuperar todos los objetos del sistema.
Cualquier petición de almacenamiento se hace por medio de mensajes a este único objeto cuyo
diseño podría ser como el que se muestra a continuación.
3. Crear una clase Almacenable: Es una combinación de los dos enfoques anteriores. Cada objeto
del sistema que deba ser guardado o recuperado es conectado luego a una estructura Gen-Spec
con la clase almacenable. La figura a continuación es un ejemplo de ésta.

Conceptos orientados a objetos:

La Programación Orientada a Objetos (POO, en español; OOP, según sus siglas en inglés) es un
paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos
manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada
objeto ofrece una funcionalidad especial.

Muchos de los objetos prediseñados de los lenguajes de programación actuales permiten la


agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario
la creación de sus propias bibliotecas. Está basada en varias técnicas del sexenio: herencia,
cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a
principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de
programación que soportan la orientación a objetos.
Diagrama de UML:

En ingeniería de software, un diagrama de clases en Lenguaje Unificado de Modelado (UML) es


un tipo de diagrama de estructura estática que describe la estructura de un sistema mostrando las
clases del sistema, sus atributos, operaciones (o métodos), y las relaciones entre los objetos.

UML proporciona mecanismos para representar los miembros de la clase, como atributos y
métodos, así como información adicional sobre ellos.

Para especificar la visibilidad de un miembro de la clase (es decir, cualquier atributo o método),
se coloca uno de los siguientes signos delante de ese miembro:

UML especifica dos tipos de ámbitos para los miembros: instancias y clasificadores y estos últimos
se representan con nombres subrayados.

-Los miembros clasificadores se denotan comúnmente como “estáticos” en muchos lenguajes de


programación. Su ámbito es la propia clase.

-Los valores de los atributos son los mismos en todas las instancias

-La invocación de métodos no afecta al estado de las instancias

-Los miembros instancias tienen como ámbito una instancia específica.

-Los valores de los atributos pueden variar entre instancias

-La invocación de métodos puede afectar al estado de las instancias(es decir, cambiar el valor de
sus atributos)

Para indicar que un miembro posee un ámbito de clasificador, hay que subrayar su nombre. De lo
contrario, se asume por defecto que tendrá ámbito de instancia.

También podría gustarte