SlideShare a Scribd company logo
1 of 46
Chapter 21 - Aspect-oriented Software Development
Lecture 1
1Chapter 21 Aspect-oriented software engineering
Topics covered
 The separation of concerns
 Aspects, join points and pointcuts
 Software engineering with aspects
2Chapter 21 Aspect-oriented software engineering
Aspect-oriented software development
 An approach to software development based around a
relatively new type of abstraction - an aspect.
 Used in conjunction with other approaches - normally object-
oriented software engineering.
 Aspects encapsulate functionality that cross-cuts and co-
exists with other functionality.
 Aspects include a definition of where they should be included
in a program as well as code implementing the cross-cutting
concern.
3Chapter 21 Aspect-oriented software engineering
The separation of concerns
 The principle of separation of concerns states that software
should be organised so that each program element does one
thing and one thing only.
 Each program element should therefore be understandable
without reference to other elements.
 Program abstractions (subroutines, procedures, objects, etc.)
support the separation of concerns.
4Chapter 21 Aspect-oriented software engineering
Concerns
 Concerns are not program issues but reflect the system
requirements and the priorities of the system stakeholders.
 Examples of concerns are performance, security, specific functionality,
etc.
 By reflecting the separation of concerns in a program, there is
clear traceability from requirements to implementation.
 Core concerns are the functional concerns that relate to the
primary purpose of a system; secondary concerns are
functional concerns that reflect non-functional and QoS
requirements.
5Chapter 21 Aspect-oriented software engineering
Stakeholder concerns
 Functional concerns which are related to specific functionality to be
included in a system.
 Quality of service concerns which are related to the non-functional
behaviour of a system.
 Policy concerns which are related to the overall policies that govern
the use of the system.
 System concerns which are related to attributes of the system as a
whole such as its maintainability or its configurability.
 Organisational concerns which are related to organisational goals and
priorities such as producing a system within budget, making use of
existing software assets or maintaining the reputation of an
organisation.
6Chapter 21 Aspect-oriented software engineering
Cross-cutting concerns
 Cross-cutting concerns are concerns whose implementation
cuts across a number of program components.
 This results in problems when changes to the concern have to
be made - the code to be changed is not localised but is in
different places across the system.
 Cross cutting concerns lead to tangling and scattering.
7Chapter 21 Aspect-oriented software engineering
Cross-cutting concerns
8Chapter 21 Aspect-oriented software engineering
Tangling of buffer management and synchronization
code
synchronized void put (SensorRecord rec )
{
// Check that there is space in the buffer; wait if not
if ( numberOfEntries == bufsize)
wait () ;
// Add record at end of buffer
store [back] = new SensorRecord (rec.sensorId,
rec.sensorVal) ;
back = back + 1 ;
// If at end of buffer, next entry is at the beginning
if (back == bufsize)
back = 0 ;
numberOfEntries = numberOfEntries + 1 ;
// indicate that buffer is available
notify () ;
} // put
9Chapter 21 Aspect-oriented software engineering
Scattering of methods implementing secondary
concerns
10Chapter 21 Aspect-oriented software engineering
Aspects, join points and pointcuts
 An aspect is an abstraction which implements a concern. It
includes information where it should be included in a program.
 A join point is a place in a program where an aspect may be
included (woven).
 A pointcut defines where (at which join points) the aspect will
be included in the program.
11Chapter 21 Aspect-oriented software engineering
Terminology used in aspect-oriented software
engineering
Term Definition
advice The code implementing a concern.
aspect A program abstraction that defines a cross-cutting
concern. It includes the definition of a pointcut and the
advice associated with that concern.
join point An event in an executing program where the advice
associated with an aspect may be executed.
join point model The set of events that may be referenced in a pointcut.
pointcut A statement, included in an aspect, that defines the join
points where the associated aspect advice should be
executed.
weaving The incorporation of advice code at the specified join
points by an aspect weaver.
12Chapter 21 Aspect-oriented software engineering
An authentication aspect
aspect authentication
{
before: call (public void update* (..)) // this is a pointcut
{
// this is the advice that should be executed when woven into
// the executing system
int tries = 0 ;
string userPassword = Password.Get ( tries ) ;
while (tries < 3 && userPassword != thisUser.password ( ) )
{
// allow 3 tries to get the password right
tries = tries + 1 ;
userPassword = Password.Get ( tries ) ;
}
if (userPassword != thisUser.password ( )) then
//if password wrong, assume user has forgotten to logout
System.Logout (thisUser.uid) ;
}
} // authentication
13Chapter 21 Aspect-oriented software engineering
AspectJ - join point model
 Call events
 Calls to a method or constructor
 Execution events
 Execution of a method or constructor
 Initialisation events
 Class or object initialisation
 Data events
 Accessing or updating a field
 Exception events
 The handling of an exception
14Chapter 21 Aspect-oriented software engineering
Pointcuts
 Identifies the specific events with which advice should be
associated.
 Examples of contexts where advice can be woven into a
program
 Before the execution of a specific method
 After the normal or exceptional return from a method
 When a field in an object is modified
15Chapter 21 Aspect-oriented software engineering
Aspect weaving
 Aspect weavers process source code and weave the aspects
into the program at the specified pointcuts.
 Three approaches to aspect weaving
 Source code pre-processing
 Link-time weaving
 Dynamic, execution-time weaving
16Chapter 21 Aspect-oriented software engineering
Aspect weaving
17Chapter 21 Aspect-oriented software engineering
Software engineering with aspects
 Aspects were introduced as a programming concept but, as
the notion of concerns comes from requirements, an aspect
oriented approach can be adopted at all stages in the system
development process.
 The architecture of an aspect-oriented system is based
around a core system plus extensions.
 The core system implements the primary concerns.
Extensions implement secondary and cross-cutting concerns.
18Chapter 21 Aspect-oriented software engineering
Core system with extensions
19Chapter 21 Aspect-oriented software engineering
Types of extension
 Secondary functional extensions
 Add extra functional capabilities to the core system
 Policy extensions
 Add functional capabilities to support an organisational policy such as
security
 QoS extensions
 Add functional capabilities to help attain quality of service requirements
 Infrastructure extensions
 Add functional capabilities to support the implementation of the system
on some platform
20Chapter 21 Aspect-oriented software engineering
Key points
 Aspect-oriented approach to software development supports the
separation of concerns. By representing cross-cutting concerns as
aspects, individual concerns can be understood, reused and modified
without changing other parts of the program.
 Tangling occurs when a module in a system includes code that
implements different system requirements. Scattering occurs when the
implementation of a concern is scattered across several components.
 Aspects include a pointcut that defines where the aspect will be woven
into the program, and advice – the code to implement the cross-cutting
concern. Join points are events that can be referenced in a pointcut.
 To ensure the separation of concerns, systems can be designed as a core
system that implements the primary concerns of stakeholders, and a set of
extensions that implement secondary concerns.
21Chapter 21 Aspect-oriented software engineering
Chapter 21 - Aspect-oriented Software Development
Lecture 2
22Chapter 21 Aspect-oriented software engineering
Concern-oriented requirements engineering
 An approach to requirements engineering that focuses on
customer concerns is consistent with aspect-oriented
software development.
 Viewpoints are a way to separate the concerns of different
stakeholders.
 Viewpoints represent the requirements of related groups of
stakeholders.
 Cross-cutting concerns are concerns that are identified by all
viewpoints.
23Chapter 21 Aspect-oriented software engineering
Viewpoints and Concerns
24Chapter 21 Aspect-oriented software engineering
Viewpoints on an equipment inventory system
1. Emergency service users
1.1 Find a specified type of equipment (e.g., heavy lifting gear)
1.2 View equipment available in a specified store
1.3 Check-out equipment
1.4 Check-in equipment
1.5 Arrange equipment to be transported to emergency
1.6 Submit damage report
1.7 Find store close to emergency
2. Emergency planners
2.1 Find a specified type of equipment
2.2 View equipment available in a specified location
2.3 Check-in/cCheck out equipment from a store
2.4 Move equipment from one store to another
2.6 Order new equipment
25Chapter 21 Aspect-oriented software engineering
Viewpoints on an equipment inventory system
3. Maintenance staff
3.1 Check -in/cCheck -out equipment for maintenance
3.2 View equipment available at each store
3.3 Find a specified type of equipment
3.4 View maintenance schedule for an equipment item
3.5 Complete maintenance record for an equipment item
3.6 Show all items in a store requiring maintenance
26Chapter 21 Aspect-oriented software engineering
Availability-related requirements for the equipment
inventory system
AV.1 There shall be a ‘hot standby’ system available in a location that is
geographically well-separated from the principal system.
Rationale: The emergency may affect the principal location of the system.
AV.1.1 All transactions shall be logged at the site of the principal system and
at the remote standby site.
Rationale: This allows these transactions to be replayed and the system
databases made consistent.
AV.1.2 The system shall send status information to the emergency control
room system every five minutes.
Rationale: The operators of the control room system can switch to the hot
standby if the principal system is unavailable.
27Chapter 21 Aspect-oriented software engineering
Inventory system - core requirements
 C.1 The system shall allow authorised users to view the
description of any item of equipment in the emergency
services inventory.
 C.2 The system shall include a search facility to allow
authorised users to search either individual inventories or the
complete inventory for a specific item or type of equipment.
28Chapter 21 Aspect-oriented software engineering
Inventory system - extension requirements
 E1.1 It shall be possible for authorised users to place orders
with accredited suppliers for replacement items of equipment.
 E1.1.1 When an item of equipment is ordered, it should be
allocated to a specific inventory and flagged in that inventory
as ‘on order’.
29Chapter 21 Aspect-oriented software engineering
Aspect-oriented design/programming
 Aspect-oriented design
 The process of designing a system that makes use of aspects to
implement the cross-cutting concerns and extensions that are
identified during the requirements engineering process.
 Aspect-oriented programming
 The implementation of an aspect-oriented design using an aspect-
oriented programming language such as AspectJ.
30Chapter 21 Aspect-oriented software engineering
Use-cases
 A use-case approach can serve as a basis for aspect-oriented
software engineering.
 Each use case represents an aspect.
 Extension use cases naturally fit the core + extensions architectural
model of a system
 Jacobsen and Ng develop these ideas of using use-cases by
introducing new concepts such as use-case slices and use
case modules.
31Chapter 21 Aspect-oriented software engineering
Use cases from the inventory management system
32Chapter 21 Aspect-oriented software engineering
Extension use cases
33Chapter 21 Aspect-oriented software engineering
A generic aspect-oriented design process
34Chapter 21 Aspect-oriented software engineering
Design activities
 Core system design where you design the system
architecture to support the core functionality of the system.
 Aspect identification and design Starting with the extensions
identified in the system requirements, you should analyze
these to see if they are aspects in themselves or if they
should be broken down into several aspects.
 Composition design At this stage, you analyze the core
system and aspect designs to discover where the aspects
should be composed with the core system. Essentially, you
are identifying the join points in a program at which aspects
will be woven.
Chapter 21 Aspect-oriented software engineering 35
Design activities
 Conflict analysis and resolution Conflicts occur when there is
a pointcut clash with different aspects specifying that they
should be composed at the same point in the program.
 Name design is essential to avoid the problem of accidental
pointcuts. These occur when, at some program join point, the
name accidentally matches that in a pointcut pattern. The
advice is therefore unintentionally applied at that point.
Chapter 21 Aspect-oriented software engineering 36
UML extensions
 Expressing an aspect oriented design in the UML requires:
 A means of modelling aspects using UML stereotypes.
 A means of specifying the join points where the aspect advice is to be
composed with the core system.
37Chapter 21 Aspect-oriented software engineering
An aspect-oriented design model
38Chapter 21 Aspect-oriented software engineering
Part of a model of an aspect
39Chapter 21 Aspect-oriented software engineering
Extension statement
 In the method viewItem, after the call to the method
getItemInfo, a call to the method displayHistory should be
included to display the maintenance record
Chapter 21 Aspect-oriented software engineering 40
Verification and validation
 The process of demonstrating that a program meets it
specification (verification) and meets the real needs of its
stakeholders (validation)
 Like any other systems,aspect-oriented systems can be
tested as black-boxes using the specification to derive the
tests
 However, program inspections and ‘white-box’ testing that
relies on the program source code is problematic.
 Aspects also introduce additional testing problems
41Chapter 21 Aspect-oriented software engineering
Program inspection problems
 To inspect a program (in a conventional language) effectively,
you should be able to read it from right to left and top to
bottom.
 Aspects make this impossible as the program is a web rather
than a sequential document. You can’t tell from the source
code where an aspect will be woven and executed.
 Flattening an aspect-oriented program for reading is
practically impossible.
42Chapter 21 Aspect-oriented software engineering
White box testing
 The aim of white box testing is to use source code knowledge
to design tests that provide some level of program coverage
e.g. each logical branch in a program should be executed at
least once.
 Aspect problems
 How can source code knowledge be used to derive tests?
 What exactly does test coverage mean?
43Chapter 21 Aspect-oriented software engineering
Aspect problems
 Deriving a program flow graph of a program with aspects is
impossible. It is therefore difficult to design tests
systematically that ensure that all combinations of base code
and aspects are executed.
 What does test coverage mean?
 Code of each aspect executed once?
 Code of each aspect exeucted once at each join point where aspect
woven?
 ???
44Chapter 21 Aspect-oriented software engineering
Testing problems with aspects
 How should aspects be specified so that tests can be
derived?
 How can aspects be tested independently of the base
system?
 How can aspect interference be tested?
 How can tests be designed so that all join points are executed
and appropriate aspect tests applied?
45Chapter 21 Aspect-oriented software engineering
Key points
 To identify concerns, you may use a viewpoint-oriented
approach to requirements engineering to elicit stakeholder
requirements and to identify cross-cutting quality of service
and policy concerns.
 The transition from requirements to design can be made by
identifying use cases, where each use case represents a
stakeholder concern.
 The problems of inspecting and deriving tests for aspect-
oriented programs are a significant barrier to the adoption of
aspect-oriented software development in large software
projects.
46Chapter 21 Aspect-oriented software engineering

More Related Content

What's hot

Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9Ian Sommerville
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineeringdeshpandeamrut
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
VTrace-A Tool for Visualizing Traceability Links among Software Artefacts for...
VTrace-A Tool for Visualizing Traceability Links among Software Artefacts for...VTrace-A Tool for Visualizing Traceability Links among Software Artefacts for...
VTrace-A Tool for Visualizing Traceability Links among Software Artefacts for...journalBEEI
 
Reengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approachReengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approachIJECEIAES
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4Mohammed Romi
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringAli Raza
 
Software Engineering Introduction
Software Engineering IntroductionSoftware Engineering Introduction
Software Engineering IntroductionDr. Abhineet Anand
 
Engineering Software Products: 1. software products
Engineering Software Products: 1. software productsEngineering Software Products: 1. software products
Engineering Software Products: 1. software productssoftware-engineering-book
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiabilityFrank Gielen
 

What's hot (20)

Ch3. agile sw dev
Ch3. agile sw devCh3. agile sw dev
Ch3. agile sw dev
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineering
 
Week 1
Week 1Week 1
Week 1
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
VTrace-A Tool for Visualizing Traceability Links among Software Artefacts for...
VTrace-A Tool for Visualizing Traceability Links among Software Artefacts for...VTrace-A Tool for Visualizing Traceability Links among Software Artefacts for...
VTrace-A Tool for Visualizing Traceability Links among Software Artefacts for...
 
Reengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approachReengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approach
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4
 
Ch17 distributed software engineering
Ch17 distributed software engineeringCh17 distributed software engineering
Ch17 distributed software engineering
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Ch11 reliability engineering
Ch11 reliability engineeringCh11 reliability engineering
Ch11 reliability engineering
 
Software Engineering Introduction
Software Engineering IntroductionSoftware Engineering Introduction
Software Engineering Introduction
 
Ch22 project management
Ch22 project managementCh22 project management
Ch22 project management
 
Ch8.testing
Ch8.testingCh8.testing
Ch8.testing
 
Engineering Software Products: 1. software products
Engineering Software Products: 1. software productsEngineering Software Products: 1. software products
Engineering Software Products: 1. software products
 
Ch4 req eng
Ch4 req engCh4 req eng
Ch4 req eng
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiability
 
Print report
Print reportPrint report
Print report
 

Similar to Ch21

Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9Ian Sommerville
 
Lecture - 7-10.pptx
Lecture - 7-10.pptxLecture - 7-10.pptx
Lecture - 7-10.pptxFarHana74914
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019MuhammadTalha436
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models Satya P. Joshi
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principlesAhmad sohail Kakar
 
2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdfbcanawakadalcollege
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfVijayakumarKadumbadi
 
Aspect Oriented Programming - AOP/AOSD
Aspect Oriented Programming - AOP/AOSDAspect Oriented Programming - AOP/AOSD
Aspect Oriented Programming - AOP/AOSDCan R. PAHALI
 
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTESSOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTESsuthi
 
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyPaper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyZainab Nayyar
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptxMarwondoMarwondo
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsMuhammadTalha436
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materialssmruti sarangi
 

Similar to Ch21 (20)

Ch21.pptx
Ch21.pptxCh21.pptx
Ch21.pptx
 
Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9
 
Lecture - 7-10.pptx
Lecture - 7-10.pptxLecture - 7-10.pptx
Lecture - 7-10.pptx
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019
 
Unit 2
Unit 2Unit 2
Unit 2
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principles
 
2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf
 
Unit2 2
Unit2 2Unit2 2
Unit2 2
 
ccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdfccs356-software-engineering-notes.pdf
ccs356-software-engineering-notes.pdf
 
Aspect Oriented Programming - AOP/AOSD
Aspect Oriented Programming - AOP/AOSDAspect Oriented Programming - AOP/AOSD
Aspect Oriented Programming - AOP/AOSD
 
Fda 21 CFR 820.30 compliant software development process
Fda 21 CFR 820.30 compliant software development processFda 21 CFR 820.30 compliant software development process
Fda 21 CFR 820.30 compliant software development process
 
Ch2
Ch2Ch2
Ch2
 
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTESSOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
SOFTWARE ENGINEERING & ARCHITECTURE - SHORT NOTES
 
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyPaper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
 
Software process
Software processSoftware process
Software process
 
Mi0033
Mi0033Mi0033
Mi0033
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
 

More from Keith Jasper Mier (20)

Ch26
Ch26Ch26
Ch26
 
Ch25
Ch25Ch25
Ch25
 
Ch24
Ch24Ch24
Ch24
 
Ch23
Ch23Ch23
Ch23
 
Ch22
Ch22Ch22
Ch22
 
Ch20
Ch20Ch20
Ch20
 
Ch19
Ch19Ch19
Ch19
 
Ch18
Ch18Ch18
Ch18
 
Ch17
Ch17Ch17
Ch17
 
Ch16
Ch16Ch16
Ch16
 
Ch15
Ch15Ch15
Ch15
 
Ch14
Ch14Ch14
Ch14
 
Ch13
Ch13Ch13
Ch13
 
Ch12
Ch12Ch12
Ch12
 
Ch11
Ch11Ch11
Ch11
 
Ch10
Ch10Ch10
Ch10
 
Ch9
Ch9Ch9
Ch9
 
Ch8
Ch8Ch8
Ch8
 
Ch7
Ch7Ch7
Ch7
 
Ch6
Ch6Ch6
Ch6
 

Recently uploaded

APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxhumanexperienceaaa
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 

Recently uploaded (20)

APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 

Ch21

  • 1. Chapter 21 - Aspect-oriented Software Development Lecture 1 1Chapter 21 Aspect-oriented software engineering
  • 2. Topics covered  The separation of concerns  Aspects, join points and pointcuts  Software engineering with aspects 2Chapter 21 Aspect-oriented software engineering
  • 3. Aspect-oriented software development  An approach to software development based around a relatively new type of abstraction - an aspect.  Used in conjunction with other approaches - normally object- oriented software engineering.  Aspects encapsulate functionality that cross-cuts and co- exists with other functionality.  Aspects include a definition of where they should be included in a program as well as code implementing the cross-cutting concern. 3Chapter 21 Aspect-oriented software engineering
  • 4. The separation of concerns  The principle of separation of concerns states that software should be organised so that each program element does one thing and one thing only.  Each program element should therefore be understandable without reference to other elements.  Program abstractions (subroutines, procedures, objects, etc.) support the separation of concerns. 4Chapter 21 Aspect-oriented software engineering
  • 5. Concerns  Concerns are not program issues but reflect the system requirements and the priorities of the system stakeholders.  Examples of concerns are performance, security, specific functionality, etc.  By reflecting the separation of concerns in a program, there is clear traceability from requirements to implementation.  Core concerns are the functional concerns that relate to the primary purpose of a system; secondary concerns are functional concerns that reflect non-functional and QoS requirements. 5Chapter 21 Aspect-oriented software engineering
  • 6. Stakeholder concerns  Functional concerns which are related to specific functionality to be included in a system.  Quality of service concerns which are related to the non-functional behaviour of a system.  Policy concerns which are related to the overall policies that govern the use of the system.  System concerns which are related to attributes of the system as a whole such as its maintainability or its configurability.  Organisational concerns which are related to organisational goals and priorities such as producing a system within budget, making use of existing software assets or maintaining the reputation of an organisation. 6Chapter 21 Aspect-oriented software engineering
  • 7. Cross-cutting concerns  Cross-cutting concerns are concerns whose implementation cuts across a number of program components.  This results in problems when changes to the concern have to be made - the code to be changed is not localised but is in different places across the system.  Cross cutting concerns lead to tangling and scattering. 7Chapter 21 Aspect-oriented software engineering
  • 8. Cross-cutting concerns 8Chapter 21 Aspect-oriented software engineering
  • 9. Tangling of buffer management and synchronization code synchronized void put (SensorRecord rec ) { // Check that there is space in the buffer; wait if not if ( numberOfEntries == bufsize) wait () ; // Add record at end of buffer store [back] = new SensorRecord (rec.sensorId, rec.sensorVal) ; back = back + 1 ; // If at end of buffer, next entry is at the beginning if (back == bufsize) back = 0 ; numberOfEntries = numberOfEntries + 1 ; // indicate that buffer is available notify () ; } // put 9Chapter 21 Aspect-oriented software engineering
  • 10. Scattering of methods implementing secondary concerns 10Chapter 21 Aspect-oriented software engineering
  • 11. Aspects, join points and pointcuts  An aspect is an abstraction which implements a concern. It includes information where it should be included in a program.  A join point is a place in a program where an aspect may be included (woven).  A pointcut defines where (at which join points) the aspect will be included in the program. 11Chapter 21 Aspect-oriented software engineering
  • 12. Terminology used in aspect-oriented software engineering Term Definition advice The code implementing a concern. aspect A program abstraction that defines a cross-cutting concern. It includes the definition of a pointcut and the advice associated with that concern. join point An event in an executing program where the advice associated with an aspect may be executed. join point model The set of events that may be referenced in a pointcut. pointcut A statement, included in an aspect, that defines the join points where the associated aspect advice should be executed. weaving The incorporation of advice code at the specified join points by an aspect weaver. 12Chapter 21 Aspect-oriented software engineering
  • 13. An authentication aspect aspect authentication { before: call (public void update* (..)) // this is a pointcut { // this is the advice that should be executed when woven into // the executing system int tries = 0 ; string userPassword = Password.Get ( tries ) ; while (tries < 3 && userPassword != thisUser.password ( ) ) { // allow 3 tries to get the password right tries = tries + 1 ; userPassword = Password.Get ( tries ) ; } if (userPassword != thisUser.password ( )) then //if password wrong, assume user has forgotten to logout System.Logout (thisUser.uid) ; } } // authentication 13Chapter 21 Aspect-oriented software engineering
  • 14. AspectJ - join point model  Call events  Calls to a method or constructor  Execution events  Execution of a method or constructor  Initialisation events  Class or object initialisation  Data events  Accessing or updating a field  Exception events  The handling of an exception 14Chapter 21 Aspect-oriented software engineering
  • 15. Pointcuts  Identifies the specific events with which advice should be associated.  Examples of contexts where advice can be woven into a program  Before the execution of a specific method  After the normal or exceptional return from a method  When a field in an object is modified 15Chapter 21 Aspect-oriented software engineering
  • 16. Aspect weaving  Aspect weavers process source code and weave the aspects into the program at the specified pointcuts.  Three approaches to aspect weaving  Source code pre-processing  Link-time weaving  Dynamic, execution-time weaving 16Chapter 21 Aspect-oriented software engineering
  • 17. Aspect weaving 17Chapter 21 Aspect-oriented software engineering
  • 18. Software engineering with aspects  Aspects were introduced as a programming concept but, as the notion of concerns comes from requirements, an aspect oriented approach can be adopted at all stages in the system development process.  The architecture of an aspect-oriented system is based around a core system plus extensions.  The core system implements the primary concerns. Extensions implement secondary and cross-cutting concerns. 18Chapter 21 Aspect-oriented software engineering
  • 19. Core system with extensions 19Chapter 21 Aspect-oriented software engineering
  • 20. Types of extension  Secondary functional extensions  Add extra functional capabilities to the core system  Policy extensions  Add functional capabilities to support an organisational policy such as security  QoS extensions  Add functional capabilities to help attain quality of service requirements  Infrastructure extensions  Add functional capabilities to support the implementation of the system on some platform 20Chapter 21 Aspect-oriented software engineering
  • 21. Key points  Aspect-oriented approach to software development supports the separation of concerns. By representing cross-cutting concerns as aspects, individual concerns can be understood, reused and modified without changing other parts of the program.  Tangling occurs when a module in a system includes code that implements different system requirements. Scattering occurs when the implementation of a concern is scattered across several components.  Aspects include a pointcut that defines where the aspect will be woven into the program, and advice – the code to implement the cross-cutting concern. Join points are events that can be referenced in a pointcut.  To ensure the separation of concerns, systems can be designed as a core system that implements the primary concerns of stakeholders, and a set of extensions that implement secondary concerns. 21Chapter 21 Aspect-oriented software engineering
  • 22. Chapter 21 - Aspect-oriented Software Development Lecture 2 22Chapter 21 Aspect-oriented software engineering
  • 23. Concern-oriented requirements engineering  An approach to requirements engineering that focuses on customer concerns is consistent with aspect-oriented software development.  Viewpoints are a way to separate the concerns of different stakeholders.  Viewpoints represent the requirements of related groups of stakeholders.  Cross-cutting concerns are concerns that are identified by all viewpoints. 23Chapter 21 Aspect-oriented software engineering
  • 24. Viewpoints and Concerns 24Chapter 21 Aspect-oriented software engineering
  • 25. Viewpoints on an equipment inventory system 1. Emergency service users 1.1 Find a specified type of equipment (e.g., heavy lifting gear) 1.2 View equipment available in a specified store 1.3 Check-out equipment 1.4 Check-in equipment 1.5 Arrange equipment to be transported to emergency 1.6 Submit damage report 1.7 Find store close to emergency 2. Emergency planners 2.1 Find a specified type of equipment 2.2 View equipment available in a specified location 2.3 Check-in/cCheck out equipment from a store 2.4 Move equipment from one store to another 2.6 Order new equipment 25Chapter 21 Aspect-oriented software engineering
  • 26. Viewpoints on an equipment inventory system 3. Maintenance staff 3.1 Check -in/cCheck -out equipment for maintenance 3.2 View equipment available at each store 3.3 Find a specified type of equipment 3.4 View maintenance schedule for an equipment item 3.5 Complete maintenance record for an equipment item 3.6 Show all items in a store requiring maintenance 26Chapter 21 Aspect-oriented software engineering
  • 27. Availability-related requirements for the equipment inventory system AV.1 There shall be a ‘hot standby’ system available in a location that is geographically well-separated from the principal system. Rationale: The emergency may affect the principal location of the system. AV.1.1 All transactions shall be logged at the site of the principal system and at the remote standby site. Rationale: This allows these transactions to be replayed and the system databases made consistent. AV.1.2 The system shall send status information to the emergency control room system every five minutes. Rationale: The operators of the control room system can switch to the hot standby if the principal system is unavailable. 27Chapter 21 Aspect-oriented software engineering
  • 28. Inventory system - core requirements  C.1 The system shall allow authorised users to view the description of any item of equipment in the emergency services inventory.  C.2 The system shall include a search facility to allow authorised users to search either individual inventories or the complete inventory for a specific item or type of equipment. 28Chapter 21 Aspect-oriented software engineering
  • 29. Inventory system - extension requirements  E1.1 It shall be possible for authorised users to place orders with accredited suppliers for replacement items of equipment.  E1.1.1 When an item of equipment is ordered, it should be allocated to a specific inventory and flagged in that inventory as ‘on order’. 29Chapter 21 Aspect-oriented software engineering
  • 30. Aspect-oriented design/programming  Aspect-oriented design  The process of designing a system that makes use of aspects to implement the cross-cutting concerns and extensions that are identified during the requirements engineering process.  Aspect-oriented programming  The implementation of an aspect-oriented design using an aspect- oriented programming language such as AspectJ. 30Chapter 21 Aspect-oriented software engineering
  • 31. Use-cases  A use-case approach can serve as a basis for aspect-oriented software engineering.  Each use case represents an aspect.  Extension use cases naturally fit the core + extensions architectural model of a system  Jacobsen and Ng develop these ideas of using use-cases by introducing new concepts such as use-case slices and use case modules. 31Chapter 21 Aspect-oriented software engineering
  • 32. Use cases from the inventory management system 32Chapter 21 Aspect-oriented software engineering
  • 33. Extension use cases 33Chapter 21 Aspect-oriented software engineering
  • 34. A generic aspect-oriented design process 34Chapter 21 Aspect-oriented software engineering
  • 35. Design activities  Core system design where you design the system architecture to support the core functionality of the system.  Aspect identification and design Starting with the extensions identified in the system requirements, you should analyze these to see if they are aspects in themselves or if they should be broken down into several aspects.  Composition design At this stage, you analyze the core system and aspect designs to discover where the aspects should be composed with the core system. Essentially, you are identifying the join points in a program at which aspects will be woven. Chapter 21 Aspect-oriented software engineering 35
  • 36. Design activities  Conflict analysis and resolution Conflicts occur when there is a pointcut clash with different aspects specifying that they should be composed at the same point in the program.  Name design is essential to avoid the problem of accidental pointcuts. These occur when, at some program join point, the name accidentally matches that in a pointcut pattern. The advice is therefore unintentionally applied at that point. Chapter 21 Aspect-oriented software engineering 36
  • 37. UML extensions  Expressing an aspect oriented design in the UML requires:  A means of modelling aspects using UML stereotypes.  A means of specifying the join points where the aspect advice is to be composed with the core system. 37Chapter 21 Aspect-oriented software engineering
  • 38. An aspect-oriented design model 38Chapter 21 Aspect-oriented software engineering
  • 39. Part of a model of an aspect 39Chapter 21 Aspect-oriented software engineering
  • 40. Extension statement  In the method viewItem, after the call to the method getItemInfo, a call to the method displayHistory should be included to display the maintenance record Chapter 21 Aspect-oriented software engineering 40
  • 41. Verification and validation  The process of demonstrating that a program meets it specification (verification) and meets the real needs of its stakeholders (validation)  Like any other systems,aspect-oriented systems can be tested as black-boxes using the specification to derive the tests  However, program inspections and ‘white-box’ testing that relies on the program source code is problematic.  Aspects also introduce additional testing problems 41Chapter 21 Aspect-oriented software engineering
  • 42. Program inspection problems  To inspect a program (in a conventional language) effectively, you should be able to read it from right to left and top to bottom.  Aspects make this impossible as the program is a web rather than a sequential document. You can’t tell from the source code where an aspect will be woven and executed.  Flattening an aspect-oriented program for reading is practically impossible. 42Chapter 21 Aspect-oriented software engineering
  • 43. White box testing  The aim of white box testing is to use source code knowledge to design tests that provide some level of program coverage e.g. each logical branch in a program should be executed at least once.  Aspect problems  How can source code knowledge be used to derive tests?  What exactly does test coverage mean? 43Chapter 21 Aspect-oriented software engineering
  • 44. Aspect problems  Deriving a program flow graph of a program with aspects is impossible. It is therefore difficult to design tests systematically that ensure that all combinations of base code and aspects are executed.  What does test coverage mean?  Code of each aspect executed once?  Code of each aspect exeucted once at each join point where aspect woven?  ??? 44Chapter 21 Aspect-oriented software engineering
  • 45. Testing problems with aspects  How should aspects be specified so that tests can be derived?  How can aspects be tested independently of the base system?  How can aspect interference be tested?  How can tests be designed so that all join points are executed and appropriate aspect tests applied? 45Chapter 21 Aspect-oriented software engineering
  • 46. Key points  To identify concerns, you may use a viewpoint-oriented approach to requirements engineering to elicit stakeholder requirements and to identify cross-cutting quality of service and policy concerns.  The transition from requirements to design can be made by identifying use cases, where each use case represents a stakeholder concern.  The problems of inspecting and deriving tests for aspect- oriented programs are a significant barrier to the adoption of aspect-oriented software development in large software projects. 46Chapter 21 Aspect-oriented software engineering