Concern Architecture View and Aspect-Oriented Design Mika Katara and Shmuel Katz Tampere U. T. Technion, Haifa.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Architecture Representation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
 Recent researches show that predicative programming can be used to specify OO concepts including classes, objects, interfaces, methods, single and multiple.
Chapter 7 – Object-Oriented Design
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Object-Oriented Analysis and Design
Use-case Modeling.
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
UML – Class Diagrams.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
Categories of Aspects Shmuel Katz Computer Science Department The Technion Haifa, Israel.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented design 2.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
SE-565 Software System Requirements More UML Diagrams.
UML Class Diagrams: Basic Concepts. Objects –The purpose of class modeling is to describe objects. –An object is a concept, abstraction or thing that.
The Unified Modeling Language (UML) Class Diagrams.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Systems Analysis and Design in a Changing World, Fifth Edition
An Introduction to Software Architecture
Unified Modeling Language, Version 2.0
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Systems Analysis and Design in a Changing World, 3rd Edition
 Three-Schema Architecture Three-Schema Architecture  Internal Level Internal Level  Conceptual Level Conceptual Level  External Level External Level.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Winter 2007, rev. 2008SEG Chapter 21 Chapter 2 Basic Principles.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
Concern Architectures: An Aspect-Oriented Software Architecture Viewtype Mika Katara. Shmuel Katz Presented by: Gil Krumgant.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Part VII: Design Continuous
Relationships Relationships between objects and between classes.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Introduction to OOAD and the UML
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
UML / UML 2.0 Diagrams (Part I) 1. Overview of the 13 diagrams of UML Structure diagrams 1.Class diagram 2.Composite structure diagram (*) 3.Component.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 15 The Unified Modeling Language: a Primer.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
 Building Block Building Block  Things in the UML Things in the UML  Structural Things Structural Things  Behavioral Things Behavioral Things  Grouping.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
DESIGN OF SOFTWARE ARCHITECTURE
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Basic Concepts and Definitions
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Diagrams. Typically, we view the static parts of a system using one of the four following diagrams. 1. Class diagram 2. Object diagram 3. Component diagram.
UML Fundamental Elements. Structural Elements Represent abstractions in our system. Elements that encapsulate the system's set of behaviors. Structural.
CS 501: Software Engineering Fall 1999 Lecture 15 Object-Oriented Design I.
UML (Unified Modeling Language)
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 4: Business Process and Functional Modeling, continued
The Movement To Objects
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Systems Analysis and Design With UML 2
2.3 Collaboration Contracts
The Object Oriented Approach to Design
Aspect Validation: Connecting Aspects and Formal Methods
Design and Implementation
Analysis models and design models
An Introduction to Software Architecture
Software Architecture
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Chapter 4 System Modeling.
Presentation transcript:

Concern Architecture View and Aspect-Oriented Design Mika Katara and Shmuel Katz Tampere U. T. Technion, Haifa

Designing Aspects and Describing Connections among Aspects Not supported on architecture/design level Need incremental design of aspects Must understand potential interactions For correctness For reuse in building blocks For evolution and maintenance As an aspect-oriented view of system architecture

One Context: Viewtypes A perspective on software architecture Defined using elements and relationships Can have several styles that define recurring forms Client-server Pipeline Reference: Clements, et.al, Documenting Software Architectures: Views and Beyond

Here: a software architecture viewpoint The organization of the aspects themselves Only one way to view

Abstract definitions Concern: conceptual matter of interest (security, performance monitoring, … ) A name “ inherited ” from a group of requirements Aspect: software design treating part of a concern, usually cross-cutting Combined aspect: Cluster of related aspects that treat a concern Remodularization/refactoring to isolate common denominators in separate aspects

What is an aspect? A Mapping: Design  Design Two parts: Required: the part of the `source ’ design giving join points and needed assumptions used Provided/Defines: the augmentations that give the result of applying the aspect Example: Aspect A uses (formal) class C, and defines a subclass D with new method m Parametric in C; bind C to actual required class

Preview: Record Aspect

Composing aspects For A and B, if there is no binding among their required parts (directly or indirectly), either order is OK; they are independent BUT, if the required part of B is bound to part of A, then B is applied later, and B depends on A Uses Superimposition concepts and mechanisms (see references and explanation in paper) A collection of aspects and dependencies ordering their composition treat each concern

Two types of dependency Between aspects that together treat the same concern Order, compose, and modularize Between unrelated aspects … identify potential conflicts and “ stress points ” Can identify relations among concerns

Example: monitoring execution and preventing overflow If monitoring adds integer counters, and overflow must treat every integer, monitoring must be done first, even though they treat different concerns. If different variables are treated, or monitoring doesn ’ t affect integers, they may be independent. If monitoring must treat everything else, overflow should be applied first Can also have mutual application Policy: identify overlapping subaspects: when (treatment of) one concern is modified, the other may be influenced

Concern Diagram: a new view Contain aspects, dependencies among them, groupings into concerns Concerns have overlapping, contain common aspects Architectural viewpoint that identifies potential conflicts, concentrates effort when changes are made

Instantiation for UML Describe an aspect as a stereotype of a package where any element can be denoted required or provided Elements includes class, method, state, transition, link, use case, actor, etc. Add new UML diagram type to treat concern diagram for selected subsets of aspects, concerns, and elements

Symmetric or Asymmetric View? Could have everything be a concern, each realized by aspects that are then ordered by dependencies and bound Could have an underlying object system that treats some concerns, others in an aspect layer that uses this notation

Extended example: digital sound recorder Slices that correspond to Playing a message, Recording a new message, Activating an alarm clock are complex and hide any overlap Instead: describe aspects separately, use concern diagram to show overlap Slices are results of combinations of simpler aspects (themselves aspects or superimpositions)

Basic Classes and Aspects Classes: hardware wrappers and low level software Microphone, Speaker, Display, Timer, Battery,.. UserInterface, AudioController, AudioBlock Here, these are all required in the descriptions of the aspects Here, all high-level functionality is in aspects Other divisions are possible

Sound Recorder (cont.) Typical aspects GUI Memory management Record (Added parts over GUI and Memory) Output creation Typical concerns Playing, Recording, Activating alarm

Concern Diagram

Record Aspect

State machines and sequence diagrams in aspects

GUI Aspect

Recording slice (combined aspect, with no requires part)

Conclusions Combinations of collections of aspects are needed to treat concerns Parametric UML aspects with requires and provides Concern diagrams identify common denominators and stress points One (valuable) view in a multiview approach Still needed: clear development path, correctness criteria, semantics