Anda di halaman 1dari 28

Sesin 312

Tcnicas de Auditora Aplicadas a la Ingeniera de Software


Pablo Jos Caneo, CISA
Jefe de Proyectos, Auditor Computacional

Ultramar Agencia Martima Ltda.

Ingeniera de Requerimientos
El proceso de recopilar, analizar y verificar las necesidades del cliente para un sistema, es llamado Ingeniera de Requerimientos. La meta es entregar una especificacin de requisitos de software correcta y completa.

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 ambiguedades, en forma consistente y compacta, el comportamiento del sistema.

Ingeniera de Requerimientos
De esta manera, se pretende minimizar los problemas relacionados con el desarrollo de sistemas. Estudios realizados muestran que ms del 53% de los proyectos de software fracasan por no realizar un estudio previo de requisitos. Otros factores como falta de participacin del usuario, requerimientos incompletos y el cambio a los requerimientos, tambin ocupan sitiales altos en los motivos de fracasos.

Ingeniera de Requerimientos
Que son los requerimientos?
Una condicin o necesidad de un usuario para resolver un problema o alcanzar un objetivo Una condicin o capacidad que debe estar presente en un sistema o componentes de sistema para satisfacer un contrato, estndar, especificacin u otro documento formal.

Ingeniera de Requerimientos
Los requerimientos pueden dividirse en requerimientos funcionales y requerimientos no funcionales Requerimientos funcionales definen :
Las funciones que el sistema ser capaz de hacer Las transformaciones que el sistema realiza sobre las entradas para producir las salidas.

Requerimientos no funcionales definen :


Las caractersticas que pueden limitar el sistema, como por ejemplo : El rendimiento (en tiempo y espacio) Interfaces de usuario Fiabilidad (robustez del sistema, disponibilidad de equipo) Mantenimiento, seguridad, portabilidad, estndares, etc.

Caractersticas de los Requerimientos

Necesario : Un requerimiento es necesario si su omisin provoca una deficiencia en el sistema a construir, y adems su capacidad, caractersticas fsicas o factor de calidad no pueden ser reemplazados por otras capacidades del producto o proceso. Conciso : Un requerimiento es conciso si es fcil de leer y entender. Su redaccin debe ser simple y clara para aquellos que vayan a consultarlo en un futuro. Completo : Un requerimiento esta completo si no necesita ampliar detalles en su redaccin, es decir, si se proporciona la informacin suficiente para su comprensin. Consistente : Un requerimiento es consistente si no es contradictorio con otro requerimiento.

Caractersticas de los Requerimientos

No ambiguo : Un requerimiento no es ambiguo cuando tiene una sola interpretacin. El lenguaje usado en su definicin, no debe causar confusiones al lector. Verificable : Un requerimiento es verificable cuando puede ser cuantificado de manera que permita hacer uso de los siguientes mtodos de verificacin :
Inspeccin Anlisis Demostracin Pruebas

Dificultades para definir los Requerimientos

Los requerimientos no son obvios y vienen de muchas fuentes Son difciles de expresar en palabras (el lenguaje es ambiguo) Existen muchos tipos de requerimientos y diferentes niveles de detalle La cantidad de requerimientos es un proyecto pueden ser difciles de manejar Nunca son iguales, algunos son ms difciles, ms riesgosos, ms importantes o ms estables que otros Los requerimientos estn relacionados unos con otros, y a su vez se relacionan con otras partes del proceso Cada requerimiento tiene propiedades nicas y abarcan reas funcionales especficas Un requerimiento puede cambiar a lo largo del ciclo de desarrollo Son difciles de cuantificar, ya que cada conjunto de requerimientos es particular para cada proyecto.

Beneficios de la IR

Los principales beneficios que se obtienen de la IR son :


Permite gestionar las necesidades del proyecto en forma estructurada Mejora la capacidad de predecir cronogramas de proyectos, as como sus resultados Disminuye los costos y retrasos del proyecto Mejora la calidad del software Mejora la comunicacin entre equipos Evita rechazos de usuarios finales.

Puntos a considerar en el proceso de IR

Objetivos del Negocio y ambiente de trabajo


Esta informacin proporciona la base para especificar el sistema que ser construdo

Punto de vista de los clientes


Cada grupo de clientes tiene necesidades diferentes, y diferentes requerimientos tienen diferentes grados de importancia para ellos. A veces los clientes no son los mismos usuarios trayendo como consecuencia que los clientes soliciten procesos que causan conflictos con los solicitados por los usuarios.

Problemas por el tamao y complejidad


Barreras de comunicacin Evolucin e integracin del sistema Documentacin de Requerimientos.

Actividades de la IR

Anlisis del problema Evaluacin y Negociacin Especificacin Validacin Evolucin

Anlisis del Problema

Objetivo : Entender las verdaderas necesidades del negocio. Comprender el problema que se est resolviendo
Mltiples soluciones aplican para el mismo problema, sin embargo, slo una de ellas ser la ms factible. Las soluciones iniciales deben ser definidas tomando en cuenta tanto la perspectiva tcnica como la del negocio.

Construir un vocabulario comn


La creacin de un glosario es sumamente beneficiosa ya que reduce los trminos ambiguos desde el principio, ahorra tiempo, asegura que todos los participantes de una reunin entiendan lo mismo.

Anlisis del Problema

Identificar los afectados por el sistema


Identificar a todos los afectados, evita que existan sorpresas a medida que avanza el proyecto. Las necesidades de cada afectado, son discutidas y sometidas a debate durante la IR, aunque esto no garantiza que vaya a estar disponible toda la informacin necesaria para especificar un sistema adecuado.
Quin usar el sistema que se va a construir? Quin mercadear, vender yo distribuir el sistema? Quin se beneficiar por el retorno de inversin del sistema?

Definir los lmites y restricciones del sistema


Debemos saber :
Lo que se est construyendo Lo que no se est construyendo Entender la estrategia del producto a corto y largo plazo Debe determinarse cualquier restriccin ambiental, presupuestaria, de tiempo, tcnica y de factibilidad que limite el sistema que se va a construir.

Evaluacin y Negociacin de los Requerimientos

Objetivo : Limitar las expectativas del cliente, tomando como referencia los niveles de abtraccin y descomposicin de cada problema presentado. Descubir problemas potenciales
Se identifican aquellos requerimientos ambiguos, incompletos, inconsistentes, etc.

Clasificar los requerimientos


Se identifica la importancia que tiene un requerimiento en trminos de implementacin Para ello se utiliza la prioridad y debe ser usada para establecer la secuencia en que ocurrirn las actividades de diseo y prueba de cada requisito. La prioridad de cada requerimiento depender de las necesidades que tenga el negocio

Evaluacin y Negociacin de los Requerimientos

Evaluar Factibilidades y Riesgos


Factibilidades tcnicas Factibilidades operacionales Factibilidades econmicas

Negociacin
Para que los requerimientos puedan ser negociados de manera efectiva, hay una serie de consideraciones que deben tenerse en cuenta, entre las principales tenemos :
Documentar todos los requerimientos a un nivel de detalle apropiado Mostrar todos los requerimientos a los involucrados en el sistema Analizar el impacto que causen los cambios antes de aceptarlos Establecer las relaciones entre requerimientos que indiquen dependencias Negociar con flexibilidad para que exista un beneficio mutuo Enfocarse en intereses y no en posiciones

Especificacin de Requerimientos de Software


Req.No Funcionales
Necesidades E Alcance Req.Funcionales

Documento Especificacin de Requerimientos de Software

Pruebas

Controles Clientes Usuarios Finales Analistas Personal de Pruebas Personal de implementacin

Producto

Validacin de Requerimientos

Es la actividad de la IR, que permite demostrar que los requerimientos definidos en el sistema son los que realmente quiere el cliente, adems revisa que no se haya omitido ninguno, que no sean ambiguos, inconsistentes o redundantes. Durante la actividad de validacin se deben hacer preguntas en base a cada una de las caractersticas que se deseen revisar.
Estn incluidas todas las funciones requeridas por el cliente? (completa) Existen conflictos en los requerimientos? (consistencia) Tiene alguno de los requerimientos ms de una interpretacin? (no ambigua) Est cada requerimiento claramente representado? (entendible) Pueden los requerimientos ser implementados con la tecnologa disponible? (factible)

Validacin de Requerimientos

(continuacin)
Esta la especificacin de requerimientos escrita en un lenguaje apropiado? (clara) Existe facilidad para hacer cambios en los requerimientos? (modificable) Esta claramente definido el origen de cada requisito? (rastreable) Pueden los requerimientos ser sometidos a medidas cuantitativas? (verificable)

Evolucin de Requerimientos

Es un proceso externo que ocurre a lo largo del ciclo de vida del proyecto Las razones ms frecuentes por las que cambian los requerimientos son :
Al analizar el problema no se hicieron las preguntas correctas a las personas correctas Cambio el problema que se estaba resolviendo Los usuarios cambiaron su forma de pensar o sus percepciones Cambio el ambiente de negocio Cambio el mercado en el cul se desenvuelve el negocio Cambio de procedimientos o forma de trabajo

Definicin de requerimientos.

polticas

de

control

de

versiones

de

Tcnicas utilizadas en la IR

Entrevistas y cuestionarios
Lluvia de ideas

Proceso de anlisis jerrquico


Administracin de requerimientos con Casos de Uso

Aplicacin Metodolgica

Conceptos fundamentales
Asegurar, en forma explicita que se obtuvo todo el conocimiento que poseen los expertos del proceso productivo Documentar el conocimiento a travs de los medios que permitan la comprensin de todos los involucrados Lo ms relevante es que el proceso de conocimiento considere todas las variables, reglas de negocio, procesos, etc.

Acuerdo Metodolgico

A pesar de ser considerada una tcnica de Anlisis Orientado a los Objetos, es importante destacar que los casos de uso poco tienen que ver con entender a un sistema como un conjunto de objetos que interactan, que es la premisa bsica del anlisis orientado a objetos clsico. En este sentido, el xito de los casos de uso no hace ms que dar la razn al anlisis estructurado, que propone que la mejor forma de empezar a entender un sistema es a partir de los servicios o funciones que ofrece a su entorno, independiente de los objetos que interactan dentro del sistema para proveerlos.

Acuerdo Metodolgico

A partir del acuerdo anterior, la propuesta es la siguiente :


La forma ms adecuada de realizar la Captura de Requerimientos es a travs de un proceso combinado de Anlisis Estructurado y bsqueda de Casos de Uso a travs de entrevistas.

Algunos conceptos necesarios Proceso :


Normas Reglas

Entradas

Conjunto de tareas y operaciones que estn diseados para cumplir una o varias funciones especficas, realizadas en forma secuencial o simultnea para lograr un objetivo

Salidas

Recursos

Usuarios

Procedimiento Formal

Anlisis de Requerimientos Obtener MacroFunciones


El mtodo se basa en un conocimiento previo a nivel general de las Macro Funciones que debe cumplir el sistema. Como su nombre lo indica, consiste en separar el sistema en grandes bloques que posean algo en comn. Las MacroFunciones estn formadas por Procesos y estos a su vez por Actividades. Son en la descripcin de estas actividades donde se utilizan los casos de uso.

Procedimiento Formal

Anlisis Detallado
Establecer los procesos que considera la MacroFuncin. Establecer el conocimiento de cada proceso Identificar las entidades que participan en cada proceso Especificar actividades o casos de uso de cada proceso.

Para mayor informacin


Pablo Jos Caneo, CISA
Jefe de Proyectos, Auditor Computacional

Ultramar Agencia Martima Ltda. Pcaneo@ultramar.cl

Thank you!

Anda mungkin juga menyukai