Ian Sommerville - Notas

6
1 Ingeniería del Software. Ian Sommerville Introducción. Preguntas de introducción. ¿Qué es el software? Programas de ordenador y la documentación asociada. Los productos de software se pueden desarrollar para algún cliente en particular o para un mercado general. ¿Qué es la ingeniería del software? La ingeniería del software es una disciplina de ingeniería que comprende todos los aspectos de la producción de software. ¿Cuál es la diferencia entre ingeniería del software y ciencia de la computación? La ciencia de la computación comprende la teoría y los fundamentos; la ingeniería del software comprende las formas prácticas para desarrollar y entregar un software útil. ¿Cuál es la diferencia entre ingeniería del software e ingeniería de sistemas? La ingeniería de sistemas se refiere a todos los aspectos del desarrollo de sistemas informáticos, incluyendo hardware, software e ingeniería de procesos. La ingeniería del software es parte de este proceso. ¿Qué es un proceso del software? Un conjunto de actividades cuya meta es el desarrollo o evolución del software. ¿Qué es un modelo de procesos del software? Una representación simplificada de un proceso del software, presentad desde una perspectiva específica. ¿Cuáles son los costos de la ingeniería 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 evolución a menudo exceden los de desarrollo. ¿Qué son los métodos de la ingeniería del software? Enfoques estructurados para el desarrollo de software que incluyen modelos de sistemas, notaciones, reglas, sugerencias de diseño y guías de procesos. ¿Qué es CASE (ingeniería 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 método.

Transcript of Ian Sommerville - Notas

  • 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.