Chapter 8 - 1 Specification Detailed and precise proposal for a system Provides the technical basis for a contract Typically increases understanding and.

Slides:



Advertisements
Similar presentations
Formal Methods in Software Engineering
Advertisements

SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
Karolina Muszyńska Based on:
ISBN Chapter 3 Describing Syntax and Semantics.
HORIZONT 1 ProcMan ® The Handover Process Manager Product Presentation HORIZONT Software for Datacenters Garmischer Str. 8 D München Tel ++49(0)89.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
Software Engineering COMP 201
Chapter Modeling Theory Allow modeling to be done ontologically (high level of abstraction) Then, systematically transform the application model.
Chapter 9. 2 Objectives You should be able to describe: Addresses and Pointers Array Names as Pointers Pointer Arithmetic Passing Addresses Common Programming.
Chapter Modeling Theory Allow modeling to be done ontologically (high level of abstraction, real-world modeling, application specific) Then, systematically.
Chapter Abstraction Concrete: directly executable/storable Abstract: not directly executable/storable –automatic translation (as good as executable/storable)
Copyright W. Howden1 Lecture 13: Programming by Contract.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 91 Formal Specification l Techniques for the unambiguous specification of software.
Chapter Object-Module Design Classic object-orientation –Group data and applicable operations together. –Encapsulate identity, data, and behavior.
Create, Insert, Delete, Update. Create Create database Create table Create index – Primary – Secondary.
Geography 465 Overview Geoprocessing in ArcGIS. MODELING Geoprocessing as modeling.
CostAnalysis: 1 Cost Analysis Rule-of-Thumb Guidelines As a guide, consider denormalizing if: –redundancy is minimal and update anomalies are not expected.
Chapter Implementation Faithful translation of a design into a target environment Design should be free of target-environment dependencies Should.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 10 Slide 1 Formal Specification.
Systems Analysis I Data Flow Diagrams
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Formal Specification.
The chapter will address the following questions:
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Akhila Kondai October 30, 2013.
The Software Development Cycle Defining and understanding the problem.
Systems Analysis and Design in a Changing World, Fifth Edition
CSI315 Web Applications and Technology Overview of Systems Development (342)
©Silberschatz, Korth and Sudarshan5.1Database System Concepts Chapter 5: Other Relational Languages Query-by-Example (QBE) Datalog.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 9 Slide 1 Formal Specification l Techniques for the unambiguous specification of software.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
ITEC 3220M Using and Designing Database Systems
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
In the next step you will enter some data records into the table. This can be done easily using the ‘Data Browser’. The data browser can be accessed via.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
WXGE6103 Software Engineering Process and Practice Formal Specification.
Approaching a Problem Where do we start? How do we proceed?
Low-Level Detailed Design SAD (Soft Arch Design) Mid-level Detailed Design Low-Level Detailed Design Design Finalization Design Document.
Distributed Information Retrieval Using a Multi-Agent System and The Role of Logic Programming.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Introduction to Software Engineering Lecture 1.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
UML-1 3. Capturing Requirements and Use Case Model.
2131 Structured System Analysis and Design By Germaine Cheung Hong Kong Computer Institute Lecture 8 (Chapter 7) MODELING SYSTEM REQUIREMENTS WITH USE.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Requirements Validation
Week 3: Requirement Analysis & specification
Intermediate 2 Computing Unit 2 - Software Development.
RelAlg: 1 Relational Algebra An Algebra is a pair: (set of values, set of operations) Note that an algebra is the same idea as an ADT Relational Algebra:
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
SASI Enforcement of Security Policies : A Retrospective* PSLab 오민경.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Chapter – 8 Software Tools.
MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Sravanthi Lakkimsety Mar 14,2016.
McGraw-Hill/Irwin Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 5 Modeling the Processes and Logic.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
 System Requirement Specification and System Planning.
Formal Specification.
Chapter 1 The Systems Development Environment
Software Testing.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
CS310 Software Engineering Dr.Doaa Sami
Using Use Case Diagrams
Objectives You should be able to describe: Addresses and Pointers
Chapter 1 The Systems Development Environment
Presentation transcript:

Chapter Specification Detailed and precise proposal for a system Provides the technical basis for a contract Typically increases understanding and causes some revision in the analysis Ideally, a specification should: –enable clients to validate the system (solve the right problem) –establish a basis for developers to verify the system (solve the problem right)

Chapter Validation and Verification Both hard to achieve in practice Validation –JAD (Joint Application Development) –prototyping Verification –typical: thoughtful inspection and testing –possible: verifiable transformations that preserve information constraints behavior

Chapter Formalism Advantages –requires careful thought –provides precision –removes unstated assumptions –makes correctness proofs possible –serves as a basis for tool development –enables prototyping Disadvantages –hard to do and hard to read and understand –may hinder productivity

Chapter Tunable Formalism Various levels of formalism –Completely formal must be possible. –Completely informal should also be possible. Various levels of completion System components can vary in their level of completion and formalism. OSM supports tunable formalism.

Chapter An Approach to Specification Establish a system automation boundary. –Allow only interface interactions to cross the boundary. –Split active boundary-crossing object sets. –Note: subsystems may also be specified with an automation boundary. Formalize behavior specifications. –Tune the formalism of each component appropriately. –Scale up specification size and detail with OSM-L. Formalize boundary-crossing interactions. –Add details about information passed in and out. –Use interface forms to lay out and simplify interfaces.

Chapter System Automation Boundary Restricted high-level object set –standard high-level object set –only interactions cross the boundary Often easy to establish – when: –All object and relationship sets are to be in the database. –All states and transitions are to be implemented. –All interactions are either internal or have either only an origin or destination outside the system. Sometimes requires transformations

Chapter Interaction Transformations

Chapter Relationship-Set Transformations

Chapter Boundary-Crossing Active Object Set

Chapter Transformed Active Object Set

Chapter Mitosis Establish an inside and an outside object set. Identify roles for inside and outside object sets. Identify synchronization interactions needed to coordinate the activities of the inside and outside object sets. Write the state nets for the two object sets and the boundary-crossing interactions between them.

Chapter OSM-L A Formal Specification Language Textual Language –scales up –allows more precision –gets us closer to implementation Model-Equivalent –OSM and OSM-L constructs match one for one –analysis work translates directly (seamless) –a return to graphical notation is possible –mixed OSM/OSM-L is possible and common

Chapter OSM-L: Declarations object “J’s BandB”; Room [n]; “J’s BandB” [n] has Room [1]; Guest [0:*] has preference for Room [0:*] | Room is favorite of Guest; Current Guest, Future Guest isa[union] Guest;

Chapter OSM-L: High-Level Declarations Room includes Room [1] has RoomNr: String [1]; Room [1] has Name: String [a:1]; end; Guest includes Guest [1] has GuestNr: String [1]; Guest [1] has Name: String [b]; end; Guest [0:*] has reservation on Arrival Date: String [1:*] for Room [0:*]; Guest(x) has reservation for Room(y) :- Guest(x) has reservation on Arrival Date() for Room(y); [ a + b > 0 ];

Chapter OSM-L: Queries 1. Predicate calculus (with text symbols, e.g.,  is exists). 2. Path Expressions. GuestNr(x) with Name(y) where exists z exists w (Guest(z) has GuestNr(x) and Guest(z) has Name(y) and Guest(z) has reservation on ArrivalDate(10 May) for Room(w)) RoomNr(1).Name ArrivalDate(10 May).Guest.Name

Chapter OSM-L: State Nets Reservation Clerk add then enter Ready; end; when remove then end; when Ready new new reservation then...

Chapter OSM-L: State Nets Reservation Clerk includes... when Ready new new reservation then > enter Waiting for Form; end; when Waiting for Form cancel then end; when Waiting for form filled then > exception > enter Error Detected; end; when Error Detected then > enter Waiting for Form; end; when Ready new thread if << later than 6:00 pm and Guest not registered and someone else wants room >> then > end; end;

Chapter OSM-L: Updates 1. Add and remove. 2. Assignment Statements. add Room remove Guest(x) where Guest(x) has GuestNr(111) add Guest(x) has reservation on ArrivalDate(10 May) for Room(y) where Room(y) has RoomNr(1) RoomNr(1).Name := Clinton RoomNr(5).Name := GuestNr(111).Name RoomNr(5) := RoomNr(5)+1

Chapter OSM-L: Interactions tell Guest (“Repair done”, Room#) from Proprietor to Reservation Clerk (“The repair you requested is done.”) from Reservation Clerk to Guest(x) where > new reservation to Reservation Clerk (“Please fill in the form”, Form) -> (Form) from Reservation Clerk Note: In context, neither from nor to is needed.

Chapter OSM-L: Control Structures

Chapter OSM-L: Parameters and Local Variables

Chapter Functional Specification Elucidate and answer questions (inherent in high-level natural language statements) Tunable formalism lets us to choose what to formalize and how much to formalize. Efficiency considerations need not concern us (until later, during design). Systematic approach to specification –identify informal components (triggers, actions, constraints, interactions) needing formalization and formalize them –use rapid prototyping (state nets are “executable”)

Chapter Sample Unanswered Questions What information is on the form? What does it mean for the form to be not OK? What information, besides the information on the form, do we need to make a reservation? How do we get this other information? Should we enforce the soft real-time constraint? What information do we return to the person?

Chapter Sample Formalization Notes: 1. There are more complex formalizations. 2. Some components are still not fully formal (get available rooms, make reservation, get NextGuestNr).

Chapter Interaction Formalization GuestNr Updator [1] get nextGuestNr() -> (nr: GuestNr) then nr := nextGuestNr; nextGuestNr := nextGuestNr+1; end; Reservation Maker [1] make reservation (g: GuestNr, n: Name, s: StreetNr, c: City, a: ArrivalDate, d: NrDays, r: RoomNr) then newGuest: Guest; add Guest(newGuest); add Guest(newGuest) has GuestNr(g); add Guest(newGuest) with Name(n) lives on StreetNr(s) in City(c)); add Guest(newGuest) has reservation for Room(x) on ArrivalDate(a) for NrDays(d) where Room(x) has RoomNr(r); end;

Chapter Form Interface: make reservation (add) Guest _______ (new) GuestNr _______ (new)Name _______ StreetNr _______City _______ ArrivalDate _______NrDays _______ Room(x) _______ (connect only) RoomNr(y) _______ (connect only) [ Room(x) has RoomNr(y) ]

Chapter Form Interface: get avaliable rooms (input) ArrivalDate(a) _______NrDays(d) _______ (output) AvailableRooms(x) [ not( exists y exists z exists w exists v ( Room(y) has RoomNr(x) and Guest(z) has reservation for Room(y) on ArrivalDate(w) for NrDays(v) and ((w <= a and a < w+v) or (a < w and w < a+d))) ]

Chapter Form Interface: cancel reservation (input) GuestNr _______ (remove) Guest GuestNr (keep) Room

Chapter Form Interface: change address (input) GuestNr _______ (modify) StreetNr _______ City _______