25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Formal Methods. Introduction Today's software comes with extensive documentation: –user guides, reference, manuals, and design documents. –There are on-line.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
Unit 191 Introduction to Software Engineering The objective of this section is to introduce the subject of software engineering. When you have read this.
Software Requirements
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 91 Formal Specification l Techniques for the unambiguous specification of software.
Chapter 1 Principles of Programming and Software Engineering.
Software Testing and Quality Assurance: Introduction and Terminology
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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 10 Slide 1 Formal Specification.
10 May 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Formal.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Critical Systems Specification 3 Formal Specification.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
PROGRAMMING LANGUAGES The Study of Programming Languages.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 1: Introduction to Software Testing Software Testing
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 9 Slide 1 Formal Specification l Techniques for the unambiguous specification of software.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Object Oriented.
Software Requirements Engineering CSE 305 Lecture-2.
Configuration Management (CM)
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.
WXGE6103 Software Engineering Process and Practice Formal Specification.
17 May 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Formal.
1 Introduction to Software Engineering Lecture 1.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
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.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Herriman High Computer Programming 1A Software Development Cycle Things to Know.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Software Requirements. Objectives: l To introduce the concepts of user and system requirements l To describe functional / non-functional requirements.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Chapter 2 Principles of Programming and Software Engineering.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
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.
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.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Principles of Programming & Software Engineering
Formal Specification.
Chapter 4 – Requirements Engineering
Principles of Programming and Software Engineering
Software Design Methodology
Lecture 09:Software Testing
Chapter 1 Introduction(1.1)
Department of Computer Science Abdul Wali Khan University Mardan
Human Computer Interaction Lecture 14 HCI in Software Process
Presentation transcript:

25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Formal Methods Introduction

25 February 2009Instructor: Tasneem Darwish2 Outlines Formal Methods. The CICS experience. The Z notation. The importance of proof. Abstraction.

25 February 2009Instructor: Tasneem Darwish3 Formal Methods Today’s software comes with extensive documentations. The behaviour of a software is often a surprise to users and designers alike: Components interact and interfere. Undesirable properties emerge. System fail to meet their requirements. The consequences of software faults may cause Aircrafts crashes, fatal doses of radiation for patients or more... Also time and money are wasted, effort is expanded to no avail and our health is damaged by frustration.

25 February 2009Instructor: Tasneem Darwish4 Formal Methods There are many explanations for software faults: The requirements are hard to define. The ways in which a system may be used are hard to anticipate. There is always demand for additional functionality. One way to improve the quality of software is to change the way in which it is documented: at the design stage, during development and after release.

25 February 2009Instructor: Tasneem Darwish5 Formal Methods Existing methods of documentation offer large amount of text, pictures and diagrams, but these are often imprecise and ambiguous: Important information is hidden amongst irrelevant details. The alternative documentation method is the Formal Method.

25 February 2009Instructor: Tasneem Darwish6 Formal Methods Formal methods is used to produce precise and unambiguous documentation. In formal methods information is presented at an appropriate level of abstraction. The formal documentation can be used: To support the design process, And as a guide to subsequent development, testing and maintenance.

25 February 2009Instructor: Tasneem Darwish7 The CICS experience CICS is one of the most successful pieces of software in the world. CICS stands for Customer Information Control System CICS is a transaction processing product. Since 1970s their have been regular releases of the CICS. Each release has: Introduced additional features. Extended the structure of the existing code.

25 February 2009Instructor: Tasneem Darwish8 The CICS experience In the 1980s, the complexity of the system started to become a problem. A decision was made to re-design some of the CICS modules with the aim of making extensions easier. An important part of the proposed solution was to find a more precise way to specify functionality.

25 February 2009Instructor: Tasneem Darwish9 The CICS experience Such precision require the use of mathematical techniques. A particular formal method, the Z notation was used to specify the new functionality. The first CICS product to be designed using Z was announced in 1989 (CICS/ESA). The use of the Formal Method: Reduced the development costs. Enhanced quality and reliability.

25 February 2009Instructor: Tasneem Darwish10 The Z notation The Z notation is a mathematical language based upon: Set theory. Mathematical logic. Another aspect of Z is the way in which mathematics can be structured. In Z, mathematical objects and their properties can be collected together in schemas.

25 February 2009Instructor: Tasneem Darwish11 The Z notation The schema language can be used to describe: The state of a system. The ways in which the state may change. System properties. To reason about possible refinements of a design. Another feature of Z is the use of types. Every object in mathematical language has a unique type.

25 February 2009Instructor: Tasneem Darwish12 The Z notation A third aspect of Z is the use of natural language: mathematical language is used to state the problem, to discover solutions and to prove that the chosen design meets the specifications. Natural language is used to relate the mathematical objects to the real world. A fourth aspect of Z is refinement.

25 February 2009Instructor: Tasneem Darwish13 The Z properties It is a mathematical language with a powerful structuring mechanism. In combination with natural language it can be used to produce formal specifications. we may reason about these specifications using the proof techniques of mathematical logic. We may refine specifications yielding another description that is closer to executable code.

25 February 2009Instructor: Tasneem Darwish14 The Z properties Z can not describe the non-functional properties such as: Usability. Performance. Reliability. There are other formal methods that are will suited for these purpose and they may be used in combination with Z.

25 February 2009Instructor: Tasneem Darwish15 The Importance of proof If we reason about a specification or attempt to construct a proof about its properties, then we are more likely to detect problems at an early stage of system development. At design stage, a proof can show us not only that the design is correct, but also why it is correct. At the implementation stage, a proof can help us to ensure that a piece of code behaves according to the specifications.

25 February 2009Instructor: Tasneem Darwish16 The Importance of proof A specification without proofs is untested: It may be inconsistent. It may describe properties that were not intended. It may omit desired properties. It may make inappropriate assumptions.

25 February 2009Instructor: Tasneem Darwish17 Abstraction

25 February 2009Instructor: Tasneem Darwish18 Abstraction In 1933, the map was replaced by a more abstract representation, called the Diagram, which showed only the connectivity of stations. Abstracted were: surface detail distances between stations orientation of lines

25 February 2009Instructor: Tasneem Darwish19 Abstraction

25 February 2009Instructor: Tasneem Darwish20 Abstraction The success of the diagram is due to: an appropriate choice of abstraction an elegant presentation The diagram properties (the good specification properties): abstract and complete clear and unambiguous concise and comprehensible easy to maintain and cost-effective