Computer Science School of Computing Clemson University Introduction to Formal Specification Murali Sitaraman Clemson University.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

EECE 310: Software Engineering Modular Decomposition, Abstraction and Specifications.
Carlos D. Rivera February 28, 2007 Design-by-Contract.
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
Software Requirements
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
CS 411W - Notes Product Development Documentation.
1 SWE 513: Software Engineering Requirements II. 2 Details in Requirements Requirements must be specific Examples -- university admissions system Requests.
Introduction to Software Engineering Dr. Basem Alkazemi
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
CHAPTER 3 COLLECTIONS Abstract Data Types. 2 A data type consists of a set of values or elements, called its domain, and a set of operators acting on.
SWE Introduction to Software Engineering
Software Requirements
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
Software Requirements
Overview of Software Requirements
From Module Breakdown to Interface Specifications Completing the architectural design of Map Schematizer.
Computer Science School of Computing Clemson University Mathematical Modeling Murali Sitaraman Clemson University.
Jason Hallstrom (Clemson), Joan Krone (Denison), Joseph E. Hollingsworth (IU Southeast), and Murali Sitaraman(Clemson) This workshop is funded in part.
Data Structures and Programming.  John Edgar2.
Introduction to Computer Aided Process Planning
Computer Science School of Computing Clemson University Mathematical Reasoning across the Curriculum Software Development Foundations and Software Engineering.
Requirements Analysis
Lecture 16 March 22, 2011 Formal Methods CS 315 Spring Adapted from slides provided by Jason Hallstrom and Murali Sitaraman (Clemson)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Adaptive Processes © Adaptive Processes Simpler, Faster, Better Software Requirements.
Software Requirements Presented By Dr. Shazzad Hosain.
Software Requirements Engineering CSE 305 Lecture-2.
Lecture 17 March 24, 2011 Formal Methods 2 CS 315 Spring Adapted from slides provided by Jason Hallstrom and Murali Sitaraman (Clemson)
Computer Science and Engineering College of Engineering The Ohio State University Interfaces The credit for these slides goes to Professor Paul Sivilotti.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Lecture 7: Requirements Engineering
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Computer Science School of Computing Clemson University Discrete Math and Reasoning about Software Correctness Joseph E. Hollingsworth
Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
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 ++
Software Design: Principles, Process, and Concepts Getting Started with Design.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Slide 1 CS 310 Ch 6: Software Requirements Requirements engineering: establishing the services that the customer requires from a system and the constraints.
(SRS) SOFTWARE REQUIREMENT SPECIFICATION(SRS) 1. Topics to be discussed.. What is an SRS? Purpose of an SRS Who reads the SRS? Who writes the SRS? Characteristics.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering Chapter 10 Formal Specification Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
Software Requirements Specification Document (SRS)
Requirements Analysis
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Chapter 25 Formal Methods. BASIC CONCEPTS A method is formal if it has a sound mathematical basis, typically given by a formal specification language.
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
Requirement Specification SRS document is a contract between the development team and the customer How do we communicate the Requirements to others? Firm.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Modular Alternatives to Testing
Presentation on Software Requirements Submitted by
Software Engineering in the Academy
Component Implementations Using RESOLVE
Formal Specification of Java Interfaces
Software Engineering in the Academy
Introduction to Components and Specifications Using RESOLVE
Formal Specification of Interfaces
Introduction to Components and Specifications Using RESOLVE
Department of Computer Science Abdul Wali Khan University Mardan
Formal Methods Lecture 16 March 22, 2011 CS 315 Spring 2011
Presentation transcript:

Computer Science School of Computing Clemson University Introduction to Formal Specification Murali Sitaraman Clemson University

School of Computing Clemson University Requirements vs. Specifications  Requirements definition Intended for customers in addition to software developers Informal descriptions are necessary  Specification For use by members of a software development team Formal (mathematical) descriptions are necessary

School of Computing Clemson University Interface Specification  Serves as a contract between component users (clients) and developers (implementers)  Typically describes the demands on users and responsibilities for implementers  Should present the essentials in “user-oriented” terms (abstraction) and hide the inessentials (information hiding)

School of Computing Clemson University Informal Specification Examples  Examples C++ STL Template specifications Java util component specifications  Questions for discussion Do they support information hiding? Do they support abstraction? Can they generalize? Is it possible to make them unambiguous?

School of Computing Clemson University Informal Specifications  Straightforward descriptions Push pushes an object on a stack How much do they help?  Use of metaphors A Queue is like a line at a fast food restaurant Do they generalize?  Use of implementation details Push behaves like AddElement method on Vector Is this appropriate for a user-oriented cover story?

School of Computing Clemson University Informal Specifications  See Bertrand Meyer’s article on Formal Specification in IEEE Computer  Problems with even very carefully designed informal specs Contradiction Noise …

School of Computing Clemson University Formal Interface Specification  Communicates precisely the demands and responsibilities to component users and developers  Allows for independent development of client and implementation components in parallel in a team environment  Minimizes integration costs

School of Computing Clemson University Reasoning Benefits  Formal specifications make it possible to reason about correctness of software formally  Such reasoning may be manual or mechanical (i.e., with automated support)

School of Computing Clemson University Characteristics of Good Specifications  Simple  Clear  Precise  Concise  Implementation-independent  Consistent  Sufficient completeness  Others …

School of Computing Clemson University Languages for Formal Specification  ANNA (and SPARK) for Ada  JML for Java  Larch/C++ for C++  Spec# for C#  …  Eiffel  RESOLVE  …  VDM  Z

School of Computing Clemson University Specification Language Summary  Some specification languages are designed for particular programming languages  Some are general-purpose  Some specification languages are integrated with programming constructs  A few additionally integrate the ability to perform formal mathematical reasoning