Please enable JavaScript.
Coggle requires JavaScript to display documents.
DESAFÍOS ACTUALES EN DISEÑO PRÁCTICO DE SOFTWARE ORIENTADO A OBJETOS -…
DESAFÍOS ACTUALES EN DISEÑO PRÁCTICO DE SOFTWARE ORIENTADO A OBJETOS
Mientras se habla del término "objeto" en el ámbito de la programación se da a principio de los años 60, con su aparición en los proyectos de la MIT.
El primer lenguaje de programación fue Simula que fue el lenguaje que introdujo conceptos muy conocidos hoy en día como clases, objetos, polimorfismo y enlaces dinámicos finales.
Desde entonces, se ha ido viendo que los lenguajes fueron variando y surgiendo unos nuevos lenguajes y desde este punto fueron surgiendo la POO como C++, java, javascript, Ruby y Scala.
Desafíos en el diseño del software moderno:
1)
La fuerte influencia de las bibliotecas y los frameworks en las decisiones de diseño
: Se puede decir que los desarrolladores no siempre empiezan un código desde cero, es decir, se reutilizan bibliotecas, marcos de trabajo y arquitecturas.
2)
La plétora de partes interesadas y sus diferentes representaciones del mismo problema
: El mismo software tiene un puesto de complejidad a medida que se vuelven más complejos, de esta manera se puede tener una perspectiva sobre el flujo del negocio.
3)
La necesidad de medir la calidad en el contexto
: Actualmente los desarrolladores no suelen confiar en las herramientas automatizadas, una posible causa es el hecho de que los enfoques no toman en cuenta el contexto en el que se encuentra.
El impacto de la arquitectura del software y las pilas tecnológicas en el diseño de software
El equipo de desarrollo de software tiene la opción de elegir el patrón MVC para los servidores de Back-end, utilizar HIbernate para la persistencia de la base de datos y AngularJS para el desarrollo de Front-end
En el desarrollo móvil, la arquitectura android impone varias restricciones a los desarrolladores, como la implementación de diferentes actividades para cada una de las interfaces del usuario dependiendo de su aplicación o crear diversas situaciones como el sonido en el teclado o vibración de pantalla dependiendo de la situación.
El simple uso de un marco de trabajo obliga a los desarrolladores a replantearse el modelado de las relaciones bidireccionales en las entidades.
Como detalle final cabe recalcar que los sistemas de software pueden ser muy heterogéneos y posiblemente distribuidos en varios microservicios
Soluciones Actuales:
Se ha propuesto a los desarrolladores que separen la implementación del propio dominio de los requisitos de la aplicación.
Visión de futuro:
Se necesitan nuevas teorías de la implementación del diseño que se reconozca que software puede llegar a ser heterogéneo, distribuido y compuesto por un gran conjunto de marcos y bibliotecas diferentes.
Múltiples complejos en grandes y complejos dominios
Los dominios complejos suelen implicar operaciones comerciales que pueden llegar a ser muy complejas relacionadas con varias partes interesadas. El tiempo también es parte importante en los modelos complejos, a menudo se observan que las empresas están impulsadas por eventos lo que da a entender que el sistema se basa en eventos que ocurren de forma asincrónica
Soluciones actuales:
El enfoque de diseño orientado al dominio de Evans propone patrones de diseño estratégicos que ayudan a los desarrolladores a dividir grandes modelos en diferentes contextos limitados. Más recientemente, los desarrolladores han propuesto los microservicios como una posible alternativa para reducir la complejidad.
Visión de futuro:
Se carece de una comprensión clara de como y se debe modelar los complejos de los procesos empresariales, falta comprender como interactúan, evolucionan y se mantienen juntos múltiples modelos.
Conclusiones
Es fundamental que la experiencia en el mundo real de los profesionales influya en el trabajo de los investigadores de campo, también se debe proporcionar teorías mas completas y mejores herramientas para que los desarrolladores modelen y puedan enviar sus modelos
Los programas informáticos son cada vez mas complejos a medida de lo que el mundo real es, los ingenieros necesitan de mejores técnicas de modelado.
Medición contextual de la calidad del diseño de software orientado a objetos
Cuando se habla de un modelo grande, es fundamental para la detección de las piezas que no están bien diseñadas o implementadas, dentro de lo que se considera un buen modelo se puede decir que debe estar constituido o basado en indicadores como el acoplamiento, la cohesión y la complejidad.
Visión de futuro:
Es necesario de teorías derivadas sobre los cuales los modelos complejos que deben considerarse de alta calidad. El proceso automático y la ciencia de los datos pueden desempeñar un papel ideal en el campo dado que muchas características de los diseños podrían depender de las combinaciones complejas
Soluciones actuales:
Se debe tener en cuenta el dominio y la arquitectura del sistema, aunque se han propuesto varias estrategias de monitorización de la calidad como es la Inspección continua, los investigadores ha logrado determinar que el dominio de la aplicación es importante cuando se trata de la presencia de olores de código