Post on 25-Nov-2015
1
Ingeniera del Software. Ian Sommerville
Introduccin.
Preguntas de introduccin.
Qu es el software?
Programas de ordenador y la documentacin asociada. Los productos de software se pueden
desarrollar para algn cliente en particular o para un mercado general.
Qu es la ingeniera del software?
La ingeniera del software es una disciplina de ingeniera que comprende todos los aspectos de
la produccin de software.
Cul es la diferencia entre ingeniera del software y ciencia de la computacin?
La ciencia de la computacin comprende la teora y los fundamentos; la ingeniera del software
comprende las formas prcticas para desarrollar y entregar un software til.
Cul es la diferencia entre ingeniera del software e ingeniera de sistemas?
La ingeniera de sistemas se refiere a todos los aspectos del desarrollo de sistemas
informticos, incluyendo hardware, software e ingeniera de procesos. La ingeniera del
software es parte de este proceso.
Qu es un proceso del software?
Un conjunto de actividades cuya meta es el desarrollo o evolucin del software.
Qu es un modelo de procesos del software?
Una representacin simplificada de un proceso del software, presentad desde una perspectiva
especfica.
Cules son los costos de la ingeniera del software?
A grande rasgos, el 60% de los costos son de desarrollo, el 40% restante son de pruebas. En el
caso del software personalizado, los costos de evolucin a menudo exceden los de desarrollo.
Qu son los mtodos de la ingeniera del software?
Enfoques estructurados para el desarrollo de software que incluyen modelos de sistemas,
notaciones, reglas, sugerencias de diseo y guas de procesos.
Qu es CASE (ingeniera del software asistida por ordenador?
Sistemas de software que intentan proporcionar ayuda automatizada a las actividades del
proceso del software. Los sistemas CASE a menudo se utilizan como apoyo al mtodo.
2
Cules son los atributos de un buen software?
El software debe tener la funcionalidad y el rendimiento requeridos por el usuario, adems de
ser mantenible, confiable y fcil de utilizar.
Cules son los retos fundamentales a los que se enfrenta la ingeniera del software)?
Enfrentarse con la creciente diversidad, las demandadas para reducir los tiempos de entrega y
el desarrollo de software fiable.
Definicin de mtodo.
Un mtodo es un enfoque estructurado para el desarrollo de software cuyo propsito es
facilitar la produccin de software de alta calidad de una forma costeable.
Componentes de un mtodo.
Descripciones del modelo del sistema. Descripciones de los modelos del sistema que
desarrollar y la notacin utilizada para definir estos modelos. Por ejemplo: modelos de
objetos o flujos de datos.
Reglas. Restricciones que siempre se aplican a los modelos de sistemas. Por ejemplo: cada
entidad de un modelo del sistema debe tener un nombre nico.
Recomendaciones. Heurstica que caracteriza una buena prctica de diseo en este mtodo.
Seguir recomendaciones debe dar como resultado un modelo del sistema bien organizado. Por
ejemplo: ningn objeto debe tener ms de siete subobjetos asociados a l.
Guas en el proceso. Descripciones de las actividades que deben seguirse para desarrollar los
modelos del sistema y la organizacin de estas actividades. Por ejemplo: los atributos de los
objetos deben documentarse antes de definir las operaciones asociadas a un objeto.
Los atributos de un buen software.
Mantenibilidad. El software debe escribirse de tal forma que pueda evolucionar para cumplir
las necesidades de cambio de los clientes. ste es un atributo crtico debido a que el cambio en
el software es una consecuencia inevitable de un cambio en el entorno de negocio.
Confiabilidad. La confiabilidad del software tiene un gran nmero de caractersticas,
incluyendo la fiabilidad, la proteccin y la seguridad. El software confiable no debe causar
daos fsicos en el caso de que se produzca un error en el sistema.
Eficiencia. El software no debe hacer que se malgasten los recursos del sistema, como la
memoria y los ciclos de procesamiento. Por lo tanto, la eficiencia incluye tiempos de respuesta
y de procesamiento, de utilizacin de memoria, etc.
Usabilidad. El software debe ser fcil de utilizar, sin esfuerzo adicional, por el usuario para
quien est diseado. Esto significa que debe tener una interfaz de usuario apropiada y una
documentacin adecuada.
3
Puntos clave.
La ingeniera del software es una disciplina de ingeniera que comprende todos los aspectos
de produccin de un software.
Los productos software consisten en programas desarrollados y en la documentacin
asociada.
Los atributos esenciales de los productos software son: Mantenibilidad, confiabilidad,
eficiencia y usabilidad.
El proceso del software incluye todas las actividades relativas al desarrollo del software. Las
actividades de alto nivel de especificacin del software, el desarrollo, la validacin y la
evolucin son parte de todos los procesos software.
Los mtodos son formas organizadas de producir software. Incluyen sugerencias para el
proceso que se debe seguir, la notacin que se va a utilizar, los modelos del sistema que hay
que desarrollar y las reglas que gobiernan estos modelos junto con las pautas de diseo.
Las herramientas CASE son sistemas de software que estn diseados para ayudar a las
actividades rutinarias del proceso del software, como editar diagramas de diseo, verificar la
consistencia de stos y mantener un banco de pruebas de los programas ejecutados.
Los ingenieros de software tienen responsabilidades en la profesin de la ingeniera y en la
sociedad. No slo deben estar pendientes de los aspectos tcnicos.
Las sociedades profesionales publican cdigos de conducta que definen los estndares de
comportamientos esperado por sus miembros.
Sistemas socio-tcnicos.
Propiedades emergentes de los sistemas.
Volumen. El volumen de un sistema (el espacio total ocupado) vara dependiendo de cmo
estn ordenados y conectados los montajes de los componentes.
Fiabilidad. La fiabilidad del sistema depende de la fiabilidad de los componentes, pero
interacciones inesperadas pueden causar nuevos tipos de fallos y, por lo tanto, afectar a la
fiabilidad del sistema.
Proteccin. La proteccin del sistema (su capacidad para resistir ataques) es una propiedad
compleja que no se puede medir fcilmente. Los ataques pueden ser ideados de forma que no
fueron predichos por los diseadores del sistema y as vencer las protecciones incorporadas.
Reparabilidad. Esta propiedad refleja que punto resulta fcil arreglar un problema con el
sistema una vez que ha sido descubierto. Depende de la posibilidad de diagnosticar el
4
problema, acceder a los componentes que son defectuosos y modificar o reemplazar estos
componentes.
Usabilidad. Esta propiedad refleja como es de fcil usar el sistema. Depende de los
componentes tcnicos del sistema, sus operarios y su entorno de operaciones.
Puntos clave.
Los sistemas socio-tcnicos incluyen hardware, software y personas y, se sitan dentro de una
organizacin. Estn diseados para ayudar a la organizacin a cumplir algn objetivo amplio.
Las propiedades emergentes de un sistema son caractersticas de los sistemas como un todo
ms que sus partes componentes. Incluyen propiedades como el rendimiento, la fiabilidad, la
usabilidad, la seguridad y la proteccin. El xito o fracaso de un sistema depende a menudo de
estas propiedades emergentes.
El proceso de la ingeniera de sistemas comprende la especificacin, el diseo, el desarrollo, la
integracin y las pruebas. La integracin de sistemas es crtica cuando diversos subsistemas de
diferentes proveedores deben trabajar de manera conjunta.
Factores humanos y organizacionales como la estructura y polticas organizacionales influyen
de forma significativa en el funcionamiento de los sistemas socio-tcnicos.
Dentro de una organizacin, existen complejas relaciones entre los procesos de adquisicin,
desarrollo y operativo del sistema.
Un sistema heredado es un sistema antiguo que an proporciona servicios esenciales de
negocio.
Los sistemas heredados no son slo sistemas de software de aplicacin. Son sistemas socio-
tcnicos, por lo que incluyen procesos de negocio, software de aplicacin, software de apoyo y
sistema hardware.
Sistemas crticos.
Terminologa de la fiabilidad.
Fallo del sistema. Evento que tiene lugar en algn instante cuando el sistema no funciona
como esperan sus usuario.
Error del sistema. Estado errneo del sistema que puede dar lugar a un comportamiento
inesperado por sus usuarios.
Defecto del sistema. Caracterstica de un sistema software que puede dar lugar a un error del
sistema. Por ejemplo: un fallo en la ejecucin al inicializar una variable puede hacer que dicha
variable tenga un valor incorrecto cuando sea usada.
5
Error humano o equivocacin. Comportamiento humano que tiene como consecuencia la
introduccin de defectos en el sistema.
Terminologa de la fiabilidad.
Accidente. Evento o secuencia de eventos no planificados que provocan muerte o lesiones,
dao a las propiedades o al entorno. Un ejemplo de un accidente es una mquina controlada
por un ordenador que lesiona a su operador.
Contingencia. Una condicin con el potencial de causar o contribuir a un accidente. Un
ejemplo de contingencia es un fallo de funcionamiento de un sensor que detecta un obstculo
delante de una mquina.
Dao. Medida de la prdida resultante de un percance. El dao puede variar desde varias
personas muertas como resultado de un accidente, hasta lesiones o daos menores a la
propiedad.
Gravedad de la contingencia. Evaluacin del peor dao posible que podra resultar de una
contingencia en particular. La gravedad de la contingencia puede variar desde catastrfica, en
donde muchas personas mueren, a menor, en donde resultan solamente daos menores.
Probabilidad de la contingencia. La probabilidad de la ocurrencia de eventos que provocan
una contingencia. Los valores de probabilidad tienden a ser arbitrarios, pero varan desde
probable hasta improbable.
Riesgo. Es una medida de la probabilidad de que el sistema provoque un accidente. El riesgo se
evala considerando la probabilidad de la contingencia, la gravedad de la contingencia y la
probabilidad de que una contingencia cause un accidente.
Puntos clave.
En un sistema crtico, un fallo de funcionamiento puede provocar prdidas econmicas
importantes, daos fsicos o amenazas a la vida humana. Tres clases importantes de sistemas
crticos son los sistemas de seguridad crticos, sistemas de misin crticos y sistemas de
negocio crticos.
La confiabilidad de un sistema informtico es una propiedad del sistema que refleja el grado
de confianza que el usuario tiene en el sistema. Las dimensiones ms importantes de la
confiabilidad son la disponibilidad, fiabilidad, seguridad y proteccin.
La disponibilidad de un sistema es la probabilidad de que le sea posible entregar los servicios a
sus usuarios cuando se lo soliciten y la fiabilidad es probabilidad de que los servicios del
sistema se entreguen de acuerdo con lo especificado.
La fiabilidad y la disponibilidad se consideran normalmente como las dimensiones ms
importantes de la confiabilidad. Si un sistema no es fiable, es difcil asegurar la seguridad del
sistema o su proteccin, ya que stas pueden verse comprometidas por fallos de
funcionamiento del sistema.
6
La fiabilidad se relaciona con la probabilidad de que se produzca un error en el momento de
utilizar el sistema. Un programa puede contener defectos conocidos, pero an puede
considerarse como fiable por sus usuarios. stos pueden no usar nunca las caractersticas del
sistema que estn afectadas por esos defectos.
La seguridad de un sistema es un atributo de ste que refleja la capacidad del sistema para
funcionar, de forma normal o anormalmente, sin amenazar a las personas o al entorno.
La proteccin es importante para todos los sistemas crticos. Sin un nivel de proteccin
razonable, la disponibilidad, fiabilidad y seguridad de un sistema pueden verse comprometidas
si ataques externos provocan algn dao al sistema.
Para mejorar la confiabilidad, es necesario adoptar una aproximacin socio-tcnica para el
diseo del sistema, teniendo en cuenta a las personas que forman parte del sistema as como
el hardware y el software.