Sie sind auf Seite 1von 35

1

Unidad 1 – Paso 2 – Ingeniería y gestión de requisitos.

DISEÑO DE SISTEMAS.

Presentado a:
Moisés de Jesús Rodríguez

Entregado por:

Edwin Ramiro Galindez Valencia


Código: 10.6983.22
Francisco Javier Guzmán
Código: 72.208.315
Wilson Andrés Hoyos
Código: 1.144.132.840
Yajaira Peñaloza Mercado
Código: 32.796.122
Juan Carlos Valencia
Código: 72.046.937

Grupo: 301309_45

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD

Octubre de 2018.

El Bordo Cauca.
2

INTRODUCCIÓN.

Por medio de esta actividad se pretende lograr que nosotros como estudiantes de este curso

académico que lleva como título DISEÑO DE SISTEMAS, comprendamos e identifiquemos en

forma clara y pertinente los detalles sobre la arquitectura del software, las estructuras de datos y

los componentes necesarios para la implementación del sistema, a su vez desarrollar el diseño para

un sistema de información o software e identificar las diferentes representaciones de un software

como son las características de resistencia, funcionalidad y belleza. También identificar los

ambientes que componen el curso académico, actores involucrados y las asignaturas de las

unidades académicas de estudio.


3

METAS.

 Presentar y entender el dominio de la información de un problema.

 Definir las funciones que debe realizar el software.

 Representar el comportamiento del software a consecuencias de algún acontecimiento

externo.

 Dividir en forma jerárquica los modelos que representa la información, funciones y

comportamiento.

 Dar soluciones a las necesidades del cliente.

 Evaluar los conceptos que tiene el cliente del sistema para establecer su viabilidad.

 Explicar el modelado de la arquitectura del sistema.


4

1. Cuando "escribe" un software diseñado por el programa ¿verdad? ¿Cómo

difieren el diseño y la codificación del software?

El diseño de un software es un proceso que se lleva para la planificación de una solución

de software, en donde generalmente tanto el cliente como el diseñador analizan en primera

instancia los requerimientos que resultan, desde el punto de vista del cliente para saber que

software se va a desarrollar. La codificación del software consiste esencialmente en transformar el

código fuente. Una vez que los algoritmos de una aplicación o programa han sido diseñados, ya se

puede iniciar la fase de codificación en el lenguaje de programación elegido, cuya tarea la realiza

el programador, siguiendo por completo los lineamientos impuestos en el diseño y teniendo en

cuenta siempre los requisitos funcionales y no funcionales. Por lo tanto, primero se diseña la clase

de programa, aplicación o software que requiere el cliente, una vez teniendo claro lo que el usuario

o cliente necesita de acuerdo a sus necesidades se lleva a cabo la codificación del software que

consiste en transformar el código fuente como ya se dijo anteriormente.

Codificación del Software


5

Diseño del Software

2. ¿Cómo se evalúa la calidad del diseño del software?

Actualmente existe un interés muy grande en lo que se refiere a la calidad de los productos

o servicios. El mercado actual es tan competitivo que no es suficiente el producir y distribuir los

productos o servicios. Sin embargo, la calidad en el software es un concepto complejo que no es

directamente comparable con la calidad de un producto o servicio. El software en la actualidad se

ha convertido en unos de los principales objetivos de las empresas, compañías, organizaciones

etc., debido a que cada día los procesos más importantes dependen del funcionamiento del

software. La calidad del software se puede observar en una característica o atributo. Como un

atributo, la calidad se refiere a características que se pueden medir, es decir cosas que se pueden

comparar para conocer estándares como lo que es la longitud, propiedades, color, propiedades

eléctricas y flexibles. Por ejemplo, un producto que cumpla con las expectativas de un usuario

puede haber sido elaborado sin conformidad por ciertas normas de fabricación, por eso, la calidad
6

siempre dependerá del punto de vista, pero en general, involucra el cumplimiento de un conjunto

o grupo de exigencias.

3. Dé ejemplos de tres abstracciones de datos y abstracciones de procedimientos

usadas para manipular.

Abstracción de datos: algunos autores describen la programación orientada a objetos

como programación de tipo de datos abstractos y sus relaciones.

 Manejando los problemas: La primera cosa con la que uno se enfrenta cuando

se escriben programas es el problema. Típicamente, tú te enfrentas a problemas "de la vida real"

y te quieres facilitar la existencia por medio de un programa para dichos problemas. Sin

embargo, los problemas de la vida real son nebulosos y la primera cosa que tienes que hacer es
7

tratar de entender el problema para separar los detalles esenciales de los no esenciales. Tratas de

obtener tu propia perspectiva abstracta, o modelo, del problema.

El modelo define una perspectiva abstracta del problema. Esto implica que el modelo se

enfoca solamente en aspectos relacionados con el problema y que tú tratas de

definir propiedades del problema. Estas propiedades incluyen.

 los datos que son afectados

 las operaciones que son identificadas

 Propiedades de los tipos de datos abstractos: El ejemplo de la sección anterior

muestra que por medio de la abstracción tu creas una entidad bien definida que puede ser

adecuadamente manejada. Estas entidades definen la estructura de datos de un conjunto de

elementos. Por ejemplo, cada empleado administrado tiene un nombre, fecha de nacimiento y

número social.
8

La estructura de los datos puede ser accesada solamente por medio

de operaciones definidas. Este conjunto de operaciones es llamada interface y es exportada por la

entidad. Una entidad con las propiedades recién descritas se conoce como un tipo de datos

abstracto (TDA).

Una vez que un nuevo empleado es "creado", la estructura de datos es llenada con los

valores reales: Ahora tú tienes una instancia de un empleado abstracto. Tú puedes crear tantas

instancias de un empleado abstracto como sea necesario para describir cada una de las personas

empleadas.

 Importancia del encapsulamiento de la estructura de los datos: El principio de

esconder la estructura de los datos usada y solamente proveer una bien definida interface se conoce

como encapsulamiento. ¿Por qué es tan importante encapsular la estructura de los datos?

Para contestar a esta pregunta, considera el siguiente ejemplo matemático donde queremos

definir un TDA para números complejos. Para esto, es suficiente saber que los números complejos

constan de dos partes: la parte real y la parte imaginaria. Ambas partes están representadas por

números reales. Los números complejos definen varias operaciones: suma, resta, multiplicación o

división por nombrar algunas. Los axiomas y precondiciones son válidos tal y como están
9

definidos por la definición matemática de los números complejos. Por ejemplo, existe un elemento

neutral para la adición.

Para representar un número complejo es necesario definir la estructura de datos que va a

ser usada por su TDA. Uno puede pensar en al menos dos posibilidades para hacer esto:

 Ambas partes son almacenadas en un arreglo doble, donde el primer valor indica la

parte real y el segundo valor la parte imaginaria del número complejo. Si x detenta la parte real

mientras que y la parte imaginaria, tú podrías pensar en accesarlos vía subíndices de

arreglos: x=c[0] y y=c[1].

 Ambas partes son almacenadas en un registro doble. Si el nombre del elemento de

la parte real es r y el de la parte imaginaria es i, x y y pueden ser obtenidos con: x=c.r y y=c.i.

Abstracción de procedimientos:

 Dene un procedimiento test que tome como argumentos un número natural n y un

predicado pred, y que devuelva un procedimiento denido por recursión terminal, que reciba como

entrada una lista l y devuelva #t, si al menos n elementos de l verican el predicado pred, y #f en

caso contrario. ((test 0 even?) '()) =>#t ((test 3 even?) '(1 2 4 16 18)) =>#t ((test 3 odd?) '(1 2 4 16

18)) =>#

 Denir un procedimiento min-prof que tome como argumento una lista numérica

(con al menos un número), y devuelva el mínimo de estos números. (min-prof '((2) ((3 4) -1) (0

((1))))) =>−1 (min-prof '(0 (0) ((0)))) =>0 (min-prof '((1 (-2)) 0 ((2) -1))) =>−2
10

 Diremos que una matriz numérica n×n es un cuadrado mágico si cumple la siguiente

propiedad: las sumas de cada una de sus las, columnas y dos diagonales principales coinciden. Por

ejemplo: 294753618

4. Describa en sus propias palabras la arquitectura del software.

Bueno se refiere a la estructura de un sistema. La arquitectura del software básicamente se

refiere al diseño o planeación que se concentra en ciertas características específicas, en donde se

recopilan y analizan requisitos para definir la arquitectura que a este se le va otorgar. Al diseñar

un excelente software no solo se va a satisfacer los requerimientos o requisitos del cliente, si no

que continúa haciéndolo para un futuro inmediato. Entonces para mí un arquitecto de software

debe contar con un conjunto de habilidades, conocimientos y herramientas básicas para ejercer o

gestionar ciertos tipos de roles. Un arquitecto de software debe tener claridad cómo donde está y

hacia dónde quiere ir, porque cuando se empieza a programar y queremos hacer un sistema de

información, una aplicación o un programa sin tener planeado nada, sin tener en mente que

arquitectura o diseño vamos a implementar, como vamos a desarrollar y diseñar el software,

después de un tiempo nos damos cuenta que ese programa se estanca en algún momento y nos

vamos a encontrar con problemas o inconvenientes que nunca pensamos tener, precisamente por

la mala planeación que se tuvo. Entonces siempre tener claro un buen análisis de los requerimientos

del cliente para llevar a cabo un buen desarrollo del software, que este completo y ejecutarlo a

cabalidad y que en el futuro a dicho software se le puedan realizar actualizaciones y

mantenimientos.
11

5. Sugiera un patrón de diseño que encuentre en una categoría de objetos

cotidianos (por ejemplo, electrónica de consumo, automóviles, aparatos, etc.). Describa el

patron en forma breve.

Para el diseño de objetos cotidianos se puede utilizar el patrón de diseño Builder (creación

o constructor en español). Mediante este patrón pretendemos crear objetos complejos a partir de

un objeto fuente, también denominado producto, centralizando el proceso de creación en un único

punto. Esto nos permite mediante un procedimiento único, crear objetos complejos de distintas

clases únicamente configurando el Builder.

El patrón de diseño de Builder usa el patrón Factory Builder para decidir qué clase concreta

iniciar para construir el tipo de objeto deseado, como veremos a continuación en el diagrama UML:
12

Donde:

Director: Se encarga de construir un objeto utilizando el Constructor (Builder).

Builder: Interfaz abstracta que permite la creación de objetos.

Concrete Builder: Implementación concreta del Builder definida para cada uno de los

tipos. Permite crear el objeto concreto recopilando y creando cada una de las partes que lo

compone.

Product: Objeto que se ha construido tras el proceso definido por el patrón.

Ejemplo - Fabricante del vehículo.

Tomemos el caso de un fabricante de vehículos que, a partir de un conjunto de piezas,

puede construir un automóvil, una bicicleta, una motocicleta o un scooter. En este caso, el

Constructor se convertirá en el Vehículo Constructor. Especifica la interfaz para construir

cualquiera de los vehículos en la lista anterior, utilizando el mismo conjunto de piezas y un

conjunto diferente de reglas para cada tipo de tipo de vehículo. Los Concrete Builders serán los
13

constructores unidos a cada uno de los objetos que se están construyendo. El Producto es, por

supuesto, el vehículo que se está construyendo y el Director es el fabricante y su tienda.

6. ¿Cuándo debe implementarse un diseño modular como software monolítico?

¿Cómo se logra esto? ¿El rendimiento es la única justificación para la implementación de

software monolítico?

El diseño modular se puede implementar como software monolítico en aquellos casos en

los que se necesiten aplicaciones diseñadas para ejecutar una sola función, que no dependa de otras

aplicaciones para funcionar y que sea completamente autónoma, en donde se encuentren todas las

opciones con una interfaz única de usuario.

Se debe primar además del rendimiento del sistema, que este funcione más rápido, sea

eficiente y sea fácil de desarrollar.

7. ¿Cómo relaciona conceptos de acoplamiento y la portabilidad de software?

Dar ejemplos para apoyar su punto de vista.

El acoplamiento es indispensable para poder implementar la portabilidad de software,

debido a que este debe ser mínimo y aceptable, donde se desea que la relación entre módulos sea

mínima, cuando se pasa de una plataforma a otra.

Ejemplos: el sistema operativo Linux que se puede instalar en una computadora de

cualquier marca, considerando que al ser un sistema monolítico tiene bajo acoplamiento por lo que

es portable. Otro ejemplo es el navegador de internet Mozilla Firefox, que se puede ejecutar en

cualquier dispositivo con acceso a internet.


14

8. Describir brevemente cada uno de los cuatro elementos del modelo de diseño.

Los cuatro elementos del diseño son:

 Diseño de datos

 Diseño arquitectónico

 Diseño de interfaces

 Diseño a nivel de componente

El diseño de datos se encarga de modelar las estructuras de datos que se necesitan para

dar soporte al software. Propiamente se creen las bases de datos y las relaciones entre las tablas.

El diseño arquitectónico tiene su origen en las especificaciones y requerimientos

obtenidos en el análisis, se trata de organizar las funciones que el sistema debe incorporar para

cumplir con los requisitos que se han solicitado, asimismo debe mostrar las relaciones entre el

sistema, los subsistemas y las interacciones con otros sistemas

El diseño de la interfaz describe la forma como el sistema interactuar con el usuario más

que la apariencia del sistema.

El diseño a nivel de componente es una descripción procedimental de cada una de las

partes que fueron especificadas en el diseño arquitectónico.

La importancia de esta fase en el proceso de desarrollo se debe a que está en fase puede

modelar producto de calidad.


15

9 – Con el uso de la arquitectura de una casa o edificio como metáfora, establezca

comparaciones con la arquitectura del software. ¿En qué se parecen las disciplinas de la

arquitectura clásica y la del software? ¿En qué difieren?

Si pensamos en arquitectura pensamos en la construcción de algo físico, pero en realidad

va mucho más allá que eso en realidad la mejor forma de describir arquitectura es la manera que

los distintos componentes se integran para formar un todo cohesivo. Si tomamos de ejemplo la

construcción de una casa la forma en que la construcción se adapta a su ambiente y se puede

integrar a las demás casas del barrio o vereda en ese momento la casa cumple con su propósito y

puede satisfacer las necesidades del propietario tiene esa sensación estética de la estructura el

efecto visual y el modo en que combina textura, colores y materiales para poder crear un exterior.

En el interior hay pequeños detalles como el tipo de piso, color de cortinas, etc. Pero ahora

definamos que es la arquitectura de software representa una estructura de los datos y de los

componentes del programa que se requiere para la construcción de un sistema basado en

computadoras como veríamos en la arquitectura clásica necesitamos tener un panorama general en

el caso de la arquitectura clásica veríamos un plano de una casa en el caso de arquitectura de

software englobamos el problema y damos un panorama general después seguiríamos con el diseño

de los datos con la obtenciones de la estructura arquitectónica del sistema se analizaran alternativas

de estilos o patrones arquitectónicos, se elabora la arquitectura de un método de diseño como

modelo final tenemos una arquitectura que incluye datos y la estructura del software y además de

esto también se describen las propiedades y relaciones o interacciones que hay entre los

componentes como vemos las comparaciones entre la arquitectura clásica y la arquitectura de

software son similares pero con un enfoque distinto. Cuando ya hemos terminado revisamos el

producto final para que sean claros, correctos, completos y consistentes con los requerimientos.
16

10. Defina y de ejemplos de:

● Arquitecturas centradas en datos.

● Arquitectura de flujo de datos.

● Arquitecturas orientadas a objetos

● Arquitecturas de capas.

 Arquitecturas centradas en los datos.

La arquitectura centrada en los datos se fundamenta en el almacenamiento de datos al que

accede otros componentes que actualizan añaden y borran dichos componentes, un software cliente

tiene acceso a un almacén central.

Repositorio pasivo: Es decir que el software cliente accede a los datos

independientemente de los cambios de los datos.

Repositorio activo: Envía la información a los clientes cuando los datos de su interés

cambian siendo esto un ente activo.

 Arquitecturas de flujo de datos.


17

Es una arquitectura de computadores que utiliza la reutilización y la modificabilidad

implementan transformaciones en los datos. Al entrar los datos al sistema fluyen a través de los

distintos componentes y cada paso se ejecuta hasta completarse antes que inicie el paso que le

sigue

 Arquitecturas orientadas a objetos.

En esta arquitectura los componentes en un sistema los datos se encapsulan y las

operaciones que se realizan para manipular datos para poder coordinar la comunicación entre los

componentes se hace a través del paso de mensajes, las operaciones son encapsuladas en un tipo

de dato abstracto u objeto, en esta arquitectura los componentes son objetos o instancias de un tipo

de datos abstractos, los objetos interactúan a través de invocaciones y un objeto oculta su

representación a sus clientes


18

 Arquitecturas de capas.

Es un modelo de desarrollo de software que tiene como objetivo la separación o el

desacoplamiento de las partes que conforman un sistema se caracteriza por la

descomposición funcional de la aplicación mejorando la escalabilidad, disponibilidad,

administración y la utilización de recursos cada capa es completamente independiente de

las otras capas.

Por ejemplo, una aplicación web típica se compone: en una capa de presentación

que representa la interfaz de usuario, una capa de negocios es un procesamiento de reglas

de negocios y una capa de datos.


19

11 – Algunos de los estilos arquitectónicos citados en la sección 10 tienen naturaleza

jerárquica, mientras que otros no. Elabore una lista de cada tipo. ¿Cómo se

implementarían los estilos arquitectónicos que no son jerárquicos?

Tipo jerárquica Implementacion

Arquitecturas centradas en No Teniendo una base de datos

datos que acceden con frecuencia

a otros componentes que

pueden actualizar, agregar,

eliminar o modificar la
20

informacion de cierto modo

dentro del almacenamiento

Arquitectura de flujo de No Este tipo de arquitectura se

datos aplica cuando los datos de

entrada se van a transformar

en datos de salida que pasan

por una series de

componentes o filtros que

son conectados por tubos

que transmiten los datos al

siguente filtro.

Arquitectura orientada a No Los componentes de un

objetos sistema incluyen datos y las

operaciones que se deben

aplicar para manipularlos la

comunicación entre los

componentes se da

mediante la transmision de

mensajes.

Arquitectura de capas Si Se definen un numero de

capas diferentes cada una

ejecuta una operación


21

progresivamente, tiene

organización jerarquica.

12 – Los términos estilo arquitectónico, patrón arquitectónico se presentan a

menudo en el análisis de la arquitectura de software. Investigar y describir cada uno de

ellos y como se diferencian de los demás.

Estilo arquitectónico:

Al usar estilos arquitectónicos en software permiten una solución entendible a problemas

definiendo los principios organizativos del sistema estos estilos arquitectónicos pueden describir

una categoría del sistema que contiene un conjunto de componentes que realiza una tarea requerida

por el sistema con un conjunto de conectores que posibilitan la comunicación, la coordinación y

la cooperación entre los componentes

Parones arquitectónicos:

Estos patrones arquitectónicos también son llamados arquetipos ofrecen soluciones a

problemas arquitectónicos de software ya que esta da una descripción de elementos y el tipo de

relación que tiene junto con un conjunto de restricciones sobre como pueden ser usados. Expresar

un esquema de organización estructural que es fundamental para un sistema. Los patrones

arquitectónicos es un concepto que captura elementos fundamentales de una arquitectura de

software por ejemplo hay miles de arquitecturas que pueden implementar el mismo patrón y

también compartir las mismas características.

13. Seleccione una aplicación con la que está familiarizado. Responda:


22

El software escogido es uno de gestión de inventario el cual tiene la información

guardada en una Base de Datos en Oracle ubicada en un servidor.

 Control.

o ¿Cómo se administra el control dentro de la arquitectura?

El control dentro de la aplicación se administra a través de un inicio de sesión

donde se valida el usuario y la contraseña, posteriormente de acuerdo al perfil

que tenga asignado se muestra un determinado menú.

o ¿Existe una jerarquía diferente al de control?

Si además de las opciones de menú, el perfil también establece las operaciones

que se puede hacer dentro de la base de datos. Es decir si puede el usuario puede

consultar, adicionar, modificar, eliminar o imprimir.

 Datos.

o ¿Cómo se comunican los datos entre los componentes?

Los datos antes de pasar de un componente a otro se valida que el dato ingresado

sea del tipo adecuado, es decir si se va llamar una operación de suma, se verifica

que los datos sean numéricos.

También se valida la integridad de la base de datos, durante la captura de los

datos en el caso de adicionar registro se verifica que no exista previamente ese

registro para que la aplicación no genere un error de violación de llave única.

Existe una tabla de códigos que contiene los códigos de marca, modelos,

estados, etc. Con el objetivo de que la información suministrada a la Base de

datos sea unificada.


23

o El flujo de datos es continuo o los objetos de datos pasan al sistema en forma

esporádica?

El flujo de datos es continuo, toda la información se guarda en una base de datos

centralizada. Las validaciones de los datos se dan a medida que van ingresando

al sistema.

14. En ocasiones resulta difícil definir el término componente. Primero dé una definición

general y luego otras más explícitas para el software orientado a objetos y para el

tradicional. Por último, elija tres lenguajes de programación con los que esté familiarizado

e ilustre la manera en la que cada uno define un componente.

 Componente: Es un bloque del software que es modular, desplegable y se puede

sustituir. Estos bloques contiene un conjunto de interfaces que les permite comunicarse

y colaborar con otros componentes, otros sistemas, dispositivos o personas. La

definición de componente puede ser visto desde dos puntos de vista:

 Visión Orientada a Objetos.

Desde la programación orientada a objetos, los componentes son un conjunto de clases

que colaboran entre sí. Cada una de estas clases contiene todos los atributos y

operaciones para su utilización, también se define las interfaces que permiten que se

comunique y colabore con otras clases de diseño.

 Visión Tradicional.

El componente es un elemento funcional del programa que contiene la lógica del

procesamiento, las estructuras de datos internas necesaria para utilizar la lógica del

procesamiento y el interfaz que permite el llamado del componente y el paso de datos.

Existe un componente tradicional llamado modulo que tiene tres funciones:


24

Componente de control que coordina el llamado de los demás componentes del

dominio del problema, componente del dominio del problema que utiliza una función

completa o parcial que se requiere y como componente de infraestructura que es

responsable de las funciones requeridas en el dominio de problema.

 Lenguaje de Programación C#

Lenguaje Visual Basic


25

PHP

15. ¿Por qué son necesarios los componentes de control en el software tradicional y por

qué en general no se requieren en el orientado a objetos?


26

Los componentes de control son necesarios en el software tradicional ya que dentro de la

arquitectura el componente tradicional llamado modulo tres funciones importantes entre

las cuales una de ellas es coordinar el llamado a todos los demás componentes ya que posee

la lógica del procesamiento.

Mientras que en el software orientado a objetos cada clase está diseñada para colaborar con

las demás a través de las clases de análisis que se relacionan con las demás y las clases de

infraestructura que dan servicios de apoyo para el dominio del problema.

16. Investigar los tipos de cohesión y los tipos de acoplamiento.

Cohesión.

Es cuando un componente sólo contiene atributos y operaciones que se relacionan uno con

el otro y con la clase entre si.

 Cohesión Funcional: Este tipo de cohesión se presenta en las operaciones. Es cuando

el componente realiza un cálculo y devuelve un resultado.

 Cohesión de Capa: Está presente en los paquetes, componentes y clases. Es cuando

una capa superior accede a los servicios de otra capa inferior, pero ésta no tiene acceso

a capas superiores.

 Cohesión de Comunicación: Cuando todas las operaciones acceden a los mismos

datos se definen en una clase. Esta clase se centran únicamente en los datos acceden a

ellos y los guardan.

Acoplamiento.
27

Es la medición en el que las clases se conectan una con otra. Entre más interdependientes

son las clases y los componentes el acoplamiento crece. El software debe tener

comunicación interna y externa por lo que el acoplamiento es necesario, se debe trabajar

para que sea lo más bajo posible.

 Acoplamiento de Contenido: Esto sucede cuando un componente modifica datos

internos en otro componente.

 Acoplamiento Común: Esto sucede cuando varios componentes hacen uso de una

variable global.

 Acoplamiento del Control: Esto sucede cuando una operación A() pasa una bandera

de control a otra operación B() y esta dirige el flujo de la lógica en la operación B().

 Acoplamiento de Molde: Esto sucede cuando se declara la claseB como un tipo un

argumento de otra clase (claseA). Dando como resultado que la claseB hace parte de la

claseA.

 Acoplamiento de datos. Se presenta cuando las operaciones pasan cadenas largas de

argumentos de datos. Esto hace que la comunicación entre las clases y los componentes

crezca y sea más compleja.

 Acoplamiento de Rutina de llamada: Esto sucede cuando una operación llama a

otra. Este acoplamiento es el que más se presenta, aumenta la conectividad del sistema.

 Acoplamiento de Tipo de Uso: Esto se presenta cuando un componente A usa un tipo

definido en otro componente B. Se debe tener presente que al cambiar la definición de

tipo también se debe cambiar todo componente que la utilice.

 Acoplamiento de Inclusión o Importación: Esto se presenta cuando el componente

importa un paquete de otro componente.


28

 Acoplamiento Externo: Esto sucede cuando un componente se comunica con

componentes de infraestructura como por ejemplo funciones del sistema operativo.

17. ¿Qué es un componente de web App?

Para contextualizar el tema es importante definir que es un componente: Un componente

es un bloque de construcción de software de cómputo. Con más formalidad, la Especificación

OMG del Lenguaje de Modelado Unificado [OMG03a] define un componente como “una parte

modular, desplegable y sustituible de un sistema, que incluye la implantación y expone un conjunto

de interfaces”. El verdadero significado del término componente difiere en función del punto de

vista del ingeniero de software que lo use.

El modelo de contenido incluye elementos estructurales que dan un punto de vista

importante de los requerimientos del contenido de una web App. Estos elementos estructurales

agrupan los objetos del contenido y todas las clases de análisis, entidades visibles para el usuario

que se crean o manipulan cuando éste interactúa con la web App.

El modelo de contenido debe ser capaz de describir el objeto de contenido Componente.

En muchas circunstancias, para definir los requerimientos para el contenido que debe diseñarse e

implementarse, es suficiente una lista sencilla de los objetos de contenido, junto con la descripción

breve de cada uno.

Descripción de mercadotecnia
Número de parte Fotografía
omponente

Nombre de la parte Descripción técnica

Componente Tipo de parte Esquema

Descripción Video
Precio
Precio al mayoreo

Precio al menudeo
29

En el ejemplo anterior se representa una jerarquía de información que se utiliza para

describir un componente, para este caso una aplicación de seguridad para una casa segura.

Modelo de la interacción para wasaps. La gran mayoría de wasaps permiten una

“conversación” entre un usuario final y funcionalidad, contenido y comportamiento de la

aplicación. Esta conversación se describe con el uso de un modelo de interacción que se compone

de uno o más de los elementos siguientes: 1) casos de uso, 2) diagramas de secuencia, 3) diagramas

de estado16 y 4) prototipos de la interfaz de usuario.

El formato de la interfaz de usuario, el contenido que presenta, los mecanismos de

interacción que implementa y la estética general de las conexiones entre el usuario y la web App

tienen mucho que ver con la satisfacción de éste y con el éxito conjunto del software. Aunque se

afirme que la creación de un prototipo de interfaz de usuario es una actividad de diseño, es una

buena idea llevarla a cabo durante la creación del modelo de análisis.

Modelo funcional para los wasaps: Muchos wasaps proporcionan una amplia variedad de

funciones de computación y manipulación que se asocian directamente con el contenido (porque

lo utilizan o porque lo producen) y es frecuente que sean un objetivo importante de la interacción

entre el usuario y la web App. Por esta razón, deben analizarse los requerimientos funcionales y

modelarlos cuando sea necesario. El modelo funcional enfrenta dos elementos de procesamiento

de la web App, cada uno de los cuales representa un nivel distinto de abstracción del

procedimiento: 1) funciones observables por los usuarios que entrega la web App a éstos y 2) las

operaciones contenidas en las clases de análisis que implementan comportamientos asociados con

la clase.
30

Modelos de configuración para las wasaps: En ciertos casos, el modelo de configuración

no es sino una lista de atributos del lado del servidor y del lado del cliente. Sin embargo, para

wasaps más complejas, son varias las dificultades de configuración (por ejemplo, distribuir la carga

entre servidores múltiples, arquitecturas caché, bases de datos remotas, distintos servidores que

atienden a varios objetos en la misma página web, etc.) que afectan el análisis y diseño. El

diagrama de despliegue UML se utiliza en situaciones en las que deben considerarse arquitecturas

de configuración compleja.

Las aplicaciones web (web app) se ejecutan en un navegador web, lo que hacen que sean

compatibles con la gran mayoría de los dispositivos existentes, y sólo necesitan ser programadas

una vez. Por lo que se las consideran aplicaciones híbridas. Al mostrarse en un navegador web, el

código que se utiliza es el mismo que el de las páginas web (HTML, JavaScript y CSS).

Una aplicación web no es una página web, mientras la aplicación web ofrece una serie

de servicios y es totalmente interactiva, las páginas webs son, en general, un modo informativo y

estático de mostrar una información concreta.

No necesitan estar instaladas en el terminal, a excepción de algunas funciones básicas en

algunos casos, ya que se ejecutan desde un servidor. Esta cualidad hace que necesitemos una

conexión a internet para poder utilizarlas, aunque puede haber alguna función que no lo requiera.

Desde el punto de vista del almacenamiento, nos ahorran mucho espacio en el terminal.

18. Todos los lenguajes modernos de programación implementan las construcciones

de programación estructurada. Dé ejemplos de tres lenguajes de programación.


31

Es posible hacer la programación estructurada en cualquier lenguaje de programación,

aunque es preferible usar algo como un lenguaje de programación procedimental. Algunos de los

lenguajes utilizados inicialmente para programación estructurada incluyen: ALGOL, Pascal, PL/I

y Ada

19. Seleccione un componente codificado pequeño y represéntelo con 1) un diagrama

de actividades, 2) un diagrama de flujo, 3) una tabla de decisión y 4) LDP.

Continuamos con el ejemplo de la aplicación de Casa Segura

Diagrama de actividades:

Efectuar reuniones

Elaborar lista de
funciones y clases

Hacer lista de
restricciones.

Usar el DFC para Dar prioridad a los


asignar prioridad a los requerimientos de
requerimientos manera informal

Crear casos de
uso
32

Diagrama de flujo para la función de seguridad de Casa Segura:

Panel de Pantalla del


Comandos y datos Despliegue de panel de
Control
control
usuario Información
Tipo de alarma
Software de Alarma
Casa Segura
Total del
Sensores Línea de teléfono
Estado de sensores número telefónico

Tabla de decisión:

En muchas aplicaciones de software, se requiere un módulo para evaluar una combinación

compleja de combinaciones de condiciones y seleccionar acciones apropiadas con base en éstas.

Las tablas de decisión [Hur83] proporcionan una notación que traduce las acciones y condiciones

(descritas en la narración del procesamiento o caso de uso) a una forma tabular.

En muchas aplicaciones de software, se requiere un módulo para evaluar una combinación

compleja de combinaciones de condiciones y seleccionar acciones apropiadas con base en éstas.

Las tablas de decisión [Hur83] proporcionan una notación que traduce las acciones y condiciones

(descritas en la narración del procesamiento o caso de uso) a una forma tabular.

Condiciones 1 2 3 4 5 6

Cliente Regular T T

Cliente planteado T T

Cliente dorado T T

Descuento especial F T F T F T
33

Acciones
Sin descuento X

Aplicar 8% descuento X X

Aplicar un porcentaje adicional de X X X


descuento

20. ¿Por qué es importante la “lotificación” en el proceso de revisión del diseño en el

nivel de componentes?

El diseño en el nivel de los componentes del software es el equivalente de los planos (y

especificaciones) detallados de cada habitación de la casa. Estos dibujos ilustran el cableado y la

plomería de cada cuarto, la ubicación de cajas eléctricas e interruptores, grifos, coladeras,

regaderas, tinas, drenajes, gabinetes y closets. También describen el tipo de piso que se va a usar,

las molduras que se van a aplicar y todos los detalles asociados con una habitación. El diseño de

componentes para el software describe por completo los detalles internos de cada componente.

Para lograrlo, este diseño define estructuras de datos para todos los objetos de datos locales y

detalles algorítmicos para todo el procesamiento que tiene lugar dentro de un componente, así

como la interfaz que permite el acceso a todas las operaciones de los componentes

(comportamientos). En el contexto de la ingeniería de software orientada a objeto, un componente

se representa en forma de diagrama UML


34

CONCLUSIONES.

En esta unidad 1 – Paso 2, se abordaron y se dieron las respectivas soluciones a 20

preguntas sobre la ingeniería y gestión de requisitos y todo lo referente a la arquitectura,

funcionalidad, desarrollo y diseño de un sistema de información o software de calidad. Entonces

llagamos a la conclusión que son temáticas que hay que tenerlas muy en cuenta para futuras

actividades venideras en nuestra formación como futuros profesionales en cada una de nuestras

ramas.
35

REFERENCIAS BIBLIOGRÁFICAS.

Programacion.net. (2018). Patrones de Diseño (III): Patrones de Creación – Builder.


Programacion.net. Obtenido de:
https://programacion.net/articulo/patrones_de_diseno_iii_patrones_de_creacion_builder_
1002

Oodesing. (NA). Bulider Pattern. Oodesing.com. obtenido de:


https://www.oodesign.com/builder-pattern.html#text-converting-example

Sistemasumma. (14 de marzo de 2011). Elementos del diseño. Sistemsumma.com. Obtenido de:
https://sistemasumma.com/2011/03/14/elementos-del-diseno/

Bovet D., José. (20 de mayo de 2015). Principios diseño del software. SlideShare. Obtenido de:
https://es.slideshare.net/josebovet/idss5501-principios-diseno-del-software

Lind P, Alm M (2006). Arquitectura centrada en la base de datos. Copro.com.ar. Obtenido de


https://copro.com.ar/Arquitectura_centrada_en_la_base_de_datos.html

Avellano. (N.A). Métodos de desarrollo de software Desarrollo orientados a objetos.


Avellano.usal.es. Obtenido de http://avellano.usal.es/~mmoreno/ASTema3.pdf

Martin, J. (N.A). Que es una web App – Diseño y programación de aplicaciones Web.
www.jsolucioncreativa.com. Obtenido de:
https://www.jsolucioncreativa.com/diseno/programacion-de-aplicaciones-web/

Pressman, R. S. (2010). Ingeniería del Software, un enfoque práctico. México D.F, México: Mc
Graw Hill.

Das könnte Ihnen auch gefallen