Diseno de Sistemas - Unidad I - Especificacion Requerimientos Software (1)

55
Diseño de Sistemas Unidad I – Especificación de los Requerimientos del Software

Transcript of Diseno de Sistemas - Unidad I - Especificacion Requerimientos Software (1)

Diseño de SistemasUnidad I – Especificación de los Requerimientos del Software

Objetivos

•Definir la Ingeniería de Software y explicar su importancia.

•Discutir los conceptos de producto de software y proceso de software.

•Explicar la importancia de la visibilidad delos procesos.

Ingeniería de Software

•Las economías de los países desarrollados dependen en gran parte del software.

•Mas y más sistemas son actualmente controlados por software.

•La Ingeniería de Software concierne a teorías, métodos y herramientas para el desarrollo profesional de software.

•El gasto en La Ingeniería de Software, representa un alto porcentaje del PIB de los países desarrollados.

Ingenieria de Software: Conceptos Basicos•Qué es la Ingenieria de Software ?•Cuál es la diferencia entre un

programador y un Ingeniero de Software?•Cuál es la diferencia entre un Ingeniero

de Software y un Ingeniero de Sistemas?•Cuál es la diferencia entre la Ingenieria

de Software y la Computacion ?•Qué es el software ?•Qué es un proceso de software ?•Qué es un modelo de software?

Que es la Ingeniería de Software

•La Ingeniería de Software es una disciplina de la Ingeniería que concierne a todos los aspectos de la producción de software

•Los Ingenieros de Software adoptan un enfoque sistemático para llevar a cabo su trabajo y utilizan las herramientas y técnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos disponibles.

Diferencia entre Ingenieria de Software y Computacion

•La computación concierne a la teoría y fundamentos de cualquier sistema de computo, sea de hardware o de software.

•La Ingeniería de software concierne solo al desarollo de sistemas o productos de software

•La Ingeniería de Sofware todavía esta lejos de ser una ciencia como los son la Química, la Ingeniería Civil o la Electrónica.

Ingenieria de Sistemas e Ingenieria de Software

•La Ingeniería de Sistemas concierne a todos los aspectos del desarrollo de sistemas basados en cómputo, que incluyen hardware, software y el proceso de Ingeniería. La Ingeniería de Software es solo parte de este proceso.

Que es el Software ?

Programas de cómputo y su documentación asociada

•Sistemas o Productos de software grandes y complejos.

•Qué contiene el software ?•Qué tipos de software hay ?•Cuál es el costo del software ?•Cómo se desarrolla el software ?•Cómo saber si un software tiene calidad ?

Productos de Software

•Productos genéricos. Productos que son producidos por una organización para ser

vendidos al mercado.

•Productos hechos a medida. Sistemas que son desarrollados bajo pedido a un desarrollador

específico.

•La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida.

Características de los Productos de Software

•Mantenibles. Debe ser posible que el software evolucione y que siga

cumpliendo con sus especificaciones.

•Confiabilidad. El software no debe causar danos físicos o económicos en el

caso de fallos.

•Eficiencia. El software no debe desperdiciar los recursos del sistema.

•Utilización adecuada. El software debe contar con una interfaz de usuario adecuada

y su documentación.

Importancia de las características del producto

•La importancia relativa de las características depende en el tipo de producto y en el ambiente en el que será utilizado.

•En algunos casos, algunos atributos pueden dominar. En sistemas de seguridad críticos de tiempo real, los atributos

clave pueden ser la confiabilidad y la eficiencia.

•Los costos tienden a crecer exponencialmente si son requeridos altos niveles de alguna característica.

Que contiene el software ?

•El software contiene:▫Líneas de código de algún lenguaje ▫Instrucciones de computadora.▫Descripción de las estructuras de datos.▫Algoritmos.▫Procedimientos y funciones.▫Componentes de software.

Que tipos de software hay ?• Por su estructura:

▫ Funcionales.▫ Orientados a objetos.▫ Orientados a listas.▫ Orientados a componentes.

• Por su funcion:▫ Programas o Sistemas de Usuario▫ Interfaces Hombre-Maquina.▫ Herramientas de Software.▫ Librerías.▫ Sistemas de uso genérico: Compiladores, S.O’s, Procesadores

de Texto, etc.▫ Bases de Datos.▫ Sistemas basados en Web.

Que tipos de software hay ?

•Por su plataforma de computo:▫ Sistemas embebidos.▫ Sistemas de cómputo distribuido.▫ Sistemas de cómputo paralelo.▫ Sistemas de tiempo real.▫ Sistemas basados en Chips.▫ Wearable computing systems.▫ Sistemas de cómputo ubiquos.

Costos del Software

•Los costos del software a menudo dominan al costo del sistema. El costo del software en un PC es a menudo más caro que la PC.

•Cuesta más mantener el software que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica.

•La Ingeniería de Software concierne a un desarrollo efectivo en cuanto a costes del software.

El Proceso de Software

•Conjunto estructurado de actividades requeridas para desarrollar un sistema de software. Especificación- que debe hacer el software y cuales son sus

especificaciones de desarrollo. Desarrollo – producción del sistema de software. Validación – verificar que el software hace lo que el cliente pide. Evolución – cambiar/adaptar el software a las demandas.

•Las actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse.

•Debe estar explícitamente modelado si va a ser bien administrado.

Proceso Genérico de Software

•Especificación - Establecer los requerimientos y restricciones del sistema

•Diseño - Producir un modelo en papel del sistema•Manufactura - Construir el sistema•Prueba - Verificar que el sistema cumpla con las

especificaciones requeridas• Instalación - Entregar el sistema al usuario y asegurar

su operatividad•Mantenimiento - Reparar fallos en el sistema cundo

sea descubiertos

Características del proceso

•Entendible Se encuentra el proceso bien definido y es entendible ?.

•Visible El proceso es visible al exterior ?.

•Soportable Puede el proceso ser soportado por herramientas CASE ?.

•Aceptable El proceso es aceptado por aquellos involucrados en el ?.

Características del proceso

•Confiable Los errores del proceso son descubiertos antes de que se

conviertan en errores del producto ?.•Robusto

Puede continuar el proceso a pesar de problemas inesperados ?.

•Mantenible Puede el proceso evolucionar para cumplir con los objetivos

organizacionales ?.

•Rapidez Que tan rápido puede producirse el sistema ?.

Problemas en el Modelo del Proceso

•Normalmente, las especificaciones son incompletas o anómalas

•No existe una distinción precisa entre la especificación, el diseño y la manufactura

•Solo hasta que el sistema se ha producido se puede probar

•El software no se puede remplazar siempre durante el mantenimiento

Diseño de SistemasRequerimientos del Software

Determinación de Requerimientos

Tabla de contenidos

1.Conceptosa) Concepto.b) Características, c) Tipos de requerimientos.

2. Proceso de Determinación de requerimientos.a) Concepto.b) Fases.c) Características.

3.Metodología para la Determinación de requerimientos.

Determinación de Requerimientos. Proceso de R.1. Conceptos. Concepto

• Requisito/Requerimiento. Condición, Característica o Restricción que debe tener o cumplir un sistema o componente de un sistema para satisfacer un contrato, norma, especificación u otro documento formalmente impuesto.

• Ingeniería de Requerimientos. Disciplina de la ISW que se encarga de definir los requerimientos del sistema. Fases:

1. Determinación de requerimientos.

2. Análisis de requerimientos.

Determinación de Requerimientos

1. Conceptos. Características.Características que han de reunir los requisitos para ser de alta

calidad.

• Correctos, sin errores.

• Consistentes.

• No ambiguos.

• Son completos:1. Externamente completa si contiene todas las propiedades

deseadas por el cliente.2. Internamente completa si no existen referencias no definidas.

Determinación de Requerimientos

1. Conceptos. Características.

• Son realistas. Puede el sistema hacer lo que el cliente desea.

• Los Requerimientos Describen algo necesario para el cliente.

• Verificables. Un requisito es verificable si existe algún proceso finito de coste razonable que pueda probar que el producto software cumple con el requisito.

• Son rastreables. Trazables, el origen de cada requisito está claro y se posibilita la referencia de cada uno de estos requisitos en desarrollos futuros o incrementos de la documentación.

Determinación de Requerimientos

1. Conceptos. Tipos de Requerimientos.

1.R. Funcionales. Una función es algo que hará el sistema. Describen una interacción entre el sistema y su ambiente.

2.R. No funcionales. Describen restricciones que limitan las opciones de solucionar el problema. Restricciones cuantitativas o precisión.

3.Seudorequerimientos. R. impuestos por el cliente que restringen la implementación del sistema.

Determinación de Requerimientos1. Conceptos. Concepto

Determinación Requerimientos

DocumentaciónObtención

Cliente/UsuarioDesarrolladores

EspecificaciónSistema

Validación

Determinación de Requerimientos

2. Determinación de Requerimientos. Concepto y Fases.

Proceso que tiene como objetivo capturar, documentar y condiciones o características que debe cumplir un sistema dado: La especificación del sistema.

1.Obtención de requerimientos. Captura de requerimientos con el objetivo de definir que es el sistema.

2.Documentación de requerimientos. Los requisitos han de reflejarse en un documento como registro del proceso de captura con el objetivo de fijar una base para clientes y desarrolladores.

3.Validación. Es el proceso por el cual se determina si la especificación es consistente es decir si los requerimientos satisfarán las necesidades del cliente.

Determinación de Requerimientos2. Determinación de Requerimientos. Participantes en el proceso.

• Supervisores del contrato, sugieren hitos de control y cronogramas que disciplinan el desarrollo del sistema.

• Clientes y usuarios, deben comprender y trasmitir adecuadamente los requerimientos, para del sistema.

• Los gerentes de negocios, para calibrar el impacto de construir y utilizar el sistema.

• Los diseñadores que usarán los requerimientos como base del desarrollo.

• Los verificadores encargados de las sesiones de prueba destinadas a asegurar que el sistema cumple los requerimientos.

Determinación de Requerimientos

2. Determinación de Requerimientos. Captura R.1. Captura de Requerimientos.

1. Primera tarea2. Fase critica. Colaboración de grupos heterogéneos.

Captura deRequer.

ActividadesObtención

Requer.

Identifc. Actores

DesarrolladorCliente/Usuario

Identifc. Funcionalidad

Determinación de Requerimientos

2. Determinación de Requerimientos. Captura R.Objetivos de la captura de requerimientos (OO):

• Identificación de actores. Entidades externas que interactúan con el sistema. Como abstracción de papeles.

• Identificar la funcionalidad a la que tiene acceso cada actor.

▫ Identificación de escenarios. Descripción concreta, enfocada e informal de una sola característica del sistema desde el punto de vista de un solo actor.

▫ Descripción de casos de uso.

Determinación de Requerimientos

2. Determinación de Requerimientos. Captura R.Administración de la Captura de requerimientos:

• Fuentes:▫ Documentación. ▫ Personas con puntos de vista necesarios.

• Técnicas▫ Cuestionarios▫ Entrevistas▫ Talleres▫ Prototipos

Determinación de Requerimientos2. Determinación de Requerimientos. Captura R.

Fuentes.• Análisis de Documentación.

Es imprescindible cuando:▫ Introducción del sistema en infraestructuras existentes.▫ Suplemento de funcionalidad ya disponible.

Documentación a analizar:▫ Sobre las prácticas existentes de los usuarios.▫ Sobre procedimientos de soporte.▫ Sobre componentes técnicos.▫ Sobre el modelo lógico▫ Sobre los modelos de procesos y datos▫ Sobre requisitos existente

Determinación de Requerimientos2. Determinación de Requerimientos. Captura R.

Fuentes.• Personas. Identificar personas con puntos de vista precisos para

representar el conjunto de los requerimientos:

1.Dirección general2.Usuarios finales y dirección3.Clientes4.Proveedores5.El equipo operativo6.El equipo de mantenimiento7.Asesoría jurídica u otros expertos.

• Importante contar con más de una persona por cada punto de vista.

Determinación de Requerimientos

2. Determinación de Requerimientos. Captura R.Técnicas

1.Elaboración de cuestionarios.

1. Recomendable para grandes poblaciones (+30 personas).2. Recomendable como base para posterior entrevista

personal.3. Crear un marco para el análisis de resultados. (visión clara

de cómo utilizar la información)4. Comprobar que existe información suficiente en el personal

“cuestionado”.5. Garantizar que es comprensible (no utiliza argot técnico).6. Probarlo antes de comenzar7. Verificar la comprensión.

Determinación de Requerimientos

2. Determinación de Requerimientos. Captura R.Tipos de cuestionarios:

• Para recopilar datos estructurados. 2 Modalidades:1. Mediante Lista de cuestiones concretas y de respuesta cerrada.

¿Cuánto lleva operando el actual sistema de facturación (en años)?.

2. Mediante índices. ¿Importancia de estos factores para adquirir un OS?

Baja Alta

Velocidad 1 2 3 4 5

Usabilidad 1 2 3 4 5

Flexibilidad 1 2 3 4 5

Determinación de Requerimientos2. Determinación de Requerimientos. Captura R.Tipos de cuestionarios:

• Cuestionarios para recoger información abierta.

• Se formula una pregunta abierta.

▫ ¿Cuál son para usted los factores principales en la selección de proveedor de servicios de Internet”

• Útiles para obtener una información inicial sobre el área.

• Importante evitar sesgos.

Determinación de Requerimientos2. Determinación de Requerimientos. Técnicas captura.Entrevistas

• Objetivo: Obtener toda la información posible de la visión que el entrevistado tiene de los requisitos.

• Depende de la habilidad del entrevistador para crear un clima de confianza.

• Resulta útil planificar las entrevistas para evitar sesgos (evitar que un grupo incline a un lado el proceso).▫ Preparar un marco para la entrevista (mediante un cuestionario)▫ Confirmar detalles del entrevistado▫ Establecer la finalidad de la entrevista con el entrevistado▫ Organizar una lugar adecuado.▫ Confirmar los detalles por escrito.

Determinación de Requerimientos2. Determinación de Requerimientos. Técnicas captura.Entrevistas:

• Es aconsejable 2 entrevistadores (una conduce la entrevista el otro supervisa la interacción y toma notas):▫ Mejora la gestión del tiempo.▫ Beneficia la supervisión.

• Es aconsejable emplear tanto preguntas abiertas como cerradas:▫ Abiertas: Suelen comenzar por “qué”, por qué” y “como” y exigen respuesta detallada

por el entrevistado.▫ Cerradas: Aquellas con un Intervalo específico de respuesta.

• El entrevistador debe centrar la entrevista cuando esta se desvía.

• El entrevistador debe evitar emitir juicios de valor para no influir.

Determinación de Requerimientos

2. Determinación de Requerimientos. Técnicas captura.Entrevistas:

• Análisis de resultados de la entrevista:▫ Si se ha utilizado como marco un cuestionario, este se utilizará como

contexto e el análisis.▫ Si la entrevista no es estructurada, el resultado se detallará como

informe.

Nombre entrevistado.Puesto de trabajo y breve descripción.Punto de vista que representa.Fecha, hora y lugar de la entrevistaResumen de puntos principalesDoc´s. de referenciaOtros contactos.

Esquema de resumen de entrevista

Determinación de Requerimientos2. Determinación de Requerimientos. Técnicas captura.Talleres:

• Reunión de partes interesadas.

• Sesiones intensivas y estructuradas concentradas en uno o dos días.

• Es preciso una importante preparación previa:▫ Definir con los participantes la finalidad del taller.▫ Facilitarles información histórica.

• El taller ha de ser dirigido por un experto para:▫ Garantizar que todo los participantes aportan sus puntos de vista.▫ No se desvían del propósito del taller.

Determinación de Requerimientos

2. Determinación de Requerimientos. Técnicas captura.

Talleres:

• Los requisitos capturados en el taller se registran junto con todas las cuestiones y acciones resultantes.

• Se genera un informe para documentar los resultados y base de la especificación de requisitos.

• Tiene la ventaja de reunir a los participantes pudiendo debatirse las cuestiones más controvertidas y resolver así requisitos aparentemente divergentes satisfaciendo a las partes.

Determinación de Requerimientos2. Determinación de Requerimientos. Técnicas captura.Modelado de proceso:

• Método de análisis vertical (up-dow) para establecer la composición funcional del area para la cual se propone el sistema.

ProcesoFunciones

Funciones

Funciones

Actividades

Actividades

ActividadesActividades

Actividades

Determinación de Requerimientos

2. Determinación de Requerimientos. Técnicas captura.Modelado de proceso:

• Se descompone el sistema en procesos “atómicos” que no admitan mas divisiones.

• La derivación de procesos se realizará mediante técnicas de captura de requisitos.

• Los usuarios revisarán el modelo en cada desagregación.▫ Permite correcciones antes de seguir con una mayor

elaboración▫ Permite identificar procesos de bajo nivel duplicados,

permitiendo una simplificación del modelo.

Determinación de Requerimientos2. Determinación de Requerimientos. Técnicas captura.Prototipado:

• Un prototipo es un modelo de sistema eventual que se puede utilizar para demostrar las características de lo que el sistema puede ofrecer. 2 métodos: P. desechable, P. evolutivo.

• Los prototipos pueden usarse para:

▫ Demostrar la viabilidad del sistema. Se implanta parte del sistema para: Comprobar el comportamiento funcional. Análisis de rendimiento.

▫ Aclarar los requisitos del usuario.

Determinación de Requerimientos2. Determinación de Requerimientos. Documentación.

• Los requisitos han de reflejarse en un documento como registro del proceso de captura.

• El objetivo de la documentación es servir de base para la futura operativa del proyecto tanto para clientes como para desarrolladores.

• Por ello han de escribirse de modo que sean significativos para ambos.

• Así se generan dos documentos:

▫ Doc. De requisistos del usuario/Definición de requerimientos▫ Doc. De requisitos del sistema/Especificación de requerimientos.

Determinación de Requerimientos2. Determinación de Requerimientos. Documentación.Doc. De Requisitos del Usuario/determinación de requerimientos.

• Listado completo de las cosas que el cliente espera que haga el sistema propuesto para todas las categorías de usuarios (incluido el soporte operativo).

• Redactado de forma que el cliente pueda entenderlo. (con claridad, conciso y congruente)

• Es generado entre cliente y desarrollador como documento de compromiso.

• Si el Documento recoge requisitos no funcionales se documentarán en términos mensurables.

Determinación de Requerimientos2. Determinación de Requerimientos. Documentación.Doc. De Requisitos del Usuario/determinación de requerimientos.

Elementos de la documentación:

• Se perfila el propósito general del sistema con referencias a otros sistemas relacionados y un diccionario de términos y abreviaturas que puedan ser útiles.

• Descripción de antecedentes y objetivos del desarrollo.

• Si el cliente tiene un nuevo enfoque para describir el problema se recoge el enfoque y sus restricciones o suposiciones si las hay.

• Se detallan se definen las características del sistema: Limites del sistema, interfaces, lista clases y características, funciones y procesos con sus entradas y salidas y finalmente requerimientos específicos de rendimiento.

• Requerimientos sobre soporte, seguridad y privacidad y cualquier restricción.

Determinación de Requerimientos2. Determinación de Requerimientos.

Documentación.Doc. De Requisitos del Usuario/determinación de

requerimientos.

Introducción

1. Alcance. Área de aplicación de los requisitos.

2. Definiciones.

3. Historial.

4. Descripción de alto nivel. Esquema del problema.

5. RF (Forma atómica y con identificador)

6. RNF (Forma atómica y con identificador y vinculados a los funcionales que soportan)

7. Restricciones específicas

E. Requisitos del Usuario

Determinación de Requerimientos2. Determinación de Requerimientos. Documentación.Doc. De Requisitos del Sistema/especificación de requerimientos.

• Se desarrolla a partir del documento de requisitos del usuario.

• Cubre el mismo área que el documento de requisitos del usuario pero en los términos técnicos adecuados para diseñar el sistema,

• Suele estar redactado por analistas de requerimientos.

• Se fundamenta en:▫ El modelado del sistema, para esclarecer la funcionalidad del sistema.▫ Restricciones sobre infraestructura.▫ Requisitos Funcionales y no funcionales.

Determinación de Requerimientos2. Determinación de Requerimientos.

Documentación.Doc. De Requisitos del Sistema/especificación de

requerimientos.

Introducción

1. Alcance. Relación con otros sistemas

2. Definiciones.

3. Historial. Infraestructura existente

4. Descripción de alto nivel. Esquema del problema.

5. RF (Forma atómica y con identificador)

6. RNF (Forma atómica y con identificador y vinculados a los funcionales que soportan)

7. Restricciones específicas

E. Requisitos del Sistema

Determinación de Requerimientos2. Determinación de Requerimientos. Validación.

• La determinación de requerimientos tiene 2 propósitos:

▫ El acuerdo entre clientes y desarrolladores sobre qué debe ser el sistema.▫ Proporcionar a los diseñadores pautas para el desarrollo.

• La validación de requerimientos es el proceso por el cual se determina si la especificación del sistema es consistente, es decir si los requerimientos satisfarán las necesidades del cliente. 2 pasos (trazabilidad):

▫ Se asegura que cada especificación del sistema pueda ser rastreada hasta su requerimiento en el documento de definición.

▫ Se chequea la definición comprobando que cada requerimiento es rastreable hasta la especificación.

Determinación de Requerimientos

2. Determinación de Requerimientos. Validación.

• La técnica más utilizada y simple son las reuniones de revisión.

• Se examinan los requerimientos por parte de:

▫ Representantes del cliente: Operadores del sistema. Operadores que preparan las entradas Operadores los que utilizan las salidas Gerentes de estos empleados.

▫ Representantes del desarrollador: Equipo de diseño Equipo de pruebas, y gestión de configuración

Determinación de Requerimientos2. Determinación de Requerimientos. Validación.• La reuniones comprenden las siguientes

actividades:

▫ Se revisan las metas declaradas y los objetivos del sistema.

▫ Se comparan las metas con los requerimientos para verificar que todos estos son necesarios.

▫ Se describe el ambiente en el que debe operar el sistema.

▫ Se evalúa y documenta el riesgo y se plantean alternativas.

▫ Se determinan las pruebas según avance el sistema.

▫ Cuando se detecta un problema se documenta y se establece la acción para subsanarlo antes del comienzo del proceso de diseño.

Determinación de Requerimientos

2. Determinación de Requerimientos. Validación.

• La trazabilidad de requisitos se documenta mediante la MTR (Matriz de trazabilidad de Requisitos).

Matriz de Trazabilidad de Requisitos

Resumen de requisitos del Usuario

Requisito del Usuario

Requisito del Sistema

Identificador Identificador