0% found this document useful (0 votes)
27 views55 pages

UML ch1

The document discusses the software development process using the Unified Modeling Language (UML). It covers the challenges of software development, including complexity, longevity, and high user expectations. It then discusses software engineering as a discipline for developing high-quality, cost-effective software. The document outlines how software systems model and abstract the real world, and how object-oriented concepts and the UML standard are used to develop software through analysis, design, and programming.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views55 pages

UML ch1

The document discusses the software development process using the Unified Modeling Language (UML). It covers the challenges of software development, including complexity, longevity, and high user expectations. It then discusses software engineering as a discipline for developing high-quality, cost-effective software. The document outlines how software systems model and abstract the real world, and how object-oriented concepts and the UML standard are used to develop software through analysis, design, and programming.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Chapter 1

The software development


process using Unified
Modeling Language
(UML)
Challenges of Software Development
 Complexity of software systems
 Longevity and evolution of software systems
 High user expectations

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.2


Software Engineering
 Engineering discipline concerned with all aspects of developing
and delivering high-quality and useful software in a cost-effective
manner

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.3


Modeling the Real World
 A software system provides a solution to a problem in the real
world.
 It consists of two essential components:
 Model: abstraction of a part of the real world
 Algorithm: captures the computations involved in manipulating or
processing the model.

Software system

Abstraction
Real world Model Algorithm

Interpretation

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.4


How to Model Real World?
 Programming languages
 Tools to describe computer models
 Programming models
 Computation-oriented model (50s ~ 60s)
 Data-oriented model (70 ~ 80s)
 Object-oriented model (90s ~ )
 Balanced view between data and computation

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.5


Object-Oriented System Development
 OO information system development involves:
 OOA
 Using an OO approach to system analysis
 OOD
 Using an OO approach to system design
 OOP
 Using an OO approach to programming

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.6


2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.7
Object-Oriented Concepts
 Object-oriented (OO) design techniques are becoming popular:
– Inception in early 1980’s and nearing maturity.
– Widespread acceptance in industry and academics.
– Unified Modeling Language (UML) already an ISO standard
(ISO/IEC 19501) for modeling OO systems.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.8


Understanding OO Development
 OO Analysis and Design
 Unified Modeling Language (UML)
 Standard OOA&D modeling notation
 Defined by: Grady Booch, James Rumbaugh & Ivar Jacobson
 Uses model-driven approach:
– Enables creation of graphical models of the system
requirements and system design

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.9


Understanding OO Development
 OO Analysis and Design
 System Development Life Cycle (SDLC)
 Project management framework that defines project phases and
activities
 Phases:
– Planning
– Analysis
– Design
– Implementation
– Support

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.10


Understanding OO Development
 OO Analysis and Design
 Prototyping
 Creating a working model of one or more parts of the system for
user evaluation and feedback
 Joint Application Development (JAD)
 Key system stakeholders and decision makers work together to
rapidly define system requirements and designs

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.11


Understanding OO Development
 OO Analysis and Design
 Other requirements:
 Project management
 Interviewing
 Data collection
 User interface (UI) design
 Testing
 Conversion techniques

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.12


2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.13
Object-oriented Design - Objectives
 To explain how a software design may be represented as a set
of interacting objects that manage their own state and operations
 To describe the activities in the object-oriented design process
 To introduce various models that can be used to describe an
object-oriented design
 To show how the UML may be used to represent these models

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.14


Object-Oriented Development
 Approach
 Focuses on improving the maintainability and reusability of software
systems through a set of techniques, notations, tools, and criteria.
 Activities
 Conceptualization
 Object-oriented analysis and modeling
 Object-oriented design
 Implementation
 Maintenance

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.15


Detailed Activities
 Conceptualization
 To establish the vision and core requirements of the software
system to be developed.
 Object-oriented analysis and modeling
 To build models of the system’s desired behavior, using
notations such as the Unified Modeling Language (UML).
 To capture the essential relevant aspects of the real world
and to define the services to be provided and/or the problems
to be solved.
 To simplify reality to better understand the system to be
developed.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.16


Detailed Activities (Contd.)
 Object-oriented design
 To create an architecture for implementation.
 Represented in terms of objects and classes and the
relationships among them.
 Implementation:
 To implement the design by using an object-oriented
programming language (e.g., Java)
 Maintenance:
 To manage postdelivery evolution effectively.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.17


Advantages of OOD
 Easier maintenance. Objects may be understood as stand-alone
entities.
 Objects are potentially reusable components.
 For some systems, there may be an obvious mapping from real
world entities to system objects.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.18


Object Oriented methodologies.

- The Rumbaugh OMT

- The Booch methodology

- Jacobson’s methodologies

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.19


Rumbaugh’s Object Modeling Technique
(OMT)
The object modeling techniques is an methodology of object
oriented analysis, design and implementation that focuses
on creating a model of objects from the real world and then
to use this model to develop object–oriented software. object
modeling technique, OMT was developed by James
Rambaugh. Now-a-days, OMT is one of the most popular
object oriented development techniques. It is primarily used
by system and software developers to support full life cycle
development while targeting object oriented
implementations.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.20


Four phases of OMT
(can be performed iteratively)
 Analysis: objects, dynamic and functional
models
 System Design: Basic architecture of the
system.
 Object Design: static, dynamic and functional
models of objects.
 Implementation: reusable, extendible and
robust code.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.21


Analysis
 Analysis is the first phase of OMT methodology. The aim of
analysis phase is to build a model of the real world situation to
show its important properties and domain. This phase is
concerned with preparation of precise and correct modelling of
the real world. The analysis phase starts with defining a problem
statement which includes a set of goals. This problem statement
is then expanded into three models; an object model, a dynamic
model and a functional model. The object model shows the static
data structure or skeleton of the real world system and divides
the whole application into objects. In others words, this model
represents the artifacts of the system. The dynamic model
represents the interaction between artifacts above designed
represented as events, states and transitions. The functional
model represents the methods of the system from the data flow
perspective. The analysis phase generates object model
diagrams, state diagrams, event flow diagrams and data flow
diagrams.
2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.22
Three different parts of OMT modeling

 An object model - object model & data dictionary


 A dynamic model - state diagrams & event flow
diagrams
 A functional model - data flow & constraints

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.23


Object Model
 structure of objects in a system.
 Identity, relationships to other objects, attributes and operations.
 Object diagram

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.24


Object Diagram
 Classes interconnected by association lines
 Classes- a set of individual objects
 Association lines- relationship among classes (i.e., objects of
one class to objects of another class)

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.25


OMT Dynamic Model
 States, transitions, events and actions
 OMT state transition diagram-network of states and events

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.26


OMT Functional Model
 DFD- (Data Flow Diagram)

 Shows flow of data between different


processes in a business.
 Simple and intuitive method for describing
business processes without focusing on the
details of computer systems.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.27


Data Flow Diagram
 Four primary symbols

Process- any function being performed


Data Flow- Direction of data element movement

Data Store – Location where data is stored

External Entity-Source or Destination


of a data element

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.28


System design
 The system design phase comes after the analysis phase.
System design phase determines the overall system architecture
using subsystems, concurrent tasks and data storage. During
system design, the high level structure of the system is designed.
The decisions made during system design are:
 The system is organized in to sub-systems which are then allocated
to processes and tasks, taking into account concurrency and
collaboration.
 Persistent data storage is established along with a strategy to
manage shared or global information.
 Boundary situations are checked to help guide trade off priorities.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.29


Object design
 The object design phase comes after the system design phase is
over. Here the implementation plan is developed. Object design
is concerned with fully classifying the existing and remaining
classes, associations, attributes and operations necessary for
implementing a solution to the problem. In object design:
 Operations and data structures are fully defined along with any
internal objects needed for implementation.
 Class level associations are determined.
 Issues of inheritance, aggregation, association and default values
are checked.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.30


Implementation
 Implementation phase of the OMT is a matter of translating the
design in to a programming language constructs. It is important
to have good software engineering practice so that the design
phase is smoothly translated in to the implementation phase.
Thus while selecting programming language all constructs
should be kept in mind for following noteworthy points.
 To increase flexibility.
 To make amendments easily.
 For the design traceability.
 To increase efficiency.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.31


The Booch Methodology
 Widely used OO method
 Uses the object paradigm
 Covers the design and analysis phase of an OO system
 Criticized for his large set of symbols

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.32


Diagrams of Booch method
 Class diagrams
describe roles and responsibilities of objects
 Object diagrams
describe the desired behavior of the system in terms of
scenarios
 State transition diagrams
state of a class based on a stimulus
 Module diagrams
to map out where each class & object should be declared
 Process diagrams
to determine to which processor to allocate a process
 Interaction diagrams
describes
2/23/2021 9:07 behavior
PM of theDipankar
system Dutta, UIT,in
BU terms of scenarios 1.33
JACOBSON METHODOLOGIES

 Use Cases.
 Object Oriented Software Engineering.
 Object Oriented Business Engineering.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.34


Use Cases

 Understanding system requirements


 Interaction between Users and Systems
 The use case description must contain

 How and when the use case begins and ends.


 The Interaction between the use case and its actors,
including when the interaction occurs and what is
exchanged.
 How and when the use case will need data stored in the
system.
 Exception to the flow of events
 How and when concepts of the problem domain are handled.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.35


OOSE
 Object Oriented Software Engineering.
 Objectory is built models
 Use case model
 Domain object model
 Analysis object model
 Implementation model
 Test model

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.36


OOBE
 Object Oriented Business Engineering
 OOBE is object modeling at the enterprise level.
 Analysis phase
 Design and Implementation phase
 Testing phase
 E.g. Unit testing, integration and system testing.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.37


Unified Modeling Language(UML)
Object Modeling Using UML
 UML is a modeling language
 Not a system design or development methodology
 Used to document object-oriented analysis and design
 Independent of any specific design methodology

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.39


UML Origin
 In late 1980s and early 1990s different software development
houses were using different notations.
 Developed in early 1990s to:
– Standardize the large number of object-oriented modeling
notations.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.40


UML Lineology
Based Principally on
– OMT [Rumbaugh 1991]
– Booch’s methodology[Booch 1991]
– OOSE [Jacobson 1992]
– Odell’s methodology[Odell 1992]
– Shlaer and Mellor [Shlaer 1992]

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.41


UML

OMT

UML

Booch
Methodology
OOSE

Different object modeling techniques in UML


2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.42
UML as A Standard
 Adopted by Object Management Group(OMG) in 1997
 OMG is an association of industries
 Promotes consensus notations and techniques
 Used outside software development
– Example car manufacturing

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.43


UML Definition by OMG
 The Unified Modeling Language (UML) is a graphical language
for visualizing,specifying, constructing, and documenting the
artifacts of a software-intensive system.

 The UML offers a standard way to write a system's blueprints,


including conceptual things such as business processes and
system functions as well as concrete things such as
programming language statements, database schemas, and
reusable software components.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.44


Why are UML Models Required?
 A model is required to capture only important aspects
 UML a graphical modelling tool
 Easy to understand and construct
 Helps in managing complexity

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.45


UML Diagrams
 Nine diagrams are used to capture different views of a system.
 Provide different perspectives of a software system.
 Diagrams can be refined to get the actual implementation of a
system.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.46


UML Model Views
 Views of a system:
– User’s view
– Structural view
– Behavioral view
– Implementation view
– Environmental view

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.47


User’s view

 Defines the functionalities(facilities) made available by the


system to the users.
 User’s view captures external user’s view.
 It is black box view of the system.
 Internal structure, the dynamic behavior of the different system
components, the implementations are not visible.
 Considered as central view.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.48


Structural view
 Defines the kinds of objects(classes) important to the
understanding of a system and to its implementation.
 Captures relationship among classes(objects)
 Static model, not change with time.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.49


Behavioral view
 Captures how objects interact with each other to realize system
behavior.
 Dynamic model, change with time.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.50


Implementation view
 Captures the important components of the system and their
dependencies.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.51


Environmental view
 Shows how the different components are implemented on
different pieces of hardware.

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.52


UML Diagrams

Behavioural View
Structural View - Sequence Diagram
- Class Diagram - Collaboration Diagram
- Object Diagram - State-chart Diagram
- Activity Diagram
User’s View
-Use Case
Diagram

Implementation View
- Component Diagram Environmental View
- Deployment Diagram

Diagrams and views in UML


2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.53
Are All Views Required for Developing
A Typical System?
 NO
 Use case diagram, class diagram and one of the
interaction diagram for a simple system
 State chart diagram required to be developed when a class state
changes
 However, when states are only one or two, state chart model
becomes trivial
 Deployment diagram in case of large number of hardware
components used to develop the system

2/23/2021 9:07 PM Dipankar Dutta, UIT, BU 1.54


Thank you

Questions?

You might also like