1. Instituto Universitario Politécnico Santiago Mariño
Sede Barcelona
Escuela de Ingeniería de Sistemas
Sistemas II - SAIA
FUNDAMENTOS DEL DISEÑO
SOFTWARE
Profesor:
José Castillo
Estudiante:
Luis Curbata
Barcelona, julio de 2019.
2. INTRODUCCIÓN
El diseño de Software juega un papel importante en el
desarrollo de software lo cual permite al ingeniero de software
producir varios modelos del sistema o producto de que se va a
construir el mismo que forman una especie de plan de la
solución de la aplicación.
Estos modelos puede evaluarse en relación con su calidad y
mejorarse antes de generar código, de realizar pruebas y de
que los usuarios finales se vean involucrados a gran escala. El
diseño es el sitio en el que se establece la calidad del software.
3. • Conceptos generales de diseño.
El software no es el único campo donde el
diseño se encuentra inmiscuido. En general
podemos ver el diseño como una forma para
resolución de problemas. El problema sin
solución definitiva es interesante en términos
de comprensión del diseño. Un numero de otras
nociones y conceptos son también de interés en
la comprensión del diseño en su sentido
general, objetivos, limitaciones, alternativas,
representaciones y soluciones
FUNDAMENTOS DEL DISEÑO DE SOFTWARE
4. • Contexto del diseño de software.
El diseño del software se encuentra en el núcleo
técnico de la respectiva ingeniería y se aplica de
manera independiente al modelo de software que
se utilice. Una vez que se analizan y especifican
los requisitos, el diseño del software es la última
acción de la ingeniería correspondiente dentro de
la actividad del modelado, la cual establece una
plataforma para la construcción (generación de
código y prueba).
FUNDAMENTOS DEL DISEÑO DE SOFTWARE
5. A. Diseño Arquitectónico: puede representarse al usar uno o más de
muchos modelos diferentes. Los modelos estructurales
representan la arquitectura como una colección organizada de
componentes del programa. Los modelos del marco de trabajo
repetible incrementan el grado de abstracción del diseño al
intentar identificar marcos de trabajo repetibles del diseño
arquitectónico que se encuentran en tipos de aplicaciones
similares.
B. Diseño Detallado: se describe el comportamiento específico de
estos componentes.
PROCESO DEL DISEÑO DE SOFTWARE.
6. El Diseño Orientado a Objetos (DO)
difiere considerablemente del diseño
estructurado ya que en Diseño Orientado
a Objetos (DOO) no se realiza un
problema en términos de tareas
(subrutinas) ni en términos de datos, sino
se analiza el problema como un sistema
de objetos que interactúan entre sí.
DISEÑO ORIENTADO A OBJETOS
7. GARANTÍA DE CALIDAD DE SOFTWARE
La garantía de calidad del software (SQA, Software Quality
Assurance GCS, Gestión de calidad del software) es una
actividad de protección que se aplica a lo largo de todo el
proceso del software. La SQA engloba:
Un enfoque
de gestión
de calidad
Tecnología de ingeniería
del software efectiva
(métodos y herramientas)
El control de la
documentación del
software y de los
cambios realizados
Una estrategia de
prueba multi-escalada
Revisiones técnicas
formales que se aplican
durante el proceso del
software
Mecanismos de medición
y de generación de
informes
Un procedimiento que
asegure un ajuste a los
estándares de desarrollo
del software
8. I. Prueba unitaria
La prueba unitaria se aplica en el elemento más
pequeño de un sistema, cada componente es testeado
para asegurar que funciona correctamente.
Normalmente desarrolla una única función cohesiva.
La función de la prueba unitaria es de analizar cada
pequeña parte y testear que funciona correctamente.
La prueba unitaria se usa mayormente por
desarrolladores ágil, especialmente en programadores
extremos, los amantes del TDD. Sin embargo las
pruebas unitarias son más populares hoy en día y
otros desarrolladores están empezando a utilizarlo.
4 TÉCNICAS DE TESTEO DE SOFTWARE
ESENCIALES PARA CONSTRUIR SOFTWARE QUE
FUNCIONA.
9. II. Pruebas de integración
La prueba de integración es una extensión lógica de
las pruebas unitarias. Dos unidades que ya han sido
testeadas y combinadas en un componente y su
interface son testeadas entre ellas. Un componente,
en este ejemplo, se refiere a un agregado que está
integrado en más de una unidad, estas son
combinadas en componentes, que son agregadas por
orden en partes mas grandes del programa.
4 TÉCNICAS DE TESTEO DE SOFTWARE
ESENCIALES PARA CONSTRUIR SOFTWARE QUE
FUNCIONA.
10. III. Pruebas funcionales
Las pruebas funcionales se basan en asegurarse de
que todas las características funcionen de cabo a
rabo. Por ejemplo, testear que las características
de un usuario se actualicen cuando el usuario
clickea en el botón de guardar.
Las pruebas funcionales testean una pequeña
parte de la funcionalidad del sistema entera. Se
aplica para verificar que las aplicaciones y
funcionalidades del software actúan correctamente
acorde a un diseño específico.
4 TÉCNICAS DE TESTEO DE SOFTWARE
ESENCIALES PARA CONSTRUIR SOFTWARE QUE
FUNCIONA.
11. IV. Pruebas de rendimiento
Y la última es la prueba de rendimiento. En el
desarrollo de software, la prueba de rendimiento es
una práctica de test que determina la actuación de
un sistema en términos de respuesta y estabilidad
en una carga de trabajo en particular. También
puede servir para investigar, medir, validar o
verificar otros atributos de calidad del sistema,
como la escalabilidad, seguridad y uso de recursos.
Las pruebas de rendimiento construye unos
estándares de actuación en la implementación,
diseño y arquitectura de un sistema.
4 TÉCNICAS DE TESTEO DE SOFTWARE
ESENCIALES PARA CONSTRUIR SOFTWARE QUE
FUNCIONA.
12. Consiste en una atención constante de limpieza, revisión y
afinación de los distintos elementos integrantes de un equipo de
cómputo. Es importante saber que la mayoría de los problemas
que se presentan en el trabajo cotidiano, se debe a la falta de un
programa específico de mantenimiento de los equipos, de tal
manera que la mayoría de los problemas se resuelven con el
mismo procedimiento del mantenimiento preventivo.
El mantenimiento tiene técnicas para darle un periodo de vida
útil más largo y libre de fallas. Debemos de tener en cuenta que
es necesario darle mantenimiento al software ya que el continuo
uso genera una serie de cambios en la configuración original del
sistema, causando bajas en el rendimiento que al acumularse
con el tiempo pueden generar problemas serios.
MANTENIMIENTO PREVENTIVO DE
SOFTWARE
13. SEGÚN ALAN DAVIS, LOS PRINCIPIOS DE DISEÑO
SON LOS SIGUIENTES:
En el proceso deben tomarse enfoques alternativos.
Deberá rastrearse hasta el análisis.
Se debe reutilizar.
Tratar de imitar el dominio del problema.
Uniformidad e integración.
Deberá estructurarse para admitir cambios.
Debe prever la adaptación a circunstancias inusuales.
No codificar.
Evaluarse en función de calidad mientras está creciendo.
Minimizar errores conceptuales.
14. ALGUNAS TÉCNICAS PARA ANALIZAR
REQUERIMIENTOS DE SOFTWARE
Descomposición
funcional
Se realiza para identificar y
entender los componentes o
partes que constituyen un
todo (o función global).
Se refiere al proceso de identificar
y resolver las relaciones
funcionales en sus partes
constituyentes, de tal forma que
la función global pueda ser
reconstruida a partir de sus
partes
Modelado del
proceso
Comprende la elaboración
de diagramas de flujo de
procesos (Flujogramas) a
partir de los
requerimientos del
software
Es muy útil para entender
el trabajo realizado en
múltiples pasos, tareas,
roles y departamentos
intervinientes.
Especificación vía
sentencias textuales
Consiste en tomar el
requerimiento producto del
levantamiento de información,
para desarrollar una narrativa
más detallada.
Es la forma
tradicional de la
especificación de
requerimientos de
software
15. El diseño de software, al igual que los métodos de diseño de todas
las ingenierías, cambian continuamente al aparecer nuevos
métodos, mejores análisis y ampliar los conocimientos. El problema
es que el diseño de software se encuentra en una etapa
relativamente temprana en su evolución. La idea de realizar
diseño de software en lugar de “programar”, surgió a principios de
los años 60, por lo que a las metodologías de diseño les falta la
profundidad y la flexibilidad que tiene el diseño en otras
ingenierías. Pero, ya existen técnicas de diseño de software para
poder evaluar la calidad del software.
CONCLUSIÓN
16. BIBLIOGRAFÍA
• Rogers Vicente Jumbo Delgado. (s.f). Garantía y aseguramiento de la calidad del software y revisiones del
software. Recuperado de: https://www.monografias.com/docs113/garantia-y-aseguramiento-calidad-del-software-
y-revisiones-del-software/garantia-y-aseguramiento-calidad-del-software-y-revisiones-del-software.shtml
• Papel de clases y objetos en el análisis y el diseño. (s.f). Recuperado de:
https://www.marcoteorico.com/curso/51/fundamentos-de-programacion/393/papel-de-clases-y-objetos-en-el-
analisis-y-el-diseno
• Ángel Miguel Macas y Jorge Fierro. (s.f). Diseño de software. Recuperado de:
https://www.monografias.com/trabajos73/diseno-software/diseno-software2.shtml
• Ekaterina Novoseltseva. (14 de diciembre de 2017). Técnicas de testeo de software y herramientas. Recuperado
de: https://apiumhub.com/es/tech-blog-barcelona/tecnicas-de-testeo-de-software/
• Mantenimiento de Software. (s.f). Recuperado de: https://es.wikipedia.org/wiki/Mantenimiento_de_software
• 3.1 CONCEPTO Y PRINCIPIO DEL DISEÑO. (s.f). Recuperado de:
https://virtual.itca.edu.sv/Mediadores/stis/31____concepto_y_principio_del_diseo.html