Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Capítulo 2 - Analisis Orientado a Objectos, Apuntes de Informática

Asignatura: Metodologia del software, Profesor: Tona Mozota, Carrera: Enginyeria tècnica en informàtica de sistemes, Universidad: URL

Tipo: Apuntes

Antes del 2010

Subido el 11/12/2008

beldar-3
beldar-3 🇪🇸

3 documentos

1 / 25

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Capítulo: 2 Análisis Orientado a Objetos
1
Capítulo 2
Análisis orientado a objetos
El contenido de este documento es sólo una tabla de contenidos con la relación de imágenes y
direcciones de internet vistas o recomendadas en el curso. Se recomienda estudiar los temas
directamente de las fuentes citadas en la bibliografía.
María Antonia Mozota
Departamento de Informática
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Vista previa parcial del texto

¡Descarga Capítulo 2 - Analisis Orientado a Objectos y más Apuntes en PDF de Informática solo en Docsity!

Capítulo: 2 Análisis Orientado a Objetos

Capítulo 2

Análisis orientado a objetos

El contenido de este documento es sólo una tabla de contenidos con la relación de imágenes y direcciones de internet vistas o recomendadas en el curso. Se recomienda estudiar los temas directamente de las fuentes citadas en la bibliografía.

María Antonia Mozota

Departamento de Informática

Capítulo: 2 Análisis Orientado a Objetos

Análisis orientado a objetos

  • 2 ANÁLISIS ORIENTADO A OBJETOS ......................................................................................... Tabla de contenidos
    • 2.1 I NTRODUCCIÓN AL AOO................................................................................................................
    • 2.2 RECOGIDA Y ESPECIFICACIÓN DE REQUISITOS ................................................................................
      • 2.2.1 Motivación y definición .........................................................................................................
      • 2.2.2 Tipos de requisitos .................................................................................................................
        • 2.2.2.1 Clasificación tradicional .................................................................................................
        • 2.2.2.2 Clasificación usada en RUP ...........................................................................................
      • 2.2.3 Técnicas de recogida de requisitos .......................................................................................
      • 2.2.4 Documentación para la especificación de requisitos ............................................................
        • 2.2.4.1 Specification Requirements Software (SRS) ..................................................................
        • 2.2.4.2 Artefactos del proceso de recogida y especificación de requisitos según RUP .............
      • 2.2.5 Introducción a UML ............................................................................................................
      • 2.2.6 Casos de uso y diagramas de casos de uso .........................................................................
      • 2.2.7 Diagrama de actividades .....................................................................................................
      • 2.2.8 Conclusiones ........................................................................................................................
      • 2.2.9 Validación de requerimientos ..............................................................................................
    • 2.3 ANÁLISIS DE REQUERIMIENTOS ...................................................................................................
      • 2.3.1 Resumen del proceso de análisis .........................................................................................
      • 2.3.2 Modelado estático................................................................................................................
        • 2.3.2.1 Identificar clases ...........................................................................................................
        • 2.3.2.2 Identificar relaciones entre clases .................................................................................
        • 2.3.2.3 Identificar atributos de las clases ..................................................................................
        • 2.3.2.4 Diagrama de clases .......................................................................................................
      • 2.3.3 Modelado dinámico .............................................................................................................
        • 2.3.3.1 ¿Por qué es necesario? ..................................................................................................
        • 2.3.3.2 Dibujando las realizaciones de los casos de uso...........................................................
        • 2.3.3.3 Clases frontera, controladoras y de entidad ..................................................................
        • 2.3.3.4 Añadiendo operaciones a las clases ..............................................................................
        • 2.3.3.5 Modelado de estados ....................................................................................................
  • BIBLIOGRAFÍA ................................................................................................................................

Capítulo: 2 Análisis Orientado a Objetos

2.2 Recogida y especificación de requisitos

2.2.1 Motivación y definición

El desarrollador (analista) debe transformar los requerimientos (requisitos) del cliente en una descripción completa , no ambigua y en una notación que el cliente pueda entender y ratificar (validar).

Algunos autores definen requisitos como:

-Los requerimientos para un sistema son la descripción de los servicios proporcionados por el sistema y sus restricciones operativas.

-Un requerimiento puede ser una declaración abstracta de alto nivel de un servicio que debe proporcionar el sistema o una restricción de éste.

-Un requerimiento es una definición detallada y formal de una función del sistema.

El standard Standard Glossary of Software Engineering Terminology IEEE 610.12-1990 define:

Def. de “Requerimiento”:

Un requerimiento es una representación documentada de una condición o de una capacidad que necesita un cliente o usuario para solucionar un problema o alcanzar un objetivo.

Un requerimiento es una representación documentada de una condición o de una capacidad que debe poseer un producto o componente para resolver o satisfacer un contrato, un estándar, una especificación, o un documento impositivo.

Def. de “Requerimientos del producto”:

Traducción de las necesidades del cliente en términos de los desarrolladores del producto, lo que permite hacer explícitos los requerimientos. El desarrollador utiliza los requerimientos para diseñar y construir el producto.

Capítulo: 2 Análisis Orientado a Objetos

2.2.2 Tipos de requisitos

2.2.2.1 Clasificación tradicional

[Sommerville 7ªed.]

Esta clasificación de requerimientos funcionales y no funcionales es la más extendida y tradicional. Hay diferentes niveles de descripción: Requerimientos del usuario (nivel de abstracción alto) Requerimientos del sistema (detalles)

  • funcionales
  • no funcionales (restricciones,…)
  • del dominio (pueden ser funcionales o no)

Ejemplo:

Fuente: [Sommerville7ªEd]

Requerimientos funcionales

  • describen lo que el sistema debe hacer (el comportamiento)
  • deben estar especificados completamente y ser consistentes Completos: todos los servicios solicitados por el cliente están definidos Consistentes: los requisitos no deben tener definiciones contradictorias (En la práctica y en sistemas grandes es difícil asegurar la completitud y la consistencia)

Capítulo: 2 Análisis Orientado a Objetos

Ejemplo:

Fuente: [Sommerville7ªEd]

2.2.2.2 Clasificación usada en RUP

[Larman]

En el RUP los requisitos se clasifican de acuerdo con el modelo FURPS+ definidos por [Grady 92]:

F unctional (Funcional): características, capacidad y seguridad

U sability (Facilidad de uso): factores humanos, ayuda y documentación

R eliability (Fiabilidad): frecuencia de fallos, capacidad de recuperación de un fallo y grado

de previsión

P erformance (Rendimiento): tiempos de respuesta, productividad, precisión, disponibilidad,

uso de los recursos,…

S upportability (Soporte): adaptabilidad, facilidad de mantenimiento, internacionalización,

configurabilidad,…

A estos últimos 4 tipos de requisitos se le llama las –ilities de un sistema o requisitos de calidad.

El + indica requisitos adicionales tales como:

ƒ Implementación: limitación de recursos, lenguajes y herramientas, hardware,… ƒ Interfaz: restricciones impuestas para la interacción con sistemas externos ƒ Operaciones: gestión del sistema en su puesta en marcha ƒ Empaquetamiento ƒ Legales: licencias,…

2.2.3 Técnicas de recogida de requisitos

¿Cómo se recolectan los requisitos?.

ƒ En algunos casos (en pocos casos) la lista de requerimientos pueden estar dadas por el cliente como podría ser el ejemplo de alguna licitación pública.

Capítulo: 2 Análisis Orientado a Objetos

ƒ En la mayoría de los casos tendremos que entrevistarnos con el cliente para obtenerlos.

Entrevista

Lectura obligatoria:

AYE Conference articles Building a Requirements Foundation Through Customer

Interviews, by Esther Derby.htm

Consultar en la web de la asignatura

2.2.4 Documentación para la especificación de requisitos

2.2.4.1 Specification Requirements Software (SRS)

(Especificación de Requerimientos Software (ERS))

El documento

Es un estándar IEEE 830-1998.

Dirección web donde descargarse el documento si os conectáis desde La Salle:

http://ieeexplore.ieee.org/xpl/tocresult.jsp?isNumber=

Consultar el documento 02-SRSStandardIEEE830.pdf en la web de la asignatura

Ejemplos de especificaciones escritas en SRS

Ejemplo 1: Sistema bibliográfico http://es.tldp.org/I+D/donantonio/doc-ers_ieee830-donantonio-servidor/donantonio-servidor- html/index.html Comentarios: es corto y poco específico

Ejemplo 2: Gestión de PC’s http://64.233.183.104/search?q=cache:hTavNQP7l1kJ:kybele.escet.urjc.es/documentos/ISI/Ejemplo_ ERS.PDF+ERS+documento&hl=es&ct=clnk&cd=4&gl=es Comentarios: está muy bien

Actividad recomendada:

Actividad: Especificación de requisitos en ERS Consultar actividad en la web de la asignatura el documento Actividad_ERS.pdf

2.2.4.2 Artefactos del proceso de recogida y especificación de requisitos según RUP

[Larman]

En RUP la especificación de requisitos queda reflejada en los siguientes artefactos:

  1. Modelo de casos de uso

Capítulo: 2 Análisis Orientado a Objetos

RUP proporciona una plantilla para este artefacto: 02-rup_vision.dot

Consultar en la web de la asignatura

3. Documento especificación complementaria (Supplementary Specification SS)

Contiene los otros requisitos +

RUP proporciona una plantilla para este artefacto: 02-rup_ss.dot

Consultar en la web de la asignatura

4. Documento Glosario

Agrupa y define los términos que se utilizan en los requisitos.

Contiene el diccionario de datos que reúne los requisitos relacionados con los datos, como reglas de validación, valores aceptados,….

RUP proporciona una plantilla para este artefacto: 02-rup_gloss.dot

Consultar en la web de la asignatura

Larman dice: Los artefactos en RUP son opcionales. El equipo de desarrollo debe seleccionar el subconjunto de artefactos que sirvan para su problema. En general, centrarse en un pequeño conjunto de artefactos que demuestren tener un gran valor práctico.

Actividad recomendada:

Actividad: Especificación de requisitos en VISION Consultar el documento Actividad_VISION.pdf en la web de la asignatura

Capítulo: 2 Análisis Orientado a Objetos

2.2.5 Introducción a UML

Ver apartado 5.1 del capítulo 5

2.2.6 Casos de uso y diagramas de casos de uso

Ver apartado 5.2 del capítulo 5

2.2.7 Diagrama de actividades

Ver apartado 5.3 del capítulo 5

2.2.8 Conclusiones

Puede haber dos niveles de requerimientos: ƒ los orientados tanto a cliente como a desarrolladores, típicamente contractual ƒ la documentación más técnica, típicamente orientada a desarrolladores

Mantener dos documentos de requerimientos puede complicar su mantenimiento. En todo caso, si se mantienen estos dos niveles es importante dar unos consejos prácticos aplicables a ambos ámbitos:

Sobre el modelo del negocio ƒ Identificar los actores ƒ Escribir un glosario del proyecto ƒ Identificar y describir los casos de uso del negocio ƒ Ilustrar los casos de uso con: ƒ Diagramas de casos de uso ƒ Diagramas de comunicación (opcional, los veremos en el análisis dinámico) ƒ Diagramas de actividad (opcional)

.... hemos realizado así un Modelo del Negocio

Desde la perspectiva del desarrollador ƒ Descubrir la especialización de actores (generalizaciones) ƒ Descubrir las relaciones en los casos de uso ( includes , extends ) ƒ Descripción textual de los casos de uso ( precondiciones , postcondiciones , herencia , ... ) ƒ Requerimientos suplementarios ƒ Boceto de la interfaz de usuario ƒ Priorización de los casos de uso

.... hemos realizado así un Modelo de los Requerimientos del Sistema

2.2.9 Validación de requerimientos

[Sommerville 7ºEd.] pag 144-

La validación de requerimientos trata de mostrar que éstos realmente definen el sistema que el cliente desea.

1) Verificaciones a realizar

Capítulo: 2 Análisis Orientado a Objetos

ƒ se trata de generar casos de prueba para los requerimientos (antes de su implementación) ƒ si una prueba es difícil o imposible de diseñar, normalmente significa que el requerimiento en cuestión será difícil de implementar y se debería cuestionar.

Es difícil y prácticamente imposible asegurar que un conjunto de requerimientos cumple las necesidades del usuario.

Es inevitable que haya cambios adicionales de requerimientos para corregir omisiones y malas interpretaciones después de que el documento de requerimientos haya sido aprobado.

En RUP es más fácil hacer frente a estos cambios por su característica incremental.

Capítulo: 2 Análisis Orientado a Objetos

2.3 Análisis de Requerimientos

Es necesario para poder entender el análisis y diseño OO que tengáis claros los conceptos de clase, objeto, herencia, acoplamiento, cohesión, polimorfismo, encapsulamiento, etc. Para ello se recomienda la lectura de los siguientes apartados:

[ODocherty] Capítulo 2

Objeto. Atributos. Operaciones (2.2) Encapsulación (2.5) Asociación y Agregación (2.6)

Clases (2.14). Herencia. Generalización y Especialización. Polimorfismo

2.3.1 Resumen del proceso de análisis

[ODocherty] Capítulo 7

Analysis is about discovering what the system is going to handle, rather than deciding how to do the handling.

We need to decompose a complex set of requirements into the essential elements and relationships on which we will base our solution.

Analysis is our first opportunity to get to grips with modeling the real world as objects.

An analysis model has both static (relación entre objetos) and dynamic (comportamiento de los objetos) parts :

- We can depict the static analysis model using a class diagram .A class diagram shows the objects that the system will handle and how those objects are related to each other.

Once we ’ve completed static analysis ,our sponsors will be able to confirm that our understanding of the business objects is correct,before we let the objects influence our design.

The static analysis model is also valuable when it comes to designing a database schema (for those business objects that need to be stored).

- For the dynamic analysis model ,we can use communication diagrams to demonstrate that our static model is feasible.

After dynamic analysis ,we will be confident that our analysis objects support the required system functionality.

There are two inputs to analysis: (Los comentados anteriormente en 2.2.7 )

Capítulo: 2 Análisis Orientado a Objetos

2.3.2 Modelado estático

2.3.2.1 Identificar clases

[Odocherty] 7.4.1 Finding Classes pag. 170 [Sommerville 7ªEd.] 14.2.3 pag. 297 [Larman] pag 127

Identificación

La identificación de clases es una tarea difícil.

Sommerville 14.2.3 pag. 297 dice que hay varios enfoques que pueden seguirse para la identificación de objetos, atributos y operaciones. A saber:

  1. Enfoque gramatical. Basado en el análisis gramatical del lenguaje natural describiendo a los requerimientos. (usado en el método de HOOD, Robinson 1992).

Los sustantivos y locuciones representan objetos y atributos Los verbos representarán operaciones o servicios (por el momento esto no nos interesa)

  1. Enfoque basado en las entidades (cosas) tangibles del dominio de la aplicación. (usado por Coad y Yourdon 1990, Mellor 1998)

Ejemplos de objetos del dominio: factura, libro,

  1. Enfoque basado en el comportamiento. Identifica a los objetos basándose en que participa en que comportamiento. (usado por Rubin y Goldberg 1992)

Ejemplos de roles: cliente, socio biblioteca, estudiante,

  1. Enfoque basado en escenarios. Identifica a los objetos, atributos y métodos involucrados en cada escenario. (usado por CRC)

Aquí se trata de analizar los casos de uso

Capítulo: 2 Análisis Orientado a Objetos

Larman propone tener una lista de categorías de clases conceptuales e identifica con la ayuda de esta tabla a los objetos.

Conceptual Class Category Examples physical or tangible objects Register Airplane specifications, designs, or descriptions of things

ProductSpecification FlightDescription places Store, Airport transactions Sale, Payment Reservation transaction line items SalesLineItem roles of people Cashier Pilot containers of other things Store, BinAirplane things in a container Item, Passenger other computer or electro- mechanical systems external to the system

CreditPaymentAuthorizationSystem, AirTrafficControl

abstract noun concepts Hunger, Acrophobia organizations SalesDepartment, ObjectAirline events Sale, Payment, Meeting Flight, Crash, Landing processes (often not represented as a concept, but may be)

SellingAProduct BookingASeat

rules and policies RefundPolicy CancellationPolic Catalogs ProductCatalog PartsCatalog records of finance, work, contracts, legal matters

Receipt, Ledger, EmploymentContract MaintenanceLog financial instruments and services

LineOfCredit Stock manuals, documents, reference papers, books

DailyPriceChangeList RepairManual

Table 10.1 Conceptual Class Category List.

No olvidar que un objeto es algo que tiene estado (atributos), comportamiento(métodos) e identidad(identificación única).

2.3.2.2 Identificar relaciones entre clases

[Odocherty] 7.4.2 Identifying Class Relationships pag. 171 [Larman] [Sommerville 7ªEd.]

Relaciones entre clases

Capítulo: 2 Análisis Orientado a Objetos

Ejemplos: Una FACTURA está formada por LINEAFACTURA (cuando desaparece la factura desaparecen las líneas de la factura

Herencia (también llamada generalización) Una subclase hereda todos los atributos y comportamiento de su superclase Describe una relación “estática” (compile-time) entre clases.

Ejemplos: MIEMBROPERSONAL puede ser una clase que generaliza a las clases PERSONALADMINISTRATIVO, PERSONALCREATIVO y DIRECTORCONTABILIDAD. ANUNCIO puede ser una clase que generaliza a las clases ANUNCIOPRENSAy ANUNCIOTELEVISION

En una primera aproximación al determinar las asociaciones se podría hacer sin especificar de qué tipo son las asociaciones y después en un refinamiento se podrían determina qué asociaciones son de agregaciones y cuales composiciones.

Cómo identificar relaciones [Larman] p

Larman utiliza la siguiente lista de las asociaciones más comunes:

Capítulo: 2 Análisis Orientado a Objetos

2.3.2.3 Identificar atributos de las clases

[Odorchety] 7.4.5 Attributes 178 [Larman] p

Un atributo es una propiedad de un objeto, por ejemplo su tamaño, posición, nombre, precio, … Los atributos son parte de la descripción esencial de una clase.

Identificación

Aquellas cosas para la que los requisitos (casos de uso) sugieren o implican una necesidad de registrar la información.

Tipos [ Odocherty] pag 179