LASER From Natural Language Requirements to Rigorous Property Specifications Lori A. Clarke Work done in collaboration with Rachel L. Smith, George S.

Slides:



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

1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Documenting a Software Architecture By Eng. Mohanned M. Dawoud.
Using the Crosscutting Concepts As conceptual tools when meeting an unfamiliar problem or phenomenon.
Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Introduction to Software Engineering Dr. Basem Alkazemi
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Software Testing and Quality Assurance
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
© 2005 Prentice Hall4-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Finite State Verification for Software Systems Lori A. Clarke University of Massachusetts Laboratory for Advanced Software Engineering Research
1 CS1001 Lecture Overview Object Oriented Design Object Oriented Design.
1 Software Requirements Specification Lecture 14.
Describing Syntax and Semantics
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Course Instructor: Aisha Azeem
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Meaningful Modeling: What’s the Semantics of “Semantics”? David Harel, Weizmann Institute of Science Bernhard Rumpe, Technische Universität Braunschweig.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Romaric GUILLERM Hamid DEMMOU LAAS-CNRS Nabil SADOU SUPELEC/IETR.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
On the Formal Specification of Automata- based Programs via Specification Patterns Spring/Summer Young Researchers' Colloquium on Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
CHAPTER 6 - MODELING ANH AU. BACKGROUND Architectural model – an artifact that captures some or all of the design decisions that comprise a system’s architecture.
1 Introduction to Software Engineering Lecture 1.
UML-1 3. Capturing Requirements and Use Case Model.
UML-1 8. Capturing Requirements and Use Case Model.
9-1 © Prentice Hall, 2007 Chapter 9: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Human Computer Interaction
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Requirements / Specifications. 01/18/10CS-499G2 Requirements Determine what the customer needs (wants) the software to do  What are requirements?  An.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Software Requirements Specification (SRS)
7-1 © Prentice Hall, 2007 Topic 7: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Software Requirements Specification Document (SRS)
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Basic Concepts and Definitions
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Refining the Use Cases 1. How Use Cases Evolve  Early efforts typically define most of the major use cases.  The refining stages complete the process.
1 Specification A broad term that means definition Used at different stages of software development for different purposes Generally, a statement of agreement.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Analysis Classes Unit 5.
SysML v2 Formalism: Requirements & Benefits
Topic for Presentaion-2
SYSTEM ANALYSIS AND DESIGN
Software Design Methodology
Object-Oriented Analysis
Multiple Aspect Modeling of the Synchronous Language Signal
Algorithms and Problem Solving
Human Computer Interaction Lecture 14 HCI in Software Process
Presentation transcript:

LASER From Natural Language Requirements to Rigorous Property Specifications Lori A. Clarke Work done in collaboration with Rachel L. Smith, George S. Avrunin University of Massachusetts Amherst

LASER The World We Live In Software developers write requirements in »Natural language »UML state diagrams and other mostly semantic-free notations »Or not at all Not precise enough to be used as the basis for »Consistency checking »Design and implementation »Test planning and verification Requirements and the system diverge!

LASER Seat Control Properties A request for horizontal movement of the seat base gets priority over the front tilt motor if activated at the same time When the front tilt is requested to move upward and then the rear tilt motor is requested to move downward, only the front tilt motor will move When the horizontal base is requested to move forward and then requested to move backward, there is a minimum 50ms pause between changes in direction The rear tilt switch has priority over a recall message

LASER Seat Control Property 1 A request for horizontal movement of the seat base gets priority over the front tilt motor if activated at the same time »Need domain experts to clarify –“gets priority” – “if activated at the same time” start of activation at the same instant, or overlap of intervals where both are on? Absence of (front_tilt_move) Between (horiz_req_on AND front_tilt_on) and horiz_req_off

LASER Property Specifications Need to Be… Accessible »so that we understand what they’re saying Precise »so that we can tell unambiguously whether a particular behavior satisfies or violates the property The problem is that… these goals usually conflict

LASER Accessible Natural language is accessible (and most requirements are specified in it) »When the call button is pushed at a floor, the elevator cannot come to the floor more than once without opening its doors. But this is not precise or rigorous enough »What if the button is pushed repeatedly? »Does elevator have to come to the floor at all? –…–…

LASER Precise Version of Example Have many formal notations for expressing properties precisely, e.g., Linear Temporal Logic

LASER Precise Version of Example Have many formal notations for expressing properties precisely, e.g., Linear Temporal Logic

LASER Precise Version of Example Have many formal notations for expressing properties precisely, e.g., Linear Temporal Logic But this is not really accessible (even for experts!)

LASER Requirements for Requirements Provide a sound basis for design and implementation »Accessible and Precise Amenable to consistency and other analyzes »E.g. View all requirements that deal with the tilt operation »Check that these are consistent with each other Provide a sound basis for testing and verification Must provide enough value to make the investment worthwhile!

LASER Our Approach Provide NL templates »Based on commonly occurring patterns »Expose the options that must be considered »Acceptable to developers Map to a precise formal notation »Basis for consistency analysis and verification Multiple views »Providing both should help and reassure developers

LASER Build upon Specification Patterns Specification patterns [Dwyer, Avrunin, Corbett, 1999] intended as high-level abstractions »Generalized description of commonly-occurring requirements »Parameterizable »Formalism-independent Modeled on Design Patterns »Leverage experience of system developers by capturing description of good solutions to recurring design problem

LASER Scopes and Constraints Each pattern has a constraint and a scope »Constraint gives requirement for behavior of system in that scope »Scope gives the extent of execution over which the constraint must hold

LASER From Patterns to Formal Notations Pattern system gives mappings from constraint-scope combinations to several formal notations (e.g., regular expressions, various temporal logics, etc.)

LASER But Subtle Details are Critical Consider the following property: After the close-door button is pushed, the elevator doors are closed Response constraint with Global scope, but there are many questions about precise intent: »If button pushed repeatedly, should doors close repeatedly? »What, if anything, can occur between pushing the button and the doors closing? »Can the doors close without the button being pushed? »Does the button have to be pushed?

LASER Property Specification Frameworks Need to Support Accessiblity »Easily understandable by specifiers and users Precision »Unambiguous, suitable for use with testing and verification tools Elucidation »Specifier needs to have carefully addressed questions about details

LASER PROPEL Extend the specification patterns: »Represent pattern by template that explicitly shows options –Help specifier consider relevant subtleties and alternatives Represent templates using two notations »One is accessible (Disciplined Natural Language) »One is mathematically precise (automata) »Template representations are linked-- specifier can work with both simultaneously Decision tree for selecting the right pattern »Constraint and scope

LASER demo

LASER What Next? Need to complete initial prototype of tool Several directions for further development: »Explore solution space »Investigate other ways of organizing properties and options »Support other precise formalisms »Explore integration with various testing/verification tools »Evaluation

LASER Explore Solution Space »Consider options for scopes »Reexamine interaction between scopes and constraints »Use decision tree for all options –Don’t bother with patterns at all »Improve NL representation

LASER Other Ways of Organizing Properties/Options Parameterization and Composition »Replace parameters in patterns by more complicated expressions »Certain replacements are fine but other are likely to be incorrect—not well understood in general »Composition of properties: chain patterns are simple versions

LASER Support Other Precise Formalisms Other event-based formalisms State-based formalisms (e.g., the temporal logics) »Describe execution in terms of which propositions are true at a particular time »Some properties are more naturally expressed in state-based formalism –While mode is level_flight, landing gear switch is always disabled. »Options may be different for state-based formalisms Formalisms dealing with both states and events »Some properties naturally involve both states and events –While use_count is less than 10, registering a request always leads to resource_acquisition

LASER Organizing Properties/Options Libraries of properties for a single system »Check for consistency, completeness »Refinement of property statements as systems passes through stages of development »Evolution of properties as system evolves

LASER Integration with Testing/Verification Tools Integrate with other tools »Make (correct) specification easier for users »Interpret feedback from tool (e.g., execution violating property) directly in terms of property specification

LASER Evaluation Want to evaluate if PROPEL approach is useful and discover ways to improve it Controlled experiments extremely expensive and difficult Looking for suitable case studies

LASER Concluding Questions Can we help bridge the gap between informal intent and precise specification? –Elucidation: Encourage specifiers to think about and resolve the issues Can we provide a NL framework that is “comforting” to developers? »NL improves high-level understanding »Increases acceptance

LASER Concluding Questions Can we provide a NL framework that is both “comforting” to developers, and rigorous enough to support analysis? How should we evaluate success »Will specifiers choose to use this approach? »Will specifiers update their requirements with this approach? »Will this approach be used to support upstream activities?

LASER Questions?