Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.

Slides:



Advertisements
Similar presentations
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Advertisements

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
Software Requirements
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
ISBN Chapter 3 Describing Syntax and Semantics.
1 Semantic Description of Programming languages. 2 Static versus Dynamic Semantics n Static Semantics represents legal forms of programs that cannot be.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Chapter 6: Design of Expert Systems
Detailed Design Kenneth M. Anderson Lecture 21
Software Requirements
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Software Requirements
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Chapter 1 Principles of Programming and Software Engineering.
Describing Syntax and Semantics
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Formal Specification.
1 College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 2 Chapter 6 & 7 System.
Data Structures and Programming.  John Edgar2.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Computer Science School of Computing Clemson University Introduction to Formal Specification Murali Sitaraman Clemson University.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Model Based Testing Group 7  Nishanth Chandradas ( )  George Stavrinides ( )  Jeyhan Hizli ( )  Talvinder Judge ( )  Saajan.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Modeling system requirements. Purpose of Models Models help an analyst clarify and refine a design. Models help simplify the complexity of information.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
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.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
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.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
An Axiomatic Basis for Computer Programming Robert Stewart.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Computer Programming CONTENTS Introduction to Operating Systems Introduction to programming languages Introduction to perl programming language Programming.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Chapter 2 Principles of Programming and Software Engineering.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Introduction to Problem Solving Programming is a problem solving activity. When you write a program, you are actually writing an instruction for the computer.
SYSE 802 John D. McGregor Module 0 Session 3 Systems Engineering QuickView.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Lecture 1 Golden Measure and other terms (appropriate for pracs) Lecturer: Simon Winberg Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
Software Engineering, COMP201 Slide 1 Software Requirements.
Chapter 5 – Requirements Engineering
Formal Techniques (CS340 © John C. Knight 2004)
The Systems Engineering Context
Qaisar Javaid Assistant Professor
Algorithm and Ambiguity
Verification and Validation Overview
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Algorithm and Ambiguity
Software Requirements analysis & specifications
Software requirements
Requirements Engineering
Presentation transcript:

Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines the behaviour of the system; (what, not how)  requires an understanding of the problem; (why)  has formal semantics and reasoning laws. (quality & correctness)

Course: Software Engineering – Design I IntroductionSlide Number 2 Specification as Precision  Comes before any coding.  Expresses the behaviour of the system.  Uses formal languages that need not be executable.  Facilitates formal analysis of the system. Specifying is different from programming

Course: Software Engineering – Design I IntroductionSlide Number 3 What, not how A role for specifications: to make precise what the system has to achieve when used Spec (“what”)Code (“how”) sqrt: float  float pre: x  0 post: sqrt(x)  0  | sqrt(x) 2 - x | < epsilon Apply the Newton-Raphson method.

Course: Software Engineering – Design I IntroductionSlide Number 4 Specification as understanding Specifying includes capturing requirements: coming to understand what the customer wants. Requirements Not fully defined by the user. Written in prose descriptions. Not well structured and with repetitions. Specifications Formally define key understanding (“why”). Provides better structured documents (with no repetitions). Support software maintenance.

Course: Software Engineering – Design I IntroductionSlide Number 5 Quality & Correctness Specification brings together quality software and correctness. Quality software: Building the right system: (system fits its purposes) Correctness: Building the system right: (system conforms with the specs) Formal semantics and reasoning laws

Course: Software Engineering – Design I IntroductionSlide Number 6 When are specifications useful Specifications help identifying appropriate solutions, prior to any implementation. Novel systems: Specifications help defining a solution not easily identifiable via guessing and testing. Difficult systems: Specifications help proving that the system will achieve the promised behaviour before implementing it. Critical systems:

Course: Software Engineering – Design I IntroductionSlide Number 7 How can we use specifications? Modelling As mathematical models to describe and predict the intended behaviour of the system. It helps focusing on some aspects of the system, leaving out inessential details. Design To support constructive approaches to design (e.g., “bottom-up”). Specifications would provide a description of what each building block does and enable us to calculate how the whole system will behave once the blocks are combined. Verification To show that the final system does what we intend. Construct formal proofs, based on specification and program test, to show that the system satisfies its specification requirements.

Course: Software Engineering – Design I IntroductionSlide Number 8 A formal language Z is one of the languages commonly used for writing specifications. It contains a lot of special-purpose notation. We will borrow some good notational ideas from Z and apply to conventional logic. Result To be able to write specifications that look like Z specifications, without being correct Z. But Formal logical notation is not clever per se. It can be only useful if accompanied with a good understanding of the underlying problem.

Course: Software Engineering – Design I IntroductionSlide Number 9 Summary Specification is understanding the problem and writing it down clearly, answering to “why” and “what” questions, reasoning about the system. It is useful for modelling and validation, design, verification.