You are on page 1of 8

Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.

Repaso Ingeniero de Software

Anlisis y Diseo de Sistemas


Dpto. Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur

Clase 5 Jugadores y Definicin de Requerimientos


Lic. Mara Mercedes Vitturini [mvitturi@cs.uns.edu.ar]

Un Ingeniero de Software debe tener dominio sobre un amplio espectro de actividades. Habilidades interpersonales. Las diferentes personas que interactan con el sistema se pueden clasificar:
usuarios, gerentes, auditores, analistas y diseadores, programadores, personal de operacin, etc.
Anlisis y Diseo de Sistemas - Clase 5 2

1er. CUATRIMESTRE 2006

Repaso
El desarrollo de sistemas puede estar a cargo de (relacin equipo de desarrollo/empresa):
Un grupo de desarrollo dentro de la empresa. Contratarse a una empresa externa. Pueden hacerse desarrollos para usuarios no conocidos (paquetes).

Participantes en el desarrollo de software


Cliente Patrocina el desarrollo del sistema.

$$$, necesidades

Obligacin contractual

Usuario Usa el sistema.

Necesidades

Segn la alternativa las comunicaciones van a ser diferentes.


Anlisis y Diseo de Sistemas - Clase 5 3

Sistema de Software

Desarrollador Construye el sistema.


4

Anlisis y Diseo de Sistemas - Clase 5

Usuarios
Persona/s para la que se construye el sistema (clienteso dueos del sistema)
Entrevistar. Conformar.

Clasificacin de los Usuarios


Por categora de trabajo
Usuarios Operativos. Usuarios Supervisores. Usuarios Ejecutivos.

Existen sistemas donde no se conoce al usuario.


Esto acarrea malos entendidos. En estos casos es importante documentar.
Anlisis y Diseo de Sistemas - Clase 5 5

Por nivel de experiencia en proyectos de desarrollo de software.


Amateur. Novato. Experto.
Anlisis y Diseo de Sistemas - Clase 5 6

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.

Usuarios
Usuarios Operativos
Tendrn contacto diario con el nuevo sistema. Se interesan por funciones e interfaz. Tienen una visin local. Manejan trminos fsicos.

Usuarios Ejecutivos
Usuarios Ejecutivos
Dan iniciativa al proyecto. Se interesan por estrategias de mercado y ganancias/prdidas. Tienen una visin global del sistema. Estn familiarizados con modelos abstractos. Les interesa:
La informacin que puedan obtener del sistema.

Usuarios Supervisores
A veces fueron usuarios operacionales. Les interesa el aumento de productividad que pueda darles el nuevo sistema. Puede negarse a que se entreviste a sus operadores. Tiene una visin similar al usuario operador.
Anlisis y Diseo de Sistemas - Clase 5 7

Anlisis y Diseo de Sistemas - Clase 5

Gerentes (Clientes)
Cuanto mayor sea el nivel de gerencia menos le interesar la tecnologa informtica. Sus prioridades pueden estar en conflicto con la de los usuarios. Diferentes gerentes pueden tomar posiciones encontradas con relacin al proyecto. Tienen la decisin sobre el futuro del proyecto. Les interesa las nuevas posibilidades de negocio.
Anlisis y Diseo de Sistemas - Clase 5 9

Ejemplo
Para el desarrollo de un portal educativo para la UNS. Distintos niveles de usuarios:
Alumnos. Docentes de ctedra. Secretarios Acadmicos de Departamentos. Rector

Anlisis y Diseo de Sistemas - Clase 5

10

Auditores
Personal de control de calidad. Verifican que se respeten estndares. Tener en cuenta:
Pueden aparecer en juego tarde. Revisan modelos. Se ocupan demasiado de las formas.

Personal de Operacin
Responsables de la red, sistemas de hardware,de backups. La comunicacin solo se requiere para coordinar tareas.

Anlisis y Diseo de Sistemas - Clase 5

11

Anlisis y Diseo de Sistemas - Clase 5

12

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.

El equipo de desarrollo
Analista: trabaja con el cliente desglosando en requerimientos separados lo que el cliente desea. Diseador: a partir de los requerimientos documentados, generan una descripcin de lo que el sistema debe hacer. Programadores: a partir del diseo escriben el cdigo. Testeadores: trabajan con el equipo de implementacin para verificar que el sistema se comporta de acuerdo a la especificacin.
Anlisis y Diseo de Sistemas - Clase 5 13

El equipo de desarrollo

Anlisis y Definicin de Requerimientos Diseo del Sistema Diseo de Programas Implementacin de programas Prueba de programa Prueba de Sistema

Analista

Diseador

Programador

Testeador

Entrega del Sistema

Capacitador

Mantenimiento Anlisis y Diseo de Sistemas - Clase 5

14

Requerimientos
Cada sistema basado en software tiene un propsito, usualmente expresado como algo que el sistema debe hacer. Un requerimiento es:
Una caracterstica del sistema. Una descripcin de algo que el sistema es capaz de hacer con el objeto de satisfacer el propsito de usuarios y cliente.
Anlisis y Diseo de Sistemas - Clase 5 15

Por qu son importantes los requerimientos? (lectura)


En 1994 el Standish Group hizo un estudio sobre 350 compaas y cerca de 8000 proyectos de software para averiguar cmo les estaba yendo. Los resultados son desencantadores. El 31% de los proyectos de software fueron cancelados antes de completarse. Es ms, en las grandes compaas, slo el 9% de los proyectos fue entregado en trmino y dentro del costo presupuestados; el 16% satisfizo esto, en pequeas empresas. Para comprender el por qu, Standish (1995) pidi a los participantes en el estudio que explicaran las causas de los proyectos fallidos. Los principales factores fueron:
Anlisis y Diseo de Sistemas - Clase 5 16

Por qu son importantes los requerimientos? (lectura) ...


Los principales factores fueron: Requerimientos incompletos (13,1%). Falta de compromiso del usuario (12,4%). Falta de recursos (10,6%). Expectativas no realistas (9,9%). Falta de soporte ejecutivo (9,3%). Requerimientos y especificaciones cambiantes (8,7%). Falta de planeamiento (8,1%). Fin de la necesidad del sistema (7,5%).
Anlisis y Diseo de Sistemas - Clase 5 17

Por qu son importantes los requerimientos? (lectura) ...


Notemos que cierta parte de las etapas de la extraccin, la definicin, y la gestin del proceso de los requerimientos participaron en casi todas estas causas. La falta de cuidado en la comprensin, la documentacin y la gestin de los requerimientos puede llevar a una gran cantidad de problemas: construir un sistema que resuelve el problema equivocado, que no funciona como se espera, o que presenta dificultades para que los usuarios puedan comprenderlo y utilizarlo. Es ms un proceso de requerimientos mediocre puede en realidad resultar muy caro.
Anlisis y Diseo de Sistemas - Clase 5 18

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.

Por qu son importantes los requerimientos? (lectura) ...


En el trabajo de Boehm y Papaccio se consigna que si cuesta 1$ localizar y subsanar un problema debido a requerimientos, durante la etapa de definicin; puede costar 5$ repararlo durante el diseo; 10$ durante la codificacin; 20$ durante la prueba unitaria; y hasta 200$ despus de la entrega del sistema. Conclusin: es rentable tomarse el tiempo que sea necesario para comprender el problema y su contexto, y obtener los requerimientos correctos desde el primer momento.
Ingeniera de Software Shari Pfleeger Pg. 157
Anlisis y Diseo de Sistemas - Clase 5 19

Requerimientos
La extraccin de requerimientos tiene lugar despus de que es aceptado el estudio de factibilidad. El objetivo primario de la extraccin de los requerimientos: la comprensin de lo que los clientes y usuarios esperan que haga el sistema. Los requerimientos deben ser documentados y revisados con el cliente para comprobar exactitud y completitud.
Anlisis y Diseo de Sistemas - Clase 5 20

El proceso de Extraccin de Requerimientos


Fases del proceso de extraccin de requerimientos
1.

El proceso de determinacin de los Requerimientos


Extraccin y Anlisis de Requerimientos Anlisis del Problema
Hemos capturado todo lo que el usuario necesita?

Trabajar con clientes y usuarios del sistema para extraer los requerimientos.
Incluye formular preguntas, hacer demostraciones, prototipos, etc.

Definicin y Especificacin de Requerimientos

Descripcin del Problema


Estamos usando las tcnicas o visiones correctas?

Prototipado y prueba
La funcin es factible?

Documentacin y Validacin
Hemos capturado todo lo que el usuario espera?

2.

Documentar los requerimientos.


Elegir descripciones matemticas o grficas.

3.

Verificar los requerimientos.


Validar si son completos, exactos y consistentes.
Anlisis y Diseo de Sistemas - Clase 5 21

Anlisis y Diseo de Sistemas - Clase 5

22

Extraccin de Requerimientos
Se trabaja con el cliente para extraer los requerimientos.
Formulando preguntas. Presenciando demostraciones de sistemas similares. Desarrollando prototipos.

Extraccin de requerimientos
La extraccin de requerimientos es crtica. Se debe analizar el problema antes de considerar cualquier solucin:
Desglosar el problema en piezas ms pequeas ms fciles de comprender.

Anlisis del problema:


Identificar las personas, los procesos y recursos involucrados. Documentar las relaciones entre ellos
Anlisis y Diseo de Sistemas - Clase 5 24

Se capturan los requerimientos en una base de datos o en documentos. Se validan los requerimientos.
Anlisis y Diseo de Sistemas - Clase 5 23

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.

Extraccin de requerimientos
Se interroga a las personas involucradas y se intenta determinar el lmite del sistema. Resulta til clasificar a los requerimientos en:
Requerimientos que deben ser absolutamente satisfechos (mandatorios). Requerimientos que son muy deseables pero no indispensables (deseables). Requerimientos que son posibles, pero que podran eliminarse (no prioritarios).
Anlisis y Diseo de Sistemas - Clase 5 25

Extraccin de Requerimientos
La clasificacin de requerimientos es til para:
Que los participantes comprendan lo que realmente se necesita. Cuando el proyecto est restringido en tiempo y recursos, se eliminan los requerimientos de la tercera categora, y los de la segunda se negocian
Recordar: los requerimientos apuntan al propsito del sistema, sin considerar cmo se va a implementar. Deben concentrarse en el cliente y en el problema, no sobre la implementacin y la solucin.
Anlisis y Diseo de Sistemas - Clase 5 26

Ejemplo
Supongamos una aplicacin para proveer servicios de correo electrnico:
Requerimientos mandatorios:
Facilidades para enviar y recibir mensajes, crear nuevos mensajes, responder mensajes, etc.

Requerimientos
Los requerimientos se agrupan en:
Requerimientos FUNCIONALES.
Identificar actores. Identificar necesidades funcionales. Revisar que no existan conflictos.
Mo d Ca elo de so s Us d e o

Requerimientos deseables:
Contar con un libreta de direcciones, facilidades filtrar mensajes, etc.

Requerimientos NO FUNCIONALES.
Identificar necesidades no funcionales. Revisar que no existan conflictos

Requerimientos no prioritarios:
Mostrar los mensajes con distinto tipo de letra segn el remitente.
Anlisis y Diseo de Sistemas - Clase 5 27

Anlisis y Diseo de Sistemas - Clase 5

28

Requerimientos FUNCIONALES
Un requerimiento funcional describe una interaccin entre el sistema y su ambiente. Para determinar los requerimientos funcionales se deciden cules son los estados aceptables para el sistema. Describen cmo debe comportarse el sistema ante determinados estmulos. Ejemplo:
para un sistema de alumnos: Cundo un alumno pierde su regulariadad? Cundo ocurre? Se generan reportes?

Requerimientos NO FUNCIONALES
Un requerimiento no funcional describe una restriccin sobre el sistema que limita nuestras elecciones en la construccin de una solucin al problema. Estas restricciones limitan la seleccin del lenguaje, plataforma, etc., sin embargo, la seleccin se realiza en la etapa de diseo. Ejemplos:
El sistema debe funcionar en el servidor..., el informe debe salir despus de 2 horas de..., las consultas en mostrador no deben demorar ms de...
29 Anlisis y Diseo de Sistemas - Clase 5 30

Anlisis y Diseo de Sistemas - Clase 5

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.

Propsito de los requerimientos


Los requerimientos sirven tres propsitos:
Permiten que los desarrolladores expliquen cmo han entendido lo que el cliente pretende del sistema. Indican a los diseadores qu funcionalidad y caractersticas va a tener el sistema resultante. Indican a los testeadores qu demostraciones llevar a cabo para que el cliente se convenza de que el sistema que se le entrega es lo que haba solicitado.
Anlisis y Diseo de Sistemas - Clase 5 31

Extraer requerimientos
Algunos consejos Revisar la situacin actual. Trabajar en el mbito del usuario para comprender el contexto, los problemas y las relaciones. Entrevistar a los usuarios actuales y potenciales. Realizar demostraciones de cmo podra funcionar el sistema. Investigar los documentos existentes. Realizar lluvia de ideas con los usuarios actuales y potenciales. Observar las estructuras y los patrones.
Anlisis y Diseo de Sistemas - Clase 5 32

Entrevistas Consejos Prcticos


Estudiar previamente el dominio del problema. Determinar el objetivo y contenido de la entrevista. Seleccionar a las personas que se va a entrevistar. Concertar la entrevista por anticipado. Indicar la duracin de la entrevista. Fijar roles en el equipo: secretario de actas, controlador de tiempos, moderador Ser puntual Respetar tiempos.
Anlisis y Diseo de Sistemas - Clase 5 33

Consejos prcticos ...


Durante la entrevista:
Mantener la entrevista en foco. Al finalizar, leer las conclusiones. Consensuar prximos pasos. Solicitar ejemplos de documentos fuentes, salidas del sistema, pantallas.

Anlisis y Diseo de Sistemas - Clase 5

34

Documentos de requerimientos
La extraccin y el anlisis del problema sirve a dos propsitos diferentes, pero relacionados:
La extraccin permite escribir un documento de definicin de requerimientos (trminos que el cliente entiende). La extraccin y el anlisis permiten escribir la especificacin de requerimientos (trminos tcnicos, que habilita el diseo del sistema).

Anlisis de requerimientos
Revisar Los requerimientos son correctos?.
Cliente y analista deben revisarlos.

Los requerimientos son consistentes?.


No poseen inconsistencia ni ambigedades.

Los requerimientos son completos?.


Todos los estados, cambios de estados, entradas, productos y restricciones estn descriptos.

A veces un nico documento sirve para ambos propsitos.


Anlisis y Diseo de Sistemas - Clase 5 35

Anlisis y Diseo de Sistemas - Clase 5

36

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.

Anlisis de requerimientos
Revisar Los requerimientos son realistas?
Es posible cumplir con los requerimientos.

Temas de la clase de hoy


Usuarios del Sistema.
Clasificacin.

Requerimientos
Extraccin de requerimientos. Fases. Objetivos. Requerimientos Funcionales y No funcionales. Documentacin de requerimientos. Anlisis de Requerimientos.

Describe cada requerimiento algo que es necesario para el usuario?


Existen requerimientos que se puedan eliminar

Bibliografa.
Anlisis Estructurado Moderno Edward Yourdon. Captulo 3. Ingeniera de Software -Teora y prctica - Shari L. Pfleeger. Captulos 1 y 4.

Los requerimientos son verificables?


Se necesitan pruebas que los demuestren

Anlisis y Diseo de Sistemas - Clase 5

37

Anlisis y Diseo de Sistemas - Clase 5

38

Apndice
Tipos de Requerimientos Los documentos de definicin y especificacin de requerimientos describen cmo el sistema interacta con su ambiente, incluyendo los siguientes aspectos:
Ambiente fsico, Interfaces, Usuarios y factores humanos, Funcionalidad, Documentacin, Datos, Recursos, Seguridad, Aseguramiento de la calidad.

Ambiente fsico e Interfaces


Ambiente Fsico
Dnde est el equipamiento que necesita el sistema para funcionar? Existe una localizacin o varias? Existen restricciones ambientales: temperatura, humedad, o interferencia magntica?

Interfaces
La entrada proviene de uno o ms sistemas? La salida va a uno o ms sistemas? Existe una manera prescripta en que deben formatearse los datos? Existe un medio prescripto que los datos deban utilizar?
39 Anlisis y Diseo de Sistemas - Clase 5 40

Anlisis y Diseo de Sistemas - Clase 5

Usuarios y factores humanos


Quin usar el sistema? Habr varios tipos de usuarios? Cul es el nivel de habilidad de cada tipo de usuario? Qu clase de entrenamiento requerir cada tipo de usuario? Cun fcil le ser a un usuario comprender y utilizar el sistema? Cun difcil le resultar a un usuario hacer un uso indebido del sistema?
Anlisis y Diseo de Sistemas - Clase 5 41

Funcionalidad y Documentacin
Funcionalidad
Qu har el sistema? Cundo lo har? Existen varios modos de operacin? Cmo y cundo se puede cambiar o mejorar un sistema? Existen restricciones de la velocidad de ejecucin, tiempo de respuesta o rendimiento?

Documentacin
Cunta documentacin se requiere? Debe estar en lnea, en papel, o en ambos? A qu audiencia est orientado cada tipo de informacin?
Anlisis y Diseo de Sistemas - Clase 5 42

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.

Datos
Cul ser el formato de los datos tanto para entrada como para salida? Cun a menudo sern recibidos o enviados? Cun exactos deben ser? Con qu grado de precisin deben hacerse los clculos? Cuntos datos fluyen a travs del sistema? Debe retenerse algn dato por algn perodo de tiempo?
Anlisis y Diseo de Sistemas - Clase 5 43

Recursos
Qu recursos materiales, personales o de otro tipo se requieren para construir, utilizar y mantener el sistema? Qu habilidades deben tener los desarrolladores? Cunto espacio fsico ser ocupado por el sistema? Cules son los requerimientos de energa, calefaccin o acondicionamiento de aire? Existe un cronograma prescripto para el desarrollo? Existe un lmite sobre la cantidad de dinero a gastar en el desarrollo o en hardware o en software?
Anlisis y Diseo de Sistemas - Clase 5 44

Seguridad
Debe controlarse el acceso al sistema o a la informacin? Cmo se podrn aislar los datos de un usuario de los de otros? Cmo podrn aislarse los programas de usuario de los otros programas y del sistema operativo? Con qu frecuencia deben hacerse las copias de respaldo? Dnde se almacenarn las copias de respaldo? Se deben tomar precauciones contra el fuego, el dao provocado por agua, o el robo?
Anlisis y Diseo de Sistemas - Clase 5 45

Aseguramiento de la calidad
Cules son los requerimientos para la confiabilidad, disponibilidad, facilidad de mantenimiento, seguridad, y los restantes atributos de calidad? Cmo deben demostrarse las caractersticas del sistema a terceros? Debe el sistema detectar y aislar defectos? Cul es el promedio de tiempo prescripto entre fallas? Cmo puede el sistema incorporar los cambios al diseo? El mantenimiento slo corregir errores o incluir evolucin?
Anlisis y Diseo de Sistemas - Clase 5 46

Aseguramiento de la calidad ...


Existe un tiempo mximo permitido para la recuperacin del sistema despus de una falla? Qu medidas de eficiencia se aplicarn al uso de recursos y al tiempo de respuesta? Cun fcil debe ser de mover el sistema de una ubicacin a otra o de un tipo de computadora a otra?

Anlisis y Diseo de Sistemas - Clase 5

47

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

You might also like