Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 1
PROCESO DE SOFTWARE
Contenido
• Introducción al proceso de software
– Definición del proceso de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Métodos
Modelo de proceso
Enfoque de calidad
Elementos de la Metodología
En un proyecto de desarrollo de software
la metodología define Quién debe hacer
Qué, Cuándo y Cómo debe hacerlo
Actividades
Personas Herramientas
Proceso
SW
Artefactos Notación
Roles
Artefacto
Contenido
• Introducción al proceso de software
– Definición del proceso de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Deseos, Software
necesidades,
Especificaciones,
…
Características de un proceso de
desarrollo de software
Contenido
• Introducción al proceso de software
– Definición del proceso de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Actividades de protección
Conjunto de tareas
Tareas
Hitos, entregas
Puntos SQA
Contenido
• Introducción al proceso de software
– Definición del proceso de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Actividades de Protección
(actividades sombrilla-Pressman)
Se aplican a lo largo de un proyecto de software y ayudan al
equipo que lo lleva a cabo a administrar y controlar el avance,
la calidad, el cambio y el riesgo.
Es común que las actividades sombrilla sean las siguientes:
Seguimiento y control del proyecto de software: permite que
el equipo de software evalúe el progreso comparándolo con el plan
del proyecto y tome cualquier acción necesaria para apegarse a la
programación de actividades.
Administración del riesgo: evalúa los riesgos que puedan
afectar el resultado del proyecto o la calidad del producto.
Aseguramiento de la calidad del software: define y ejecuta
las actividades requeridas para garantizar la calidad del software.
Revisiones técnicas: evalúa los productos del trabajo de la
ingeniería de software a fin de descubrir y eliminar errores antes
de que se propaguen a la siguiente actividad.
Actividades de Protección
(actividades sombrilla-Pressman)
Medición: define y reúne mediciones del proceso, proyecto y
producto para ayudar al equipo a entregar el software que
satisfaga las necesidades de los participantes; puede usarse junto
con todas las demás actividades estructurales y sombrilla.
Administración de la configuración del software: administra
los efectos del cambio a lo largo del proceso del software.
Administración de la reutilización: define criterios para volver
a usar el producto del trabajo (incluso los componentes del
software) y establece mecanismos para obtener componentes
reutilizables.
Preparación y producción del producto del trabajo: agrupa
las actividades requeridas para crear productos del trabajo, tales
como modelos, documentos, registros, formatos y listas.
Conjunto de tareas
• Un conjunto de tareas define el trabajo real por efectuar a fin
de cumplir los objetivos de una acción de ingeniería de
software.
• Para un proyecto pequeño y relativamente sencillo, el
conjunto de tareas para la indagación de requerimientos
(IDR) tendrá un aspecto parecido al siguiente:
1. Elaborar la lista de participantes del proyecto.
2. Invitar a todos los participantes a una reunión informal.
3. Pedir a cada participante que haga una relación de las
características y funciones que requiere.
4. Analizar los requerimientos y construir la lista definitiva.
5. Ordenar los requerimientos según su prioridad.
6. Identificar las áreas de incertidumbre.
Conjunto de tareas
• Para un proyecto de software más grande y complejo se requerirá de
un conjunto de tareas diferente que quizá esté constituido por las
siguientes tareas de trabajo:
1. Hacer la lista de participantes del proyecto.
2. Entrevistar a cada participante por separado a fin de determinar los deseos y
necesidades generales.
3. Formar la lista preliminar de las funciones y características con base en las
aportaciones del participante.
4. Programar una serie de reuniones para facilitar la elaboración de las
especificaciones de la aplicación.
5. Celebrar las reuniones.
6. Producir en cada reunión escenarios informales de usuario.
7. Afinar los escenarios del usuario con base en la retroalimentación de los
participantes.
8. Formar una lista revisada de los requerimientos de los participantes.
9. Usar técnicas de despliegue de la función de calidad para asignar prioridades a
los requerimientos.
10. Agrupar los requerimientos de modo que puedan entregarse en forma paulatina
y creciente.
11. Resaltar las limitantes y restricciones que se introducirán al sistema.
12. Analizar métodos para validar el sistema.
Conjunto de tareas
• Los dos conjuntos de tareas mencionados
sirven para “recabar los requerimientos”, pero
son muy distintos en profundidad y formalidad.
• El equipo de software elige el conjunto de tareas
que le permita alcanzar la meta de cada acción
con calidad y agilidad.
Contenido
• Introducción al proceso de software
– Definición del proceso de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Fase
final
Gestión y Fase
recursos inicial
Fase
implementación tiempo
Inicio Terminación
• Planeación detallada
Contratación
Aprobación
Preproyecto
Cierre
Implementación
Factibilidad • Preparación Producción
• Formulación de proyecto
• Entrega • Afinación
• Estudio de factibilidad
• Instalación • Mantenimiento
• Diseño de estrategia
• Pruebas
• Protocolo de aprobación
Actividades Fundamentales
(Pressman)
Existe un conjunto de actividades fundamentales
(disciplinas) que se encuentran presentes en todos los
procesos de desarrollo de software:
Comunicación: Se busca entender los objetivos de los
participantes respecto del proyecto, y reunir los
requerimientos que ayuden a definir las características y
funciones del software.
Planeación: define el trabajo de ingeniería de software al
describir las tareas técnicas por realizar, los riesgos
probables, los recursos que se requieren, los productos del
trabajo que se obtendrán y una programación de las
actividades
Modelado: se crea un “bosquejo” a fin de entender mejor
los requerimientos del software y el diseño que los
satisfará.
Actividades Fundamentales
(Pressman)
Construcción: se combina la generación de código (ya
sea manual o automatizada) y las pruebas que se
requieren para descubrir errores en éste.
Despliegue: el software se entrega al consumidor que
lo evalúa y que le da retroalimentación, misma que se
basa en dicha evaluación
Para muchos proyectos de software, las actividades
estructurales se aplican en forma iterativa a medida
que avanza el proyecto.
Las actividades estructurales del proceso de ingeniería
de software son complementadas por cierto número
de actividades de protección.
Actividades Fundamentales
(Sommerville)
Existe un conjunto de disciplinas que se
encuentran presentes en todos los procesos de
desarrollo:
Especificación de software: Se define la funcionalidad
y restricciones operacionales que debe cumplir el
software.
Diseño e Implementación: Se diseña y construye el
software de acuerdo a la especificación.
Validación: El software debe validarse, para asegurar
que cumpla con lo que quiere el cliente.
Evolución: El software debe evolucionar, para
adaptarse a las necesidades del cliente.
Contenido
• Introducción al proceso de software
– Definición de procesos de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Contenido
• Introducción al proceso de software
– Definición de procesos de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Software de sistemas
• Programas escritos para servir a otros programas
– Compiladores, Sistemas Operativos (SOs), etc.
• Características:
– Fuerte interacción con el hardware de computadora
– Múltiples usuarios
– Operación concurrente
– Compartición de recursos
– Estructuras de datos complejas
Contenido
• Introducción al proceso de software
– Definición de procesos de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Software empotrado
(embedded systems)
• Controla productos y sistemas de
mercados industriales y de consumo
– Control de fábricas, etc.
– Reside en ROM
• Relacionado con el tiempo real
Domótico.
• Software que se utiliza
para controlar el
hábitat del ser
humano, a pequeña
escala.
• Va desde las alarmas
hasta el control de
temperaturas de un
hogar.
Contenido
• Introducción al proceso de software
– Definición de procesos de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Software de Gestión
• Proceso de información
comercial, accediendo a
Bases de datos que
contienen dicha información
– Gestión de nóminas, control
de almacén, etc.
• Se trata del software que da
soporte a los procesos
comerciales y manejo de
información que tienen por
objetivo permitir a las
gestiones una mejor
gestión.
Contenido
• Introducción al proceso de software
– Definición de procesos de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Contenido
• Introducción al proceso de software
– Definición de procesos de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Contenido
• Introducción al proceso de software
– Definición de procesos de software.
– Componentes del proceso.
– Funciones de los componentes.
– Disciplina del proceso.
• Tipos de desarrollo
– Software de Sistemas.
– Software de Tiempo Real.
– Software de Gestión.
– Software de Ingeniería y científico.
– Software basado en web.
– Software de inteligencia artificial.
Unidad 1
PROCESO DE SOFTWARE
Final de la unidad