Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.

Slides:



Advertisements
Similar presentations
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn 2.4 The Z Notation [Reference: M. Spivey: The Z Notation, Prentice Hall]
Advertisements

Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
© Colin Potts C6-1 Some future trends in requirements engineering Colin Potts Georgia Tech.
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
MODELING THE TESTING PROCESS Formal Testing (1.0) Requirements Software Design Risk Data Approved, Debugged, Eng. Tested Code Automated Test Tools Tested.
ISBN Chapter 3 Describing Syntax and Semantics.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Chapter 1 The Systems Development Environment
1 A UML Class Diagram Analyzer Tiago Massoni Rohit Gheyi Paulo Borba Software Productivity Group Informatics Center – UFPE October 2004.
Using UML and Alloy to Specify and Analyze Access Control Features Eunjee Song, Xi Hua SP05-CS681 Project Proposal.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 91 Formal Specification l Techniques for the unambiguous specification of software.
1 Introduction to Formal Methods Introduction to Formal Methods; Preconditions, Postconditions, and Invariants Revisited; Z language Example (Pressman)
Requirements modelling motivations: I We need a language for communicating shared perceptions of the requirements for the target system between human stakeholders.
Describing Syntax and Semantics
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 10 Slide 1 Formal Specification.
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
Software Configuration Management (SCM)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Critical Systems Specification 3 Formal Specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Formal Specification.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec17 1 Lecture 17: Formal Modeling Methods Formal Modeling Techniques.
Introduction. 
Software Engineering Modern Approaches
Software Engineering Modern Approaches
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 9 Slide 1 Formal Specification l Techniques for the unambiguous specification of software.
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.
Introduction to Information Technology Turban, Rainer and Potter John Wiley & Sons, Inc. Copyright 2005.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Introduction to MDA (Model Driven Architecture) CYT.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
WXGE6103 Software Engineering Process and Practice Formal Specification.
CSC 480 Software Engineering Lecture 2 August 23, 2004.
A language to describe software texture in abstract design models and implementation.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
CSC 480 Software Engineering Lecture 2 August 26, 2002.
Software Engineering 2 -Prakash Shrestha.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
RE-ENGINEERING AND DOMAIN ANALYSIS BY- NISHANTH TIRUVAIPATI.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Requirements Analysis
4 REQUIREMENTS ANALYSIS II. Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap:
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Methodology Review Chapter 7 Part 2: Design Methodology Object-Oriented Modeling and Design Byung-Hyun Ha
Chapter 25 Formal Methods. BASIC CONCEPTS A method is formal if it has a sound mathematical basis, typically given by a formal specification language.
2009 copyright Leslie Munday University Requirements Management and Traceability For IIBA By Leslie Munday.
 System Requirement Specification and System Planning.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Requirements Specification
Formal Specification.
Introduction to Formal Methods
The Development Process of Web Applications
Software Engineering Modern Approaches
Software requirements
Chapter 3: Agile Software Processes
Department of Computer Science Abdul Wali Khan University Mardan
Requirements Document
Presentation transcript:

Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1

© 2010 John Wiley & Sons Ltd. Chapter 14: Formal and Emerging Methods in Requirements Analysis 2

Learning Goals of This Chapter What does it mean for requirements to be formal? When is it advisable to use formal methods? What are examples of formal systems? Requirements analysis Design Implementation Testing Maintenance Planning The Software Development Lifecycle Phase most relevant to this chapter is shown in bold 3

Formal vs. Agile Approaches to Requirements Agile response Make running code and tests the effective requirements because the customer is part of this process Formal response Based on belief that mathematical precision is appropriate basis Allows automation of requirements-to-code The Problem: Natural language can be  ambiguous  clumsy when expressing some details and nuances  hard to trace to code © 2010 John Wiley & Sons Ltd. 4

Benefits of Formal Methods for Specifying Requirements Precision Provability with mathematical certainty Power – Leverage mathematics to form new requirements from existing ones Possibility for automated code generation – Precision may allow this 5

© 2010 John Wiley & Sons Ltd. Formal Modeling and Analysis Notation * Common: Z, B, OCL Alloy, VDM Can capture software abstractions more succinctly than programming language Use classical mathematics for states Sets and relations Describe behavior declaratively, using constraints Lightweight tools available to evaluate against constraints New tool projects will enhance greatly * From "Software Abstractions : Logic, Language, and Analysis" by Daniel Jackson; MIT Press (2006) ISBN:

© 2010 John Wiley & Sons Ltd Augmenting t with input (2, 4) yields: Augmenting t with input (3, 6) yields: Update Example Hayes et al If t is the table: 7

© 2010 John Wiley & Sons Ltd. Z-specification for Augmenting a Table 1 t, t’ : N  N l?, r? : N Augment Function between integers x ’ denotes value of x after application Declaration of variables and types Procedure name The set of natural numbers ? denotes input Hayes et al 8

© 2010 John Wiley & Sons Ltd. Z-specification for Augmenting a Table Completed t, t’ : N  N l?, r? : N Lookup [l?  dom( t )  t’ = t  { (l?, r?) }] V [l?  dom( t )  t’ = (t \ { (l?, t(l?)}  { (l?, r?) }] … is not an element of... Elements that t acts on. and... Remove existing element from t or... Adapted from Hayes et al Effect of application t augmented by mapping l? to r? 9

© 2010 John Wiley & Sons Ltd. Z-Specification for Lookup t, t’ : N  N l?, r! : N Lookup [ l?  dom( t )  r! = 0  t’ = t ] V [ l?  dom( t )  r! = t( l? )  t’ = t ] The table t is unchanged Hayes et al Name of an output 10

Array Function A Domain element x Range element A(x) © 2010 John Wiley & Sons Ltd. 11

© 2010 John Wiley & Sons Ltd. Z-specification for Sorting Example t, t´ : N N dom(t´) = dom(t)  rng(t´) = rng(t)   x, y  dom(t), x  y  t´(x)  t´(y)   x  rng(t´), card[ t´ -1 (x) ] = card[ t -1 (x) ] Sort Partial function (see above)Range of t Number of elements in the set... Set of elements mapped onto x by t “implies” 12

The CM State Schema checkedOut : CI ↛ ENGINEERS _____________________________ checkedOut  permitted CM © 2010 John Wiley & Sons Ltd. 13

Using a Schema in a New Schema CM privileged  CI  ENGINEER _____________________________ privileged  permitted SuperCM checkedOut : CI ↛ ENGINEER privileged  CI  ENGINEER _____________________________ checkedOut  permitted privileged  permitted SuperCM Is equivalent to: © 2010 John Wiley & Sons Ltd. 14

© 2010 John Wiley & Sons Ltd. Operation Schemas Based on Existing Schemas Operations permitted on a system result only in states permitted by the state schema Performed with operation schemas. For a state schema X – ΔX denotes state of X changes – ΞX denotes state of X unchanged 15

The CheckOut Operation Schema ∆CMCM holds; may change state e? : ENGINEERe? is an engineer (element) c? : CIc? is a configuration item _____________________________ c?  dom checkedOutc? not currently checked out ( c?, e?)  permittede? allowed to check out c? checkedOut’ = checkedOut  ( c?, e?) save transaction CheckOut Comments © 2010 John Wiley & Sons Ltd. 16

The CheckIn Operation Schema ∆CMCM holds; may change state e? : ENGINEERe? is an engineer (element) c? : CIc? is a configuration item _____________________________ ( c?, e?)  checkedOute? has checked out c? checkedOut’ = checkedOut \ ( c?, e?) save transaction CheckIn © 2010 John Wiley & Sons Ltd. 17

The DisallowedCheckin Operation Schema  CMCM holds; doesn’t change state e? : ENGINEERe? is an engineer (element) c? : CIc? is a configuration item _____________________________ ( c?, e?)  permittede? not allowed to check out c? nothing changes DisallowedCheckIn © 2010 John Wiley & Sons Ltd. 18

© 2010 John Wiley & Sons Ltd. Using a System for Formal Specification: Tradeoffs Benefits of Formal Specification Reduces ambiguity Promotes traceability from requirements to implementation Costs of Formal Specification  Requires training to apply  Doubt they can specify all needs  Customers can’t understand 19