introducción al análisis y diseño orientado a objetos ... · introducción concepto de sistema,...

35
Introducción al Análisis y Diseño Orientado a Objetos Especificación de Requerimientos

Upload: others

Post on 25-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Introducción al Análisis y Diseño Orientado a Objetos

Especificación de Requerimientos

Page 2: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Historia

Aparece el termino Ing. del SW por primera

vez

Promovió OTAN

Crisis del Software

Problemas de Desarrollo

Presupuestos

Tiempos

Daños Propiedad

Perdida Vidas

Solucionar Crisis SW

Costos elevados de propiedad y

Mtto.

Proyectos no exitosos

Fallan requerimientos

Internet

Aplicados de diseño y

desarrollo

Adaptación de aplicaciones a ambiente web

Bajo Costo SW

Metodologías Ligeras

Creciente demanda SW

Mejores técnicas de desarrollo

1955-1965 1960-1980 1985-1989 1990-1999 2000-ACT

Page 3: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

IntroducciónConcepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado objeto.

Los sistemas informáticos están compuestos por ordenadores y sus periféricos. Clasificándose en:• Sistemas Hardware, son los elementos materiales, los que se pueden tocar.• Sistemas Software, los programas que gobiernan el funcionamiento del computador.

El objetivo de los sistemas informáticos es el tratamiento de la información: almacenamiento, elaboración y presentación de datos. De esta forma se automatizan determinadas acciones.

Page 4: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Problemática (1)

Este término fue introducido a finales de los 60 a raíz de la crisis del software.

• Planificación y estimación de costos.• ERS.• Gestión del Riesgo.• Seguimiento.• Recursos.• Alcance y Responsabilidades.• Arquitectura.

Para superar la crisis:Aparición de metodologías concretas de desarrolloConcepción de la Ingeniería del Software como disciplinaTrabajo en equipo y especialización (analistas, programadores, ...)

Page 5: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Problemática (2)Vuelo 501 del ARIANE-5

(4 de Junio de 1996) ejemplo sobre el daño ocasionado por

software mal diseñado es el de la explosión de la lanzadera Ariane-5, cuando a 40 segundos después de la iniciación de la secuencia de

vuelo, la lanzadera se desvió de su ruta, se partió y explotó. En el proyecto global se invirtieron 10

años de construcción y 7 mil millones de euros, lo que supuso

un duro golpe para la Agencia Espacial Europea (ESA)

Page 6: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Problemática (3)

A-320 de Air France(26 de junio de 1988)

Durante una presentación en elmeeting de Habsheim, cerca de

Mulhouse (Francia), un A-320 de AirFrance se estrella en el bosque, al finalde la pista. Habrá tres muertos y una

centena de heridos.Justo después, el mundo se pregunta

las causas del accidente del aviónanunciado como "el más seguro del

mundo".Una de las causas se le atribuye a unerror en el software de navegación

Page 7: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Problemática (4)

Mariner 1(28 de Julio de 1962)

Cómo un solo error de código le costó a la NASA 150 millones de dólaresUn guión en las instrucciones del

programa de guiado del cohete provocó la desviación del Atlas y tuvo que

enviarse un comando para su autodestrucción a los 4 minutos y 53

segundos de su lanzamiento

Page 8: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Problemática (5)

Page 9: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Definición

3

La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos (software).

• Mejorar la calidad de los productos de software.

• Aumentar la productividad y trabajo de los ingenieros del software.

• Facilitar el control del proceso de desarrollo de software.

• Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente.

• Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado.

Page 10: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Ciclo de Vida

Requisitos Análisis Diseño

Implementación Integración Pruebas

Documentación Mantenimiento

Page 11: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Porque el AOO ?

Un proyecto software no consiste sólo en programar.

Necesitamos saber cuáles son las necesidades del cliente. Identificar los requisitos, anotarlos, analizarlos, validarlos.

Necesitamos diseñar una solución, y hacer “los planos” del software: Diseño de la arquitectura, detallado, de datos, …

Hay que asegurarse de que el software funciona:

Pruebas de unidad (a nivel de método y clase), de integración, del sistema, de aceptación, etc.

Hay que mantener el software. Documentación (de cada una de las fases), coherencia entre los productos de las distintas fases (ej. código

vs. diseños).

Page 12: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Análisis Orientado a Objetos Centrarse en el “qué”.

Identificar los requisitos: documentos de análisis. Entrevistas.

Identificar requisitos funcionales y no funcionales (ej.: rendimiento, fiabilidad)

Especificar los requisitos: documento de especificación de requisitos. Documento técnico. Organización y clasificación de los requisitos.

Analizar: Modelos de análisis. Estudio de posibles escenarios: casos de uso.

Otras técnicas: fichas CRC, orientados al flujo, etc.

Validar.

Page 13: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Análisis Orientado a Objetos El análisis y diseño orientado a objetos (ADOO) es un enfoque

de análisis en ingeniería de software que modela un sistema

como un grupo de objetos que interactúan entre sí1. Este

enfoque representa un dominio absoluto en términos de

conceptos compuestos por verbos y sustantivos, clasificados de

acuerdo a su dependencia funcional. Todo sistema de

información requiere de artefactos o componentes (clases) para

llevar a cabo tareas, es de gran importancia dentro de la

ingeniería de software tener un buen "análisis y diseño" para un

mejor desarrollo, que conlleva a qué tan "escalable" sea un

sistema de información.

Page 14: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Análisis Orientado a Objetos En este método de análisis y diseño se crea un conjunto de

modelos utilizando una notación acordada como, por ejemplo,

el lenguaje unificado de modelado (UML).

ADOO aplica técnicas de modelado de objetos para analizar los

requerimientos para un contexto (por ejemplo, un sistema de

negocio, un conjunto de módulos de software) y para diseñar

una solución para mejorar los procesos involucrados.

Page 15: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Análisis Orientado a Objetos No está restringido al diseño de programas de computadora,

sino que cubre sistemas enteros de distinto tipo. Las

metodologías de análisis y diseño más modernas son "casos de

uso" guiados a través de requerimientos, diseño,

implementación, pruebas, y despliegue.

El lenguaje unificado de modelado se ha vuelto el lenguaje de

modelado estándar usado en análisis y diseño orientado a

objetos.

Page 16: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Análisis Orientado a Objetos – Modelos de Analisis

Page 17: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Análisis Orientado a Objetos

17

Modelos de Análisis. Basado en Escenarios.

Modelo de

Análisis: Modelo

Modelo Funcional:

Modelo

Modelo de

Objetos: Modelo

Modelo

Dinámico: Modelo

Modelo funcional: casos de uso y escenarios.

Modelo de Objetos: diagramas de clases y objetos.

Modelo dinámico: diagramas de secuencia,…

Page 18: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

ESPECIFICACION DE REQUERIMIENTOS

Cada uno de los modelos del proceso de desarrollo del softwarepropuestos, incluye actividades que apuntan a la captura derequerimientos.

Por lo tanto, la comprensión del propósito y la función del sistemacomienza con un atento examen de los requerimientos.

Page 19: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Definición de Requerimiento

Cuando el Cliente solicita que se desarrolle un sistematiene algunas nociones de lo que debe hacer.

Por está razón cada sistema basado en software tiene un propósito, usualmenteexpresado con algo que el sistema debe hacer.

Un Requerimiento “es una característica del sistema o una descripción de algoque el sistema es capaz de hacer con el objeto de satisfacer el propósito delsistema”.

Page 20: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Definición de Requerimiento

Es decir, los requerimientos son lo que losclientes/usuarios esperan que haga el sistema.

Los analistas, por lo tanto, deben entender el problema de los usuarios en su culturay con su lenguaje y construir el sistema que resuelve sus necesidades.

En si el objetivo del análisis de requerimientos es resolver el problema.

Page 21: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Requerimientos v/s Diseño

Los requerimientos definen el Qué (el problema) delsistema.

El Diseño define el Cómo (la solución).

Durante el análisis de requerimientos no se consideran descripcionesespecificas de la implementación como requerimientos, a menos que elcliente lo pida (Ej.: bases de datos especificas, lenguajes deprogramación, etc.).

Los requerimientos, por lo tanto deben centrarse en el cliente/usuario yel problema.

Page 22: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Documentos de Requerimientos

Existen dos documentos que emanan del análisis derequerimientos:

Definición de requerimientos

Es un documento que debe escribirse en términos que el cliente pueda entender. Esdecir, este documento es un listado completo de todas las cosas que el cliente esperaque haga el sistema propuesto.

Este documento es escrito en forma conjunta por elcliente y el desarrollador.

Page 23: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Documentos de Requerimientos

Especificación de requerimientos

Documento que reitera la definición de los requerimientos en los términos técnicosapropiados para el desarrollador del diseño de un sistema.

Es la contrapartida técnica al documento de definición de requerimientos y es escrito porlos analistas de requerimientos.

A veces un único documento puede servir para ambos propósitos, lo que lleva a unentendimiento común entre clientes, analistas de requerimientos y diseñadores.

Pero a menudo se necesitan ambos documentos.

Page 24: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Documentos de Requerimientos

Es muy importante, que al usar ambos documentos exista uncorrespondencia directa entre cada requerimiento del documento dedefinición y aquellos documentos en la especificación.

Esto para que la visión del cliente este unida a la de los desarrolladores (estose logra gracias a la gestión de configuración).

Page 25: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Clasificación de Requerimientos

Según el Tipo los requerimientos se clasifican en:

Requerimientos funcionales.

Requerimientos no funcionales.

Requerimientos del Dominio.

Según a quien van dirigidos se clasifican en:

Requerimientos del Usuario.

Requerimientos del Sistema.

Page 26: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Clasificación de Requerimientos

Requerimientos funcionales

Describen la funcionalidad o los servicios que se espera que el sistema proveerá.Dependen del tipo de software, del sistema que se desarrollo y de los posiblesusuarios.

Cuando se expresan como Requerimientos del usuarios, se definen de forma general.

Cuando se expresan como requerimiento del sistema describen con detalle la función deéste, sus entradas y salidas, excepciones, etc.

Page 27: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

• Ejemplo de Requisitos Funcionales:

Como ejemplo le presentamos los requerimientos funcionales de una cafetería:

• El cliente vera los productos que están disponibles

• Los precios de los alimentos serán visibles

• Se pedirá los alimentos en un lugar específico (tanto empaquetados como por preparar) y pagaran en el mismo lugar (caja)

• Los alimentos empaquetados se entregaran en la caja

• Los alimentos a preparar se pedirán en su lugar asignado

• Fruta, gelatinas,etc.

• Tortas, hamburguesas, etc.

• Los clientes recibirán sus productos una vez terminado el proceso

• Se podrá pedir el servicio de calentamiento para alimentos

• El administrador podrá ver las ganancias

• Los vendedores entregaran los alimentos empaquetados

• Los ayudantes de los cocineros entregaran los alimentos para preparar

• El administrador se encargara de los proveedores

Page 28: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Clasificación de Requerimientos

Requerimientos no funcionales

Son los requerimientos que no se refieren directamente a las funcionesespecíficas que entrega el sistema, sino a las propiedades emergentes deéste, como la fiabilidad, la respuesta en el tiempo y la capacidad dealmacenamiento.

Muchos requerimientos no funcionales se refieren al sistema como un todo másque a rasgos particulares del mismo.

A menudo son mas críticos que los funcionales. Mientras que un incumplimientode un requerimiento funcional degrada el sistema, el de un requerimiento nofuncional del sistema lo inutiliza.

Page 29: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Clasificación de Requerimientos

Requerimientos no funcionales se clasifican en:

Del producto: especifican comportamiento del producto. Ej.: de desempeño en larapidez de ejecución del sistema, cuanta memoria se requiere; los de fiabilidad quefijan la tasa de fallas para el sistema sea aceptable, los de portabilidad y deusabilidad.

Organizacionales: se derivan de las políticas y procedimientos existentes en laorganización del cliente y del desarrollador. Ej.: estándares en los procesos quedeben utilizarse, requerimientos de implementación como los lenguajes deprogramación o el método de diseño a utilizar.

Page 30: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Clasificación de RequerimientosRequerimientos no funcionales

Externos: cubre todos los requerimientos que se derivan de los factores externos al sistema yde su proceso de desarrollo. Ej.: requerimientos de interoperabilidad, requerimientos legales,requerimientos éticos.

Un problema común con los requerimientos no funcionales es que algunas veces son difíciles deverificar.

De forma ideal los requerimientos no funcionales se deben expresar de manera cuantitativautilizando métricas que se puedan probar de forma objetiva. En la práctica, es difícil. El costo esmuy alto.

Page 31: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Clasificación de Requerimientos

Requerimientos del dominio

Se derivan del dominio del sistema más que de las necesidades especificas del usuario.

Son importantes debido a que a menudo reflejan los fundamentos del dominio de laaplicación. Si estos no se satisfacen es imposible que el sistema trabaje de formasatisfactoria.

Estos se expresan utilizando un lenguaje especifico del dominio de la aplicación que amenudo es difícil de comprender. Ej.: operación para calcular desaceleración del tren,para un sistema de control de trenes.

Page 32: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Proceso: Ingeniería de Requerimientos

Estudio de factibilidad

Obtención y Análisis de

Requerimientos

Especificación de

Requerimientos

Validación de

Requerimientos

Informe de

factibilidad

Actividades

Especificación de

Requerimientos

Documentode

Requerimientos

Modelo delSistema

Artefactos

Page 33: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

• Proceso de Ingeniería de Requerimientos

Participación

del usuario

Estudio de

factibilidad

Obtención y

análisisEspecificación Validación

Requerimientosdel usuario

Retroalimentacióndel usuario

Especificaciónde requerimientos

Modelos a validarpor el usuario

Modelo derequerimientosConocimiento

Necesidad de másconocimiento

Resultado devalidación

Page 34: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado

Verificación de

Requerimientos

Comprensión

del dominio

Recolección de

Requerimientos

Priorización

Resolución de

conflictos

Clasificación

Especificación de

Requerimientos

DOCUMENTO DE

REQUERIMIENTOS

PROCESO DE OBTENCION

Y ANÁLISIS DE

REQUERIMIENTOS

Page 35: Introducción al Análisis y Diseño Orientado a Objetos ... · Introducción Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado