SlideShare a Scribd company logo
1 of 44
By
AHMAD KARAWASH
Overview
Use cases & Architects
Use cases benefits
Different Approaches
Challenges
Extending use-case
Overview


Use cases are a powerful tool used in the
systems analysis phase to describe the
behavioral aspect of the system being
developed.



Use case describes a scenario in which a
user interacts with the system being defined
to achieve a specific goal .



A use case defines a goal-oriented, set of
interactions between external actors and the
system under consideration.
USE CASE


A complete set of use cases specifies all the
different ways to use the system, and
therefore defines all behavior required of the
system.

Actors
Overview
The main artifacts of the use case model include:


Actor list – A list of all the actors found and their
relationships.



Use Case Packages – can be used to divide the
work between the different teams.



Use case diagrams – The diagrams are the
graphical representations of the use case model.



The use-cases text –Word documents containing
the use cases.



Use case views – Several views that help
understand the model from different angles.
Vocabulary


Actor – External parties that interact with
the system



Use Case – A sequence of actions that the
system performs that yields an observable
result of value to an actor. [Booch 1999]



Use Case Model - Bag that contains
◦ Actors list, packages, diagrams, use cases,
views
Software architecture


Architecture is the fundamental organization of a
system embodied in its Components , their
relationships to each other, and to the environment,
and the principles guiding its design and evolution.



The System Architecture is the set of entities, the
properties of those entities, and relationships among
them that define structure of the system.
Example banking system
Architecture views
More than one aspect of software must be modeled
and designed
 Many architect use “Kructen’s 4+1” model of these
views
o Logical view
o Process view
o Deployment view
o Implementation view




The “plus one” is:

use-case view
What Do Architecture Views Capture?


Logical view (design view)
◦ Architecturally significant parts, such as layers,
subsystems, components, etc.



Process view
◦ Processes or threads that make up the system.



Deployment view
◦ Do parts of the system on separate hardware
components?



Implementation view
◦ Source files, binaries, DLLs, SW components, etc.

• Use case view
◦ Use cases show how the end-user interacts with the
system.
Use case vs. Algorithm
Use Cases benefits


Promote customer involvement in defining
the requirements.



improved business requirements analysis
and documentation.



improved communication between business
and technical teams.



improved project scoping and planning.



high-level of re-use.
Use Cases benefits


Reduce project risks, development time and
costs.



Error-handling, by defining sequences that
may lead to failure .



show the system in different angles .



Perspective provided by use cases
reinforce the ultimate goal of software
engineering:
“ what the system should do ? “
Use cases & Architects ?!


Requirements drive the design !!!



Help force designers focus on concrete
issues.



Help identifying technical and business
risks.



Can be used to help Verify & Validate the
model.
 Are we building the product right?
Use cases & Architects ?!


Help manage complexity
 Layers
 Focus on real user needs



Groundwork for user manual, test cases.



Help us work in iterations.
Use cases & Architects ?!
(cont.)


Architectural design workflow (Kruchten 2003):

◦ Select scenarios : criticality and risk
◦ Identify main classes/components and their
responsibility
◦ Distribute behavior
◦ Structure into subsystems, layers and define
interfaces
◦ Define distribution and concurrency
◦ Implement architectural prototype
◦ Derive tests from use cases
◦ Evaluate architecture
Naïve approach
The naïve process for building a use case
model is very straightforward [Armour,2001]
1. Find Actors
2. Find Use Cases
3. Describe the Use Cases
Challenges


The problem is that such a simple process just
doesn't cut it when it comes to large and
complex systems.



The model is inflicted with duplicates.



Inconsistencies between use cases – starting
from boundaries mismatches and ending in
contradicting use cases.
Challenges for complex use
cases


Model

◦ Explosion
◦ Making sure the requirements are good



Team

◦ Efficiency
◦ Fragmentation



Process

◦ Details too early
◦ Quitting Time
Challenges


They don’t capture Non-behavioral
requirements :
◦ Performance , security , Modifiability.
◦ Environment constraints (such as specific OS,
Hardware etc.)



Wasting energy on detailing requirements.



Large delays in the project schedule.
Challenges


Problematic for complex and large system.



Suggested use cases may still really be lists of
features (too simplistic /not practical).



Poor for distributed systems.



Not as good at representing dynamic
component architectures.



Could be Vague, ambiguous, and incomplete.
Bridging the gap between “what” and “how”

the trick is in writing use case correctly
Challenges


Semantics too imprecise –while formal testing/
verification… Leads to too many diagram
notes.



contains specifications needed very rarely.



Requires training/certification when working
with enterprise class systems.



UML is way too big - Long use case templates slow
you down!

A practical reasonable process is needed !!!
The Methodology
The use case model building process should be
extended in order to mitigate these challenges.

we need a process that is:
◦
◦
◦
◦
◦

Ordered
Controlled
Not too complicated
Not too demanding
Flexible
Methodology Steps
Define System Boundary
2) Organize the Team
3) Build a Problem Domain Object Model
4) Find Actors
5) Find Use Cases
6) Organize the Model
7) Prioritize Use Cases
Diagram
PDOM
8) Describe Use Cases
9) Refactor the Model
UC
10) Verify and Validate
Verify
11) Add Future Requirements
Refactor
12) Knowing When to Stop
Team
1)

Vision

priorities

Validate
Step 1: Define System
Boundary


The Requirements Manager and Architect define
the system boundary
◦
◦
◦
◦

What problem(s) are we trying to solve ?
Who are the stakeholders ?
What are the main goals of the system ?
What are the major functional and non-functional
requirements ?
◦ What are the future directions of the product ?
Step 2: Organize the Team


The teams (sizes and structure) that will be
involved should be determined.
Step 3: Build a Problem Domain
Object Model PDOM



Usually, set of UML object diagrams showing the
relations between the various objects.
Iterative development Class model (UML).
Police HQ
Commands
Commands
Commands

Watch
Commander

Has an

District

Emergency
Center

Is made of
Is a

Allocated to

Sector

Rapid Response
Car

Is made of
Is a

Policeman
Beat

Police Car

Work in
Are

Allocated to

Watch
Beat Team

Allocated to
Drive

Beat Car

Is a
Step 4: Find Actors



Finding actors is a recommended task for any use
case modeling effort.
No need to make an exhaustive list of all the
actors.
User

Emergency
Center Operator

Emergency
Center Supervisor

Cop

Watch
Commander

HQ Watch
Commander
Step 5: Find Use Cases
There are basically four ways for discovering use
cases:



Scenario Driven - Approach to examine the list of primary
actors and their roles.



Actor/Responsibility - the responsibilities they have for
accomplishing tasks.



Unstructured aggregation – place non-functional
requirements into specific use cases.



Mission decomposition - identifying the actors, events,
business rules etc.
Step 6: Organize the Model


The simplest form of organizing the model is by level of
detail .
Step 7: Prioritize Use Cases


Modern software projects are built using an
iterative process – this is done both to have a
better control on the project and its progress
and to risks early.



drive the development effort.
Step 8 : Describe Use Cases
For complex use case it’s difficult to follow.
It is recommended to use UML's activity diagrams to
visualize
the scenarios.
Step 9: Refactor the Model


Three relationships can be used to structure use
cases:
◦ Extend
◦ Include
◦ Generalize
Step 10: Verify & Validate the
model
Some Problems type:

Incorrect description of use case.
 Duplicated use case.
 Expected functionality is unavailable.
 Name of use case does not reflect the Goal.
 To little details .

Step 11: Add Future
Requirements


Capture Change cases
◦ Preparing for change.
◦ future enhancements.
Step 12: Knowing When to Stop


Project Level
◦ Complete list of actors and goals.
◦ Customer approval.
◦ Design ready.



Iteration Level
◦ Covered all currently prioritized use
cases.
◦ Level of detail (packages).
New way to deal with complex use
case ( Karabash )
As the size of the use case increases,
some of its advantages will be lost
 Use case chain is a technique to
reduce complexity of large use cases
by transform it into small text chains

Karabash way example:
Karabash way example:
Chains benefits:
Test scenario: set of chain can be
used by tester to generate end-to-end
test scenarios.
 Validation : this way gives us the
manageability to validate the model
with no much effort where no
documenting of the same process
more than once.

Chains benefits:
Priority : the chain can be ordered
according to important unit in the
model
 cataloging : catalog of all use case
chains in the model gives us list of all
possible feature of the system

Ahmad Karawash, PhD
Email: ahmad.karawash@gmail.com

More Related Content

What's hot

Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramAshesh R
 
UML Architecture and Views
UML Architecture and ViewsUML Architecture and Views
UML Architecture and ViewsKumar
 
Library Management system
Library Management systemLibrary Management system
Library Management systemTayyab Hussain
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 
Pretius Oracle Apex Primer
Pretius Oracle Apex PrimerPretius Oracle Apex Primer
Pretius Oracle Apex PrimerPretius
 
3 Tier Architecture
3  Tier Architecture3  Tier Architecture
3 Tier ArchitectureWebx
 
Introduction to Oracle Database
Introduction to Oracle DatabaseIntroduction to Oracle Database
Introduction to Oracle Databasepuja_dhar
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentalsabhi1112
 
Chapter 2 database environment
Chapter 2 database environmentChapter 2 database environment
Chapter 2 database environment>. <
 

What's hot (20)

Content Management System
Content Management SystemContent Management System
Content Management System
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
UML Architecture and Views
UML Architecture and ViewsUML Architecture and Views
UML Architecture and Views
 
Library Management system
Library Management systemLibrary Management system
Library Management system
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Pretius Oracle Apex Primer
Pretius Oracle Apex PrimerPretius Oracle Apex Primer
Pretius Oracle Apex Primer
 
3 Tier Architecture
3  Tier Architecture3  Tier Architecture
3 Tier Architecture
 
Introduction to Oracle Database
Introduction to Oracle DatabaseIntroduction to Oracle Database
Introduction to Oracle Database
 
database
databasedatabase
database
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
 
Introduction to OOAD
Introduction to OOADIntroduction to OOAD
Introduction to OOAD
 
J2ee
J2eeJ2ee
J2ee
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Use Case Modeling
Use Case ModelingUse Case Modeling
Use Case Modeling
 
SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentals
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Chapter 2 database environment
Chapter 2 database environmentChapter 2 database environment
Chapter 2 database environment
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Requirements elicitation
Requirements elicitationRequirements elicitation
Requirements elicitation
 

Viewers also liked

Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document FinalAli Ahmed
 
Openbiz Cubi Case Study - Cymap
Openbiz Cubi Case Study - CymapOpenbiz Cubi Case Study - Cymap
Openbiz Cubi Case Study - CymapZhaoyang Sun
 
National Pension System & Aggregator registration under PFRDA
National Pension System & Aggregator registration under PFRDANational Pension System & Aggregator registration under PFRDA
National Pension System & Aggregator registration under PFRDAEquiCorp Associates
 
How e-mail, chat, ATM, Skype, VOIP, online submission (online forms), online ...
How e-mail, chat, ATM, Skype, VOIP, online submission (online forms), online ...How e-mail, chat, ATM, Skype, VOIP, online submission (online forms), online ...
How e-mail, chat, ATM, Skype, VOIP, online submission (online forms), online ...Amit Maisheri - Senior Analyst at eClerx
 
Presentation sso design_security
Presentation sso design_securityPresentation sso design_security
Presentation sso design_securityMarco Morana
 
Alfresco: Implementing secure single sign on (SSO) with OpenSAML
Alfresco: Implementing secure single sign on (SSO) with OpenSAMLAlfresco: Implementing secure single sign on (SSO) with OpenSAML
Alfresco: Implementing secure single sign on (SSO) with OpenSAMLJ V
 
Laravel.IO A Use-Case Architecture
Laravel.IO A Use-Case ArchitectureLaravel.IO A Use-Case Architecture
Laravel.IO A Use-Case ArchitectureShawn McCool
 
Functional Specification with Use-Cases
Functional Specification with Use-CasesFunctional Specification with Use-Cases
Functional Specification with Use-CasesProf. Amir Tomer
 
Security features of atm
Security features of atmSecurity features of atm
Security features of atmargoncillo
 
Oracle Insurance: A Clear Vision for the Industry
Oracle Insurance: A Clear Vision for the IndustryOracle Insurance: A Clear Vision for the Industry
Oracle Insurance: A Clear Vision for the Industrymuratc2a
 
management information system
management information systemmanagement information system
management information systemKumudini Alwis
 
Financial performance commercial bank
Financial performance commercial bankFinancial performance commercial bank
Financial performance commercial bankNILAMH
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 
Unit 3 object analysis-classification
Unit 3 object analysis-classificationUnit 3 object analysis-classification
Unit 3 object analysis-classificationgopal10scs185
 
Core Banking Solution PPT of TCS and SBI
Core Banking Solution PPT of TCS and SBICore Banking Solution PPT of TCS and SBI
Core Banking Solution PPT of TCS and SBIRajesh Kumar
 

Viewers also liked (20)

Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document Final
 
Openbiz Cubi Case Study - Cymap
Openbiz Cubi Case Study - CymapOpenbiz Cubi Case Study - Cymap
Openbiz Cubi Case Study - Cymap
 
National Pension System & Aggregator registration under PFRDA
National Pension System & Aggregator registration under PFRDANational Pension System & Aggregator registration under PFRDA
National Pension System & Aggregator registration under PFRDA
 
How e-mail, chat, ATM, Skype, VOIP, online submission (online forms), online ...
How e-mail, chat, ATM, Skype, VOIP, online submission (online forms), online ...How e-mail, chat, ATM, Skype, VOIP, online submission (online forms), online ...
How e-mail, chat, ATM, Skype, VOIP, online submission (online forms), online ...
 
Presentation sso design_security
Presentation sso design_securityPresentation sso design_security
Presentation sso design_security
 
Alfresco: Implementing secure single sign on (SSO) with OpenSAML
Alfresco: Implementing secure single sign on (SSO) with OpenSAMLAlfresco: Implementing secure single sign on (SSO) with OpenSAML
Alfresco: Implementing secure single sign on (SSO) with OpenSAML
 
Laravel.IO A Use-Case Architecture
Laravel.IO A Use-Case ArchitectureLaravel.IO A Use-Case Architecture
Laravel.IO A Use-Case Architecture
 
Functional Specification with Use-Cases
Functional Specification with Use-CasesFunctional Specification with Use-Cases
Functional Specification with Use-Cases
 
Core Banking
Core BankingCore Banking
Core Banking
 
Security features of atm
Security features of atmSecurity features of atm
Security features of atm
 
Oracle Insurance: A Clear Vision for the Industry
Oracle Insurance: A Clear Vision for the IndustryOracle Insurance: A Clear Vision for the Industry
Oracle Insurance: A Clear Vision for the Industry
 
management information system
management information systemmanagement information system
management information system
 
Financial performance commercial bank
Financial performance commercial bankFinancial performance commercial bank
Financial performance commercial bank
 
05 architectural design
05 architectural design05 architectural design
05 architectural design
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 
Unit 3 object analysis-classification
Unit 3 object analysis-classificationUnit 3 object analysis-classification
Unit 3 object analysis-classification
 
ATM BANKING
ATM BANKINGATM BANKING
ATM BANKING
 
Ch6 architectural design
Ch6 architectural designCh6 architectural design
Ch6 architectural design
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Core Banking Solution PPT of TCS and SBI
Core Banking Solution PPT of TCS and SBICore Banking Solution PPT of TCS and SBI
Core Banking Solution PPT of TCS and SBI
 

Similar to From use case to software architecture

Ooad lab manual(original)
Ooad lab manual(original)Ooad lab manual(original)
Ooad lab manual(original)dipenpatelpatel
 
SELECT21.pptx
SELECT21.pptxSELECT21.pptx
SELECT21.pptxdevnasra1
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptShashikanth
 
OOAD U1.pptx
OOAD U1.pptxOOAD U1.pptx
OOAD U1.pptxanguraju1
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)IIUI
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models MohsinAli773
 
Requirements Engineering Workshop with Use Cases
Requirements Engineering Workshop with Use CasesRequirements Engineering Workshop with Use Cases
Requirements Engineering Workshop with Use CasesBryan Len
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Kuwait10
 
12 bước phân tích hệ thống thông tin.
12 bước phân tích hệ thống thông tin.12 bước phân tích hệ thống thông tin.
12 bước phân tích hệ thống thông tin.Toàn Nguyễn
 
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEWrizki adam kurniawan
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfB.T.L.I.T
 
Applying sys ml_with_magicdraw
Applying sys ml_with_magicdrawApplying sys ml_with_magicdraw
Applying sys ml_with_magicdrawelheshk
 
Darius Silingas - From Model-Driven Testing - EuroSTAR 2010
Darius Silingas - From Model-Driven Testing - EuroSTAR 2010Darius Silingas - From Model-Driven Testing - EuroSTAR 2010
Darius Silingas - From Model-Driven Testing - EuroSTAR 2010TEST Huddle
 
Ch7-Software Engineering 9
Ch7-Software Engineering 9Ch7-Software Engineering 9
Ch7-Software Engineering 9Ian Sommerville
 
Quality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White BoxQuality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White BoxKimberly Jones
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patternssukumarraju6
 

Similar to From use case to software architecture (20)

Ooad lab manual(original)
Ooad lab manual(original)Ooad lab manual(original)
Ooad lab manual(original)
 
SELECT21.pptx
SELECT21.pptxSELECT21.pptx
SELECT21.pptx
 
M azhar
M azharM azhar
M azhar
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.ppt
 
OOAD U1.pptx
OOAD U1.pptxOOAD U1.pptx
OOAD U1.pptx
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
 
Requirements Engineering Workshop with Use Cases
Requirements Engineering Workshop with Use CasesRequirements Engineering Workshop with Use Cases
Requirements Engineering Workshop with Use Cases
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
12 bước phân tích hệ thống thông tin.
12 bước phân tích hệ thống thông tin.12 bước phân tích hệ thống thông tin.
12 bước phân tích hệ thống thông tin.
 
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
Chapter1
Chapter1Chapter1
Chapter1
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Applying sys ml_with_magicdraw
Applying sys ml_with_magicdrawApplying sys ml_with_magicdraw
Applying sys ml_with_magicdraw
 
Darius Silingas - From Model-Driven Testing - EuroSTAR 2010
Darius Silingas - From Model-Driven Testing - EuroSTAR 2010Darius Silingas - From Model-Driven Testing - EuroSTAR 2010
Darius Silingas - From Model-Driven Testing - EuroSTAR 2010
 
Ch7-Software Engineering 9
Ch7-Software Engineering 9Ch7-Software Engineering 9
Ch7-Software Engineering 9
 
Quality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White BoxQuality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White Box
 
Ooad quest and ans
Ooad quest and ansOoad quest and ans
Ooad quest and ans
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patterns
 

More from Ahmad karawash

Object-Oriented Programming (OOP)
Object-Oriented Programming (OOP)Object-Oriented Programming (OOP)
Object-Oriented Programming (OOP)Ahmad karawash
 
Introduction to-data-science
Introduction to-data-scienceIntroduction to-data-science
Introduction to-data-scienceAhmad karawash
 
How to understand your data
How to understand your dataHow to understand your data
How to understand your dataAhmad karawash
 
Cloud storage with AWS
Cloud storage with AWSCloud storage with AWS
Cloud storage with AWSAhmad karawash
 
Build a custom metrics on aws cloud
Build a custom metrics on aws cloudBuild a custom metrics on aws cloud
Build a custom metrics on aws cloudAhmad karawash
 
Password hashing, salting, bycrpt
Password hashing, salting, bycrptPassword hashing, salting, bycrpt
Password hashing, salting, bycrptAhmad karawash
 
Reasoning of database consistency through description logics
Reasoning of database consistency through description logicsReasoning of database consistency through description logics
Reasoning of database consistency through description logicsAhmad karawash
 
Cloud computing and Service model
Cloud computing and Service modelCloud computing and Service model
Cloud computing and Service modelAhmad karawash
 

More from Ahmad karawash (10)

Object-Oriented Programming (OOP)
Object-Oriented Programming (OOP)Object-Oriented Programming (OOP)
Object-Oriented Programming (OOP)
 
Introduction to-data-science
Introduction to-data-scienceIntroduction to-data-science
Introduction to-data-science
 
How to understand your data
How to understand your dataHow to understand your data
How to understand your data
 
Cloud storage with AWS
Cloud storage with AWSCloud storage with AWS
Cloud storage with AWS
 
Message queues
Message queuesMessage queues
Message queues
 
Build a custom metrics on aws cloud
Build a custom metrics on aws cloudBuild a custom metrics on aws cloud
Build a custom metrics on aws cloud
 
Password hashing, salting, bycrpt
Password hashing, salting, bycrptPassword hashing, salting, bycrpt
Password hashing, salting, bycrpt
 
Brute Force Attack
Brute Force AttackBrute Force Attack
Brute Force Attack
 
Reasoning of database consistency through description logics
Reasoning of database consistency through description logicsReasoning of database consistency through description logics
Reasoning of database consistency through description logics
 
Cloud computing and Service model
Cloud computing and Service modelCloud computing and Service model
Cloud computing and Service model
 

Recently uploaded

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 

From use case to software architecture

  • 2. Overview Use cases & Architects Use cases benefits Different Approaches Challenges Extending use-case
  • 3. Overview  Use cases are a powerful tool used in the systems analysis phase to describe the behavioral aspect of the system being developed.  Use case describes a scenario in which a user interacts with the system being defined to achieve a specific goal .  A use case defines a goal-oriented, set of interactions between external actors and the system under consideration.
  • 4. USE CASE  A complete set of use cases specifies all the different ways to use the system, and therefore defines all behavior required of the system. Actors
  • 5. Overview The main artifacts of the use case model include:  Actor list – A list of all the actors found and their relationships.  Use Case Packages – can be used to divide the work between the different teams.  Use case diagrams – The diagrams are the graphical representations of the use case model.  The use-cases text –Word documents containing the use cases.  Use case views – Several views that help understand the model from different angles.
  • 6. Vocabulary  Actor – External parties that interact with the system  Use Case – A sequence of actions that the system performs that yields an observable result of value to an actor. [Booch 1999]  Use Case Model - Bag that contains ◦ Actors list, packages, diagrams, use cases, views
  • 7. Software architecture  Architecture is the fundamental organization of a system embodied in its Components , their relationships to each other, and to the environment, and the principles guiding its design and evolution.  The System Architecture is the set of entities, the properties of those entities, and relationships among them that define structure of the system.
  • 9. Architecture views More than one aspect of software must be modeled and designed  Many architect use “Kructen’s 4+1” model of these views o Logical view o Process view o Deployment view o Implementation view   The “plus one” is: use-case view
  • 10. What Do Architecture Views Capture?  Logical view (design view) ◦ Architecturally significant parts, such as layers, subsystems, components, etc.  Process view ◦ Processes or threads that make up the system.  Deployment view ◦ Do parts of the system on separate hardware components?  Implementation view ◦ Source files, binaries, DLLs, SW components, etc. • Use case view ◦ Use cases show how the end-user interacts with the system.
  • 11. Use case vs. Algorithm
  • 12. Use Cases benefits  Promote customer involvement in defining the requirements.  improved business requirements analysis and documentation.  improved communication between business and technical teams.  improved project scoping and planning.  high-level of re-use.
  • 13. Use Cases benefits  Reduce project risks, development time and costs.  Error-handling, by defining sequences that may lead to failure .  show the system in different angles .  Perspective provided by use cases reinforce the ultimate goal of software engineering: “ what the system should do ? “
  • 14. Use cases & Architects ?!  Requirements drive the design !!!  Help force designers focus on concrete issues.  Help identifying technical and business risks.  Can be used to help Verify & Validate the model.  Are we building the product right?
  • 15. Use cases & Architects ?!  Help manage complexity  Layers  Focus on real user needs  Groundwork for user manual, test cases.  Help us work in iterations.
  • 16. Use cases & Architects ?! (cont.)  Architectural design workflow (Kruchten 2003): ◦ Select scenarios : criticality and risk ◦ Identify main classes/components and their responsibility ◦ Distribute behavior ◦ Structure into subsystems, layers and define interfaces ◦ Define distribution and concurrency ◦ Implement architectural prototype ◦ Derive tests from use cases ◦ Evaluate architecture
  • 17. Naïve approach The naïve process for building a use case model is very straightforward [Armour,2001] 1. Find Actors 2. Find Use Cases 3. Describe the Use Cases
  • 18. Challenges  The problem is that such a simple process just doesn't cut it when it comes to large and complex systems.  The model is inflicted with duplicates.  Inconsistencies between use cases – starting from boundaries mismatches and ending in contradicting use cases.
  • 19. Challenges for complex use cases  Model ◦ Explosion ◦ Making sure the requirements are good  Team ◦ Efficiency ◦ Fragmentation  Process ◦ Details too early ◦ Quitting Time
  • 20. Challenges  They don’t capture Non-behavioral requirements : ◦ Performance , security , Modifiability. ◦ Environment constraints (such as specific OS, Hardware etc.)  Wasting energy on detailing requirements.  Large delays in the project schedule.
  • 21. Challenges  Problematic for complex and large system.  Suggested use cases may still really be lists of features (too simplistic /not practical).  Poor for distributed systems.  Not as good at representing dynamic component architectures.  Could be Vague, ambiguous, and incomplete.
  • 22.
  • 23. Bridging the gap between “what” and “how” the trick is in writing use case correctly
  • 24. Challenges  Semantics too imprecise –while formal testing/ verification… Leads to too many diagram notes.  contains specifications needed very rarely.  Requires training/certification when working with enterprise class systems.  UML is way too big - Long use case templates slow you down! A practical reasonable process is needed !!!
  • 25. The Methodology The use case model building process should be extended in order to mitigate these challenges. we need a process that is: ◦ ◦ ◦ ◦ ◦ Ordered Controlled Not too complicated Not too demanding Flexible
  • 26. Methodology Steps Define System Boundary 2) Organize the Team 3) Build a Problem Domain Object Model 4) Find Actors 5) Find Use Cases 6) Organize the Model 7) Prioritize Use Cases Diagram PDOM 8) Describe Use Cases 9) Refactor the Model UC 10) Verify and Validate Verify 11) Add Future Requirements Refactor 12) Knowing When to Stop Team 1) Vision priorities Validate
  • 27. Step 1: Define System Boundary  The Requirements Manager and Architect define the system boundary ◦ ◦ ◦ ◦ What problem(s) are we trying to solve ? Who are the stakeholders ? What are the main goals of the system ? What are the major functional and non-functional requirements ? ◦ What are the future directions of the product ?
  • 28. Step 2: Organize the Team  The teams (sizes and structure) that will be involved should be determined.
  • 29. Step 3: Build a Problem Domain Object Model PDOM   Usually, set of UML object diagrams showing the relations between the various objects. Iterative development Class model (UML). Police HQ Commands Commands Commands Watch Commander Has an District Emergency Center Is made of Is a Allocated to Sector Rapid Response Car Is made of Is a Policeman Beat Police Car Work in Are Allocated to Watch Beat Team Allocated to Drive Beat Car Is a
  • 30. Step 4: Find Actors   Finding actors is a recommended task for any use case modeling effort. No need to make an exhaustive list of all the actors. User Emergency Center Operator Emergency Center Supervisor Cop Watch Commander HQ Watch Commander
  • 31. Step 5: Find Use Cases There are basically four ways for discovering use cases:  Scenario Driven - Approach to examine the list of primary actors and their roles.  Actor/Responsibility - the responsibilities they have for accomplishing tasks.  Unstructured aggregation – place non-functional requirements into specific use cases.  Mission decomposition - identifying the actors, events, business rules etc.
  • 32. Step 6: Organize the Model  The simplest form of organizing the model is by level of detail .
  • 33. Step 7: Prioritize Use Cases  Modern software projects are built using an iterative process – this is done both to have a better control on the project and its progress and to risks early.  drive the development effort.
  • 34. Step 8 : Describe Use Cases For complex use case it’s difficult to follow. It is recommended to use UML's activity diagrams to visualize the scenarios.
  • 35. Step 9: Refactor the Model  Three relationships can be used to structure use cases: ◦ Extend ◦ Include ◦ Generalize
  • 36. Step 10: Verify & Validate the model Some Problems type: Incorrect description of use case.  Duplicated use case.  Expected functionality is unavailable.  Name of use case does not reflect the Goal.  To little details . 
  • 37. Step 11: Add Future Requirements  Capture Change cases ◦ Preparing for change. ◦ future enhancements.
  • 38. Step 12: Knowing When to Stop  Project Level ◦ Complete list of actors and goals. ◦ Customer approval. ◦ Design ready.  Iteration Level ◦ Covered all currently prioritized use cases. ◦ Level of detail (packages).
  • 39. New way to deal with complex use case ( Karabash ) As the size of the use case increases, some of its advantages will be lost  Use case chain is a technique to reduce complexity of large use cases by transform it into small text chains 
  • 42. Chains benefits: Test scenario: set of chain can be used by tester to generate end-to-end test scenarios.  Validation : this way gives us the manageability to validate the model with no much effort where no documenting of the same process more than once. 
  • 43. Chains benefits: Priority : the chain can be ordered according to important unit in the model  cataloging : catalog of all use case chains in the model gives us list of all possible feature of the system 
  • 44. Ahmad Karawash, PhD Email: ahmad.karawash@gmail.com