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