Choosing a Formal Method Mike Weissert COSC 481. Outline Introduction Reasons For Choosing Formality Application Characteristics Criteria For A Successful.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Chapter 2: Software Process
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Object-Oriented Software Development CS 3331 Fall 2009.
Software Project Management
LIFE CYCLE MODELS FORMAL TRANSFORMATION
CS3773 Software Engineering Lecture 01 Introduction.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
CS 425/625 Software Engineering Software Processes
Software Requirements
Overview of Software Requirements
1 Software Requirements Specification Lecture 14.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Formality, Agility, Security, and Evolution in Software Development Cody Ronning 2/16/2015.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Artificial Intelligence CIS 479/579 Bruce R. Maxim UM-Dearborn.
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
A Study of Professional Curriculum Planning for the Information Engineering Technology Programs of De Lin Institute of Technology Hung-Jin Chen De Lin.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Software Engineering ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
 Is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.
COSC 3461: Module 1 S04 Introduction to Interaction & Principles of Design I.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Btec National - Principles of Software Development 1 Principles of Software Design and Development More On Choosing a Language.
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
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.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Requirements Analysis
Requirements Analysis
Software Engineering INTRODUCTION TO SOFTWARE DEVELOPMENT.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
1. 2 An Introduction to Software Engineering 3 What is software? Computer programs and associated documentation such as requirements, design models and.
CMMI Certification - By Global Certification Consultancy.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
MANAGEMENT INFORMATION SYSTEM
Chapter 1 The Systems Development Environment
Chapter 4 – Requirements Engineering
Software Requirements
Chapter 5 – Requirements Engineering
The Systems Engineering Context
Software Requirements
Chapter 1 The Systems Development Environment
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Product Lines
Software Design Methodology
Definitions.
Software engineering Lecturer: Nareena.
Lecture # 7 System Requirements
Michael Moreno Saavedra & Christian Bach BUSINESS INTELLIGENCE
Human Computer Interaction Lecture 14 HCI in Software Process
Chapter 1 The Systems Development Environment
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
UML Design for an Automated Registration System
Presentation transcript:

Choosing a Formal Method Mike Weissert COSC 481

Outline Introduction Reasons For Choosing Formality Application Characteristics Criteria For A Successful Application Needs/Constraints Of The Organization Characteristics Of A Formal Method Conclusion Sources

Introduction The choice in using FMs requires the same decision making skills used to make any other decision. Requirements: Clear Objectives Knowledge of Constraints In selecting a method, you will choose one in which the tools, experience, and support most closely meets these requirements.

Reasons for Choosing Formality Improve the Quality of the Entire Development Process When your goal is for a general improvement of your company’s development process

Reasons for Choosing Formality Improve Integrity, Reliability, and Other Characteristics of a System System development can be enhanced parallel with software development Use when goal is to enhance the system architecture as well as the software

Reasons for Choosing Formality Reduce Specification Errors Using FMs, the system specification (in particular the functional specification) can be expressed in a way that greatly reduces errors.

Reasons for Choosing Formality Improvements In the Requirements Definition Requirements are normally expressed in non-formal language Using formal expressions, omissions and inconsistencies are found more easily then with other techniques

Reasons for Choosing Formality Improved Documentation and Understanding Present legacy software is undocumented or has very inadequate documentation. Using FMs in your documentation makes for easier understanding of software and better confidence in its reliability

Reasons for Choosing Formality Provide a firm foundation for: Maintenance Enhancement

Reasons for Choosing Formality Gain Knowledge About the Properties of a Design Architecture Provides an understanding of the design of the software in terms of: Properties Limitations

Reasons for Choosing Formality Acquire a More Rational Basis for Choosing Test Data New techniques developed where test data is being derived from functional specifications of the software components. These techniques become more systematic if FMs are used in the functional specification.

Reasons for Choosing Formality To Become as Certain As Possible that the Design and Implementation are Error Free Important in safety-critical fields Using FMs, one can see “proofs of correctness” during the development cycle

Reasons for Choosing Formality Customer/Standards Requirement? Contracts might mandate the use of FMs in the development cycle

Application Characteristics There Are 3 Intrinsic Characteristics of an Application: “Phenomenological Model” Computational Model Physical and Societal Environment

Application Characteristics: Phenomenological Model The mathematics used by the scientific theory of the application to explain its phenomena Examples The Phenomenological model of: Ballistics & Civil Engineering is Classic Mechanics Telephony is Traffic and Switching Theory

Application Characteristics: Computational Model Related to the Phenomenological model, this model relates to the structure of the computations which reflect and model a specific system within the application. Different structures include: Sequential Distributed Distributed and concurrent Dependent on real time events

Application Characteristics: Physical and Societal Environment Several considerations: Safety system? Embedded system? Cost-critical? High volume cost critical? Large human interaction?

Criteria For A Successful Application Customers and users find applications acceptable for different reasons. Rating the following features will help in developing an application: Correct Functioning High Performance Ease of Use

Needs/Constraints Of The Organization Different FMs have different levels of support based upon: Available Literature Courses Documented Experience Tools

Needs/Constraints Of The Organization Important for an organization to have a reasonably well-developed software engineering discipline already in place. Before engaging in FMs, your organization should have: Good level of engineering experience In-house working standards

Needs/Constraints Of The Organization When adopting FMs its good if the staff have either: Used FMs previously Understand some of the principles of FMs When adopting FMs for the 1 st time good to adopt a training program in which you will have to consider: Available training budget Time scales

Characteristics of a FM If you need to ensure the correctness of your end software product, it may be wise to adopt a method whose tools enables proof of correctness.

Characteristics of a FM: Level of Abstraction Different languages display varying levels of abstraction at which they support discourse: Can be categorized by: Language Requirements Functional Specification Design Ability to be Executed “Should choose a method and language whose capability best supports the part of the development process where formalization is going to be most beneficial”

Characteristics of a FM: Computational Model The languages of different methods allow for different kinds of computation. Wise to match the language to the computational model of the application. Several Model Classifications: Sequential Parallel Dynamic Real-time Indifferent

Characteristics of a FM: Supported by Tools Many tools available Differ in: Capabilities Maturity Degree of commercial support Ease of use

Conclusion When choosing a formal method, there are several steps that should be followed to make an intelligent and beneficial selection for your organization. By following the steps outlined in this presentation, your experience with FMs should go more smoothly.

Sources Formal Methods Europe htm htm Michael G. Hinchey, Jonathan P. Bowen: Applications of Formal Methods. Prentice Hall International (UK), 1995.