2.CW 301309
2.CW 301309
2.CW 301309
DISEÑO DE SISTEMAS
Luis Moreno
TUTOR:
MOISES DE JESUS RODRIGUEZ BOLAÑO
1. INTRODUCCIÓN........................................................................................................................4
2. OBJETIVOS................................................................................................................................5
3. DESARROLLO...........................................................................................................................6
3.1. Cuando se “escribe” un programa, ¿se diseña software? ¿En qué difieren el
diseño de software y la codificación?.........................................................................................6
3.8. Describir brevemente cada uno de los cuatro elementos del modelo de diseño...11
3.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?.................................................12
3.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?........................................31
4. CONCLUSIONES.....................................................................................................................35
5. REFERENCIAS........................................................................................................................36
1. INTRODUCCIÓN
Los sistemas informáticos hoy por hoy son una de las bases fundamentales del
desarrollo de las sociedades, pues al cohesionarse a otros aspectos de alto impacto para
un adecuado avance y desarrollo colectivo, como son la educación, la salud, los servicios
públicos, entre otros, se convierten en una herramienta de apoyo que ayudan a simplificar
estándares de calidad.
informático.
3. DESARROLLO
este permite modelar el sistema o producto que se va a construir, también medir la calidad
alfabeto, para dar instrucciones a la computadora, para que ella realice las actividades de
especificaciones solicitadas por un cliente, además ver sus funciones y como se muestran
en pantalla.
Funcionalidad. Las funciones del software son aquellas que buscan satisfacer las
grupo de usuarios.
modificaciones específicas.
otro.
usado para comunicar significado en una sola frase, es decir, la abstracción consiste en
se usa la abstracción hoja de cálculo, se supone que se comprende lo que es una hoja de
cálculo, la estructura general de contenido que presenta y las funciones comunes que se
aplican a ella.
En la práctica de la ingeniería de software, se usan muchos niveles diferentes de
abstracción, cada uno de los cuales imparte o implica significado que debe comunicarse,
por lo tanto, existen diferentes tipos de abstracción, como son: (programación, 2018)
objeto de datos.
Ejemplos de abstracción:
El objeto sería el pájaro, y sus características, por ejemplo, serian: pico, alas, pluma
y patas.
retroceder etc.
Caso 3: En este caso podemos considerar una Persona como un objeto que tiene
propiedades (como): nombre, altura, peso, color de pelo, color de ojos, etcétera
parar, etc.
conjunto de desarrolladores del software compartir una misma línea de trabajo y cubrir
diseño de más alto nivel de la estructura de un sistema donde se elabora una planificación
a los componentes del software, sus propiedades externas visibles y las relaciones entre
ellos. Así mismo es la forma en que queremos predecir los comportamientos en las
acciones que deseamos implementar al desarrollar un software. Por lo que se dice que la
arquitectura de Software nos permite analizar la efectividad del diseño para cumplir los
mismo resalta las primeras decisiones que tendrán un efecto profundo en todo el trabajo
de ingeniería de software.
cual nos provee una interfaz que delega la creación de un conjunto de objetos
19 marzo 2013)
aplicación se diseña para cumplir una sola función, que sea autónoma, independiente de
única. Como justificación para implementar software monolítico además del beneficio es
que funciona más rápido, es fácil de desarrollar y es eficiente, ya que se producen pocos
cambios en el contexto.
Para que el software sea portable es decir que el sistema sea fácil de implementar,
cuando pasa de una plataforma a otra; tiene que tener una ensambladura mínimo
aceptable donde la relación entre módulos sea mínima. Ejemplos: un sistema operativo
como Linux que tiene bajo acoplamiento al ser un sistema monolítico por lo que es
navegador de internet Google Chrome, que se puede ejecutar en cualquier dispositivo con
acceso a internet.
3.8. Describir brevemente cada uno de los cuatro elementos del modelo de
diseño.
necesitan para dar soporte al software. Propiamente se crean las bases de datos y las
las relaciones entre el sistema, los subsistemas y las interacciones con otros sistemas.
diseño arquitectónico.
establezca comparaciones con la arquitectura del software. ¿En qué se parecen las
algo en específico muy relacionado: las clasificaciones. El hecho es que no es solo como
una cuestión clasificatoria, sino que cada forma arquitectónica tiene gran relación y se
docenas más. Desde hace más de una década esas cualificaciones arquitectónicas se
diseño que se utiliza en las dos arquitecturas, la diferencia de cada uno de ellas es la que
se plantea por medio de diseños; Se puede concluir que la Arquitectura de Software es:
gestionar los datos de ese almacén. El software cliente tiene acceso a un almacén central,
Software Software
Cliente Cliente
Software Software
Cliente Cliente
Almacenamiento de datos
(repositorios) Software
Software Cliente
Software Software
Cliente Cliente
Figura.1
denominados “filtros” conectados entre sí por “tuberías” como vemos la figura 10.1, que
transmiten los datos desde un componente al siguiente. Cada filtro trabaja de manera
Se diseñan de tal modo que esperan que un conjunto de datos en un determinado formato
filtros, conectados por tubos que transmiten datos de un componente al siguiente. Cada
abajo del flujo; se diseña para esperar una entrada de datos de cierta forma y produce
datos de salida (al filtro siguiente) en una forma especificada. Sin embargo, el filtro no
requiere ningún conocimiento de los trabajos que realizan los filtros vecinos. Si el flujo de
datos degenera en una sola línea de transformaciones, se denomina lote secuencial. Esta
estructura acepta un lote de datos y luego aplica una serie de componentes secuenciales
Los componentes son objetos, las invocaciones de métodos son los conectores
orientadas a objetos
Ejemplo:
Proceso
Place orden
Capacidades Aplicación
Entidades
Bus
Capacidades
Aplicación
capacidades
Entidades
aplicación
Entidades
Figura 3
En la interna, los componentes realizan la interfaz con el sistema operativo. Las capas
estilos arquitectónicos tan sólo son un pequeño subconjunto de los que están disponibles.
Una vez que la ingeniería de requerimientos revela las características y restricciones del
sistema que se va a elaborar, se elige el estilo arquitectónico o la combinación de
en capas (apropiado para la mayoría de los sistemas) con una arquitectura centrada en
datos.
Arquitecturas de capas.
Capa núcleo
Componente
s
Capa de utilerías
Placa de aplicación
Placa de interfaz
de usuario
Figura 4
Estos estilos arquitectónicos tan sólo son un pequeño subconjunto de los que están
disponibles.
en capas (apropiado para la mayoría de los sistemas) con una arquitectura centrada en
datos.
Ventajas: Soporta la mejora, los cambios solo afectan a las capas vecinas. Se
pueden cambiar las implementaciones respetando las interfaces con las capas
adyacentes.
de control.
encapsuladas en un tipo de dato abstracto u objeto. Por ejemplo, las tareas que
cooperativa para dar soporte a uno o más procesos de negocios. En este modelo, una
satisface las necesidades de los procesos de negocios o procesa su soporte. Por ejemplo,
una aplicación web típica está compuesta por una capa de presentación (funcionalidad
naturaleza jerárquica, mientras que otros no. Elabore una lista de cada tipo. ¿Cómo
gestionar los datos de ese almacén. El software cliente tiene acceso a un almacén central,
envía notificaciones al software cliente cuando cambian datos de interés para el cliente.
preocuparse por otros clientes, además es posible pasar datos entre clientes empleando
el mecanismo del pizarrón. Los componentes clientes ejecutan los procesos de manera
independiente.
de control.
el paradigma computacional por excelencia desde los años 90. Es una forma de flujo de
datos restringido. Este paradigma introdujo la idea de ventana de ejecución, que sigue el
datos.
Desventajas: La complejidad lógica de mantener el rastro de las dependencias de
ejecución de 32 a 200 instrucciones, mucho menor que las utilizadas en las máquinas
función definida. Los datos son pasados como parámetros y el manejador principal
abstracción de procedimientos/funciones/métodos.
cambios en una subrutina implican cambios en las subrutinas que hacen la invocación.
datos y las operaciones que se deben realizar para manipular los datos. La comunicación
otros objetos.
conjunto de rutinas de acceso con los datos que manipulan permite a los diseñadores
procedimiento) debe conocer la identidad del otro objeto. Luego, cuando la identidad de
un objeto cambie es necesario modificar todas las invocaciones a tal objeto. Se pueden
presentar efectos laterales: si los objetos A y C usan al objeto B, entonces los efectos de
usuario. En la capa interna, los componentes realizan operaciones de interfaz del sistema.
aplicaciones.
capa superior y actúa como cliente de la capa inferior. Los componentes se organizan en
capas. Los conectores son definidos por los protocolos que determinan cómo interactúan
las capas.
alto y bajo nivel, donde los elementos de alto nivel dependen de los de bajo nivel.
puede integrar los componentes que forman el sistema; y modelos semánticos que
permiten al diseñador entender las propiedades globales de un sistema para analizar las
interactúa con los demás estilos que tiene un sistema para lograr funcionar correctamente
datos, para conectar usuarios de éstos o para presentar datos en la frontera de una
infraestructura.
texto o multimedios.
Dispositivos: Sistemas que interactúan con el mundo físico a fin de brindar algún
Servicio puntual a un individuo.
grupos.
servicios avanzados.
espaciales.
Utilidades: Sistemas que interactúan con otro software para brindar algún servicio
Registros Públicos SII que manejan una gran parte de Cámaras de Comercio del País
para llevar la información de los registros públicos como: registro mercantil, registro de
Este sistema usa una Arquitectura centrada en los datos y es de tipo cliente servidor,
por lo tanto consta de una base de datos centralizada y una aplicación web que permite a
La base de datos cuenta con una interfaz que define cómo las aplicaciones de
usuario deben interactuar con dichos datos, a su vez la aplicación web implementa varios
Parametrización
Radicación y recaudo
Auditoría y control
mencionan los más relevantes. Es importante mencionar que cada uno de estos módulos
está dividido en otros módulos que cumplen funciones más específicas, por ejemplo, el
administradores de la aplicación poder gestionar los usuarios, sus perfiles y roles, también
costos, aspectos que por ley estas entidades deben permitir realizar a quienes están
interesados en registrar alguna empresa, entre otros módulos más específicos. De esta
contempla.
Datos. ¿Cómo se comunican los datos entre los componentes? ¿El flujo de datos es
Los datos están centralizados en una base de datos, por lo tanto cada módulo
accede a estos datos, a través de estos módulos el usuario realiza acciones sobre dichos
datos que de manera posterior se verán reflejados en otros módulos al ser accedidos por
estos, así que en la medida en que se van realizando acciones sobre los datos estos van
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.
sistemas, dispositivos, personas, etc.) que existen fuera de las fronteras del
objetos, un componente contiene un conjunto de clases que colaboran. Cada clase dentro
de un componente se elabora por completo para que incluya todos los atributos y
también deben definirse todas las interfaces que permiten que las clases se comuniquen y
colaboren con otras clases de diseño. Para lograr esto, se comienza con el modelo de
con el dominio del problema) y clases de infraestructura (para los componentes que dan
estructuras de datos internas que se requieren para implantar la lógica del procesamiento
y una interfaz que permite la invocación del componente y el paso de los datos. Dentro de
módulo, que tiene tres funciones importantes: 1) como componente de control que
coordina la invocación de todos los demás componentes del dominio del problema, 2)
como componente del dominio del problema que implanta una función completa o parcial
las funciones que dan apoyo al procesamiento requerido en el dominio del problema.
(Pressman, s.f.).
programación:
C#
//Espacio de trabajo
namespace EspacioTrabajo
{
//Definición de Clase
public class NombreClase
{
//Definición de propiedades
Public String variable
//Definición de métodos
Public nombreMetodo()
{
//Acciones del método
}
}
PHP
//Definición de clase
class NombreClase {
// Declaración de propiedades
public $variable;
// Declaración de un método
public function nombreMetodo(){
//Acciones del método
}
}
JAVA
//Definición de clase
class NombreClase {
// Declaración de propiedades
public variable;
// Declaración de un método
public function nombreMetodo(){
//Acciones del método
}
}
3.15. ¿Por qué son necesarios los componentes de control en el software
de tipo funcional o que dan respuesta al dominio del problema, esto es porque en el
software tradicional se presenta una alta segregación respecto de las funcionalidades del
a objetos son los mismos componentes, que en sus propias clases, contemplan los
operaciones que se relacionan de cerca uno con el otro y con la clase o componente en
sí. Lethbridge y Laganiére [Let01] definen varios tipos diferentes de cohesión. (Pressman,
s.f.).
Cohesión Funcional: lo tienen sobre todo las operaciones; este nivel de cohesión
(Pressman).
Cohesión de Capa: lo tienen los paquetes, componentes y clases; este tipo de
cohesión ocurre cuando una capa más alta accede a los servicios de otra más baja, pero
datos se definen dentro de una clase. En general, tales clases se centran únicamente en
conectan una con otra. Conforme las clases (y componentes) se hacen más
componente es mantener el acoplamiento tan bajo como sea posible. (Pressman, s.f.).
de una variable global. Aunque a veces esto es necesario (por ejemplo, para establecer
Acoplamiento del Control: tiene lugar si la operación A() invoca a la operación B()
bandera de control que pasa A. Si esto se pasa por alto ocurrirá un error. (Pressman, s.f.).
para un argumento de una operación de ClaseA. Como ClaseB ahora forma parte de la
s.f.).
otra. Este nivel de acoplamiento es común y con frecuencia muy necesario. Sin embargo,
definidos en el componente B (esto ocurre siempre que “una clase declara una variable de
instancia o una variable local como si tuviera otra clase para su tipo” [Let01]). Si cambia la
definición de tipo, también debe cambiar todo componente que la utilice. (Pressman, s.f.).
programación.
LDP.
Sols Rodriguez – Candela, A. (2014). Systems engineering: theory and practice. Pontifical
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?
ppg=136&docID=11002046&tm=1499805437434
UNAD (2017). Requirements Engineering and management. [Video file]. Recuperado de:
http://hdl.handle.net/10596/12732
Gilb, T., & Brodie, L. (2005). Competitive Engineering: A Handbook For Systems Engineering,
url=http://search.ebscohost.com/login.aspx?
direct=true&db=nlebk&AN=166420&lang=es&site=ehost-live&ebv=EB&ppid=pp_35
Saltzer, J. H., & Kaashoek, F. (2009). Principles of Computer System Design: An Introduction.
http://bibliotecavirtual.unad.edu.co:2139/eds/ebookviewer/ebook/bmxlYmtfXzMxOTY1M19f
QU41?sid=6ab8cd0e-1d96-44bb-a88d-
9e2295ac0ea7@sessionmgr104&vid=1&format=EB&rid=3
Pressman, R. (s.f.). Ingeniería del software, un enfoque práctico. 7ed. McGrawHill. Recuperado
de: http://cotana.informatica.edu.bo/downloads/ld-
Ingenieria.de.software.enfoque.practico.7ed.Pressman.PDF