INGENIERÍA DE SOFTWARE - UNID · C# Visual Basic.NET ... La arquitectura de software trata de una...
Transcript of INGENIERÍA DE SOFTWARE - UNID · C# Visual Basic.NET ... La arquitectura de software trata de una...
Sesión 4: Diseño de software
INGENIERÍA DE
SOFTWARE
Contextualización
El diseño de un software es un procedimiento en el que se deben estipular varios
elementos antes de comenzar con el desarrollo del mismo, es decir, se tienen que crear
varios elementos importantes en los que se puede medir la efectividad o las
necesidades a cumplir para el usuario final.
Introducción
El diseño de software actualmente es muy importante, pues con la evolución de los
dispositivos móviles y los equipos de escritorio, las aplicaciones que se desarrollan
pueden ser más poderosas, presentar una calidad gráfica superior y un manejo de
varios procesos simultáneamente, por lo que al momento de diseñar un software se
deben considerar varios de los elementos que pueden o no afectar alguna característica
de ejecución o de procesamiento de información. Tómese en cuenta que cuando se
habla de un software debe pensarse en locaciones dentro del equipo, en las cuales se
instalarán las bibliotecas de aplicación y de ejecución de cada herramienta contando los
aspectos que interactúan directamente con el sistema operativo sin que interfieran con
sus funciones ni creen errores.
El diseño del software es la parte en la que se estipulan los elementos que contendrá
la aplicación y la manera en que éstas funcionarán. El software puede desarrollarse en
el lenguaje que se desee, los más comunes son;
C#
Visual Basic.NET
ActionScript 1, 2, 3
PHP
ASP
AJAX
Etc.
Hoy en día el software que se desarrolla puede ser para el medio educativo,
entretenimiento, etc.
Diseño de software
Los contextos de desarrollo del software es el medio o el entorno que se le dará para la aplicación
para un usuario en específico. El contexto puede ser educación, seguridad, edición, retoque digital,
etc.
Para definir en qué entorno se utilizará la aplicación, se debe hacer un análisis adecuado para
determinar las funciones que tendrán las aplicaciones y las herramientas adicionales que se
ofrecerán.
Un contexto de desarrollo que no se estipula concretamente es un mal análisis, por lo tanto el
desarrollo puede retrasarse y tener problemas de ejecución y de compatibilidad en las plataforma
para la cual se ha desarrollado.
Contexto y aspectos clave
¿Qué es la arquitectura de software?
La arquitectura de software trata de una representación que permite analizar la efectividad del diseño
de la aplicación para cumplir con lo establecido. Ésta considera alternativas arquitectónicas en una
etapa en la que los cambios pueden ser fáciles y así se pueden reducir los riesgos con la construcción
del software.
¿Por qué es importante la arquitectura?
Es importante porque presenta algunas ventajas en el desarrollo de aplicaciones y pueden ser
aprovechadas para la creación de cualquier software;
Las representaciones permiten la comunicación entre todos los elementos.
La arquitectura resalta las primeras decisiones que tendrá un efecto profundo en todo el trabajo.
Arquitectura software
¿Qué es un patrón de diseño?
Son la base para buscar soluciones a problemas comunes en el de desarrollo de
software, este resulta ser la solución a un problema de diseño, también se conocen
como design patterns, también pueden crearse ámbitos referentes al diseño de
interacción e interfaces.
Los patrones de diseño no tienen un lenguaje estándar en el cual se puedan aplicar
únicamente, lo que da la libertad de utilizarlo en cualquier lenguaje de desarrollo de
aplicaciones, ya sea; Java, ASP, .NET, PHP, HTML o cualquier otro.
Patrones de diseño
Notaciones
Las notaciones son formas de representar las acciones y los medios con los que se
cuentan, las más importantes con las que se trabajan son;
Abstracción
Generalización
Potencia expresiva
Eficiencia
Las cuales tienes atributos específicos con los cuales se puede trabajar de una mejor
manera con un mejor detalle en las tareas y eficiencia.
Conclusión
La programación actualmente por ser parte importante del mundo de la
comunicación y el entretenimiento presenta herramientas con las cuales se
apoya para mejorar el software y hacerlo en un corto tiempo, por ejemplo, el
uso de los patrones ayuda a disminuir el tiempo en que se efectúa todo y
puede adaptarse el código a varias plataformas y lenguajes.
Para tener resultados positivos en la producción de un software es importante
que se diseñe una arquitectura funcional y que cubra todas las necesidades
con las cuales se ha ideado el mismo, si la arquitectura es buena, puede
ejecutarse de manera óptima en la plataforma del sistema en la que se ha
ideado.
Para aprender más
Notaciones
Abstracción; se considera como una característica útil de los lenguajes para describir un
sistema sin la necesidad de conocer a detalle la máquina en la que se ejecutará la
aplicación. Sus notaciones pueden ser graficas o de forma abstracta.
Generalización; estas presentan mecanismos de abstracción necesarios para soportar las
diferentes fases del ciclo de vida, éste soporte se logra con la reducción del ámbito de
aplicación o de características del sistema y se describen de una forma simple.
Potencia expresiva; éste utiliza un conjunto de conceptos característicos del dominio en el
que se trabaja. Si las notaciones con las que se describen éstos sistemas cuentan con
construcciones pueden expresar conceptos en el lenguaje que se desee, cuando un
lenguaje permite la descripción de un dominio se puede decir que cuenta con potencia
expresiva suficiente en ese dominio.
Eficiencia; sabemos que una notación debe contar con construcciones que permitan a los
compiladores generar un código ejecutable para que el programa pueda aprovechar los
atributos que ofrece la computadora.
Descripciones estructurales
(estática)
Las descripciones estructurales se basan en modelos informáticos, de los cuales el estático es
uno de los tres que se utilizan. En esta sección se pueden utilizar diagramas estáticos;
Diagrama de caso de uso
Diagrama de clases
Diagrama de objetos
Diagrama de componentes
Diagrama de despliegue
Estos diagramas funcionan cuando la estructura se basa en el UML, por lo que es importante
conocer los elementos que lo componen y determinar la prioridad de cada uno dentro del
proyecto que deseamos realizar.
Descripciones de
comportamiento (dinámica)
El comportamiento dinámico a comparación del estático, presenta movimiento y una forma en que se
expresen soluciones posibles a elementos que no se consideran para este aspecto, como se mencionó
anteriormente esto se conoce como modelos. Este caso se puede utilizar en varias situaciones, puede
ser aplicada para elementos con funciones en tiempo real o para crear estructuras un poco más
compiladas que los medios estáticos.
Algunos de los principios más importantes de este tema son;
Constituye una abstracción de la realidad
Omiten detalles no esenciales
Es sencillo de manipular que al medio original
Puede expresarse a diferentes niveles de precisión
Referencias
iKohm, Diseño de software. Consultado el 18 de jul. de 13, obtenido de:
http://www.ikohm.com/diseno_de_software.php
Cabero J., Diseño de software informático. Consultado el 18 de jul. de 13, obtenido de:
http://edutec.rediris.es/documentos/1992/2.htm
Dr. Lemus C., López P., Arquitectura de software, mucho más que un diagrama tradicional.
Consultado el 18 de jul. de 13, obtenido de: http://www.cimat.mx/~clemola/Ponencias/CECIC-
UAAgs.pdf
Arends T. Di Nardo M., Sistema de programas. Modelo dinámico. Consultado el 18 de jul. de 13,
obtenido de: http://ldc.usb.ve/~teruel/ci3711/dinam2/Sistemas.html