Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.

Slides:



Advertisements
Similar presentations
Modelling with expert systems. Expert systems Modelling with expert systems Coaching modelling with expert systems Advantages and limitations of modelling.
Advertisements

25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
SWEN 5130 Requirements EngineeringSlide 1 Software Prototyping u Animating and demonstrating system requirements.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
ArchE Presented By Samanvitha Ramayanam. TOPICS 1. Introduction 2. Theoretical assumptions 3. ArchE as an expert system 4. Overall flow of ArchE 5. Key.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
May 14, May 14, 2015May 14, 2015May 14, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,
ISBN Chapter 3 Describing Syntax and Semantics.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
OASIS Reference Model for Service Oriented Architecture 1.0
Instructor: Tasneem Darwish
Software Testing and Quality Assurance
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Requirements Engineering Course, Dr. Abdollahzadeh 1 Requirements.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Π-Method: A Model-Driven Formal Method for Architecture- Centric Software Engineering By Flavio Oquendo Presented by: Sajith Wickramaratne.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Software Engineering General Project Management Software Requirements
Requirement Engineering – A Roadmap
Information Modeling: The process and the required competencies of its participants Paul Frederiks Theo van der Weide.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
1 درس مهندسي نيازمندي استاد دكتر عبداله زاده دانشجو خيرالنسا مرچانت RE in The Year 00: A Research Perspective.
Requirements modelling motivations: I We need a language for communicating shared perceptions of the requirements for the target system between human stakeholders.
Describing Syntax and Semantics
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
WSMX Execution Semantics Executable Software Specification Eyal Oren DERI
Approaching a Problem Where do we start? How do we proceed?
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
Lecture 7: Requirements Engineering
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
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.
Software Prototyping Rapid software development to validate requirements.
Of 33 lecture 1: introduction. of 33 the semantic web vision today’s web (1) web content – for human consumption (no structural information) people search.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
lamsweerde Chap.4: Formal Requirements Specification © 2009 John Wiley and Sons Fundamentals of RE Chapter 4 Requirements.
RE-ENGINEERING AND DOMAIN ANALYSIS BY- NISHANTH TIRUVAIPATI.
Inferring Declarative Requirements Specification from Operational Scenarios IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 24, NO. 12, DECEMBER, 1998.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
 CMMI  REQUIREMENT DEVELOPMENT  SPECIFIC AND GENERIC GOALS  SG1: Develop CUSTOMER Requirement  SG2: Develop Product Requirement  SG3: Analyze.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Formal Methods. What Are Formal Methods Formal methods refers to a variety of mathematical modeling techniques that are applicable to computer system.
Requirement Specification SRS document is a contract between the development team and the customer How do we communicate the Requirements to others? Firm.
16 April 2011 Alan, Edison, etc, Saturday.. Knowledge, Planning and Robotics 1.Knowledge 2.Types of knowledge 3.Representation of knowledge 4.Planning.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Integrating SysML with OWL (or other logic based formalisms)
SysML v2 Formalism: Requirements & Benefits
HCI in the software process
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Logical architecture refinement
HCI in the software process
HCI in the software process
Human Computer Interaction Lecture 14 HCI in Software Process
Presentation transcript:

Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003

What are Formal Specifications? Generally speaking, a formal specification is the expression, in some formal language and at some level of abstraction, of a collection of properties some system should satisfy.

A series of development steps for a complex software application  High-level goals are identified and refined until a set of requirements on the software and assumptions on the environment can be made precise to satisfy such goals  A software architecture, made of interconnected software components, is designed to satisfy such requirements  The various components are implemented and integrated so as to satisfy the architectural descriptions

System?  A descriptive model of the domain of interest  A prescriptive model of the software and its environment  A prescriptive model of the software alone  A model for the user interface  The software architecture  A model of some process to be followed  ……

Properties?  High level goals  Functional requirements  Non-functional requirements about timing, performance, accuracy, security  ……

Whether a specification is formal or not? The specification is expressed in a language made of three components:  Rules for determining the grammatical well-formedness of sentences (the syntax);  Rules for interpreting sentences in a precise, meaningful way within the domain considered (the semantics)  Rules for inferring useful information from the specification (the proof theory)

Organization of specifications in formal language Due to the fairly large collection of properties, specification is organized into units linked through structuring relationships: specialization, aggregation, instantiation, enrichment, use, etc. Each unit in general has: a declaration part: where variables of interest are declared an assertion part: where the intended properties on the declared variables are formalized.

What are good specifications?  Adequate  Internally consistent,  Unambiguous  Complete with respect to higher level ones  Be satisfied by lower-level ones  Minimal

Why specify formally?  Specifications is essential for: Designing validating Documenting Communicating Reengineering Reusing  Specification also provides the basis for their automated support

Automated tools to manipulate the formal specifications  To derive premises or logical consequences of the specification, for user confirmation,  To confirm that an operational specification satisfies more abstract specifications, or to generate behavioral counterexamples if not  To generate counterexamples to claims about a declarative specification  To generate concrete scenarios illustrating desired or undesired features about the specification or, conversely, to infer the specification inductively from such scenarios

Automated tools to manipulate the formal specifications (cont.)  To produce animations of the specification in order to check its adequacy  To check specific forms of specification consistency/completeness efficiently  To generate high-level exceptions and conflict preconditions that may make the specification unsatisfiable  To generate higher-level specifications such as invariants or conditions for liveness

Automated tools to manipulate the formal specifications (cont.)  To drive refinements of the specification and generate proof obligations  To generate test cases and oracles from the specification  To support formal reuse of components through specification matching

Specify... for whom? Formal specifications may concern different classes of consumers having fairly different background, abstractions and languages: Clients (specification of a goal or requirement) Domain experts (a domain description) Users Architects Programmers (an architectural component specification) Tools

Specify... when?  There are multiple stages in the software lifecycle at which formal specifications may enter the picture: When modeling the domain When elaborating the goals, requirements on the software, and assumptions about the environment When designing a functional model for the software When designing the software architecture When modifying or reengineering the software

A few important principles and facts overlooked  Specifications are never formal in the first place  Formal specifications are meaningless without a precise, informal definition of how to interpret them in the domain considered  Formal specification is not a mere translation process from informal to formal  Formal specifications are hard to develop and assess

A few important principles and facts overlooked (cont.)  The rationale for specific modeling choices in a specification is important for explanation and evolution. Unfortunately, such rationale is rarely documented.  The by-products of a formal specification process are often more important than the formal specification itself  To be useful, a formal system must have a limited domain of applicability.

Specification Paradigms  History-based specification  State-based specification  Transition-based specification  Functional specification  Operational specification

Evaluation of the specification  Expressive power and level of coding required.  Constructibility, manageability and evolvability  Usability  Communicability  Powerful and efficient analysis

Good news for the formal specification  The number of success stories in using formal specifications for real systems is steadily growing from year to year.  A recent, fairly impressive example is worth pointing out (eg. the Paris metro system)  The success of this formal development might be explained by the unusual combination of success factors  The maturity of specification tool technology is also steadily growing from year to year

Bad news for the formal specification  Limited scope  Poor separation of concerns  Low-level ontologies  Isolation  Poor guidance  Cost  Poor tool feedback

Tomorrow’s technologies for the formal specification  Constructiveness  Support for comparative analysis  Integration  Higher level of abstraction  Richer structuring mechanisms  Extended scope  Separation of concerns

Tomorrow’s technologies for the formal specification (cont.)  Lightweight techniques  Multiparadigm specification  Multibutton analysis  Multiformat specification  Reasoning in spite of errors  Constructive feedback from tools  Support for evolution  Support for reuse  Measurability of progress

Thank you!