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

Slides:



Advertisements
Similar presentations
Chapter 7 System Models.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
Configuration management
Defect testing Objectives
Software Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Chapter 21 - Aspect-oriented Software Development Lecture 1 1 Chapter 21 Aspect-oriented software engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Software Engineering General Project Management Software Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented design 2.
Overview of Software Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Defect testing l Testing programs to establish the presence of system defects.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Defect testing l Testing programs to establish the presence of system defects.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Requirements Analysis
Aspect-Oriented Software Development (AOSD)
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Testing Integral part of the software development process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Software Testing “If you can’t test it, you can’t design it”
Presentation transcript:

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

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 2 Concern-oriented requirements engineering l An approach to requirements engineering that focuses on customer concerns is consistent with aspect-oriented software development. l Viewpoints (discussed in Chapter 7) are a way to separate the concerns of different stakeholders. l Viewpoints represent the requirements of related groups of stakeholders. l Cross-cutting concerns are concerns that are identified by all viewpoints.

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 3 Viewpoints and Concerns

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 4 Viewpoints on an inventory system

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 5 Availability requirements

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 6 Inventory system - core requirements l C.1 The system shall allow authorised users to view the description of any item of equipment in the emergency services inventory. l 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 2006Software Engineering, 8th edition. Chapter 32 Slide 7 Inventory system - extension requirements l E1.1 It shall be possible for authorised users to place orders with accredited suppliers for replacement items of equipment. l 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 2006Software Engineering, 8th edition. Chapter 32 Slide 8 Aspect-oriented design/programming l 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. l Aspect-oriented programming The implementation of an aspect-oriented design using an aspect-oriented programming language such as AspectJ.

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 9 Use-cases l A use-case approach can serve as a basis for aspect-oriented software engineering. l Each use case represents an aspect. Extension use cases naturally fit the core + extensions architectural model of a system l 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 2006Software Engineering, 8th edition. Chapter 32 Slide 10 An extension use case

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 11 Inventory use cases

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 12 Inventory extension use-case

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 13 An AOSD process

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 14 UML extensions l 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 2006Software Engineering, 8th edition. Chapter 32 Slide 15 An aspect-oriented design model

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 16 A partial model of an aspect

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 17 Verification and validation l The process of demonstrating that a program meets it specification (verification) and meets the real needs of its stakeholders (validation) l Like any other systems,aspect-oriented systems can be tested as black-boxes using the specification to derive the tests l However, program inspections and ‘white-box’ testing that relies on the program source code is problematic. l Aspects also introduce additional testing problems

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 18 Testing problems with aspects l How should aspects be specified so that tests can be derived? l How can aspects be tested independently of the base system? l How can aspect interference be tested? l How can tests be designed so that all join points are executed and appropriate aspect tests applied?

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 19 Program inspection problems l To inspect a program (in a conventional language) effectively, you should be able to read it from right to left and top to bottom. l 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. l Flattening an aspect-oriented program for reading is practically impossible.

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 20 White box testing l 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. l Aspect problems How can source code knowledge be used to derive tests? What exactly does test coverage mean?

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 21 Aspect problems l 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. l 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 2006Software Engineering, 8th edition. Chapter 32 Slide 22 Key points l To identify concerns, you may use a viewpoint- oriented approach to requirements engineering. l The transition from requirements to design may be made using use-cases where each use-case represents a stakeholder concern. l The problems of inspecting and deriving tests for aspect-oriented programs are a significant barrier to the adoption of AOSD.