Beruflich Dokumente
Kultur Dokumente
DISEÑO DE SISTEMAS.
Presentado a:
Moisés de Jesús Rodríguez
Entregado por:
Grupo: 301309_45
Octubre de 2018.
El Bordo Cauca.
2
INTRODUCCIÓN.
Por medio de esta actividad se pretende lograr que nosotros como estudiantes de este curso
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
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
METAS.
externo.
comportamiento.
Evaluar los conceptos que tiene el cliente del sistema para establecer su viabilidad.
instancia los requerimientos que resultan, desde el punto de vista del cliente para saber que
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
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
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
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.
Manejando los problemas: La primera cosa con la que uno se enfrenta cuando
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
El modelo define una perspectiva abstracta del problema. Esto implica que el modelo se
muestra que por medio de la abstracción tu creas una entidad bien definida que puede ser
elementos. Por ejemplo, cada empleado administrado tiene un nombre, fecha de nacimiento y
número social.
8
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.
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
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
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:
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
recopilan y analizan requisitos para definir la arquitectura que a este se le va otorgar. Al diseñar
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
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
mantenimientos.
11
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
punto. Esto nos permite mediante un procedimiento único, crear objetos complejos de distintas
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:
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.
puede construir un automóvil, una bicicleta, una motocicleta o un scooter. En este caso, el
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
software monolítico?
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
Se debe primar además del rendimiento del sistema, que este funcione más rápido, sea
debido a que este debe ser mínimo y aceptable, donde se desea que la relación entre módulos sea
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
8. Describir brevemente cada uno de los cuatro elementos del modelo de diseño.
Diseño de datos
Diseño arquitectónico
Diseño de interfaces
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.
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
El diseño de la interfaz describe la forma como el sistema interactuar con el usuario más
La importancia de esta fase en el proceso de desarrollo se debe a que está en fase puede
comparaciones con la arquitectura del software. ¿En qué se parecen las disciplinas de la
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
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
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
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
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
● Arquitecturas de capas.
accede otros componentes que actualizan añaden y borran dichos componentes, un software cliente
Repositorio activo: Envía la información a los clientes cuando los datos de su interés
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
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
Arquitecturas de capas.
Por ejemplo, una aplicación web típica se compone: en una capa de presentación
jerárquica, mientras que otros no. Elabore una lista de cada tipo. ¿Cómo se
eliminar o modificar la
20
siguente filtro.
componentes se da
mediante la transmision de
mensajes.
progresivamente, tiene
organización jerarquica.
Estilo arquitectónico:
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
Parones arquitectónicos:
relación que tiene junto con un conjunto de restricciones sobre como pueden ser usados. Expresar
software por ejemplo hay miles de arquitecturas que pueden implementar el mismo patrón y
Control.
que se puede hacer dentro de la base de datos. Es decir si puede el usuario puede
Datos.
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
Existe una tabla de códigos que contiene los códigos de marca, modelos,
esporádica?
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
sustituir. Estos bloques contiene un conjunto de interfaces que les permite comunicarse
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
Visión Tradicional.
procesamiento, las estructuras de datos internas necesaria para utilizar la lógica del
dominio del problema, componente del dominio del problema que utiliza una función
Lenguaje de Programación C#
PHP
15. ¿Por qué son necesarios los componentes de control en el software tradicional y por
las cuales una de ellas es coordinar el llamado a todos los demás componentes ya que posee
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
Cohesión.
Es cuando un componente sólo contiene atributos y operaciones que se relacionan uno con
una capa superior accede a los servicios de otra capa inferior, pero ésta no tiene acceso
a capas superiores.
datos se definen en una clase. Esta clase se centran únicamente en los datos acceden a
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
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().
argumento de otra clase (claseA). Dando como resultado que la claseB hace parte de la
claseA.
argumentos de datos. Esto hace que la comunicación entre las clases y los componentes
otra. Este acoplamiento es el que más se presenta, aumenta la conectividad del sistema.
OMG del Lenguaje de Modelado Unificado [OMG03a] define un componente como “una parte
de interfaces”. El verdadero significado del término componente difiere en función del punto de
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
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
Descripción de mercadotecnia
Número de parte Fotografía
omponente
Descripción Video
Precio
Precio al mayoreo
Precio al menudeo
29
describir un componente, para este caso una aplicación de seguridad para una casa segura.
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
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
Modelo funcional para los wasaps: Muchos wasaps proporcionan una amplia variedad de
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
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
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.
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
Diagrama de actividades:
Efectuar reuniones
Elaborar lista de
funciones y clases
Hacer lista de
restricciones.
Crear casos de
uso
32
Tabla de decisión:
Las tablas de decisión [Hur83] proporcionan una notación que traduce las acciones y condiciones
Las tablas de decisión [Hur83] proporcionan una notación que traduce las acciones y condiciones
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
nivel de componentes?
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
CONCLUSIONES.
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.
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
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.