Академический Документы
Профессиональный Документы
Культура Документы
2. Objetivo General
Al finalizar el curso el alumno tendrá conocimiento del conjunto de técnicas de
Ingeniería de Software que pueden ser aplicadas en proyectos de software para la creación
de sistemas eficientes y de mejor calidad
3. Objetivos Específicos
Definir la Ingeniería de Software y explicar su importancia.
Conocer cuales son las principales aplicaciones del software.
Analizar todas las etapas del proceso de ingeniería de software.
Discutir la planeación de proyectos y el proceso de planeación.
Aplicar las diferentes métricas para la productividad y la calidad del
software.
Aplicar las diferentes metodologías de análisis de requisitos del sistema
y del software.
Aplicar las diferentes metodologías diseño e implementación del
software.
Conocer y aplicar las diferentes estrategias para realizar las pruebas del
software.
Investigar y desarrollar temas avanzados de la Ingeniería de Software.
4. Método de Enseñanza
Exposición ante el grupo utilizando diversos métodos de presentación:
pizarrón, proyecciones con computadoras, etc.
Exposición por parte de los alumnos de artículos de investigación y
materiales publicados en revistas o en sitios web.
Exposición de algún profesor invitado.
Presentación por parte de los alumnos de sus tareas y proyectos
realizados.
5. Evaluación
2 exámenes parciales 30% (15% c/u) (3 oct y 7 nov)
1 examen final 20% (10 diciembre)
Proyecto Final 25% ( 5 diciembre )
Participaciones en clase 10%
Tareas e investigaciones 15%
100%
6. Reglas Generales
El estudiante con mas de tres faltas pierde el derecho a presentar el
examen.
Las tareas se entregarán en clase o se enviarán por correo electrónico en
la fecha señalada. No se recibirán tareas después de la fecha determinada
para ello.
Tareas / proyectos iguales o copiados se reparte la calificación.
No se realizarán exámenes fuera de la fecha señalada para ello.
7. Bibliografía
http://www.rspa.com/
Ingeniería de Software
Objetivos
Discutir la importancia del software y conocer su evolución.
Conocer los conceptos de producto de software y proceso de software.
Analizar la importancia de la ingeniería de software, su evolución y su relación
con otras áreas de la ciencia de la computación y disciplinas.
Software
Actualmente, el software ha superado al hardware como la clave del éxito de
muchos sistemas basados en computadoras.
Cada día mas sistemas son controlados por software.
El software es el factor que marca la diferencia.
Las economías de los países desarrollados dependen en gran parte del
software.
Costos
Eficiencia
Evolución
Multiusuario Tecnologías
Sistemas orientadas a
Sw a la medida Sist. de objetos
tiempo real distribuidos
Distribución limitada Incorporación Computación
Distribución paralela
amplia de “inteligencia”
Ejecución de
programas únicos Hardware de
bajo costo
76-77
Se pone atención a las fases anteriores a la codificación
Surge la abstracción y se integran fases sucesivas en el desarrollo
Ingeniería de Software
Tiene tres elementos clave :
Métodos
Tareas de planificación y estimación de proyectos, análisis, diseño de
estructuras de datos, procedimientos algorítmicos, codificación y pruebas
Herramientas
Soporte automático o semiautomático para los métodos
Procedimientos
Definen la secuencia en la que se aplican los métodos, los controles que
ayudan a asegurar la calidad y las directrices de evaluación.
ASEGURAMIENTO DE CALIDAD
SUMINISTRO
VERIFICACIÓN
VALIDACIÓN
PROCESOS DE LA ORGANIZACIÓN
GESTIÓN INFRAESTRUCTURA
MEJORA FORMACIÓN
Procesos Principales
Son aquellos que resultan útiles a las personas que inician y realizan el
desarrollo, la operación o el mantenimiento del software durante sus ciclo de
vida. Estas personas son los compradores, los suministradores, el personal
de desarrollo, los operadores y el personal de mantenimiento del software.
Procesos de Soporte
Estos procesos sirven como apoyo al resto y se aplican en cualquier punto
del ciclo de vida
Procesos de la organización
Estos procesos los emplea una organización para llevar a cabo funciones
tales como la gestión, la capacitación del personal o la mejora del proceso.
Ayudan a establecer, implementar y mejorar la organización consiguiendo
una organización más efectiva.
Modelo de cascada
Definición de
Requerimientos
Implementación y
Prueba de unidades
Integración y Prueba
del Sistema
Operación y
Mantenimiento
Modelo de cascada
Versión
Especificación Inicial
Versión
Validación
Final
Desarrollo Evolutivo
Prototipado
Prototipado
No modifica el flujo del ciclo de vida
Reduce el riesgo de construir productos que no satisfagan las
necesidades de los usuarios
Reduce costos y aumenta la probabilidad de éxito
Exige disponer de las herramientas adecuadas
No presenta calidad ni robustez
Suele utilizarse principalmente en dos áreas
Prototipado
Debe ser un sistema con el que se pueda experimentar
Debe ser comparativamente barato (< 10%)
Debe desarrollarse rápidamente
Énfasis en la interfaz de usuario
Equipo de desarrollo reducido
Herramientas y lenguajes adecuados
Cascada
Diseño.- analizar el tipo de estructura de datos que es mejor para evitar
“redundancia”.
Implementación.- pseudocódigo código
Integración.- unión de software probándolo para ver algún origen de problemas
Operación.- aquí, permite regresar a algunas de las etapas pasadas.
Evolutivo
Los sistemas pobremente especificados, decido a que los requerimientos fueron
especificados por personas que no va a usar el software
Habilidades especiales.- poder obtener la información que es requerida.
Prototipado
El cliente ve resultados de manera rápida
jueves, 12 de septiembre de 2002
Modelo Espiral
Evalúe alternativas,
Determine objetivos identifique y resuelva
alternativas y riesgos
restricciones
Análisis de
Riesgos
Planificación Análisis de Análisis de
Riesgos riesgo
Análisis de
Riesgos
Prototipo
Prototipo Operacional
Análisis Prototipo
de Proto 2
Riesgos tipo 3
Plan de
Desarrollo Simulaciones, modelos y benchmarks
Plan de requerimientos
Concepto de
Plan del ciclo de vida
Operación
Requeri
Planea la mientos de Diseño Diseño
siguiente fase SW del Detallado
Validación de
Plan de Integración Requerimientos
Producto Codificación
y Prueba Prueba de
Diseño
Unidades Ingeniería
Prueba de
V &V
Integración
Prueba de
Aceptación Desarrolla y verifica
Evaluación del
Servicio el siguiente nivel
cliente del producto
Modelo Espiral
Definido por BOEHM en 1986
Permite acomodar otros modelos
Incorpora objetivos de calidad y gestión de riesgos
Elimina errores y alternativas no atractivas al comienzo
Permite iteraciones, vuelta atrás y finalizaciones rápidas
Es difícil de adaptar a los contratos
Depende de las personas
Difícil de asegurar que las personas involucradas operan en
un contexto consistente
Modelo de Espiral
Ventajas
Centra su atención en la reutilización de componentes y eliminación de
errores en información descubierta en fases iniciales.
Los objetivos de calidad son el primer objetivo.
Integra desarrollo con mantenimiento.
Provee un marco de desarrollo de hardware/software.
Problemas
El desarrollo contractual especifica el modelo del proceso y los resultados a
entregar por adelantado.
Requiere de experiencia en la identificación de riesgos.
Requiere refinamiento para uso generalizado.
Plantilla para una ronda del espiral
Objetivos.
Restricciones.
Alternativas.
Riesgos.
Resolución de riesgos.
Resultados.
Planes.
Garantías (commitments).
Reutilización
BIBLIOTECA
Reutilización
Principios de la reutilización:
Existen similitudes entre distintos sistemas de un mismo dominio de
aplicación
El software puede representarse como una combinación de módulos
Diseñar aplicaciones = especificar módulos + interrelaciones
Los sistemas nuevos se pueden caracterizar por diferencias respecto a los
antiguos
Reduce tiempos y costos de desarrollo
Aumenta la fiabilidad
Dificultad para reconocer los componentes
potencialmente reutilizables
Dificultad de catalogación y recuperación
Problemas de motivación
Problemas de gestión de configuración
Planificar (ver cuanto va a costar, el personal con que se cuenta, herramientas que haría
falta)
Administración (4 p’s)
1. Producto
2. Precio
3. Plaza (donde se va a ubicar)
4. Promoción (cómo se va a vender).
Mantenimiento.El cambio.
Corrección de errores.
Cambios en el entorno.
Cambios en los requisitos.
Gestión de proyectos de Software
Conceptos básicos sobre gestión
Procesos de software y métricas
Seguimiento
Personal
Las personas son lo más importante en la organización
Producto
El término producto es usado para abarcar cualquier software
que será construido a petición de otros.
Para planificar un proyecto, se deben establecer los objetivos
y el ámbito del producto.
Proceso
Proporciona la estructura desde la que se puede establecer un
detallado plan para el desarrollo del software.
Proyecto
Para gestionar un proyecto de software con éxito, debemos
comprender que puede ir mal y como hacerlo bien.
Seguimiento
Personal
Las personas son lo más importante en la organización
Producto
El término producto es usado para abarcar cualquier software
que será construido a petición de otros.
Para planificar un proyecto, se deben establecer los objetivos
y el ámbito del producto.
Proceso
Proporciona la estructura desde la que se puede establecer un
detallado plan para el desarrollo del software.
Proyecto
Para gestionar un proyecto de software con éxito, debemos
comprender que puede ir mal y como hacerlo bien.
Producto
Para planificar un proyecto, se deben establecer los objetivos
y el ámbito del producto. Que va a hacer? Hasta donde va a
llegar? Quien lo va a operar?
Ámbito
Es la descripción del control y los datos a procesar, la función, el
rendimiento, las restricciones, las interfaces y la viabilidad.
Rendimiento
Viabilidad
Una vez identificado el ámbito es razonable preguntarse
¿Podemos construir el software de acuerdo a este ámbito?
Proceso
Es seleccionar el modelo de proceso apropiado para la
ingeniería de software que debe aplicar el equipo del
proyecto. Espiral, prototipo, cascada, etc. Para el proyectop
que se esta haciendo
Proceso
Cuando se selecciona un modelo de proceso se define
entonces un plan de proyecto preliminar basado en un
conjunto de actividades estructurales. Plan para el proyecto
Comunicación con el cliente cuestionarios, entrevistas
Planificación
Análisis del riesgo
Ingeniería
Construcción y entrega medir riesgo y tratar de eliminarlo
Evaluación del cliente
Proyecto
Diez señales que indican que un proyecto de sistemas está en
peligro [John Reel]
La gente del software no comprende las necesidades de los clientes
El ámbito del producto está definido pobremente
Los cambios están mal realizados
La tecnología elegida cambia
Proyecto
Las necesidades del negocio cambian o están mal definidas
Las fechas de entrega no son realistas
sabias lecciones.