Advanced Software Engineering ( -Formal specification, verification, transformation, and application-

Size: px
Start display at page:

Download "Advanced Software Engineering ( -Formal specification, verification, transformation, and application-"

Transcription

1 Advanced Software Engineering ( -Formal specification, verification, transformation, and application- Shaoying Liu Faculty of Computer and Information Sciences Hosei Univeresity, Tokyo, Japan sliu@k.hosei.ac.jp URL:

2 The goals of this course Study SOFL (Structured Object-Oriented Formal Language) as both a specification language and a method for developing software systems. Study rigorous review and specification testing for verification and validation of formal specifications. Study techniques for transforming formal specifications into Java programs. Carry out two projects to apply SOFL to specify a simplified library system and to verify and validate an ATM (Automated Teller Machine) Specification.

3 Part one: Overview of Software Engineering Problems and Solutions

4 1. Introduction Software engineering process What are the problems? What are formal methods? What are problems with formal methods? What are formal engineering methods?

5 1.1. What is Software Engineering? Software Engineering (SE) is the field of computer science that deals with the development and maintenance of complex and large scale software systems. Two views: (1) Research view: SE is the field of computer science that develops principles, methods, and tools to deal with the building and maintenance of software systems. (2) Application view: SE is a process and activity of building and maintaining software systems using the technologies available in computer science.

6 The appearance of Software Engineering has changed the conventional views in producing software systems: (1) Redefine the concept of software : Software = Documentation + Program + Data (2) Software quality should be ensured not only by means of testing, but more importantly by means of quality development processes. (3) Understanding user requirements and producing a quality design become more important than programming.

7 Software Engineering Process Abstractly, a software engineering process can be perceived as a black-box: User requirements Software Development Software system Question: how to ensure that the software system satisfies the user requirements?

8 Software life cycle Waterfall model: R equirem ents analysis and sp e cifica tio n D e s i g n Im plem entation T e s t i n g D e lie v e r a n d m aintenance

9 Requirements analysis and specification is a study aiming to discover and document the exact requirements for the software system to be constructed. Design is an activity to construct a system, at a high level, to meet the system requirements Implementation is where the design specification is transformed into a program written in a specific programming language, such as Pascal, C, or Java. Testing is a way to detect potential faults in the program by running the program with test cases. Deliver and maintenance is where the ultimate system is delivered to the customer for operation, and is modified either to fix the existing faults when they occur during operation or to meet the new requirements.

10 1.2 What are the problems? 1. The overall problem is that software systems often do not operate as expected. In other words, software systems usually (or correctly speaking, always) contain faults (or bugs). The faults can be roughly classified into three categories: (1) Implementation does not satisfy the user requirements. (2) Incorrect design (e.g., architecture problem) (2) Implementation bugs (e.g., type, array boundary, and file operations).

11 Examples of software quality problems. National Aerospace Laboratory of Japan has conducted an airplane flight test of the supersonic experimental airplane (The rocket-powered experimental plane NEXST-1) in Woomera, Australia as part of the Next generation Supersonic Aircraft Technology Research and Development, but failed possibly due to software malfunction, according to the news paper report after the test flight.

12 Mizuho Bank ATM troubles

13 Historical examples: (1) A UK bank has accidentally transferred 2 billion sterling pounds to UK and US companies because a software design flaw allowed payment instructions to be duplicated. Computer Weekly (UK), 19 Oct (2) American Airlines reckons it has lost $50 million in passenger bookings due to a software design error in its own computer reservation system. Computer Weekly (UK), 22 Sept (3) A marine surveying and salvage company which claims a 300,300 sterling pounds computerized accounting system was plagued (affected) by hundreds of faults and unusable from day one has begun a high court claim for almost 1 million sterling pound in compensation. Computer Weekly (UK), 10 Oct. 1991

14 (4) On 1 July [1991] there was a 6-hour [telephone system] outage (non-operating period) affecting over 1 million customers in the Pittsburgh area [It] had finally been attributed to a hitherto (until this time) undetected but reproducible software fault. Risks Forum, ACM Software Engineering Notes, July 1991 (5) The Bank s five million credit card customers were yesterday urged to check their statements for mistakes caused by a computer bug. The Times (UK), 11 August 1992

15 (2) Software projects are often over budget and behind schedule. (3) Software requirements are usually not well understood before systems are implemented. The user usually has only a rough idea about the software system he or she wants. The user requirements are not defined precisely, and therefore are often misinterpreted by the developers.

16 (4) Software development process is usually not well controlled. The obligations of system analysts, designers, and programmers are not precisely defined. Documents are often changed without a rigorous procedure, and such changes are often not rigorously verified.

17 (5) Program testing is too late and has limited power in ensuring the correctness of software. Testing can only show the presence of bugs, but never show the absence of bugs. Testing is usually costing, around 60% or more of the total cost of software development. What do you do after you find out that the software cannot be used at all by testing?

18 (6) Software systems for safety-critical systems may result in the loss of life and/or properties if they are not correct with respect to their requirements specifications. aircraft control systems. nuclear power plant control systems. medical systems. railway control systems. ITS Intelligent Transport Systems.

19 An important reason for the above problems Specifications are written using informal languages (e.g., English) or semi-formal notation (e.g., DFD or UML). Such specifications can be ambiguous and offer no foundation for automated formal transformation and verification.

20 For instance: A software system for hotel reservation is required. The hotel has the following resources: single: 100 twin: 50 double: 100 The reservation list must record the following pieces of information of customers:

21 full name address telephone number passport number (if applicable) period of stay type of the room to reserve check in state check out state

22 The following functions must be provided: (1) Make a reservation (2) Cancel a reservation (3) Change a reservation (4) Check in (5) Check out

23 A possible solution to this problem: Formal Methods!

24 1.3 What are formal methods? Formal methods = Formal Specification + Formal Verification Set theory, logics, algebra etc.

25 Formal methods can also be understood as the following three components: Formal notation (or language) for writing specifications Logical calculus for formal verification (or proof) Method for developing software systems

26 From the abstract to the concrete Refinement Specification What to do Implementation How to do it Verification Check the correctness

27 For example, Specification: squareroot(x: nat0) y: real post: y ** 2 = x Program1: squareroot(x: nat0) begin y: real; y = Math.sqrt(x); return y; end

28 Program2: squareroot(x: nat0) begin y: real; y = Math.sqrt(x); return y; end Both Program1 and Program2 satisfy the specification, although the results are different.

29 This means: Specification: y ** 2 = x Refinement 1: y ** 2 = x and y >= 0 Refinement 2: y ** 2 = x and y <= 0 Software development process using formal methods has changed considerably, as shown next.

30 Validation Requirements analysis Verification Formal Specification Design Verification and validation Verification Coding Testing The change is not only at the increase of activities, but also at the cost and the schedule. For example, formal specification and design may need more time and cost more money.

31 The questions are: How to write a formal specification? How to do refinement? In other words, what are the rules for refinement? How to do formal verification? To support those activities, many formal methods have been developed. The most commonly used formal methods are briefly introduced next.

32 The most commonly used formal methods (1) VDM (Vienna Development Method), IBM Research Laboratory in Vienna, and Cliff B. Jones, UK Operation definition: Operation(input)output ext State variable preconiditon postcondition

33 For example, Add(x : nat) y : nat ext rd z : nat /*z is a state variable */ pre true post y > x + z VDM is one of the earliest formal methods.

34 (2) Z, Oxford University, UK Tony Hoare group Schema notation age: N age > 0 declaration predicate Application: IBM s Customer Information Control System (CICS), about 500,000 lines of code.

35 (3) B-Method, Jean-Raymond Abrial, France A specification is set of related Abstract Machines. Each abstract machine is a module that contains many operation definitions. Application: a computerized signaling system in Paris, which involves specification and verification of 63% of the 21,000 line system.

36 1.4 What are problems with formal methods Formal specifications of large scale software systems can be difficult to write, to read, and to understand for many engineers in industry. Formal methods are not well-integrated into the traditional software development process (e.g., how to use DFD or flowchart with formal notations). Formal methods are not effective in modeling the dynamic properties of software systems (e.g., GUI, system efficiency, the way of communication between human and machine).

37 Formal proof is too difficult to conduct by engineers in industry. Its cost is usually very high (e.g., labor, time). Formal proof is not effective in validation of systems.

38 What is the solution to those problems? Formal Engineering Methods!!!

39 1.5 What are Formal Engineering Methods? Formal Engineering Methods (FEM) provide a way to incorporate Formal Methods into the software development process to enhance the rigor (methodology), comprehensibility (human), and tool supportability (software tools) of software development process and consequently the quality of the final software product. In other words, FEM helps to achieve the harmony of methodology, human, and software tool.

40 Formal Methods Formal Engineering Methods Application of Formal Methods

41 The difference between Formal Methods (FM) and Formal Engineering Methods (FEM) FM addresses the problem of what we should do and why. FEM attacks the problem of what we can do and how.

42 The features of formal engineering methods Integration of formal notations and diagrams (e.g., VDM-SL, Z and DFD, Structure chart, flowchart, finite state machine), as well as natural languages. Integration of formal proof and practical verification methods, such as testing and reviews. Integration of prototyping and formal development process. Supporting evolution (which includes modification, extension, and refinement) rather than only strict refinement. Provide effective software tool supports for the use of the integrated formal techniques.

43 SOFL: a specific formal engineering method!

44 SOFL (Structured Object-oriented Formal Language) Started at the University of Manchester, UK in Completed at Hiroshima City University. Finalized at Hosei University, Japan. SOFL = Language + Method + Process

45 SOFL has been used for several applications: (1) Railway Crossing Controller (2) University Information System (3) Hotel Reservation System (4) Research Award Policy System (5) Online ATM (Automated Teller Machine)

46 (1) SOFL as a language. It is an integration of the following three: (a) VDM-SL (VDM specification language) (b) Petri Nets (c) Data Flow Diagrams (DFD) The DFD provides a comprehensible architecture of the specification, while Petri nets are used to provide an operational semantics for the DFD, and VDM-SL is used for defining processes, data flows, and data stores. A SOFL CDFD (Condition Data Flow Diagrams) is a unified concept of traditional data flow and control flow diagrams. It uses data availability to control the execution of the entire CDFD.

47 (2) SOFL as a method. It integrates the Structured Method, Object-Oriented Method, and Formal Method. SOFL supports the use of structured method for user requirements analysis and abstract design, and the use of objectoriented method for detailed design and programming.

48 (3) For the development process, SOFL emphasizes the following principles: (1) Support evolution rather than only strict refinement. When building a SOFL specification, we use evolution (that means we can use one of extension, modification, and refinement), but when decomposing a process and transforming a specification into an implementation, we use refinement. (2) Gradual transformation from informal, to semiformal, and finally to formal specifications. Usually informal specification and semi-formal specifications are constructed to document user requirements, and formal specifications are used to document design.

49 (3) Using rapid prototyping as a tool to discover dynamic properties of the system and the initial user requirements, and use formal notation for the development of the primary functionality (4) Using testing and rigorous reviews for the verification and validation of formal specifications and the correctness of programs.

50 A general structure of a SOFL specification class S1; const; type; var; inv; method Init; module SYSTEM; const; type; var; inv; process Init; A1 A2 method P1; method P2; method P3; end_class; process A1; process A2; end_module; B2 B1 class S2; const; type; var; inv; method Init; method Q1; method Q2; method Q3; end_class; module A2_Decom; const; type; var; inv; process Init; process B1; process B2; process B3; end_module; B3

51 Exercise 1 1.Answer the following questions. a.what is software life cycle? b.what is the problem with informal approaches to software development? c.what are formal methods? d.what are the major features of formal engineering methods? e.what is SOFL? 2.Explain the role of specification in software development. 3.Give an example of using the similar principle of formal methods to build other kinds of systems rather than software systems.

Formal Methods for Software Engineering

Formal Methods for Software Engineering Formal Methods for Software Engineering Virendra Singh Computer Design and Test Lab Indian Institute of Science Bangalore Email: virendra@computer.org Introduction Problems in software development Formal

More information

Formal Engineering for Industrial Software Development

Formal Engineering for Industrial Software Development Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3

More information

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR) Total Quality Management (TQM) Quality, Success and Failure Total Quality Management (TQM) is a concept that makes quality control a responsibility to be shared by all people in an organization. M7011

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Introduction to Formal Methods. Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm

Introduction to Formal Methods. Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm Introduction to Formal Methods Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm Outline Introduction Formal Specification Formal Verification Model Checking Theorem Proving Introduction Good papers to

More information

How To Design An Information System

How To Design An Information System Information system for production and mounting of plastic windows MARCEL, MELIŠ Slovak University of Technology - Faculty of Material Sciences and Technology in Trnava, Paulínska 16 street, Trnava, 917

More information

Execution of A Requirement Model in Software Development

Execution of A Requirement Model in Software Development Execution of A Requirement Model in Software Development Wuwei Shen, Mohsen Guizani and Zijiang Yang Dept of Computer Science, Western Michigan University {wwshen,mguizani,zijiang}@cs.wmich.edu Kevin Compton

More information

Lecture 9: Requirements Modelling

Lecture 9: Requirements Modelling A little refresher: What are we modelling? Lecture 9: Requirements Modelling Requirements; Systems; Systems Thinking Role of Modelling in RE Why modelling is important Limitations of modelling Brief overview

More information

Introduction to Software Paradigms & Procedural Programming Paradigm

Introduction to Software Paradigms & Procedural Programming Paradigm Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,

More information

VDM vs. Programming Language Extensions or their Integration

VDM vs. Programming Language Extensions or their Integration VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,

More information

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle The Second Management Innovation and Practices Conference, Tamsui, Taiwan, April 2001,Volume 2, pp59-68 應 用 測 試 於 軟 體 發 展 生 命 週 期 Testing In The Software Development Life Cycle 蔡 博 元 莊 立 文 真 理 大 學 資 訊

More information

Menouer Boubekeur, Gregory Provan

Menouer Boubekeur, Gregory Provan Software Requirements Menouer Boubekeur, Gregory Provan Lectures Introduction to UML Introduction to Requirements Analysis Advanced techniques for Requirement Analysis M. Boubekeur, CSL, University College

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented

More information

Chapter 4: Tools of Modern Systems Analysis

Chapter 4: Tools of Modern Systems Analysis Just Enough Structured Analysis Chapter 4: Tools of Modern Systems Analysis Nature has... some sort of arithmetical-geometrical coordinate system, because nature has all kinds of models. What we experience

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Formally speaking: How to apply OCL

Formally speaking: How to apply OCL Page 1 of 6 Copyright IBM Corporation 2004 http://www-106.ibm.com/developerworks/rational/library/5390.html Search for: within All of dw Use + - ( ) " " Search help IBM home Products & services Support

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages 15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning

More information

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.) The Software Process Xiaojun Qi 1 The Unified Process Until recently, three of the most successful object-oriented methodologies were Booch smethod Jacobson s Objectory Rumbaugh s OMT (Object Modeling

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

Umbrella: A New Component-Based Software Development Model

Umbrella: A New Component-Based Software Development Model 2009 International Conference on Computer Engineering and Applications IPCSIT vol.2 (2011) (2011) IACSIT Press, Singapore Umbrella: A New Component-Based Software Development Model Anurag Dixit and P.C.

More information

Software Certification and Software Certificate Management Systems

Software Certification and Software Certificate Management Systems Software Certification and Software Certificate Management Systems (Position Paper) Ewen Denney and Bernd Fischer USRA/RIACS, NASA Ames Research Center, Moffett Field, CA 94035, USA {edenney,fisch}@email.arc.nasa.gov

More information

Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm

Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm Table of Contents 1 Introduction... 2 1.1 Programming Paradigm... 2 1.2 Software Design Paradigm... 3 1.2.1 Design Patterns...

More information

CASE TOOLS. Contents

CASE TOOLS. Contents MODULE 14 CASE TOOLS Contents 1. MOTIVATION AND LEARNING GOALS 2. LEARNING UNIT 1 CASE tools and their importance 3. LEARNING UNIT 2 Some CASE tools and their use 4. REFERENCES CASE TOOLS MOTIVATION Industries

More information

Improving Software Requirements through Formal Methods: A Review

Improving Software Requirements through Formal Methods: A Review International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 3, Number 7 (2013), pp. 729-736 International Research Publications House http://www. irphouse.com /ijict.htm Improving

More information

Specification and Analysis of Contracts Lecture 1 Introduction

Specification and Analysis of Contracts Lecture 1 Introduction Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.

More information

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions Announcements SE 1: Software Requirements Specification and Analysis Lecture 4: Basic Notations Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445 Send your group

More information

Model Checking based Software Verification

Model Checking based Software Verification Model Checking based Software Verification 18.5-2006 Keijo Heljanko Keijo.Heljanko@tkk.fi Department of Computer Science and Engineering Helsinki University of Technology http://www.tcs.tkk.fi/~kepa/ 1/24

More information

Master of Science in Software Engineering (MSC)

Master of Science in Software Engineering (MSC) Master of Science in Software Engineering The MSc in Software Engineering provides a thorough grounding in how to apply rigorous engineering principles to deliver elegant, effective software solutions

More information

Testing of safety-critical software some principles

Testing of safety-critical software some principles 1(60) Testing of safety-critical software some principles Emerging Trends in Software Testing: autumn 2012 Matti Vuori, Tampere University of Technology 27.11.2012 Contents 1/4 Topics of this lecture 6

More information

Source Code Translation

Source Code Translation Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven

More information

CSE4213 Lecture Notes

CSE4213 Lecture Notes CSE4213 Lecture Notes Introduction to B Tools Computer Science and Software Engineering Monash University 20070226 / Lecture 1 ajh 1/15 1 Outline 2 3 4 5 ajh 2/15 In this course we will be introducing

More information

Introducing Formal Methods. Software Engineering and Formal Methods

Introducing Formal Methods. Software Engineering and Formal Methods Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended

More information

F-22 Raptor. Agenda. 1. Motivation

F-22 Raptor. Agenda. 1. Motivation Model-Based Software Development and Automated Code Generation for Safety-Critical Systems F-22 Raptor for the Seminar Advanced Topics in Software Engineering for Safety-Critical Systems Cause: Bug in

More information

A B C. Decomposition I Y

A B C. Decomposition I Y Software Development byevolution 3 Shaoying Liu Department of Computer Science Faculty of Information Sciences Hiroshima City University, Japan Email: shaoying@cs.hiroshima-cu.ac.jp Introduction Software

More information

Quantitative and qualitative methods in process improvement and product quality assessment.

Quantitative and qualitative methods in process improvement and product quality assessment. Quantitative and qualitative methods in process improvement and product quality assessment. Anna Bobkowska Abstract Successful improvement of the development process and product quality assurance should

More information

Software Process Models. Xin Feng

Software Process Models. Xin Feng Software Process Models Xin Feng Questions to Answer in Software Engineering? Questions to answer in software engineering What is the problem to be solved? Definition What are the characteristics of the

More information

Advanced Test-Driven Development

Advanced Test-Driven Development Corporate Technology Advanced Test-Driven Development Software Engineering 2007 Hamburg, Germany Peter Zimmerer Principal Engineer Siemens AG, CT SE 1 Corporate Technology Corporate Research and Technologies

More information

Rigorous Methods for Software Engineering (F21RS1) High Integrity Software Development

Rigorous Methods for Software Engineering (F21RS1) High Integrity Software Development Rigorous Methods for Software Engineering (F21RS1) High Integrity Software Development Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University

More information

5 th Grade Common Core State Standards. Flip Book

5 th Grade Common Core State Standards. Flip Book 5 th Grade Common Core State Standards Flip Book This document is intended to show the connections to the Standards of Mathematical Practices for the content standards and to get detailed information at

More information

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 3 Testing CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard PREVIOUS CONTRIBUTORS : Ang Jin Juan Gabriel; Chen Shenglong

More information

Why process models? Topic 3 Software process models. 3. Process models. What is a process model?

Why process models? Topic 3 Software process models. 3. Process models. What is a process model? Why process models? Topic 3 Software process models SE is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software... (IEEE Standard

More information

Verifying Specifications with Proof Scores in CafeOBJ

Verifying Specifications with Proof Scores in CafeOBJ Verifying Specifications with Proof Scores in CafeOBJ FUTATSUGI, Kokichi 二 木 厚 吉 Chair of Language Design Graduate School of Information Science Japan Advanced Institute of Science and Technology (JAIST)

More information

Fourth generation techniques (4GT)

Fourth generation techniques (4GT) Fourth generation techniques (4GT) The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some

More information

Software testing. Objectives

Software testing. Objectives Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating

More information

How To Understand Software Engineering

How To Understand Software Engineering PESIT Bangalore South Campus Department of MCA SOFTWARE ENGINEERING 1. GENERAL INFORMATION Academic Year: JULY-NOV 2015 Semester(s):III Title Code Duration (hrs) SOFTWARE ENGINEERING 13MCA33 Lectures 52Hrs

More information

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES Robert M. Bruckner Vienna University of Technology bruckner@ifs.tuwien.ac.at Beate List Vienna University of Technology list@ifs.tuwien.ac.at

More information

Software Production and Lifecycle Models

Software Production and Lifecycle Models Software Production and Lifecycle Models 1 Problem Definition Change Architectural Design Verification Personnel Basic Phases Potential Difficulties, Verification, and Testing Implementation and Integration

More information

Writing in the Computer Science Major

Writing in the Computer Science Major Writing in the Computer Science Major Table of Contents Introduction... 2 Statement of Purpose... 2 Revision History... 2 Writing Tasks in Computer Science... 3 Documentation... 3 Planning to Program:

More information

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring 1998 1

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring 1998 1 1 Software Development Processes Sequential, Prototype-based RAD, Phased, Risk-based Spiral (c) 1998 M Young CIS 422/522 1/10/99 1 Software Life-Cycle Models Breaking projects down into pieces for... Planning

More information

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice In this Lecture you will Learn: Development Chapter 5C About the Unified Software Development How phases relate to workflows in an iterative life cycle An approach to system development Major activities

More information

Functional Validation of SAP Implementation

Functional Validation of SAP Implementation Functional Validation of SAP Implementation Efficiently produce and maintain a SAP test repository thru modeling of business processes and business rules Geoffrey Potoczny/Smartesting Professional Services

More information

Contents The College of Information Science and Technology 2011-2012 Undergraduate Course Descriptions

Contents The College of Information Science and Technology 2011-2012 Undergraduate Course Descriptions Contents The College of Information Science and Technology 2011-2012 Undergraduate Course Descriptions Information Science & Systems Courses INFO 101 - Introduction to Information Technology Introduces

More information

IV. Software Lifecycles

IV. Software Lifecycles IV. Software Lifecycles Software processes and lifecycles Relative costs of lifecycle phases Examples of lifecycles and processes Process maturity scale Information system development lifecycle Lifecycle

More information

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology? In this Lecture you will Learn: Systems Development Methodologies What a systems development methodology is Why methodologies are used The need for different methodologies The main features of one methodology

More information

An Automatic Tool for Checking Consistency between Data Flow Diagrams (DFDs)

An Automatic Tool for Checking Consistency between Data Flow Diagrams (DFDs) An Automatic Tool for Checking Consistency between Data Flow Diagrams (DFDs) Rosziati Ibrahim, Siow Yen Yen Abstract System development life cycle (SDLC) is a process uses during the development of any

More information

CONFIGURATION MANAGEMENT TECHNOLOGY FOR LARGE-SCALE SIMULATIONS

CONFIGURATION MANAGEMENT TECHNOLOGY FOR LARGE-SCALE SIMULATIONS SCS M&S Magazine. Vol 3. Issue 3. A. Sekiguchi, K. Shimada, Y. Wada, A. Ooba, R. Yoshimi, and A. Matsumoto. CONFIGURATION MANAGEMENT TECHNOLOGY FOR LARGE-SCALE SIMULATIONS Atsuji Sekiguchi, Kuniaki Shimada,

More information

A system is a set of integrated components interacting with each other to serve a common purpose.

A system is a set of integrated components interacting with each other to serve a common purpose. SYSTEM DEVELOPMENT AND THE WATERFALL MODEL What is a System? (Ch. 18) A system is a set of integrated components interacting with each other to serve a common purpose. A computer-based system is a system

More information

6-1. Process Modeling

6-1. Process Modeling 6-1 Process Modeling Key Definitions Process model A formal way of representing how a business system operates Illustrates the activities that are performed and how data moves among them Data flow diagramming

More information

Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form

Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form Carnegie Mellon University Master of Science in Information Technology Software Engineering (MSIT-SE) MSIT Project (17-677) Approval Form Student Name: Jane Doe Date: 9/19/2002 Project Title: Re-Engineer

More information

Automated Test Generation

Automated Test Generation Automated Test Generation (From a Behavioral Model) James M. Clarke Lucent Technologies 2000 Naperville Road Naperville, IL 60666-7033 (630) 979-1861 jmclarke@lucent.com Abstract The challenge for testers:

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

TECH. Requirements. Why are requirements important? The Requirements Process REQUIREMENTS ELICITATION AND ANALYSIS. Requirements vs.

TECH. Requirements. Why are requirements important? The Requirements Process REQUIREMENTS ELICITATION AND ANALYSIS. Requirements vs. CH04 Capturing the Requirements Understanding what the customers and users expect the system to do * The Requirements Process * Types of Requirements * Characteristics of Requirements * How to Express

More information

Evaluation of a Use-Case-Driven Requirements Analysis Tool Employing Web UI Prototype Generation

Evaluation of a Use-Case-Driven Requirements Analysis Tool Employing Web UI Prototype Generation Evaluation of a Use-Case-Driven Requirements Analysis Tool Employing Web UI Prototype Generation SHINPEI OGATA Course of Functional Control Systems, Graduate School of Engineering Shibaura Institute of

More information

IBM Rational Rhapsody

IBM Rational Rhapsody IBM Rational Rhapsody IBM Rational Rhapsody Reference Workflow Guide Version 1.9 License Agreement No part of this publication may be reproduced, transmitted, stored in a retrieval system, nor translated

More information

Lab Manual. Advanced Pr I IT 314

Lab Manual. Advanced Pr I IT 314 Lab Manual Advanced Pr I IT 314 Lab Instructions Several practicals / programs? Whether an experiment contains one or several practicals /programs One practical / program Lab Teacher forms groups of the

More information

BPMN by example. Bizagi Suite. Copyright 2014 Bizagi

BPMN by example. Bizagi Suite. Copyright 2014 Bizagi BPMN by example Bizagi Suite Recruitment and Selection 1 Table of Contents Scope... 2 BPMN 2.0 Business Process Modeling Notation... 2 Why Is It Important To Model With Bpmn?... 2 Introduction to BPMN...

More information

Design by Contract beyond class modelling

Design by Contract beyond class modelling Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

More information

Software Process for QA

Software Process for QA Software Process for QA Basic approaches & alternatives CIS 610, W98 / M Young 1/7/98 1 This introduction and overview is intended to provide some basic background on software process (sometimes called

More information

Chapter 8 Approaches to System Development

Chapter 8 Approaches to System Development Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases

More information

(BA122) Software Engineer s Workshop (SEW)

(BA122) Software Engineer s Workshop (SEW) Training for the Business Analyst (BA122) Software Engineer s Workshop (SEW) Duration: 4 days CDUs (Continuing Development Units): 28 Description: A practical workshop covering the role of the Business-Systems

More information

Secure Software Programming and Vulnerability Analysis

Secure Software Programming and Vulnerability Analysis Secure Software Programming and Vulnerability Analysis Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Testing and Source Code Auditing Secure Software Programming 2 Overview

More information

Motivations 1. What is (or should be) the essential preoccupation of computer scientists?

Motivations 1. What is (or should be) the essential preoccupation of computer scientists? Improving Systems Quality Challenges and Trends An Abstract Interpretation Perspective Patrick COUSOT École Normale Supérieure 45 rue d Ulm, 75230 Paris cedex 05, France Patrick.Cousot@ens.fr www.di.ens.fr/

More information

Chapter 7: Software Engineering

Chapter 7: Software Engineering Chapter 7: Software Engineering Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 7: Software Engineering 7.1 The Software Engineering

More information

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young 3F6 - Software Engineering and Design Handout 10 Distributed Systems I With Markup Steve Young Contents 1. Distributed systems 2. Client-server architecture 3. CORBA 4. Interface Definition Language (IDL)

More information

BPMN Business Process Modeling Notation

BPMN Business Process Modeling Notation BPMN (BPMN) is a graphical notation that describes the logic of steps in a business process. This notation has been especially designed to coordinate the sequence of processes and messages that flow between

More information

Software Architecture Document

Software Architecture Document Software Architecture Document Natural Language Processing Cell Version 1.0 Natural Language Processing Cell Software Architecture Document Version 1.0 1 1. Table of Contents 1. Table of Contents... 2

More information

A UML Introduction Tutorial

A UML Introduction Tutorial A UML Introduction Tutorial 1/27/08 9:55 PM A UML Introduction Tutorial In this tutorial you will learn about the fundamentals of object oriented modelling, the Unified Modelling Language and the software

More information

SC207 Software Engineering. Review Report: Producing More Reliable Software

SC207 Software Engineering. Review Report: Producing More Reliable Software SC207 Software Engineering Review Report: Producing More Reliable Software Guo Zaiyi (SA1) Lecturer: Dr. Edmond C. Prakash School of Computer Engineering Nanyang Technological University Abstract This

More information

MDEP Generic Common Position No DICWG 02

MDEP Generic Common Position No DICWG 02 MDEP Generic Common Position No DICWG 02 Related to: Digital Instrumentation and Controls Working Group activities COMMON POSITION ON SOFTWARE TOOLS FOR THE DEVELOPMENT OF SOFTWARE FOR SAFETY SYSTEMS 1

More information

Validation of Regulation Documents by Automated Analysis of Formal Models

Validation of Regulation Documents by Automated Analysis of Formal Models 800 Regulations Modelling and their Validation and Verification Validation of Regulation Documents by Automated Analysis of Formal Models Didier Bert 1, Fabrice Bouquet 2, Yves Ledru 1, and Sylvie Vignes

More information

Chapter 4: Design Principles I: Correctness and Robustness

Chapter 4: Design Principles I: Correctness and Robustness Chapter 4: Design Principles I: Correctness and Robustness King Fahd University of Petroleum & Minerals SWE 316: Software Design & Architecture Semester: 072 Objectives To introduce two design principles

More information

A CSPm Model for the Procure to Pay Case Study

A CSPm Model for the Procure to Pay Case Study A CSPm Model for the Procure to Pay Case Study Andreas V. Hense Bonn-Rhein-Sieg University oas, Grantham-Allee 20, 53757 Sankt Augustin, Germany, andreas.hense@brsu.de Abstract. The model presented here

More information

Regression Verification: Status Report

Regression Verification: Status Report Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software

More information

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication Integrated Development of Distributed Real-Time Applications with Asynchronous Communication Marc Schanne International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES) 26-28 September

More information

Algorithms, Flowcharts & Program Design. ComPro

Algorithms, Flowcharts & Program Design. ComPro Algorithms, Flowcharts & Program Design ComPro Definition Algorithm: o sequence of steps to be performed in order to solve a problem by the computer. Flowchart: o graphical or symbolic representation of

More information

Axiomatic design of software systems

Axiomatic design of software systems Axiomatic design of software systems N.P. Suh (1), S.H. Do Abstract Software is playing an increasingly important role in manufacturing. Many manufacturing firms have problems with software development.

More information

Spatially Enabling an Asset Management Database

Spatially Enabling an Asset Management Database Spatially Enabling an Asset Management Database John Woollett, GIS Manager (Operations) Tube Lines Ralph Diment Intergraph UK Helen Neaves Intergraph UK Bruce Aquila Intergraph Introduction Background

More information

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao Requirements Analysis Concepts & Principles Instructor: Dr. Jerry Gao Requirements Analysis Concepts and Principles - Requirements Analysis - Communication Techniques - Initiating the Process - Facilitated

More information

Automated Module Testing of Embedded Software Systems

Automated Module Testing of Embedded Software Systems Automated Module Testing of Embedded Software Systems Master s Thesis Fredrik Olsson Henrik Lundberg Supervisors Thomas Thelin, LTH Michael Rosenberg, EMP Nicklas Olofsson, EMP II Abstract When designing

More information

A Project Based Approach for Teaching System Analysis, Design, and Implementation Courses

A Project Based Approach for Teaching System Analysis, Design, and Implementation Courses A Project Based Approach for Teaching System Analysis, Design, and Implementation Courses Nabil A. Yousif 1 and Masoud Naghedolfeizi 2 Abstract-In curricula of Computer Information Systems at Fort Valley

More information

Testing Introduction. IEEE Definitions

Testing Introduction. IEEE Definitions Testing Introduction IEEE Definitions Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the

More information

Roadmap. Software Engineering. Software Engineering. Project Life Cycle. Database. Project Lifecycle

Roadmap. Software Engineering. Software Engineering. Project Life Cycle. Database. Project Lifecycle Database Project Lifecycle Philippe Bonnet, 2006 2 Software Engineering The implementation of a database application is a significant engineering endeavor The project must complete On time On budget The

More information

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN Mohammad A. Rob, University of Houston-Clear Lake, rob@cl.uh.edu ABSTRACT In recent years, there has been a surge of

More information

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks

More information

High Availability White Paper

High Availability White Paper High Availability White Paper This document provides an overview of high availability best practices for mission critical applications. Author: George Quinlan, Senior Consultant Background - High Availability

More information

How Programmers Use Internet Resources to Aid Programming

How Programmers Use Internet Resources to Aid Programming How Programmers Use Internet Resources to Aid Programming Jeffrey Stylos Brad A. Myers Computer Science Department and Human-Computer Interaction Institute Carnegie Mellon University 5000 Forbes Ave Pittsburgh,

More information

Understanding Data Flow Diagrams Donald S. Le Vie, Jr.

Understanding Data Flow Diagrams Donald S. Le Vie, Jr. Understanding Flow Diagrams Donald S. Le Vie, Jr. flow diagrams (DFDs) reveal relationships among and between the various components in a program or system. DFDs are an important technique for modeling

More information