18
Ingeniería de Software. Abstracciones Clave. Página 0 Disciplina de Análisis. Abstracciones Clave y la Técnica CRC (Class Responsibility Collaboration). Ingeniería de Software.

Disciplina de Análisis. Abstracciones Clave y la Técnica CRCprofesores.fi-b.unam.mx/adanzg/SwEng/Presentaciones/09A... · 2020-03-23 · • El SRS incluye los siguientes requerimientos

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Ingeniería de Software. Abstracciones Clave. Página 0

Disciplina de Análisis.

Abstracciones Clave y la Técnica

CRC (Class Responsibility Collaboration).

Ingeniería de Software.

Ingeniería de Software. Abstracciones Clave. Página 1

Mapa del Proceso.

Ingeniería de Software. Abstracciones Clave. Página 2

Abstracciones Clave.

“A key abstraction is a class or object that forms part of the

vocabulary of the problem domain.”

• Representan los objetos principales en el sistema de los que hablan los involucrados.

• Para descubrirlas:

1. Identificar los candidatos listando todos los sustantivos que aparecen en el documento SRS en una "Forma de Candidatos a Abstracciones Clave".

2. Usar la técnica de análisis de CRCs (Class Responsibility Collaboration) para determinar el conjunto inicial de candidatos a Abstracciones Clave.

Ingeniería de Software. Abstracciones Clave. Página 3

Identificación de candidatos a Abstracciones Clave.

• Empezar el proceso de identificación marcando todos los

sustantivos(*) únicos en el documento SRS mencionados

principalmente en las siguientes secciones y subsecciones:

• Introducción:

• Alcance.

• Contexto y Actores.

• Requerimientos Funcionales.

• Descripción de los Actores.

• Casos de Uso.

• Glosario.

Nota. En Gramática los sustantivos son las palabras que sirven para designar

personas, animales o cosas, ya sean reales o existentes sólo en la mente humana.

Ingeniería de Software. Abstracciones Clave. Página 4

Ejemplo de Identificación de Candidatos.

Sección de Alcance:“The Hotel Reservation System will be responsible for managing the reservations for multiple lodging properties, which include (but are not limited to) bed and breakfast (B&B) and business retreat properties. The system will also include a web application that permits customersto view the properties and rooms, to view current and past reservations, and to make new reservations. The system must also coordinate small events (such as retreats and small conferences).”

Sección de Contexto:“There are three main ‘touch points’ of the Hotel Reservation System: the central DBMS for data storage, the external, credit card authorization system and the local movies-on-demand system that controls the movie feed to each room’s television set.”

Requerimiento Funcional E1-3:“The System must collect the following information about a customer: first and last name (as separate fields), address, home phone, a major credit card (type, number, and expiration date)”

Ingeniería de Software. Abstracciones Clave. Página 5

Forma de Candidatos a Abstracciones Clave.

• Contiene 3 columnas:

• Candidato a Abstracción Clave – el sustantivo

descubierto en el SRS.

• Causa de Eliminación – se deja en blanco si es

una abstracción clave o se explica por qué se

rechazó.

• Nombre seleccionado – contiene el nombre de la

clase que se usará para esta abstracción clave.

Ingeniería de Software. Abstracciones Clave. Página 6

Ejemplo.

Ingeniería de Software. Abstracciones Clave. Página 7

Actualización del Glosario.

• El proceso de identificación de Abstracciones Clave es

una buena oportunidad para verificar que el glosario

del sistema esté actualizado.

• Verifique que todos los candidatos aparezcan en el

glosario.

• Identifique sinónimos y seleccione un término prinicipal

que se debe usar siempre en la documentación y en el

código fuente.

Ingeniería de Software. Abstracciones Clave. Página 8

Tips para seleccionar Abstracciones Clave.

• La selección de candidatos a Abstracciones Clave es,

en buena parte, intuición y experiencia.

• Algunos tips:

• Usar palabras que aparezcan en los nombres de

los casos de uso.

• Escoger términos mencionados en la sección de

alcance del SRS.

• Preguntar a expertos de la industria.

Ingeniería de Software. Abstracciones Clave. Página 9

Ejemplo.

El sustantivo “reservation” aparece varias veces en

diversas partes del documento SRS.

• En la sección de alcance:

• “The Hotel Reservation System will be responsible

for managing the reservations for multiple lodging

properties”

• En los casos de uso:

• E1: Manage Reservation.

• E5: Manage Reservation Online

• En varios lugares en los requerimientos funcionales:

• “E1-1: The System shall permit a Booking Agent to

create, retrieve, update, and delete a reservation.”

Ingeniería de Software. Abstracciones Clave. Página 10

Análisis de CRCs.

CRC, Class Responsibility Collaboration (*) es una técnica

usual para identificar Abstracciones Clave:

1. Seleccione un candidato a Abstracción Clave.

2. Identifique un caso de uso donde este candidato es

prominente.

3. Revise los escenarios del caso de uso y los requerimientos

funcionales para determinar responsabilidades y

colaboradores.

4. Documente esta abstracción clave en una tarjeta CRC.

5. Actualice la forma de Candidatos a Abstracciones Clave en

base a esta información.

(*) La técnica también se conoce como Collaborators Responsibilities Cards

Ingeniería de Software. Abstracciones Clave. Página 11

Responsabilidades y Colaboradores.

• Las responsabilidades son atributos, operaciones o

especificaciones del rango de datos de los valores de los

atributos.

• Los colaboradores son otros objetos con los cuales el objeto

candidato a Abstracción Clave está asociado.

• Si un candidato no tiene responsabilides y colaboradores, se

puede rechazar como Abstracción Clave.

Ingeniería de Software. Abstracciones Clave. Página 12

Ejemplo.

• El SRS incluye los siguientes requerimientos funcionales que

especifican responsabilidades y colaboradores del candidato

a Abstracción Clave "reservation".

▪ E1-1 – The system shall permit a Booking Agent to create,

retrieve, update, and delete a reservation. A reservation has an

arrival date, a departure date, and a reservation ID.

▪ E1-2 – reservation holds one or more rooms for a specified time

period (between the arrival and departure dates).

▪ E1-3 – A reservation is associated with only one customer, etc.

▪ E1-5 – A reservation begins in the “held” state , etc.

Ingeniería de Software. Abstracciones Clave. Página 13

Tarjetas CRCs.

Ingeniería de Software. Abstracciones Clave. Página 14

Ejemplo.

Ingeniería de Software. Abstracciones Clave. Página 15

Actualización de la Forma de Abstracciones Clave.

• Si el candidato tiene responsabilidades y/o colaboradores,

ponga su nombre en la primera columna de la forma.

• Escoja un nombre claro pero corto para esta Abstracción

Clave y regístrelo en la tercera columna.

• En caso de que el candidato no tenga responabilidades y/o

colaboradores, especifique la razón de su rechazo en la

segunda columna.

Ingeniería de Software. Abstracciones Clave. Página 16

Forma de Abstracciones Clave.

Ingeniería de Software. Abstracciones Clave. Página 17

Ejercicios.

1. Determinar candidatos a Abstracciones Clave en el

sistema RentLimo y documentarlos en una Forma de

Abstracciones Clave.

2. Elaborar las tarjetas CRCs y en base a su análisis definir

las Abstracciones Clave definitivas en el RentLimo.