1 of 141

Two days workshop on�“Design thinking -OOMD Star-UML “

10.00 am to 05.00 pm daily

Organized by

IIC-IQAC & AI&DS Department

06th & 7th Jan 2026

IIC Id- IC202218599

2 of 141

Workshop Overview

  • Two-day hands-on workshop
  • Focus on problem-solving and software design
  • Integration of Design Thinking with OOMD
  • Practical modeling using StarUML

3 of 141

Workshop Objectives

• Understand Design Thinking methodology

• Apply Object-Oriented Modeling & Design concepts

• Develop UML diagrams using StarUML

• Enhance industry-ready design skills

4 of 141

Contents -

    • Revise Design thinking & SDLC
    • Formulate a realistic problem statement using SDLC.
    • Models
      • Use-case model
      • Design model (Class diagram)
    • Diagrams
      • Use-case diagram and activity diagram
      • Sequence diagram and Collaboration diagram
      • Class diagram
      • Component & Deployment Diagram
    • How many diagrams need to be created?

5 of 141

Design Thinking

  • • Human-centered problem-solving approach
  • • Focuses on innovation and creativity
  • • Used in product design and software engineering

6 of 141

Stages of Design Thinking

  • • Empathize
  • • Define
  • • Ideate
  • • Prototype
  • • Test

7 of 141

What Is a Model?

  • A model is “a complete description of a system from a particular perspective.” A model is a simplification of reality.

8 of 141

Why Model?

  • Modeling achieves four aims:
    • Helps you to visualize a system as you want it to be.
    • Permits you to specify the structure or behavior of a system.
    • Gives you a template that guides you in constructing a system.
    • Documents the decisions you have made.
  • You build models of complex systems because you cannot comprehend such a system in its entirety.
  • You build models to better understand the system you are developing.

9 of 141

10 of 141

11 of 141

What Is the UML?

  • The UML is a language for
      • Visualizing
      • Specifying
      • Constructing
      • Documenting

the artifacts of a software-intensive system.

  • The Unified Modelling Language (UML) is an industry standard for object oriented design notation, supported by the Object Management Group (OMG).

12 of 141

The UML Is a Language for Visualizing

  • Communicating conceptual models to others is prone to error unless everyone involved speaks the same language.
  • There are things about a software system you can’t understand unless you build models.
  • An explicit model facilitates communication.

13 of 141

The UML Is a Language for Specifying

  • The UML builds models that are precise, unambiguous, and complete.

14 of 141

The UML Is a Language for Constructing

  • UML models can be directly connected to a variety of programming languages.
    • Maps to Java, C++, Visual Basic, and so on
    • Tables in a RDBMS or persistent store in an OODBMS
    • Permits forward engineering
    • Permits reverse engineering

15 of 141

The UML Is a Language for Documenting

  • The UML addresses documentation of system architecture, requirements, tests, project planning, and release management.

Use Case Diagram

Actor A

Use Case 1

Use Case 2

Use Case 3

Actor B

Class Diagram

GrpFile

read( )

open( )

create( )

fillFile( )

rep

Repository

name : char * = 0

readDoc( )

readFile( )

(from Persistence)

FileMgr

fetchDoc( )

sortByName( )

DocumentList

add( )

delete( )

Document

name : int

docid : int

numField : int

get( )

open( )

close( )

read( )

sortFileList( )

create( )

fillDocument( )

fList

1

FileList

add( )

delete( )

1

File

read( )

read() fill the

code..

Sequence Diagram

user

mainWnd

fileMgr :

FileMgr

repository

document :

Document

gFile

1: Doc view request ( )

2: fetchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: fillDocument ( )

7: readFile ( )

8: fillFile ( )

9: sortByName ( )

ƯÁ¤¹®¼­¿¡ ´ëÇÑ º¸±â¸¦

»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

È­Àϰü¸®ÀÚ´Â Àоî¿Â

¹®¼­ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼­

°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

È­¸é °´Ã¼´Â ÀоîµéÀÎ

°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î

Á¤·ÄÀ» ½ÃÄÑ È­¸é¿¡

º¸¿©ÁØ´Ù.

Deployment Diagram

Window95

¹®¼­°ü¸®

Ŭ¶óÀ̾ðÆ®.EXE

Windows

NT

¹®¼­°ü¸® ¿£Áø.EXE

Windows

NT

Windows95

Solaris

ÀÀ¿ë¼­¹ö.EXE

Alpha

UNIX

IBM

Mainframe

µ¥ÀÌŸº£À̽º¼­¹ö

Windows95

¹®¼­°ü¸® ¾ÖÇø´

ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨

- À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ®

- À©µµ¿ì NT: ÀÀ¿ë¼­¹ö

- À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼­¹ö ¹× µ¥ÀÌŸ ¼­¹ö, Åë½Å ¼­¹ö

- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼­¹ö, Åë½Å ¼­¹ö

16 of 141

History of the UML

UML 1.0

(Jan. ‘97)

UML 1.1

(Sept. ‘97)

UML 1.5

(March, ‘03)

UML 2.0

(2004)

Other

Methods

Booch ‘91

OMT - 1

OOSE

Booch ’93

OMT - 2

Public

Feedback

Unified Method 0.8

(OOPSLA ’95)

UML 0.9

(June ‘96)

UML 0.91

(Oct. ‘96)

and

17 of 141

Diagrams

  • Diagrams graphically depict a view of a part of your model.
  • Different diagrams represent different views of the system that you are developing.
  • A model element will appear on one or more diagrams.

18 of 141

19 of 141

UML Diagrams in Software Architecture

Behavioral Diagrams

Structural Diagrams

Activity

Diagrams

Sequence

Diagrams

Communication

Diagrams

State Machine

Diagrams

Deployment

Diagrams

Component

Diagrams

Composite

Structure

Diagrams

Class

Diagrams

Use-Case

Diagrams

Model

20 of 141

Software Architecture: The “4+1 View” Model

Process View

Deployment View

Logical View

Use-Case View

Implementation View

End-user

Functionality

Programmers

Software management

Performance

Scalability

Throughput

System integrators

System topology

Delivery, installation

communication

System engineering

Analysts/Designers

Structure

21 of 141

Visual Modeling Using UML Diagrams

Actor A

Use Case 1

Use Case 2

Actor B

user : Clerk

mainWnd : MainWnd

fileMgr : FileMgr

repository : Repository

document : Document

gFile : GrpFile

9: sortByName ( )

L

1: Doc view request ( )

2: fetchDoc( )

5: readDoc ( )

7: readFile ( )

3: create ( )

6: fillDocument ( )

4: create ( )

8: fillFile ( )

Window95

¹®¼­°ü¸®

Ŭ¶óÀ̾ðÆ®.EXE

Windows

NT

¹®¼­°ü¸® ¿£Áø.EXE

Windows

NT

Windows95

Solaris

ÀÀ¿ë¼­¹ö.EXE

Alpha

UNIX

IBM

Mainframe

µ¥ÀÌŸº£À̽º¼­¹ö

Windows95

¹®¼­°ü¸® ¾ÖÇø´

Document

FileManager

GraphicFile

File

Repository

DocumentList

FileList

user

mainWnd

fileMgr :

FileMgr

repository

document :

Document

gFile

1: Doc view request ( )

2: fetchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: fillDocument ( )

7: readFile ( )

8: fillFile ( )

9: sortByName ( )

ƯÁ¤¹®¼­¿¡ ´ëÇÑ º¸±â¸¦

»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

È­Àϰü¸®ÀÚ´Â Àоî¿Â

¹®¼­ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼­

°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

È­¸é °´Ã¼´Â ÀоîµéÀÎ

°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î

Á¤·ÄÀ» ½ÃÄÑ È­¸é¿¡

º¸¿©ÁØ´Ù.

Forward and Reverse Engineering

Target

System

Use Case 3

Use-case�diagram

Class diagram

Collaboration diagram

Sequence �diagram

Component �diagram

Statechart�diagram

GrpFile

read( )

open( )

create( )

fillFile( )

rep

Repository

name : char * = 0

readDoc( )

readFile( )

(from Persistence)

FileMgr

fetchDoc( )

sortByName( )

DocumentList

add( )

delete( )

Document

name : int

docid : int

numField : int

get( )

open( )

close( )

read( )

sortFileList( )

create( )

fillDocument( )

fList

1

FileList

add( )

delete( )

1

File

read( )

read() fill the

code..

Deployment �diagram

22 of 141

23 of 141

UML v 2 Diagrams :

Behavior Diagrams

1.Use Case Diagram 2.Activity Diagram

3.State Machine Diagram.

Interaction Diagrams,

4. Sequence D 6. Interaction Overview D

5. Communication D 7.Timing Diagram

Structure Diagrams

8.Class Diagram 11. Object Diagram

9. Component D 12.Composite Structure

10. Package D 13.Deployment D 

24 of 141

Key Diagrams in UML

Requirements

System Structure

System Behaviour

Use Case Diagrams

Interaction Diagrams

Activity Diagrams

State Charts

Class Diagrams

Collaboration Diagrams

25 of 141

Different diagrams of system for different people

Process View

Deployment View

Logical View

Use-Case View

Implementation View

End-user

Functionality

Programmers

Software management

Performance, scalability, throughput

System integrators

System topology, delivery,

installation, communication

System engineering

Analysts/Designers

Structure

26 of 141

What is a Use-Case Model?

A use-case model:

    • Is a model of a system’s intended functions and its environment
    • Serves as a contract between the customer and the developers
    • Contains the following diagrams:
      • Use case: Shows a set of use cases and actors and their relationships
      • Activity: Shows the flow of events within a use case
      • Sequence: Shows how a use case will be implemented in terms of collaborating objects

27 of 141

Use-Case Diagram (Example)

View Report Card

Student

Register for Courses

Login

Select Courses to

Teach

Submit Grades

Professor

Registrar

Billing System

Maintain Professor

Information

Maintain Student

Information

Close Registration

Course Catalog

28 of 141

Activity Diagram

Action

A step in the flow of events

Decision

Flows split based on a guard

condition

Flow

Show the sequence of

activities

Fork

Beginning of concurrent flows

Join

End of concurrent flow

29 of 141

Activity Diagram (Example)

Synchronization

Bar (Fork)

Guard

Condition

Synchronization

Bar (Join)

Decision

Concurrent Threads

Transition

Select Course

[ add course ]

Check

Schedule

Check

Pre-requisites

Assign to

Course

Resolve

Conflicts

Update

Schedule

Delete Course

[ checks completed ]

[ checks failed ]

[ delete course ]

Activity/Action

30 of 141

What is a Design Model?

A design model:

    • Describes the realization of use cases in terms of design elements
    • Describes the design of the application
    • Contains the following diagrams:
      • Class: Shows UML classes and relationships
      • Component: Shows the structure of elements in the implementation model
      • Communication and Sequence: Show how objects and classes interact
      • State Machine: Shows event-driven behavior

31 of 141

Class Diagram (Design Model)�Class diagrams show the static structure of the model, in particular, its classes, their internal structure, and their relationships to other classes. Class diagrams do not show temporal information.

Class

A description of a set �of objects

Attribute�Named property of �a class

Aggregation�Represents a part-whole �relationship

Operation

Class behavior

Generalization�Shows an inheritance �relationship

32 of 141

Sequence Diagram �used to show how objects interact to perform the behavior of all or part of a use case as part of a use-case realization.

Lifeline

Shows the life of the object

Object/Class

Shows the object/class involved in the interaction

Messages

Show data exchanged�between objects

Execution Occurrence

Shows object executing

33 of 141

Sequence Diagram (Example)

Activity/Action

1: create schedule( )

2: get course offerings( )

3: get course offerings(for Semester)

4: get course offerings( )

6: display blank schedule( )

:RegisterForCoursesForm

:RegistrationController

SWTSU Catalog :

CourseCatalogSystem

: Student

: Course Catalog

5: display course offerings( )

Select Offerings

ref

34 of 141

Sequence Diagram: Combined Fragments

Interaction Use (ref)

References another interaction

Optional Fragment (opt)

Executed if guard condition evaluates to true

Loop (loop)

Executed as long as the first guard condition�evaluates to true

35 of 141

Communication (Collaboration) Diagram �provide another way to show how objects interact to perform the behavior of a particular use case or a part of a use case. Where sequence diagrams emphasize the interactions of objects over time, communication diagrams are designed to emphasize the relationships between objects.

Object/Class

Shows the object/class involved in the interaction

Message

Shows data �exchanged�between objects

36 of 141

Communication Diagram (Example)

: Student

: RegisterForCoursesForm

: RegistrationController

: CourseCatalogSystem

5: display course offerings( )

6: display blank schedule( )

: Course Catalog

1: create schedule( )

2: get course offerings( )

3: get course offerings(forSemester)

4: get course offerings( )

Links

Messages

37 of 141

Component Diagram

Component

Modular parts of the system

Class

Included to show implementation�relationships.

It shows the runtime structure of the system at the level of software components. Components are the modular parts of the system and are made up of groups of related objects that are hidden behind an external interface.

38 of 141

Deployment Diagram

Artifact

Represents a physical file

Node

Represents a �physical machine

Owned Element �Relationship

Shows another way of �showing nested elements

Deployment diagrams show the deployment architecture of the system, that is, which of the system’s software artifacts reside on which pieces of hardware.

39 of 141

How Many Diagrams Need to be Created?

  • Depends:
    • You use diagrams to visualize the system from different perspectives.
    • No complex system can be understood in its entirety from one perspective.
    • Diagrams are used for communication
  • Model elements will appear on one or more diagrams.
    • For example, a class may appear on one or more class diagrams, be represented in a state machine diagram, and have instances appear on a sequence diagram.
    • Each diagram will provide a different perspective.

40 of 141

References

  • Rational Unified Process® course
  • Essentials of Rational Unified Process®
    • Essentials of Rational® RequisitePro®
      • Web-based or Instructor-led training
    • Mastering Business Modeling with the UML
  • Web sites
    • Rational’s corporate site: www.rational.com
    • Rational Developer NetworkSM: www.rational.net
  • Books and articles about requirements management

41 of 141

Objectives:

  • Understand the basic Requirements concepts and how they affect Analysis and Design
  • Understand how to read and interpret the artifacts of Requirements that are used as a starting point for Analysis and Design

42 of 141

Requirements in Context

Management

Environment

Test

Analysis & Design

Preliminary �Iteration(s)

Iter.�#1

Iter.�#2

Iter.�#n

Iter.�#n+1

Iter.�#n+2

Iter.�#m

Iter.�#m+1

Configuration & Change Mgmt

Requirements

Elaboration

Transition

Inception

Construction

The purpose of Requirements is:

    • To establish and maintain agreement with the customers and other stakeholders on what the system should do.
    • To give system developers a better understanding of the requirements of the system.
    • To delimit the system.
    • To provide a basis for planning the technical contents of the iterations.
    • To provide a basis for estimating cost and time to develop the system.
    • To define a user interface of the system.

43 of 141

What Are the Benefits of a Use-Case Model?

  • Used to communicate with the end users and domain experts
    • Provides buy-in at an early stage of system development
    • Insures a mutual understanding of the requirements
  • Used to identify
    • Who interacts with the system and what the system should do
    • The interfaces the system should have
  • Used to verify
    • All requirements have been captured
    • The development team understands the requirements

44 of 141

Relevant Requirements Artifacts

Supplementary

Specification

Glossary

Use-Case Specifications

...

Use-Case Model

Actors

Use Cases

45 of 141

Case Study: Course Registration Problem Statement

  • Review the problem statement provided in the Course Registration Requirements Document

46 of 141

Major Concepts in Use-Case Modeling

  • An actor represents anything external that interacts with the system.
  • A use case is a set of sequence of actions a system performs that yields an observable result of value to a particular actor.

Use Case

Actor

47 of 141

Problem Analysis Steps

  • Identify stakeholders.
  • Understand the root causes.
  • Gain agreement on the problem definition.
  • Identify constraints on the system or project.
  • Identify and validate the solution against the root causes.
  • Define the solution system boundary.

48 of 141

Problem Analysis Roadmap

Elicit Requirements

Expand stakeholder list for solution.

Choose the best solution(s) to meet the goals.

Best solution identified

Problem validated/adjusted

Business problem defined

Actual problem identified

and defined

Identify stakeholders for problem.

Root cause analysis.

Reassess that the solution idea is the best solution.

Understand the problem in the context of the business goals.

Business

Problem

Solution idea or Opportunity

49 of 141

Stakeholders: Definitions

  • Stakeholder
    • An individual who is materially affected by the outcome of the system or the project(s) producing the system.
  • Stakeholder Representative
    • A stakeholder representative represents one or more stakeholders. They are directly involved in the steering, shaping, and scoping of the project.

50 of 141

Identify the Stakeholders

  • Each group of stakeholders needs a representative.
  • Not all stakeholder groups need to be consulted.
    • Some will provide requirements.
      • Customers, users, system administrators
    • Some may not provide requirements.
      • Shareholders

Who are some of the stakeholders for your projects?

51 of 141

Describe Stakeholders in the Vision Document

Stakeholder

Registrar

Representative

Kelly Hansen

Description

User

Type

The Registrar is typically a college-educated professional with full computer skills. The Registrar is trained and experienced with the use of the current batch-oriented registration .

Responsibilities

The Registrar is responsible for administering course registration for each school term.  This includes supervising administrative and data entry personnel.

Success Criteria

The registrar’s primary responsibility will be maintaining student and professor databases, and opening/closing courses to registration.

The registrar’s office will also be required to perform ….

Involvement

The registrar’s primary responsibility will be maintaining student and professor databases, and opening/closing courses to registration.

The registrar’s office will also be required to perform…..

Deliverables

Management reviewer – especially related to functionality and usability of features required by the Registrar staff.

Comments/ Concerns

None

52 of 141

What Is the Problem Behind the Problem?

Fishbone Diagram Techniques

List contributing causes to the identified problem.�Keep asking “Why?” (expand each rib).

The perceived business problem.

No Banking at night

Too much waiting

Want Privacy

when banking

Customers are dissatisfied with our service.

Banking in airports

Want more banking

locations

Queues in the

branches are too long

53 of 141

Problem Analysis – Validating a Solution

List the reasons why the solution is the right solution.�Keep asking “Why?” (expand each rib).

No Banking at night

Too much waiting

Customers are dissatisfied with

our service

We need ATMs.

Banking in airports

Want more banking

locations

Queues in the

branches are too long

The perceived solution to some ill-defined problem.

54 of 141

Focus on Largest Contributors - Pareto’s Law

Benefit

Effort

20%

80%

Rank in order. Use the 80-20 Rule to focus on the top contributing causes to address the greatest portion of the problem.

20% of the effort yields 80% of the benefit.

55 of 141

Understand the Broader Context of the Problem

  • A lack of understanding the business and its goals increases risk.
  • Does the problem have an organization/process component?
  • Does the team understand the domain in which the problem exists?
  • Does solving the problem present the opportunity to make process improvements?

56 of 141

Requirements Overview Topics

  • Introduction
  • Key Concepts
  • Use-Case Model
  • Glossary
  • Supplementary Specifications
  • Checkpoints

57 of 141

Major Use-Case Modeling Elements

Actor

Someone/something outside the system, acting in a role that interacts with the system

Use case

Represents something of value that the system does for its actors

Actor

Use Case

58 of 141

  • An actor represents a role that a human, hardware device, or another system can play in relation to the system.
  • Actor names should clearly denote the actor’s role.

Define Actors: Focus on the Roles

?

59 of 141

What Is System Behavior?

  • System behavior is how a system acts and reacts.
    • It is the outwardly visible and testable activity of a system
  • System behavior is captured in use cases.
    • Use cases describe the system, its environment, and the relationship between the system and its environment.

60 of 141

What Is a Use Case?

defines a sequence of actions

performed by a system

that yields an observable result of value

to an actor.

A use case

Use Case Name

61 of 141

Use Cases Contain Software Requirements

  • Each use case
    • Describes actions the system takes to deliver something of value to an actor.
    • Shows the system functionality an actor uses.
    • Models a dialog between the system and actors.
    • Is a complete and meaningful flow of events from the perspective of a particular actor.

62 of 141

What Is a Use-Case Model?

  • A model that describes a system’s functional requirements in terms of use cases
  • A model of the system’s intended functionality (use cases) and its environment (actors)

Student

View Report Card

Register for Courses

Login

63 of 141

How Should I Name a Use Case?

  • Indicate the value or goal of the actor.
  • Use the active form; begin with a verb.
  • Imagine a to-do list.
  • Examples of variations
    • Register for Courses
    • Registering for Courses
    • Acknowledge Registration
    • Course Registration
    • Use Registration System

Which variations show the value to the actor? Which do not?

Which would you choose as the use-case name? Why?

64 of 141

Identify Use Cases

  • What are the goals of each actor?
    • Why does the actor want to use the system?
    • Will the actor create, store, change, remove, or read data in the system? If so, why?
    • Will the actor need to inform the system about external events or changes?
    • Will the actor need to be informed about certain occurrences in the system?
  • Does the system supply the business with all of the correct behavior?

65 of 141

Identify Actors

  • Who/what uses the system?
  • Who/what gets information from this system?
  • Who/what provides information to the system?
  • Where in the company is the system used?
  • Who/what supports and maintains the system?
  • What other systems use this system?

66 of 141

Find Actors

Student

Registrar

Registration System

The student never touches the system; the registrar operates it.

Or, are you building an Internet application?

Online Registration System

(www.college.edu)

Student

Who is pressing the keys (interacting with the system)?

67 of 141

Description of an Actor

Text

Name Student

Brief description A person who signs up for a course.

Relationships with

use cases

Register for Courses

Student

Use-Case-Model

Survey

68 of 141

Steps for Creating a Use-Case Model

  1. Find actors and use cases.
    • Identify and briefly describe actors.
    • Identify and briefly describe use cases.
  2. Write the use cases.
    • Outline all use cases.
    • Prioritize the use-case flows.
    • Detail the flows in order of priority.

69 of 141

How Would You Read This Diagram?

Course Catalog

View Report Card

Register for Courses

Submit Grades

Select Courses to Teach

Student

Professor

Billing System

Maintain Student Information

Maintain Professor Information

Login

Close Registration

Registrar

70 of 141

Global Use case Diagram

71 of 141

Use-Case Specifications

  • Name
  • Brief description
  • Flows of Events
  • Relationships
  • Activity diagrams
  • Use-Case diagrams
  • Special requirements
  • Pre-conditions
  • Post-conditions
  • Other diagrams

Use-Case Specifications

...

Use-Case Model

Actors

Use Cases

72 of 141

Use-Case Flow of Events

  • Has one normal, basic flow
  • Several alternative flows
    • Regular variants
    • Odd cases
    • Exceptional flows handling error situations

73 of 141

What Are Scenarios ?

  • A scenario is an instance of a use case

74 of 141

What Is an Activity Diagram?

  • An activity diagram in the use-case model can be used to capture the activities in a use case.
  • It is essentially a flow chart, showing flow of control from activity to activity.

Flow of Events

This use case starts when the Registrar requests that the system close registration.

1. The system checks to see if registration is in progress. If it is, then a message is displayed to the Registrar and the use case terminates. The Close Registration processing cannot be performed if registration is in progress.

2. For each course offering, the system checks if a professor has signed up to teach the course offering and at least three students have registered. If so, the system commits the course offering for each schedule that contains it.�

75 of 141

Objectives: Concepts of Object Orientation

  • Review the basic principles of object orientation
  • Review the basic concepts and terms of object orientation and the associated UML notation
  • Review the strengths of object orientation
  • Review some basic UML modeling notation

76 of 141

Best Practices Implementation

  • Object Technology helps implement these Best Practices.
    • Develop iteratively: tolerates changing requirements, integrates elements progressively, facilitates reuse.
    • Use component-based Architectures: architectural emphasis, component-based development.
    • Model visually: easy understanding, easy modification.

77 of 141

What is Object Technology ?

  • Object technology is used for creating models that reflect a specific domain using the terminology of the domain.
  • Models created using object technology should be easy to create, change, expand, validate, and verify.
  • Systems built using object technology are flexible to change, have well-defined architectures, and have the opportunity to create and implement reusable components.
  • Models created using object technology are conveniently implemented in software using object-oriented programming languages.
  • Object technology is not just a theory, but a well-proven technology used in a large number of projects and for building many types of systems.

78 of 141

What Is Object Technology?

  • Object Technology
    • A set of principles guiding software construction together with languages, databases, and other tools that support those principles. (Object Technology - A Manager’s Guide, Taylor, 1997)

79 of 141

Strengths of Object Technology

  • A single paradigm
    • A single language used by users, analysts, designers, and implementers
  • Facilitates architectural and code reuse
  • Models more closely reflect the real world
    • More accurately describes corporate entities
    • Decomposed based on natural partitioning
    • Easier to understand and maintain
  • Stability
    • A small change in requirements does not mean massive changes in the system under development
  • Adaptive to change

80 of 141

What Is a Model?

  • A model is a simplification of reality.

81 of 141

What is Model?

  • According to Grady Booch, a model provides the blueprints of a system. Models may encompass detailed plans, as well as more general plans that give a 30,000-foot view of the system under construction. A good model includes those elements that are not relevant to the given level of abstraction. Every system may be described from different aspects using different models, and each model is therefore a semantically closed abstraction of the system. A model may be structural, emphasizing the organization of the system, or it may be behavioral, emphasizing the dynamics of the system.

82 of 141

Model is :

83 of 141

Why Do We Model?

  • We build models to better understand the system we are developing.
  • Modeling achieves four aims. Modeling:
    • Helps us to visualize a system as we want it to be.
    • Permits us to specify the structure or behavior of a system.
    • Gives us a template that guides us in constructing a system.
    • Documents the decisions we have made.
  • We build models of complex systems because we cannot comprehend such a system in its entirety.

84 of 141

What Is an Object?

  • Informally, an object represents an entity, either physical, conceptual, or software.

    • Physical entity��
    • Conceptual entity��
    • Software entity

Truck

Chemical Process

Linked List

85 of 141

A More Formal Definition

  • An object is an entity with a well-defined boundary and identity that encapsulates state and behavior.
    • State is represented by attributes and relationships.
    • Behavior is represented by operations, methods, and state machines.

Object

Operations

Attributes

86 of 141

Object ?

  • An object is an entity that has a well-defined boundary. That is, the purpose of the object should be clear.
  • An object has two key components: attributes and operations.
  • Attributes represent an object’s state, and operations represent the behavior of the object.

87 of 141

An Object Has State

  • The state of an object is one of the possible conditions in which an object may exist.
  • The state of an object normally changes over time.

Name: J Clark

Employee ID: 567138

HireDate: 07/25/1991

Status: Tenured

Discipline: Finance

MaxLoad: 3

Name: J Clark

Employee ID: 567138

Date Hired: July 25, 1991

Status: Tenured

Discipline: Finance

Maximum Course Load: 3 classes

Professor Clark

88 of 141

An Object Has Behavior

  • Behavior determines how an object acts and reacts.
  • The visible behavior of an object is modeled by the set of messages it can respond to (operations the object can perform).

Professor Clark’s behavior

Submit Final Grades

Accept Course Offering

Take Sabbatical

Maximum Course Load: 3 classes

SubmitFinalGrades()

AcceptCourseOffering()

TakeSabbatical()

Professor Clark

SetMaxLoad()

89 of 141

An Object Has Identity

  • Each object has a unique identity, even if the state is identical to that of another object.

Professor “J Clark” teaches Biology

Professor “J Clark” teaches Biology

90 of 141

Representing Objects in the UML

  • An object is represented as a rectangle with an underlined name.

Named Object

Unnamed Object

Professor J Clark

91 of 141

Basic Principles of Object Orientation

Object Orientation

Encapsulation

Abstraction

Hierarchy

Modularity

92 of 141

What Is Abstraction?

  • The essential characteristics of an entity that distinguish it from all other kinds of entities
  • Defines a boundary relative to the �perspective of the viewer
  • Is not a concrete manifestation, denotes the ideal essence of something

93 of 141

Abstraction :

  • Any model that includes the most important, essential, or distinguishing aspects of something while suppressing or ignoring less important, immaterial, or diversionary details. The result of removing distinctions so as to emphasize commonalties. (Dictionary of Object Technology, Firesmith, Eykholt, 1995)
  • Abstraction allows us to manage complexity by concentrating on the essential characteristics of an entity that distinguish it from all other kind of entities.
  • An abstraction is domain and perspective dependent. That is, what is important in one context, may not be in another.
  • OO allows us to model our system using abstractions from the problem domain (for example, classes and objects).

94 of 141

Abstraction Example :

  • A car is an example of an abstraction. A car is an abstraction for “a mobile, powered vehicle for transporting people from place to place.”
  • The abstract use of car is not concrete. However, if you describe the car as a 1995 Blue Ford Mustang, then it becomes a concrete manifestation and not an abstraction.

95 of 141

Example: Abstraction

Student

Professor

Course Offering (9:00 AM,

Monday-Wednesday-Friday)

Course (e.g. Algebra)

96 of 141

What Is Encapsulation?

Improves Resiliency

  • Hide implementation from clients.
    • Clients depend on interface.

97 of 141

Encapsulation ?

  • The physical localization of features (e.g., properties, behaviors) into a single blackbox abstraction that hides their implementation (and associated design decisions) behind a public interface.
  • Encapsulation is often referred to as “information hiding,” making it possible for the clients to operate without knowing how the implementation fulfills the interface.
  • Encapsulation eliminates direct dependencies on the implementation (clients depend on/use the interface). Thus, it’s possible to change the implementation without updating the clients as long as the interface is unchanged.
  • Clients will not be affected by changes in implementation. This reduces the “ripple effect,” which happens when a correction to one operation forces the corresponding correction in a client operation and so on. As a result of encapsulation, maintenance is easier and less expensive.
  • Encapsulation offers two kinds of protection. It protects an object’s internal state from being corrupted by its clients and client code from changes in the object’s implementation.

98 of 141

Example on Encapsulation ?

  • An example is a car’s accelerator. Generally speaking, you put your foot down and the car goes faster. You don’t worry about the cables, electronics, engine, and the rest.

99 of 141

Encapsulation Illustrated

  • Professor Clark needs to be able to teach four classes in the next semester.

SubmitFinalGrades()

AcceptCourseOffering()

TakeSabbatical()

Professor Clark

SetMaxLoad()

Name: J Clark

Employee ID: 567138

HireDate: 07/25/1991

Status: Tenured

Discipline: Finance

MaxLoad:4

SetMaxLoad(4)

100 of 141

What Is Modularity?

  • Modularity is the breaking up of something complex into manageable pieces.
  • Modularity helps people to understand complex systems.

101 of 141

Example: Modularity

Course Registration System

?

Billing System

Course Catalog System

Student Management System

102 of 141

What Is Hierarchy?

Decreasing

abstraction

Increasing

abstraction

Asset

RealEstate

Savings

BankAccount

Checking

Stock

Security

Bond

Elements at the same level of the hierarchy should be at the same level of abstraction.

103 of 141

What Is a Class?

  • A class is a description of a set of objects that share the same attributes, operations, relationships, and semantics.
    • An object is an instance of a class.
  • A class is an abstraction in that it
    • Emphasizes relevant characteristics.
    • Suppresses other characteristics.

104 of 141

Representing Classes in the UML

  • A class is represented using a rectangle with compartments.

Professor J Clark

105 of 141

The Relationship Between Classes and Objects

  • A class is an abstract definition of an object.
    • It defines the structure and behavior of each object in the class.
    • It serves as a template for creating objects
  • Objects are grouped into classes.

Professor Paul Meijer

Professor Tom Allen

Professor Jane Torpie

106 of 141

What Is an Attribute?

  • An attribute is a named property of a class that describes a range of values that instances of the property may hold.
    • A class may have any number of attributes or no attributes at all.

Attributes

107 of 141

What Is an Operation?

  • An operation is the implementation of a service that can be requested from any object of the class to affect behavior.
  • A class may have any number of operations or none at all.

Operations

108 of 141

What Is Polymorphism?

Manufacturer A

Manufacturer B

Manufacturer C

OO Principle:�Encapsulation

  • The ability to hide many different implementations behind a single interface

109 of 141

Example: Polymorphism

Stock

Bond

Mutual Fund

Get Current Value

getCurrentValue()

getCurrentValue()

getCurrentValue()

110 of 141

What is an Interface?

  • Interfaces formalize polymorphism
  • Interfaces support “plug-and-play” architectures

Realization relationship

(stay tuned for realization relationships)

Shape

draw()

move()

scale()

rotate()

<<Interface>>

Tube

Pyramid

Cube

111 of 141

How Do You Represent An Interface?

Elided/Iconic Representation�(“lollipop”)

Canonical (Class/Stereotype) Representation

(stay tuned for realization relationships)

Shape

draw()

move()

scale()

rotate()

<<Interface>>

Shape

Tube

Pyramid

Cube

Tube

Pyramid

Cube

112 of 141

What Is a Package?

  • A package is a general purpose mechanism for organizing elements into groups.
  • It is a model element that can contain other model elements.

  • A package can be used
    • To organize the model under development.
    • As a unit of configuration management.

University

Artifacts

113 of 141

What is a Subsystem?

  • A combination of a package (can contain other model elements) and a class (has behavior)
  • Realizes one or more interfaces which define its behavior

OO Principles: Encapsulation and Modularity

Interface

Realization

Subsystem

(stay tuned for realization relationship)

Subsystem

Name

<<subsystem>>

Interface

114 of 141

What is a Component?

  • A non-trivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture
  • A component may be
    • A source code component
    • A run time components or
    • An executable component

Source File

Name

<<EXE>>

Executable

Name

OO Principle:�Encapsulation

<<DLL>>

Component

Name

Component Interface

115 of 141

Subsystems and Components

  • Components are the physical realization of an abstraction in the design
  • Subsystems can be used to represent the component in the design

Design Model

Implementation Model

Component

Name

<<subsystem>>

Component Name

Component Interface

Component Interface

OO Principles: Encapsulation and Modularity

116 of 141

What Is an Association?

  • The semantic relationship between two or more classifiers that specifies connections among their instances
    • A structural relationship, specifying that objects of one thing are connected to objects of another

Course

<<entity>>

Student

<<entity>>

Schedule

<<entity>>

117 of 141

What Is Multiplicity?

  • Multiplicity is the number of instances of one class relates to ONE instance of another class.
  • For each association, there are two multiplicity decisions to make, one for each end of the association.
    • For each instance of Professor, many Course Offerings may be taught.
    • For each instance of Course Offering, there may be either one or zero Professor as the instructor.

Professor

<<entity>>

CourseOffering

<<entity>>

0..1

0..*

0..1

0..*

instructor

118 of 141

Multiplicity Indicators

  • Unspecified
  • Exactly one
  • Zero or more (many, unlimited)

  • One or more
  • Zero or one (optional scalar role)
  • Specified range
  • Multiple, disjoint ranges

2..4

0..1

1..*

0..*

1

*

2, 4..6

119 of 141

What Is Aggregation?

  • An aggregation is a special form of association that models a whole-part relationship between an aggregate (the whole) and its parts.
    • An aggregation “Is a part-of” relationship.
  • Multiplicity is represented like other associations.

Part

Whole

0..1

1

1

0..1

120 of 141

What Is Navigability?

  • Indicates that it is possible to navigate from a associating class to the target class using the association

RegistrationController

<<control>>

CourseOffering

<<entity>>

Schedule

<<entity>>

121 of 141

Relationships: Dependency

  • A relationship between two model elements where a change in one may cause a change in the other
  • Non-structural, “using” relationship

Package

Class

Dependency relationship

Dependency relationship

Component

Client

Supplier

ClientPackage

SupplierPackage

Client

Supplier

122 of 141

What Is Generalization?

  • A relationship among classes where one class shares the structure and/or behavior of one or more classes
  • Defines a hierarchy of abstractions in which a subclass inherits from one or more superclasses
    • Single inheritance
    • Multiple inheritance
  • Is an “is a kind of” relationship

123 of 141

Example: Single Inheritance

  • One class inherits from another

Checking

Savings

Superclass (parent)

Subclasses

Generalization Relationship

Ancestor

Descendents

124 of 141

Example: Multiple Inheritance

  • A class can inherit from several other classes.

Use multiple inheritance only when needed and

always with caution!

FlyingThing

Animal

Horse

Wolf

Bird

Helicopter

Airplane

Multiple Inheritance

125 of 141

What Gets Inherited?

  • A subclass inherits its parent’s attributes, operations, and relationships
  • A subclass may:
    • Add additional attributes, operations, relationships
    • Redefine inherited operations (use caution!)
  • Common attributes, operations, and/or relationships are shown at the highest applicable level in the hierarchy

Inheritance leverages the similarities among classes

126 of 141

Example: What Gets Inherited

Truck

tonnage

GroundVehicle

weight

licenseNumber

Car

owner

register( )

getTax( )

Person

0..*

Trailer

1

Superclass (parent)

Subclass

generalization

size

127 of 141

What Is Realization?

  • One classifier serves as the contract that the other classifier agrees to carry out
  • Found between:
    • Interfaces and the classifiers that realize them

Elided form

Canonical form

Use-Case Realization

Use-Case

    • Use cases and the collaborations that realize them

Subsystem

<<subsystem>>

Interface

Class

Interface

Interface

128 of 141

What Are Stereotypes?

  • Stereotypes define a new model element in terms of another model element.
  • Sometimes, you need to introduce new things that speak the language of your domain and look like primitive building blocks.

Stereotype

129 of 141

What Are Notes?

  • A comment that can be added to include more information on the diagram
  • May be added to any UML element
  • A ‘dog eared’ rectangle
  • May be anchored to an element with a dashed line

MaintainScheduleForm

There can be up to one

MaintainScheduleForm

per user session.

130 of 141

Tagged Values

  • Extensions of the properties, or specific attributes, of a UML element
  • Some properties are defined by UML
    • Persistence
    • Location (e.g., client, server)
  • Properties can be created by UML modelers for any purpose

PersistentClass�{persistence}

anObject : ClassA�{location=server}

131 of 141

Class Relationships

Class diagrams may contain the following relationships:

    • Association
    • Aggregation
    • Composition
    • Generalization
    • Dependency
    • Realizes

OR

OR

OR

132 of 141

Association

  • Specifies peer-to-peer relationships between model elements

  • Navigability can be unidirectional or bidirectional

OR

133 of 141

Aggregation

  • Used to model a whole to part relationship between model elements
    • The part element can exist without the whole

  • Navigability can be unidirectional or bidirectional

OR

134 of 141

Composition

  • Aggregation with strong ownership
    • When the container is destroyed, all of its composite objects are destroyed

  • Navigability can be unidirectional or bidirectional

OR

135 of 141

Generalization

  • A relationship where one class shares the structure and behavior of one or more classes

  • Defines a hierarchy of abstractions where a subclass inherits a superclass

  • This is an “is a kind of” relationship

136 of 141

Dependency

  • A relationship in which one class uses another
  • Dependencies may exist between classes because:
    • A message is sent from one class to the other
    • One class is part of another's data
    • One mentions the other as a parameter to an operation

137 of 141

Realization

  • A specialized relationship where the client implements the suppliers specification

138 of 141

Review: Concepts of Object Orientation

  • What are the four basic principles of object orientation? Provide a brief description for each.
  • What is an object and what is a class? What is the difference between the two?
  • What is an attribute?
  • What is an operation?
  • What is an interface? What is polymorphism?

139 of 141

Review: Concepts of Object Orientation (continued)

  • What is a package?
  • What is a subsystem? How does it relate to a package? How does it relate to a class?
  • Name the four basic UML relationships and describe each.
  • Describe the strengths of object orientation
  • What are stereotypes?

140 of 141

Review: OOAD

OOAD :

Divides the problem into set of objects that interacts to solve the problem .

Why OOAD ?

1.As Software industries are Complex,labour Intensive i.e., too many people is doing too many things we can’t predict any ting.

2.To avoid redundancy (duplication of Component)

3.Obaject can help to increase modularity.

141 of 141

Example: Activity Diagram

Select

Course

Check

Schedule

Check

Pre-requisites

Assign to

course

Resolve

conflicts

Update

schedule

[ student added to the course ]

[ add course ]

Delete Course

[ delete course ]

[ checks completed ]

[ checks failed ]

Activity State

Synchronization Bar (Fork)

Guard Condition

Synchronization Bar (Join)

Decision

Concurrent threads

Transition