STRUCTURAL MODELING AND
ANALYSIS
By: JIGAR M. MAKHIJA
Structural modeling
• It can be referred as “Thing”.
• Structural modeling shows how this Things are
related with each other.
Thing
Class Interface Object Package
What is an Object?
• A self contained entity with well defined
characteristics
Eg:
Entity=Book;
Characteristics=page no, author , publisher,
price etc.
Type of Objects
Objects
Physical &
Conceptual
Domain &
Implementation
Active & Passive
1. Physical & Conceptual :
– Tangible & Intangible objects.
– Physical objects are the things which are visible
and that can be touched . E.g.: ATM.
– Conceptual objects are the things which we can’t
see normally. E.g.: Card Strip Reader.
2. Domain & Implementation :
– The objects identified from the real world are
domain objects.
e.g. : Bank Accounts, ATM, Customers Etc.
– The objects which are not related to the real
world entities are implementation objects.
e.g. : Error Logs, Transaction Records .
3. Active & Passive:
– The objects which can change its state without
any external command are Active objects .
e.g. : Timers & Clocks.
– The objects which can change its state unless any
external command is received are known by
Passive objects.
e.g. : Properties of bank account.
What is Class?
• A set of similar objects.
• It is combination of properties and methods
that are necessary to the system.
properties=attributes;
methods=operations;
Bank Account
- Name
- Balance
+ Debit(Amt)
+ Credit(Amt)
UML NOTATION
• Attributes:
– Properties of a class.
– Attributes consist of Name & its Value along with its
Type. E.g. : Int sum=100;
• Operations:
– A set of functions to provide services in software
system.
– Operations are similar to functions that consist of
parameters and return values.
e.g. : withdraw(amt) , getBalance() .
Encapsulation
• Information Hiding.
• Objects are like Black boxes.
• The implementation of objects are hidden
from those who use them (End Users).
• But, creator or developer knows the details of
internal construction of that object.
Inheritance
• Attributes and operations common to group
of subclass are attached to superclass and
inherited by its subclasses.
• Each subclass may also include new feature of
its own.
• Properties:
Generalization Specialization
• The purpose of this property is to
distribute the commonalities
from the superclass among a
group of similar subclasses.
Generalization
• It allows subclasses to extend the
functionalities of their superclass.
• A subclass can introduce new
operations and attributes of its
own.
Specialization
Abstract Classes
• An abstract class consist of operations
without their actual implementation .
• An operations without the implementation
(body) is called abstract operations.
• A class can be specified as abstract by writing
name in italics. E.g. Shape
Polymorphism
• Polymorphism is the ability for a variable to
hold objects of its own class and subclasses at
runtime.
Role
• Each end of association has a role.
Multiplicity
• Multiplicity refers to the number of objects
associated with a given object.
Association
• It represents binary relationships among
classes.
• Represented by line.
Person Company
1..n 1Works for
Employee Employer
Multiplicity
Role
Qualification
• It serves as names or keys that are part of
association and are used to select objects at
the other end of association.
Person Bank
Person Bank
0..n 0..n
Account No0..1 0..n
Reflexive Association
• A reflexive association is an association that
relates one object of a class to another object
of the same class.
N-ary Association
• A relationship involving three classes is referref to
as an ternary relationship, and one involving
many classes is referred to as an n-ary
relationship.
Association Classes
• Associations that include additional attributes
which do not naturally belong to the objects
involved in the associations.
Person Company
Position
-title
-starting_Date
-salary
0..n 0..nWorkFor
Aggregation
• Aggregation is a stronger form of association.
• It represent the “has-a or part-of”
relationship.
Company Division
1..n
Department
1..n
Composition
• Composition is a stronger form of aggregation.
• It represent the “part-of” relationship.
Company Division
1..n
Department
1..n
Constraints and Notes
• Constraints are relation between signs &
symbols of UML element that allow the
inclusion of new rules or the modification of
existing ones.
• Constraints are represented by label in curly
brackets {constraint name}.
{Constraints}
UML Notation for Structural Modeling
Class :
Interface:
Component
Component:
Interface
UML Notation for Structural Modeling
Node:
Constraint:
Association:
Aggregation:
Generalization:
Heuristics in using Structural Analysis
• Do not attempt to develop a single giant class
diagram.
• Use model management constructs such as
package, subsystems.
• Consider both logical & physical aspects.
• Use data or middleware for communication
among major subsystems whenever possible.
Heuristics in using Structural Analysis
• Make Design Patterns flexible and adaptable.
• Apply domain analysis such as textual analysis,
documentation reviews to identify reusable
components.
• Inter-play top-down approach & bottom-up
approach.
• Use packages to organize the domain classes
incrementally as development progresses.
Heuristics in using Structural Analysis
• Conduct use case analysis to yield missing
pieces in structural model.
• Review whether a particular class is becoming
too large.
Domain Modeling and Analysis Process
• Before domain analysis is conducted we need to
understand the problem of domain of the system.
• The output of the domain analysis is domain class
model which describes the classes and their
relationships.
• The domain class model consist of class diagrams, a
data dictionary describing the classes and their
associations (relationships ).
Developing Domain Class Models
1. Preparing the problem statement.
2. Identifying the objects and classes using textual
analysis.
3. Developing a data dictionary.
4. Identifying associations between classes.
5. Identifying attributes of classes and association
classes.
6. Structuring classes using inheritance.
7. Verifying access path for likely queries.
8. Iterating and refining the model.
…
That’s all for today.

Structural modeling and analysis

  • 1.
  • 2.
    Structural modeling • Itcan be referred as “Thing”. • Structural modeling shows how this Things are related with each other. Thing Class Interface Object Package
  • 3.
    What is anObject? • A self contained entity with well defined characteristics Eg: Entity=Book; Characteristics=page no, author , publisher, price etc.
  • 4.
    Type of Objects Objects Physical& Conceptual Domain & Implementation Active & Passive
  • 5.
    1. Physical &Conceptual : – Tangible & Intangible objects. – Physical objects are the things which are visible and that can be touched . E.g.: ATM. – Conceptual objects are the things which we can’t see normally. E.g.: Card Strip Reader.
  • 6.
    2. Domain &Implementation : – The objects identified from the real world are domain objects. e.g. : Bank Accounts, ATM, Customers Etc. – The objects which are not related to the real world entities are implementation objects. e.g. : Error Logs, Transaction Records .
  • 7.
    3. Active &Passive: – The objects which can change its state without any external command are Active objects . e.g. : Timers & Clocks. – The objects which can change its state unless any external command is received are known by Passive objects. e.g. : Properties of bank account.
  • 8.
    What is Class? •A set of similar objects. • It is combination of properties and methods that are necessary to the system. properties=attributes; methods=operations; Bank Account - Name - Balance + Debit(Amt) + Credit(Amt) UML NOTATION
  • 9.
    • Attributes: – Propertiesof a class. – Attributes consist of Name & its Value along with its Type. E.g. : Int sum=100; • Operations: – A set of functions to provide services in software system. – Operations are similar to functions that consist of parameters and return values. e.g. : withdraw(amt) , getBalance() .
  • 10.
    Encapsulation • Information Hiding. •Objects are like Black boxes. • The implementation of objects are hidden from those who use them (End Users). • But, creator or developer knows the details of internal construction of that object.
  • 11.
    Inheritance • Attributes andoperations common to group of subclass are attached to superclass and inherited by its subclasses. • Each subclass may also include new feature of its own. • Properties: Generalization Specialization
  • 12.
    • The purposeof this property is to distribute the commonalities from the superclass among a group of similar subclasses. Generalization • It allows subclasses to extend the functionalities of their superclass. • A subclass can introduce new operations and attributes of its own. Specialization
  • 13.
    Abstract Classes • Anabstract class consist of operations without their actual implementation . • An operations without the implementation (body) is called abstract operations. • A class can be specified as abstract by writing name in italics. E.g. Shape
  • 14.
    Polymorphism • Polymorphism isthe ability for a variable to hold objects of its own class and subclasses at runtime.
  • 15.
    Role • Each endof association has a role. Multiplicity • Multiplicity refers to the number of objects associated with a given object. Association • It represents binary relationships among classes. • Represented by line. Person Company 1..n 1Works for Employee Employer Multiplicity Role
  • 16.
    Qualification • It servesas names or keys that are part of association and are used to select objects at the other end of association. Person Bank Person Bank 0..n 0..n Account No0..1 0..n
  • 17.
    Reflexive Association • Areflexive association is an association that relates one object of a class to another object of the same class. N-ary Association • A relationship involving three classes is referref to as an ternary relationship, and one involving many classes is referred to as an n-ary relationship.
  • 18.
    Association Classes • Associationsthat include additional attributes which do not naturally belong to the objects involved in the associations. Person Company Position -title -starting_Date -salary 0..n 0..nWorkFor
  • 19.
    Aggregation • Aggregation isa stronger form of association. • It represent the “has-a or part-of” relationship. Company Division 1..n Department 1..n
  • 20.
    Composition • Composition isa stronger form of aggregation. • It represent the “part-of” relationship. Company Division 1..n Department 1..n
  • 21.
    Constraints and Notes •Constraints are relation between signs & symbols of UML element that allow the inclusion of new rules or the modification of existing ones. • Constraints are represented by label in curly brackets {constraint name}. {Constraints}
  • 22.
    UML Notation forStructural Modeling Class : Interface: Component Component: Interface
  • 23.
    UML Notation forStructural Modeling Node: Constraint: Association: Aggregation: Generalization:
  • 24.
    Heuristics in usingStructural Analysis • Do not attempt to develop a single giant class diagram. • Use model management constructs such as package, subsystems. • Consider both logical & physical aspects. • Use data or middleware for communication among major subsystems whenever possible.
  • 25.
    Heuristics in usingStructural Analysis • Make Design Patterns flexible and adaptable. • Apply domain analysis such as textual analysis, documentation reviews to identify reusable components. • Inter-play top-down approach & bottom-up approach. • Use packages to organize the domain classes incrementally as development progresses.
  • 26.
    Heuristics in usingStructural Analysis • Conduct use case analysis to yield missing pieces in structural model. • Review whether a particular class is becoming too large.
  • 27.
    Domain Modeling andAnalysis Process • Before domain analysis is conducted we need to understand the problem of domain of the system. • The output of the domain analysis is domain class model which describes the classes and their relationships. • The domain class model consist of class diagrams, a data dictionary describing the classes and their associations (relationships ).
  • 28.
    Developing Domain ClassModels 1. Preparing the problem statement. 2. Identifying the objects and classes using textual analysis. 3. Developing a data dictionary. 4. Identifying associations between classes. 5. Identifying attributes of classes and association classes. 6. Structuring classes using inheritance. 7. Verifying access path for likely queries. 8. Iterating and refining the model.
  • 29.