8/3/2019 Elaboration 1
1/28
OBJECT ORIENTED ANALYSISAND DESIGN-UNIT II
P. Vinitha
8/3/2019 Elaboration 1
2/28
Objectives
Elaboration
Domain Models
Finding conceptual classes and description classes Associations
Attributes
8/3/2019 Elaboration 1
3/28
UP Phases a recap
Phases describe the functional implementation of
the project. There are several iterations in each
phase. Project phases and general percent of the
project are:
Inception - 5%
Elaboration - 20%
Construction - 65% Transition - 10%
8/3/2019 Elaboration 1
4/28
Inception Phase
At the end of the inception phase is the first major
project milestone:
Stakeholder concurrence on scope definition and
cost/schedule estimates.
Depth and breadth of any architectural prototype that
was developed.
Actual expenditures versus planned expenditures.
8/3/2019 Elaboration 1
5/28
Elaboration Phase
The purpose of the elaboration phase is to analyze the
problem domain, establish a sound architectural
foundation, develop the project plan, and eliminate
the highest risk elements of the project. Elaboration is the initial series of iterations during
which, on a normal project:
The core, risky software architecture is programmed and
tested
The majority of requirements are discovered and stabilized
The major risks are mitigated or retired
8/3/2019 Elaboration 1
6/28
Iteration
The word "iterative" means that it involvesrepetition.
The UML process allows for designs to have
iterative processes. each iteration add some function (based on a use
case) to the system.
Additional features or functions are added in
succeeding iterations.
Each iteration will have a time limit and will havespecific goals. This is called "time boxing".
8/3/2019 Elaboration 1
7/28
Iteration
8/3/2019 Elaboration 1
8/28
8/3/2019 Elaboration 1
9/28
Elaboration Phase (Example)
The requirements for the first iteration of the NextGenPOS application follow: Implement a basic, key scenario of the Process Sale use
case: entering items and receiving a cash payment.
Implement a Start Up use case as necessary to support theinitialization needs of the iteration.
Nothing fancy or complex is handled, just a simple happypath scenario, and the design and implementation tosupport it.
There is no collaboration with external services, such as atax calculator or product database.
No complex pricing rules are applied
8/3/2019 Elaboration 1
10/28
Sample Elaboration Artifacts
Artifact Comment
Domain Model This is a visualization of the domain concepts; it is similar to a static
information model of the domain entities.
Design Model This is the set of diagrams that describes the logical design. This
includes software class diagrams, object interaction diagrams,package diagrams, and so forth.
Software
Architecture
Document
A learning aid that summarizes the key architectural issues and their
resolution in the design. It is a summary of the outstanding design
ideas and their motivation in the system.
Data Model This includes the database schemas, and the mapping strategies
between object and non-object representations.
Use-Case
Storyboards, UI
Prototypes
A description of the user interface, paths of navigation, usability
models, and so forth.
8/3/2019 Elaboration 1
11/28
Elaboration Phase
Planning the Next Iteration
Organize requirements and iterations by risk,coverage, and criticality.
Risk includes both technical complexity and otherfactors, such as uncertainty of effort or usability.
Coverage implies that all major parts of the system areat least touched on in early iterations perhaps a "wideand shallow" implementation across manycomponents.
Criticality refers to functions the client considers ofhigh business value
8/3/2019 Elaboration 1
12/28
Elaboration Phase
Ranking the criteria
Use cases or use case scenarios are ranked for
implementation
The ranking is done before iteration-1, but then againbefore iteration-2, and so forth, as new requirements and
new insights influence the order.
Rank Requirement (Use Case or Feature) Comment
High Process Sale
Logging
Scores high on all rankings.
Pervasive. Hard to add late.
Medium Maintain Users
Affects security subdomain.
Low
8/3/2019 Elaboration 1
13/28
Elaboration Phase
The outcome of the elaboration phase is: A use-case model (at least 80% complete) all use cases and
actors have been identified, and most usecase descriptionshave been developed.
Supplementary requirements capturing the non functionalrequirements and any requirements that are not associated
with a specific use case.
A Software Architecture Description.
An executable architectural prototype.
A revised risk list and a revised business case.
A development plan for the overall project.
An updated development case specifying the process to beused.
A preliminary user manual (optional).
8/3/2019 Elaboration 1
14/28
Domain Model
8/3/2019 Elaboration 1
15/28
Domain Model
A domain model is a visual representation ofconceptual classes or real-situation objects in adomain.
Domain models have also been called conceptual
models A UML domain model will relate objects in the system
domain to each other.
It will define concepts and terms.
Objects in the domain model can be:Physical objects
Abstract concepts
8/3/2019 Elaboration 1
16/28
Domain Model (Example)
It illustrates that the conceptual classes of
Payment and Sale are significant in this domain
8/3/2019 Elaboration 1
17/28
Domain Model
Syntax
8/3/2019 Elaboration 1
18/28
Domain Model
There can be multiple relationships between objects inthe domain model.
In the domain model the following are shown:
Concepts (Objects) Attributes of Objects - Attributes must be simple attributes
such as numbers. They cannot be objects, dimensionednumbers, or keys to part of a database.
Association between objects
Multiplicity
Optional direction of relationship arrow
Optional role of object
8/3/2019 Elaboration 1
19/28
Domain Model a "Visual Dictionary
It shows an visual abstraction of the conceptualclasses, because there are many other things onecould communicate about registers, sales, and soforth.
It's easy to understand the terms and especially theirrelationships in a visual language, since our brains aregood at understanding visual elements and lineconnections.
Therefore, the domain model is a visual dictionary ofthe notable abstractions, domain vocabulary, andinformation content of the domain.
8/3/2019 Elaboration 1
20/28
Domain Model a Picture ofSoftware
Business Objects
A UP Domain Model is a visualization of things in areal-situation domain of interest, not of softwareobjects such as Java or C# classes, or software
objects with responsibilities . The following elements are not suitable in a
domain model:
Software artifacts, such as a window or a database,
unless the domain being modeled is of softwareconcepts, such as a model of graphical user interfaces.
Responsibilities or methods.[
8/3/2019 Elaboration 1
21/28
Domain Model a Picture ofSoftware
Business Objects
8/3/2019 Elaboration 1
22/28
Steps to Create a Domain Model
Identify Candidate Conceptual classes
Draw them in a Domain Model, the vocabulary of
the domain
Add associations necessary to record the
relationships that must be retained
Add attributes necessary for information to be
preserved Apply existing Analysis Patterns
8/3/2019 Elaboration 1
23/28
Domain Model
What are Conceptual Classes?
A conceptual class is an idea, thing, or object.
More formally, a conceptual class may be
considered in terms of its symbol, intension, and
extension .
Symbol words or images representing a conceptual class.
Intension the definition of a conceptual class.
Extension the set of examples to which the conceptual
class applies.
8/3/2019 Elaboration 1
24/28
Domain Model
Conceptual class example for the event of a purchase transaction.
Symbol - Sale.
he intension of a Sale - Represents the event of a purchase transaction, and has a date and
time.
he extension ofSale - The set of all sale instances in the universe.
8/3/2019 Elaboration 1
25/28
Domain Models
Three Strategies to Find Conceptual Classes
Reuse or modify existing models.
Use a category list.
Identify noun phrases.
8/3/2019 Elaboration 1
26/28
Domain Models
Method 2: Use a Category List
We can kick-start the creation of a domain model by
making a list of candidate conceptual classes
8/3/2019 Elaboration 1
27/28
Domain Models - Find Conceptual Class
Conceptual Class Category Examples
business transactions
Guideline: These are critical (they involve money), so start with
transactions.
Sale, Payment
Transaction line items
Guideline: Transactions often come with related line items, soconsider these next.
SalesLineItem
Product or service related to a transaction or transaction line item
Guideline: Transactions are for something (a product or service).
Consider these next.
Item
where is the transaction recorded?
Guideline: Important.
Register, Ledger
Roles of people or organizations related to the transaction; actors
in the use case
Guideline:We usually need to know about the parties involved in a
transaction.
Cashier, Customer,
Place of transaction; place of service Store
Conceptual Class Category List.
8/3/2019 Elaboration 1
28/28
Domain Models - Find Conceptual Class
Method 3: Finding Conceptual Classes with Noun PhraseIdentification
Another useful technique is linguistic analysis: Identify the nounsand noun phrases in textual descriptions of a domain, and considerthem as candidate conceptual classes or attributes
Main Success Scenario (or Basic Flow):
Customer arrives at a POS checkout with goods and/or services topurchase.
Cashier starts a new sale.
Cashier enters item identifier.
System records sale line item and presents item description, price, andrunning total. Price calculated from a set of price rules.
Cashier repeats steps 2-3 until indicates done