SlideShare a Scribd company logo
1 of 26
Aspect-Oriented Software
Development with Use Cases
AspectJ Reference:
Diagrams and materials based on “Aspect-Oriented
Software Development with Use Cases” by I.
Jacobson and P.-W. Ng, 2005, Addison-Wesley
More?
• http://www.early-aspects.net/
Use Cases – Basic Ideas
• Overview
Use Cases & Aspects
• So far, our aspects have been about non-
functional concerns
• Observations:
– a use case usually refers to a function that a user
does with the system; usually a set of use cases
model functional requirements (application use cases)
– use cases can also be used to model non-functional
requirements (infrastructure use cases)
– a use case is a user task or a concern
– a use case (whether application or infrastructure)
could correspond to an aspect!
Figure 3-1
(incomplete
list of
use cases)
Figure 3-2
(incomplete
list of
use case
realizations
for the
system)
Application Use Cases
:
Use case slices
From Use Cases to Aspects
Figure 1-2
Figure 2-1
1. public aspect CheckInCustomer {
2. ...
3. public void Room.assignCustomer ()
4. {
5. // code to check in customer
6. }
7. public void Reservation.consume()
8. {
9. // code to consume reservation
10. }
11. public void Payment.createBill()
12. {
13. // code to generate an initial outstanding bill
14. }
15. ...
16. }
Figure 4-3
Extension
Figure 4-4
Figure 4-5
Extension – con’t
Figure 6-1
Figure 6-3
Use Case: Handle Waiting List
Basic Flows
. . .
Extension Flows
EF1.Queue For Room
This extension flow occurs after UpdatingRoomAvailability yields No Rooms Available.
The system creates a pending reservation with a unique identifier for the selected Room type.
The system puts the pending reservation into a waiting list.
The system displays the unique identifier of the pending reservation to the customer.
The base use case terminates.
Extension Pointcuts
extension pointcut UpdatingRoomAvailability = Reserve Room.Update Room AvailabilityFigure 6-5
Inclusion
Figure 6-6
Figure 6-8
Generalization
Figure 6-9
Application Use Cases and Infrastructure Use
Cases - Example
Functional
reqs
Non-functional
reqs
Application Use Cases and Infrastructure Use
Cases – Example – con’t
Relationship between application
use cases and infrastructure use
case? “binding”
e.g., “<Perform Transaction>” binds to
“Reserve Room” &
“<Actor>” binds to “Customer”
Note: a template
Use Case Slice
• A use case slice is collects together the parts of classes and
operations (as represented via aspects), and (whole) classes, that
are specific to a use case.
• What follows?
– Example of 2 Application Use Cases and their Use Case Slice
Fig 13-3,12-3,12-7, 13-4, 13-6
(Jacobson & Ng)
– Example of an Infrastructure Use Case Slice
Fig 14-4,14-5;14-9
(Jacobson & Ng)
Representing a Use Case Slice in
“UML”
Representing Aspects in “UML”
(More
In handout-
Appendix A)
Basic interaction diagram
Elaborated
interaction
diagram
for reserving
room
Example 1: use case slice
for room reservation
Use Case Slice
For “Reserve Room”
Use Case
Elaborated
interaction
diagram
for reserving
room
Example 1: use case slice
for room reservation
Basic interaction diagram
Elaborated
interaction
diagram
for handling waiting list
Example 2: use case slice
for handle waiting list
Elaborated
interaction
diagram
for handling waiting list
Use Case Slice
For “Handle
Waiting List”
Use Case
Example: Infrastructure Use case slice for
Adding authorization checks
Basic interaction diagram
Basic interaction
Diagram extended
With authorization calls
Use case slice for “Handle Authorization”
For each use case slice,
define corresponding
classes and aspects.
Form the system by
putting together use case slices +
non-use case slices (not shown)…
Aspects and Architecture
Driving and Managing Architectural Decisions with Aspects, Garcia et al., 2006
Aspects and Architecture
Driving and Managing Architectural Decisions with Aspects, Garcia et al., 2006
Aspects and Software Product
Lines
• There are kernel, optional, variant features
in products
• “Extensions” can be modelled and
implemented via aspects – variations
localised in aspects
• On-going: e.g., http://ample.holos.pt/,
http://www.softeng.ox.ac.uk/aople/

More Related Content

What's hot

Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Mazhar Ishaq Khokhar
 
Object diagram
Object diagramObject diagram
Object diagramRahul Pola
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbolsKumar
 
1. introduction to uml
1. introduction to uml1. introduction to uml
1. introduction to umlPRABU M
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- designLilia Sfaxi
 
Lecture6 activity diagrams
Lecture6 activity diagramsLecture6 activity diagrams
Lecture6 activity diagramsShahid Riaz
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSMikel Raj
 
Api complete life cycle with api security
Api complete life cycle with api securityApi complete life cycle with api security
Api complete life cycle with api securitypqrs1234
 
software-architecture-patterns
software-architecture-patternssoftware-architecture-patterns
software-architecture-patternsPallav Kumar
 
Uml Diagrams for Web Developers
Uml Diagrams for Web DevelopersUml Diagrams for Web Developers
Uml Diagrams for Web DevelopersDave Kelleher
 
Object oriented and function oriented design
Object oriented and function oriented designObject oriented and function oriented design
Object oriented and function oriented designNaveen Sagayaselvaraj
 
Communication in a Microservice Architecture
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice ArchitecturePer Bernhardt
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault ToleranceAnkit Singh
 
Pricing Routine In Vofm
Pricing Routine In VofmPricing Routine In Vofm
Pricing Routine In Vofmgueste6b4e7
 
State Machine Diagram
State Machine DiagramState Machine Diagram
State Machine DiagramNiloy Rocker
 
Creando y Orquestando APIs en MuleSoft
Creando y Orquestando APIs en MuleSoftCreando y Orquestando APIs en MuleSoft
Creando y Orquestando APIs en MuleSoftLarry Magallanes
 

What's hot (20)

Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)
 
Object diagram
Object diagramObject diagram
Object diagram
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 
1. introduction to uml
1. introduction to uml1. introduction to uml
1. introduction to uml
 
Use case diagrams
Use case diagramsUse case diagrams
Use case diagrams
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- design
 
Functional modeling
Functional modelingFunctional modeling
Functional modeling
 
Lecture6 activity diagrams
Lecture6 activity diagramsLecture6 activity diagrams
Lecture6 activity diagrams
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMS
 
Api complete life cycle with api security
Api complete life cycle with api securityApi complete life cycle with api security
Api complete life cycle with api security
 
software-architecture-patterns
software-architecture-patternssoftware-architecture-patterns
software-architecture-patterns
 
SOA Course : service process model
SOA Course : service process modelSOA Course : service process model
SOA Course : service process model
 
Uml Diagrams for Web Developers
Uml Diagrams for Web DevelopersUml Diagrams for Web Developers
Uml Diagrams for Web Developers
 
Object oriented and function oriented design
Object oriented and function oriented designObject oriented and function oriented design
Object oriented and function oriented design
 
Communication in a Microservice Architecture
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice Architecture
 
Unified process Model
Unified process ModelUnified process Model
Unified process Model
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault Tolerance
 
Pricing Routine In Vofm
Pricing Routine In VofmPricing Routine In Vofm
Pricing Routine In Vofm
 
State Machine Diagram
State Machine DiagramState Machine Diagram
State Machine Diagram
 
Creando y Orquestando APIs en MuleSoft
Creando y Orquestando APIs en MuleSoftCreando y Orquestando APIs en MuleSoft
Creando y Orquestando APIs en MuleSoft
 

Viewers also liked

AOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گراAOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گراOmid Rajabi
 
Aspect-Oriented Technologies
Aspect-Oriented TechnologiesAspect-Oriented Technologies
Aspect-Oriented TechnologiesEsteban Abait
 
UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented DesignEdison Lascano
 
QSOUL/Aop
QSOUL/AopQSOUL/Aop
QSOUL/AopESUG
 
Evolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software DevelopmentEvolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software Developmentkim.mens
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software DevelopmentOtavio Ferreira
 
Introduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software DevelopmentIntroduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software Developmentmukhtarhudaya
 
Aspect Mining Techniques
Aspect Mining TechniquesAspect Mining Techniques
Aspect Mining TechniquesEsteban Abait
 
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)amirbabol
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software DevelopmentJignesh Patel
 
Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9Ian Sommerville
 

Viewers also liked (12)

AOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گراAOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گرا
 
Aspect-Oriented Technologies
Aspect-Oriented TechnologiesAspect-Oriented Technologies
Aspect-Oriented Technologies
 
UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented Design
 
Scrum doc
Scrum docScrum doc
Scrum doc
 
QSOUL/Aop
QSOUL/AopQSOUL/Aop
QSOUL/Aop
 
Evolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software DevelopmentEvolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software Development
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
Introduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software DevelopmentIntroduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software Development
 
Aspect Mining Techniques
Aspect Mining TechniquesAspect Mining Techniques
Aspect Mining Techniques
 
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9
 

Similar to Aspect-Oriented Software Development with Use Cases

SELECT21.pptx
SELECT21.pptxSELECT21.pptx
SELECT21.pptxdevnasra1
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramAshesh R
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptShashikanth
 
Chapter 3.pptx
Chapter 3.pptxChapter 3.pptx
Chapter 3.pptxTekle12
 
05 fse requirementsengineering
05 fse requirementsengineering05 fse requirementsengineering
05 fse requirementsengineeringMohesh Chandran
 
From use case to software architecture
From use case to software architectureFrom use case to software architecture
From use case to software architectureAhmad karawash
 
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
 
Lab 3 Introduction to the UML - how to create a use case diagram
Lab 3 Introduction to the UML - how to create a use case diagramLab 3 Introduction to the UML - how to create a use case diagram
Lab 3 Introduction to the UML - how to create a use case diagramFarah Ahmed
 
Requirements Engineering Workshop with Use Cases
Requirements Engineering Workshop with Use CasesRequirements Engineering Workshop with Use Cases
Requirements Engineering Workshop with Use CasesBryan Len
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecturebashcode
 
LabVIEW - Teaching tool for control design subject
LabVIEW - Teaching tool for control design subjectLabVIEW - Teaching tool for control design subject
LabVIEW - Teaching tool for control design subjectIOSR Journals
 
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
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptUNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptVGaneshKarthikeyan
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptUNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptVGaneshKarthikeyan
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptUNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptVGaneshKarthikeyan
 

Similar to Aspect-Oriented Software Development with Use Cases (20)

SELECT21.pptx
SELECT21.pptxSELECT21.pptx
SELECT21.pptx
 
02 use cases
02 use cases02 use cases
02 use cases
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Use case diagram
Use case diagramUse case diagram
Use case diagram
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.ppt
 
Chapter 3.pptx
Chapter 3.pptxChapter 3.pptx
Chapter 3.pptx
 
05 fse requirementsengineering
05 fse requirementsengineering05 fse requirementsengineering
05 fse requirementsengineering
 
From use case to software architecture
From use case to software architectureFrom use case to software architecture
From use case to software architecture
 
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
 
Lab 3 Introduction to the UML - how to create a use case diagram
Lab 3 Introduction to the UML - how to create a use case diagramLab 3 Introduction to the UML - how to create a use case diagram
Lab 3 Introduction to the UML - how to create a use case diagram
 
Requirements Engineering Workshop with Use Cases
Requirements Engineering Workshop with Use CasesRequirements Engineering Workshop with Use Cases
Requirements Engineering Workshop with Use Cases
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 
LabVIEW - Teaching tool for control design subject
LabVIEW - Teaching tool for control design subjectLabVIEW - Teaching tool for control design subject
LabVIEW - Teaching tool for control design subject
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
UML Design
UML DesignUML Design
UML Design
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptUNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptUNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.pptUNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
 
Chap07
Chap07Chap07
Chap07
 
Chapter 7 Use Case Model
Chapter 7 Use Case ModelChapter 7 Use Case Model
Chapter 7 Use Case Model
 

More from www.myassignmenthelp.net

Programming assignment help by myassignmenthelp
Programming assignment help by myassignmenthelpProgramming assignment help by myassignmenthelp
Programming assignment help by myassignmenthelpwww.myassignmenthelp.net
 
natural language processing help at myassignmenthelp.net
natural language processing  help at myassignmenthelp.netnatural language processing  help at myassignmenthelp.net
natural language processing help at myassignmenthelp.netwww.myassignmenthelp.net
 
Programming assignment-help at myassignmenthelp.net
Programming assignment-help at myassignmenthelp.netProgramming assignment-help at myassignmenthelp.net
Programming assignment-help at myassignmenthelp.netwww.myassignmenthelp.net
 
Critical path method example by myassignmenthelp
Critical path method example by myassignmenthelpCritical path method example by myassignmenthelp
Critical path method example by myassignmenthelpwww.myassignmenthelp.net
 
Energy efficiency of qantas by myassignmenthelp
Energy efficiency of qantas by myassignmenthelpEnergy efficiency of qantas by myassignmenthelp
Energy efficiency of qantas by myassignmenthelpwww.myassignmenthelp.net
 
Xml programming language myassignmenthelp.net
Xml programming  language myassignmenthelp.netXml programming  language myassignmenthelp.net
Xml programming language myassignmenthelp.netwww.myassignmenthelp.net
 
Learn ActionScript programming myassignmenthelp.net
Learn ActionScript programming myassignmenthelp.netLearn ActionScript programming myassignmenthelp.net
Learn ActionScript programming myassignmenthelp.netwww.myassignmenthelp.net
 
Learn Basics of chemistry myassignmenthelp.net
Learn Basics of chemistry myassignmenthelp.netLearn Basics of chemistry myassignmenthelp.net
Learn Basics of chemistry myassignmenthelp.netwww.myassignmenthelp.net
 
Materials Flux Analysis @myassignmenthelp.net
Materials Flux Analysis  @myassignmenthelp.netMaterials Flux Analysis  @myassignmenthelp.net
Materials Flux Analysis @myassignmenthelp.netwww.myassignmenthelp.net
 

More from www.myassignmenthelp.net (20)

Programming assignment help by myassignmenthelp
Programming assignment help by myassignmenthelpProgramming assignment help by myassignmenthelp
Programming assignment help by myassignmenthelp
 
Artificial intelligence : what it is
Artificial intelligence : what it isArtificial intelligence : what it is
Artificial intelligence : what it is
 
natural language processing help at myassignmenthelp.net
natural language processing  help at myassignmenthelp.netnatural language processing  help at myassignmenthelp.net
natural language processing help at myassignmenthelp.net
 
Python assignment help
Python assignment helpPython assignment help
Python assignment help
 
Lecture8 classifiers ldc_rules
Lecture8 classifiers ldc_rulesLecture8 classifiers ldc_rules
Lecture8 classifiers ldc_rules
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Uml assignment help
Uml assignment helpUml assignment help
Uml assignment help
 
Entity relationship-diagrams
Entity relationship-diagramsEntity relationship-diagrams
Entity relationship-diagrams
 
Programming assignment-help at myassignmenthelp.net
Programming assignment-help at myassignmenthelp.netProgramming assignment-help at myassignmenthelp.net
Programming assignment-help at myassignmenthelp.net
 
Programming assignment help
Programming assignment helpProgramming assignment help
Programming assignment help
 
Entity relationship diagram for dummies
Entity relationship diagram for dummiesEntity relationship diagram for dummies
Entity relationship diagram for dummies
 
How to write effective case study
How to write effective case studyHow to write effective case study
How to write effective case study
 
Critical path method example by myassignmenthelp
Critical path method example by myassignmenthelpCritical path method example by myassignmenthelp
Critical path method example by myassignmenthelp
 
Nursing ppt by myassignmenthelp.net
Nursing ppt by myassignmenthelp.netNursing ppt by myassignmenthelp.net
Nursing ppt by myassignmenthelp.net
 
Energy efficiency of qantas by myassignmenthelp
Energy efficiency of qantas by myassignmenthelpEnergy efficiency of qantas by myassignmenthelp
Energy efficiency of qantas by myassignmenthelp
 
Xml programming language myassignmenthelp.net
Xml programming  language myassignmenthelp.netXml programming  language myassignmenthelp.net
Xml programming language myassignmenthelp.net
 
Learn ActionScript programming myassignmenthelp.net
Learn ActionScript programming myassignmenthelp.netLearn ActionScript programming myassignmenthelp.net
Learn ActionScript programming myassignmenthelp.net
 
Learn Basics of chemistry myassignmenthelp.net
Learn Basics of chemistry myassignmenthelp.netLearn Basics of chemistry myassignmenthelp.net
Learn Basics of chemistry myassignmenthelp.net
 
Hysys help only at myassignmenthelp.net
Hysys help only at myassignmenthelp.netHysys help only at myassignmenthelp.net
Hysys help only at myassignmenthelp.net
 
Materials Flux Analysis @myassignmenthelp.net
Materials Flux Analysis  @myassignmenthelp.netMaterials Flux Analysis  @myassignmenthelp.net
Materials Flux Analysis @myassignmenthelp.net
 

Recently uploaded

PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxNikitaBankoti2
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 

Recently uploaded (20)

PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 

Aspect-Oriented Software Development with Use Cases

  • 1. Aspect-Oriented Software Development with Use Cases AspectJ Reference: Diagrams and materials based on “Aspect-Oriented Software Development with Use Cases” by I. Jacobson and P.-W. Ng, 2005, Addison-Wesley
  • 3. Use Cases – Basic Ideas • Overview
  • 4. Use Cases & Aspects • So far, our aspects have been about non- functional concerns • Observations: – a use case usually refers to a function that a user does with the system; usually a set of use cases model functional requirements (application use cases) – use cases can also be used to model non-functional requirements (infrastructure use cases) – a use case is a user task or a concern – a use case (whether application or infrastructure) could correspond to an aspect!
  • 5. Figure 3-1 (incomplete list of use cases) Figure 3-2 (incomplete list of use case realizations for the system) Application Use Cases : Use case slices
  • 6. From Use Cases to Aspects Figure 1-2 Figure 2-1 1. public aspect CheckInCustomer { 2. ... 3. public void Room.assignCustomer () 4. { 5. // code to check in customer 6. } 7. public void Reservation.consume() 8. { 9. // code to consume reservation 10. } 11. public void Payment.createBill() 12. { 13. // code to generate an initial outstanding bill 14. } 15. ... 16. }
  • 10. Use Case: Handle Waiting List Basic Flows . . . Extension Flows EF1.Queue For Room This extension flow occurs after UpdatingRoomAvailability yields No Rooms Available. The system creates a pending reservation with a unique identifier for the selected Room type. The system puts the pending reservation into a waiting list. The system displays the unique identifier of the pending reservation to the customer. The base use case terminates. Extension Pointcuts extension pointcut UpdatingRoomAvailability = Reserve Room.Update Room AvailabilityFigure 6-5
  • 13. Application Use Cases and Infrastructure Use Cases - Example Functional reqs Non-functional reqs
  • 14. Application Use Cases and Infrastructure Use Cases – Example – con’t Relationship between application use cases and infrastructure use case? “binding” e.g., “<Perform Transaction>” binds to “Reserve Room” & “<Actor>” binds to “Customer” Note: a template
  • 15. Use Case Slice • A use case slice is collects together the parts of classes and operations (as represented via aspects), and (whole) classes, that are specific to a use case. • What follows? – Example of 2 Application Use Cases and their Use Case Slice Fig 13-3,12-3,12-7, 13-4, 13-6 (Jacobson & Ng) – Example of an Infrastructure Use Case Slice Fig 14-4,14-5;14-9 (Jacobson & Ng)
  • 16. Representing a Use Case Slice in “UML”
  • 17. Representing Aspects in “UML” (More In handout- Appendix A)
  • 18. Basic interaction diagram Elaborated interaction diagram for reserving room Example 1: use case slice for room reservation
  • 19. Use Case Slice For “Reserve Room” Use Case Elaborated interaction diagram for reserving room Example 1: use case slice for room reservation
  • 20. Basic interaction diagram Elaborated interaction diagram for handling waiting list Example 2: use case slice for handle waiting list
  • 21. Elaborated interaction diagram for handling waiting list Use Case Slice For “Handle Waiting List” Use Case
  • 22. Example: Infrastructure Use case slice for Adding authorization checks Basic interaction diagram Basic interaction Diagram extended With authorization calls Use case slice for “Handle Authorization”
  • 23. For each use case slice, define corresponding classes and aspects. Form the system by putting together use case slices + non-use case slices (not shown)…
  • 24. Aspects and Architecture Driving and Managing Architectural Decisions with Aspects, Garcia et al., 2006
  • 25. Aspects and Architecture Driving and Managing Architectural Decisions with Aspects, Garcia et al., 2006
  • 26. Aspects and Software Product Lines • There are kernel, optional, variant features in products • “Extensions” can be modelled and implemented via aspects – variations localised in aspects • On-going: e.g., http://ample.holos.pt/, http://www.softeng.ox.ac.uk/aople/