Professional Documents
Culture Documents
PUDS
FASES:
Inicio
Elaboracin
Construccin
Transicin
Flujos de trabajo
Modelado de Negocio
Requerimientos
Anlisis
AyDS
Diseo
Implementacin
Prueba
Info IV
UNIDAD N 1
MODELO DE DISEO
Modelo de Anlisis:
Terminado el modelo se tiene una descripcin detallada de todos los requisitos del
sistema.
Modelo de Diseo:
Constituye una formalizacin y refinamiento adicional al modelo de anlisis.
Modelo de objetos representando la realizacin fsica de los casos de uso.
Permite conocer especificaciones muy detalladas de todos los objetos,
incluyendo operaciones y atributos.
Se definirn explcitamente las interfaces de los objetos y la semntica de las
operaciones.
Se compondr de bloques que constituirn los objetos de diseo, que luego sern
implementados como cdigo fuente, abstrayendo la implementacin real.
Inicialmente cada objeto de anlisis se transformar en un bloque, teniendo
rastreabilidad en los modelos.
Es una abstraccin de cmo el sistema se construye realmente y nos permite
reducir la complejidad del mismo.
Es la ltima parte de la iteracin de elaboracin y comienza la de construccin.
Se deben tener definidas las herramientas que se utilizarn en el desarrollo de la
aplicacin, ya que muchas cosas se pueden dejar listas y autogenerarlas para el modelo
de implementacin.
Para desarrollar el modelo de diseo debemos:
Identificar el ambiente de implementacin: Identificar e investigar las consecuencias que el
ambiente de implementacin tendr sobre el diseo.
Incorporar estas conclusiones y desarrollar un primer enfoque del modelo de diseo:
Usamos el modelo de anlisis como base y traducimos los objetos de anlisis a objetos de diseo,
de acuerdo al ambiente actual de implementacin.
1
Describir cmo interactan los objetos en cada caso de uso especfico: El modelo de diseo
se focaliza en describir todos los estmulos enviados entre objetos y qu operacin har cada uno.
Este proceso nos dar las interfases de cada objeto.
Rastreabilidad:
Se puede rastrear una clase desde el cdigo fuente al anlisis y viceversa.
Es importante porque a medida que el sistema tiene cambios a lo largo de su
ciclo de vida se necesita saber siempre dnde se deben hacer los cambios en el
cdigo fuente.
Artefactos
1.-Clases de diseo:
Son abstracciones de clases de implementacin.
Muchas caractersticas de las clases tienen relacin directa con el lenguaje
de programacin, por eso es necesario tenerlo elegido en esta instancia.
Se deben definir para cada clase sus mtodos, atributos, parmetros, tipos,
visibilidad de los atributos (pblicos, protegidos, privados, amigos).
2.-Realizacin de casos de uso de diseo:
Se vinculan directamente con las realizaciones de casos de uso de
anlisis, los cuales se relacionan con casos de uso de modelos de casos de
uso (as se traza rastreabilidad a travs de los distintos modelos).
Se tienen en cuenta los distintos requerimientos no funcionales que se
fueron recolectando.
Las realizaciones poseen:
diagramas de clases,
diagramas de interaccin.
Diagramas de clases:
Las clases y subsistemas pueden intervenir en ms de un caso de una
realizacin de casos de uso.
A travs de ellos se pueden tener registrado qu clases intervienen en las
realizaciones de los distintos casos de uso.
Interfaz Entrada
Botones de Comando
Cuadros de Texto
Etiquetas
Opciones()
Gestor de personal
Entidad de control de personal
Obtener datos de usuarios()
Actualizar datos de usuarios()
Imprimir resultados()
Generar consulta de usuarios()
Administrador de
sistema
Usuario
Nombre
Apellido
Direccin
Telefono
Id Empleado
Ingresar()
Borrar()
Modificar()
Interfaz Salida
Botones de Comando
Etiquetas
visualizacin()
Confirmacin()
Diagramas de interaccin:
o Se utilizan Diagramas de secuencia.
o En ellos las interacciones entre objetos se representan mediante la
transferencia de mensajes entre dichos objetos.
o Muestra las interacciones entre objetos ordenadas en secuencia temporal.
o Se utilizan para validar casos de uso.
o Documentan el diseo desde el punto de vista de los casos de uso
observando qu mensajes se envan a los objetos, componentes o casos de
uso y viendo grosso modo cunto tiempo consume el mtodo invocado.
o Ayudan a comprender los cuellos de botella potenciales para poder
eliminarlos.
o Conceptos relacionados:
Lnea de vida de un objeto (lifeline):
: Administrador de
Interfaz entrada
sistema
Ingresa opcion
Gestor Personal
Usuarios
Interfaz Salida
3.-Subsistema de diseo:
4.-Interfaz:
6.-Modelo de despliegue:
Permite representar cmo ser la distribucin fsica del sistema, o sea dnde
residir fsicamente cada uno de los componentes (clases de interfaz, de control,
de entidad).
Las ubicaciones fsicas se denominan nodos.
Existen relacionen entre ellos representadas por medios de comunicacin: Internet,
extranet, intranet.
Hay nodos que contienen los componentes asociados a interfaces entre el sistema y
los actores (por ejemplo donde residen las distintas pantallas de aplicacin).
Otros nodos contienen las clases de control, que residen en los servidores de
aplicacin.
Hay nodos donde estarn las clases de entidad que luego constituirn los repositorios
de datos (BASES DE DATOS).
Servidor de Base de
Datos
Terminal de
ventas
Terminal de
administracin
Trabajadores
Arquitecto:
Responsable de asegurar que el modelo de diseo y de despliegue se
correspondan con el modelo de casos de uso y de anlisis.
Cuida que sea consistente y que est todo lo significativo para la arquitectura del
modelo.
Ingeniero de Casos de Uso:
Es el encargado de asegurar las realizaciones de casos de uso del modelo de
casos de uso y del modelo de anlisis.
Cuida los detalles para que cada caso de uso sea comprendido perfectamente y que
las relaciones con los casos de uso de los modelos anteriores estn totalmente claras.
Ingeniero de componentes:
Es el encargado de definir todo lo referido a las clases del diseo y tambin de
los subsistemas de diseo.
Para las clases define sus mtodos, atributos (interfaz) y las relaciones que existen
con otras clases, que relaciones existen con otros subsistemas y de qu forma se
relacionan con los otros subsistemas (interfaces).
Flujo de Trabajo
Diseo de la arquitectura:
Comenzamos en esta etapa a definir los modelos de diseo y de despliegue,
utilizamos para ello los siguientes elementos:
a. Nodos y sus configuraciones de comunicacin.
b. Subsistemas y sus interfaces.
c. Clases de diseo relevantes para la arquitectura.
d. Mecanismos genricos de diseo.
a) Nodos y sus configuraciones de comunicacin:
Toda aplicacin est compuesta por tres capas, una encargada de la interfaz
con el usuario, otra de almacenamiento de la informacin y una capa intermedia
encargada de procesar las reglas y lgica del negocio.
Estas capas pueden tener tanto una divisin lgica como fsica:
divisin lgica: en la aplicacin se encuentran muy bien
divididas las tres funcionalidades de estas capas,
Es importante detallar las clases que hay que tener en cuenta para la
arquitectura.
No debemos analizar un gran nmero de clases ni bajar en un nivel de detalle
extremo en ese momento, slo analizar las relevantes para la arquitectura.
El anlisis ms fino se har en el diseo de clases y en el de casos de uso.
d) Mecanismos genricos de diseo:
Se trata de todos aquellos requisitos especiales que fuimos detectando en
modelos anteriores y pospusimos hasta tener mejor definidas las caractersticas
ms tcnicas del proyecto (plataforma de cada capa, lenguajes, bases de datos).
Suelen relacionarse con:
Persistencia.
Distribucin transparente de objetos locales y remotos.
Seguridad.
Mono o multiusuario.
Manejo de errores.
Transacciones.
Arquitectura de la aplicacin (una, dos o ms capas lgicas).
Tipos de interfaz de usuario (Windows o Web).
Eventos
Es una ocurrencia que puede causar la transicin de un objeto de un estado a otro.
El nombre de un evento tiene alcance dentro del paquete en el cual est definido,
no es local a la clase que lo nombre.
Envo de mensajes
Puede representarse el momento en el cual se envan mensajes a otros objetos.
Esto se realiza mediante una lnea punteada dirigida al diagrama de estados del
objeto receptor del mensaje.
Diseo de un subsistema:
Los puntos clave a tener en cuenta son:
independencia entre subsistemas,
mantener interfaces y sus operaciones,
asegurar que el subsistema cumple con su objetivo en las distintas
realizaciones en las que est involucrado.
Caso Prctico
1.- Diagrama de casos de uso
Los casos de uso especifican una interaccin entre un usuario y el sistema en el que ste
puede lograr un objetivo.
Casos de uso para agencia de alquiler de autos:
El cliente reserva el vehculo
Antes de disponer del vehculo el cliente debe hacer la reserva. Para ello se pone en
contacto con la agencia de alquiler y realiza una solicitud.
La agencia la acepta o la rechaza basndose en una serie de criterios, como por
ejemplo la disponibilidad de los vehculos o el historial de alquiler del solicitante.
Si se acepta la reserva el comercio llena un formulario con los detalles del cliente y
el pago del depsito completa el proceso de reserva.
El cliente acude por el vehculo
Cuando el cliente llega a la agencia de vehculos sta le asigna el modelo de
vehculo solicitado segn los niveles de stock disponibles.
Una vez abonado el importe total el cliente recibe el automvil.
10
El cliente
devuelve el vehculo
El cliente devuelve el vehculo a la agencia el da especificado en el acuerdo de
alquiler.
11
4.-Diagrama de colaboracin
Los diagramas de colaboracin constituyen otro tipo de diagrama de interaccin.
Muestran cmo operan los objetos de un grupo entre s en un caso de uso.
A cada mensaje se le asigna un nmero para documentar el orden en el que tiene
lugar.
5.-Diagrama de estados
El estado de un objeto se define como sus atributos en un momento determinado.
Los objetos van pasando por distintos estados a medida que se ven influenciados
por estmulos externos.
El diagrama de estados asigna estos estados, as como los eventos de activacin
que hacen que un objeto se encuentre en un estado determinado.
6.-Diagrama de actividades
12
Los diagramas de actividades muestran la lgica que tiene lugar como respuesta a
las acciones generadas internamente.
Est relacionado con una clase o caso de uso especfico y muestra los pasos que se
deben realizar para llevar a cabo una operacin determinada.
7.-Diagrama de despliegue
Muestran cmo estn configurados el hardware y el software del sistema.
8.-Diagrama de componentes
Corresponden al modelo de implementacin.
Muestran cmo distintos subsistemas de software conforman la estructura general
del sistema que se crea en una base de datos centralizada que contiene registros de
alquileres anteriores, detalles del vehculo, registros de servicios y detalles del cliente
y del empleado.
13
Resulta esencial que estos datos se centralicen en una base de datos porque los
niveles de stock varan con las horas y todas las partes deben disponer de informacin
de ltima hora.
El mantenimiento de los datos actualizados requiere actualizaciones de la
informacin en tiempo real de todas las partes.
UNIDAD N2
MODELO DE IMPLEMENTACION
Modelo de Implementacin:
Busca implementar cada objeto especfico en trminos de componentes (scripts, archivos
de cdigo binario ejecutables-,etc.).
Son herramientas fundamentales los lenguajes de programacin y las libreras.
Se toman los resultados del diseo para convertirlos en un software ejecutable; un
sistema que integra componentes expresados en archivos fuentes, ejecutables, cdigo binario y
similares dndole comportamiento concreto al modelo.
La implementacin es el proceso protagonista durante las iteraciones de la fase de
construccin. Observe que tambin se desarrolla trabajo de implementacin durante las fases de
elaboracin y transicin. Generalmente en estos casos, las actividades de implementacin dan
soporte a los flujos de anlisis y diseo mediante prototipos; y la correccin de errores empotrados
en el cdigo, respectivamente.
Los propsitos de este flujo de trabajo son los siguientes:
14
Definir la organizacin que tendr el cdigo en trminos de subsistemas y capas de
proceso, mostrando la asignacin de componentes ejecutables a nodos del diagrama de
despliegue.
Todo el proceso de desarrollo propuesto por el PUD est conducido por casos de uso. En
este flujo de trabajo se producen modelos que realizan y tienen una traza definida hacia el modelo de
casos de uso obtenido en el flujo requerimientos.
Los artefactos producidos durante los flujos de trabajo anlisis y diseo son una
entrada primaria para el proceso desarrollado durante este flujo de trabajo.
En el flujo de trabajo pruebas se definen los casos de prueba que sern incluidos durante
cada una de las integraciones de subsistemas y sistemas que acontecen durante este flujo de trabajo.
2.1. Implementar el diseo
Cada clase del diseo es implementada codificando en un lenguaje de programacin, o
utilizando un componente preexistente. Por eso la manera en que una clase del diseo ser
concretamente implementada depende del lenguaje utilizado.
El modelo de diseo puede ser ms o menos ajustado al modelo de implementacin
dependiendo de cmo haga corresponder las clases o construcciones similares en el lenguaje de
implementacin elegido.
Es necesario disponer antes de que el diseo comience, la forma en que las clases en el
modelo de diseo se relacionan con las clases de implementacin asentando esta decisin en la Gua
de Diseo.
2.2. Las pruebas de desarrollo
La frase Prueba de Desarrollo es utilizada para categorizar las actividades de prueba
ejecutadas por los arquitectos, ingenieros de componentes, programadores o desarrolladores de
software.
En muchos de los mtodos tradicionales se consideran los siguientes tipos de pruebas:
Pruebas de unidad: prueba de cada componente individual
Pruebas de integracin: prueba de funcionamiento de subsistemas
Pruebas de Sistema: prueba de funcionamiento del sistema como un todo.
Esta categorizacin es correcta, sin embargo el problema surge cuando se decide integrar
los subsistemas y el sistema total cuando casi se ha concluido la codificacin de los componentes y
se definen equipos de pruebas que actuarn por etapas. Puede ser muy tarde, los errores podran
propagarse sin ser detectados por los diferentes equipos de prueba.
Las fallas descubiertas podran develar graves problemas de diseo y generar un alto grado
de retrabajo no deseable para los costos y oportunidad de entrega del producto final.
No espere terminar todos los componentes para integrar subsistemas y el sistema final. Lo
que sera peor an, no deje las pruebas de componentes para el final de la fase de construccin. En
cada iteracin, de la fase construccin, en cada construccin, an en la fase de elaboracin, haga
pruebas de integracin y pruebas de sistema.
2.3. Entornos de desarrollo e integracin
Un sistema generalmente es implementado por equipos de desarrolladores o programadores
individuales que trabajan juntos y en paralelo. Para que esto sea posible son necesarios los siguientes
espacios o entornos de trabajo:
15
16
Actividades
17
pasos:
La primera versin del modelo de implementacin se obtiene como una copia espejada de
la ltima versin del Modelo de Diseo.
Los paquetes de diseo se expresan como subsistemas compuestos a su vez de
componentes y todos los archivos relacionados necesarios para implementarlos.
Considere que cada clase del diseo ser un componente implementado codificando en un
lenguaje de programacin o empleando un componente preexistente. La manera en que una clase del
diseo ser concretamente implementada depender del lenguaje utilizado.
Ajustar los subsistemas de implementacin
Sin embargo, los componentes y subsistemas de prueba no forman parte del sistema
implantado, y por lo general no se entregan al cliente. Por lo tanto la recomendacin es aislar estos
componentes en una estructura de directorio o paquete, garantizando su visibilidad; pero facilitando
su eliminacin al momento de construir la versin operativa del software.
Actualizar la vista de implementacin
18
Con el objeto de evitar que el plan de construccin quede obsoleto, este debe ser
actualizado cada vez que sucedan modificaciones en la arquitectura y el diseo.
Al menos una vez por cada iteracin en las fases de construccin y transicin, quien
cumple con el rol de integrador, desarrolla esta actividad que tiene como objetivo principal el de
planear el modo en que han integrarse cada componente y cada subsistema en el sistema que se
construye.
El plan de la iteracin identifica y especifica los subsistemas con sus respectivos casos de
usos y escenarios a ser implementados. En el plan se analizan tambin las realizaciones de
casos de uso, diagramas de secuencia y colaboracin. Se identifican tambin otros subsistemas
necesarios para facilitar la compilacin y crear una versin ejecutable del software.
Definir conjuntos de construccin
Para facilitar las cosas y manejar la complejidad se reduce el nmero de cosas sobre las
que es necesario pensar. En esta situacin es recomendable definir conjuntos significativos de
subsistemas que funcionan juntos y pueden considerarse como una unidad desde el punto de vista de
una integracin.
Definir series de construccin
Recordar que las personas que cumplan este rol deben manejar fluidamente el lenguaje de
programacin adoptado.
Lineamientos de trabajo
19
Este trabajo tiene mejores resultados si se realiza en varias etapas, cada una enfocada en
pequeas secciones del cdigo.
Son ms productivas las revisiones frecuentes con un alcance acotado. En estas sesiones se
identifican los problemas especficos que necesitan ser resueltos. Las correcciones se implementan
al terminar la revisin.
Elegimos un algoritmo
Codificamos la operacin
Definicin de nuevas clases y operaciones: esto sucede cuando necesitamos nuevas clases
que mantengan resultados intermedios. Por ejemplo, al descomponer una operacin compleja en dos
operaciones ms simples. Estas operaciones sern privadas y visibles por lo tanto solo en el contexto de la
misma y no fuera de ella.
Si una clase o parte de una clase puede ser implementada reutilizando una clase existente,
se usa el mecanismo de delegacin en lugar de la herencia.
Delegacin significa que la clase es implementada con la ayuda de otra clase. La clase
referencia un objeto de otra clase utilizando una variable. Cuando una operacin es llamada, la
operacin llama una operacin del objeto referenciado -de la clase reutilizada-. Recuerde que en un
buen diseo de objetos, estos son bastante haraganes. Estn buscando todo el tiempo delegar la
responsabilidad a un especialista para que haga lo que a l se le ha pedido.
20
Implementar asociaciones
Una asociacin unidireccional es implementada como un puntero -un atributo que contiene
una referencia a un objeto-. Si la cardinalidad destino fuera uno, entonces esta puede ser definida
como un puntero simple. En cambio si la cardinalidad destino es muchos, entonces debe ser tratada
como un conjunto de punteros.
Definir una nueva clase es a menudo ms flexible, pero tenga en cuenta que introduce una
indireccin innecesaria. Por ejemplo, el nmero de seguridad social de un empleado podra ser
implementado como un atributo de tipo String o como una nueva clase.
Podra darse tambin el caso que grupos de atributos se combinen en dos nuevas clases tal
como se muestra en el ejemplo siguiente donde ambas implementaciones son correctas:
Siempre se compila el cdigo, y se fija al mximo nivel de detalle los avisos del
compilador.
Una vez en este entorno de integracin cada construccin es probada, luego de lo cual, y
habiendo superado los requerimientos de calidad preestablecidos, la nueva versin del subsistema
pasa al entorno de integracin del sistema total.
21
Siguiendo el plan de integracin de construcciones se agrega e integra cada subsistema en
el entorno de trabajo del sistema. De este modo se obtiene una nueva versin del software que es
sometida al flujo de trabajo de pruebas.
Lineamientos de Trabajo
Este paso consiste en la ejecucin de procedimientos de prueba o scripts si las pruebas son
automatizadas.
Este paso tiene el propsito de determinar si las pruebas concluyeron con xito, y tener una
visin clara de la accin correctiva requerida.
Cuando la prueba termina, se revisan los resultados para asegurar que los mismos son
confiables, que las advertencias de compilacin (warnings), o resultados inesperados, no han sido
ocasionados por influencias externas tales como una inicializacin o datos incorrectos. Si las fallas
reportadas se deben a errores identificados en artefactos de prueba o debido a problemas con el
22
entorno de prueba, se toman las acciones correctivas apropiadas y se ejecuta la prueba nuevamente.
Si los resultados indican que las fallas son genuinamente atribuibles a los artefactos probados
entonces se contina con la actividad Corregir Errores.
Recuperar a partir de parada de pruebas
En este caso la meta ser determinar las acciones correctivas apropiadas para reiniciar una
prueba detenida, corregir el problema, recuperar y ejecutar la prueba nuevamente.
Esta parada puede deberse a fallas en los scripts utilizados para lanzar pruebas, en fallas
del sistema tales como cadas de red, cadas de hardware, etc. En todos estos casos los sntomas son
parecidos:
Estabilizar el defecto.
Localizar la falla.
Corregir la falla.
Estabilizar el defecto
Luego se limita el caso de prueba identificando cul de los factores del caso de prueba
hacen que el error ocurra, y cuales factores son irrelevantes al mismo. Para determinar si un factor es
irrelevante, se cambia el factor en cuestin y ejecuta el caso de prueba; si el error an as ocurre, este
factor puede ser probablemente eliminado.
Si se logr, se finaliza con al menos un caso de prueba que reproduce el error y tambin
con alguna idea sobre que factores estn relacionados con la ocurrencia del error.
Localizar la falla
El prximo paso es ejecutar los casos de prueba que originan la falla e intentar identificar
el lugar concreto del cdigo donde se produce el fallo. Ejemplos de cmo localizar una falla son:
Ponga atencin a la regin sospechosa del cdigo. Pruebe una pequea parte de l,
comente para que no se ejecute la o las sentencias que supone producen el error
y corra nuevamente el caso de prueba. Contine comentando pedazos del
programa mientras el error persista. Como resultado se podr identificar el lugar
preciso donde se produce la falla.
Utilice un debugger herramienta provista por un entorno de desarrollo de un
lenguaje de programacin para localizar un error para revisar el cdigo lnea por
lnea y monitorear los valores de variables significativas del programa.
Corregir la falla
Cuando la falla ha sido localizada es momento de corregir el cdigo. Esta debiera ser la
parte ms fcil del proceso.
23
Cuando la falla ha sido corregida agregue un caso de prueba especial que
verifique particularmente el error.
5. Artefactos
5.1 Modelo de implementacin
Describe tambin cmo se organizan los componentes de acuerdo con los mecanismos de
estructuracin y arquitectura de mdulos disponibles en el entorno de implementacin y en el
leguaje lenguajes de programacin utilizados, y cmo dependen los componentes unos de otros.
5.2 Construccin
Es una expresin concreta y resultante del ciclo de vida iterativo. Representa y demuestran
la funcionalidad desarrollada a la fecha.
Durante el desarrollo iterativo del software podr haber numerosas construcciones. Cada
una proveer puntos de revisin y ayudar a descubrir problemas de integracin en la medida que
los mismos han sido introducidos.
5.3 Componente
Por ejemplo, un componente podra implementar varias clases, sin embargo, la forma
exacta en que se crea esta traza depende de cmo van a ser estructurados y armados en mdulos los
archivos de cdigo fuente, dado el lenguaje de programacin que se est utilizando.
5.4 Stubs
24
Para evitar estos problemas utilizamos los componentes Stubs, los cuales se comportan
como si fueran los componentes reales, al menos para los valores o mensajes que su componente
enva al momento de la prueba. Con una perspectiva ms amplia podramos considerar en esta
categora a emuladores que simulan el comportamiento real de otros componentes no disponibles.
5.5. Subsistema de implementacin
Los subsistemas de implementacin estn muy relacionados con los subsistemas de diseo
en el modelo de diseo visto anteriormente. De hecho, los subsistemas de implementacin deberan
seguir la traza uno a uno de sus subsistemas de diseo correspondientes.
5.6 Interfases
Las interfases, ya definidas como artefactos en el Flujo de Trabajo Diseo, pueden ser
utilizadas en el modelo de implementacin para especificar las operaciones realizadas por
componentes y subsistemas.
Adems como se mencion anteriormente los componentes y los subsistemas pueden tener
dependencias de uso sobre interfases.
En este caso las interfases no son necesariamente pantallas sino que podramos entenderlas
como conectores o facilitadores de acceso a los elementos de un modelo. La definicin de estos
conectores puntos de enlace se implementan de acuerdo al lenguaje utilizado. La firma (visibilidad,
nombre, argumentos de entrada / salida) de una clase en c++ o en java son la interfase de acceso a las
mismas.
5.7. La vista del modelo implementacin
Tanto la vista de implementacin como las otras vistas de arquitectura son documentadas
en el Documento de Arquitectura del Software.
6. Trabajadores
6.1 Arquitecto de Software
25
decisiones de ste tipo son convenientemente comunicadas, validadas y compartidas por los
miembros del equipo de trabajo.
6.2 Implementador
Tal como se dijo en el punto 2.3 los implementadores liberan sus programas probados en
un espacio de integracin de subsistemas donde el integrador los combina para producir una
construccin de un mdulo o paquete del sistema. El integrador es responsable tambin de planear la
integracin que tiene lugar una vez finalizada la del nivel de subsistemas. Efectivamente, los
subsistemas o mdulos obtenidos son agregados e integrados posteriormente en otro espacio de
trabajo correspondiente al sistema total.
UNIDAD N3
MODELO DE PRUEBAS
Propsito de las pruebas
Planificar las pruebas necesarias en cada iteracin, incluyendo las pruebas de integracin y
las pruebas de sistema.
Las pruebas de integracin son necesarias para cada construccin dentro de la iteracin;
mientras que las pruebas de sistema son necesarias slo al final de la iteracin.
Disear e implementar las pruebas creando los casos de prueba que especifican qu probar,
los procedimientos de prueba que detallan cmo realizar las pruebas y si es posible, componentes de
prueba ejecutables para automatizar las pruebas.
Realizar las diferentes pruebas y manejar los resultados de cada una de ellas
sistemticamente.
Las construcciones en las que se detectan defectos son probadas de nuevo y posiblemente
devueltas a otro flujo de trabajo, como diseo o implementacin, de forma que los defectos
importantes puedan ser arreglados.
Relacin con otros flujos de trabajo
El flujo de trabajo requerimientos captura los requisitos para los productos de software.
Estos requerimientos son el punto de partida y entrada principal de la actividad de identificacin de
las pruebas a realizar.
Cuando se prueba un programa se desea agregarle algn valor -es decir, puesto que
la prueba es una actividad costosa, se desea un incremento del valor del programa.
Puesto que los seres humanos tendemos a estar fuertemente orientados hacia la
obtencin de metas, el establecimiento de una de ellas en forma apropiada tiene gran
importancia desde el punto de vista psicolgico.
26
Si la nuestra es demostrar que el programa no tiene errores, estaremos entonces
subconscientemente dirigidos hacia este fin, es decir, tenderemos a seleccionar datos de
prueba con baja probabilidad de hacer que el programa falle.
Esta ltima manera de enfocar el problema agrega al programa mayor valor que la
primera. Un caso de prueba que descubre un error difcilmente pueda ser considerado como
no exitoso; mas bien, ha demostrado ser una valiosa inversin.
2.2. Conceptos bsicos
Testing de software
Podra decirse que un software no tiene calidad por ejemplo cuando el sistema se cancela
inesperadamente, no cumple las funcionalidades requeridas por los usuarios, implementa dichas
funcionalidades en forma incorrecta, sus respuestas son lentas, es difcil de utilizar (no es amigable),
permite cometer errores, es difcil entender el cdigo fuente, slo quien lo construy puede
modificarlo, es ms complejo de lo necesario, no se sabe bien cmo probarlo, entre otros.
Testing es una de las barreras para evitar que productos software de baja calidad lleguen a
clientes.
En un cdigo que estamos probando se pueden encontrar errores que causan defectos, los
cuales muestran fallas.
Falla (failure)
La tipificacin de la falla siempre se hace en la mayor categora que esta pueda alcanzar,
por ejemplo, si la falla es de propiedad y funcional (tal es el caso de un conjunto de datos que se
obtienen en un tiempo mayor al esperado y con datos errneos), la misma ser catalogada como
27
funcional (ya que un conjunto de datos errneos puede obtenerse a la velocidad que se desea y an
as la falla no se habr solucionado). A pesar de esto la falla debe describirse completamente.
Defecto (fault)
Error (mistake)
La persona que efecta la prueba considera el programa como una caja negra, es decir, se
desentiende completamente del comportamiento y estructura internos.
Si el objetivo es hallar todos los errores en un programa, el criterio ser probar la entrada
de datos exhaustivamente. Esto implica emplear toda posible condicin de entrada como un caso de
prueba.
Las pruebas de caja blanca o lgicas, permiten examinar la estructura interna de los
programas.
Usndola el operador de la prueba obtiene datos de prueba a partir del examen de la lgica
del programa.
Un programa puede ser incorrecto por causa de secuencias faltantes. Por supuesto, una
prueba exhaustiva de secuencias no detectar la falta de secuencias lgicas necesarias.
Una prueba de este tipo podr no detectar errores de sensitividad de los datos.
Existen muchos ejemplos de estos errores, pero bastar con presentar uno simple.
Suponga que en un programa se deben comparar dos nmeros para detectar una
convergencia, es decir determinar si la diferencia entre los dos nmeros es menor que un valor
predeterminado.
Por supuesto, esta sentencia contiene un error porque deberamos comparar EPSILON con
el valor absoluto de A-B y no se lo detectar necesariamente ejecutando cada secuencia lgica
posible dentro del programa.
Las pruebas se aplican con distintos niveles de esfuerzo y enfoques en el ciclo de vida de
desarrollo del software.
28
Es muy importante tener un enfoque adecuado en cada un de los momentos del proyecto.
Pruebas de desarrollo
Las pruebas de desarrollo se focaliza sobre los aspectos de test ms apropiados para ser
encarados por los propios desarrolladores del proyecto. En contraste, las pruebas de sistema
mencionadas ms adelante, pueden ser encaradas por un grupo independiente de pruebas.
Tradicionalmente, las pruebas de desarrollo han sido concebidas como pruebas de unidad
con foco ocasional en aspectos de integracin e infrecuentemente otros aspectos de prueba. Seguir
con este criterio tradicional presenta riesgos en la calidad del software. A menudo aspectos que
corresponden a los lmites de esta categorizacin son ignorados. En particular las pruebas de
desarrollo han sido tratadas en la unidad 3 en el flujo de trabajo implementacin.
La mejor estrategia es dividir el esfuerzo de trabajo de pruebas a los fines de tener cierta
superposicin natural cuya magnitud depende de cada proyecto en particular. Lo que resulta
insoslayable y recomendable siempre es que tanto los desarrolladores como el grupo independiente
de pruebas del sistema compartan una misma visin de calidad.
Pruebas de unidad
Las pruebas de integracin son hechas para asegurar que los componentes del Modelo de
Implementacin funcionan armnicamente cuando son combinados para ejecutar un caso de uso. El
alcance de la prueba es tpicamente un paquete o un grupo de paquetes del modelo de
implementacin. Estos paquetes podran originarse en distintos grupos de desarrollo. Las pruebas de
integracin exponen las omisiones o errores de especificacin de sus respectivas interfaces.
Pruebas de sistema
Las pruebas de sistema indican los aspectos del esfuerzo de prueba a ser abordados
preferentemente por un grupo independiente de desarrollo que no particip en la implementacin del
cdigo. Normalmente estas pruebas son realizadas cuando el sistema ya funciona como un todo. El
ciclo de vida iterativo permite que estas pruebas se desarrollen tan pronto como sea posible con un
conjunto estabilizado de casos de usos.
Pruebas de aceptacin
Las pruebas de aceptacin son la prueba final que antecede a la entrega del software. El
objetivo aqu es verificar que el software est listo y puede ser utilizado por los usuarios finales en el
desarrollo de esas funciones y tareas para las que el fue construido.
Aceptacin formal.
Los casos de prueba elegidos deben ser un subconjunto de los utilizados para la prueba del
sistema. Es importante no desviarse de ninguna manera de los casos de prueba elegidos, y la
presencia indispensable, en este caso, de los usuarios finales. Las actividades y artefactos producidos
en la prueba de aceptacin formal son los mismos que se emplearon en la prueba del sistema.
29
Las desventajas:
Requiere importante cantidad de recursos y planeamiento.
La prueba se puede convertir en una re implementacin de la prueba del sistema.
Podra no descubrir defectos subjetivos del software, ya que solo se buscan
defectos esperados.
Aceptacin informal
En las pruebas de aceptacin informal los procedimientos de test no son tan rigurosamente
definidos como en las pruebas de aceptacin formal. Las funciones y aspectos de negocio a ser
evaluadas se identifican y documentan pero no tienen los casos de prueba particular a seguir como
en el caso anterior. Quien est probando determina no solo que hacer sino tambin la aprobacin
cuando se encuentra satisfecho.
Las desventajas
se requieren recursos, planeamiento y administracin.
No se tiene control sobre los casos de prueba a ser utilizados.
Los usuarios finales podran dar su conformidad sin detectar defectos.
Los usuarios finales tienden a focalizarse en la comparacin del nuevo sistema con
uno anterior perdiendo prioridad la bsqueda de defectos.
Aceptacin Beta
Las desventajas:
No todas las funciones y/o caractersticas pueden ser probadas.
El progreso de la prueba es difcil de ser medido.
Los usuarios finales pueden conformarse con el funcionamiento del sistema sin
ver ni reportar defectos.
Los usuarios finales tienden a focalizarse en la comparacin del nuevo sistema con
uno anterior en lugar de buscar defectos.
Los recursos necesarios para la prueba podran escapar al control del proyecto.
El criterio de aceptacin no es conocido.
3. Flujo de trabajo de prueba
30
los desarrolladores implementan los componentes y stubs necesarios para dar la mayor
automatizacin posible al proceso.
Todo esto se hace para cada construccin entregada como resultado del flujo de trabajo de
implementacin.
Finalmente, con estos casos, procedimientos y componentes de prueba como entrada, los
ingenieros de pruebas de integracin y de sistema evalan cada construccin y detectan
cualquier defecto que encuentren en ellos.
Las fallas sirven como realimentacin tanto para otros flujos de trabajo, como el de diseo
y el de implementacin, como para los ingenieros de pruebas a fin de que lleven a cabo una
evaluacin sistemtica de los resultados de las pruebas.
3.1. Planificar pruebas
31
Cuando preparan el plan de prueba los ingenieros de prueba se mueven sobre un rango de
valores de entrada. El modelo de casos de uso y los requisitos adicionales ayudan a decidirse por un
tipo adecuado de pruebas y a estimar el esfuerzo necesario para llevarlas a cabo.
El diseador de pruebas usar tambin otros artefactos de entrada, como por ejemplo el
modelo de diseo.
Los diseadores de pruebas desarrollan una estrategia de prueba para la iteracin, es decir,
deciden que, y cuando ejecutar los tipos de prueba y determinar si el esfuerzo de prueba tiene xito.
En el siguiente ejemplo se define una estrategia de prueba de sistema para una ltima iteracin en la
fase de elaboracin.
Al menos el 75 por ciento de las pruebas deber estar automatizado. El resto podr ser
manual.
Cada caso de uso ser probado para su flujo normal y para tres flujos alternativos.
Criterio de xito: 90 por ciento de los casos de prueba pasados con xito.
Los casos de prueba de integracin se utilizan para verificar que los componentes
interaccionan entre s de la forma apropiada despus de haber sido integrados en una construccin.
32
Los ingenieros de pruebas deben crear un conjunto de caso de prueba que hiciera posible
alcanzar los objetivos establecidos en el plano de prueba con un esfuerzo mnimo. Para esto, los
diseadores de prueba intentan encontrar un conjunto de caso de prueba con un solapamiento
mnimo, cada uno de los cuales procura un camino o escenario interesante a travs de una
realizacin de caso de uso.
Diseo de los casos de prueba del sistema
Las pruebas de sistemas se usan para verificar que el sistema funciona correctamente como
un todo. Cada prueba de sistema prueba principalmente combinaciones de caso de uso instanciados
bajo condiciones diferentes. Estas condiciones incluyen diferentes:
configuraciones hardware (procesadores, memoria principal, disco duro, etc.),
diferentes niveles de carga del sistema, diferentes nmeros de actores y diferentes
tamaos de la base de datos.
Cuando se desarrollan los casos de prueba de sistema los diseadores de prueba deberan
dar prioridad a las combinaciones de los casos de uso que:
se necesitan que funcionar en paralelo.
Posiblemente funcionen en paralelo.
Probablemente se influencian mutuamente si se ejecutan en paralelo.
Involucran varios procesadores.
Usan frecuentemente recursos del sistema, como procesos, procesadores, bases de
datos y software de comunicaciones, quizs en formas complejas e impredecibles.
Pueden encontrarse, por lo tanto, muchos casos de prueba de sistema considerando los
casos de uso, especialmente considerando sus flujos de eventos y sus requisitos esenciales, como los
requisitos de rendimiento.
Diseo de los casos de prueba de regresin
Para ser adecuados y contribuir a la calidad del sistema deben ser suficientemente flexibles
y ser resistentes a cambios en el software que est siendo probado.
Adems estos profesionales tambin intentan crear procedimientos de prueba que puedan
ser reutilizados en varios casos de prueba. Esto les permite usar un conjunto reducido de
procedimientos de prueba con rapidez y precisin para muchos casos de prueba.
Los componentes de prueba se crean usando los procedimientos de prueba como entrada:
33
En esta actividad se elaboran las pruebas de integracin necesarias para cada una de las
construcciones creadas en una iteracin y se recopilan los resultados de las pruebas.
La prueba de sistema puede empezar cuando las pruebas de integracin indican que se han
alcanzado los objetivos de calidad de integracin fijados en el plan de prueba de la iteracin actual;
por ejemplo, el 95 por ciento de los casos de prueba de integracin se ejecutan con el resultado
esperado.
Para determinar la fiabilidad del sistema, los diseadores de pruebas crean diagramas de
las tendencias de las fallas, donde representan la distribucin de tipos especficos de defectos -como
defectos nuevos o fatales- a lo largo del tiempo. La prueba puede crear tambin diagramas de
tendencias que representan el porcentaje de pruebas ejecutadas con xitos -es decir, ejecuciones de
pruebas que generan los resultados esperados- a lo largo del tiempo.
34
Las tendencias de los defectos siguen a menudo patrones que se repiten en varios
proyectos. Por ejemplo, normalmente el nmero de defectos nuevos generados cuando se prueba un
sistema se incrementa fallas rpidamente tan pronto como comienza la prueba, despus se mantiene
estable durante un tiempo y finalmente empieza a caer lentamente. Por tanto, comparando la
tendencia actual con tendencias similares en proyectos anteriores es posible predecir el esfuerzo
necesario para alcanzar un nivel de calidad aceptable.
El modelo de pruebas puede describir tambin la forma en que han de ser probados
aspectos especficos del sistema; por ejemplo, si la interfaz de usuario es utilizable y consistente o si
el manual de usuarios del sistema cumple con su cometido.
Observe que si el modelo de prueba es grande, es decir, si contiene una gran cantidad de
casos de prueba, procedimientos de prueba y componentes de prueba, puede ser til introducir
paquetes en el modelo para manejar su tamao.
Un caso de prueba puede derivarse de, y por tanto puede seguir la traza de, un caso
de uso en el modelo de casos de uso o de una realizacin de caso de uso en el modelo de diseo.
En la prctica, lo que se prueba puede venir dado por un requisito o coleccin de requisitos
del sistema cuya implementacin justifica un ensayo que es posible realizar y que no es demasiado
caro. Los siguientes son casos de prueba comunes.
Un caso de prueba que especifica la forma de comprobar un caso de uso o un
escenario especfico de un caso de uso. Un caso de prueba de este tipo incluye la
verificacin del resultado de la interaccin entre los actores y el sistema, que se
35
Los ingenieros de pruebas sugieren un conjunto de casos de prueba para comprobar el caso
de uso Pagar Factura en el que cada caso de prueba verificar un escenario del caso de uso. Uno de
los casos de prueba propuesto es el pago de una factura de 300 pesos por un pedido de una bicicleta
de montaa. Los ingenieros denominan a este caso de uso Pagar 300-Bicicleta de Montaa.
Algunos casos de uso pueden ser parecidos y diferenciarse nicamente en un solo valor de
entradas o resultado. Esto se da a veces para casos de prueba que verifican diferentes escenarios del
mismo caso de uso, por lo que puede ser apropiado especificar los casos de uso en forma de tabla,
donde cada caso de prueba est representado por una fila y cada rango de valores de entrada y
resultado se representa por una columna. Una tabla de este tipo proporciona no solo una buena
visin general de casos de prueba similares sino tambin una entrada utilizable en la creacin de
procedimientos de prueba y componentes de prueba.
Este diagrama de actividades muestra el curso normal del caso y los alternativos al
especificar las salidas de las alternativas o rombos.
36
Los siguientes son conjuntos de caminos independientes (los cuatro forman un conjunto
bsico):
Camino A: 1, 2, 12
Camino B: 1, 2, 3, 4, 5, 6, 11, 2, 12
Cada uno de estos caminos muestra un escenario del caso del uso X.
Ahora debemos disear casos de prueba para forzar la ejecucin de estos caminos, de esta
forma podemos decir que cada instruccin de cdigo se habr ejecutado al menos una vez en las
pruebas, as como tambin se habrn ejecutado las instrucciones de las salidas verdadero y falso de
las decisiones.
Cada uno de estos casos de prueba se ejecuta, se documenta y se comparan los resultados
obtenidos con los resultados esperados.
37
Precondiciones (condiciones que deben cumplirse antes de ejecutar este caso de prueba,
por ejemplo, la ejecucin correcta de tal grupo de pruebas, la existencia de determinado objeto, etc.).
Otros casos de prueba
Se pueden especificar otros casos de prueba para probar el sistema como un todo. Por
ejemplo:
Las pruebas de instalacin verifican que el sistema puede ser instalado en la
plataforma del cliente y que el sistema funcionar correctamente cuando sea
instalado.
Las pruebas de configuracin verifican que el sistema funciona correctamente en
diferentes configuraciones; por ejemplo, en diferentes configuraciones de red.
Las pruebas negativas intentan provocar que el sistema falle para poder as
revelar sus debilidades. Los ingenieros de pruebas identifican los casos de prueba
que intentan utilizar el sistema en formas para los que no ha sido diseado, por
ejemplo, empleando configuraciones de red incorrectas, capacidad de hardware
insuficiente o una carga de trabajo imposible de sobrellevar.
Las pruebas de tensin o de estrs identifican problemas con el sistema cuando
hay recursos insuficientes o existe competencia por los recursos.
4.3. Artefacto procedimiento de prueba
Un procedimiento de prueba especifica cmo realizar uno a varios casos de prueba o partes
de estos. Por ejemplo, una instruccin para un individuo sobre la forma ha de realizar un caso de
prueba manualmente, o una especificacin de cmo interaccionar manualmente con una herramienta
de automatizacin de pruebas para crear componentes ejecutables de prueba.
El cmo llevar a cabo un caso de prueba puede ser especificado por un procedimiento de
prueba, pero es a menudo til reutilizar un procedimiento de prueba para varios casos de prueba y
reutilizar diferentes mtodos de prueba para un caso de prueba.
Ejemplo procedimiento de prueba
Se necesita un procedimiento de prueba para que un individuo lleve a cabo el caso de uso
Pagar 300-Bicicleta de Montaa discutido en el ejemplo anterior. La primera parte del
procedimiento de prueba se especifica como sigue el texto entre corchetes no tiene que incluirse en
la especificacin ya que ya est detallado en el caso de uso:
38
Observe que este procedimiento de prueba se aplica tambin para otros casos de uso
similares en los que se utilizan distintos valores de entrada y resultado, es decir, los valores entre
corchetes son diferentes. Tambin que el procedimiento de prueba es similar a la descripcin de flujo
de eventos del caso de uso a Pagar Factura, aunque el mtodo de prueba incluye informacin
adicional, como los valores de entrada del caso de uso a emplear, la forma en la que estos valores
han de ser introducidos en el interfaz de usuario y lo que hay que verificar.
La estrategia de prueba incluye la definicin del tipo de pruebas a realizar para cada
iteracin y sus objetivos, el nivel de cobertura de prueba y de cdigo necesario y el porcentaje de
pruebas que deberan ejecutarse con un resultado especfico.
4.6. Artefacto defecto
Un defecto es una anomala del sistema, como por ejemplo un sntoma de un fallo software
o un problema descubierto en una revisin.
Se utiliza para localizar cualquier cosa que los desarrolladores necesitan registrar como
sntoma de un problema en el sistema que ellos deben controlar y resolver.
4.7. Artefacto evaluacin de prueba
Una evaluacin de prueba es una valoracin de los resultados de los esfuerzos de prueba,
tales como la cobertura del caso de prueba, la cobertura de cdigo y el estado de los defectos.
5. Trabajadores
39
Los diseadores de pruebas tambin planean las pruebas, lo que significa que deciden los
objetivos apropiados y la planificacin de las pruebas.
Observe que los diseadores de pruebas realmente no ejecutan las pruebas, sino que se
dedican a la preparacin y evolucin de las mismas. Otros dos tipos de trabajadores, los ingenieros
de pruebas de integracin y los ingenieros de prueba de sistema, son los encargados de llevarlas a
cabo.
Los ingenieros de pruebas de integracin son los responsables de hacen las pruebas de
integracin que se necesitan para cada construccin producida en el flujo de trabajo de la
implementacin.
Se realizan para verificar que los componentes integrados en una construccin funcionan
correctamente juntos.
Por esto, se derivan a menudo de los casos de prueba que especifican cmo probar
realizaciones de casos de uso-diseo.
Las pruebas de sistema se llevan a cabo principalmente para verificar las interacciones
entre los actores y el sistema. Por esto, las pruebas de sistema se derivan a menudo de los casos de
prueba que especifican cmo probar los casos de uso, aunque tambin se aplican otros tipos de
pruebas al sistema como un todo.
Debido a la naturaleza de las pruebas de sistema, los individuos que actan como
ingenieros de pruebas de sistema necesitan saber mucho sobre el funcionamiento interno del
sistema. Por el contrario, stos deberan tener familiaridad con el comportamiento observable
externo del sistema. Por tanto, algunas pruebas de sistema pueden ser realizadas por otros miembros
del proyecto, como los especificadores de casos de uso, o incluso por una persona externa al
proyecto, como usuario de versiones beta.
40
UNIDAD N4
UTILIZANDO PUDS
Los desarrolladores crean un modelo de anlisis que utiliza el modelo de casos de uso
como entrada y que es diferente del modelo de diseo porque es un modelo conceptual en lugar de ser un
esquema de la implementacin. Cada caso de uso en el modelo de casos de uso se traduce en una
realizacin de caso de uso en el modelo de anlisis.
Tomando los casos de uso uno a uno, los desarrolladores pueden identificar las clases que
participan en la realizacin de aquellos. As obtenemos un conjunto de clases que juntas realizan los
casos de uso. Luego los desarrolladores disean las clases y las realizaciones de casos de uso para
aprovechar al mximo las tecnologas y productos a utilizarse.
Centrado en la arquitectura
La arquitectura describe los cimientos del sistema que son necesarios como base para
comprenderlo, desarrollarlo y producirlo. En la fase de elaboracin se construye una arquitectura slida
para que a partir de la misma podamos arrancar con la construccin de la totalidad del sistema sin tropiezos
posteriores.
A la hora de ir pasando por las distintas fases del proyecto los desarrolladores utilizarn la
arquitectura como gua general para situarse correctamente en el lugar en donde estn parados y usarn los
distintos diagramas ms detallados para realizar su trabajo, incluyendo aquellos casos de uso importantes
en este contexto.
La descripcin de la arquitectura tiene cinco vistas, una para cada modelo:
41
1. Casos de uso
2. Anlisis
3. Diseo
4. Despliegue
5. Implementacin
El PUDS avanza poco a poco en el refinamiento de casos de uso, se avanza por etapas.
Se divide el proyecto en un nmero de mini proyectos, siendo cada uno de ellos una
iteracin. Cada iteracin est compuesto por todas las fases de un proyecto de software, es decir que
42
cada una de ellas sera como un mini proyecto hecho con una metodologa tradicional, como la de
cascada.
Se debe manejar con mucho cuidado el hecho de poder avanzar y recibir retroalimentacin
y retroceder, ya que si tomamos esto como moneda corriente podemos caer en un terreno donde nos
mantengamos siempre en un mismo lugar sin percibir avance alguno.
El concepto de iteracin reduce, al principio del ciclo de vida, los riesgos que pueden
amenazar el progreso del desarrollo. Las versiones internas tras las iteraciones posibilitan la
retroalimentacin de los usuarios y esto lleva a su vez a una correccin temprana de la trayectoria
del proyecto.
Para resumir, los principales objetivos de un desarrollo iterativo e incremental son:
Atenuar los riesgos.
Obtener una arquitectura robusta.
Gestionar requisitos cambiantes.
Permitir cambios tcticos.
Conseguir una integracin continua.
Conseguir un aprendizaje temprano.
El UP entrega las 6 mejores prcticas
El proceso unificado describe cmo implementar efectivamente las seis mejores prcticas para el
desarrollo de software, las mismas son:
Enfatiza la construccin temprana de una arquitectura cohesiva y robusta que ser probada
en las primeras iteraciones.
43
Realizar iteraciones demasiado largas.
2.-Fases e iteraciones
Este concepto es el primer paso para dividir el trabajo en partes manejables.
PUDS contempla cuatro fases atendiendo al momento en que se realizan:
Inicio
Elaboracin
Construccin
Transicin
Cada hito puede incluir muchos objetivos, incluso la toma de decisiones clave para avanzar
con la prxima iteracin.
2.1 Planificacin de las fases
El PUDS nos dice qu hacer en cada fase, los planes llevan estas indicaciones a trminos
especficos para un proyecto en particular. Se planifica:
Los hitos principales que indican la finalizacin de una fase para pasar a la
siguiente.
La cantidad de iteraciones que se realizarn en cada fase depende del sistema que
estamos construyendo, de su complejidad y tamao.
La duracin de cada iteracin podr variar entre una semana y tres meses. Es
aconsejable que las actividades dentro de la iteracin sean unidades asignables,
controlables y posibles de medir.
Se establecen criterios para cada fase y para cada iteracin dentro de cada fase. Se trata de
un momento en el que se verifica la satisfaccin de dichos criterios o requisitos. Por lo anterior, se
44
deduce que los criterios deben poder ser observados de alguna manera por el responsable, es decir, el
jefe de proyecto.
3 Flujos de trabajo
3.1 Flujos de trabajo fundamentales
Cada iteracin puede ser considerada como un pequeo proyecto en s mismo, y constituye
una pasada por los cinco flujos de trabajo fundamentales del PUDS.
En la actividad de modelado de negocio se trabaj con los objetos del negocio, es decir,
con el dominio del problema.
En el flujo de requerimientos se comenz a trabajar con clases de software. Estas con una
relacin de traza con los objetos identificados en el dominio en la etapa anterior.
Cada flujo de trabajo obtiene una salida, que es un modelo que lleva el mismo nombre que
el flujo.
45
UNIDAD N5
IMPLEMENTACION DEL CAMBIO
1.-Creacin del conocimiento con t.i. y ventaja competitiva
David Smith postula cuatro niveles de desarrollo organizacional en la creacin del conocimiento:
o Compartir conocimiento,
o Nivelacin,
o Creacin de conocimiento y
o Competir con conocimiento.
Cada uno de estos niveles otorga a la empresa facilidades y ventajas, y si dicha empresa es capaz
de avanzar a la etapa siguiente, ser capaz de alcanzar nuevas capacidades que le otorguen grandes
ventajas sobre sus competidores.
Resolver los problemas y encontrar las oportunidades subyacentes en cada uno de estos estados
involucra tres elementos convergentes:
Procesos cognitivos: Estos incluyen la identificacin, la adquisicin, el mapeo, el
almacenaje, el acceso, la distribucin, la nivelacin y el uso del conocimiento.
Facilitadores tecnolgicos: Sistemas de informacin, recuperacin de documentos,
herramientas de grupo, intranet corporativa, sistemas de base de conocimiento, etc.
Alineacin organizacional: Los lderes son parte crtica del alineamiento, junto con las
recompensas, roles, estructuras mentales, estructura y apertura.
La tecnologa, no es nunca por s misma la solucin mgica a ninguna problemtica. Slo resulta
valiosa ante fines concretos. Debemos saber para qu queremos utilizar tal o cual tecnologa, y
asegurarnos de que cumple nuestras expectativas de uso y calidad antes de realizar cuantiosas
inversiones en ella.
Considerar los siguientes aspectos como premisa indispensable al enfrentar un proceso de cambio
organizacional implementando tecnologa de informacin:
Contarle a la mayor cantidad posible de personas sobre todos los aspectos, con la
mayor frecuencia posible y preferiblemente en persona.
46
Las decisiones relacionadas con la adquisicin de estos recursos deben considerar factores
tecnolgicos y financieros.
Se debe contar con un plan de desarrollo de aplicaciones a corto, mediano y largo plazo que
operarn en el nuevo sistema.
El horizonte del proyecto se define como el lapso de tiempo futuro que se considera en un anlisis.
Filosofa de operacin o tipo de solucin requerida
El plan deber incluir aspectos tecnolgicos requeridos para el desarrollo de nuevas aplicaciones,
tales como bases de datos, cdigos de barras, sistemas por lotes o en lnea, ya que estas especificaciones
pueden modificar de manera sensible los requerimientos y restricciones a considerar en el nuevo equipo.
La filosofa de operacin que se desea con el nuevo equipo requiere un anlisis del tipo de
solucin que se implantar con l. Esta solucin puede incluir equipos grandes, arquitecturas clienteservidor, estaciones de trabajo y PCs entre otras.
Recursos que deben estimarse
Capacidad total de impresin requerida, expresada como lneas de impresin por minuto.
47
Crecimiento del negocio por arriba o por abajo del porcentaje estimado.
Sirve como una propuesta del sistema que invita a los proveedores a participar en el
concurso.
Constituye un documento que describe claramente las prioridades tcnicas del sistema.
Se recomienda incluir en su estructura:
o
Datos generales del responsable del proyecto.
o Fecha lmite para recibir la propuesta del proveedor.
o Fecha lmite para que el proveedor realice las presentaciones y/o demostraciones del
equipo propuesto.
o Bases y lineamientos generales que sern utilizados para comparar los diferentes
equipos.
o Breve descripcin de la situacin actual de la compaa y de la funcin de informtica
dentro de la misma.
Requerimientos del sistema computacional
Se puede incluir la siguiente informacin:
o Requerimientos del equipo actual versus del equipo propuesto.
48
Una vez elaborado el RFP, es necesario abrir formalmente el concurso de los proveedores.
Durante esta fase del proceso es importante elaborar un documento que contenga todas las
especificaciones, ya descritas y darlo formalmente a cada uno de ellos.
Se recomienda que la entrega se efecte en una reunin por separado con cada proveedor,
recalcando la importancia de cumplir con el formato especificado.
Hay que recordar que si la invitacin a los proveedores fue exhaustiva, es de esperarse que
la cantidad de propuestas recibidas tambin sea elevada.
49
Son las caractersticas que ofrecen los componentes fsicos de la solucin. Por ejemplo:
capacidades y velocidades de los diferentes componentes.
Factores de software.
Se debe dar gran peso a la posibilidad y facilidad de que todo el software que se desarrolle
sea abierto o transportable.
Factores de proveedor.
El soporte es uno de los criterios ms importantes para tomar una decisin de compra, as tambin
como el precio y el rendimiento.
Aspectos a analizar son:
1.- Generalidades del proveedor. Toda aquella informacin relacionada con la imagen
que ste tiene en el mercado local, regional y mundial, considerando aspectos tcnicos, de mercado
y financieros, de tal manera que aseguren la permanencia y continuidad del proveedor. Ellos
incluyen:
Representacin mundial y regional del proveedor
Tiempo de entrega del equipo y futuras ampliaciones
Profesionalismo y preparacin de los vendedores
Situacin econmica y financiera
Calidad de la documentacin y manuales disponibles
a operadores
capacitacin a usuarios
Existencia de una sucursal cercana con partes y repuestos para responder con
mayor oportunidad a fallas.
Existe una ventaja fiscal por ser un gasto deducible para pago de impuestos.
Algunas desventajas son:
Obsolescencia.
51
52
53
Sirve para medir tiempos casi en forma exclusiva, es decir, mide velocidades.
Consiste en programas que estn escritos en un lenguaje de aplicacin de alto nivel y que
realiza en forma simple y nica un solo tipo de tarea. Las pruebas bsicamente son para el
procesador, sus recursos (memoria, UAL), y los distintos perifricos: pantallas, discos, impresoras,
etc.
Los programas usan los recursos del sistema de acuerdo a ciertos parmetros
especificados en tiempo de ejecucin. No hace nada productivo con estos recursos, sino que los
ejercita a fin de efectuar mediciones genricas. Por ejemplo, se le podra pedir que lea 1000
registros de un archivo en disco, ejecute 100000 adiciones de punto flotante e imprima 5000
lneas, y que luego indique el tiempo total requerido por este benchmark artificial.
Ventajas:
es rpido, simple, fcil y equitativo porque se usan los mismos programas en
distintos equipos.
No slo se prueba el equipo en s, sino la eficiencia en la administracin de los
recursos por parte del S.0. y la eficiencia del compilador.
Su costo es muy bajo, ya que incluso hay proveedores que tienen disponible este
software.
No requiere desarrollos ni adecuacin, ni costo de conversin ni capacitacin.
Con estas pruebas no slo se valoriza el hardware, sino tambin el software, ya
que esta es una muy buena oportunidad para evaluar el software, los
compiladores, editores, etc.
Inconvenientes:
Consiste en la prueba completa de la totalidad los sistemas de aplicacin del cliente, con
todos sus programas. Para ello es imprescindible que exista la facilidad de transmisin, ya sea va
magntica y/o comunicaciones. A posteriori se debern recompilar las fuentes y reorganizar las
bases de datos, sobre todo los ndices. Una vez hecho esto se toman los tiempos de cada uno de los
programas durante su ejecucin.
Ventajas:
Inconvenientes:
es lento, costoso y a veces suele ser demasiado complicado llevarlo a cabo,
sobre todo cuando no existe la posibilidad de traslacin de datos entre un equipo
actual y aquel al cual se quiere hacer las pruebas.
Slo prueba los programas en la forma en la que se usan actualmente, sin
posibilidad de aprovechar los recursos nuevos o diferentes que puede haber
entre los distintos equipos, y/o sistemas operativos, y/o lenguajes.
Optimizado:
Consiste en una prueba de los sistemas que se posee pero haciendo uso de los nuevos
recursos que tiene el S.O. y/o equipo, o los compiladores, o los nuevos lenguajes.
54
Estos recursos no han sido contemplados o aprovechados por el sistema habida cuenta de
la inexistencia de los mismos en la instalacin. Esta prueba es fundamental para poder comparar
las distintas formas de manejar los datos y editar la informacin.
Ventajas:
es imprescindible para poder comparar realmente las grandes diferencias en
cuanto a prestaciones y sus ventajas entre los distintos equipos o S.O.
Brinda la posibilidad de poder evaluar el costo de estos cambios y sus
beneficios, tanto para los usuarios de las aplicaciones como para quienes las
desarrollan.
Inconvenientes:
requiere ms tiempo, esfuerzo y costo que incluso el benchmark real.
No todos los proveedores estn dispuestos a realizar estas pruebas, y a veces los
resultados son contrapuestos; esto obliga a que se deban realizar los tres tipos de
prueba, evaluar los resultados, y luego una ponderacin que se otorga a cada uno
de ellos al hacer el polinomio de calificacin.
3. Lanzamiento de un sistema de informacin
3.1. Contrataciones
Lista de actividades que podran desarrollarse:
Lanzamiento de la contratacin.
Evaluacin de ofertas:
Pruebas y ensayos
Sobre los dispositivos de hardware y sistemas operativos.
Sobre los aplicativos de software
Sobre el funcionamiento concurrente de hardware, sistemas operativos
y aplicativos.
Disposiciones generales.
Instructivos.
Objetivos.
Flujogramas de navegacin
Polticas.
Reportes.
Descripcin de la aplicacin.
Descripcin de procedimientos.
Pantallas
Glosario de trminos.
Formularios.
3.3. Capacitacin de usuarios
55
Asegurar, cuanto antes, la identificacin y la seleccin de los miembros del personal que
participan en todos los niveles de implementacin y operacin de los sistemas con el objetivo de
recibir capacitacin pertinente, terica y prctica, en los sistemas de informacin y en la
tecnologa de sistemas.
Disear estrategias de capacitacin para los sistemas de informacin, las cuales tengan
en cuenta los temas asociados con su desenvolvimiento, el entorno orgnico en el cual se prev su
funcionamiento y las circunstancias particulares de la organizacin.
A continuacin se recomiendan normas sobre las estrategias para capacitacin de usuarios de
sistemas informticos:
Identificar los grupos destinatarios sobre la base de las funciones de los usuarios.
Analizar los requisitos previstos de desempeo de los usuarios en relacin con el sistema
nuevo mediante un modelo participativo que abarque todas las categoras y funciones.
Evaluar las necesidades de capacitacin, incluido el nivel actual de comodidad y conocimiento de las
tecnologas que se van a emplear.
Establecer una red de puntos focales para la capacitacin, los cuales toman en cuenta los
requisitos y las iniciativas de las unidades de la organizacin.
Proporcionarse capacitacin en el trabajo a todos los niveles para satisfacer los requisitos
cotidianos.
Prestar mucha atencin de acuerdo con el grupo destinatario para evitar el uso excesivo
de jerga tecnolgica y complejidad de conceptos.
56
Las actividades del grupo ayudarn a reducir la formulacin tediosa de algunos temas
tcnicos.
Por fases: se convierten slo partes de una nueva aplicacin o slo unos cuantos
departamentos, sucursales o plantas a la vez. Esto permite que tenga lugar un proceso de
implementacin gradual dentro de una organizacin.
El mantenimiento es tambin necesario para otras fallas y problemas que surgen durante
la operacin de un sistema.
57
58