Software Engineering : OOAD using UML

Ajit Nayak
Ajit NayakProfessor um Siksha O Anusandhan
Software Engineering Principles
Ajit K Nayak, Ph.D.
ajitnayak@soauniversity.ac.in
Object oriented Software design
using UML
Acknowledgements
• Slides of Prof. Rajib Mall, IIT, KGP
Introduction
• Object-oriented (OO) design techniques are extremely
popular:
– Inception in early 1980’s and nearing maturity.
– Widespread acceptance in industry and
academics.
– Unified Modelling Language (UML) already an ISO
standard (ISO/IEC 19501).
Object Oriented
• A system is designed as a set of interacting objects:
– Often, real-world entities: e.g. an employee, a book
etc.
– Can be conceptual objects also: e.g. Controller,
manager, etc.
• Objects consists of data (attributes) and functions
(methods) that operate on data.
– Encapsulation
• Hides organization of internal information
– Data abstraction
Model of an Object
Data
Class
m8 m7
m6
m5
m4m3
m2
m1
mi are methods
of the class
Components of Object Model
• Class
• Methods & Messages
• Relations
– Inheritance
– Association
– Aggregation/composition
– Dependency
• Polymorphism
• Genericity
Advantages of Object-Oriented
Development
• Code and design reuse
• Increased productivity
• Ease of testing and maintenance
• Better understandability
• Elegant design:
– Loosely coupled, highly cohesive objects:
– Essential for solving large problems.
• Initially incurs higher costs
– After completion of some projects reduction in cost
become possible
• Using well-established OO methodology and environment:
– Projects can be managed with 20% -- 50% of traditional
cost of development.
Object modelling using UML
• Unified Modeling Language is a modelling language
– Not a system design or development methodology
• Used to document object-oriented analysis and design
• Independent of any specific design methodology
• UML developed in early 1990s
– To standardize the large number of object-oriented
modelling notations that existed.
• Current version is UML2.0
• Adopted by Object Management Group (OMG) in 1997
– OMG an association of industries that promotes
consensus notations and techniques
Object Modelling Techniques
UML
Booch’s
Methodology
[Booch 1991]
OOSE
[Jacobson 1992]
OMT [Rumbaugh 1991]
Flash Back
• Grady Booch was
working as Chief
Scientist of Rational
Software Corporation
• Rational Software
Corporation hired James
Rumbaugh from General
Electric in 1994
• Ivar Jacobson joined
them at Rational in 1995
• And the History is made
Booch
Rumbaugh
Jacobson
When you want to build a house!
What is UML
• UML a graphical modelling tool, easy to understand
and construct
• It provides many diagrams to capture different views
of a system
– Model is required to capture only important aspects
– Helps in managing complexity
UML 1.x Diagrams
• 9 diagrams supporting 5 views
User’s View
-Use Case
Diagram
Structural View
- Class Diagram
- Object Diagram
Implementation View
- Component Diagram
Environmental View
- Deployment Diagram
Behavioural View
- Sequence Diagram
- Collaboration Diagram
- State-chart Diagram
- Activity Diagram
UML 2.0 Diagrams
UML 2.0
Diagram
Behavior
Diagram
Structure
Diagram
Class
Diagram
Composite
Structure Diagram
Object
Diagram
Activity
Diagram
Use Case
Diagram
State Machine
Diagram
Interaction
Diagram
Component
Diagram
Deployment
Diagram
Package
Diagram
Sequence
Diagram
Communication
Diagram
Interaction
Overview
Diagram
Timing
Diagram
Use Case Modelling
Use Case Model
• Consists of a set of “use cases”
• It is the central model:
– Other models must conform to this model
– Not really an object-oriented model
– A functional model of the system
• Use Cases are the main tasks performed by the users of
the system.
• Use Cases describe the behavioral aspects of the system.
• Use Cases are used to identify how the system will be
used.
• Use Cases are a convenient way to document the
functions that the system must support.
• Use Cases are used to identify the components (classes)
of the system.
Use Cases
• Normally, use cases are independent of each other
• Implicit dependencies may exist
• Example: In Library Automation System, renew-book and
reserve-book are independent use cases.
– But in actual implementation of renew-book--- A check is
made to see if any book has been reserved using
reserve-book.
• Other Possible Use Cases in Library information system
– issue-book
– query-book
– return-book
– create-member
– add-book, etc.
Representation of Use Cases
• Represented in a use case diagram
– A Use Case is represented by an ellipse
– System boundary is represented by a rectangle
– Users are represented by stick person icons (actor)‫‏‬
– Communication relationship between actor and
Use Case by a line
• External system by a stereotype
Tic-tac-toe game
Play Move
Ex1: Draw a Use Case Model
• Video Store Information System supports the
following business functions:
– Recording information about videos the store owns
• This database is searchable by staff and all customers
– Information about a customer’s borrowed videos
• Access by staff and also the customer. It involves video database
searching.
– Staff can record video rentals and returns by
customers. It involves video database searching.
– Staff can maintain customer, video and staff
information.
– Managers of the store can generate various reports.
Ex1: Solution
Maintain
Customers
Staff
Rent/Return
Videos
Maintain
Videos
Generate
Reports
Customer
Manager
Search for
Videos
«include»
«include»
Video Store Information System
Development of a Use Case Diagram
• Identify all of the actors who will use the system.
• Interview these actors to identify the functions that
they need to perform. (use cases)
• Identify scenarios (sequence of steps to accomplish a
use case).
• Identify common steps within the different scenarios.
Separate them into different use cases so that they
can easily be included in other scenarios.
• Identify relationships between use cases.
Actors
• Actor - an entity external to the system that in some
way participates in the use case. Actor represents a
role that a user can play.
• An actor typically stimulates the system with input
events or receives outputs from the system or does
both.
• Actors are treated like classes and can be generalized.
• Primary actor: Use the system to achieve a goal.
(found in left side of the use case diagram)
• Secondary actor: plays a supporting role to facilitate
the primary actor to achieve their goal. (right side)
Identification of Use Cases
• Actor-based:
– Identify the actors related to a system or
organization.
– For each actor, identify the processes they initiate or
participate in.
• Event-based
– Identify the external events that the system must
respond to.
– Relate the events to actors and use cases.
Factoring Use Cases
• Two main reasons for factoring:
– Complex use cases need to be factored into simpler
use cases
– To represent common behaviour across different
use cases
• Three ways of factoring:
– Generalization
– Include
– Extend
Generalization
• The child use case inherits the behaviour of the parent
use case.
– The child may add to or override some of the
behavior of its parent.
parent
child
Registration
Graduate
registration
Under-graduate
registration
Include
• When you have a piece of behaviour that is similar
across many use cases
– Break this out as a separate use-case and let the
other ones “include” it
• Examples of use case include
– Validate user interaction
– Sanity check on sensor inputs
– Check for proper authorization
Base use case Common
use case
<<include>>
Issue Book
Check
Reservation
Renew Book
<<include>>
<<include>>
Extends
• Use when a use-case optionally can do a little bit
more:
– Capture the normal behaviour
– Capture the extra behaviour in a separate use-case
– Create extends dependency
• Makes it a lot easier to understand
Order
Item
Show
Catalog
<<extend>>
Example
Place Order
Supply
Customer Data
Order
Product
Arrange
Payment
Request
Catalog
<<include>>
<<include>>
<<include>>
<<extend>> Salesperson asks for catalog
Sales Person
Cash
Payment
Credit
Payment
Ex2: Course Management Software
• At the beginning of each semester,
– Each professor shall register the courses that he is going
to teach.
• A student can select up to four-course offerings.
– During registration a students can request a course
catalogue showing course offerings for the semester.
– Information about each course such as professor,
department and prerequisites would be displayed.
– The registration system sends information to the billing
system so the students can be billed for the semester.
• For each semester, there is a period of time during which
dropping of courses is permitted.
• Professors must be able to access the system to see which
students signed up for each of their course offerings.
Register
offering
Show
registration
Register
course
Drop Course
Student
Calendar
Course Management Software
Ex 2: Solution
See Course
List
Professor
<<Extend>>
<<External>>
Billing System
Use-Case Model using Packaging
UML Class Diagrams
Thank You
Class
• A class represents a set of objects having similar
attributes, operations, relationships and behaviour.
• Instances are objects
• Template for object creation
• Considered as abstract data type (ADT)‫‏‬
– Examples: Employees, Books, etc.
• Sometimes not intended to produce instances:
– Abstract classes
Methods & Messages
• Operations supported by an object:
– Means for manipulating the data of other objects.
– Invoked by sending a message (method call).
– Examples: calculate_salary, issue-book,
member_details, etc.
Inheritance
• Allows to define a new class
(derived class) by extending
or modifying existing class
(base class).
• Represents generalization-
specialization relationship.
• Allows redefinition of the
existing methods (method
overriding).
• Types
– Single/Simple; multilevel
– Multiple
LibraryMember
ResearchPostGradUnderGrad
StaffStudentsFaculty
Base Class
Derived
Classes
Association
• Enables objects to communicate with each other:
– Thus one object must “know” the address of the
corresponding object in the association.
• Usually binary:
– But in general can be n-ary.
Library Member Book
1 *borrowed by
Aggregation
• Represents whole-part relationship
• Represented by a diamond symbol at the composite
end
• Cannot be reflexive(i.e. recursive)‫‏‬
• Not symmetric
• It can be transitive
Document Line
* Paragraph 1 *
Composition
• A stronger form of aggregation
– The whole is the sole owner of its part.
• A component can belong to only one whole
– The life time of the part is dependent upon
the whole.
• The composite must manage the creation and
destruction of its parts.
Order
1 *
Item
Dependency
• Dependency relationship can arise due to a variety of
reasons:
– Stereotypes are used to show the precise nature of
the dependency.
Type of
dependency
Stereotype Description
Abstraction «abstraction» Relates two model elements, that represent
the same concept at different levels of
abstraction
Binding «bind» Connects template arguments to template
parameters to create model elements from
templates.
Realization «realize» Indicates that the client model element is an
implementation of the supplier model element
Substitution «substitute» Indicates that the client model element
takes place of the supplier.
Polymorphism
• Denotes poly (many) morphism (forms).
• Under different situations:
– Same message to the same object can result in
different actions:
• Static binding
• Dynamic binding
Genericity
 Ability to parameterize class definitions.
 Example: class stack of different types of elements:
 Integer stack
 Character stack
 Floating point stack
 Define generic class stack:
 Later instantiate as required
Thank You
1 von 43

Recomendados

Uml in software engineering von
Uml in software engineeringUml in software engineering
Uml in software engineeringMubashir Jutt
2.6K views15 Folien
Component and Deployment Diagram - Brief Overview von
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewRajiv Kumar
33.4K views14 Folien
Use Case Diagram von
Use Case DiagramUse Case Diagram
Use Case DiagramKumar
27.7K views24 Folien
SE_Lec 07_UML CLASS DIAGRAM von
SE_Lec 07_UML CLASS DIAGRAMSE_Lec 07_UML CLASS DIAGRAM
SE_Lec 07_UML CLASS DIAGRAMAmr E. Mohamed
3.7K views31 Folien
Uml class-diagram von
Uml class-diagramUml class-diagram
Uml class-diagramASHOK KUMAR PALAKI
24.2K views28 Folien
Use case Diagram von
Use case Diagram Use case Diagram
Use case Diagram Rahul Pola
5.7K views15 Folien

Más contenido relacionado

Was ist angesagt?

Use Case Diagram von
Use Case DiagramUse Case Diagram
Use Case DiagramAshesh R
68.1K views48 Folien
UML von
UMLUML
UMLiQra Rafaqat
8.3K views30 Folien
Overview of UML Diagrams von
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
13.9K views16 Folien
Object Oriented Design von
Object Oriented DesignObject Oriented Design
Object Oriented DesignSudarsun Santhiappan
46K views142 Folien
UML Diagrams von
UML DiagramsUML Diagrams
UML DiagramsKartik Raghuvanshi
32.6K views37 Folien
Sequence diagram von
Sequence diagramSequence diagram
Sequence diagramRahul Pola
17.6K views14 Folien

Was ist angesagt?(20)

Use Case Diagram von Ashesh R
Use Case DiagramUse Case Diagram
Use Case Diagram
Ashesh R68.1K views
Overview of UML Diagrams von Manish Kumar
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
Manish Kumar13.9K views
Sequence diagram von Rahul Pola
Sequence diagramSequence diagram
Sequence diagram
Rahul Pola17.6K views
Activity diagram-UML diagram von Ramakant Soni
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagram
Ramakant Soni12.5K views
Lecture6 activity diagrams von Shahid Riaz
Lecture6 activity diagramsLecture6 activity diagrams
Lecture6 activity diagrams
Shahid Riaz1.6K views
Uml diagrams von barney92
Uml diagramsUml diagrams
Uml diagrams
barney9244.9K views
Lecture7 use case modeling von Shahid Riaz
Lecture7 use case modelingLecture7 use case modeling
Lecture7 use case modeling
Shahid Riaz1.6K views
5.state diagrams von APU
5.state diagrams5.state diagrams
5.state diagrams
APU44K views
Object oriented methodologies von naina-rani
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
naina-rani81.5K views

Destacado

Software Engineering an Introduction von
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an IntroductionAjit Nayak
1.5K views32 Folien
Uml - An Overview von
Uml - An OverviewUml - An Overview
Uml - An OverviewRaj Thilak S
15.4K views70 Folien
Software Engineering :UML class diagrams von
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagramsAjit Nayak
3.5K views31 Folien
Software Engineering : Requirement Analysis & Specification von
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
11.5K views39 Folien
Software Engineering :Behavioral Modelling - I Sequence diagram von
Software Engineering :Behavioral Modelling - I Sequence diagram Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram Ajit Nayak
23.6K views27 Folien
UML Part1-Introduction Mansouri von
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
1.9K views60 Folien

Destacado(9)

Software Engineering an Introduction von Ajit Nayak
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
Ajit Nayak1.5K views
Uml - An Overview von Raj Thilak S
Uml - An OverviewUml - An Overview
Uml - An Overview
Raj Thilak S15.4K views
Software Engineering :UML class diagrams von Ajit Nayak
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagrams
Ajit Nayak3.5K views
Software Engineering : Requirement Analysis & Specification von Ajit Nayak
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
Ajit Nayak11.5K views
Software Engineering :Behavioral Modelling - I Sequence diagram von Ajit Nayak
Software Engineering :Behavioral Modelling - I Sequence diagram Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram
Ajit Nayak23.6K views
Lecture04- Use Case Diagrams von artgreen
Lecture04- Use Case DiagramsLecture04- Use Case Diagrams
Lecture04- Use Case Diagrams
artgreen21.2K views
Software Engineering :Behavioral Modelling - II State diagram von Ajit Nayak
Software Engineering :Behavioral Modelling - II State diagramSoftware Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagram
Ajit Nayak2.4K views

Similar a Software Engineering : OOAD using UML

Analysis von
AnalysisAnalysis
AnalysisPreeti Mishra
4.6K views53 Folien
Analysis modeling & scenario based modeling von
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling Benazir Fathima
5.9K views36 Folien
analysis and design with uml von
analysis and design with umlanalysis and design with uml
analysis and design with umlsabin kafle
829 views100 Folien
OOAD U1.pptx von
OOAD U1.pptxOOAD U1.pptx
OOAD U1.pptxanguraju1
14 views68 Folien
Unit 2 von
Unit 2Unit 2
Unit 2GunasundariSelvaraj
598 views143 Folien
OOSD_UNIT1 (1).pptx von
OOSD_UNIT1 (1).pptxOOSD_UNIT1 (1).pptx
OOSD_UNIT1 (1).pptxDebabrataPain1
2 views58 Folien

Similar a Software Engineering : OOAD using UML(20)

Analysis modeling & scenario based modeling von Benazir Fathima
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling
Benazir Fathima5.9K views
analysis and design with uml von sabin kafle
analysis and design with umlanalysis and design with uml
analysis and design with uml
sabin kafle829 views
Designing and documenting software architecture unit 5 von Sudarshan Dhondaley
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
Sudarshan Dhondaley2.3K views
RTDesignWithUMLUseCase.ppt von Shashikanth
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.ppt
Shashikanth2 views
Requirement analysis and UML modelling in Software engineering von snehalkulkarni74
Requirement analysis and UML modelling in Software engineeringRequirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineering
snehalkulkarni74531 views
Unit 1( modelling concepts & class modeling) von Manoj Reddy
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
Manoj Reddy25.1K views
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf von RojaPogul1
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdfunit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
RojaPogul13 views

Más de Ajit Nayak

Software Engineering : Software testing von
Software Engineering : Software testingSoftware Engineering : Software testing
Software Engineering : Software testingAjit Nayak
1.7K views21 Folien
Software Engineering : Process Models von
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process ModelsAjit Nayak
1.7K views49 Folien
Database Programming using SQL von
Database Programming using SQLDatabase Programming using SQL
Database Programming using SQLAjit Nayak
1.4K views97 Folien
Ns2: Introduction - Part I von
Ns2: Introduction - Part INs2: Introduction - Part I
Ns2: Introduction - Part IAjit Nayak
601 views17 Folien
Ns2: OTCL - PArt II von
Ns2: OTCL - PArt IINs2: OTCL - PArt II
Ns2: OTCL - PArt IIAjit Nayak
646 views27 Folien
NS2: AWK and GNUplot - PArt III von
NS2: AWK and GNUplot - PArt IIINS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIIAjit Nayak
2.4K views26 Folien

Más de Ajit Nayak(20)

Software Engineering : Software testing von Ajit Nayak
Software Engineering : Software testingSoftware Engineering : Software testing
Software Engineering : Software testing
Ajit Nayak1.7K views
Software Engineering : Process Models von Ajit Nayak
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
Ajit Nayak1.7K views
Database Programming using SQL von Ajit Nayak
Database Programming using SQLDatabase Programming using SQL
Database Programming using SQL
Ajit Nayak1.4K views
Ns2: Introduction - Part I von Ajit Nayak
Ns2: Introduction - Part INs2: Introduction - Part I
Ns2: Introduction - Part I
Ajit Nayak601 views
Ns2: OTCL - PArt II von Ajit Nayak
Ns2: OTCL - PArt IINs2: OTCL - PArt II
Ns2: OTCL - PArt II
Ajit Nayak646 views
NS2: AWK and GNUplot - PArt III von Ajit Nayak
NS2: AWK and GNUplot - PArt IIINS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt III
Ajit Nayak2.4K views
Socket programming using C von Ajit Nayak
Socket programming using CSocket programming using C
Socket programming using C
Ajit Nayak1.7K views
Object Oriented Analysis Design using UML von Ajit Nayak
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
Ajit Nayak7.5K views
Parallel programming using MPI von Ajit Nayak
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPI
Ajit Nayak1.1K views
Operating Systems Part III-Memory Management von Ajit Nayak
Operating Systems Part III-Memory ManagementOperating Systems Part III-Memory Management
Operating Systems Part III-Memory Management
Ajit Nayak1.6K views
Operating Systems Part I-Basics von Ajit Nayak
Operating Systems Part I-BasicsOperating Systems Part I-Basics
Operating Systems Part I-Basics
Ajit Nayak471 views
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock von Ajit Nayak
Operating Systems Part II-Process Scheduling, Synchronisation & DeadlockOperating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Ajit Nayak2.6K views
Introduction to database-Transaction Concurrency and Recovery von Ajit Nayak
Introduction to database-Transaction Concurrency and RecoveryIntroduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and Recovery
Ajit Nayak1.5K views
Introduction to database-Formal Query language and Relational calculus von Ajit Nayak
Introduction to database-Formal Query language and Relational calculusIntroduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculus
Ajit Nayak3.2K views
Introduction to database-Normalisation von Ajit Nayak
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-Normalisation
Ajit Nayak1.2K views
Introduction to database-ER Model von Ajit Nayak
Introduction to database-ER ModelIntroduction to database-ER Model
Introduction to database-ER Model
Ajit Nayak1.2K views
Computer Networks Module III von Ajit Nayak
Computer Networks Module IIIComputer Networks Module III
Computer Networks Module III
Ajit Nayak974 views
Computer Networks Module II von Ajit Nayak
Computer Networks Module IIComputer Networks Module II
Computer Networks Module II
Ajit Nayak2.1K views
Computer Networks Module I von Ajit Nayak
Computer Networks Module IComputer Networks Module I
Computer Networks Module I
Ajit Nayak4.6K views
Object Oriented Programming using C++ Part III von Ajit Nayak
Object Oriented Programming using C++ Part IIIObject Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part III
Ajit Nayak761 views

Último

Web Dev Session 1.pptx von
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptxVedVekhande
17 views22 Folien
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc... von
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...csegroupvn
8 views210 Folien
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf von
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdfASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdfAlhamduKure
8 views11 Folien
MongoDB.pdf von
MongoDB.pdfMongoDB.pdf
MongoDB.pdfArthyR3
49 views6 Folien
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth von
BCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for GrowthBCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for Growth
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for GrowthInnomantra
15 views4 Folien
Searching in Data Structure von
Searching in Data StructureSearching in Data Structure
Searching in Data Structureraghavbirla63
17 views8 Folien

Último(20)

Web Dev Session 1.pptx von VedVekhande
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptx
VedVekhande17 views
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc... von csegroupvn
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
csegroupvn8 views
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf von AlhamduKure
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdfASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
AlhamduKure8 views
MongoDB.pdf von ArthyR3
MongoDB.pdfMongoDB.pdf
MongoDB.pdf
ArthyR349 views
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth von Innomantra
BCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for GrowthBCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for Growth
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth
Innomantra 15 views
Design_Discover_Develop_Campaign.pptx von ShivanshSeth6
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptx
ShivanshSeth649 views
GDSC Mikroskil Members Onboarding 2023.pdf von gdscmikroskil
GDSC Mikroskil Members Onboarding 2023.pdfGDSC Mikroskil Members Onboarding 2023.pdf
GDSC Mikroskil Members Onboarding 2023.pdf
gdscmikroskil63 views
Ansari: Practical experiences with an LLM-based Islamic Assistant von M Waleed Kadous
Ansari: Practical experiences with an LLM-based Islamic AssistantAnsari: Practical experiences with an LLM-based Islamic Assistant
Ansari: Practical experiences with an LLM-based Islamic Assistant
M Waleed Kadous9 views
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx von lwang78
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
lwang78180 views
SUMIT SQL PROJECT SUPERSTORE 1.pptx von Sumit Jadhav
SUMIT SQL PROJECT SUPERSTORE 1.pptxSUMIT SQL PROJECT SUPERSTORE 1.pptx
SUMIT SQL PROJECT SUPERSTORE 1.pptx
Sumit Jadhav 22 views
Créativité dans le design mécanique à l’aide de l’optimisation topologique von LIEGE CREATIVE
Créativité dans le design mécanique à l’aide de l’optimisation topologiqueCréativité dans le design mécanique à l’aide de l’optimisation topologique
Créativité dans le design mécanique à l’aide de l’optimisation topologique
LIEGE CREATIVE8 views
_MAKRIADI-FOTEINI_diploma thesis.pptx von fotinimakriadi
_MAKRIADI-FOTEINI_diploma thesis.pptx_MAKRIADI-FOTEINI_diploma thesis.pptx
_MAKRIADI-FOTEINI_diploma thesis.pptx
fotinimakriadi12 views

Software Engineering : OOAD using UML

  • 1. Software Engineering Principles Ajit K Nayak, Ph.D. ajitnayak@soauniversity.ac.in Object oriented Software design using UML
  • 2. Acknowledgements • Slides of Prof. Rajib Mall, IIT, KGP
  • 3. Introduction • Object-oriented (OO) design techniques are extremely popular: – Inception in early 1980’s and nearing maturity. – Widespread acceptance in industry and academics. – Unified Modelling Language (UML) already an ISO standard (ISO/IEC 19501).
  • 4. Object Oriented • A system is designed as a set of interacting objects: – Often, real-world entities: e.g. an employee, a book etc. – Can be conceptual objects also: e.g. Controller, manager, etc. • Objects consists of data (attributes) and functions (methods) that operate on data. – Encapsulation • Hides organization of internal information – Data abstraction
  • 5. Model of an Object Data Class m8 m7 m6 m5 m4m3 m2 m1 mi are methods of the class
  • 6. Components of Object Model • Class • Methods & Messages • Relations – Inheritance – Association – Aggregation/composition – Dependency • Polymorphism • Genericity
  • 7. Advantages of Object-Oriented Development • Code and design reuse • Increased productivity • Ease of testing and maintenance • Better understandability • Elegant design: – Loosely coupled, highly cohesive objects: – Essential for solving large problems. • Initially incurs higher costs – After completion of some projects reduction in cost become possible • Using well-established OO methodology and environment: – Projects can be managed with 20% -- 50% of traditional cost of development.
  • 8. Object modelling using UML • Unified Modeling Language is a modelling language – Not a system design or development methodology • Used to document object-oriented analysis and design • Independent of any specific design methodology • UML developed in early 1990s – To standardize the large number of object-oriented modelling notations that existed. • Current version is UML2.0 • Adopted by Object Management Group (OMG) in 1997 – OMG an association of industries that promotes consensus notations and techniques
  • 9. Object Modelling Techniques UML Booch’s Methodology [Booch 1991] OOSE [Jacobson 1992] OMT [Rumbaugh 1991]
  • 10. Flash Back • Grady Booch was working as Chief Scientist of Rational Software Corporation • Rational Software Corporation hired James Rumbaugh from General Electric in 1994 • Ivar Jacobson joined them at Rational in 1995 • And the History is made Booch Rumbaugh Jacobson
  • 11. When you want to build a house!
  • 12. What is UML • UML a graphical modelling tool, easy to understand and construct • It provides many diagrams to capture different views of a system – Model is required to capture only important aspects – Helps in managing complexity
  • 13. UML 1.x Diagrams • 9 diagrams supporting 5 views User’s View -Use Case Diagram Structural View - Class Diagram - Object Diagram Implementation View - Component Diagram Environmental View - Deployment Diagram Behavioural View - Sequence Diagram - Collaboration Diagram - State-chart Diagram - Activity Diagram
  • 14. UML 2.0 Diagrams UML 2.0 Diagram Behavior Diagram Structure Diagram Class Diagram Composite Structure Diagram Object Diagram Activity Diagram Use Case Diagram State Machine Diagram Interaction Diagram Component Diagram Deployment Diagram Package Diagram Sequence Diagram Communication Diagram Interaction Overview Diagram Timing Diagram
  • 16. Use Case Model • Consists of a set of “use cases” • It is the central model: – Other models must conform to this model – Not really an object-oriented model – A functional model of the system • Use Cases are the main tasks performed by the users of the system. • Use Cases describe the behavioral aspects of the system. • Use Cases are used to identify how the system will be used. • Use Cases are a convenient way to document the functions that the system must support. • Use Cases are used to identify the components (classes) of the system.
  • 17. Use Cases • Normally, use cases are independent of each other • Implicit dependencies may exist • Example: In Library Automation System, renew-book and reserve-book are independent use cases. – But in actual implementation of renew-book--- A check is made to see if any book has been reserved using reserve-book. • Other Possible Use Cases in Library information system – issue-book – query-book – return-book – create-member – add-book, etc.
  • 18. Representation of Use Cases • Represented in a use case diagram – A Use Case is represented by an ellipse – System boundary is represented by a rectangle – Users are represented by stick person icons (actor)‫‏‬ – Communication relationship between actor and Use Case by a line • External system by a stereotype Tic-tac-toe game Play Move
  • 19. Ex1: Draw a Use Case Model • Video Store Information System supports the following business functions: – Recording information about videos the store owns • This database is searchable by staff and all customers – Information about a customer’s borrowed videos • Access by staff and also the customer. It involves video database searching. – Staff can record video rentals and returns by customers. It involves video database searching. – Staff can maintain customer, video and staff information. – Managers of the store can generate various reports.
  • 21. Development of a Use Case Diagram • Identify all of the actors who will use the system. • Interview these actors to identify the functions that they need to perform. (use cases) • Identify scenarios (sequence of steps to accomplish a use case). • Identify common steps within the different scenarios. Separate them into different use cases so that they can easily be included in other scenarios. • Identify relationships between use cases.
  • 22. Actors • Actor - an entity external to the system that in some way participates in the use case. Actor represents a role that a user can play. • An actor typically stimulates the system with input events or receives outputs from the system or does both. • Actors are treated like classes and can be generalized. • Primary actor: Use the system to achieve a goal. (found in left side of the use case diagram) • Secondary actor: plays a supporting role to facilitate the primary actor to achieve their goal. (right side)
  • 23. Identification of Use Cases • Actor-based: – Identify the actors related to a system or organization. – For each actor, identify the processes they initiate or participate in. • Event-based – Identify the external events that the system must respond to. – Relate the events to actors and use cases.
  • 24. Factoring Use Cases • Two main reasons for factoring: – Complex use cases need to be factored into simpler use cases – To represent common behaviour across different use cases • Three ways of factoring: – Generalization – Include – Extend
  • 25. Generalization • The child use case inherits the behaviour of the parent use case. – The child may add to or override some of the behavior of its parent. parent child Registration Graduate registration Under-graduate registration
  • 26. Include • When you have a piece of behaviour that is similar across many use cases – Break this out as a separate use-case and let the other ones “include” it • Examples of use case include – Validate user interaction – Sanity check on sensor inputs – Check for proper authorization Base use case Common use case <<include>> Issue Book Check Reservation Renew Book <<include>> <<include>>
  • 27. Extends • Use when a use-case optionally can do a little bit more: – Capture the normal behaviour – Capture the extra behaviour in a separate use-case – Create extends dependency • Makes it a lot easier to understand Order Item Show Catalog <<extend>>
  • 29. Ex2: Course Management Software • At the beginning of each semester, – Each professor shall register the courses that he is going to teach. • A student can select up to four-course offerings. – During registration a students can request a course catalogue showing course offerings for the semester. – Information about each course such as professor, department and prerequisites would be displayed. – The registration system sends information to the billing system so the students can be billed for the semester. • For each semester, there is a period of time during which dropping of courses is permitted. • Professors must be able to access the system to see which students signed up for each of their course offerings.
  • 30. Register offering Show registration Register course Drop Course Student Calendar Course Management Software Ex 2: Solution See Course List Professor <<Extend>> <<External>> Billing System
  • 31. Use-Case Model using Packaging
  • 34. Class • A class represents a set of objects having similar attributes, operations, relationships and behaviour. • Instances are objects • Template for object creation • Considered as abstract data type (ADT)‫‏‬ – Examples: Employees, Books, etc. • Sometimes not intended to produce instances: – Abstract classes
  • 35. Methods & Messages • Operations supported by an object: – Means for manipulating the data of other objects. – Invoked by sending a message (method call). – Examples: calculate_salary, issue-book, member_details, etc.
  • 36. Inheritance • Allows to define a new class (derived class) by extending or modifying existing class (base class). • Represents generalization- specialization relationship. • Allows redefinition of the existing methods (method overriding). • Types – Single/Simple; multilevel – Multiple LibraryMember ResearchPostGradUnderGrad StaffStudentsFaculty Base Class Derived Classes
  • 37. Association • Enables objects to communicate with each other: – Thus one object must “know” the address of the corresponding object in the association. • Usually binary: – But in general can be n-ary. Library Member Book 1 *borrowed by
  • 38. Aggregation • Represents whole-part relationship • Represented by a diamond symbol at the composite end • Cannot be reflexive(i.e. recursive)‫‏‬ • Not symmetric • It can be transitive Document Line * Paragraph 1 *
  • 39. Composition • A stronger form of aggregation – The whole is the sole owner of its part. • A component can belong to only one whole – The life time of the part is dependent upon the whole. • The composite must manage the creation and destruction of its parts. Order 1 * Item
  • 40. Dependency • Dependency relationship can arise due to a variety of reasons: – Stereotypes are used to show the precise nature of the dependency. Type of dependency Stereotype Description Abstraction «abstraction» Relates two model elements, that represent the same concept at different levels of abstraction Binding «bind» Connects template arguments to template parameters to create model elements from templates. Realization «realize» Indicates that the client model element is an implementation of the supplier model element Substitution «substitute» Indicates that the client model element takes place of the supplier.
  • 41. Polymorphism • Denotes poly (many) morphism (forms). • Under different situations: – Same message to the same object can result in different actions: • Static binding • Dynamic binding
  • 42. Genericity  Ability to parameterize class definitions.  Example: class stack of different types of elements:  Integer stack  Character stack  Floating point stack  Define generic class stack:  Later instantiate as required