Documentos de Académico
Documentos de Profesional
Documentos de Cultura
→ INTEGRANTES:
o Martin Marcelo Félix-Diaz Mija
o Roberto Alejandro Cedano Lucar
o Jhon Kerlyn Torrejon Vargas
→ CURSO: Arquitectura de software
LIMA- PERÚ
Índice
I. Marco teórico
II. Arquitectura
a. Diagramas
b. Detalle de artefactos y tecnología
III. Selección de herramienta de software (usa la arquitectura
seleccionada).
IV. Propuesta de mejoras
V. Conclusiones y recomendaciones
VI. Bibliografía
I. Marco teórico
A. Antecedentes:
Una arquitectura de software se selecciona y diseña con base en objetivos
(requerimientos) y restricciones. Los objetivos son aquellos prefijados para el
sistema de información, pero no solamente los de tipo funcional, también
otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción
con otros sistemas de información. Las restricciones son aquellas
limitaciones derivadas de las tecnologías disponibles para implementar
sistemas de información”. El origen del estudio se remonta al año 1960.
En 1968 “Edsger Dijkstra, propuso que se estableciera una estructuración
correcta de los sistemas de software antes de lanzarse a programar,
escribiendo código de cualquier manera”.
En 1972, Parnas publicó un ensayo en el cual discernir sobre la forma en que
la modularidad en el diseño de sistemas podría mejorar la flexibilidad y el
control conceptual del sistema, acortando los tiempos de desarrollo. De esta
manera se introduce el concepto de ocultamiento de información (information
hiding), siendo unos de los principios del diseño de software aún en la
actualidad.
En 1975, Brooks, el diseñador del sistema operativo OS/360 y Premio Turing
2000, comenzó a utilizar el concepto de arquitectura del sistema para
designar “la especificación completa y detallada de la interfaz de usuario”
aludiendo desde ese momento, que el arquitecto es un agente del usuario
(Jr. 1975). Por otro lado, también distinguía entre arquitectura e
implementación; mientras aquella decía qué hacer, la implementación se
ocupa de cómo.
La gestión de sistemas complejos es uno de los retos que debe afrontar la
Ingeniería del Software actual. Además, el mundo real cambia y los sistemas
deben adaptarse a él para seguir siendo útiles. Por esta razón, los ingenieros
de software deben encontrar técnicas y herramientas que le permitan adaptar
los sistemas de manera sencilla. Sin embargo, los métodos tradicionales
(métodos estructurados o paradigmas orientados a objetos) sólo permiten
una reconfiguración y adaptación parcial de los mismos.
Desde entonces, la POA y otras técnicas, centradas en la modularización del
código transversal, se agruparon bajo el nombre de Separación Avanzada de
Intereses (o en su denominación inglesa Advanced Separation of Concerns).
La idea es extraer el código relativo a los crosscutting concerns (concerns –
intereses o propiedades- que capturan requisitos y cruzan varios módulos del
sistema AOSD) que está disperso a lo largo del mismo, en módulos
independientes. Esta separación evita el código enmarañado (tangled) y
permite la reutilización de los aspectos.
En diversos trabajos de investigación, los aspectos se consideran como una
parte importante del proceso de desarrollo de los sistemas complejos y
proponen técnicas para extraerlos de una manera efectiva (como
Composition Filters [BeAk01], AspectJ [Kic+01], Adaptive Programming
[LicOr Ov01], Hyper J [OsTa 00], etc.). Muchas de estas aproximaciones
orientadas a aspectos (OA) se centran en la especificación y extracción de
aspectos durante el diseño detallado o en el nivel de implementación,
prestando menos atención al impacto de los aspectos en las primeras fases
del ciclo de vida. En 2002 se popularizó el nombre de “Desarrollo de
Software Orientado a Aspecto” (DSOA) para referirse a las técnicas y
tecnologías de modularización de los crosscutting concerns a lo largo del
ciclo de vida.
Por otra parte, los nuevos métodos de la ingeniería del software consideran a
la arquitectura del software como una parte importante de la etapa de diseño:
la arquitectura del software es una actividad que ayuda a los desarrolladores
a controlar la complejidad de los sistemas y a definir sus estructuras de modo
que su mantenimiento y evolución sean sencillos. Esto es así porque durante
esta etapa, se define la estructura de un sistema como un conjunto de
componentes que describen la funcionalidad del sistema a alto nivel y se
conectan a través de un conjunto de conectores arquitectónicos.
Durante la arquitectura del software se lleva a cabo la definición estructural
del sistema; la conveniencia de definir un diseño arquitectónico orientado a
aspectos surge cuando se observa que los crosscutting concerns atraviesan
también los componentes arquitectónicos de modo que el diseño final es
complejo. Además, considerar los aspectos en esta fase facilita la gestión de
la evolución del sistema. Esto es así porque durante el diseño arquitectónico
los aspectos se pueden considerar como artefactos software. En este
sentido, diversas propuestas consideran los aspectos arquitectónicos como
artefactos de distinto tipo: componentes, conectores, slices, vistas… Una
consideración a tener en cuenta en el desarrollo de las arquitecturas del
software OA es cómo expresarlas. Han habido varias propuestas para
desarrollar sistemas OA a lo largo del ciclo de vida y en particular durante la
fase del diseño arquitectónico, pero sólo algunas de ellas proporcionan un
soporte lingüístico. Es necesario dotar a los sistemas OA de un soporte
formal, igual que se hace en las propuestas de desarrollo de sistemas
convencionales, particularmente durante su definición estructural. Por tanto,
igual que los sistemas ordinarios se describen en esta etapa mediante
lenguajes de descripción arquitectónica (LDA), los sistemas OA deberían
expresarse también mediante LDA adecuados. Sin embargo, los LDA
convencionales no permiten al diseñador representar adecuadamente los
sistemas orientados a aspectos.
B. Bases Teóricas:
¿Qué es esta arquitectura?
El WorldShip es un software de envíos a escala global compuesta de
funciones completas y basado en windows; es decir, que está disponible en
todos los idiomas alrededor del mundo. Esto puede agilizar los procesos
comerciales conectándolo a sus sistemas empresariales. Mediante las
integraciones ODBC y XML, WorldShip puede importar información de sus
sistemas empresariales y bases de datos críticos, y exportar los detalles del
envío.
La aplicación de WorldShip le puede ofrece diversas opciones como obtener
la información requerida para generar etiquetas de envío. También que
puede importar un directorio y administrar direcciones para simplificar el
ingreso de detalles de direcciones de destinatarios. Si establece conexión
con un archivo de datos, puede extraer información completa de archivos de
cada pedido independiente o de un lote. Incluso puede automatizar la
generación de etiquetas al indicar a WorldShip la frecuencia para buscar
nuevos envíos.
Esto se puede aplicar para aquellos que necesitan envíar más de 10
paquetes al día, necesitan acceso al paquete completo de servicios de UPS ®
o requieren funciones específicas de software, como los perfiles de informes
y envío integrados.
C. Definiciones:
Para llegar a la arquitectura de software ,se tuvieron que basar en otros
conceptos y temas para que se tuviera una perfecta idea del tema y lograr su
desarrollo como son los siguientes:
● Ingeniería de software
La ingeniería de software es el establecimiento y uso de principios
fundamentales de la ingeniería con objeto de desarrollar en forma económica
software que sea confiable y que trabaje con eficiencia en máquinas
reales.La meta de la ingeniería de software moderna es “desarrollar
metodologías que se basen en el concepto de evolución; es decir, el
concepto de que los sistemas de software cambian continuamente, que los
nuevos sistemas de software se desarrollan a partir de los antiguos y que
todo debe operar entre sí y cooperar con cada uno de los demás”.
● Microservicios
Como lo definen James Lewis y Martin Fowler en su artículo: Microservices,
“es una forma particular de diseño de aplicaciones de software como suites
de servicios desplegadas independientemente”.
Patrón básico de arquitectura de Microservicios
La arquitectura de Microservicios es un enfoque de desarrollo de una
aplicación como un conjunto de servicios más pequeños, cada uno se
ejecuta en su propio proceso y se exponen, normalmente, a través de
protocolos HTTP mediante APIs REST. Estos servicios están construidos
alrededor de capacidades o funcionalidades de negocio y con independencia
de despliegue a través de un sistema de automatización. Además, pueden
estar escritos en diferentes lenguajes de programación y utilizar diferentes
tecnologías de almacenamiento de base de datos.
El envío en ups.com ofrece una experiencia en línea intuitiva para los clientes que tienen
poco volumen o que solo necesitan hacer envíos ocasionales. Nuestra aplicación web fácil
de usar le permite crear etiquetas de envío, programar una recolección, enviar
notificaciones por correo electrónico y pagar en línea desde cualquier lugar con conexión a
Internet. Sencillo, rápido y fácil.
WorldShip está diseñado para aquellos que envían más de 10 paquetes al día, necesitan
acceso al paquete completo de servicios de UPS® o requieren funciones específicas de
software, como los perfiles de informes y envío integrados. WorldShip también ofrece
funciones de automatización e integración, envíos sin conexión a Internet y acceso a
servicios de agregación como UPS Hundredweight Service® y UPS Trade Direct. Sólido y
poderoso.
V. Conclusiones y recomendaciones
Se concluye qué el software UPS WorldShip es un aplicativo de uso general, donde clientes
y usuarios interactúan a través de la interfaz dando solvencia a una necesidad de
administración de paquetes. A su vez, da comodidad ya qué se puede ejecutar de forma
web (aplicativo web) esto lo hace bastante más asequible qué algunos otros de sus
competidores.
Pero a la par con ello requiere requisitos en el sistema los cuales pueden aplicarse a una
gama más amplia de usuarios con dispositivos un poco más antiguos, por ello planteamos
las siguientes recomendaciones de portabilidad, comodidad y flexibilidad para usuarios y
clientes: