Sei sulla pagina 1di 3

INGENIERÍA DE

SOFTWARE II

Tarea 1, Semana 1

Docente:
Licda. Lourdes Lorena Mendoza
Medina

Estudiante:
Héctor Vásquez 31041070

Campus CEUTEC

Fecha: 27 de abril de 2018


1. Cuando se “escribe” un programa, ¿se diseña software? ¿En qué
difieren el diseño de software y la codificación?
La diferencia radica en que el diseño de software es un modelo o
representación, es el núcleo técnico del proceso de ingeniería del software y
se aplica independientemente del paradigma de desarrollo utilizado. Agrupa el
conjunto de principios, conceptos y prácticas que llevan al desarrollo de un
sistema o producto de alta calidad. Una vez se haya analizado y especificado
los requisitos del software en el diseño del software, ya se puede iniciar la fase
de codificación. En esta etapa se tienen que traducir dichos algoritmos de
diseño a un lenguaje de programación específico.

2. ¿Cómo se evalúa la calidad del diseño del software?


A través del proceso de diseño se evalúa la calidad de éste de acuerdo con la
serie de revisiones técnicas que sugiere tres características que funcionan
como guía para evaluar un buen diseño:

 Debe implementar todos los requerimientos explícitos contenidos en el


modelo de requerimientos y dar cabida a todos los requerimientos
implícitos que desean los participantes.

 Debe ser una guía legible y comprensible para quienes generan el


código y para los que lo prueban y dan el apoyo posterior.

 Debe proporcionar el panorama completo del software, y abordar los


dominios de los datos, las funciones y el comportamiento desde el
punto de vista de la implementación.

3. Describa con sus propias palabras la arquitectura de software.


La arquitectura de software es un conjunto de patrones y abstracciones
coherentes que proporcionan un marco definido y claro para interactuar con el
código fuente del software. En otras palabras es la estructura de organización
de los componentes de un programa (módulos), la forma en la que éstos
interactúan y la estructura de datos que utilizan.

4. Describa con sus propias palabras la separación de problemas. ¿Hay


algún caso en el que no sea apropiada la estrategia de divide y
vencerás? ¿Cómo afecta esto al argumento a favor de la modularidad.
El concepto de separación de problemas sugiere que cualquier problema
complejo puede manejarse con más facilidad si se subdivide en elementos
susceptibles de resolverse u optimizarse de manera independiente. Esto
quiere decir que al separar un problema en sus piezas más pequeñas y
manejables, se requería menos trabajo o esfuerzo y tiempo para resolverlo.
No es apropiada la estrategia de divide y vencerás cuando de divide los
módulos en forma indefinida. Porque a medida que se incrementa el número
de módulos, el esfuerzo (costo) asociado con su integración también aumenta.
El costo total de software se incrementa por el número de módulos y por el
costo de esfuerzo requerido para cada uno. No se dispone de una herramienta
para predecir el número correcto de módulos para un sistema. Afectando esto
al argumento a favor de la modularidad.

5. Analice la relación entre el concepto de ocultamiento de información


como atributo de la modularidad efectiva y el de independencia de los
módulos.
El concepto de ocultamiento de información dice que deben especificarse y
diseñarse módulos, de forma que la información (algoritmos y datos) contenida
en un módulo sea inaccesible para los que no necesiten de ella y que
intercambien sólo aquella información necesaria para lograr la función del
software; el concepto de independencia de los módulos. Es el resultado
directo del ocultamiento de información ya que trata de evitar la interacción
excesiva entre módulos.

6. ¿”Rediseñar” significa que se modifica todo el diseño en forma iterativa?


Si no es así, ¿qué significa?
Es el proceso de cambiar un sistema de software en forma tal que no se altera
el comportamiento externo del código [diseño], pero sí se mejora su estructura
interna. Busca de redundancias, elementos de diseño no utilizados, algoritmos
ineficientes o innecesarios, estructuras de datos mal construido o inapropiado
y cualquier otra falla del diseño que pueda corregirse para obtener un diseño
mejor.

Potrebbero piacerti anche