Model a Do Software Porta Folio Rodrigo Reyes
-
Upload
rodrigo-jesus-reyes-c -
Category
Documents
-
view
12 -
download
2
Transcript of Model a Do Software Porta Folio Rodrigo Reyes
-
2014
Universidad Tecnolgica de Coahuila. Rodrigo Reyes Cerecero
PORTAFOLIO DE EVIDENCIAS INGENIERA DEL SOFTWARE La ingeniera de software es una disciplina formada por un conjunto de mtodos, herramientas y tcnicas que se utilizan en el desarrollo de los programas informticos (software). Esta disciplina trasciende la actividad de programacin, que es el pilar fundamental a la hora de crear una aplicacin... La ingeniera de software es una disciplina formada por un conjunto de mtodos, herramientas y tcnicas que se utilizan en el desarrollo de los programas informticos (software). Esta disciplina trasciende la actividad de programacin, que es el pilar fundamental a la hora de crear una aplicacin...
-
INGENIERA DE SOFTWARE. .................................................................................. 0
CICLO DE VIDA DEL SOFTWARE. .......................................................................... 2
Modelo Cascada ................................................................................................................ 3
Ingeniera y Anlisis del Sistema .......................................................................................................... 4
Anlisis de los requisitos del software ................................................................................................. 4
Diseo ....................................................................................................................................................... 4
Codificacin ............................................................................................................................................. 4
Prueba ...................................................................................................................................................... 5
Mantenimiento ......................................................................................................................................... 5
Modelo Espiral .................................................................................................................. 6
Planificacin. ............................................................................................................................................ 7
Anlisis de riesgo. ................................................................................................................................... 8
Ingeniera. ................................................................................................................................................ 8
Evaluacin del cliente. ............................................................................................................................ 8
Modelo Incremental .......................................................................................................... 9
Proceso de Desarrollo Unificado .................................................................................. 11
El Proceso Unificado es dirigido por casos de uso .......................................................................... 12
El Proceso Unificado est centrado en la arquitectura ................................................................... 13
El Proceso Unificado es Iterativo e Incremental............................................................................... 14
DIAGRAMA UML ...................................................................................................... 16 Vistas: ..................................................................................................................................................... 17
Diagramas: ............................................................................................................................................. 18
Smbolos o Elementos de modelo: ..................................................................................................... 18
Reglas o Mecanismos generales: ...................................................................................................... 18
FASES DEL DESARROLLO DE UN SISTEMA ............................................................. 18
Anlisis de Requerimientos ................................................................................................................. 19
Anlisis ................................................................................................................................................... 19
Diseo ..................................................................................................................................................... 19
Programacin ........................................................................................................................................ 20
Pruebas .................................................................................................................................................. 20
CASOS DE USO (UC) ...................................................................................................... 20
Necesidades de informacin ............................................................................................................... 20
Actor ........................................................................................................................................................ 21
Categoras de Actores ..................................................................................................................... 21
Actores y Escenarios ............................................................................................................................ 22
Escenarios: Instancias de un Caso de Uso .................................................................................. 22
Relaciones entre Actores y Casos de Uso ........................................................................................ 23
Implementacin de relaciones ........................................................................................................ 24
Construccin de Casos de Uso .......................................................................................................... 24
Reglas de Implementacin de un Caso de Uso ........................................................................... 25
Transicin hacia los Objetos ............................................................................................................... 26
-
Descomposicin hacia objetos ....................................................................................................... 26
INGENIERA DE REQUERIMIENTOS ..................................................................... 27
Tcnicas de obtencin de requerimientos .................................................................. 28
Entrevistas ............................................................................................................................................. 29
Reuniones .............................................................................................................................................. 31
Cuestionarios Es un conjunto de preguntas que deben ser contestadas por escrito por una
determinada poblacin, generalmente esta poblacin es amplia. Segn el contenido de los
cuestionarios podemos clasificarlos en los siguientes tipos: ......................................................... 31
Abiertos: ............................................................................................................................................. 31
Cerrados: ........................................................................................................................................... 31
Mixtos: ................................................................................................................................................ 32
Desarrollo conjunto de aplicaciones (JAD) ................................................................................. 34
Joint Requirements Planning (JRP) ................................................................................................... 35
Moderador ................................................................................................................................. 35
Promotor .................................................................................................................................... 35
Director de proyecto ................................................................................................................ 35
Consultores ............................................................................................................................... 35
Especialista en modelizacin ................................................................................................. 35
Usuarios de alto nivel .............................................................................................................. 35
Brainstorming ......................................................................................................................................... 36
Phillips 66 ............................................................................................................................................... 37
PASOS PARA LA OBTENCIN DE REQUERIMIENTOS. ............................................ 37
ESPECIFICACIN DE REQUERIMIENTOS ................................................................... 39
Una buena ERS debe ser: ................................................................................................................... 39
Tipos de requisitos ................................................................................................................................ 40
3. Requisitos Funcionales: .......................................................................................................... 40
4. Requisitos no funcionales: ...................................................................................................... 41
-
INGENIERA DE SOFTWARE.
La ingeniera de software es una disciplina formada por un conjunto de mtodos,
herramientas y tcnicas que se utilizan en el desarrollo de los programas
informticos (software). Esta disciplina trasciende la actividad de programacin,
que es el pilar fundamental a la hora de crear una aplicacin. El ingeniero de
software se encarga de toda la gestin del proyecto para que ste se pueda
desarrollar en un plazo determinado y con el presupuesto previsto.
La ingeniera de software, por lo tanto, incluye el anlisis previo de la situacin, el
diseo del proyecto, el desarrollo del software, las pruebas necesarias para
confirmar su correcto funcionamiento y la implementacin del sistema. Cabe
destacar que el proceso de desarrollo de software implica lo que se conoce como
ciclo de vida del software, que est formado por cuatro etapas: concepcin,
elaboracin, construccin y transicin.
La concepcin fija el alcance del proyecto y desarrolla el modelo de negocio; la
elaboracin define el plan del proyecto, detalla las caractersticas y fundamenta la
arquitectura; la construccin es el desarrollo del producto; y la transicin es la
transferencia del producto terminado a los usuarios.
Una vez que se completa este ciclo, entra en juego el mantenimiento del software.
Se trata de una fase de esta ingeniera donde se solucionan los errores
descubiertos (muchas veces advertidos por los propios usuarios) y se incorporan
actualizaciones para hacer frente a los nuevos requisitos. El proceso de
mantenimiento incorpora adems nuevos desarrollos, para permitir que el software
pueda cumplir con una mayor cantidad de tareas.
Un campo directamente relacionado con la ingeniera de software es la
arquitectura de sistemas, que consiste en determinar y esquematizar la estructura
general del proyecto, diagramando su esqueleto con un grado relativamente alto
-
de especificidad y sealando los distintos componentes que sern necesarios para
llevar a cabo el desarrollo, tales como aplicaciones complementarias y bases de
datos. Se trata de un punto fundamental del proceso, y es muchas veces la clave
del xito de un producto informtico.
Los avances tecnolgicos y su repercusin en la vida social han afectado
inevitablemente el proceso de desarrollo de software por diversos motivos, como
ser el acceso indiscriminado de los usuarios a cierta informacin que hasta hace
un par de dcadas desconoca por completo y que no pueden comprender, dado
que no poseen el grado de conocimiento tcnico necesario. Un consumidor bien
informado es un consumidor al que no se puede timar, ya que sabe lo que
necesita y tiene la capacidad de analizar las diferentes ofertas del mercado,
comparando las propuestas y prestaciones de los productos; sin embargo, un
consumidor mal informado es como un nio caprichoso que llora, grita y patalea
sin parar.
La primera de todas las etapas del trabajo que realizan los ingenieros de software
consiste en estudiar minuciosamente las caractersticas que se creen necesarias
para el programa a desarrollar, y es ste el punto en el cual deben encontrar un
equilibrio (cada vez ms difcil de alcanzar) entre las demandas excesivas de los
malos consumidores y las posibilidades de la compaa. El tiempo es dinero, y las
empresas del mundo informtico lo saben muy bien.
Cada funcin de un programa, cada rasgo que lo vuelva ms cmodo, ms
inteligente, ms accesible, se traduce en una cantidad determinada de tiempo, que
a su vez acarrea los sueldos de todas las personas involucradas en su desarrollo.
Pero adems del costo de produccin necesario para realizar cada una de las
piezas de un programa, la ingeniera de software debe decidir cules de ellas
tienen sentido, son coherentes con el resto y son necesarias para comunicar
claramente la esencia y los objetivos de la aplicacin
-
CICLO DE VIDA DEL SOFTWARE.
Un modelo de ciclo de vida define el estado de las fases a travs de las cuales se
mueve un proyecto de desarrollo de software. Un modelo de ciclo de vida de
software es una vista de las actividades que ocurren durante el desarrollo de
software, intenta determinar el orden de las etapas involucradas y los criterios de
transicin asociadas entre estas etapas.
Un modelo de ciclo de vida del software:
Describe las fases principales de desarrollo de software.
Define las fases primarias esperadas de ser ejecutadas durante esas fases.
Ayuda a administrar el progreso del desarrollo, y
Provee un espacio de trabajo para la definicin de un detallado proceso de
desarrollo de software.
As, los modelos por una parte suministran una gua para los ingenieros de
software con el fin de ordenar las diversas actividades tcnicas en el proyecto, por
otra parte suministran un marco para la administracin del desarrollo y el
mantenimiento, en el sentido en que permiten estimar recursos, definir puntos de
control intermedios, monitorear el avance, etc.
-
Modelo Cascada
Este es el ms bsico de todos los modelos, y sirve como bloque de construccin
para los dems modelos de ciclo de vida. La visin del modelo cascada del
desarrollo de software es muy simple; dice que el desarrollo de software puede ser
a travs de una secuencia simple de fases. Cada fase tiene un conjunto de metas
bien definidas, y las actividades dentro de una fase contribuyen a la satisfaccin
de metas de esa fase o quizs a una subsecuencia de metas de la fase. Las
flechas muestran el flujo de informacin entre las fases. La flecha de avance
muestra el flujo normal. Las flechas hacia atrs representan la retroalimentacin.
El modelo de ciclo de vida cascada, captura algunos principios bsicos:
Planear un proyecto antes de embarcarse en l.
Definir el comportamiento externo deseado del sistema antes de disear su
arquitectura interna.
Documentar los resultados de cada actividad.
Disear un sistema antes de codificarlo.
Testear un sistema despus de construirlo.
Una de las contribuciones ms importantes del modelo cascada es para los
administradores, posibilitndoles avanzar en el desarrollo, aunque en una
escala muy bruta.
Ingeniera y Anlisis
del Sistema
Anlisis de los
Requisitos
Diseo
Codificacin
Prueba
Mantenimiento
-
Ingeniera y Anlisis del Sistema
Debido a que el software es siempre parte de un sistema mayor, el trabajo
comienza estableciendo los requisitos de todos los elementos del sistema y luego
asignando algn subconjunto de estos requisitos al software.
Anlisis de los requisitos del software
Anlisis: Se analizan las necesidades de los usuarios finales del software para
determinar qu objetivos debe cubrir. De esta fase surge una memoria llamada
SRD (Documento de Especificacin de Requisitos), que contiene la especificacin
completa de lo que debe hacer el sistema sin entrar en detalles internos (debe
comprender el mbito de la informacin del software, as como la funcin, el
rendimiento y las interfaces requeridas).
Diseo
El diseo del software se enfoca en cuatro atributos distintos del programa: la
estructura de los datos, la arquitectura del software, el detalle procedimental y la
caracterizacin de la interfaz. El proceso de diseo traduce los requisitos en una
representacin del software con la calidad requerida antes de que comience la
codificacin. Como resultado surge el SDD (Documento de Diseo del Software),
que contiene la descripcin de la estructura global del sistema y la especificacin
de lo que debe hacer cada una de sus partes, as como la manera en que se
combinan unas con otras.
Codificacin
Es la fase de programacin. Aqu se desarrolla el cdigo fuente, el diseo debe
traducirse en una forma legible para la mquina, haciendo uso de prototipos as
como pruebas y ensayos para corregir errores. El paso de codificacin realiza esta
tarea. Si el diseo se realiza de una manera detallada la codificacin puede
realizarse mecnicamente.
-
Prueba
Una vez que se ha generado el cdigo comienza la prueba del programa. La
prueba se centra en la lgica interna del software, y en las funciones externas,
realizando pruebas que aseguren que la entrada definida produce los resultados
que realmente se requieren. Se comprueba que funciona correctamente antes de
ser puesto en explotacin.
Mantenimiento
El software sufrir cambios despus de que se entrega al cliente. Los cambios
ocurrirn cuando se hayan encontrado errores, esto en lugar de que el software
deba adaptarse a cambios del entorno externo (sistema operativo o dispositivos
perifricos), o debido a que el cliente requiera ampliaciones funcionales o del
rendimiento.
-
Modelo Espiral
El modelo espiral de los procesos software es un modelo del ciclo de meta-vida.
En este modelo, el esfuerzo de desarrollo es iterativo. Tan pronto como uno
completa un esfuerzo de desarrollo, otro comienza. Adems, en cada desarrollo
ejecutado, puedes seguir estos cuatros pasos:
Determinar qu quieres lograr.
Determinar las rutas alternativas que puedes tomar para lograr estas metas.
Por cada una, analizar los riesgos y resultados finales, y seleccionar la mejor.
Seguir la alternativa seleccionada en el paso 2.
Establecer qu tienes terminado.
La dimensin radial en la figura refleja costos acumulativos incurridos en el
proyecto. Observemos un escenario particular. Digamos que en este proyecto,
nosotros viajaremos a resolver un conjunto particular de problemas del cliente.
Durante el primer viaje alrededor de la espiral, analizamos la situacin y
determinamos que los mayores riesgos son la interfaz del usuario.
Despus de un cuidadoso anlisis de las formas alternativas de direccionar esto
(por ejemplo, construir un sistema y esperar lo mejor, escribir una especificacin
de requerimientos y esperar que el cliente lo entienda, y construir un prototipo),
determinamos que el mejor curso de accin es construir un prototipo.
Lo realizamos. Luego proveemos el prototipo al cliente quien nos provee con
retroalimentacin til. Ahora, comenzamos el segundo viaje alrededor de la
espiral. Este tiempo decidimos que el mayor riesgo es ese miedo a que muchos
nuevos requerimientos comiencen a aparecer slo despus de que el sistema sea
desplegado. Analicemos las rutas alternativas, y decidimos que la mejor
aproximacin es construir un incremento del sistema que satisfaga slo los
requerimientos mejor entendidos.
-
Despus del despliegue, el cliente nos provee de retroalimentacin que dir si
estamos correctos con esos requerimientos, pero 50 nuevos requerimientos ahora
se originarn en las cabezas de los clientes. Y el tercer viaje alrededor de la
espiral comienza.
El modelo representado mediante la espiral define cuatro actividades principales,
tambin llamadas regiones de tareas o sectores:
Planificacin. Durante la primera vuelta alrededor de la espiral se definen los
objetivos, las alternativas y las restricciones, se analizan e identifican los riesgos.
Si el anlisis de riesgo indica que hay una incertidumbre en los requisitos, se
puede usar la creacin de prototipos en el cuadrante de ingeniera para dar
asistencia tanto al encargado de desarrollo como al cliente.
Prototipo 1
Prototipo 2
Prototipo 3
Prototipo
Operativo Anlisis de
riesgo
Anlisis de
riesgo
Anlisis de
riesgo
AR
Evaluacin del
Cliente
Planificacin
Ingeniera
Anlisis de
Riesgos
Plan de
requisitos,
Plan de
ciclo de vida
Plan de
desarrollo
Plan de
prueba e
Integracin
Concepto de
operacin
Simulaciones, Modelos, Estndares
Validacin
de
requisitos
Requisitos
de Software
Verificacin
y validacin
de diseo
Diseo del
producto de
software
Implementacin
Prueba de aceptacin
Prueba de Integracin
Prueba de Unidad
Codificacin
Revisin
Diseo detallado
-
Anlisis de riesgo. El proyecto se revisa y se toma la decisin de si se debe
continuar con un ciclo posterior de la espiral. Si se decide continuar, se desarrollan
los planes para la siguiente fase del proyecto.
Ingeniera. En este sector se desarrolla y se valida. Despus de la evaluacin de
riesgos, se elige un modelo para el desarrollo del sistema.
Evaluacin del cliente. El cliente evala el trabajo de ingeniera (cuadrante de
evaluacin de cliente) y sugiere modificaciones. Sobre la base de los comentarios
del cliente se produce la siguiente fase de planificacin y de anlisis de riesgo. En
cada bucle alrededor de la espiral, la culminacin del anlisis de riesgo resulta en
una decisin de "seguir o no seguir.
Con cada iteracin alrededor de la espiral (comenzando en el centro y siguiendo
hacia el exterior), se construyen sucesivas versiones del software, cada vez ms
completas y, al final, el propio sistema operacional.
El paradigma del modelo en espiral para la Ingeniera de Software es actualmente
el enfoque ms realista para el desarrollo de software y de sistemas a gran escala.
Utiliza un enfoque evolutivo, permitiendo al desarrollador y al cliente entender y
reaccionar a los riesgos en cada nivel. Utiliza la creacin de prototipos como un
mecanismo de reduccin de riesgo, pero, lo que es ms importante permite a
quien lo desarrolla aplicar el enfoque de creacin de prototipos en cualquier etapa
de la evolucin de prototipos.
El modelo espiral no es una alternativa del modelo cascada, ellos son
completamente compatibles.
-
Modelo Incremental
Los riesgos asociados con el desarrollo de sistemas largos y complejos son
enormes. Una forma de reducir los riesgos es construir slo una parte del sistema,
reservando otros aspectos para niveles posteriores. El desarrollo incremental es el
proceso de construccin siempre incrementando subconjuntos de requerimientos
del sistema. Tpicamente, un documento de requerimientos es escrito al capturar
todos los requerimientos para el sistema completo.
Note que el desarrollo incremental es 100% compatible con el modelo cascada. El
desarrollo incremental no demanda una forma especfica de observar el desarrollo
de algn otro incremento. As, el modelo cascada puede ser usado para
administrar cada esfuerzo de desarrollo, como se muestra en la figura.
El modelo de desarrollo incremental provee algunos beneficios significativos para
los proyectos:
Construir un sistema pequeo es siempre menos riesgoso que construir un
sistema grande.
Al ir desarrollando parte de las funcionalidades, es ms fcil determinar si
los requerimientos planeados para los niveles subsiguientes son correctos.
Si un error importante es realizado, slo la ltima iteracin necesita ser
descartada.
Reduciendo el tiempo de desarrollo de un sistema (en este caso en
incremento del sistema) decrecen las probabilidades que esos
requerimientos de usuarios puedan cambiar durante el desarrollo.
Si un error importante es realizado, el incremento previo puede ser usado.
Los errores de desarrollo realizados en un incremento, pueden ser
arreglados antes del comienzo del prximo incremento.
Cuando se utiliza un modelo incremental, el primer incremento a menudo es un
producto esencial. Es decir, se afrontan requisitos bsicos, pero muchas funciones
suplementarias (algunas conocidas, otras no) quedan sin extraer. El cliente utiliza
-
el producto central (o sufre la revisin detalla). Como un resultado de utilizacin
y/o de evaluacin, se desarrolla un plan para el incremento siguiente. El plan
afronta la modificacin del producto central a fin de cumplir mejor las necesidades
del cliente y la entrega de funciones, y caractersticas adicionales. Este proceso se
repite siguiendo la entrega de cada incremento. Hasta que se elabore el producto
completo.
El modelo de proceso incremental, como la construccin de prototipos y otros
enfoques evolutivos, es iterativo por naturaleza. Pero a diferencia de la
construccin de prototipos, el modelo incremental se centra en la entrega de un
producto operacional con cada incremento. Los primero incrementos son
versiones incompletas del producto final, pero proporcionan al usuario la
funcionalidad que precisa y tambin una plataforma para la evaluacin.
El desarrollo incremental es particularmente til cuando el personal no esta
disponible para una implementacin completa en la fecha lmite que se haya
establecido para el proyecto. Los primeros incrementos se pueden implementar
con menos personas.
Este modelo constituyo un avance sobre el modelo en cascada pero tambin
presenta problemas. Aunque permite el cambio continuo de requisitos, aun existe
el problema de determinar si los requisitos propuestos son validos. Los errores en
los requisitos se presentan tarde y su correccin resulta tan costosa como en el
modelo en cascada.
-
Proceso de Desarrollo Unificado
El Proceso Unificado es un proceso de software genrico que puede ser utilizado
para una gran cantidad de tipos de sistemas de software, para diferentes reas de
aplicacin, diferentes tipos de organizaciones, diferentes niveles de competencia y
diferentes tamaos de proyectos.
Provee un enfoque disciplinado en la asignacin de tareas y responsabilidades
dentro de una organizacin de desarrollo. Su meta es asegurar la produccin de
software de muy alta calidad que satisfaga las necesidades de los usuarios finales,
dentro de un calendario y presupuesto predecible.
El Proceso Unificado tiene dos dimensiones:
Un eje horizontal que representa el tiempo y muestra los aspectos del ciclo
de vida del proceso a lo largo de su desenvolvimiento
Un eje vertical que representa las disciplinas, las cuales agrupan
actividades de una manera lgica de acuerdo a su naturaleza.
La primera dimensin representa el aspecto dinmico del proceso conforme se va
desarrollando, se expresa en trminos de fases, iteraciones e hitos.
La segunda dimensin representa el aspecto esttico del proceso: cmo es
descrito en trminos de componentes del proceso, disciplinas, actividades, flujos
de trabajo, artefactos y roles.
-
El Proceso Unificado se basa en componentes, lo que significa que el sistema en
construccin est hecho de componentes de software interconectados por medio
de interfaces bien definidas. El Proceso Unificado usa el Lenguaje de Modelado
Unificado (UML) en la preparacin de todos los planos del sistema. De hecho,
UML es una parte integral del Proceso Unificado, fueron desarrollados a la par.
Los aspectos distintivos del Proceso Unificado estn capturados en tres conceptos
clave: dirigido por casos de uso, centrado en la arquitectura, iterativo e
incremental. Esto es lo que hace nico al Proceso Unificado.
El Proceso Unificado es dirigido por casos de uso
Un sistema de software se crea para servir a sus usuarios. Por lo tanto, para
construir un sistema exitoso se debe conocer qu es lo que quieren y necesitan
los usuarios prospectos. El trmino usuario se refiere no solamente a los usuarios
humanos, sino a otros sistemas, en este contexto, el trmino usuario representa
algo o alguien que interacta con el sistema por desarrollar. Un caso de uso es
una pieza en la funcionalidad del sistema que le da al usuario un resultado de
valor, los casos de uso capturan los requerimientos funcionales.
Todos los casos de uso juntos constituyen el modelo de casos de uso el cual
describe la funcionalidad completa del sistema. Este modelo reemplaza la
tradicional especificacin funcional del sistema. Una especificacin funcional
tradicional se concentra en responder la pregunta: Qu se supone que el sistema
debe hacer? La estrategia de casos de uso puede ser definida agregando tres
palabras al final de la pregunta: por cada usuario? Estas tres palabras tienen una
implicacin importante, nos fuerzan a pensar en trminos del valor a los usuarios y
no solamente en trminos de las funciones que sera bueno que tuviera. Sin
embargo, los casos de uso no son solamente una herramienta para especificar los
requerimientos del sistema, tambin dirigen su diseo, implementacin y pruebas,
esto es, dirigen el proceso de desarrollo.
-
An y cuando los casos de uso dirigen el proceso, no son elegidos de manera
aislada. Son desarrollados a la par con la arquitectura del sistema, esto es, los
casos de uso dirigen la arquitectura del sistema y la arquitectura del sistema
influencia la eleccin de los casos de uso, por lo tanto, la arquitectura del sistema
y los casos de uso maduran conforme avanza el ciclo de vida.
El Proceso Unificado est centrado en la arquitectura
El papel del arquitecto de sistemas es similar en naturaleza al papel que el
arquitecto desempea en la construccin de edificios. El edificio se mira desde
diferentes puntos de vista: estructura, servicios, plomera, electricidad, etc. Esto le
permite al constructor ver una radiografa completa antes de empezar a construir.
Similarmente, la arquitectura en un sistema de software es descrita como
diferentes vistas del sistema que est siendo construido.
El concepto de arquitectura de software involucra los aspectos estticos y
dinmicos ms significativos del sistema. La arquitectura surge de las necesidades
de la empresa, tal y como las interpretan los usuarios y otros stakeholders, y tal y
como estn reflejadas en los casos de uso. Sin embargo, tambin est
influenciada por muchos otros factores, tales como la plataforma de software en la
que se ejecutar, la disponiblidad de componentes reutilizables, consideraciones
de instalacin, sistemas legados, requerimientos no funcionales (ej. desempeo,
confiabilidad).
La arquitectura es la vista del diseo completo con las caractersticas ms
importantes hechas ms visibles y dejando los detalles de lado. Ya que lo
importante depende en parte del criterio, el cual a su vez viene con la experiencia,
el valor de la arquitectura depende del personal asignado a esta tarea. Sin
embargo, el proceso ayuda al arquitecto a enfocarse en las metas correctas, tales
como claridad, flexibilidad en los cambios futuros y reuso.
-
Cmo se relacionan los casos de uso con la arquitectura? Cada producto tiene
funcin y forma. Uno slo de los dos no es suficiente, estas dos fuerzas deben
estar balanceadas para obtener un producto exitoso, en este caso funcin
corresponde a los casos de uso y forma a la arquitectura, existe la necesidad de
intercalar entre casos de uso y arquitectura.
Es un problema del huevo y la gallina. Por una parte, los casos de uso deben,
cuando son realizados, acomodarse en la arquitectura. Por otra parte, la
arquitectura debe proveer espacio para la realizacin de todos los casos de uso,
hoy y en el futuro. En la realidad, ambos arquitectura y casos de uso deben
evolucionar en paralelo.
El Proceso Unificado es Iterativo e Incremental
Desarrollar un producto de software comercial es una tarea enorme que puede
continuar por varios meses o aos. Es prctico dividir el trabajo en pequeos
pedazos o mini-proyectos. Cada mini-proyecto es una iteracin que finaliza en un
incremento. Las iteraciones se refieren a pasos en el flujo de trabajo, los
incrementos se refieren a crecimiento en el producto. Para ser ms efectivo, las
iteraciones deben estar controladas, esto es, deben ser seleccionadas y llevadas a
cabo de una manera planeada.
Los desarrolladores basan su seleccin de qu van a implementar en una iteracin
en dos factores. Primero, la iteracin trata con un grupo de casos de uso que en
conjunto extienden la usabilidad del producto. Segundo, la iteracin trata con los
riesgos ms importantes. Las iteraciones sucesivas construyen los artefactos del
desarrollo a partir del estado en el que fueron dejados en la iteracin anterior.
En cada iteracin, los desarrolladores identifican y especifican los casos de uso
relevantes, crean el diseo usando la arquitectura como gua, implementan el
diseo en componentes y verifican que los componentes satisfacen los casos de
uso. Si una iteracin cumple sus metas y usualmente lo hace el desarrollo
-
contina con la siguiente iteracin. Cuando la iteracin no cumple con sus metas,
los desarrolladores deben revisar sus decisiones previas y probar un nuevo
enfoque.
Una iteracin es un bucle de desarrollo completo, es una secuencia de actividades
con un plan establecido y criterios de evaluacin. Acaba en la edicin de un
producto ejecutable, subconjunto del producto final bajo desarrollo.
Se suele hablar de ciclos de vida en los que se realizan varios recorridos por todas
las fases. Cada recorrido por las fases se denomina Iteracin en el proyecto en la
que se realizan varios tipos de trabajo (denominados flujos). Cada iteracin parte
de la anterior incrementado (crece el producto) o revisando la funcionalidad
implementada. Los desarrolladores basan la seleccin de lo que implementarn en
cada iteracin en dos cosas: el conjunto de casos de uso que amplan la
funcionalidad, y en los riesgos ms importantes que deben mitigarse. Las
iteraciones deben estar controladas. Esto significa que deben seleccionarse y
ejecutarse de una forma planificada.
Los beneficios de este enfoque iterativo son:
La iteracin controlada reduce el riesgo a los costos de un solo incremento.
Reduce el riesgo de retrasos en el calendario atacando los riesgos ms
importantes primero.
Acelera el desarrollo. Los trabajadores trabajan de manera ms eficiente al
obtener resultados a corto plazo.
Tiene un enfoque ms realista al reconocer que los requisitos no pueden
definirse completamente al principio.
-
DIAGRAMA UML
EL LENGUAJE UNIFICADO DE MODELADO (UML)
En todas las disciplinas de la Ingeniera se hace evidente la importancia de los
modelos ya que describen el aspecto y la conducta de "algo". Ese "algo" puede
existir, estar en un estado de desarrollo o estar, todava, en un estado de
planeacin. Es en este momento cuando los diseadores del modelo deben
investigar los requerimientos del producto terminado y dichos requerimientos
pueden incluir reas tales como funcionalidad, performance y confiabilidad.
Adems, a menudo, el modelo es dividido en un nmero de vistas, cada una de
las cuales describe un aspecto especfico del producto o sistema en construccin.
El modelado sirve no solamente para los grandes sistemas, aun en aplicaciones
de pequeo tamao se obtienen beneficios de modelado, sin embargo es un
hecho que entre ms grande y ms complejo es el sistema, ms importante es el
papel de que juega el modelado por una simple razn: "El hombre hace modelos
de sistemas complejos porque no puede entenderlos en su totalidad".
Los principales beneficios de UML son:
Mejores tiempos totales de desarrollo (de 50 % o ms).
Modelar sistemas (y no slo de software) utilizando conceptos orientados a
objetos.
Establecer conceptos y artefactos ejecutables.
Encaminar el desarrollo del escalamiento en sistemas complejos de misin
crtica.
Crear un lenguaje de modelado utilizado tanto por humanos como por
mquinas.
Mejor soporte a la planeacin y al control de proyectos.
Alta reutilizacin y minimizacin de costos.
-
UML es un lenguaje para hacer modelos y es independiente de los mtodos de
anlisis y diseo. Existen diferencias importantes entre un mtodo y un lenguaje
de modelado. Un mtodo es una manera explcita de estructurar el pensamiento y
las acciones de cada individuo. Adems, el mtodo le dice al usuario qu hacer,
cmo hacerlo, cundo hacerlo y por qu hacerlo; mientras que el lenguaje de
modelado carece de estas instrucciones. Los mtodos contienen modelos y esos
modelos son utilizados para describir algo y comunicar los resultados del uso del
mtodo.
Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado
consiste de vistas, diagramas, elementos de modelo (los smbolos utilizados en los
modelos) y un conjunto de mecanismos generales o reglas que indican cmo
utilizar los elementos. Las reglas son sintcticas, semnticas y pragmticas.
Vistas: Las vistas muestran diferentes aspectos del sistema modelado. Una vista
no es una grfica, pero s una abstraccin que consiste en un nmero de
diagramas y todos esos diagramas juntos muestran una "fotografa" completa del
sistema. Las vistas tambin ligan el lenguaje de modelado a los mtodos o
procesos elegidos para el desarrollo. Las diferentes vistas que UML tiene son:
Vista Casos de Uso: Una vista que muestra la funcionalidad del sistema
como la perciben los actores externos.
Vista Lgica: Muestra cmo se disea la funcionalidad dentro del sistema,
en trminos de la estructura esttica y la conducta dinmica del sistema.
-
Vista de Componentes: Muestra la organizacin de los componentes de
cdigo.
Vista Concurrente: Muestra la concurrencia en el sistema, direccionando los
problemas con la comunicacin y sincronizacin que estn presentes en un
sistema concurrente.
Vista de Distribucin: muestra la distribucin del sistema en la arquitectura
fsica con computadoras y dispositivos llamados nodos.
Diagramas: Los diagramas son las grficas que describen el contenido de una
vista. UML tiene nueve tipos de diagramas que son utilizados en combinacin para
proveer todas las vistas de un sistema: diagramas de caso de uso, de clases, de
objetos, de estados, de secuencia, de colaboracin, de actividad, de componentes
y de distribucin.
Smbolos o Elementos de modelo: Los conceptos utilizados en los diagramas
son los elementos de modelo que representan conceptos comunes orientados a
objetos, tales como clases, objetos y mensajes, y las relaciones entre estos
conceptos incluyendo la asociacin, dependencia y generalizacin. Un elemento
de modelo es utilizado en varios diagramas diferentes, pero siempre tiene el
mismo significado y simbologa.
Reglas o Mecanismos generales: Proveen comentarios extras, informacin o
semntica acerca del elemento de modelo; adems proveen mecanismos de
extensin para adaptar o extender UML a un mtodo o proceso especfico,
organizacin o usuario.
FASES DEL DESARROLLO DE UN SISTEMA
Las fases del desarrollo de sistemas que soporta UML son: Anlisis de
requerimientos, Anlisis, Diseo, Programacin y Pruebas.
-
Anlisis de Requerimientos
UML tiene casos de uso (use-cases) para capturar los requerimientos del cliente.
A travs del modelado de casos de uso, los actores externos que tienen inters en
el sistema son modelados con la funcionalidad que ellos requieren del sistema (los
casos de uso). Los actores y los casos de uso son modelados con relaciones y
tienen asociaciones entre ellos o stas son divididas en jerarquas. Los actores y
casos de uso son descritos en un diagrama use-case. Cada use-case es descrito
en texto y especifica los requerimientos del cliente: lo que l (o ella) espera del
sistema sin considerar la funcionalidad que se implementar. Un anlisis de
requerimientos puede ser realizado tambin para procesos de negocios, no
solamente para sistemas de software.
Anlisis
La fase de anlisis abarca las abstracciones primarias (clases y objetos) y
mecanismos que estn presentes en el dominio del problema. Las clases que se
modelan son identificadas, con sus relaciones y descritas en un diagrama de
clases. Las colaboraciones entre las clases para ejecutar los casos de uso
tambin se consideran en esta fase a travs de los modelos dinmicos en UML.
Es importante notar que slo se consideran clases que estn en el dominio del
problema (conceptos del mundo real) y todava no se consideran clases que
definen detalles y soluciones en el sistema de software, tales como clases para
interfaces de usuario, bases de datos, comunicaciones, concurrencia, etc.
Diseo
En la fase de diseo, el resultado del anlisis es expandido a una solucin tcnica.
Se agregan nuevas clases que proveen de la infraestructura tcnica: interfaces de
usuario, manejo de bases de datos para almacenar objetos en una base de datos,
comunicaciones con otros sistemas, etc. Las clases de dominio del problema del
anlisis son agregadas en esta fase. El diseo resulta en especificaciones
detalladas para la fase de programacin.
-
Programacin
En esta fase las clases del diseo son convertidas a cdigo en un lenguaje de
programacin orientado a objetos. Cuando se crean los modelos de anlisis y
diseo en UML, lo ms aconsejable es trasladar mentalmente esos modelos a
cdigo.
Pruebas
Normalmente, un sistema es tratado en pruebas de unidades, pruebas de
integracin, pruebas de sistema, pruebas de aceptacin, etc. Las pruebas de
unidades se realizan a clases individuales o a un grupo de clases y son
tpicamente ejecutadas por el programador. Las pruebas de integracin integran
componentes y clases en orden para verificar que se ejecutan como se especific.
Las pruebas de sistema ven al sistema como una "caja negra" y validan que el
sistema tenga la funcionalidad final que le usuario final espera. Las pruebas de
aceptacin conducidas por el cliente verifican que el sistema satisface los
requerimientos y son similares a las pruebas de sistema.
CASOS DE USO (UC)
Describen bajo la forma de acciones y reacciones el comportamiento de un
sistema desde el punto de vista de un usuario, permiten definir los lmites del
sistema y las relaciones entre el sistema y el entorno, es una manera especfica
de utilizar un sistema. Es la imagen de una funcionalidad del sistema,
desencadenada en respuesta a la estimulacin de un actor externo.
Necesidades de informacin
Las necesidades se expresan a menudo de manera no estructurada, sin fuerte
coherencia, frecuentemente, las necesidades se contradicen, se cometen olvidos,
subsisten imprecisiones y el anlisis del sistema parte sobre una mala base, los
casos de uso reubican la expresin de las necesidades sobre los usuarios,
partiendo del punto de vista muy simple que dice que un sistema se construye
ante todo para sus usuarios. La terminologa empleada en la redaccin de los
-
Casos de Uso es la empleada por los usuarios en su quehacer cotidiano, de modo
que la expresin de las necesidades se facilita en gran medida.
Modelo de Casos de Uso
Comprende los actores, el sistema y los propios casos de uso, el conjunto de
funcionalidades de un sistema se determina examinando las necesidades
funcionales de cada actor, expresadas en forma de familias de interacciones con
el caso de uso.
Actor
Representa un papel o rol interpretado por una persona o una cosa que interacta
con un sistema, los actores se determinan observando los usuarios directos del
sistema, los responsables de su uso o de su mantenimiento, as como los otros
sistemas que interactan con el sistema en cuestin, la misma persona puede
interpretar el rol de varios actores, y varias personas pueden interpretar el mismo
papel y actuar, como el mismo actor.
Categoras de Actores
Primarios: agrupa a todo aquello que utiliza las funciones principales del sistema
para satisfacer un requerimiento.
Secundarios: agrupa a todo aquello de lo que el sistema se vale para atender los
requerimientos de los actores principales.
-
Tipos actores:
Personas
Dispositivos
Otros Sistemas
Actores y Escenarios
Se describen actor por actor, en trminos de escenarios, mostrando la informacin
intercambiada y las acciones en la manera de utilizar el sistema, un caso de uso
agrupa una familia de escenarios de uso segn un criterio funcional. Describen
interacciones entre los actores y el sistema sin entrar en detalles de cada
escenario.
Escenarios: Instancias de un Caso de Uso
Los casos de uso deben ser vistos como clases cuyas instancias son los
escenarios. cada vez que un actor interacta con el sistema un caso de uso
instancia un escenario; este escenario corresponde al flujo de mensajes
intercambiados por los objetos durante la interaccin particular que corresponde al
escenario.
-
Qu es un Escenario de Caso de Uso?
Es una descripcin de una situacin del negocio que puede ser visualizada por los
usuarios de un sistema, es decir un escenario es una secuencia de interacciones
ocurriendo bajo ciertas condiciones para lograr el objetivo del actor primario, y
teniendo un particular resultado con respecto a este objetivo.
Relaciones entre Actores y Casos de Uso
De Comunicacin: La participacin del actor se seala por una flecha entre
el actor y el caso de uso. El sentido de la flecha indica el iniciador de la
interaccin.
De Inclusin: Entre casos de uso, significa que una instancia del caso de
uso fuente comprende tambin el comportamiento descrito por el caso de
uso destino.
De extensin: Entre casos de uso, significa que el caso de uso fuente
extiende el comportamiento del caso de uso destino.
-
Implementacin de relaciones
Construccin de Casos de Uso
Un UC debe ser ante todo simple, inteligible, descrito de manera clara y concisa.
La descripcin de la interaccin se concentra sobre lo que debe hacerse en el UC,
no sobre la manera de cmo hacerlo, el nmero de actores que interactan con el
UC es limitado, y por regla general, hay un solo actor por UC.
En la construccin de los UC hay que preguntarse:
Cules son las tareas del actor?
Qu informaciones debe el actor crear, guardar, modificar, destruir o
simplemente leer?
El actor, Deber informar al sistema. de los cambios externos?
El sistema, Deber informar al actor de las condiciones internas?
-
Reglas de Implementacin de un Caso de Uso
La descripcin de un UC comprende los elementos siguientes.
Inicio: el evento que inicia el UC; debe expresarse con la frase El UC
empieza cuando X se produce.
Fin: el evento que causa la parada del UC; debe expresarse con la frase
Cuando Y se produce, el UC ha terminado.
Interaccin con el actor: describe claramente lo que el actor desea le
proporcione el sistema.
Intercambio informacin: expresa en lenguaje natural la forma de la
interaccin entre el sistema y los actores en forma de parmetros.
Cronologa y origen de la informacin: describe cuando el sistema necesita
informacin interna o externa y cuando las almacena.
Las repeticiones de comportamiento: que pueden describirse por medio de
pseudocdigo.
Opcionalidad: expresan las opciones para algunas de las acciones dentro
de un escenario.
-
Transicin hacia los Objetos
El paso hacia la aproximacin a objetos se efecta asociando una colaboracin
entre objetos a cada escenario instancia de un UC, los escenarios, se representan
por diagramas de interaccin entre objetos.
Descomposicin hacia objetos
-
INGENIERA DE REQUERIMIENTOS
En la actualidad, son muchos los procesos de desarrollo de software que existen.
Con el pasar de los aos, la Ingeniera de Software ha introducido y popularizado
una serie de estndares para medir y certificar la calidad, tanto del sistema a
desarrollar, como del proceso de desarrollo en s. Se han publicado muchos libros
y artculos relacionados con este tema, con el modelado de procesos del negocio
y la reingeniera.
Un nmero creciente de herramientas automatizadas han surgido para ayudar a
definir y aplicar un proceso de desarrollo de software efectivo. Hoy en da la
economa global depende ms de sistemas automatizados que en pocas
pasadas; esto ha llevado a los equipos de desarrollo a enfrentarse con una nueva
dcada de procesos y estndares de calidad.
Sin embargo, cmo explicamos la alta incidencia de fallos en los proyectos de
software? Por qu existen tantos proyectos de software vctimas de retrasos,
presupuestos sobregirados y con problemas de calidad? Cmo podemos tener
una produccin o una economa de calidad, cuando nuestras actividades diarias
dependen de la calidad del sistema? Tal vez suene ilgico pero, a pesar de los
avances que ha dado la tecnologa, an existen procesos de produccin
informales, parciales y en algunos casos no confiables.
La Ingeniera de Requerimientos cumple un papel primordial en el proceso de
produccin de software, ya que enfoca un rea fundamental: la definicin de lo
que se desea producir. Su principal tarea consiste en la generacin de
especificaciones correctas que describan con claridad, sin ambigedades, en
forma consistente y compacta, el comportamiento del sistema; de esta manera, se
pretende minimizar los problemas relacionados al desarrollo de sistemas.
-
La razn principal para escoger este tema se fundament en la gran cantidad de
proyectos de software que no llegan a cumplir sus objetivos. En nuestro pas
somos partcipes de este problema a diario, en donde se ha vuelto comn la
compra de sistemas extranjeros, para luego "personalizarlos" supuestamente a la
medida de las empresas.
El reemplazo de plataformas y tecnologas obsoletas, la compra de sistemas
completamente nuevos, las modificaciones de todos o de casi todos los programas
que forman un sistema, entre otras razones, llevan a desarrollar proyectos en
calendarios sumamente ajustados y en algunos casos irreales; esto ocasiona que
se omitan muchos pasos importantes en el ciclo de vida de desarrollo, entre estos,
la definicin de los requerimientos.
Tcnicas de obtencin de requerimientos
El descubrimiento de requerimientos es el proceso de recoger informacin sobre el
sistema propuesto y extraer los requerimientos del usuario. Las fuentes de
informacin durante la fase del descubrimiento de requerimientos incluyen la
documentacin, los stakeholders del sistema y la especificacin de sistemas
similares.
Entre los stakeholders podemos encontrar desde los usuarios finales del sistema
hasta los gerentes, adems de los stakeholders del sistema, ya hemos visto que
los requerimientos pueden venir del dominio de la aplicacin y de otros sistemas
que interactan con el sistema a especificar.
Todos estos se deben considerar durante el proceso de obtencin de
requerimientos. Estas fuentes de requerimientos se pueden representar como
puntos de vista del sistema, donde cada uno presenta un subconjunto de
requerimientos para el sistema.
-
Entrevistas
Las entrevistas formales o informales con los stakeholders del sistema son parte
de la mayora de los procesos de la ingeniera de requerimientos. En estas
entrevistas, el equipo de la ingeniera de requerimientos hace preguntas a los
stakeholders sobre el sistema que utilizan y sobre el sistema a desarrollar. Los
requerimientos provienen de las respuestas a estas preguntas. Las entrevistas
pueden ser de dos tipos: Las respuestas a algunas preguntas pueden conducir a
otras cuestiones que se discuten de una forma menos estructurada. Las
discusiones completamente abiertas raramente salen bien; la mayora de las
entrevistas requieren algunas preguntas para empezar y para mantener la
entrevista centrada en el sistema a desarrollar.
Las entrevistas sirven para obtener una comprensin general de lo que hacen los
stakeholders, como podran interactuar con el sistema y las dificultades a las que
se enfrentan con los sistemas actuales. A la gente le gusta hablar sobre su trabajo
y normalmente se alegran de verse implicados en las entrevistas. Sin embargo, no
son de tanta utilidad para la comprensin de los requerimientos del dominio de la
aplicacin.
Es difcil obtener conocimiento del dominio durante las entrevistas debido a dos
razones:
1. Todos los especialistas de la aplicacin utilizan terminologa y lenguaje
especifica de un dominio. Es imposible para ellos discutir requerimientos del
dominio sin utilizar esta terminologa. Normalmente la utilizan de un modo
preciso y sutil, por lo que es fcil que la malinterpreten los ingenieros de
requerimientos.
2. Cierto conocimiento del dominio es tan familiar para los stakeholders que lo
encuentran difcil de explicar o piensan que es tan bsico que no merece la
pena mencionarlo.
-
Las entrevistas no son una tcnica eficaz para obtener conocimiento sobre los
requerimientos y restricciones organizacionales debido a que existen sutiles
poderes e influencias entre los stakeholders en la organizacin. Las estructuras
organizacionales publicadas rara vez se corresponden con la realidad de la toma
de decisiones en una organizacin, pero los entrevistados pueden no desear
revelar la estructura real en vez de la terica a un desconocido. En general, la
mayora de la gente es reacia a discutir cuestiones polticas y organizacionales
que pueden influir en los requerimientos.
Los entrevistadores eficaces tienen dos caractersticas:
1. No tienen prejuicios, evitan ideas preconcebidas sobre los requerimientos y
estn dispuestos a escuchar. Si el stakeholder propone requerimientos
sorprendentes, estn dispuestos a cambiar su opinin del sistema.
2. Instan al entrevistado a empezar las discusiones con una pregunta, una
propuesta de requerimientos o sugiriendo trabajar juntos en un prototipo del
sistema. Decir a la gente dime lo que quieres es improbable que cause
informacin de utilidad. La mayora de la gente encuentra mucho mas fcil hablar
en un contexto definido en vez de en trminos generales.
La informacin de la entrevistas complementa otras informaciones sobre el
sistema de los documentos, observaciones de los usuarios, etc. Algunas veces,
aparte de la informacin de los documentos, las entrevistas pueden ser la tcnica
fuente de informacin sobre los requerimientos del sistema. Sin embargo, las
entrevistas por si mismas tienden a omitir informacin esencial, por lo que
deberan ser usadas al lado de otras tcnicas de obtencin de requerimientos.
-
Reuniones
Las reuniones tienen como objetivo, obtener informacin que se encuentra
repartida entre varias personas, tomar decisiones estratgicas, tcticas u
operativas, transmitir ideas sobre un determinado tema, analizar nuevas
necesidades de informacin, comunicar los resultados obtenidos como
consecuencia de un estudio.
Las directrices bsicas de una reunin son:
Preparar y convocar la reunin (orden del da).
Realizar la reunin.
Consolidar el resultado de la reunin.
Elaborar el acta de reunin.
Cuestionarios
Es un conjunto de preguntas que deben ser contestadas por escrito por una
determinada poblacin, generalmente esta poblacin es amplia. Segn el
contenido de los cuestionarios podemos clasificarlos en los siguientes tipos:
Abiertos: Las respuestas no estn delimitadas, esto permite mayor libertad de
expresin.
Cerrados: Se fuerza a respuestas concretas. Un mismo tipo de pregunta puede
formularse para obtener diferente rango de respuestas:
Eleccin exclusiva (respuestas del tipo si/no). Por ejemplo: Cree que
existen muchos circuitos integrados defectuosos?
Escala cualitativa (acuerdo/desacuerdo). Por ejemplo: Existen muchos
circuitos integrados defectuosos. Las posibles respuestas son: de acuerdo,
totalmente de acuerdo, no estoy seguro, en desacuerdo, totalmente en
desacuerdo.
-
Cantidad, es decir, la pregunta requiere como respuesta una determinada
cantidad. Por ejemplo: De cada 100 circuitos integrados cuntos son
defectuosos?
Rango o escala cuantitativa, donde la respuesta es un rango de valores.
Por ejemplo: De cada 100 circuitos integrados son defectuosos (05, 610,
>50, etc.)
Seleccin de respuestas limitadas. Por ejemplo: Las causas ms frecuentes
de circuitos integrados defectuosos son: a) Fallo en la impresin de la pista.
b) Fallo en la conexin de las patillas. c) Fallo en el encapsulado de
plstico.
Mixtos: una combinacin de los anteriores Los buenos cuestionarios no solo se
escriben sino que se disean. Una buena elaboracin acompaada de una prueba
previa, tanto del formato como de las preguntas, son la base de una recopilacin
de datos significativa a travs del cuestionario.
Puntos que ayudarn en la formulacin de un cuestionario:
1. Determinar qu datos necesitan recabarse y qu personas son las ms
calificadas para proporcionarlos. Si hay otros grupos que pueden proporcionar
datos variantes y mayor visin tambin se identificarn.
2. Seleccionar el tipo de cuestionario a utilizar (abierto, cerrado o mixto).
3. Desarrollar un grupo de preguntas para incluirlas en el cuestionario. Las
preguntas extras que son intencionalmente redundantes, pueden ser tiles al
asegurar respuestas consistentes por parte de quien responda.
-
4. Examinar el cuestionario para encontrarle fallos y defectos, como:
a) Interrogantes innecesarias.
b) Preguntas que pueden ser mal interpretadas debido a su enfoque o
forma de escritura.
c) Preguntas que el sujeto posiblemente no pueda responder, dado que
desconoce la respuesta.
d) Preguntas que estn escritas de forma que se escoger la respuesta
preferida.
e) Preguntas que se interpretarn de forma diferente dependiendo del
marco de referencia de cada entrevistado.
f) Preguntas que no proporcionan opciones adecuadas de respuesta.
g) Un ordenamiento no adecuado de las preguntas o respuestas.
5. Probar previamente el cuestionario en un grupo pequeo de personas, para
detectar otros problemas posibles. As no solamente se describen los problemas
en cuanto a su escritura, espaciado, ortografa, y mtodos de registro de
respuestas, sino tambin proporciona una indicacin del tipo de respuestas que se
recopilarn en un grupo mayor. Si existen muchas respuestas inesperadas, se
captarn durante la prueba previa. Hay que asegurar que la muestra de prueba
sea comparable al grupo mayor que recibir el cuestionario.
6. Analizar las respuestas del grupo de prueba para asegurar que el anlisis de los
datos que se busca puede llevarse a cabo con el tipo de datos recopilados. Si
-
estos datos no revelan algo que los analistas no reconocen y no necesitan
verificar, el cuestionario puede no ser necesario en su forma actual.
7. Realizar cambios finales de edicin, correcciones de mecanografa y ajustes en
la forma; entonces imprimir el cuestionario en una forma limpia y legible.
8. Distribuir el cuestionario. Cuando sea posible, anotar el nombre de cada
persona.
Desarrollo conjunto de aplicaciones (JAD)
Tcnica que se utiliza para promover la cooperacin y el trabajo en equipo entre
usuarios y analistas. Consiste en realizar sesiones en las que participan usuarios
expertos del dominio junto a analistas de software. La idea es aprovechar la
dinmica de grupos aplicando un proceso de trabajo sistemtico y organizado,
apoyado por elementos visuales de comunicacin y comprensin de soluciones.
Las razones que sirven de base a JAD son las siguientes:
Las entrevistas requieren mucho tiempo, no solo en prepararlas y hacerlas
sino tambin en redactar un conjunto de requisitos coherente a partir de
opiniones diferentes de los distintos entrevistados.
Es ms difcil apreciar posibles errores en la especificacin de requisitos, ya
que slo el analista revisa el documento. En el JAD todo el grupo puede
actuar como revisor y detectar defectos.
El JAD propugna una participacin ms profunda de los usuarios en el
proyecto, hasta tal punto que los usuarios que participan adquieren un
cierto sentido de propiedad en el sistema que se construye.
El JAD no se utiliza demasiado, debido a que requiere una mayor
organizacin que las entrevistas y porque el ambiente o los mtodos de
trabajo convencionales en las empresas no facilitan este tipo de actividades
(falta de tiempo, dificultad de coordinacin de tanta gente, dificultad para
convencer a la direccin, etc.).
-
No obstante las empresas que han implantado este mtodo han informado de
importantes ahorros de tiempo en el desarrollo de software, as como de una
mayor satisfaccin de los usuarios con los sistemas construidos.
Joint Requirements Planning (JRP)
Las caractersticas de las sesiones JRP y JAD son comunes en cuanto a la
dinmica del desarrollo de las sesiones y la obtencin de los modelos con el
soporte de herramientas, la diferencia radica en los productos de salida y en los
perfiles de los participantes, en JRP son del nivel ms alto en la organizacin en
cuanto a visin global del negocio y capacidad de decisin.
Perfiles implicados:
Moderador, debe tener una gran capacidad de relacin, habilidades de
negociacin y de gestin de dinmica de grupos, as como un alto nivel de
conocimiento de los procesos de la organizacin.
Promotor, persona que ha impulsado el Plan de Sistemas de Informacin y
tiene un compromiso econmico.
Director de proyecto, responsable de que el proyecto llegue a buen fin.
Consultores, responsable de traducir los requisitos especificados por el
usuario en informacin estructurada, de tal forma, que los usuarios puedan
entender y discutir los resultados.
Especialista en modelizacin, responsable de la elaboracin de los
modelos en el transcurso de la sesin.
Usuarios de alto nivel, responsables de definir los procesos de la
organizacin y los sistemas de informacin afectados as como las
prioridades para su implantacin a largo o medio plazo en la organizacin.
-
Brainstorming
Su objetivo consiste en desarrollar y ejercitar la imaginacin creador, la cual se
entiende por la capacidad de establecer nuevas relaciones entre hechos, o
integrarlo de una manera distinta. El director del grupo precisa el problema por
tratarse, explica el procedimiento y las normas mnimas que han de seguirse
dentro del clima informal bsico.
Las ideas que se expongan no deben ser censuradas ni criticadas directa o
indirectamente. Debe evitarse todo tipo de manifestaciones que coarten o puedan
inhibir la espontaneidad. Los miembros exponen su punto de vista sin
restricciones. Terminado el plazo previsto, se pasa a considerar ahora con
sentido crtico y en un plano de realidad la viabilidad o practicidad de las
propuestas ms valiosas. El director del grupo hace un resumen y junto con los
miembros extrae las conclusiones.
Formular el objetivo.
Anotar rpidamente cualquier idea que pase por la cabeza.
No escribir las frases enteras.
No evaluar las ideas.
No ordenar las ideas.
Preferir cantidad a calidad.
Dos cabezas son mejor que una.
Incluir ideas salvajes (que podran llevar a ideas tiles).
Generar ideas por asociacin.
Combinar ideas existentes para obtener ideas nuevas.
Modificar ideas existentes para obtener ideas nuevas.
Asociar ideas usando conexiones y proximidad.
Clasificar ideas por colores.
Mantener todas las ideas a la vista y parar cuando no surjan ms ideas.
-
Al da siguiente (no el mismo da) el grupo se tendra que volver a encontrar.
Primero, se tendran que compartir las ideas pensadas desde la sesin anterior.
Despus, el grupo tendra que evaluar cada una de las ideas y desarrollar las que
prometan ms para poderlas llevar a la prctica. Las ideas salvajes se convierten
en prcticas o utilizadas para sugerir soluciones realistas. El nfasis hay que
ponerlo en el anlisis y en temas del mundo real.
La evaluacin no se hace el mismo da que la sesin de brainstorming. Esto hace
que la sesin de ideas sea ms libre (sin el temor de la evaluacin inmediata) y
permite un tiempo de incubacin de ms ideas y un tiempo para pensar sobre las
ideas que han surgido.
Phillips 66
Consiste en dividir cualquier grupo en otros ms pequeos, de 4 a 6 integrantes,
con el propsito de discutir o analizar un problema o tema, cada grupo busca una
solucin particular y se hace una puesta en comn, se rotan los grupos.
PASOS PARA LA OBTENCIN DE REQUERIMIENTOS.
1. Aprender todo lo que se pueda de los documentos, formularios, informes y
archivos existentes. Es sorprendente lo que se puede aprender de un
sistema sin necesidad de quitarle tiempo a la gente.
2. De ser posible, se observar el sistema en accin. No se plantearn
preguntas. Tan slo se observar y se tomarn notas o dibujos. Conviene
asegurarse de que las personas observadas saben que no se les est
evaluando. En caso contrario, harn su trabajo de manera ms eficaz que lo
normal.
3. Disear y distribuir cuestionarios para aclarar cuestiones que no se
comprenden bien. Ser tambin buen momento para solicitar opiniones sobre
-
los problemas y las limitaciones. Los cuestionarios requieren que los usuarios
inviertan una parte de su tiempo. Pero son ellos los que pueden elegir cundo
les viene mejor hacerlo.
4. Realizar entrevistas (o sesiones de trabajo en grupo, como JAD). Como ya
se ha recogido una base de requerimientos iniciales en los pasos anteriores, se
pueden utilizar las entrevistas para verificar y aclarar las cuestiones y los
problemas de mayor dificultad. En este punto se pueden llegar a aplicar
algunas de las otras tcnicas cmo Escenarios, Tormenta de ideas, Puntos de
Vista, ETHICS y Desarrollo de Prototipos.
5. Se verifican los requerimientos a travs del uso de tcnicas como
Entrevistas, Observacin y orientados a Puntos de Vista.
-
ESPECIFICACIN DE REQUERIMIENTOS
La especificacin de requisitos de software (ERS) es una descripcin completa del
comportamiento del sistema que se va a desarrollar. Incluye un conjunto de casos
de uso que describe todas las interacciones que tendrn los usuarios con el
software. Los casos de uso tambin son conocidos como requisitos funcionales.
Adems de los casos de uso, la ERS tambin contiene requisitos no funcionales (o
complementarios). Los requisitos no funcionales son requisitos que imponen
restricciones en el diseo o la implementacin, como, por ejemplo, restricciones en
el diseo o estndares de calidad.
Est dirigida tanto al cliente como al equipo de desarrollo. El lenguaje utilizado
para su redaccin debe ser informal, de forma que sea fcilmente comprensible
para todas las partes involucradas en el desarrollo.
Prcticas recomendadas para una buena ERS, las caractersticas de una buena
ERS son definidas por el estndar IEEE 830-1998.
Una buena ERS debe ser:
Completa. Todos los requerimientos deben estar reflejados en ella y todas
las referencias deben estar definidas.
Consistente. Debe ser coherente con los propios requerimientos y tambin
con otros documentos de especificacin.
Inequvoca. La redaccin debe ser clara de modo que no se pueda mal
interpretar.
Correcta. El software debe cumplir con los requisitos de la especificacin.
Trazable. Se refiere a la posibilidad de verificar la historia, ubicacin o
aplicacin de un tem a travs de su identificacin almacenada y
documentada.
Priorizable. Los requisitos deben poder organizarse jerrquicamente segn
su relevancia para el negocio y clasificndolos en esenciales, condicionales
y opcionales.
-
Modificable. Aunque todo requerimiento es modificable, se refiere a que
debe ser fcilmente modificable.
Verificable. Debe existir un mtodo finito sin costo para poder probarlo.
Tipos de requisitos
Existen varios tipos de requisitos como lo son:
1. Requisitos de Usuarios: Necesidades que los usuarios expresan
verbalmente
2. Requisitos del Sistema: Son los componentes que el sistema debe tener
para realizar determinadas tareas
3. Requisitos Funcionales: Servicios que el sistema debe proporcionar
Un requisito funcional define una funcin del sistema de software o sus
componentes. Una funcin es descrita como un conjunto de entradas,
comportamientos y salidas. Los requerimientos funcionales pueden ser: clculos,
detalles tcnicos, manipulacin de datos y otras funcionalidades especficas que
se supone, un sistema debe cumplir. Los requerimientos de comportamiento para
cada requerimiento funcional se muestran en los casos de uso. Son
complementados por los requisitos no funcionales, que se enfocan en cambio en
el diseo o la implementacin.
Como se define en la ingeniera de requisitos, los requisitos funcionales
establecen los comportamientos del sistema, tpicamente, un analista de requisitos
genera requisitos funcionales luego de diagramar los casos de uso. Sin embargo,
esto puede tener excepciones, ya que el desarrollo de software es un proceso
iterativo y algunos requisitos son previos al diseo de los casos de uso. Ambos
elementos (casos de uso y requisitos) se complementan en un proceso
bidireccional.
Un requisito funcional tpico contiene un nombre y un nmero de serie nico y un
resumen. Esta informacin se utiliza para ayudar al lector a entender por qu el
requisito es necesario, y para seguir al mismo durante el desarrollo del producto.
-
El ncleo del requisito es la descripcin del comportamiento requerido, que debe
ser clara y concisa. Este comportamiento puede provenir de reglas
organizacionales o del negocio, o ser descubiertas por interaccin con usuarios,
inversores y otros expertos en la organizacin.
4. Requisitos no funcionales: Restricciones que afectan al sistema
Un requisito no funcional o atributo de calidad es, en la ingeniera de sistemas y la
ingeniera de software, un requisito que especifica criterios que pueden usarse
para juzgar la operacin de un sistema en lugar de sus comportamientos
especficos, ya que stos corresponden a los requisitos funcionales. Por tanto, se
refieren a todos los requisitos que ni describen informacin a guardar, ni funciones
a realizar.
Algunos ejemplos de requisitos no funcionales tpicos son los siguientes:
Rendimiento, disponibilidad, seguridad, accesibilidad, usabilidad, estabilidad,
portabilidad, costo, operatividad, interoperabilidad, escalabilidad, concurrencia,
mantenibilidad, interfaz