Addressing Non-Functional Properties in Software Architecture using ADL Christopher Van Eenoo Osama Hylooz Khaled Khan University of Western Sydney ASWEC.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Architecture Representation
Overview of Prism-MW CS 795 / SWE 699 Sam Malek Spring 2010.
Modelling Class T05 Conceptual Modelling – Domain References: –Conceptual Modeling of Information Systems (Chapters 1.2.1, 2, 3) –A practical Guide to.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
C++ fundamentals.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Architectural Design.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99.
Chapter 2 The process Process, Methods, and Tools
An Introduction to Software Architecture
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
©Silberschatz, Korth and Sudarshan1.1Database System Concepts Chapter 1: Introduction Purpose of Database Systems View of Data Data Models Data Definition.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
An Object-Z based Metamodel for Wright Joint work with M. Maouche 2, and M. Mosteghanemi 1 Presented by M. Bettaz 1 1 MESRS/ESI Algeria 2 Philadelphia.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
CWRU EECS 317 EECS 317 Computer Design LECTURE 1: The VHDL Adder Instructor: Francis G. Wolff Case Western Reserve University.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
Hong Zhu Dept of Computing and Communication Technologies Oxford Brookes University Oxford, OX33 1HX, UK TOWARDS.
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Object-Oriented Design.
Wright ADL Liz White INFT Software Architecture.
Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
CMSC 345 Fall 2000 Requirements Expression. How To Express Requirements Often performed best by working top- down Express general attributes of system.
Tomás BarrosMonday, April 18, 2005FIACRE Toulouse p. 1 Behavioural Models for Hierarchical Components Tomás Barros, Ludovic Henrio and Eric Madelaine.
CS223: Software Engineering Lecture 13: Software Architecture.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
An Object-Z / CSP Based Approach for the Specification of Architectural Connectors Mourad Maouche Philadelphia University Jordan Mohamed Bettaz MESRS Algeria.
1 A Multi-Paradigm Approach to Describe Software Systems presented by Adel Smeda.
Chapter 5 – System Modeling
Introduction to DBMS Purpose of Database Systems View of Data
CSCI 578 Software Architectures
UML Diagrams By Daniel Damaris Novarianto S..
Object-Oriented Analysis and Design
OO Methodology OO Architecture.
Distribution and components
UML Diagrams Jung Woo.
UML: Unified modeling language
The Extensible Tool-chain for Evaluation of Architectural Models
Introduction to Database Systems
Software Connectors – A Taxonomy Approach
Patterns.
Architecture Description Languages
Software Connectors.
An Introduction to Software Architecture
Introduction to DBMS Purpose of Database Systems View of Data
Software Architecture Lecture 7
Software Architecture Lecture 7
Design Yaodong Bi.
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

Addressing Non-Functional Properties in Software Architecture using ADL Christopher Van Eenoo Osama Hylooz Khaled Khan University of Western Sydney ASWEC 2005 Brisbane

Contents  Motivation  Current state of ADL  Proposed approach  Wright ADL  Major issues  Proposed constructs  Limitations.

Motivation  Software architecture reveals the aspects related to systems functionality, their collaboration, and structure  Non functional aspects are rarely addressed at the architecture level  Lack of integration between functional and non- functional aspects in the architecture  Most ADLs do not incorporate quality attributes  Software architecture needs to describe non- functional properties as well as behavioural attributes.

Current state  Architectural Definition Language (ADL) specifies the structural composition  Limitations of current ADL features  Non-functional properties are often too abstract and stated informally  Separation of the non-functional requirements from the functional ones is not simple  Non-functional issues are often considered as an ‘after thought’ of the development process.

Proposed approach  We propose some ADL constructs using a combination of Wright and CSP notations  ADLs incorporate the non-functional properties  We explore how non-functional issues could be addressed at the ADL level  Not formal yet.

ADL Wright  Designed around three basic software architectural elements: Components  Interface Ports: interactions with the environment in terms of events  Computation What actually a component does in terms of events specified in ports Connectors  Role: behaviour of the participants in an interaction  Glue: how the participants work together to create a composition Configurations  Instances  Attachment: put together instances  Heavily based on CSP.

An example of Wright Configuration XYZ Component X-Type Port Out = ā → Out § Computation = Out.a → Computation § Component Y-Type Port In = c → In ٱ § Computation = In.c → b → Computation ٱ § Connector Z-type Role Get = ā → Get § Role Set = c → Set ٱ § Glue = Get.a → Set.c → Glue ٱ § Instances x:X-type y:Y-Type z:Z-Type Attachments x.Out as z.Get y.In as z.Set End XYZ a connector specification a component specification The configuration between two components x and y via the connector z a component specification Systems name

Issues addressed  Specification of non-functional properties  Differentiate between the required properties from the ensured properties  Handling of multiple number of properties in one interface element.

Base construct  Base construct Non-functional Prop = (REQUIRES {provider.rrqmt}, ENSURES {port/role.erqmt})  Is read as “The non-functional property Prop requires rrqmt from provider and ensures erqmt on port/role.”  Non-functional, REQUIRES, and ENSURES are Wright reserved words  Prop is a variable to be replaced with a non-functional property  REQUIRES indicates that the component or connector must receive from its environment  ENSURES indicates that component or connector must provide to its environment  a CSP notation for ‘contains’

Furthering the construct  Multiple Unrelated Requirements Non-functional Prop = (REQUIRES {provider a.rrqmt a }, REQUIRES {provider b.rrqmt b }, ENSURES {port/role.erqmt})  Multiple Related Requirements Non-functional Prop = (REQUIRES {provider a.rrqmt a ; provider a.rrqmt b ; provider a.rrqmt c }, ENSURES {port/role.erqmt})

Furthering the construct – cont’d  Empty Set & Mathematical Notation Non-functional Prop = (REQUIRES {}, ENSURES {port/role.erqmt > x})  “All” operator Non-functional Prop = (REQUIRES {all.rrqmt}; ENSURES {all.erqmt})

Example  Fictional e-healthcare system  3 components, 3 connectors

Example – cont’d  Components - Existing Component GP Port authenticate = authenticate?x  authenticate Port write = start  accept!x  write Computation authenticate.authenticate?x  write.start  computation Component SP Port patient_test_data = data?x  patient_test_data Port compute_diagnosis = start  data!x  compute_diagnosis Computation=patient_test_data.data?x  compute_diagnosis.start  computation Component PH Port diagnosis = diagnosis?x  diagnosis Port prescription=start  diagnosis!x  prescription Computation = diagnosis.diagnosis?x  prescription.start  computation

Example – cont’d  Components with Construct Component GP Port auth = authenticate?x  auth Port write = start  accept!x  write Computation auth.authenticate?x  write.start  computation Non-functional Security = (REQUIRES {Remote_Procedure_Call.encryption}, ENSURES {auth.authentication}) Component SP Port patient_test_data = data?x  patient_test_data Port compute_diagnosis = start  data!x  compute_diagnosis Computation = patient_test_data.data?x  compute_diagnosis.start  computation Non-functional Performance = (REQUIRES {Pipe.BufferSize ≥ 50KB; Pipe.ReadSpeed ≥ 1MB/sec}, ENSURES {}) Component PH Port diagnosis = diagnosis?x  diagnosis Port prescription = start  prescription!x  prescription Computation = diagnosis.diagnosis?x  prescription.start  computation Non-functional Security = (REQUIRES {}, ENSURES {Prescription.encryption})

Exmaple – cont’d  Connectors - Existing Connector Shared_Variable Role GetTestData = accept?x  GetTestData Role GiveTestData = data!x  GiveTestData Glue = GetTestData.accept?x  GiveTestData.data!x  Glue Connector Pipe Role GetDiagnosis = data?x  GetDiagnosis Role GiveDiagnosis = diagnosis!x  GiveDiagnosis Glue = Getdiagnosis.data?x  GiveDiagnosis.diagnosis!x  Glue Connector Remote_Procedure_Call Role GetDiagnosis = diagnosis?x  GetDiagnosis Role GivePrescription = prescription!x  GivePrescription Glue = GetDiagnosis.diagnosis?x  GivePrescription.prescription!x  Glue

Example – cont’d  Connectors with Construct Connector Shared_Variable Role GetTestData = accept?x  GetTestData Role GiveTestData = data!x  GiveTestData Glue = GetTestData.accept?x  GiveTestData.data!x  Glue Non-functional Security = (REQUIRES {GP.authentication}, ENSURES {}) Availability = (REQUIRES {}, ENSURES {GetTestData.WhenRead != GiveTestData.Write; GiveTestData.WhenWrite != GetTestData.Read}) Connector Pipe Role GetDiagnosis = data?x  GetDiagnosis Role GiveDiagnosis = diagnosis!x  GiveDiagnosis Glue = Getdiagnosis.data?x  GiveDiagnosis.diagnosis!x  Glue Non-functional Performance = (REQUIRES {}, ENSURES {GiveDiagnosis.BufferSize ≥ 50KB; GiveDiagnosis.ReadSpeed ≥ 1MB/sec}) Connector Remote_Procedure_Call Role GetDiagnosis = diagnosis?x  GetDiagnosis Role GivePrescription = prescription!x  GivePrescription Glue = GetDiagnosis.diagnosis?x  GivePrescription.prescription!?x  Glue Non-functional Security = (REQUIRES {}, ENSURES {.encryption })

Limitations Lacks formal rigidity String-like representation of non-functional properties Possibility for redundancy when one requirement pertains to more than one non-functional attribute Difficulty in defining and quantifying the non- functional properties in terms of a continuos scale.