Ingeniera de Software Capitulo Siete Que es Ingeniera

  • Slides: 22
Download presentation
Ingeniería de Software Capitulo Siete

Ingeniería de Software Capitulo Siete

¿Que es Ingeniería del Software? Es la rama de la Informática que busca principios

¿Que es Ingeniería del Software? Es la rama de la Informática que busca principios que sirvan como guía para el desarrollo de sistemas software complejos y de gran tamaño. La ingeniería del software incluye temas tales como: La gestión personal. La gestión de proyectos. La gestión empresarial.

La Disciplina de la Ingeniería del Software Existe una gran cantidad de técnicas de

La Disciplina de la Ingeniería del Software Existe una gran cantidad de técnicas de ingeniería previamente desarrolladas que puedan ser útiles. Seleccionar un dispositivo complejo de gran tamaño e imaginar que nos piden que lo diseñemos y que luego supervisemos su construcción. ¿Cómo podemos estimar el coste en tiempo, dinero y otros recursos necesarios para completar el proyecto?

Diferencia. Una de las diferencias implica la capacidad de construir sistemas a partir de

Diferencia. Una de las diferencias implica la capacidad de construir sistemas a partir de componentes genéricos prefabricados. Otra diferencia es la falta de técnicas cuantitativas, denominadas métricas, para medir las propiedades del software. Ejemplo: Para proyectar el coste de desarrollar un sistema software, a uno le gustaría estimar la complejidad del producto propuesto, pero los métodos para medir la complejidad del software son ellos mismos muy difusos. 4

ACM: Asociación de Hardware de Computación Fundada en 1947 Como una organización internacional de

ACM: Asociación de Hardware de Computación Fundada en 1947 Como una organización internacional de carácter científico y educativo dedicada al progreso de la ingeniería , las ciencias y las aplicaciones de la tecnología de la información. • Incluye numerosos grupos especiales que se centran en temas tales como: • La arquitectura de computadoras, la inteligencia artificial, la computación biomédica, la interacción entre computadoras y sociedad, la pedagogía de las ciencias de la computación, los gráficos por computadora, hipertexto/hipermedia, sistemas operativos, lenguajes de programación, simulación y modelado e ingeniería del software.

Ciclo de vida del Software Un ciclo de utilización y mantenimiento, un ciclo que

Ciclo de vida del Software Un ciclo de utilización y mantenimiento, un ciclo que continua durante el resto de la vida útil. La diferencia es que en el caso de otros productos, la fase de mantenimiento tiende a ser un proceso de reparación, mientras que en el caso del software, la fase de mantenimiento suele consistir en correcciones y actualizaciones. Desarrollo Uso Mantenimiento

Fase de Desarrollo Tradicional del Ciclo de Vida del Software Análisis de requisitos: su

Fase de Desarrollo Tradicional del Ciclo de Vida del Software Análisis de requisitos: su objetivo consiste en especificar que servicios proporcionara el sistema propuesto, identificar las condiciones impuestas a esos servicios(restricciones temporales de seguridad, etc. ) y definir como interactúa el mundo exterior con el sistema. Diseño: implica crear un plan para la construcción de ese sistema propuesto. En cierto sentido, el análisis de requisitos consiste en identificar el problema que hay que resolver, mientras que el diseño trata de desarrollar una solución para ese problema.

 Implementación: Implica la estructura de programas, la creación de archivos de datos y

Implementación: Implica la estructura de programas, la creación de archivos de datos y el desarrollo de bases de datos. Pruebas: se consideran ahora solo como de una de las tareas dentro del intento global del proceso del aseguramiento de la calidad del software, que es un objetivo que impregna todo el ciclo de vida del software.

IEEE: Es una organización de Ingenieros Eléctricos, Electrónicos y de Fabricación, fundada en 1963

IEEE: Es una organización de Ingenieros Eléctricos, Electrónicos y de Fabricación, fundada en 1963 como resultado de la fusión del Instituto Americano de Ingenieros Eléctricos y el Instituto de Ingenieros de Radio. Este instituto incluye numerosas sociedades técnicas 1. Sociedad Aeroespacial, y de Sistemas Electrónicos 2. Sociedad de Laceres y Electroóptica 3. Sociedad de Robótica y de Automatización 4. Sociedad Tecnología Vehicular y la 5. Sociedad de Computadoras.

Metodologías de Ingeniería del Software Modelo en Cascada: Analógico con el hecho de que

Metodologías de Ingeniería del Software Modelo en Cascada: Analógico con el hecho de que al proceso de desarrollo solo se dejaba fluir en una dirección. Modelo Incremental: Primer sistema una versión simplificada del producto final, con una funcionalidad limitada.

 Modelo Iterativo: Similar al modelo incremental y en ocasiones se identifica con el,

Modelo Iterativo: Similar al modelo incremental y en ocasiones se identifica con el, aunque se trata de dos modelos distintos. Modelo XP: El software se desarrollada incrementalmente por medio de ciclos diarios repetidos de análisis de requisitos, diseño, implementación y pruebas, todos ellos de carácter informal.

Modularidad Es la división del software en unidades manejables, que se denominan de forma

Modularidad Es la división del software en unidades manejables, que se denominan de forma genérica módulos, de cada una de las cuales trata únicamente con una parte de las tareas globales asignadas al software.

UML Los diagramas de flujo de datos y los diccionarios de datos eran herramientas

UML Los diagramas de flujo de datos y los diccionarios de datos eran herramientas del arsenal de la ingeniería del software mucho antes de la aparición del paradigma de orientación a objetos y han continuado encontrando un papel útil que desempeñar, aun cuando el paradigma imperativo para el que fueron originalmente desarrollados sea ahora menos popular. Lenguaje Unificado de Modelado, que fue desarrollado teniendo en mente el paradigma de orientación a objetos.

Patrones de diseño Es un modelo pre desarrollado para la resolución de un problema

Patrones de diseño Es un modelo pre desarrollado para la resolución de un problema recurrente en el diseño del software. Ejemplo: El patrón Adapter (adaptador) proporciona una solución a un problema que a menudo aparece al construir software a partir de módulos prefabricados.

Tragedias históricas del diseño de sistemas Un buen ejemplo de la necesidad de disciplinas

Tragedias históricas del diseño de sistemas Un buen ejemplo de la necesidad de disciplinas de diseño apropiadas son los problemas con los que se encontró el Therac-25 que era un sistema de radioterapia acelerador de electrones basado en computadoras, que la comunidad medica estuvo utilizando a mediados de la década de los 80.

Los fallos en el sistema de la maquina contribuyeron a la aparición de seis

Los fallos en el sistema de la maquina contribuyeron a la aparición de seis casos de sobredosis de radiación, tres de ellos con resultado de muerte, entre los fallos: 1) Un diseño inadecuado de la interfaz de la maquina, que permitía que el operador comenzara a aplicar la radiación antes de que la maquina se hubiera ajustado para la dosis apropiada. 2) Una mala coordinación entre el diseño del hardware y del software, que condujo a que no se incorporaran ciertas características de seguridad.

Documentación La documentación es una parte importante del paquete software final y como consecuencia

Documentación La documentación es una parte importante del paquete software final y como consecuencia uno de los temas importantes de la ingeniería del software. La documentación del software sirve para tres cosas distintas: 1) Documentación del usuario: Es explicar las características del software y describir como utilizarlo. 2) Documentación del sistema: Es describir la composición interna del software, de modo que este pueda ser mantenido en las etapas posteriores de su ciclo de vida. 3) Documentación técnica: es describir como hay que instalar y dar servicio a un sistema software(como por ejemplo cual es la forma de ajustar los parámetros de operación, como instalar actualizaciones y como informar e los problemas al desarrollador del software).

Interfaz persona-maquina Los seres humanos deberían poder emplear un sistema software como una herramienta

Interfaz persona-maquina Los seres humanos deberían poder emplear un sistema software como una herramienta abstracta. Esta herramienta debería de ser fácil de aplicar y estar diseñada para minimizar (idealmente eliminar) los errores de comunicación entre el sistema y los usuarios humanos. La interfaz persona-maquina se ha convertido en una de los proyectos de desarrollo software y es uno de los campos de mayor crecimiento dentro de la ingeniería del software.

 La investigación de interfaces persona-maquina se apoya fuertemente en las áreas de la

La investigación de interfaces persona-maquina se apoya fuertemente en las áreas de la ingeniería denominadas ergonomía, que trata con el diseño de sistemas que armonicen con las capacidades físicas de los seres humanos, y cognitiva, que trata del diseño de sistemas que armonicen con las habilidades mentales de las personas.

 La interacción mental con las maquinas, por el contrario, es un fenómeno relativamente

La interacción mental con las maquinas, por el contrario, es un fenómeno relativamente nuevo y es por eso que la cognitiva ofrece el mayor potencial para futuras investigaciones de provecho y para el aprendizaje de nuevas lecciones acerca de la interacción persona-maquina.

Propiedad del Software & Responsabilidad Legal La mayoría de las personas estarían de acuerdo

Propiedad del Software & Responsabilidad Legal La mayoría de las personas estarían de acuerdo en que una empresa o un individuo tienen derecho a recuperar la inversión necesaria para desarrollar un software de calidad y a obtener beneficio económico de la misma. En caso contrario, es poco probable que hubiera muchas personas dispuestas a cometer la tarea de fabricar el software que nuestra sociedad desea. Una licencia de software es un acuerdo legal entre el propietario y el usuario de un producto software que concede al usuario ciertos permisos para utilizar el producto sin transferirle los derechos de propiedad intelectual sobre el mismo.

La importancia de conocer copyright, las licencias de software y las patentes es enorme

La importancia de conocer copyright, las licencias de software y las patentes es enorme en el proceso de la ingeniería del software. A la hora de desarrollar un producto software, los ingenieros de software a menudo incorporan software de otros productos ; ya sea un producto completo, un subconjunto de componentes o incluso partes de código fuentes descargadas a través de internet.