Ooa 1 Post

23
No: 1 Analysis Phase - 1 Look DEEP in Mans eye to analyze him Concept

description

Object-oriented analysis and design(OOAD) UML Slides. for more slides refer www.scmGalaxy.com.

Transcript of Ooa 1 Post

Page 1: Ooa 1 Post

No: 1

Analysis Phase - 1

Look DEEP in Mans eye to analyze him

ConceptConcept

Page 2: Ooa 1 Post

No: 2

Analysis phase - Topics:

Building a conceptual Model• Conceptual model - Adding Attributes• Conceptual model - Adding Associations

Recording terms in the glossary System Behavior - System Sequence Diagrams System Behavior - Contracts

ConceptConcept

Page 3: Ooa 1 Post

No: 3

BUILDING A CONCEPTUAL MODEL

Identify concepts related to the current development cycle

requirements.

Infer association on Need - to - know basis and name them.

Create an initial conceptual model.

Infer & add multiplicity and role between concepts

Distinguish between correct and incorrect attributes.

Add specification concepts, when appropriate.

Compare and contrast the terms concept, interface and class.

Objectives

ConceptConcept

Page 4: Ooa 1 Post

No: 4

Introduction Identifying a rich set of objects or concepts is at the heart of

object – oriented analysis The following two session expand on conceptual modeling skills

– looking at attributes and associations

ConceptConcept

Page 5: Ooa 1 Post

No: 5

Activities and Dependencies

One of the early major activities within a development cycle is the creation a conceptual model for the use cases of the current cycle.

Its creation is dependent on having use cases from which concepts (objects) can be identified.

The creation may not be linear; for example, the conceptual model may be made in parallel to the development of the use cases.

ConceptConcept

Page 6: Ooa 1 Post

No: 6

Conceptual Models

In the UML, a conceptual model is illustrated with a set of static structure diagrams in which no operations are defined.

The term conceptual model has the advantage of strongly emphasizing a focus on domain concepts, not software entities.

It may show:

• concepts

• associations between concepts

• attributes of concepts

ConceptConcept

Page 7: Ooa 1 Post

No: 7

Understanding Domain Vocabulary

Our goal here is to create a conceptual model of interesting or

meaningful concepts in the domain under consideration.

Conceptual model aids in clarifying the terminology or vocabulary

of the domain.

It can be viewed as a model that communicates (to interested

parties such as developers) what the important terms are, and how

they are related.

ConceptConcept

Page 8: Ooa 1 Post

No: 8

Conceptual Models are not Models of Software Designs

No responsibilities or methods are assigned in conceptual model

Conceptual model shows the real world concepts ,no software artifacts or classes are part of it.

Most of the thing in the conceptual model should come from domain only.

ConceptConcept

Page 9: Ooa 1 Post

No: 9

Conceptual Models and Decomposition

Software problems can be complex :

“Decomposition – divide and conquer” – is a common strategy to deal with this complexity by division of the problem space into comprehensible units.

Object-oriented analysis the dimension of decomposition is fundamentally by concepts

ConceptConcept

Page 10: Ooa 1 Post

No: 10

Strategies to Identify Concepts

The central task is therefore to identify concepts :

Two strategies are presented

1. Finding Concepts with the

“Concept Category List”

2. Finding concepts with Noun

“Phrase Identification”

ConceptConcept

Page 11: Ooa 1 Post

No: 11

Useful guideline in identifying concepts:

The conceptual model should be detailed

Do not exclude a concept simply because the requirements do not indicate any obvious need to remember information about it, or because the concepts, have a purely behavioral role in the domain instead of an information role.

It is better to overspecify a conceptual model with lots of fine-grained concepts, than to underspecify it

It is common to miss concepts during the initial identification phase, and to discover them later during the consideration of attributes or associations, or during the design phase.

ConceptConcept

Page 12: Ooa 1 Post

No: 12

Drawbacks of Noun Phrase Identification.

A weakness of this approach is the imprecision of natural language; different noun phrases may represent the same concept or attribute, among other ambiguities.

Nevertheless, it is recommended in combination with the Concept Category List technique.

ConceptConcept

Page 13: Ooa 1 Post

No: 13

ConceptConcept

Concept Category ListConcept Category List

Page 14: Ooa 1 Post

No: 14

Finding concepts with noun Phrase identification

Some of these are candidate concepts and some are attributes of these concepts

ConceptConcept

Page 15: Ooa 1 Post

No: 15

Candidate Concepts for the POST Domain

From the Concept Category List and noun-phrase analysis, we generate a list of candidate concept for the POST application

Customer

Cashier

Manager

Store

POST

ProductSpecification

ProductCatalog

Item

Sale

SaleLineItem

UML notationUML notation

ConceptConcept

Page 16: Ooa 1 Post

No: 16

CONCEPTUAL MODEL ADDING ATTRIBUTES

Objectives Identify attributes in a conceptual model. Distinguish between correct and incorrect attributes.

Attributes An attribute is a logical data value of an object Attributes are shown in the second section of the concept box

ConceptConcept

UMLFigure: Concept and

attributes

Page 17: Ooa 1 Post

No: 17

Attributes…..

Other attributes that are not obvious and apparent may be identified later.

This is acceptable during the design and construction phases the remaining attributes will be discovered and added.

ConceptConcept

Page 18: Ooa 1 Post

No: 18

CONCEPTUAL MODEL ADDING ASSOCIATIONS

Objectives :

Inferring associations between concepts

Distinguish between need – to – know and comprehension – only associations

ConceptConcept

Page 19: Ooa 1 Post

No: 19

Associations :

An association is a relationship between concepts that indicates some meaningful and interesting connection

In the UML they are described as “structural relationships between objects of different types

ConceptConcept

Page 20: Ooa 1 Post

No: 20

Naming Associations :

Name an association based on a

TypeName – VerbPhrase-TypeName

format where the verb phrase creates a sequence that is readable

and meaningful in the model context.

Association names should start

with a capital letter.

Follow left to right

Top to bottom convention

A verb phrase should be constructed with hyphens.

ConceptConcept

Page 21: Ooa 1 Post

No: 21

Roles:

Each end of an association is called a role. Roles may have:

name

multiplicity expression

navigability

Multiplicity is investigated now, but the other two features are discussed during design.

ConceptConcept

Page 22: Ooa 1 Post

No: 22

Multiplicity

Multiplicity defines how many instances of a type A can be associated with one instance of a type B, at a particular moment in time

Multiplicity value is context

dependent. *

1…*

1...40

5

3,5,8

zero or more;

“many”

one or more

one to forty

exactly five

exactly three,

five or eight

Multiplicity at end of association

ConceptConcept

Page 23: Ooa 1 Post

No: 23

Conceptual model: POSTConceptual model: POST ConceptConcept