Proyecto exitoso
-
Tiempo Estimado
Presupuesto estimado
Cumple con funcionalidad requerida
Que se use
Segn el Chaos Report de 2010 solo un 30% de los proyectos de software son exitosos. Y si se
aportan ms de 10M de dlares ningn proyecto es exitoso.
Ingeniera de software: Disciplina formada por herramientas, mtodos y tcnicas que se usan en
el desarrollo de software. Busca que el desarrollo de los proyectos sean efectivos (calidad) y
eficientes (costo). Tambin permite guiar de manera sistemtica todo el proceso de desarrollo de
software.
Software:
-
Tipos de software:
-
Proyecto de Software
-
Objetivos simples y cuando estos objetivos son acabados el proyecto est completo
(Divide y vencers)
Plan de trabajo + Equipo de trabajo + estimacin de tiempo= Carta Gantt
Roles:
1. JP:
2.
3.
4.
5.
6.
7.
8.
9.
a. Liderazgo
b. Capacidad de comunicacin y trabajo en equipo.
c. Dominio del tema
d. Capacidad de gestin
e. Poder de decisin.
Stakeholder:
a. Participa o ha participado en los procesos que se quieran automatizar.
Analista: Anlisis del problema, entiende el problema y plantea posible solucin
Diseador: Soluciones tcnicas del problema
Constructor: Recibe las soluciones del diseador
Documentador: Documenta el proyecto, estndares a seguir, tiempos, etc.
QA: Asegura calidad del proyecto a lo largo del desarrollo, testers.
Arquitecto de software: Disea las tecnologas, un diseador senior.
DBA: Administra las BDD entre el diseador y constructor.
Etapas:
1. Especificacin de requisitos: es lo que tiene que hacer el software.
a. Entrevistas, reuniones, documentos, diagramas y revisiones.
2. Anlisis: Planteamos un problema y vemos una posible solucin para poder cumplir los
requisitos.
a. Identificar las necesidades del cliente.
b. Anlisis de la organizacin, como el entorno del sistema.
c. Modelar la solucin propuesta.
3. Diseo: plantear solucin en especificaciones tcnicas.
a. Reflejo del anlisis
b. Facilitar etapas futuras.
c. Debe ser documentado.
d. Relaciones.
e. Lenguaje de programacin, aplicaciones existentes, volumen de datos.
f. Estado actual de los datos (normalizacin, encriptacin, etc.)
g. Proyeccin de crecimiento
4. Construccin: Programar lo que da el diseador.
5. Pruebas.
6. Implantacin: Llevar el software ya construido y probado a las instalaciones del cliente.
7. Mantencin: Soporte, posibles correcciones, agregar nuevas funcionalidades, capacitar a
los usuarios del software.
Trazabilidad: Registro que lleva el documentador indica dnde las especificaciones de
requisitos se llevan en el anlisis, registro del desarrollo de software.
Metodologas de Desarrollo de Software
1. Cascada: Proceso de desarrollo secuencial, tambin denominando desarrollo lineal o
clsico.
a. Comunicacin: Inicio del proyecto, recopilacin de requisitos.
b. Planificacin: Estimacin, itinerario, seguimiento.
c. Modelado: Anlisis Diseo.
d. Construccin: Cdigo, pruebas.
e. Despliegue: Entrega, soporte.
- Ventajas:
o Muy utilizado para adaptaciones o mejoras de sistemas existentes.
o til cuando los requisitos estn fijos.
- Desventajas:
o Es raro que los proyectos reales sigan el flujo secuencial.
o Es difcil que el cliente sepa de manera explcita todos los requisitos.
o El cliente debe tener paciencia.
2. Incremental: Aplica secuencias del modelo de cascada de manera iterativa.
o El primer incremento corresponde al producto esencial
o El plan se va modificando al entregar cada incremento, para cubrir de mejor
manera las necesidades del cliente.
I.
Especificacin de Requisitos:
Proceso sistemtico de definicin, comprensin, anlisis y documentacin de los requisitos.
Los requisitos definen los servicios que el sistema debe proporcionar a los usuarios; y las
restricciones y condiciones de uso de los mismos.
Tipos de requisitos:
1. De carcter general, pueden ser vistos en trminos amplios como lo que el
sistema debe hacer.
2. Funcionales, definen las funcionalidades del sistema.
3. No funcionales, definen caractersticas del rendimiento y de la implementacin
Dado que los requisitos son de diversos tipos no es posible definir un nico procedimiento
estndar de especificacin de los mismos.
Principios para una buena especificacin:
La especificacin debe separar funcionalidad de implementacin.
La especificacin necesita utilizar un lenguaje de especificacin orientado a procesos.
La especificacin debe abarcar el entorno en el que opera el sistema.
La especificacin debe ser un modelo cognitivo.
La especificacin debe ser tolerable a la incompletitud y ampliable.
La especificacin debe ser localizada y dbilmente acoplada.
Problemas Comunes:
Muchos de los problemas que aparecen en los sistemas una vez en utilizacin se derivan
de problemas aparecidos, o no detectados, en la fase de anlisis y/o especificacin de los
requisitos.
Los requisitos no reflejan las necesidades reales del cliente del sistema.
Los requisitos son inconsistentes y/o incompletos.
Es difcil introducir cambios en los requisitos una vez que estos han sido consensuados
entre cliente y desarrollador.
Hay una falta de entendimiento entre clientes y aquellos que desarrollan el sistema.
Introduccin
Descripcin general
Requisitos especficos
Apndices
Glosario
Requisitos no funcionales
Caractersticas:
1. Funcionalidad:
a. Adecuacin: lo que realmente debe hacer, se comprueban con la trazabilidad.
b. Correccin: Pruebas.
c. Interoperabilidad:
d. Seguridad: acceso a la informacin, perfiles.
e. Conformidad: otros estndares.
2. Fiabilidad:
a. Madurez: Teniendo mismas condiciones de entrada va a responder de igual
forma
b. Tolerancia a fallos: Niveles de desempeo, que no se caiga.
c. Recuperabilidad: Si falla se puede recrear el estado anterior.
d. Conformidad: otros estndares.
3. Usabilidad:
a. Comprensibilidad: Comprender el software.
b. Aprendibilidad: Aprender sin manual.
c. Operabilidad: Como operamos el software
d. Atractividad: Diseo
e. Conformidad: otros estndares
4. Eficiencia:
a. Comportamiento temporal: tiempo de respuesta
b. Uso de recursos: Cuanta memoria, RAM, HDD, etc.
c. Conformidad: Otros estndares, tiempo de respuesta mnimo
5. Mantenibilidad:
a. Analizabilidad.
b. Comabiabilidad: Facilidad de cambios, depende de la trazabilidad.
c. Estabilidad: Versiones estables.
d. Facilidad de pruebas.
e. Conformidad: Estndares en la especificacin de requisitos.
6. Portabilidad:
a. Adaptabilidad: Distintos dispositivos.
b. Instalabilidad: Facilidad de instalar el software.
c. Co existencia: Con otro software
d. Reemplazabilidad: Si existe en el mercado un software que realice lo mismo.
6. De colaboracin
a. Muestra una colaboracin dinmica, como el diagrama de secuencia.
b. Es a menudo una eleccin mostrar una colaboracin ya sea con un diagrama de
secuencia o uno de colaboracin.
c. Adems de intercambiar mensajes, muestra los objetos y sus relaciones (tambin
conocidos como el contexto).
7. De Actividades
a. Muestra el flujo secuencial de las actividades.
b. Usado tpicamente para describir las actividades realizadas en una operacin.
Tambin puede ser usado para describir otros diagramas como el de uso o
interaccin.
c. Consiste en estados de accin los que contienen una especificacin de la actividad
que va a ser realizada (accin). Un estado de accin termina cuando ha sido
realizada la accin.
8. De Componentes
a. Muestra la estructura fsica del cdigo en trminos de los componentes de cdigo
(cdigo fuente, componente binario u ejecutable)
b. Las dependencias entre los componentes son mostradas haciendo fcil de analizar
cmo son afectados por un cambio los otros componentes.
9. De Despliegue
a. Muestra la arquitectura fsica del hardware y software del sistema.
b. Se pueden mostrar las computadoras y los dispositivos (nodos), junto con las
conexiones que tienen unos con otros. Tambin se puede mostrar el tipo de
conexin.
Planificacin y Elaboracin
Funciones del sistema: son aquellas que el sistema se supone que tiene que hacer. Se clasifican en
categoras para poder priorizarlas:
Atributos del sistema: Cualidades no funcionales del sistema. Los atributos tienen un posible
conjunto de detalles de atributos, los cuales tienden a ser valores discretos, confusos o simblicos,
por ejemplo:
Tiempo de respuesta
Tolerancia a fallos
Facilidad de Uso
Algunos atributos del sistema tambin pueden tener restricciones de frontera del atributo, que
son condiciones obligatorias de frontera, generalmente dentro de un rango numrico de los
valores de un atributo, por ejemplo:
Tiempo de respuesta = (5 segundos cmo mximo)
Los atributos se relacionan con las funciones que son afectadas por ellos. Adems se debe definir
si el atributo es obligatorio u opcional.
Ejemplos:
Casos de Uso:
Actores:
Un actor es una entidad involucrada en el sistema, que de alguna manera participa en la
historia del caso de uso.
Estimula el sistema con eventos de entrada o recibe algo de l.
Los actores estn representados por el papel (rol) que desempean.
Se indica la relacin entre un Actor y Caso de Uso mediante una lnea.
Frontera:
Es el lmite fsico y/o lgico para el caso de uso.
Representa la frontera del sistema modelado.
Los actores pueden ser internos o externos a la frontera del caso de uso.
Una frontera puede encerrar a ms de un caso de uso.
Identificacin de Casos de Uso:
-> Un mtodo de identificacin se basa en actores:
1. Se identifican los actores relacionados con un sistema o empresa.
2. Para cada actor se identifican los procesos que inician o en los cuales participan.
->Otro mtodo de identificacin se basa en eventos:
1. Se identifican los eventos externos a los que un sistema ha de responder.
2. Se relacionan los eventos con los actores y con los casos de uso.
Clasificacin:
Los casos de uso deberan clasificarse en primarios, secundarios y opcionales para
asignarles la prioridad de desarrollo.
Los casos de uso primarios representan los procesos ms importantes, como Comprar
productos.
Los casos secundarios de uso representan procesos menores o raros; por ejemplo,
Solicitud de surtir un nuevo producto.
Los casos opcionales de uso representan procesos que pueden no abordarse.
Casos de uso y ciclos de iteracin:
Los ciclos iterativos de desarrollo se organizan a partir de los requisitos del caso de uso.
Dicho de otra manera, se asigna un ciclo de desarrollo para implementar uno o ms casos
de uso o bien sus versiones simplificadas (si el caso es muy complejo como para ser
abordado en un solo ciclo).
Los casos de uso deben clasificarse, y los que ocupen los niveles ms altos han de
abordarse en los ciclos iniciales de desarrollo. La estrategia general consiste en seleccionar
los casos que influyen profundamente en la arquitectura bsica o los que presentan mayor
riesgo.
Diagrama de Casos de Uso:
Un diagrama de casos de uso explica grficamente un conjunto de casos de uso de un
sistema, los actores y la relacin entre ellos.
Los casos de uso se muestran en valos, los actores son las figuras estilizadas, y las
relaciones son lneas.
2. Casos de uso expandidos: Describen un proceso ms a fondo que el de alto nivel, su principal
diferencia es la seccin curso normal de los eventos, que describe los eventos del proceso
paso a paso:
a. Formato:
i. Caso de uso: <Nombre>
ii. Actores: <actor1>, ...., <actor n>
iii. Propsito: <propsito>
iv. Tipo:<tipo del caso>, se asume es tipo esencial, solo se especifica Primario,
secundario u opcional.
v. Resumen: <una breve descripcin del proceso>
vi. Referencias cruzadas:<casos o funciones del sistema relacionadas con el caso de
uso especificado>
b. Ejemplo:
Diagramas de Interaccin:
Muestran cmo se comunican los objetos en una interaccin.
Los objetos interactan para realizar colectivamente los servicios ofrecidos por las
aplicaciones.
Son modelos que describen la manera en que colaboran grupos de objetos para
representar cierto comportamiento.
Habitualmente, un diagrama de interaccin capta el comportamiento de un solo caso de
uso.
Diagramas de Colaboracin:
El contexto de una interaccin comprende los argumentos, las variables
locales creadas en ejecucin y los enlaces entre los objetos que participan
en la interaccin.
La colaboracin se realiza mediante el intercambio de mensajes. Un
mensaje desencadena una accin en el objeto destinatario.
Son tiles en la fase exploratoria para identificar objetos y mtodos.
Ejemplo:
Modelo Conceptual
El modelo conceptual no es una descripcin de componentes de software, es una representacin
de conceptos del dominio del problema en el mundo real.
El Modelo conceptual muestra:
Conceptos
Asociaciones entre conceptos
Atributos
Los artefactos de software, como una ventana o una base de datos, no forman parte del modelo
conceptual, salvo que el dominio a modelar se refiera a conceptos de software; por ejemplo, un
modelo de interfaces grficas.
Representa la vista esttica del dominio, por lo tanto no se define ninguna operacin.
En trminos informales el concepto es una idea, cosa u objeto.
Asociaciones:
Es una relacin entre conceptos que indica alguna conexin de inters que deber ser
preservada.
Una asociacin se representa como una lnea entre los conceptos con el nombre de la
asociacin. sta es intrnsecamente bidireccional: es un nexo entre objetos de un tipo y del
otro.
Los extremos de una asociacin pueden contener una expresin de multiplicidad que
indique la relacin numrica entre las instancias o conceptos.
Modelo de Clases:
Diseo de un Diagrama de Clases:
Un diseo de diagrama de clases ilustra las especificaciones para las clases de software y
las interfaces en la aplicacin.
Tpicamente est compuesto por:
o Clases, asociaciones y atributos
o Interfaces, con sus operaciones constantes
o Mtodos
o Informacin de los tipos de atributos
o Navegabilidad
o Dependencia
Para definir las clases, debemos considerar:
Cmo se conectan los objetos a otros objetos?
Cules son los mtodos de la clase?
Se debe inspeccionar los diagramas de interaccin, los cuales sugieren las conexiones
necesarias entre objetos y los mtodos que cada clase de software debe definir.
Agregaciones y Composiciones:
1. La agregacin es un tipo de asociacin utilizada para modelar relaciones de partes de un
todo. El todo es llamado Compuesto y las partes no poseen denominacin.
2. Generalizaciones:
a. Algunos conceptos son muy similares; conceptos tales como: pago en efectivo,
pago con cheque, Pago con tarjeta de crdito.
b. En estos casos es posible organizarlos en un tipo jerrquico llamado
generalizacin, en el cual un supertipo representa un concepto ms general y los
subtipos especificaciones de ste.
c. Todos los miembros de un subtipo son miembros de su supertipo.
Patrones de Software:
Modelo que sirve de muestra para sacar otra cosa igual (RAE).
Los patrones se pueden clasificar en:
o Patrones de Arquitectura.
o Patrones de Programacin.
o Patrones de Anlisis.
o Patrones Organizacionales.
o Patrones de Diseo
o Otros Patrones de Software.
Patrones de Diseo:
o Los patrones de diseo nombran, explican y evalan un diseo recurrente en un
sistema orientado a objetos.
o Proponen una forma para reutilizar la experiencia de los diseadores, clasificando
y describiendo formas de solucionar problemas que ocurren de manera frecuente
en el desarrollo de software.
Diseo Arquitectnico:
Arquitectura Centralizada:
Caractersticas funcionales:
o El servidor central contiene todos los datos y es el responsable de la consolidacin
de la informacin.
o Desde el servidor central se controla el acceso a mltiples terminales conectados a
travs de productos integrados en la arquitectura de red.
o Los terminales funcionan como "esclavos" del Servidor central.
o Cada usuario tiene un nmero asignado de derechos y prioridades de ejecucin en
la mquina de sus programas o peticiones.
Caractersticas fsicas:
Una gran base de datos donde residen todos los datos de la organizacin.
Ventajas:
o
Alta disponibilidad.
Control total del servidor, al ser ste nico y residente en un nico Centro de
Proceso de Datos.
Desventajas.
o
Alto precio del servidor, al requerirse mucha potencia de tratamiento para dar
servicio a todos los usuarios que estn conectados y gran espacio en disco para
albergar todos los datos.
Arquitecturas propietarias.
Arquitectura Cliente-Servidor
Caractersticas:
El servidor presenta a todos sus clientes una interfaz nica y bien definida.
El cliente no necesita conocer la lgica del servidor, slo su interfaz externa.
El cliente no depende de la ubicacin fsica del servidor, ni del tipo de equipo fsico en el
que se encuentra, ni de su sistema operativo.
Los cambios en el servidor implican pocos o ningn cambio en el cliente.
Elementos:
Niveles:
1. Primer nivel:
El cliente asume parte de las funciones de presentacin de la aplicacin.
En el servidor an hay programas que se dedican a ese tipo de tareas.
Esta tcnica no exige el cambio en las aplicaciones orientadas a terminales, pero
dificulta su mantenimiento.
Adems, el servidor ejecuta todos los procesos y almacena la totalidad de los datos.
En este caso se dice que hay una presentacin distribuida o embellecimiento.
2. Segundo Nivel:
La aplicacin est soportada directamente por el servidor, excepto la presentacin que
es totalmente remota y reside en el cliente.
Los terminales del cliente soportan la captura de datos, incluyendo una validacin
parcial de los mismos y una presentacin de las consultas.
En este caso se dice que hay una presentacin remota.
3. Tercer Nivel:
La lgica de los procesos se divide entre los distintos componentes del cliente y del
servidor.
El diseador de la aplicacin debe definir los servicios y las interfaces del sistema de
informacin de forma que los papeles de cliente y servidor sean intercambiables,
excepto en el control de los datos que es responsabilidad exclusiva del servidor.
En este tipo de situaciones se dice que hay funcin distribuida o cooperativa.
4. Cuarto Nivel:
El cliente realiza tanto las funciones de presentacin como los procesos.
El servidor almacena y gestiona los datos que permanecen en una base de datos
centralizada.
En esta situacin se dice que hay un manejo de datos remoto.
5. Quinto Nivel:
El reparto de tareas es como en el anterior y adems el gestor de base de datos divide
sus componentes entre el cliente y el servidor.
Las interfaces entre ambos estn dentro de las funciones del DBMS y por lo tanto, no
tienen impacto en el desarrollo de las aplicaciones.
En este nivel se da lo que se conoce como manejo de datos distribuido.
Dos Capas:
Problemas:
Clientes obesos (thick clients): La mayor parte de la lgica de la aplicacin (gestin del
procesamiento) reside junto a la lgica de la presentacin (interfaz de usuario) en el
cliente, con la porcin de acceso a datos en el servidor.
Clientes delgados (thin clients): solo la lgica de la presentacin reside en el cliente,
con el acceso a datos y la mayora de la lgica de la aplicacin en el servidor.
Tres Capas:
Cuatro Capas:
Ventajas:
Aumento de la productividad:
o Los usuarios pueden utilizar herramientas que le son familiares.
o Mediante la integracin de las aplicaciones cliente/servidor con las aplicaciones
personales de uso habitual, los usuarios pueden construir soluciones que se
ajusten a sus necesidades.
o Una interfaz grfica de usuario consistente reduce el tiempo de aprendizaje de las
aplicaciones.
o Menores costos de operacin:
Permiten un mejor aprovechamiento de los sistemas existentes,
protegiendo la inversin.
Proporcionan un mejor acceso a los datos. La interfaz de usuario ofrece
una forma homognea de ver el sistema, independientemente de los
cambios o actualizaciones que se produzcan en l y de la ubicacin de la
informacin.
El movimiento de funciones desde un servidor central hacia servidores
clientes locales origina el desplazamiento de los costos de ese proceso
hacia mquinas ms pequeas y por tanto, ms baratas.
2. Diagrama de despliegue:
Se utiliza para representar cmo sern distribuidos los componentes en la
arquitectura del software.
Se deben especificar los artefactos, que son piezas de informacin fsicas relacionadas
a los componentes de la arquitectura.
Adems, es necesario especificar los nodos fsicos que conformarn la arquitectura.
Notacin para artefacto:
Estado inicial
Estado Intermedio
Estado Final
Transicin
Tener en cuenta que no es posible probar todos los casos, es necesario disear un
conjunto de casos que:
o Pruebe todas las funciones del sistema que se acceden por el men.
o Pruebe las combinaciones de funciones que se acceden a travs del men.
o Pruebe los puntos donde se ingresan datos por el usuario.
o El jefe de proyecto debe decidir quin realizar las pruebas.
Proceso:
1. Inicialmente el programador prueba lo que ha construido (de manera intuitiva teniendo en
cuenta lo que el cdigo debe realizar).
2. Luego, el equipo de pruebas realiza las pruebas del sistema visto como un todo, es decir,
que integra todos los componentes construidos.
3. Posteriormente, el sistema se prueba en su entorno de implantacin.
4. Finalmente, se realizan pruebas durante la operacin del sistema.
Pruebas Unitarias:
o Tambin conocidas como pruebas de componentes.
o El objetivo es encontrar fallos en los componentes (funciones o mtodos de una
clase, clases con sus atributos y mtodos, o conjuntos de clases con interfaces
definidas para comunicarse)
o Ej: Cuando hay herencia, es necesario probar la superclase y las subclases, y todos
sus atributos y operaciones.
Pruebas del Sistema:
o Implica integrar dos o ms componentes para realizar las pruebas. Ejemplo:
Incremento en metodologa incremental.
o Existen dos tipos: pruebas de integracin y pruebas de entrega.
o Pruebas de Integracin:
Se tiene acceso al cdigo
Se conocen como pruebas de caja blanca
Al descubrir un fallo en el sistema, el equipo busca el origen del fallo en el
cdigo.
Pruebas de Entrega:
o No se tiene acceso al cdigo
o Se conocen como pruebas de caja negra.
o El equipo valida si el sistema satisface o no los requisitos y es fiable.
o Si encuentra algn fallo, lo registra. Posteriormente, el programador revisa el
cdigo para encontrar el origen del fallo.
o Si el cliente se implica en las pruebas de entrega, stas son conocidas como
pruebas de aceptacin.
o Normalmente, las pruebas de integracin se utilizan para verificar el sistema y las
de entrega para validarlo.
o Sin embargo, en ambos tipos se realiza parte de verificacin y validacin.
o Existe solape de las pruebas de integracin y las pruebas de entrega?
o S. Las pruebas de integracin se convierten en las pruebas de entrega cuando el
incremento ya tiene todas las funcionalidades requeridas.
Pruebas de Rendimiento:
o Se realizan cuando se han terminado las pruebas de integracin.
o Es necesario crear un perfil operacional para realizar estas pruebas.
o Normalmente se estresa el sistema para calcular su rendimiento -> pruebas de
estrs.
Pruebas de estrs:
o Se sobrecarga el sistema para ver hasta qu punto funciona correctamente.
o Se utilizan en sistemas distribuidos (-> la red se satura con datos de coordinacin +
datos del proceso)
Diseo de casos de prueba:
o El objetivo es crear un conjunto de casos de prueba que encuentren la mayora de
los defectos y fallos y que demuestren que el sistema satisface los requisitos.
o 1. Se selecciona una caracterstica a probar.
o 2. Se identifican y documentan las entradas (vlidas y no vlidas).
o 3. Se identifica el proceso (algoritmo) a realizar con las entradas.
o 4. Se identifican y documentan las salidas esperadas.
Pruebas Evolutivas:
o Su objetivo es encontrar un conjunto de casos de prueba que logran que el
sistema falle.
Pruebas de Cobertura:
o Indican la cantidad del cdigo que est siendo incluido en las pruebas.
o Una cobertura de 85%-90% es aceptable. Una cobertura menor indica que gran
parte del cdigo no est siendo revisado en las pruebas unitarias.
Pruebas de Regresin:
o Corresponden a un conjunto de casos de prueba que demuestra que el SUT
(sistema bajo prueba) funciona correctamente y que es aplicado luego de hacer un
cambio en el SUT (por ejemplo: una nueva versin).
Automatizacin de las pruebas:
o Las pruebas es un proceso caro y costoso. Existe una serie de herramientas que
permiten apoyar este proceso:
Gestor de pruebas: Ejecuta las pruebas (ej. JUnit).
Generador de datos de prueba
Orculo: genera predicciones de los resultados esperados.
Comparador de archivos: se utilizan para comparar los resultados de las
pruebas.
Generador de informes
Analizador dinmico: agrega cdigo al programa para contar el nmero de
veces que se ejecuta cada sentencia.
Simuladores: simulan el entorno operacional.
Gestin de Calidad:
Se divide en tres actividades principales:
1. Garanta de calidad: marco de trabajo y estndares que conducen a desarrollar SW de alta
calidad.
2. Planificacin de la Calidad: Seleccin de procedimientos adecuados para el marco de
trabajo y adaptacin de ellos a un proyecto especfico.
3. Control de calidad: Definicin y fomento de procesos que garanticen el seguimiento de los
procedimientos definidos.
Calidad del proceso y del Producto
La calidad del proceso tiene una influencia significativa en la calidad del producto de
software.
La gestin de la calidad del proceso debera minimizar los defectos del software.
La gestin de la calidad del proceso implica:
o Definir estndares.
o Supervisar el proceso para que se sigan los estndares.
o Hacer informes para el jefe del proyecto.
o Un problema de la calidad basada en estndares es que no tiene en cuenta el tipo
de software a desarrollar.
Estndares sobre el producto. Ejemplo: Estndares de documentacin, estndares de
codificacin.
Estndares sobre el proceso. Ejemplo: procesos de especificacin de requisitos, diseo,
verificacin, y validacin.
ISO 9000 - Calidad de productos:
No es especfico para el software. Puede ser aplicado para productos de manufactura como para el
desarrollo de software.
ISO 9001: describe el sistema de calidad utilizado para mantener el desarrollo de un
producto que implique diseo. Este se aplica para el desarrollo de software.
ISO 9000-3: interpreta el ISO 9001 para el desarrollo de software.
ISO 9004-2: este documento proporciona las directrices para el servicio de facilidades del
software como soporte de usuarios.
ISO 9126 Calidad del producto:
o El estndar ISO/IEC 9126 se compone de cuatro partes: el modelo de calidad,
mtricas externas, mtricas internas y mtricas para la calidad de uso.
CMMi
Es la evolucin del modelo CMM que permite evaluar la madurez de los procesos de
software. CMMi integra la evaluacin de los procesos de software.
Hay tres versiones de CMMi disponibles:
o CMMI-DEV: para procesos de desarrollo de productos y servicios.
o CMMI-ACQ: para gestionar la cadena de suministro, adquisicin y contratacin
externa en los procesos del gobierno y la industria.
o CMMI-SVC: para gestionar, establecer y entregar Servicios.
Inicial o Nivel 1: Este es el nivel en donde estn todas las empresas que no tiene procesos
bien definidos
o Caractersticas:
Los presupuestos se disparan.
No es posible entregar el proyecto en fechas.
Es necesario quedarse durante noches y fines de semana para terminar un
proyecto.
No hay control sobre el estado del proyecto.
El desarrollo del proyecto es completamente opaco, no sabes que es lo
que pasa en l
Si no sabes el tamao del proyecto y no sabes cunto llevas hecho, nunca
sabrs cuando vas a terminar.
Gestionado o Nivel 2: El xito de los resultados obtenidos se pueden repetir.
o La principal diferencia entre este nivel y el anterior es que el proyecto es
gestionado y controlado durante el desarrollo del mismo.
o El desarrollo no es opaco y se puede saber el estado del proyecto en todo
momento.
o Los procesos que hay que implantar para alcanzar este nivel son:
Gestin de requisitos
Planificacin de proyectos
Seguimiento y control de proyectos
Gestin de proveedores
Aseguramiento de la calidad
Gestin de la configuracin
Optimizando o Nivel 5: Los proyectos usan objetivos medibles para alcanzar las
necesidades de los clientes y la organizacin. Se usan mtricas para gestionar la
organizacin.
o Los procesos que hay que implantar para alcanzar este nivel son:
Innovacin organizacional.
Anlisis y resolucin de las causas.
*Normalmente las empresas que intentan alcanzar los niveles 4 y 5 lo realizan simultneamente
ya que estn muy relacionados.
Gestin de la configuracin
La gestin de la configuracin es necesaria para controlar los cambios y las versiones del
software.
El cambio es un hecho vital en el desarrollo del software:
Los clientes desean modificar los requerimientos.
El equipo de desarrollo desea modificar el enfoque tcnico.
Los gestores desean modificar el enfoque del proyecto.
Lnea de base: Una lnea base es un punto del ciclo de vida del software en el cual se aplica
el control de configuraciones a un elemento especfico de la configuracin.
MTRICA es una metodologa para la gestin de la configuracin que incluye los siguientes
elementos:
o Ejecutables.
o Cdigo fuente.
o Modelos de datos.
o Modelos de procesos.
o Especificaciones de requisitos.
o Pruebas.
o *Para cada elemento se almacena Nombre, Versin, Estado y Localizacin.