0% encontró este documento útil (0 votos)
106 vistas25 páginas

Conceptos Generales 2018

El diseño de software es el proceso de definir la estructura y arquitectura de un sistema informático. Involucra dividir el sistema en componentes, especificar sus interfaces, y establecer la forma en que interactúan. Un buen diseño hace que el software sea fácil de mantener y posiblemente reutilizable. El diseño incluye actividades como el diseño arquitectónico, diseño detallado, diseño de datos y diseño de interfaces de usuario. Un diseño de calidad es crucial para el éxito de un proyecto de desarrollo de software.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
106 vistas25 páginas

Conceptos Generales 2018

El diseño de software es el proceso de definir la estructura y arquitectura de un sistema informático. Involucra dividir el sistema en componentes, especificar sus interfaces, y establecer la forma en que interactúan. Un buen diseño hace que el software sea fácil de mantener y posiblemente reutilizable. El diseño incluye actividades como el diseño arquitectónico, diseño detallado, diseño de datos y diseño de interfaces de usuario. Un diseño de calidad es crucial para el éxito de un proyecto de desarrollo de software.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Conceptos generales del diseño de

Software

Mg. Ing. Cynthia Zúñiga Ramos


Definición de Diseño

• Diseño es definido como:


"El proceso de definición de
la arquitectura, componentes,
interfaces y otras
características de un sistema o
componente que resulta de
este proceso" [IEEE610.12-90].
Definición

• Diseñar es una forma de resolver problemas .


• Por ello, al diseñar se utilizan nociones como:
▫ Objetivos
▫ Restricciones
▫ Alternativas
▫ Representaciones
▫ Soluciones de resolver problemas
• Juega un papel clave en el desarrollo de software
porque permite a los ingenieros de software producir
diversos modelos que:
▫ Caracterizan la solución a implementar.
▫ Pueden ser analizados y evaluados con el fin de
determinar si se satisfacen los requisitos.
▫ Facilitan el examen y evaluación de alternativas.
▫ Sirven para planificar las siguientes actividades del
desarrollo
¿Qué es el diseño de software?

Es una descripción de la
estructura del software que
se va a implementar, los
datos que son parte del
sistema, las interfaces
entre los componentes del
sistema, y algunas veces,
los algoritmos utilizados.
Fuente . [Link]
El diseño es una actividad
Modelo de análisis vs. Modelo de diseño El resultado de esa actividad es el
modelo de diseño

• Ambos modelos usan


herramientas (UML), son dos
cosas muy diferentes: en el
modelo de análisis las clases
representan a los elementos
de la realidad que forman
parte del problema, mientras
que en el modelo de diseño, ya
se empieza a hablar de
elementos software que no se
identifican con la realidad,
sino que son parte de la
solución al problema (P. ej.- el
Sr. Empleado para análisis y la
clase [Link] para
diseño)

Fuente: [Link]
Diseño de software

Un requerimiento funcional especifica


una funcionalidad que el sistema debe
ser capaz de ejecutar.
Es el proceso de construir un programa
que cumpla con los requerimientos
funcionales y no viole ninguno de sus
requerimientos no funcionales Un requerimiento no funcional no
describe lo que el software hará sino
cómo el software lo hará, también son
conocidos como atributos de calidad.
Estos son: rendimiento, seguridad,
mantenimiento, escalabilidad, etc.
Diseño de software

El diseño del software es una de las


partes que componen las fases del
ciclo de vida del software, lo
podemos encontrar con el nombre
de diseño en algunas metodologías,
pero también lo podemos encontrar
combinado con otros procesos en
algunas fases de metodologías de la
ingeniería

Fuente: [Link]
Características de la realización del diseño

Es un proceso creativo que no es nada trivial.

Casi siempre se lleva a cabo de una forma iterativa mediante


prueba y error.
Es muy importante la experiencia previa. El método más eficaz
es participar en algún diseño y aprender de otros diseñadores
sus técnicas de trabajo. También es aconsejable estudiar
diseños ya realizados y analizar las razones por las que se
adopta una u otra solución.
Se tratara de reutilizar el mayor número de módulos o elementos ya
desarrollados. Si no es posible por tratarse de un diseño completamente
original , al menos se podrá aprovechar el enfoque dado a algún otro proyecto
anterior, lo que se conoce como aprovechar el KNOW-HOW (Saber hacer).
Objetivo del diseño

Es conseguir que el software sea


fácil de mantener, y si es posible
reutilizarlo en futuras aplicaciones

Durante el diseño se tiene que


pasar gradualmente de las ideas
informales recogidas en el SRD a
definiciones detalladas y precisas
para la realización del software
mediante refinamientos sucesivos.
Fases del diseño de software

Diseño arquitectural
• Es el proceso en el cual se define una
colección de componentes de software y
hardware con sus interfaces, se asigna
responsabilidades especificas a cada
componente, se define como van a
interactuar entre ellos y se especifica
donde se desplegarán. En esta fase nos
podemos apoyar de los siguientes
artefactos:
• Diagrama de clases
• Diagrama de componentes
• Diagrama de paquetes
• Diagrama de despliegue
• Patrones o estilos arquitecturales
Fases del diseño de software

Diseño detallado
• Se encarga de refinar y expandir el diseño preliminar de un sistema, trata con
cada uno de los componentes que resultaron del diseño arquitectural para
definir sus estructuras de datos y algoritmos, con la finalidad de especificar el
comportamiento de cada uno de ellos usando algún tipo de notación:
• En esta fase nos podemos apoyar de los siguientes artefactos:
• Patrones de diseño
• Diagrama de casos de uso
• Diagrama de secuencias
• Diagrama de estados
• Diagrama de actividades
• Diseño de algoritmos
• Modelo entidad relación
• Diccionario de datos
• Diseño de interfaces de usuario
Actividades en el diseño:
Diseño arquitectónico:
• Se abordan aspectos estructurales y de organización del sistema y su
posible subdivisión en subsistemas o módulos. Además se tienen que
establecer las relaciones entre los subsistemas creados y definir las
interfaces entre ellos.
Diseño detallado:
• Se aborda la estructura de cada uno de los módulos en los que quedó
subdividido
Diseño procedimental:
• Se abordan la organización de las operaciones o servicios que
ofrecerá cada uno de los módulos.
Diseño de datos:
• Se aborda la organización de la base de datos del sistema. Se parte
del diccionario de datos y de los diagramas E - R de la especificación
del sistema. Con esta actividad se trata de concretar el formato
exacto para cada dato y la organización que debe existir entre ellos.
El diseño de datos es muy importante para conseguir que el sistema
sea utilizable y fácilmente mantenible.

Diseño de la interfaz de usuario:


• Aborda la organización de la interfaz del usuario, para conseguir un
diseño más ergonómico. Es decir, se intenta conseguir un dialogo
mas ergonómico entre el usuario y el computador.
Fuente: [Link]
Diseño de Datos
Diseño Arquitectónico
Diseño Procedimental
Importancia del diseño

El diseño de software es la
base de todas etapas o fases
del desarrollo y de la fase de
prueba, como se muestra la
figura.

Sin diseño, nos arriesgamos a construir


un sistema inestable, un sistema que
falle cuando se realicen pequeños
cambios, un sistema que sea difícil de
probar, un sistema cuya calidad no
pueda ser evaluada hasta más adelante,
cuando quede poco tiempo y ya sea haya
gastado mucho dinero.
Importancia del Diseño de Software

En el diseño se busca la eficiencia, no solo la eficacia, es decir, desarrollar software que


funcionen bien y además el diseño debe servir para para mantener la calidad.

Aspectos funcionales: los aspectos funcionales se centran en la eficacia, que el código funcione.

Aspectos no funcionales: son aspectos de calidad, se centran en la eficiencia, preocupándose de


que el software funcione bien. Dependiendo del contexto en el que estemos, habrá que primar
un aspecto u otro:
• Rendimiento: rapidez, eficiencia.
• Seguridad: que sea seguro, difícil de atacar/hackear.
• Disponibilidad: que no se bloquee al ser accedido por muchos usuarios.
• Mantenibilidad: que sea fácilmente ampliable. Las empresas están cambiando continuamente sus
procesos de negocio, por eso el software tiene que ser fácil de mantener
La• importancia
Fácilidad: quede
al usuario no le cueste
estos puntos muchodel
dependerá trabajo
tipousarlo.
de software a desarrollar, o de los
requisitos
• etc. del problema. Por ejemplo, si el software se aplicará en una central nuclear, es
lógico que antepongan los puntos de seguridad y rendimiento al de mantenibilidad por
ejemplo.
El diseño es la etapa en la que se tienen en cuenta esas necesidades del sistema que se está
implementando y se van añadiendo éstas.
Fundamentos del diseño

Los
• Qué criterios puedo utilizar para
fundamentos dividir el software en componentes
del diseño individuales?
ayudan al • ¿Cómo se separan los detalles de una
función o de la estructura de los
desarrollador datos de la representación
de software a conceptual del software?
responder a • ¿Existen criterios uniformes que
definan la calidad técnica de un
estas diseño de software?
preguntas:
Conceptos

ABSTRACCIÓN

REFINAMIENTO

MODULARIDAD

ARQUITECTURA DEL SOFTWARE

JERARQUÍA DE CONTROL

ESTRUCTURA DE DATOS

PROCEDIMIENTOS DEL SOFTWARE

OCULTAMIENTO DE INFORMACIÓN
Fuente : [Link]
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).
Bibliografía

• Pressman R. (2005). Ingeniería de Software: Un Enfoque


Práctico. 9.6ta. Edición. McGraw-Hill.
• Sommerville, Ian. "Ingeniería del Software", Capítulo 11. 7ª
Edición, Pearson-Addison Wesley, 2005.
Fuentes :
• [Link]
software-sad/

También podría gustarte