AXEL VAN LAMSWEERDE UNIVERSITY OF LOUVAIN PRESENTED BY AMRITAM SARCAR From System Goals to Software Architecture.

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
Lecture # 2 : Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
lamsweerde Chap.12: Modeling System Operations © 2009 John Wiley and Sons Building System Models for RE Chapter 12 Modeling.
Building System Models for RE Chapter 12 Modeling System Operations.
lamsweerde Part 2: Building System Models for RE © 2009 John Wiley and Sons 1 Part 2: Building System Models for RE Introduction.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Software Requirements Engineering
Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Requirements Engineering Course, Dr. Abdollahzadeh 1 Requirements.
Reza Gorgan Mohammadi AmirKabir University of Technology, Department of Computer Engineering & Information Technology, Intelligent.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
1 درس مهندسي نيازمندي استاد دكتر عبداله زاده دانشجو خيرالنسا مرچانت RE in The Year 00: A Research Perspective.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Architectural Design.
Chapter 10 Architectural Design
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
An Introduction to Software Architecture
lamsweerde Requirements Engineering © 2009 John Wiley and Sons 1 Requirements Engineering From System Goals to UML Models.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
lamsweerde Requirements Engineering © 2009 John Wiley and Sons 1 Requirements Engineering From System Goals to UML Models.
Approaching a Problem Where do we start? How do we proceed?
Lecture 7: Requirements Engineering
1 Introduction to Software Engineering Lecture 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Supporting Scenario-Based Requirements Engineering IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 24, NO. 12, DECEMBER, 1998 A. G. Sutcliffe, N. A. M.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Deriving Operational Software Specification from System Goals Xin Bai EEL 5881 Course Fall, 2003.
TDT 4242 Inah Omoronyia and Tor Stålhane Requirements Specification and Testing An introduction TDT 4242 Institutt for datateknikk og informasjonsvitenskap.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e Supplementary Slides for Software Engineering: A Practitioner's Approach,
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Chapter 17. Assertions State Assertion – predicate intended to express that a descriptive or prescriptive property holds in an arbitrarily chose current.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSE 303 – Software Design and Architecture
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Smart Home Technologies
lamsweerde Chap.7: Goal Orientation in RE © 2009 John Wiley and Sons 1 Fundamentals of RE Chapter 7 Goal Orientation in.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
Inferring Declarative Requirements Specification from Operational Scenarios IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 24, NO. 12, DECEMBER, 1998.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Requirements Engineering From System Goals to UML Models to Software Specifications Axel Van Lamsweerde.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Software Engineering Lecture 10: System Engineering.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
 System Requirement Specification and System Planning.
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Lecture Software Process Definition and Management Chapter 3: Descriptive Process Models Dr. Jürgen Münch Fall
Logical architecture refinement
Chapter 2 – Software Processes
Chapter 20 Object-Oriented Analysis and Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
An Introduction to Software Architecture
Design Yaodong Bi.
Presentation transcript:

AXEL VAN LAMSWEERDE UNIVERSITY OF LOUVAIN PRESENTED BY AMRITAM SARCAR From System Goals to Software Architecture

Seminar Outline(1/2) The Problem  The Mismatch Problem  Resolving the Mismatch Problem  The Problem on the Research Side Objectives Background : Goal Oriented RE KAOS goal-oriented RE method Intertwining between late RE & early AD

Seminar Outline(2/2) Generating  Goal Refinements  Obstacles  State Machine From Requirements to S/W Specs Dataflow Architecture Architectural Refinements Generating Patterns Conclusion Limitations and Future Work

The Problem(1/2) Requirements Engineering (RE) =  elicit, specify, analyze & document...  objectives, functionalities, qualities, constraints structured models of system-to-be Architectural Design (AD) =  organize, specify, analyze & document...  components, interactions, configurations, constraints structured model of software-to-be

The Problem(2/2) Poor understanding of...  Relationships Requirements Architecture  Intertwining RE AD No systematic way to...  Build/Modify architecture to meet Functional/Non Functional Requirements  Integrate Architectural Constraints in Requirements Requirement-Architecture Mismatch

The Mismatch Problem Requirements volatility vs. architectural stability New generation software...  Ubiquitous, Mobile  Heterogeneous  Open  Mission-Critical  Operating in changing, (hostile) environments  Open source (permanent, distributed evolution)

Resolving the Mismatch Problem Identifying Major source of failure:  Lack of user involvement 13%  Incomplete requirements 13%  Changing requirements 9%  Unrealistic expectations 10%  Unclear goals 5% Main software problems are in...  requirements specification > 50% responses  requirements management 50% responses

The Problem on the Research Side Much work on architectural description & analysis  ACME, C2, DARWIN, RAPIDE, WRIGHT, UML2.0 (?),... The architecture has to be there  – Architectural patterns & styles Some work on architectural refinement. Little work on architecture derivation.

Objectives Support requirements/architecture co-design/ co evolution Support architecture derivation from requirements models & software specs Make derivation process…  systematic, incremental  leading to provably/arguably correct & “good” architecture  highlighting architectural views (e.g. security view) goal-based architectural design process

Background

Background(What is it about)? Requirements elaboration is hard...  Requirements are not there,  Ranges from high-level, strategic objectives  Detailed, technical requirements  Involves software + environment  Requires evaluation of alternatives, selection  Architectural decisions  Raises conflicting concerns  Requires anticipation of unexpected behaviours

Background : Goal Oriented RE(1/5) Goal: prescriptive statement of intent Domain prop: descriptive statement about domain Agent: active component, controls behaviours  software-to-be, existing software, device, human Goal achievement requires agent cooperation The more fine-grained a goal is, the less agents are required Requirement: goal assigned to software agent Expectation: goal assigned to environment agent

Background : Goal Oriented RE (2/5) Different goal categories... Functional: prescribe expected services  Satisfaction, information,... Non functional, refined in application-specific terms:  quality of service:  accuracy  security: confidentiality, availability, integrity,...  usability  performance,...  Development goals:  Maintainability: min coupling, max cohesion,...  Reusability, interoperability,...  Domain-specific architectural constraints

Background : Goal Oriented RE(3/5) Goal G is AND-refined into sub goals G1,..., Gn iff achieving G1,..., Gn contributes to achieving G  The set {G1,..., Gn} is called refinement of G  Gi is said to contribute positively to G The set {G1,..., Gn} is a complete AND-refinement of G iff G1,..., Gn are sufficient for achieving G in view of known domain properties  {G1,..., Gn, Dom} |= G

Background : Goal Oriented RE(4/5) Goal G is OR-refined into refinements R1,..., Gm iff achieving the sub goals of Ri is one alternative to achieving G (1 <= i <=m)  Ri is called alternative for G

Goal Oriented RE(1/2) Different types of goals...  Soft Goal achievement cannot be established in clear sense  Goal satisfying, qualitative reasoning  Achieve/Maintain goal achievement can be verified

Goal Oriented RE(2/2) Agent responsibility:  G is assignable to Ag if and only if G is realizable by Ag

Modeling Goals and Responsibilities

Modeling Objects Goal oriented UML Class Diagrams. Goal Operationalization.

Background : Goal Oriented RE(5/5) Goal operationalization:  G is correctly operationalized by Op1,..., Opn iff the specs of Op1,..., Opn are necessary & sufficient for ensuring G {Spec(Op1),..., Spec(Opn)} |= G completeness G |= {Spec(Op1),..., Spec(Opn)} minimality

KAOS Goal Oriented RE Method

KAOS Goal Oriented Method

Specifying Goals, Objects and Operations Formal specification is optional...  to support more formal analysis & derivations in KAOS: ONLY WHEN & WHERE NEEDED ABSTRACT LANGUAGE FOR GOALS, REQUIREMENTS, ASSUMPTIONS, DOMAIN PROPERTIES. REAL-TIME TEMPORAL LOGIC MORE OPERATIONAL LANGUAGE FOR OPERATIONS:  state-based spec with traceability to underlying goals

Some Bits of Real Temporal Logic

Specifying Goals : Formal

Specifying Operations : Formal Operation OpenDoors  Input tr: Train ; Output tr': Train  DomPre tr.Doors = "closed" domain description  DomPost tr.Doors = "open"  ReqPre for DoorsClosedWhileMoving: permission  s: Station At (tr, s)  ReqTrig for NoDelay: obligation  Stopped (tr)

Intertwining between late RE and early AD(1/3)

Intertwining between late RE and early AD(2/3) Alternative Goal Refinements Alternative Agent Assignments

Intertwining between late RE and early AD(3/3) Alternative granularities for Software Agents

Formal Goal Level Reasoning Early analysis on partial models, intertwined with model construction  Wide range of opportunities:  checking/deriving goal refinements  checking/deriving operationalizations  generating obstacles  generating boundary conditions for conflict  goal mining from scenarios  generating state machines from operationalizations  reusing goal-based specs by analogy

Checking Goal Refinements(1/4) Aim: show that refinement is correct & complete R, Ass, Dom |-- G R: conjunctive set of requirements or sub goals Approach 1: Use TL theorem prover  Heavyweight, non-constructive Approach 2: Use formal refinement patterns  Lightweight, constructive:  To complete partial refinements  To explore alternative refinements

Checking Goal Refinements(2/4) Idea: Build library of patterns (structured by tactics) Prove patterns once for all Reuse through instantiation, in matching situation  e.g. frequent patterns:

Checking Goal Refinements(3/4)

Checking Goal Requirements(4/4) Approach 3: Early bounded model checking  checking of goal models  partial models  incremental checking/debugging  on selected object instances (propositionalization) Output:  OK  KO + counter-example scenario

Generating Obstacles(1/2) MovingOnRunway => WheelsTurning  Goal Negation: MovingOnRunway ¬ WheelsTurning  Regress t Through Dom:  ?Necessary conditions for wheels turning ? WheelsTurning => ¬ Aquaplaning

Generating Obstacles(2/2) Using formal obstruction patterns  In fact we just used a frequent pattern:

Verifying Operationalizations

Generating State Machines(1/4)

Generating State Machines(2/4) Step 1: Build FSM class declarations  for each e: Entity È Agent in Object model  create a new FSM class;  build state attribute declaration for all behavioural attributes and relationships of e ;  for each behavioural attribute attr identify all legal states of attr in DomPre/DomPost identify additional legal states of attr in Goal

Generating State Machines(3/4) Step 2: Build transitions For each op in Operation model  create a new transition class;  op.DomPre  source state; (propositionalization)  op.DomPost  destination state; (propositionalization)  op.ReqPre  guard condition;  op.ReqTrig  trigger condition;  op.DomPost, op.ReqPost ® action vector;  host the transition;

Step3: Structure the state space  source state structuring:  if states s1, s2 have same transition to same dest state  then aggregate s1, s2 into more general state;  guard migration:  if guard Grd on transition T refers to state s of hosting  object then move Grd as substate s of T.SourceState  (+ i/o transitions)  additional state space structuring by analyst Generating State Machines(4/4)

GSM machines (1/2) From goal operationalizations to GSM machines Synchronizing animations

GSM machines (2/2) Interacting with world visualizations Mapping GSMs to visualizations

From Requirements to S/W Specs(1/2) From requirements to software specs  Requirements vs. software specifications:

From Requirements to S/W Specs(2/2) Example:  Req: MotorReversed  MovingOnRunway  Target Spec: Reverse = ‘enabled’  WheelPulses = ‘on’  Accuracy Goals: MovingOnRunway  WheelPulses = ‘on’ expectation on wheelSensor MotorReversed  Reverse = ‘enabled’ expectation on motor Actuator

Output of Architecture Derivation Process Structure of... COMPONENTS, PORTS CONNECTORS  static: channels, roles, constraints  dynamic: interaction protocol CONFIGURATIONS  correct: functional requirements are met  good quality: QoS & development goals are met  Assumption: requirements conflicts are resolved before

Deriving an Abstract Dataflow Architecture For each “functional” or “critical” goal assigned to software-to-be:  Define one dedicated component...  software agent + all operations operationalizing this goal  interface = monitored & controlled variables in goal formulation Derive dataflow connector between components from  data dependency links  Flows (d, C1, C2) = Controls (C1, d) Monitors (C2, d)

Deriving Dataflow Architecture

Refinement to meet Architectural Constraints Domain-specific constraints...  from environment agents: features, inter-relationships  global constraints on architectural design space  e.g. Meeting scheduling system: Distribution of participants, meeting initiator Document styles by rules  Apply rule matching architectural constraint  Proof obligation: rule application must preserve properties of components & connectors (e.g., data flows)

Refinement to meet Architectural Constraints

Refinements to meet Architectural Constraints

Architecture Refinement Many non-functional goals impose constraints on component interaction  Accuracy (C1,C2): data consistency  Confidentiality (C1,C2): limitation on info flow  Usability (C1,C2): requirement on presentation, dialog  etc: MinCoupling (C1,C2), InfoHidden (C1, C2),  Interoperable (C1,C2),... Some NFGs impose constraints on single component  MaxCohesion (C): fine-grained functionality

General Patterns

Pattern Application : Meeting Scheduling

Conclusion Much room for incremental analysis of partial models at goal level Derivation of architecture from requirements...  – systematic  – incremental  – locality principle; compositional Refined connectors/components explicitly linked to non- functional goals view extraction through architectural net queries:  security view, accuracy view, reusability view,...

Limitations and Further Work Only refinement-based  No bottom-up propagation of middleware requirements NEED FOR COMPLEMENTARY ABSTRACTION PATTERNS No derivation of interaction protocols INTEGRATION OF PREVIOUS WORK ON SYNTHESIS OF CONCURRENT INTERACTION SCHEMES FROM GOAL-BASED INVARIANTS RE_NET: towards requirements/architecture co- design & co-evolution...  at development time  at run time

THANK YOU