BY OKAY ASLAN 2006703558 CMPE 516 FAULT TOLERANT COMPUTING A Formal Object-Oriented Analysis for Software Reliability: Design for Verification.

Slides:



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

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Database Systems: Design, Implementation, and Management Tenth Edition
Software Requirements Engineering
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
Software Testing and Quality Assurance
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
The chapter will address the following questions:
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Introduction To System Analysis and design
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
UML - Development Process 1 Software Development Process Using UML (2)
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Database Systems: Design, Implementation, and Management Ninth Edition
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
A Z Approach in Validating ORA-SS Data Models Scott Uk-Jin Lee Jing Sun Gillian Dobbie Yuan Fang Li.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
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.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
SOFTWARE DESIGN.
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
9-1 © Prentice Hall, 2007 Chapter 9: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Formal Methods.
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
7-1 © Prentice Hall, 2007 Topic 7: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
1 Lecture 15: Chapter 19 Testing Object-Oriented Applications Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Basic Characteristics of Object-Oriented Systems
Analysis Classes Unit 5.
Object-Oriented Design
Chapter 20 Object-Oriented Analysis and Design
Object oriented analysis and design
Analysis models and design models
An Introduction to Software Architecture
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

BY OKAY ASLAN CMPE 516 FAULT TOLERANT COMPUTING A Formal Object-Oriented Analysis for Software Reliability: Design for Verification

INTRODUCTION Problem  Software systems used for control of modern devices are typically both complex and concurrent.  Object-Oriented (OO) development methods are increasingly employed to cope with the complexity of these software systems.  OO development systems still largely depend on conventional testing to validate correctness of system behaviors. Not adequate to attain the needed reliability, for complex systems.

INTRODUCTION Model checking  Formally verifies that a given system satisfies a desired behavioral property through exhaustive search of ALL states reachable by the system  Widely and successfully applied to verification of hardware systems.

INTRODUCTION Model checking on Software  Much less successful  Software systems must be translated from programming or specification languages to representations to which model checking can be applied  It must have a tractable state space if model checking is to be successful. By conventional development processes, however, it is resulted in very large interconnected state spaces

INTRODUCTION Target: Applying model checking on Software and increase system reliability  Development of OO software systems that when translated to representations to which model checking can be applied, yield manageable state spaces.  Design rules are the critical initial step in the methodology for integration of formal verification by model checking into OO development processes

INTRODUCTION 4 steps to obtain reliable system 1. Re-implement the control subsystem as an executable specification in the form of an Object-Oriented Analysis (OOA) model (in the Shlaer-Mellor (SM) methodology) 2. Validate this executable specification as thoroughly as possible by testing 3. Apply model checking to the OOA model to validate its behavior at all possible states of the system 4. Generate the control software by compilation of the validated and verified OOA model.

INTRODUCTION OOA Models  Represents the program at a higher level of abstraction than a conventional programming language  Partitions the system into well-defined classes to attempt to apply model checking to these apparently highly modular OOA models led to intractably large state spaces

INTRODUCTION Spatial Modularity  In hardware, the “calling” module and “called” module are separated spatially and communicate through a clean interface and a specified protocol.  Supports divide-and-conquer analytical techniques, as each module can be analyzed in isolation  Essential for successful model-checking because it resolves a fundamental problem of the state space explosion

INTRODUCTION Spatial Modularity for software systems  It is the strong form of name space modularity where the name spaces modules are strictly disjoint and all interactions among modules are across specified interfaces and follow specified protocols  A set of design rules are introduced, which constrain the syntactic structure of OOA models to match “spatial modularity”

Integration of Model Checking with OO Development The OOA-based methodology for the spatial development of software systems

Integration of Model Checking with OO Development Fulfills the requirements:  modeling, design analysis, formal verification, and automated code generation

Integration of Model Checking with OO Development xUML Notation:  The action language (a standart language adopted by Object Management Group) and SM OOA semantics represented in UML notation define an executable subset of UML (xUML).

Integration of Model Checking with OO Development Static structure diagrams:  capture conceptual entities as classes with semantics defined by attributes

Integration of Model Checking with OO Development Object information diagrams(OID)  Describes the classes and relationships that hold between the classes.  Graphically represents a design architecture for an application domain

Integration of Model Checking with OO Development Subsystem relationship diagrams  positions the application domain in relation to its scope, limits, relationships with other domains and main actors involved (scenarios)

Integration of Model Checking with OO Development The collaboration diagram  For graphical representation of the signals sent from one class to another.  Provides a summary of asynchronous communication between state/event models in the system.

Integration of Model Checking with OO Development The state transition diagram  graphically represents a state machine.  consists of nodes, representing states and their associated actions to be performed, and event arcs, which represent transitions between states.

Integration of Model Checking with OO Development The execution of an action occurs after receiving the signal or event. A transition table is a list of signals, and ”the next” states that are their result. Signals have an arbitrary identifier, a target class, and associated data elements

Integration of Model Checking with OO Development COSPAN  An Automaton-based Model Checking Tool  Allows symbolic analysis of the design model for user-defined behavioral properties.  Each such test of task performance constitutes a mathematical proof (or disproof), derived through the symbolic analysis (not through execution or simulation).

DESIGN FOR VERIFICATION An xUML OOA is a natural representation to which to apply model-based verification techniques. The complexity level of the executable OOA models is far less than the procedural language programs to which they are translated. OOA techniques provides finite state representation

DESIGN FOR VERIFICATION OOA Methodology Features: Abstraction of implementation details  Relationships between objects at the OOA level are represented as associations and not as pointers. OOA constructs such as signals in UML express state transitions without reference to the internal states of objects.  Separate specification of class models and behavior models separates specification of data from control.

DESIGN FOR VERIFICATION OOA Methodology Features: Hierarchical system representation  Supports modular designs and encourage software developers to decompose a system into subsystems, derive interfaces that summarize the behavior of each system, and then perform analysis, validation and verification, using interfaces in place of the details of the subsystems.

DESIGN FOR VERIFICATION OOA Methodology Features: Structural design rules  A set of design rules was developed to conform to “spatial modularity”.

DESIGN FOR VERIFICATION Structural design rules 1- Write access to attributes of one class by another class must be made through the event mechanism.  The attributes of a class should be local to the class. Change of values of a class instance should be performed only through the event mechanism. This prevents coupling of internal states of classes.

DESIGN FOR VERIFICATION Structural design rules 2- Attribute values which are shared by multiple classes should be defined in separate class and accessed only through the event mechanism.  This design rule also avoids coupling of internal states of classes.

DESIGN FOR VERIFICATION Structural design rules 3- Declaration and definition of functional entities must be performed within the same component  A component may have dependencies on other components. To prevent the situation when functionality of one component can be changed by other components any logical construct that a component declares should be defined entirely within that component

DESIGN FOR VERIFICATION Structural design rules 4- Declaration and definition of functional entities must be performed within the same component Inheritance must be confined to extensions of supertypes.  Modification of the behavior of supertypes (overriding of supertype methods) is prohibited

THE ROBOT CONTROLLER STUDY Re-engineering the control subsystem for a NASA robotics software system. The goal of the project was to increase the subsystem’s reliability. This goal was achieved, as serious logical design errors were discovered, through the application of model-checking v EEF

THE ROBOT CONTROLLER STUDY A robotic software used for control of redundant robots is examined An essential feature for a redundant robot is that an infinite number of robot’s joints displacements can lead to a definite wrist (end-effector) position

THE ROBOT CONTROLLER STUDY Domain Analysis and Modeling Classes  In addition to tangible objects (Arm, Joint, EndEffector, PerformanceCriterion), incident objects (TrialConfiguration, SearchSpace, SimpleSearchSpace, FactorialSearchSpace), specification objects (Fused Criterion), and role objects (DecisionTree, OSCAR Interface, Checker) were derived

THE ROBOT CONTROLLER STUDY Domain Analysis and Modeling Attributes  Example attributes: EE ID is a key attribute whose value uniquely distinguishes each instance of an EE object. Current position and Limit are descriptive attributes that provide facts intrinsic to the EE object

THE ROBOT CONTROLLER STUDY Domain Analysis and Modeling Associations  binary (those in which objects of two different types participate) and higher-order( Arm-Joint relationship )  supertype-subtype (those when several objects have certain attributes in common which are placed in the supertype object)(PerformanceCriterion-ConstraintCriterion)

THE ROBOT CONTROLLER STUDY Domain Analysis and Modeling Robotic Decision-Support Domain Architecture  computational subsystems : includes kinematics algorithms and interfaces to the computational libraries of the OSCAR system  optimization subsystems: implements the decision- making strategy by applying decision-making techniques

THE ROBOT CONTROLLER STUDY Compliance to the design rules 1- Write access to attributes of one class by another class must be made through the event mechanism.  All updates of the attribute values were done through the event mechanism

THE ROBOT CONTROLLER STUDY Compliance to the design rules 2- Attribute values which are shared by multiple classes should be defined in separate class and accessed only through the event mechanism  After the design system was completed and validated by simulation, a separate object Global that contained all the global variables as its attributes was created and used during verification and code generation.

THE ROBOT CONTROLLER STUDY Compliance to the design rules 3- Declaration and definition of functional entities must be performed within the same component  Design is restricted to insure that all functional components are fully self-contained.

THE ROBOT CONTROLLER STUDY Compliance to the design rules 4- Declaration and definition of functional entities must be performed within the same component Inheritance must be confined to extensions of supertypes  inheritance is restricted to a purely syntactic role: code reuse and sharing, and module importation

THE ROBOT CONTROLLER STUDY OOA Model Validation and Formal Verification  The OOA model was validated by simulation.  Several serious error or defects in the original design and in the original versions of the OOA model were identified and corrected.

THE ROBOT CONTROLLER STUDY OOA Model Validation and Formal Verification  One failure indicates in some cases the system does not terminate its execution as specified  One failure indicates that an error in the fault resolution algorithm recomputes the joint angles of other joints while not resolving the fault situation.  One failure indicates that there is a problem of coordination between the Arm and Checker processes.

CONCLUSION Feasibility demonstration for the application of verification by model checking Verification of significant behavioral properties of the robot control subsystem were carried out. Design rules leading to xUML OOA models to which verification by model checking can be practically applied have been proposed and applied.

REFERENCES A Formal Object-Oriented Analysis for Software Reliability: Design for Verification - Natasha Sharygina, James C. Browne, and Robert P. Kurshan - ISBN: (2001)

THANK YOU FOR LISTENING