capitulo icapitulo icotana.informatica.edu.bo/downloads/procesos.pdf · 2018-08-27 · desarrollode...
Post on 25-Jul-2020
9 Views
Preview:
TRANSCRIPT
CAPITULO ICAPITULO I
1.2 EL PROCESO
Resumen preparado por Miguel Cotaña
Ingeniería de SoftwareINF - 163
La construcción del software de ordenador es un proceso iterativode aprendizaje y el resultado esuna materialización del conocimiento recolectado, depurado y organizado conformeel proceso estuvo en ejecución
Existen mecanismos de evaluación del proceso de software que permiten a lasorganizaciones determinar la “madurez” del proceso de software. No obstante, la calidad, el tiemporequerido, la viabilidad a largo plazodel producto que se construye son los mejores indicadores de la eficacia del proceso que se utiliza.
Que es un proceso?Que es un proceso?
Una secuencia de pasos desarrollados para un propósito dado, por ejemplo, el proceso de desarrollo de software (IEEE-STD-610).
Curso de acción o manera de proceder(diccionario Oxford)
Un sistema de operaciones para producir algo…Un conjunto de acciones, cambios o funcionesque logran un resultado final (diccionarioWebmaster)
Conjunto de actividades relacionadas que son ejecutadas en respuesta a necesidadespreviamente determinadas y consumiendorecursos para producir un producto (J. Moore)
Tres aspectos del procesoTres aspectos del proceso
1.- Definición del procesoUn proceso debe estar definido (documento queespecifica actividades y procedimientos del proceso)
2.- Aprendizaje del procesoEl conocimiento del proceso debe ser transferido a las personas (agentes) que lo ejecutarán
3.- Resultados del procesoManifestación de los productos, como resultadode la ejecución de las actividades definidas porel proceso
Consideraciones acerca de los procesosConsideraciones acerca de los procesos
Los comportamientos, actividades y tareas que desempeñamos para lograrun objetivo representan la ejecución del proceso para alcanzar dichoobjetivo.Un proceso disciplinado se
manifestará en patrones ordenados y consistentes de comportamientoindividual o grupalPor tanto, un proceso da forma a las
acciones y reacciones y tomamosfrente a una determinada situación.
Proceso internalizado y proceso institucionalizadoProceso internalizado y proceso institucionalizado
Cuando un proceso es desarrolladoprofesional y naturalmente por unapersona, se dice que el proceso esta“internalizado” por la persona.
En las organizaciones los procesosson comunes a grupos de personas. Para obtener disciplina en los procesos, estos deben ser establecidos como“institucionalizados” en la organización.
Completitud y disciplina en los procesosCompletitud y disciplina en los procesos
Un proceso es incompleto si:a) El documento de definición existepero no todos saben de su existenciab) El documento de definición existe, pero no hay capacitación en el proceso. Se deja a iniciativa del equipo aprenderel procesoc) El documento de definición existe, existe capacitación, pero no hay monitoreo y el proceso NO es forzado a su cumplimiento. Algunos lo siguen y otros no
Un proceso es disciplinado solo si se cumplen las siguientes condiciones:a) El proceso esta debidamentedocumentadob) Existe y se realiza capacitación formal sobre el procesoc) Las personas siguen lo establecidopor el proceso como una manera natural de desempeñar sus actividadesd) El proceso es monitoreado y sucumplimiento es obligatorio.
Ingenieria del softwareIngenieria del software
[Ingeniería de software es] el establecimiento y uso de principiosde ingeniería adecuados para obtenereconómicamente software que sea confiable y trabaje eficientemente en máquinas reales (Fritz Bauer)
teoria practica
Resolucion
de
problemas
Administracion
y gestion
Pruebas y
control de
calidad
DefinicionDefinicion
La ingeniería de software no es cienciainformática.
“Un científico construye con el objetivo de aprender, un ingeniero aprende con el objetivode construir”
La distinción entre ingeniería y cienciaen el software es el mismo que en otrasdisciplinas
“Los científicos aprenden lo que es verdadero y cómo extender el conocimiento en su campo”
“Los ingenieros aprenden lo que es verdadero, lo que es útil y cómo aplicar conocimiento biénentendido para resolver problemas prácticos”
Científicos
� Conocimientos enfocados y especializados
� Reportan básicamente a sus colegas científicos
� No necesitan licencia
Ingenieros
� Conocimientos comprobados, efectivos y confiablesde ámbito más general
� Se necesita un amplio entendimiento de todos los factores que intervienen en el desarrollo del producto.
� Responsabilidad con el publico
� Generalmente necesitan licencia para ejercer
El producto software es enteramenteconceptual.
No tiene propiedades físicas como peso, color o voltaje, y en consecuencia no estásujeto a leyes físicas o eléctricas.
Su naturaleza conceptual crea una distanciaintelectual entre el software y el problemaque el software resuelve
Dificil para una persona que entiende el problema, entender el sistema software quelo resuleve.
Para probar es necesario de un sistemafísico.
Peculiaridades de la I.S.Peculiaridades de la I.S.
En el ámbito académico, existen 5 áreas de conocimiento y capacidades necesarias parael ingeniero de software:
� Ciencias de la computación, ingeniería de sistemas y de software.
� Plataformas específicas de hardware
� Dominio de conocimiento de la aplicación
� Habilidades personales, interpersonales y ética.
� Cultura empresarial.
Areas del conocimientoAreas del conocimiento
Definición (Qué ?)
Desarrollo (Cómo ?)
Soporte (cambios)
� Corrección
� Adaptación
� Mejora
� Prevención
Fases genericas de la I.S.Fases genericas de la I.S.
IngenierIngenieríía a
de softwarede software
Gestion de proyectos
Informatica
y tecnologia
Seguridad
Confiabilidad
Gestion de la calidad
Dominios de las
aplicaciones
Relacion con otras disciplinasRelacion con otras disciplinas
Ingenieria del software: tecnologia estratificadaIngenieria del software: tecnologia estratificada
Definicion segun el IEEEDefinicion segun el IEEE
La ingenieria de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimientodel software; es decir, la aplicación de la ingeniería al software
La I.S. es una tecnología estratificadaLa I.S. es una tecnología estratificada
Cualquier enfoque de la ingeniería debeestar sustentado en un compromiso con la calidad.
La gestión de la calidad Total, Sigma Seis y enfoques similares fomentan unacultura de mejora continua del proceso, y es esta cultura la que al final conduce al desarrollo de enfoques muy efectivospara la I.S.
El enfoque de calidad soporta a la I.S.El enfoque de calidad soporta a la I.S.
Software EngineeringIngeniería de Software
enfoqueenfoque de de ““calidadcalidad””
modelomodelo de de procesoproceso
mméétodostodos
herramientasherramientas
La base de la I.S. es el estrato del proceso. El proceso es el elemento quemantiene juntos los estratosde la tecnologia y que permiteel desarrollo racional y a tiempo del software.
Modelo de procesoModelo de proceso
El proceso del software forma la base para el control de la gestión de los proyectos de software y establece el contexto en el cualse aplican los métodos técnicos, se generan los productos del trabajo (modelos, documentos, datos, reportes, formatos), se establecen los fundamentos, se asegura la calidad, y el cambio se maneja de manera apropiada.
Los métodos de la I.S., proporcionan los “cómo” técnicos para construir software. Abarcan un amplio espectro de tareas queincluyen la:� Comunicación, � El análisis de requisitos,� El modelado del diseño,� La construccion del programa,� La realizacion de pruebas,� El soporte
Los métodos se basan en un conjunto de principios básicos que gobierna cada área de la tecnologia.
MétodosMétodos
Las herramientas de la I.S., proporcionanel soporte automatizado o semiautomatizado para el proceso y los métodos.
Cuando las herramientas se integran de forma que la información que cree una de ellas pueda usarla otra, se dice que se ha establecido un sistema para el soportedel desarrollo del software, que con frecuencia se denomina “ingeniería del software asistida por ordenador”
HerramientasHerramientas
MARCO DE TRABAJO PARA EL PROCESOMARCO DE TRABAJO PARA EL PROCESO
Un marco de trabajo establece la base
para un proceso de software completo al
identificar un numero pequeño de
actividades del marco de trabajo
aplicables a todos los proyectos de
software, sin importar su tamaño y
complejidad.
Abarca un conjunto de actividades
sombrilla aplicables a lo largo del
proceso del software.
Cada actividad dentro del marco de
trabajo contiene un conjunto de
acciones de ingeniería del software; es
decir, una serie de tareas relacionadas
que produce un producto del trabajo en
la I.S. (por ejemplo, el diseño es una
acción de la I.S.).
Cada acción la forman tareas de trabajo
individuales que completan alguna parte
del trabajo implicado por la acción.
Marco de trabajo del proceso de softwareMarco de trabajo del proceso de software
Actividades sombrilla
Marco de trabajo del proceso
Actividad del marco de trabajo #1
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Accion de la ingenieria de software # 1.k
Accion de la ingenieria de software # 1.1
Conjunto
de tareas
.
Conjunto
de tareas
.
.
Actividad del marco de trabajo #n
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Accion de la ingenieria de software # n.m
Accion de la ingenieria de software # n.1
Conjunto
de tareas
.
Conjunto
de tareas
.
.
Aplicacion del marco de trabajo en proyectosAplicacion del marco de trabajo en proyectos
Comunicación. Esta actividad del marco de trabajo implica una intensa colaboración y comunicación con los clientes; además, abarca la investigación de requisitos y otras actividadesrelacionadas.Planeación. Esta actividad establece un plan para el trabajo de la ingeniería del software. Describe las tareas técnicas que deben realizarse, los riesgos probables, los recursos que serán requeridos, los productos del trabajo que han de producirse y un programa de trabajo.Modelado. Abarca la creación de modelos quepermiten al desarrollador y al cliente entendermejor los requisitos del software y el diseño quelogrará satisfacerlos.
Construcción. Esta actividad combina la generación del codigo (ya sea manual o automatizado) y la realización de pruebasnecesarias para descubrir errores en el código.
Despliegue. El software (como una entidadcompleta o un incremento completado de manera parcial) se entrega al cliente, quiénevalua el producto recibido y proporcionainformación basada en su evaluación.
Recopilacion de requisitosRecopilacion de requisitos
Ocurre durante la actividad de comunicación, y
puede ser:
Hacer una lista de los clientes para el proyecto.
Invitar a todos los clientes a una reunión informal.
Pedir a cada cliente que haga una lista de
características y funciones requeridas.
Establecer un debate sobre los requisitos y elaborar
una lista final.
Priorizar los requisitos.
Advertir las áreas de incertidumbre.
Recopilacion de requisitos para proyecto complejoRecopilacion de requisitos para proyecto complejo
Hacer una lista de los clientes para el proyecto.
Entrevistar a c/u de los clientes, por separado, para
determinar de manera general sus deseos y necesidades
Elaborar una lista preliminar de las funciones y
características basadas en la información que ofrezcan los
clientes.
Hacer un programa de reuniones para recopilar los
requisitos.
Conducir las reuniones
Producir escenarios informales de los usuarios como
parte de cada reunión.
Refinar escenarios de los usuarios con base en el
intercambio de información con los clientes.
Elaborar una lista revisada de los requisitos de los
clientes
Utilizar técnicas de despliegue de funciones de calidad
para jerarquizar los requisitos.
Empaquetar los requisitos para que puedan entregarse
de manera incremental.
Observar las restricciones que serán puestas en el
sistema
Debatir métodos para validar el sistema.
Actividades sombrillaActividades sombrilla
Seguimiento y control del proyecto de software: permite que el equipo de software evalue el progreso comparandolo con el plan del proyecto y así tomar las acciones necesarias paramantener el programa.Gestión de riesgos: evalua los riesgos quepudiera afectar los resultados del proyecto o la calidad del producto.Aseguramiento de la calidad del software: define y conduce las actividades requeridas paraasegurar la calidad del software.Revisiones técnicas formales: evalua los productos del trabajo de la I.S., en un esfuerzoencaminado a descubrir y eliminar los erroresantes de que éstos se propaguen.
Medición: define y recolecta mediciones del proceso, el proyecto y el producto para ayudar al equipo a entregar software que satisfaga lasnecesidades del cliente.Gestión de la configuración del software: maneja los efectos del cambio a través del proceso del software.Gestión de la reutilización: define los criteriospara la reutilización de productos del trabajo (se incluyen componentes del software) y establecemecanismos para la creación de componentesreutilizables.Preparación y producción: abarca lasactividades requeridas para crear productos del trabajo como modelos, documentos, registros.
INTEGRACION DEL MODELO DE CAPACIDAD DE MADUREZINTEGRACION DEL MODELO DE CAPACIDAD DE MADUREZ
El instituto de Ingeniería del Software (SEI)
ha desarrollado un modelo completo de un
amplio proceso basado en un conjunto de
capacidades de software y de sistemas que
deben estar presentes conforme las
organizaciones alcanzan diferentes grados
de capacidad y madurez del proceso. Una
organización debe crear un modelo de
proceso que se ajuste a las directrices
establecidas por la integración del modelo
de capacidad de madurez (IMCM)
El modelo IMCM (integración del modelo de
capacidad de madurez), es el modelo más
utilizado en la industria del software.
“Mide la capacidad del
proceso para desarrollar
software con calidad”ad.(predictibilidad en costos, duración, y niveles de calidad previstos)
La IMCM representa un modelo completo de
proceso en dos formas diferentes:
1.- Como un modelo continuo
2.- Como un modelo discreto
5
4
3
2
1
0PP GR MA GC ACPP otros
PP Planeación del proyecto
GR Gestión de requisitos
MA Medición y análisis
GC Gestión de configuración
ACPP Aseguramiento de la calidad del producto y el proceso
Clasificación de acuerdo con niveles de capacidadClasificación de acuerdo con niveles de capacidad
Realizado
Administrado
Definido
Gestionado
Mejorado
Todas las metas específicas del área del proceso han sido
satisfechas. Las tareas de trabajo requeridas han sido realizadas
Todos los criterios del nivel han sido satisfechos. Todas las tareas
de trabajo y productos estan monitoreados, controlados y revisados
y son evaluados.
Los procesos están estabilizados y existe una gestión
cuántitativa. El área de proceso se controla y mejora mediante
mediciones y evaluacion cuantitativa.
La mejora de procesos es una actividad consistente y establecida
en la organización. Se adapta y mejora mediante el uso de medios
cuantitativos (estadísticos)
Nivel Características
Procesos organizativos, tanto técnicos como de gestión, están
claramente definidos.
incompletoEl área de proceso aún no se realiza o todavia no alcanza todas
las metas y objetivos definidos para el nivel 1 de capacidad
La IMCM define cada área del proceso en
función de “metas especificas” (ME)y de
las “prácticas especificas” (PE)
requeridas para alcanzar dichas metas.
Las ME establecen las características que
deben existir para que las actividades
implicadas por un área de proceso sean
efectivas.
Las PE convierten una meta en un conjunto
de actividades relacionadas con el proceso.
El modelo discreto de la IMCM define las
mismas áreas, metas y prácticas del
proceso que el modelo continuo. La
principal diferencia es que el modelo
discreto establece cinco niveles de
madurez, en vez de cinco niveles de
capacidad.
Para lograr un nivel de madurez se deben
conseguir metas y prácticas especificas
relacionadas con un conjunto de áreas del
proceso.
Relacion entre niveles de madurez y las areas del procesoRelacion entre niveles de madurez y las areas del proceso
Desarrollo de requisitosSolucion tecnicaIntegracion del productoVerificacionValidacionEnfoque del proceso organizacionalCapacitacion organizacionalGestion de riesgos
EstandarizacionDel proceso
definido
Gestion de requisitosPlaneacion del proyectoMonitoreo y control del proyectoGestion de acuerdos del proveedorMedicion y analisisAseguramiento de calidad del producto y procesoGestion de la configuracion
Gestionbasica delProyecto
Gestionado
Ejecutado
Eejecucion del proceso organizacionalGestion cuantitativa del proyecto
GestionCuantitativa
Gestionadode modo
cuantitativo
Innovacion organizacional y despliegueAnalisis causal y resolucion
Mejora continuadel
Proceso
De optimizacion
AREAS DEL PROCESOENFOQUENIVEL
PATRONES DEL PROCESOPATRONES DEL PROCESO
El proceso de software puede definirse como una
colección de patrones que definen un conjunto
de actividades, acciones, tareas de trabajo o
comportamientos relacionados que requiere el
desarrollo de un software para ordenador.
Un patrón de proceso ofrece una plantilla: un
método consistente para describir una
característica importante del proceso de
software. Mediante la combinación de patrones,
un equipo de software puede construir un
proceso que satisfaga las necesidades de un
proyecto.
Los patrones pueden definirse en cualquier
grado de abstracción. En algunos casos se puede
utilizar un patrón para describir un proceso
completo (prototipo).
En otras situaciones se utilizan los patrones para
describir una actividad del marco de trabajo
importante (como la plantación) o una tarea
dentro de una actividad del marco de trabajo
(por ejemplo, la estimación de un proyecto)
Plantilla para describir un patron de procesoPlantilla para describir un patron de proceso
Nombre del patrón. Al patrón se le asigna un nombre significativo(comunicación con el cliente).Propósito. Se describe con brevedadel objetivo del patrón. Por ejemplo, el objetivo de la comunicación con el cliente es “establecer una relación de colaboración con el cliente” en un esfuerzo encaminado a definir el alcance del proyecto y requisitos del negocio.
Tipo. Se especifica el tipo de patrón. (Ambler) sugiere tres tipos:Los patrones de tarea definen una acción de
la I.S., o una tarea de trabajo que es parte del proceso y relevante para una práctica exitosa de la I.S. (por ejemplo, la recopilación de requisitos es un patrón de tarea.Los patrones de escenario, incorpora multiples
patrones de tarea relevantes. Un ejemplo, es la comunicación.Los patrones de fase definen la secuencia de
actividades del marco de trabajo. Un ejemplo, modelo en espiral o de construcción de prototipos.
Contexto inicial. Se describen lascondiciones en las cuales se aplica el patrón.Problema. Se describe el problemaque debe resolver el patrón.Solución. Se describe la implentaciondel patrón.Contexto reultante. Se describen lascondiciones que habra una vez que el patrón haya sido implementado con éxito.
Patrones relacionados. Se proporciona una lista de todos los patrones de proceso directamenterelacionados con este, en forma jerárquica o de alguna otra forma.Usos conocidos/ejemplos. Se indican los ejemplos específicos en los cuales el patron es aplicable.
EVALUACION DEL PROCESOEVALUACION DEL PROCESO
La existencia de un proceso de software
no es garantía de que este será
entregado a tiempo, de que satisfará las
necesidades del cliente, o de que
mostrara las características técnicas que
conducirán a características de calidad a
largo plazo.
Los patrones de proceso deben ir
acompañados de una practica sólida de la
I.S.
Relacion entre proceso y métodos aplicado para evaluaciónRelacion entre proceso y métodos aplicado para evaluación
Evaluacion del
Proceso de SW
Mejoramiento del
Proceso de Sw
Determinacion
de la capacidad
Proceso del Sw
Identifica
modificaciones a
Identifica capacidades
y riesgos de
Conduce a Conduce a
motiva
Es examinado por
MODELOS DE PROCESO PERSONALES Y EN EQUIPOMODELOS DE PROCESO PERSONALES Y EN EQUIPO
El mejor proceso de software es el que
esta cerca de la gente que realizará el
trabajo. Si un modelo de proceso de
software ha sido desarrollado en un
ámbito corporativo, puede ser efectivo
sólo si es en gran medida adaptable para
satisfacer las necesidades del equipo del
proyecto, que es el que en realidad lleva
a cabo el trabajo de I.S.
En un escenario ideal, cada ingeniero de
software crearía un proceso que llene lo
mejor posible sus propias necesidades y
al mismo tiempo satisfaga las amplias
necesidades del equipo y la organización.
De modo alternativo, el equipo mismo
crearía su propio proceso, y al mismo
tiempo cubriría las necesidades mas
reducidas de los individuos y las
necesidades amplias de la organización.
PROCESO DE SOFTWARE PERSONAL (PSP)PROCESO DE SOFTWARE PERSONAL (PSP)
El modelo PSP define 5 actividades del
marco de trabajo:
Planeación. Esta actividad selecciona
requisitos y, con base en estos, desarrolla
el tamaño y la estimación de recursos.
Además, se estiman los defectos. Todas
las mediciones se registran en hojas de
trabajo o en plantillas.
Diseño de alto nivel. Se construyen
prototipos. Todos los elementos se
registran y rastrean.
Revisión del diseño de alto nivel. Los
métodos formales de verificación se aplican a
errores descubiertos en el diseño. Las
mediciones se mantienen para todas las
tareas importantes.
Desarrollo. El diseño al nivel de
componente se refina y revisa. Se genera,
revisa, compila y prueba el código. Las
mediciones de mantienen.
Análisis de resultados. Mediante las
mediciones y medidas recolectadas se
determina la efectividad del proceso.
PROCESO DE SOFTWARE EN EQUIPO (PSE)PROCESO DE SOFTWARE EN EQUIPO (PSE)
La meta del PSE es construir un equipo de
proyecto “autodirigido” que se organice
para producir software de alta calidad.
Humphrey define los siguientes objetivos:
Construir equipos autodirigidos que
planeen y tengan un seguimiento de su
trabajo, establezcan metas y posean sus
procesos y planes.
Mostrar a los jefes como preparar y
motivar a sus equipos y como ayudarlos a
sostener un alto desempeño.
Acelerar el mejoramiento del proceso
de software al realizar, con el
comportamiento normal y esperado.
Ofrecer una guía de mejoramiento a
organizaciones de alta madurez.
Facilitar la enseñanza de habilidades de
equipo de calidad.
El PSE define las siguientes actividadesdel marco de trabajo:
LanzamientoDiseño de alto nivelImplementaciónIntegración y pruebaAnálisis de resultados
El PSE reconoce que los mejores equipos
de software son autodirigidos. Los
miembros del equipo plantean los
objetivos del proyecto, adaptan el
proceso para cubrir sus necesidades,
controlan el programa y la medición y el
análisis de las medidas recolectadas;
además, trabajan de manera continua
para mejorar el enfoque del equipo
respecto de la I.S.
Un profesional del software creativo debe
sentir tanta satisfacción del proceso como
del producto terminado.
El trabajo que realiza la gente de software
cambiara en los años que siguen. La
dualidad del producto y el proceso es un
elemento importante para mantener a la
gente creativa comprometida mientras
finaliza la transición desde la programación
hasta la Ingeniería de Software.
Si el proceso es debil, el producto final sufrira las consecuenciasSi el proceso es debil, el producto final sufrira las consecuencias
top related