Está en la página 1de 6

Tarea #1

Ingeniería de Software II

1. Estudie el conjunto de tareas para el diseño. ¿Dónde se evalúa la


calidad en dicho conjunto? ¿Cómo se logra? ¿Cómo se consiguen los
atributos de calidad estudiados en la sección 8.2.1?
R/ El proceso de diseño se evalúa la calidad de este de acuerdo con la
serie de revisiones técnicas las cuales se sugieren tres características que
funcionan como guía para evaluar un buen diseño, se consiguen de la
siguiente manera:
 Se deben implementar todos los requerimientos explícitos contenidos
en el modelo de requerimientos y dar cabida a todos los
requerimientos implícitos que desean los practicantes
 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 proporciona el panorama completo del software y abordar los
dominios de los datos, las funciones y el comportamientos desde el
punto de vista de la implementación

2. De ejemplos de tres abstracciones de datos y de las abstracciones de


procedimiento que se usan para manipularlas.
3. R/ Ejemplo 1: “Televisor” con sus atributos selector de cambios, video, audio
con su abstracción de procedimiento “Encender” que implica una secuencia
de pasos del procedimiento como caminar hacia el televisor, llegar y presionar
el botón de encendido/apagado.

Ejemplo 2: Abstracción de datos “Coche” con sus atributos color, el modelo o


la marca con su abstracción de procedimiento “Ponerse en marcha” que
implica una secuencia de pasos del procedimiento como caminar hacia el
coche, llegar, pisar el freno para asegurar el vehículo, pisar el clutch para
preparar el carro para recibir primer cambio en la palanca, asegurarse de que
la palanca esté en neutra, encender el motor y quitar el freno de mano o de
emergencias.

Ejemplo 3: Abstracción de datos “Puerta” con sus atributos tipo, dirección del
abatimiento, mecanismo de apertura, peso dimensiones, etc. con su
abstracción de procedimiento “Abrir” que implica una secuencia larga de pasos
del procedimiento como caminar hacia la puerta, llegar y tomar el picaporte,
girar éste y jalar la puerta, retroceder para que la puerta se abra, etc.

This study source was downloaded by 100000813541851 from CourseHero.com on 02-23-2022 23:35:53 GMT -06:00

https://www.coursehero.com/file/28270410/Ingenieria-de-Softwaredocx/
4. Aplique un “enfoque de refinamiento stepwise” para desarrollar tres
niveles distintos de abstracciones del procedimiento para uno o más
de los programas siguientes: a) un revisor de la escritura que, dada
una cantidad numérica de dinero, imprima ésta en las palabras que se
requieren normalmente en un cheque. b) una resolución en forma
iterativa de las raíces de una ecuación trascendente. c) un algoritmo
de programación de tareas simples para un sistema operativo.

A) Un revisor de la escritura que, dada una cantidad numérica de


dinero, imprima ésta en las palabras que se requieren normalmente en
un cheque.
 Nivel alto de abstracción:
 Imprimir una cantidad numérica de dinero en palabras en un cheque.

 Nivel medio de abstracción:


 Ingresar la cantidad numérica.
 Crear una instancia de la clase que procesará la cantidad numérica.
 Enviar la cantidad numérica al constructor de la clase que procesará
dicha cantidad.
 La clase se encarga de convertir la cantidad numérica en palabras.
 Imprimir el cheque con la cantidad numérica en palabras.
Nivel bajo de abstracción:

 Llamar a la función donde se inicia la conversión del número a letras


 Enviar el número a otra función (que revisa si el número tiene
decenas de millones) para verificar si el número es igual a
10,000,000 para escribir su equivalente en palabras “diez millones”,
si no se verifica si es mayor que 10,000,000 y menor que 20,000,000
para dividir el número entre 1,000,000 para obtener la decena y
concatenar la cadena con la palabra “millones”, enviando el residuo
del número entre 1,000,000 a otra función que calcula la parte de los
cien miles. Se verifica si el número es mayor que 20, 000,000 y
menor que 100, 000,000 para dividir el número entre 1, 000,000 y
enviarlo a la función que calcula las decenas, luego se concatena
con la palabra “millones” y con el resultado que se genera al enviar el
residuo del número entre 1,000,000 a la función que calcula los
millones. Si el número es menor que 10, 000,000 se envía a la
función que calcula los millones.

 Evaluar si el número es mayor o igual a 1, 000,000 y menor que 2,


000,000 para que al hacer la conversión se imprima la palabra “Un
millón” concatenada con el resultado de procesar el residuo del

This study source was downloaded by 100000813541851 from CourseHero.com on 02-23-2022 23:35:53 GMT -06:00

https://www.coursehero.com/file/28270410/Ingenieria-de-Softwaredocx/
número entre 1, 000,000 enviado a la función que calcula los cien
miles en palabras. Si el número es menor que 1, 000,000, el número
es enviado a la función cien miles directamente.

 Verificar si el número es igual a 100,000 para imprimir la frase “cien


mil”, sino evaluar si es mayor o igual que 100,000 y menor que
1,000,000 donde se envía el número dividido entre 1,000 para
calcular la centena de millar y se concatena con la palabra “mil”
también con las centenas que resultan del residuo del número entre
1,000. Si el número es menor que 100,000 se calcula las decenas de
miles.

 Verificar si el número es igual a 10,000 para imprimir la frase “diez


mil”. Sino evaluar si el número es mayor que 10,000 y menor que
20,000 para enviar el número dividido entre 1,000 a la función que
calcula las decenas, imprimiendo la cadena que se genera con la
palabra “mil” concatenada con la cadena que genera la función que
calcula las centenas al enviarle el residuo del número entre 1,000.
Evaluar si el número es mayor o igual a 20,000 y menor que 100,000
para enviar el número dividido entre mil a la función que calcula las
decenas concatenando el resultado con la palabra “mil” y con la
cadena resultante de enviar el residuo del número entre 1,000 a la
función que calcula los miles.

 Evaluar si el número es mayor o igual que 1,000 y menor que 2,000


para imprimir la palabra “mil” con la cadena que genera la función
que calcula las centenas al enviarle el residuo del número entre
1,000. Si no, evaluar si el número es mayor o igual que 2,000 y
mayor que 10,000, se envía el número dividido entre 1,000 a la
función que calcula las unidades y el resultado se concatena con la
palabra “mil” y con la cadena que resulta de enviar el residuo entre
1,000 a la función que calcula las centenas. Si el número es menor
que 1,000 se envía a la función que calcula las centenas.

 Convertir las centenas en palabras, desde 100 hasta 999 por


ejemplo; 900 a“novecientos” y las decenas se obtienen al restar el
número-900; y se envían a la función que genera las decenas en
palabras.

 Convertir las decenas en palabras, desde 10 hasta 19 (diez, once,


doce, trece, etc.) y desde 20 hasta 99 por ejemplo; 90 a “noventa” y
las unidades se obtienen de restar el número-90; y se envían a la
función que genera las unidades en palabras.

This study source was downloaded by 100000813541851 from CourseHero.com on 02-23-2022 23:35:53 GMT -06:00

https://www.coursehero.com/file/28270410/Ingenieria-de-Softwaredocx/
 Convertir las unidades desde 1 hasta 9 a su equivalente en palabras
(uno, dos tres, etc.)

 Imprimir el número o cantidad numérica convertida a palabras en el


cheque.

B) Una resolución en forma iterativa de las raíces de una ecuación


trascendente.
 Nivel alto de abstracción:
 Resolver en forma iterativa las raíces de una ecuación trascendente.

 Nivel medio de abstracción:


 Ingresar función, x0, tol.
 Reutilizar las variables x0 y x1 para almacenar los valores de x k + xk+1
respectivamente.

 Nivel bajo de abstracción:

C) Un algoritmo de programación de tareas simples para un sistema


operativo.

 Nivel alto de abstracción:


 Activación del sistema operativo.

 Nivel medio de abstracción:


 Realizar el proceso de arranque del sistema operativo

 Nivel bajo de abstracción:


 Encendido(Cuando presionamos el botón de encendido del case, el
power light es iluminado y la energía es distribuida por circuitos
internos de la computadora)
 Comienzo del programa de arranque (El microprocesador empieza a
ejecutar las instrucciones almacenadas en la memoria ROM).
 Auto prueba de encendido o power-on self-test (La computadora
realiza un diagnostico crucial del sistema y de cada componente de
la computadora).
 Carga del Sistema Operativo (El sistema operativo es copiado desde
el disco duro a la memoria RAM).

This study source was downloaded by 100000813541851 from CourseHero.com on 02-23-2022 23:35:53 GMT -06:00

https://www.coursehero.com/file/28270410/Ingenieria-de-Softwaredocx/
 Chequeo de la configuración (El microprocesador lee los datos de
configuración del CMOs y ejecuta cualquier rutina específica para su
uso).
 Lista para aceptar datos y comandos. (La computadora esta lista
para aceptar comandos y datos).

5. Considere el software requerido para implementar la capacidad de


navegación (con un GPS) en un dispositivo móvil de comunicación
portátil. Describa dos o tres preocupaciones de interferencia que se
presentarían. Analice la manera en la que se representaría como
aspecto una de estas preocupaciones.
Una preocupación de interferencia sería cuando necesitamos que el GPS
nos lleve al punto de partida (requerimiento A) desde donde comenzamos
nuestro recorrido, para ello tenemos que movilizarnos (requerimiento B)
para que el GPS marque el camino y los receptores GPS puedan
almacenar la trayectoria recorrida. Otra preocupación de interferencia sería
que en el momento de hacer una ruta que la persona no había hecho antes
(requerimiento A) y que otra persona si había realizado (requerimiento B);
esta persona la puede exportar fácilmente a un ordenador para que pueda
ser cargada a un GPS que no contenga la ruta.
La primera preocupación definida se representaría como aspecto de la
siguiente manera: Un GPS no puede llevar a un punto de partida si no
se ha registrado una ruta previamente.

6. Sugiera un patrón de diseño que encuentre en una categoría de


objetos cotidianos (por ejemplo, electrónica de consumo, automóviles,
aparatos, etc.). Describa el patrón en forma breve.
7. Abstract Factory ya que con este patrón se pueden crear diferentes
familias de objetos. Su objetivo principal es soportar múltiples estándares
que viene definidos por las diferentes jerarquías de herencia de objetos.
Está orientado a combinar productos.

8. ¿Cuándo debe implementarse un diseño modular como software


monolítico? ¿Cómo se logra esto? ¿El rendimiento es la única
justificación para la implementación de software monolítico?
Se debe implementar un diseño modular como software monolítico cuando
una aplicación se diseña para realizar una sola función, que sea autónoma,
independiente de otras aplicaciones computacionales. Se logra combinando
la interfaz de usuario, la verificación, lógica de negocio y acceso de datos
en un solo programa de una plataforma única. Como justificación para
implementar software monolítico además del rendimiento es que funciona
más rápido, es fácil de desarrollar y es eficiente, ya que se producen pocos
cambios en el contexto.

This study source was downloaded by 100000813541851 from CourseHero.com on 02-23-2022 23:35:53 GMT -06:00

https://www.coursehero.com/file/28270410/Ingenieria-de-Softwaredocx/
9. 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 menciona que se 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.

10. ¿Cómo se relacionan los conceptos de acoplamiento y portabilidad


del software? Dé ejemplos que apoyen su punto de vista.
Para que el software sea portable es decir que el sistema sea fácil de
implementar, cuando pasa de una plataforma a otra; tiene que tener un
acoplamiento mínimo aceptable donde la relación entre módulos sea
mínima. Ejemplos: un sistema operativo como Linux que tiene bajo
acoplamiento al ser un sistema monolítico por lo que es portable al poderse
instalar en una computadora de cualquier marca. Otro ejemplo es el
navegador de internet Mozilla Firefox, que se puede ejecutar en cualquier
dispositivo con acceso a internet.

This study source was downloaded by 100000813541851 from CourseHero.com on 02-23-2022 23:35:53 GMT -06:00

https://www.coursehero.com/file/28270410/Ingenieria-de-Softwaredocx/
Powered by TCPDF (www.tcpdf.org)

También podría gustarte