Final cap 3 y 4

Ingeniería de Software Capítulo 3 y4 Resolución de ejercicios del libro de Somerville y Pressman Miguel Betancourt Ale

Views 116 Downloads 4 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Ingeniería de Software Capítulo 3 y4

Resolución de ejercicios del libro de Somerville y Pressman

Miguel Betancourt Alexis Tacuri Fernando Salas

08/10/2013

Ingeniería de Software

Somerville Capítulo 3 3.1 ¿Cuáles son los tres tipos principales de sistemas críticos? Explique las diferencias entre ellos. Los tres tipos principales de sistemas críticos son: sistemas de seguridad críticos, sistemas de misión críticos, y sistemas de negocio críticos.  Los sistemas de seguridad críticos son sistemas que en caso de fallar, pueden ocasionar perjuicios, pérdidas de vidas o daños graves al medio ambiente.  Los sistemas de misión críticos son sistemas cuyo fallo de funcionamiento puede provocar errores en algunas actividades dirigidas por objetivos. En este tipo de sistemas no se pone en riesgo la salud o el medio ambiente, sino el alcance de un objetivo particular.  Los sistemas de negocio críticos son sistemas cuyo fallo de funcionamiento puede provocar costes muy elevados para el negocio que utiliza sistemas de este tipo. Un error en un sistema de negocio crítico puede llevar al fracaso del negocio que utilizó este sistema.

3.2 Sugiera seis razones de por qué la confiabilidad es importante en sistemas críticos. Ya que la confiabilidad consta de 4 dimensiones principales (disponibilidad, fiabilidad, seguridad y protección) haremos referencias a estas para plantear su importancia.  Los sistemas que son no fiables, inseguros o desprotegidos son rechazados a menudo por sus usuarios. Si los usuarios no confían en un sistema, se negarán a utilizarlo.  Los costes de los fallos de funcionamiento de sistema pueden ser enormes, el coste de un fallo en el sistema puede ser mayor en varios órdenes de magnitud que el coste del sistema.  Los sistemas no confiables pueden provocar pérdida de información importante. Es muy cara la captura y mantenimiento de los datos; algunas veces cuesta más que el sistema informático que los procesa.  Los sistemas deben proporcionar los servicios cuando sean requeridos y proporcionarlos como han sido especificados.  Un sistema debe poder funcionar sin presentar fallos catastróficos, el sistema nunca debería provocar daños en las persona o en el entorno del sistema incluso si este falla.

Ingeniería de Software

 Un sistema debe ser capaz de protegerse así mismo de ataques externos que pueden ser accidentales o provocados.

3.3 ¿Cuáles son las dimensiones más importantes de la confiabilidad del sistema?  Disponibilidad: capacidad de proporcionar servicios cuando son requeridos.  Fiabilidad: capacidad de proporcionar servicios como han sido especificados.  Seguridad: es una valoración de la probabilidad de que el sistema cause daños a las personas o a su entorno.  Protección: es una valoración de la probabilidad de que el sistema pueda resistir intrusiones no deseadas, sean estas accidentales o premeditadas. 3.4 ¿Por qué el coste para garantizar la confiabilidad es exponencial? Generar un software confiable incluye código extra para realizar las comprobaciones necesarias para estados excepcionales del sistema y para recuperar al sistema de un fallo. Debido a este diseño adicional, a la implementación extra y a los costes de validación, el incremento de la confiabilidad de un sistema puede hacer crecer significativamente los costes de desarrollo. Particularmente los costes de validación son elevados para sistemas críticos, puesto que además de validad que el sistema cumple con los requerimientos, el proceso de validación tiene que comprobar que el sistema es confiable a través de un sistema de regulación externo. 3.5.- Sugiera justificando sus respuestas, por qué los atributos de confiabilidad son probablemente los más críticos para los sistemas siguientes: a) Un servidor de internet proporcionado por un ISP con miles de clientes. b) Un escalpelo controlado por computadora usado para practicar incisiones en operaciones quirúrgicas. c) Un sistema de control direccional usado en el lanzamiento de un vehículo espacial. d) Un sistema de gestión de finanzas personales a través de internet. a) El servidor de internet debe garantizar los atributos de:  Disponibilidad.- Ya que el servidor siempre debería estar disponible, deberían poder acceder al servidor siempre.  Fiabilidad.- tener la certeza de que funciona de la manera que se ha sido especificado.  Protección.- ya que los usuarios que accedan al servidor deben tener la garantía de que no recibirá ataques como por ejemplo los virus. b) Para un escalpelo controlado por computadora, los atributos más importantes serian:  Fiabilidad.- Ya que cada vez que se lo utilice para operar el sistema deberá hacer lo que se pretende que haga.  Seguridad.- en el caso que los fallos se produjeran, el sistema también debería ser seguro para no provocar daño a la persona operada c) Un sistema de control direccional debe tener los siguiente atributos

Ingeniería de Software  Fiabilidad.- un pequeño error de cálculo puede provocar que el lanzamiento espacial fracase, por lo tanto la fiabilidad es fundamental.  disponibilidad.- debemos garantizar que al momento del lanzamiento, el sistema estará disponible  Seguridad.- En caso de fracasar el lanzamiento, sería bueno que no se produjeran daños en la tripulación, ni daños en el medio ambiente, por lo que el sistema también debe ser seguro. d) Un sistema de gestión de finanzas por internet debe tener todos los atributos:  Disponibilidad.- debe estar disponible todo el tiempo para cuando el usuario lo requiera  Fiabilidad.- debe realizar las tareas que el usuario le solicita, correctamente  Seguridad.- en caso de que ocurran fallos, debe evitar los daños a la cuenta del usuario.  Protección.- debe estar protegido y garantizar que la única persona que accede a la cuenta , es el propietario, y no un intruso.

3.6 Identifique seis productos de consumo que contengan, o que puedan contener en el futuro, sistemas software de seguridad críticos.  Sistema de alarma y monitoreo controlado vía web.  Un medidor de movimientos sísmicos utilizado para prevenir catástrofes naturales.  Un dispositivo que mida parámetros de salud en una persona (presión arterial, pulsaciones, glucosa, etc.)  Un sistema de piloto automático.  Un robot asistido por computadora utilizado para realizar operaciones.  Un software de control de una planta nuclear. 3.7 La fiabilidad y la seguridad son atributos de confiabilidad relacionados pero distintos. Describa la distinción más importante entre estos atributos y explique por qué es posible para un sistema fiable ser inseguro y viceversa. La fiabilidad de un sistema es la probabilidad de que el sistema funcione correctamente tal y como se ha especificado. En cambio, los sistemas de seguridad críticos son sistemas en los que es esencial que el funcionamiento del sistema sea siempre seguro, es decir que el sistema nunca debería provocar daños en las personas o en el entorno del sistema, incluso si este falla. Entonces, la distinción más importante es que la fiabilidad se trata de buscar que el sistema no falle (funcione siempre como se desea), entonces si el sistema falla, la fiabilidad se reduce. En cambio un sistema seguro busca que los sistemas no generen daños en las personas, aún cuando estos fallen. Un sistema es más fiable cuanto mayor es la probabilidad de que el sistema funcione correctamente, como se espera, pero puede ser inseguro si no está contemplado un fallo que pudiera ocasionar daños en las personas o en el entorno del sistema.

Ingeniería de Software De la misma manera, un sistema puede ser seguro porque garantiza que no se van a provocar daños a las personas o al entorno del sistema, pero ser muy poco fiable porque nunca hace lo que se espera del sistema. 3.8 En un sistema médico diseñado para suministrar radiación para tratar tumores, sugiera una contingencia que pueda ocurrir y proponga una característica del software que pueda usarse para asegurar que la contingencia identificada no derive en un accidente. Una contingencia que podría suscitarse en este software seria la fuga de material radioactivo. Una característica que el software puede utilizar para asegurar que esta fuga no provoque un accidente, podría ser la realización de una medición constante de los niveles de radiación y en el caso de producirse una fuga realizar una detención total del sistema. 3.9 Explique por qué hay una estrecha relación entre disponibilidad del sistema y protección del sistema. La disponibilidad por definición, es la probabilidad de que el sistema esté activo y en funcionamiento cuando sea requerido. Para que esto ocurra, debemos garantizar que el sistema no va a dejar de prestar los servicios, y para ello, debe estar protegido contra agentes no deseadas que puedan alterar el funcionamiento del sistema, y con él la disponibilidad del mismo. 3.10 En términos de protección de computadoras, explique las diferencias entre un ataque y una amenaza. Un ataque se produce cuando un intruso se aprovecha de la vulnerabilidad del sistema, generalmente ingresando al mismo desde afuera con la intención deliberada de causar algún daño. En cambio, las amenazas son circunstancias que potencialmente pueden provocar pérdidas o daños. La relación entre amenaza y ataque es que las primeras, pueden ser entendidas como una vulnerabilidad del sistema que está expuesto a un ataque. 3.11 ¿Es ético para un ingeniero estar de acuerdo en entregar a un cliente un sistema software con defectos conocidos? ¿Hay alguna diferencia si al cliente se le informa de la existencia de estos defectos con antelación? ¿Podría ser razonable realizar afirmaciones sobre la fiabilidad del software en dichas circunstancias? Si es ético la entrega de un software con defectos conocidos siempre y cuando estos defectos no afecten en gran medida a los requerimientos del usuario, ya que nunca se pude alcanzar el 100% de confiabilidad un sistema sin defectos no existe. Si existe alguna diferencia ya que al informarle al cliente sobre estos defectos se podría establecer nuevos requerimientos pero lo cual conllevaría a mayores costes.

Ingeniería de Software En cuanto a las afirmaciones si tenemos problemas conocidos, podemos hablar de que existe un cierto grado de fiabilidad, disminuido por supuesto por estos problemas, pero, nuevamente, resulta imposible alcanzar el 100% de fiabilidad de un sistema. 3.12 Como experto en protección de computadoras, suponga que una organización que realiza una campaña por los derechos de las víctimas de torturas le pide que ayude a la organización a conseguir accesos no autorizados a los sistemas informáticos de una compañía americana. Esto les ayudaría a confirmar o desmentir que esta compañía está vendiendo equipamiento que se usa directamente en la tortura de prisioneros políticos. Comente los problemas éticos que esta solicitud provoca y cómo podría reaccionar ante esta petición. En términos generales cualquier ingreso no autorizado a un sistema es algo que esta fuera de la ética, es decir si nos regimos simplemente a la ética y los procedimientos correctos, esto estaría completamente mal y bajo ningún aspecto seria bien visto hacerlo. Ahora desde el punto de vista personal lo haría, ya que lo estaría haciendo para una buena causa, ya que bajo ningún aspecto estoy de acuerdo con la tortura a seres humanos ni animales. En conclusión esta vez no me regiría por el reglamento, sino por lo que considero debería hacer.

Pressman Capítulo 4 4.11 Calcule el valor del punto de función de un proyecto con las siguientes características del dominio de información: Parámetros de medición Cuenta Medio Total Número de entradas de usuario 32 4 128 Número de salidas de usuario. 60 5 300 Número de peticiones de usuario 24 4 96 Número de archivos. 8 10 80 Número de interfaces externos 2 7 TOTAL 618 PF=Cuenta Total*[0.65 + 0.01 x ΣFi/2] PF=618 x [0.65 + 0.01 x 6 x 7] = 661.26

4.12 Calcule el valor del punto de función de un sistema empotrado con las características siguientes: Estructuras de datos interna: 6 Estructuras de datos externa: 3 Número de entradas de usuario: 12 Número de salidas de usuario: 60 Número de peticiones de usuario: 9 Número de interfaces externos: 3 Transformaciones: 36 Transiciones: 24

Ingeniería de Software

PF = Cuenta_ total x [0.65 + 0.01 x ∑Fi /2] PF = 881x [0.65 + 0.01 x 42] PF = 942.67 4.13 El software utilizado para controlar una fotocopiadora avanzada requiere 32.000 líneas de C y 4.200 líneas de Smalltalk. Estime el número de puntos de función del software de la fotocopiadora. Lenguaje C con LCD/PF 128 Lenguaje SmallTalk con LCD/PF 22 C =32000/128=250 SmallTalk =4200/22=191 Punto de Función C + SmallTalk = 441 4.15 Desarrolle sus propias métricas (no utilice las presentadas en este capítulo) de

corrección, facilidad de mantenimiento, integridad y facilidad de uso. Asegúrese de que se pueden traducir en valores cuantitativos.   

Reutilizable Exportable Migrabilidad

4.16. ¿Es posible que los desperdicios aumenten mientras que disminuyen defectos KLDC? Explíquelo. Disminuyen los desperdicios debido a la eficacia en KLD

Ingeniería de Software 4.17 ¿Tiene algún sentido la medida LDC cuando se utiliza el lenguaje de cuarta generación? Explíquelo. Debido a que cada vez los lenguajes y los programas requieren menos peso y un mejor rendimiento es recomendable tener un LDC corto para los lenguajes de cuarta generación. 4.18 Una organización de software tiene datos EED para 15 proyectos durante los 2 últimos años. Los valores recogidos son: 0.81, 0.71,0.87, 0.54,0.63, 0.71,0.90,0.82, 0.61, 0.84, 0.73,0.88,0.74,0.86,0.83. Cree Rm y cuadros de control individuales para determinar si estos datos se pueden utilizar para evaluar tendencias.

Ingeniería de Software

Gráfico de control de rango móvil 0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 1

2

3

4

5

6 Rm

7

8

Media Rm

9

10 LCS

11

12

13

14

Ingeniería de Software Am=Media de las métricas=0.765333… Calcular límite del proceso natural superior. (

)

=1.1491333…

Calcular el límite del proceso natural inferior. (

)

=-0.3815333…

Calcular la desviación estándar (

)

=0.1279333…

Se grafican las desviaciones por encima y por debajo del valor de Am en el gráfico de control individual.

Ingeniería de Software Conclusiones  En el gráfico de control individual el LPNI no se dibujó ya que es menor que CERO.  Ningún valor de la métrica individual aparece fuera del LPNS.  No aparecen ocho valores consecutivos de métrica situados a un lado del valor Am.  Dado que cuando tomamos tres valores consecutivos, dos de ellos no se encuentran fuera del rango de dos desviaciones estándar.  Puesto que cuando tomamos cinco valores consecutivos, cuatro de ellos no sobrepasan en rango de una desviación estándar.