Aspect oriented Software Development. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 1

Similar documents
Aspect-oriented Software Development. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 1

Chapter 21 Aspect-Oriented Software Engineering (AOSE)

Chapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1

Chapter 18. Software Reuse

Software testing. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

Component-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Part 5. Verification and Validation

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

Software Engineering

Introduction to. Bruno Harbulot. ESNW, the University of Manchester.

IT risks and controls

Software Design Description Report

AOSD Explained: ASPECT-ORIENTED SYSTEM DEVELOPMENT

TARGET2-SECURITIES INFORMATION SECURITY REQUIREMENTS

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

NAME (as it appears on your UF ID): (Please PRINT) CEN Software Engineering

Software Engineering Chap.7 - Design and Implementation

An Advice for Advice Composition in AspectJ

Requirements Engineering

Software architecture in ASPICE and Even-André Karlsson

Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs)

Modeling Requirements, Architectures, Behaviour...

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern

Adapting applications to exploit virtualization management knowledge

Engineering Document Control

ΗΜΥ 317 Τεχνολογία Υπολογισμού

Applying Aspect Oriented Programming on Security

Verification and Validation

Chapter 8 Software Testing. Chapter 8 Software testing

unsuccessful attempts.

BCS Level 3 Certificate in Software Development Context and Methodologies Syllabus QAN 603/1191/5

The testing process. Component testing. System testing

OS Customization versus OS Code Modularity

Lecture 15 Software Testing

Course 6 7 November Adrian Iftene

Top-Down Network Design

NMVS Portal User Guide for Local Organisations

Aspect-Oriented Software Development

Aspects and Components in Real-Time System Development: Towards Reconfigurable and Reusable Software

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

BCS Certificate in Requirements Engineering Syllabus

Software Testing. Lecturer: Sebastian Coope Ashton Building, Room G.18

Critical Systems. Objectives. Topics covered. Critical Systems. System dependability. Importance of dependability

This regulation outlines the policy and procedures for the implementation of wireless networking for the University Campus.

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Getting Started with. SupportDesk. House-on-the-Hill Software Ltd. SupportDesk Green

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

QSOUL/Aop. Aspect Oriented Software Development using Logic Meta Programming

System models Abstract descriptions of systems whose requirements are being analysed. System modelling. Structured methods

Content(2) Contribution of OOT in Software Engineering History of SE Technologies and Contribution of OOT JAIST Koichiro Ochimizu

Software specification and modelling. Requirements engineering

Aspect Oriented Programming

Employing Query Technologies for Crosscutting Concern Comprehension

"Charting the Course... Certified Information Systems Auditor (CISA) Course Summary

AOP Tutorial. Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan

Remit Issue April 2016

BCS Level 3 Award in Cloud Services Syllabus

Software Testing. Massimo Felici IF

P.O BOX 7289 KIGALI, Tel: , Fax: Website:

The ITIL v.3. Foundation Examination

Requirements Engineering. Establishing what the customer requires from a software system. Requirements Engineering. What is a Requirement?

Practitioner Certificate in Business Continuity Management (PCBCM) Course Description. 10 th December, 2015 Version 2.0

Lesson 06. Requirement Engineering Processes

Certified Information Systems Auditor (CISA)

UK EPR GDA PROJECT. Name/Initials Date 30/06/2011 Name/Initials Date 30/06/2011. Resolution Plan Revision History

Software Engineering

NHS Gloucestershire Clinical Commissioning Group. Business Continuity Strategy

Wireless Network Policy and Procedures Version 1.5 Dated November 27, 2002

ACCREDITATION COMMISSION FOR CONFORMITY ASSESSMENT BODIES

What is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting

Circular on the notification and approval of IT systems

Procedure for the Selection, Training, Qualification and Authorisation of Marine Management Systems Auditors

New functions (Software V2.10)

Separation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation

Lecture 8 Requirements Engineering

Security Policies and Procedures Principles and Practices

Introduction to Aspect-Oriented Programming

Separating Product Variance and Domain Concepts in the Specification of Software Product Lines

The NIS Directive and Cybersecurity in

Aspect-Orientation from Design to Code

Bugdel: An Aspect-Oriented Debugging System

ISEB Practitioner Certificate in IT Service Management: Specialising in Release and Control

Royal Life Saving e-learning user guide

Information technology Security techniques Information security controls for the energy utility industry

ANZSCO Descriptions The following list contains example descriptions of ICT units and employment duties for each nominated occupation ANZSCO code. And

COMP1008 Object-Oriented Programming 2005 Exam 2.5 Hours

Software Testing. Software Testing

MechEng SE3 Lecture 7 Domain Modelling

Monitoring and Managing Computer Resource Usage on OSGi Frameworks

UniAspect: A Language-Independent Aspect-Oriented Programming Framework

Aspect-Oriented Programming and AspectJ

The Common Controls Framework BY ADOBE

Business Continuity Policy

University of Huddersfield Repository

Chapter 17 - Component-based software engineering. Chapter 17 So-ware reuse

ehealth Network ehealth Network Governance model for the ehealth Digital Service Infrastructure during the CEF funding

Transcription:

Aspect oriented Software Development Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 1

Objectives To explain the principle of separation of concerns in software development To introduce the fundamental ideas underlying aspect oriented development To show how an aspect oriented approach can be used at all stages of development To discuss problems of testing aspect oriented systems Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 2

Topics covered The separation of concerns Aspects, join points and pointcuts Software engineering with aspects Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 3

Aspect oriented software development An approach to software development based around a 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 8

Cross cutting concerns New customer req. Account req. Customer management req. Cross cutting concerns Security req. Recovery req. Core concerns Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 9

Tangling synchronized void put (SensorR ecord rec ) throws InterruptedException { if ( numberofentries == bufsize) wait () ; store [back] = ne w SensorRecord (rec.sensorid, rec.sensor Val) ; back = back + 1 ; if (back == bufsize) back = 0 ; numberofentries = numberofentries + 1 ; notify () ; } // put Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 10

Scattering Patient <attribute decls> getname () editname () getaddress () editaddress ()... anonymise ()... Image <attribute decls> getmodality () archive () getdate () editdate ()... savediagnosis () savetype ()... Consultation <attribute decls> makeappoint () cancelappoint () assignnurse () bookequip ()... anonymise () saveconsult ()... Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 12

Aspect terminology Term advice aspect join point join point model pointcut weaving Definition The code implementing a concern. A program abstr action that defines a cross cutting concern. It includes the definition of a pointcut and the advice associated with that concern. An event in an executing program where the advice associated with an aspect may be executed. The set of events that may be referenced in a pointcut. A statement, included in an aspect, that defines the join points where the associated aspect advice should be executed. The incorporation of advice code at the specified join points by an aspect weaver. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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 Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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 Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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 Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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 Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 17

Aspect weaving Authentication aspect Logging aspect Patient... updatedetails (...)... Aspect weaver Patient... authentication code updatedetails (...) logging code... Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 19

Core system + extensions Ext 1 Ext 2 Ext 3 Core system Ext 4 Ext 5 Ext 6 Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 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 Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 21

Concern oriented requirements engineering An approach to requirements engineering that focuses on customer concerns is consistent with aspect oriented software development. Viewpoints (discussed in Chapter 7) 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 22

Viewpoints and Concerns Viewpoints Concerns Equipment Users Managers THE SYSTEM Organisation Society Regulation Security Dependability Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 23

Viewpoints on an 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 Add and remove equipment from a store 2.4 Move equipment from one store to another 2.6 Order new equipment 3. Maintenance staff 3.1 Check in/check 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 Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 24

Availability requirements AV.1 There shall be a ŌhotstandbyÕ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 AV.1.2 databases made consistent 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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 25

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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 26

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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 27

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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 28

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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 29

An extension use case Ēextend Č View maintenance schedule User View equipment item Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 30

Inventory use cases Remove equipment from store Operator Add equipment to store Place equipment order Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 31

Inventory extension use case Ēextend Č Place equipment order Operator Add equipment to store Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 32

An AOSD process Core system design Aspect identification and design Composition design Conflict analysis and resolution Name design Software requirements Design models Program naming standards Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 33

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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 34

An aspect oriented design model Ēaspect Č Monitor Ēaspect Č Maintenance Inventory Ējoinpoint Č Platform Equipment Store Log Platform Ējoinpoint Č Equipment Location Location DB Ēaspect Č Ordering Ēaspect Č Availability Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 35

A partial model of an aspect Ēaspect Č Maintenance pointcuts viewmain = call getiteminfo (..) mainco = call removeitem (..) main ci = call additem (..) class extensions ViewMaintenanceHistory <viewitem> { after (<viewmain>)displayhistory} More extensions here Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 36

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 Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 37

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? Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 38

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. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 39

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? Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 40

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???? Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 41

Key points The key benefit of an aspect oriented approach is that it supports the separation of concerns. Tangling occurs when a module implements several requirements; Scattering occurs when the implementation of a single concern is spread across several components. Systems may be designed as a core system with extensions to implement secondary concerns. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 42

Key points To identify concerns, you may use a viewpointoriented approach to requirements engineering. The transition from requirements to design may be made using 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 AOSD. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 43