Vous êtes sur la page 1sur 38

ISC Mauricio Del Angel Esteban 29/05/2019 2

Unidad 1: Introducción y modelos de software

•Que el estudiante comprenda los conceptos y modelos de ingeniería


de software para aplicarlos en sus proyectos de software.

Unidad 2: Proyectos de ingeniería de software

•Que el estudiante aprenda la planificación y análisis de proyectos de


software.

Unidad 3: Calidad de software

•Que el alumno comprenda los elementos que califican a un software


de calidad.
• Ingeniería del Software es el estudio de los principios
y metodologías para desarrollo y mantenimiento de
sistemas de software. [Zelkovitz, 1978]
• Ingeniería del Software es la aplicación práctica del
conocimiento científico en el diseño y construcción
de programas de computadora y la
documentación asociada requerida para
desarrollar, operar y mantenerlos. Se conoce
también como desarrollo de software o producción
de software. [Bohem, 1976]
• Ingeniería del software trata del establecimiento de
los principios y métodos de la ingeniería a fin de
obtener software de modo rentable que sea fiable
y trabaje en máquinas reales. [Bauer, 1972]
• 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. 2. El
estudio de enfoques como en (1) [IEEE, 1993]
• Software
• Sistema
• Hardware
• Calidad
• Eficiencia
• Eficacia
• Atributo
• ¿Consideras que el software se desarrolla o se fabrica?
Justifica tu respuesta
• Conjunto de elementos que se encuentran
relacionados entre sí y que se utilizan para
cumplir una función única.
• La ingeniería de sistemas consiste en la actividad
de especificar, diseñar, implementar, validar,
distribuir y mantener sistemas como un todo.
• Los ingenieros de sistemas no sólo están
relacionados con el software, sino también con el
hardware y las interacciones del sistema con los
usuarios y su entorno.
• El software se desarrolla, no se fabrica.
• El software no se descompone, se echa a perder.
• Aunque la industria tiende a ensamblar
componentes, la mayoría del software es hecho
a la medida.
Usuarios Desarrolladores
• Disponibilidad • Mantenimiento

• Eficiencia • Portabilidad

• Flexibilidad • Reusable

• Integridad • Comprobable

• Interoperabilidad • Gestionable

• Confiabilidad • Seguridad

• Robustez

• Usable
• El concepto “ingeniería de software” se propuso originalmente en
1968, en una conferencia realizada para discutir lo que entonces
se llamaba la “crisis del software” (Naur y Randell, 1969). Se volvió
claro que los enfoques individuales al desarrollo de programas no
escalaban hacia los grandes y complejos sistemas de software.
Éstos no eran confiables, costaban más de lo esperado y se
distribuían con demora.
• A lo largo de las décadas de 1970 y 1980 se desarrolló una
variedad de nuevas técnicas y métodos de ingeniería de
software, tales como la programación estructurada, el
encubrimiento de información y el desarrollo orientado a objetos.
Se perfeccionaron herramientas y notaciones estándar y ahora se
usan de manera extensa.
• Mitos del gestor
• Cambiar es una mala idea
• Todo es cuestión de esfuerzo

• Mitos de los clientes


• No hace falta dar detalles para empezar
• El software se cambia sin esfuerzo

• Mitos de los desarrolladores


• Lo importante es que funcione
• La calidad no se puede ir midiendo
• El ejecutable es el producto
Especificación
del software

Diseño e
Evolución del
implementación
software
del software

Validación del
software
• Metodologías clásicas
• Durante la actividad de requerimientos y diseño del
sistema, estos pueden ser modelados como un conjunto
de componentes y de relaciones entre estos
componentes.

• Otras metodologías
• Se refieren a procesos de desarrollo donde se
implementan técnicas de ingeniería desde diferentes
perspectivas para poder agilizar u optimizar el desarrollo
del software.
Este toma las actividades fundamentales del proceso de
especificación, desarrollo, validación y evolución y, luego, los
representa como fases separadas del proceso, tal como
especificación de requerimientos, diseño de software,
implementación, pruebas, etcétera.
• Las ventajas del modelo en cascada son que la
documentación se produce en cada fase y este cuadra con
otros modelos del proceso de ingeniería.
• La principal desventaja es su inflexibilidad en dividir el
proyecto en distintas etapas. Se debe hacer compromisos en
las etapas iniciales, lo que hace difícil responder a los
cambios en los requerimientos del cliente.
Implementación Implementación
Análisis Diseño Integración
y pruebas y mantenimiento
• El modelo incremental aplica secuencias lineales de
forma escalonada mientras progresa el tiempo en el
calendario. Cada secuencia lineal produce un
incremento del software combinada con los elementos
del modelo lineal secuencial con la filosofía interactiva de
construcción de prototipos.
• El desarrollo incremental es particularmente útil cuando la
dotación de personal no está disponible para una
implementación completa en la fecha límite que se haya
establecido para el proyecto. Los primeros incrementos se
pueden implementar con menos personas.
• Los modelos evolutivos son iterativos. Se
caracterizan por la forma en que permiten a los
ingenieros del software desarrollar versiones cada
vez más completas del software.
• Es un proceso evolutivo que conjuga la naturaleza
iterativa de construcción de prototipos con los
aspectos controlados y sistemáticos del modelo
lineal secuencial.
• El software se desarrolla en una serie de versiones
incrementales.
• Contiene seis regiones: comunicación con el
cliente, planificación, análisis de riesgos, ingeniería,
construcción y acción, evaluación del cliente.
• Este paradigma comienza con la recolección de
requisitos. Entonces aparece un diseño rápido. El
diseño rápido lleva a la construcción de un
prototipo. El prototipo lo evalúa el cliente/usuario y
se utiliza para refinar los requisitos del software a
desarrollar. La iteración ocurre cuando el prototipo
se pone a punto de satisfacer las necesidades del
cliente, permitiendo al mismo tiempo que el
desarrollador comprenda mejor lo que necesita
hacer.
• Incorpora muchas características del modelo
basado en espiral. Es evolutivo por naturaleza y
exige un enfoque iterativo para la creación del
software. Sin embargo, configura aplicaciones
desde componentes preparados de software.
Conduce a la reutilización de software y la
reutilización proporciona beneficios al ingeniero
de software.
• El modelo ganar-ganar la mayoría de las veces satisface
las necesidades del cliente y el desarrollador gana
logrando la entrega del sistema en fechas y actividades
establecidas al principio del modelo.
• Puntos de fijación dentro del modelo ayudando al ciclo
alrededor de la espiral
• 1. Objetivos del ciclo de vida.
• 2. Arquitectura del ciclo de vida.
• 3. Capacidad operativa inicial.
• El proceso unificado es un incremental en el que se define 5 fase:
• Inicio: Abarca la comunicación con el cliente y las actividades de
planeación y destaca el desarrollo y el refinamiento de los casos de uso
como modelo primario.
• Elaboración: abarca la comunicación con el cliente y las actividades de
modelado con un enfoque en la creación de modelos de análisis y diseño,
con énfasis en las definiciones de clases y representaciones arquitectónicas.
• Construcción: Refina y después traduce el modelo de diseño en
componentes de software implementados.
• Transición: Transfiere el software del desarrollador el usuario final para
realizar las pruebas beta y obtener la aceptación.
• Producción: Se realiza el monitoreo continuo y el soporte.
• Ingeniería web son sistemas y aplicaciones basados en
web.
• Ingeniera web abarca actividades técnicas.
• Las categorías de aplicaciones que se enumeran a
continuación son las más frecuentes en el trabajo de la
Web:
• Informativa, Descarga, Personalizable, Entrada del
usuario, Orientada a transacciones, Orientado a servicios,
Portal, Acceso a bases de datos, Almacenes de datos.
• Organizar el qué hacer del proceso de desarrollo
de software.
• Minimizar tiempo y costos involucrados.
• Maximizar el uso de recursos disponibles.
• Establecer hitos del proyecto.
• Medir el avance.
• Mejorar la comunicación.
• Obtener soporte técnico, de gerencia y político.
La planificación formal es aquella que es:
• Documentada.
• Uniforme y regularmente aplicada.
• Con resultados concretos, distribuidos,
entendidos y comprometidos por la
organización.
• En una planificación formal deben quedar claramente
identificados los planes, procedimientos, la organización, la
asignación de recursos y las responsabilidades. El proceso de
planificación produce idealmente un conjunto de planes,
clasificados como esenciales y de soporte. Los planes
esenciales son aquellos que se consideran imprescindibles en
cada proyecto, dentro de estos están: Plan de Proyecto, Plan
de Pruebas y Plan de Instalación.
• Los planes de soporte no siempre son necesarios, entre ellos
están: Plan de Entrenamiento, Plan de Control de Cambios.
Negociación de
compromisos

Puntos de control o Descomposición


hitos de requerimientos

Generación y
Estimación del
entrega de
tamaño
productos

Termino de Estimación de
fase/actividades recursos

Desarrollo del
itinerario