Software Quality and Safety Pascal Mbayiha.  software engineering  large, complex systems  functionality, changing requirements  development difficult.

Slides:



Advertisements
Similar presentations
3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
Advertisements

ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Design of a biomolecular Device that executes process Algebra Urmi Majumder and John Reif Department of Computer Science Duke University DNA15, JUNE 10,
Architecture Representation
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Chapter 1 An Overview of Computers and Programming Languages.
Supervisory Control of Hybrid Systems Written by X. D. Koutsoukos et al. Presented by Wu, Jian 04/16/2002.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Software Testing and Quality Assurance
An Introduction to Input/Output Automata Qihua Wang.
The Architecture Design Process
Introduction to Computers and Programming. Some definitions Algorithm: –A procedure for solving a problem –A sequence of discrete steps that defines such.
Self-Stabilization An Introduction Aly Farahat Ph.D. Student Automatic Software Design Lab Computer Science Department Michigan Technological University.
© Copyright Eliyahu Brutman Programming Techniques Course.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
COMPONENT-BASED SOFTWARE ENGINEERING
Chapter 10 Architectural Design
The Design Discipline.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Requirements Analysis
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
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.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Reliable Design of Safety Critical Systems Dr. Abhik Roychoudhury School of Computing
Test Suite Reduction for Regression Testing of Simple Interactions between Two Software Modules Dmitry Kichigin.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
Lyra – A service-oriented and component-based method for the development of communicating systems (by Sari Leppänen, Nokia/NRC) Traditionally, the design,
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Part VII: Design Continuous
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 10: Statecharts.
Chapter 1 Data Abstraction: The Walls CS Data Structures Mehmet H Gunes Modified from authors’ slides.
Requirements Analysis
CS223: Software Engineering
/ PSWLAB Thread Modular Model Checking by Cormac Flanagan and Shaz Qadeer (published in Spin’03) Hong,Shin Thread Modular Model.
CS 501: Software Engineering Fall 1999 Lecture 15 Object-Oriented Design I.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Software Engineering Algorithms, Compilers, & Lifecycle.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Lecture 1: Introduction to JAVA
Unified Modeling Language
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Activity Flow Design - or - Organizing the users’ Work
Distribution and components
Chapter 19: Interfaces and Components
Chapter 19: Interfaces and Components
Paper written by Flavio Oquendo Presented by Ernesto Medina
Instructor: Aaron Roth
Interfaces and Components
Chapter 19: Interfaces and Components
Presentation transcript:

Software Quality and Safety Pascal Mbayiha

 software engineering  large, complex systems  functionality, changing requirements  development difficult task  structures, interactions, dependencies...  fighting complexity  principle of separation of concerns separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  general idea  component-based system  consider different views isolated first  local solution, complete system understandable  compose parts  overall system design or implementation separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  component  elemental building block  communication via contracts (interfaces)  behavior-related separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  contract  assumed and guaranteed characteristics  available operations  valid interaction sequences separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha separation of non-orthogonal concerns in software architecture and design  composition of concerns (structural) Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha separation of non-orthogonal concerns in software architecture and design  composition of concerns (behavioural) Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  Floor Plan of an assembly line separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  Production chain view and contract SimpleProcess separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  machine control view and contract Control separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  Monitoring view and contract Monitor separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  composition rules: 1. component in one particular architectural view  sufficient to add it to the composite structure  update dependency relations 2. component in multiple views with distinct contracts  set of contracts is the union of all original  rearrange dependencies if interaction partner has changed separation of non-orthogonal concerns in software architecture and design12 Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  Structural composition Machine separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  easy if contracts are orthogonal  the usage of a contract provided by a given component will never effect clients which uses other contracts of the same component separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  Restriction := ¬([StandBy] ∃ ∧ [Work ∩ Control] ∃ )  for the Control contract – in stand-by, no other contracts should offer substantial work operations separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  Behavior has to be: 1.contract conform  fulfils all contracts 2.restriction conform  no states witch violates restrictions 3.protocol conform  desirable behavior still available  deleted states and transitions  Otherwise:  resolve detected conflict  redesign separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  needed Input:  restrictions and two transition systems  composition of SimpleProcess and Control  restriction:  in Control state Off only provide the transition warmUp within the category Modifier  a machine in state StandBy is designed to allow no activity classified as Work separation of non-orthogonal concerns in software architecture and design R C := ¬ (([Off] ∃ ∧ [Modifier ∩ Control] ∃ ) ∨ ([StandBy] ∃ ∧ [Work ∩ Control] ∃ )) Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha separation of non-orthogonal concerns in software architecture and design Free P rocessing Stand By Off Running register deRegister warmUp start stop shutDown F+O P+O F+S F+R P+S P+R R C := ¬ (([Off] ∃ ∧ [Modifier ∩ Control] ∃ ) ∨ ([StandBy] ∃ ∧ [Work ∩ Control] ∃ )) putPart // compute the complete parallel product S // test all states for compliance with Restrictions // remove s from S if the restrictions are violated // repeat until S has stabilized or Q becomes empty // remove all non protocol-conform (s1, s2) from S Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha separation of non-orthogonal concerns in software architecture and design  redesign Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective R P := ¬ (([Halted] ∃ ∧ [Regular ∩ Process] ∃ ) ∨ ([Processing] ∃ ∧ [Regular ∩ Process] ∃ ))

Pascal Mbayiha separation of non-orthogonal concerns in software architecture and design Free P rocessing Stand By Off Running register deRegister warmUp start stop shutDown H+O H+S F+O P+O F+S F+R R P := ¬ (([Halted] ∃ ∧ [Regular ∩ Process] ∃ ) ∨ ([Processing] ∃ ∧ [Regular ∩ Process] ∃ )) putPart Halted Stopped H+R S+O S+S P+S P+R S+R deRegister // compute the complete parallel product S // test all states for compliance with both Restrictions // remove s from S if the restrictions are violated // repeat until S has stabilized or Q becomes empty // remove all non protocol-conform (s1, s2) from S R C := ¬ (([Off] ∃ ∧ [Modifier ∩ Control] ∃ ) ∨ ([StandBy] ∃ ∧ [Work ∩ Control] ∃ )) Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  check state by state  combine multiple contracts simultaneous  symbolic representation of labeled transitions  efficient encoding of state space, transitions  efficient reachability analysis with symbolic techniques  handle more complex composition problems with multiple, moderately large architectural views separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha  specification without real-time  in reality real-time behavior  every thing need time  expand the approach separation of non-orthogonal concerns in software architecture and design Introduction | basic concepts | structural composition | behavioral composition | synthesis algorithm | perspective

Pascal Mbayiha separation of non-orthogonal concerns in software architecture and design23

Pascal Mbayiha  A Methodology for Specifying and Analyzing Consistency of Object-Oriented Behavioral Models  consistency for each protocol and components  specify all statecharts completely before a consistency check  Presented approach:  the connection between components to be consistent  test all protocols and additional restrictions separation of non-orthogonal concerns in software architecture and design

Pascal Mbayiha  a set offers(s) := {a ∈ A|∃s’ ∈ S : s[a>s} denotes the labels of all available steps from a given state s.  For a general composition of multiple contracts, it is required to respect the two different forms of contract transitions.  The regular behavior of one contract, as specified by its labelled transitions, has to be combined with the reflexive and transitive closure of the τ steps of the other ones separation of non-orthogonal concerns in software architecture and design

Pascal Mbayiha  Symbolic encoding separation of non-orthogonal concerns in software architecture and design