1. Universidad
Pedagógica Nacional de Francisco Morazán
PREUFOD
Clase: INFORMATICA BASICA.
Lic. Marció Rodas.
Exposición:
Ingeniería del Software
Cap. 7
Tegucigalpa M.D.C. 8 de Junio del 2016
2. ¿Que es Ingeniería del Software?
Es la rama de las Ciencias de la Computación 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, que suelen asociarse mas con
La gestión empresarial que con las ciencias de la computación.
2
3. La disciplina de la ingeniería
del software
La ingeniería es un campo bien consolidado, podríamos
pensar que existe una gran cantidad de técnicas de
ingeniería previamente desarrolladas que puedan ser útiles
para responder cuestiones como:
Seleccionar un dispositivo complejo de gran tamaño (un
automóvil, un edificio de oficina de varios pisos, o quizás una
catedral) 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?
3
4. Diferencias en la disciplina de la
ingeniería del software y otras
disciplinas de la ingeniería
Una de las diferencias implica la capacidad
de construir sistemas a partir de
componentes genéricos prefabricados.
.
4
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.
5. ACM
Association for Computing Machinery,
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
5
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.
6. Ciclo de vida del Software
Entra en un ciclo de utilización y mantenimiento, un ciclo que
continua durante el resto de la vida útil de ese software. Ese patrón
es común también para muchos otros productos manufacturados.
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.
6
Desarrollo
Mantenimiento
Uso
7. 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 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.
7
8. IEEE
Institute of Electrical and Electronics Engineers) 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 ( fundado en 1884
por 25 ingenieros eléctricos, entre los que estaba Thomas
Edison) y el Instituto de Ingenieros de Radio (fundado en 1912).
Este instituto incluye numerosas sociedades técnicas como la :
Sociedad Aeroespacial, y de Sistemas Electrónicos
Sociedad de Laceres y Electroóptica
Sociedad de Robótica y de Automatización
Sociedad Tecnología Vehicular y la
Sociedad de Computadoras.
8
9. 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, 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.
9
10. Modularidad
Es la división del software en unidades mas 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.
10
11. 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.
11
12. Patrones de diseño
Es un modelo predesarrollado 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.
12
13. 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 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.
13
14. 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).
14
15. 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 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 cognetica, que trata del diseño de sistemas que
armonicen con las habilidades mentales de las personas.
15
16. La interacción mental con las maquinas, por el contrario, es un
fenómeno relativamente nuevo y es por eso que la cognetica ofrece
el mayor potencial para futuras investigaciones de provecho y para
el aprendizaje de nuevas lecciones acerca de la interacción
persona-maquina.
16
17. Propiedad del software y 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.
17
18. 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.
18