El documento habla sobre la ingeniería de software. Define la ingeniería de software como la aplicación sistemática y cuantificable del desarrollo, operación y mantenimiento del software. Discuta los orígenes de la ingeniería de software, su importancia, organizaciones como SEI y W3C, modelos de desarrollo como cascada, prototipos y espiral, y conceptos como ciclo de vida del desarrollo de software y arquitectura de software. Finalmente, incluye una bibliografía de recursos adicionales.
Ingeniería de software Definicion,inicion,importancia y utilidad
1. Ingeniería de software
TIC SI 5-1
Profesor: Chenoweth Juan R.
Alumno: Carrera Vazquez Wilghen
2. Introducción
• Tema principal es definiciones, orígenes, su
importancia. Definiciones de Software
Engineering Suit (SEI) y el World Wide Web
Consortium (W3C) que son organizaciones
que se encargan de la ingeniería de software
como nos ayuda a la creación de software de
calidad que también se incluyen los modelos
de desarrollo y sus procesos para el desarrollo
del mismo.
3. Definición
• Ingeniería de Software es la aplicación de un
enfoque sistemático, disciplinado y
cuantificable al desarrollo operación
(funcionamiento) y mantenimiento del
software: es decir, la aplicación de ingeniería
al software. [IEEE, 1993]
5. • El concepto de ingeniería del software surgió
en 1968, tras una conferencia en Garmisch
(Alemania) que tuvo como objetivo resolver
los problemas de la crisis del software. Este
fue ocasionado por el avance desmesurado de
el hardware lo que hacia el software cada vez
mas completo y generalmente nunca se
terminaba a tiempo.
7. • es muy importante ya que con ella se puede
analizar, diseñar, programar y aplicar un
software de manera correcta y organizada,
cumpliendo con todas las especificaciones del
cliente y el usuario final. Lo anterior es posible
gracias a los objetivos que esta propone
8. • En la construcción y desarrollo de proyectos se
aplican métodos y técnicas para resolver los
problemas, la informática aporta herramientas
y procedimientos sobre los que se apoya la
ingeniería de software.
• Mejorar la calidad de los productos de
software.
• Aumentar la productividad y el trabajo de los
ingenieros de software.
10. • Facilitar el control en el proceso de desarrollo
de software
• Suministrar a los desarrolladores las bases
para construir software de alta calidad en una
forma eficiente.
• Definir una disciplina que garantice la
producción y el mantenimiento de los
productos software desarrollados en el plazo
fijado y dentro del costo estimado.
12. SEI (Software Engineering Institute)
• Es un centro de investigación y desarrollo
fundado por el Departamento de Defensa de
los Estados Unidos y operado por la Carnegie
Mellon University, en Pittsburgh,
Pennsylvania. La SEI ayuda en el avance de los
principios y prácticas de la ingeniería de
software, y sirve como un recurso nacional en
la ingeniería de software, seguridad en
computación, y mejora en procesos.
13. W3C (World Wide Web Consortium)
• Es la principal organización internacional de
estándares para la World Wide Web. Fue fundada
por Tim Berners-Lee en Octubre de 1994, en la
MIT/LCS (Massachusetts Institute Of Tecnology
Laboratory for Computer Science), y actualmente
es quien lo encabeza. Dicho consorcio está
conformado por organizaciones que mantienen
un staff de tiempo completo con el propósito de
trabajar juntos en el desarrollo de estándares
para la World Wide Web.
15. Modelo en Cascada: Es el enfoque metodológico que ordena
rigurosamente las etapas del proceso para el desarrollo de software,
de tal forma que el inicio de cada etapa debe esperar a la finalización
de la etapa anterior. Un ejemplo de dicha metodología es:
• Análisis de requisitos.
• Diseño del Sistema.
• Diseño del Programa.
• Codificación.
• Pruebas.
• Implantación.
• Mantenimiento.
De esta forma, cualquier error de diseño detectado en la etapa de
prueba conduce necesariamente al rediseño y nueva programación del
código afectado, aumentando los costos del desarrollo.
16. • Modelo de Prototipos: Se trata de un modelo de
desarrollo de tipo evolutivo. La mecánica consiste en
construir un prototipo en poco tiempo, utilizando los
programas adecuados y tratando de no usar mucho
dinero pues, a partir de que el prototipo sea aprobado,
se podrá comenzar con el desarrollo del producto final.
• El modelo de prototipos consta de varias etapas.
• Comunicación
• Plan Rápido
• Modelado, Diseño Rápido
• Construcción del Prototipo
• Desarrollo, Entrega y Retroalimentación
17. • Modelo en Espiral: Es un modelo de
desarrollo evolutivo. Las actividades a realizar
se encuentran dentro de una espiral, donde
cada bucle representa un conjunto de
actividades, las cuales no cuentan con ninguna
prioridad, sino que las siguientes se definen
en función del análisis de riesgos.
• Para cada ciclo, habrá cuatro actividades a
realizar.
18. Determinar o fijar objetivos:
• - Fijar también los productos definidos a
obtener: requerimientos, especificación,
manual de usuario.
• - Fijar las restricciones.
• - Identificación de riesgos del proyecto y
estrategias alternativas para evitarlos.
• - Hay una cosa que solo se hace una vez: la
planificación inicial.
19. • Análisis del riesgo:
- Se lleva a cabo el estudio de las causas de las
posibles amenazas y probables eventos no
deseados y los daños y consecuencias que éstas
puedan producir.
• Planificar:
- Revisamos todo lo hecho, evaluándolo, y con
ello decidimos si continuamos con las fases
siguientes y planificamos la próxima actividad.
20. • Desarrollar, verificar y validar (probar):
- Tareas de la actividad propia y de prueba.
- Análisis de alternativas e identificación resolución
de riesgos.
- Dependiendo del resultado de la evaluación de los
riesgos, se elige un modelo para el desarrollo, el
que puede ser cualquiera de los otros existentes,
como formal, evolutivo, cascada, etc. Si lo riesgos
de protección son la principal consideración, un
desarrollo basado en transformaciones formales
podría ser el más apropiado.
22. • Definición de objetivos: definir el resultado
del proyecto y su papel en la estrategia global.
• Análisis de los requisitos y su viabilidad:
recopilar, examinar y formular los requisitos
del cliente y examinar cualquier restricción
que se pueda aplicar.
23. • Diseño general: requisitos generales de la
arquitectura de la aplicación.
• Diseño en detalle: definición precisa de cada
subconjunto de la aplicación.
• Programación (programación e
implementación): es la implementación de un
lenguaje de programación para crear las
funciones definidas durante la etapa de
diseño.
24. • Prueba de unidad: prueba individual de cada
subconjunto de la aplicación para garantizar
que se implementaron de acuerdo con las
especificaciones.
• Integración: para garantizar que los diferentes
módulos se integren con la aplicación. Éste es
el propósito de la prueba de integración que
está cuidadosamente documentada.
25. • Prueba beta (o validación), para garantizar
que el software cumple con las
especificaciones originales.
• Documentación: sirve para documentar
información necesaria para los usuarios del
software y para desarrollos futuros.
26. • Implementación
• Mantenimiento: para todos los
procedimientos correctivos (mantenimiento
correctivo) y las actualizaciones secundarias
del software (mantenimiento continuo).
28. • un conjunto de patrones que proporcionan un
marco de referencia necesario para guiar la
construcción de un software, permitiendo a
los programadores, analistas y todo el
conjunto de desarrolladores del software
compartir una misma línea de trabajo y cubrir
todos los objetivos y restricciones de la
aplicación. Es considerada el nivel más alto en
el diseño de la arquitectura de un sistema
puesto que establecen la estructura,
funcionamiento e interacción entre las partes
del software.
29. Patrones de Arquitectura de Software
• Cliente-Servidor
• Blackboard
• Modelo entre capas
• Intérprete
• Orientado a servicios
Cuenta con varios modelos
• Estructurales, dinámicos y de procesos.
30. Conclusión
• Esta actividad nos mostró una investigación de
un glosario de las definiciones que son muy
específicas, así como definiciones de la
Ingeniería de Software y que sin importar su
modelo o definición de diferentes
organizaciones y puntos de vista se utiliza para
la creación de un mejor software de calidad
con el desarrollo de software mediante a sus
procesos métodos e herramientas que posee.
33. Videos relacionados (nota: no son mis videos los tomes como
consulta adicional están interesantes):
• http://www.youtube.com/watch?v=YFin8nNnARA
• http://www.youtube.com/watch?v=Xxsf0wXq5OY
• http://www.youtube.com/watch?v=wCnrPpuWVcU
• http://www.youtube.com/watch?v=r9hRk-S2qrQ