Project Management: Inspections and Reviews Formal Specifications

Slides:



Advertisements
Similar presentations
Chapter 4 Quality Assurance in Context
Advertisements

LIFE CYCLE MODELS FORMAL TRANSFORMATION
Static Technique. Static Technique - Review  A way of testing software work products  Program code, requirement spec., design spec.  Test plan, test.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Verification and Validation: A Quick Introduction 1-2 Lectures.
Verification and Validation: A Quick Introduction Authors Massood Towhidnejad Massood Towhidnejad Mike Rowe Mike Rowe David Dampier David Dampier Sponsored.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
15 November Essay 1  Methodologies Points on the spectrum All can adapt to changes Required vs. permitted  Releases vs. iterations  Spool’s.
8 September ProcessWithin the Steps  Put together minimal solution Start with external commitments Introduce internal milestones  Focus on the.
1 Software Testing and Quality Assurance Lecture 2 Software Verification & Validation.
Formal Methods. Importance of high quality software ● Software has increasingly significant in our everyday activities - manages our bank accounts - pays.
SE 555 Software Requirements & Specification Requirements Validation.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
1 Design and Code Inspections to Reduce Errors in Program Development. M.E. Fagan IBM Systems Journal, 1976 Presented by Ankush Varma.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Quality Assurance For Software Engineering && Architecture and Design.
“80% of software projects fail”  Standish Report (1995) Standish Report 16.2% completed on-time and on-budget with all features and functions as initially.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Software Integration and Documenting
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
An Introduction to Formal Methods
CLEANROOM SOFTWARE ENGINEERING.
(from Dr. Diane Pozeksky. “80% of software projects fail” Standish Report (1995) Standish Report 16.2% completed on-time and on-budget with all features.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Instructor: Peter Clarke
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
This chapter is extracted from Sommerville’s slides. Textbook chapter
Formal Methods in Software Engineering
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
18 October Why do we care?  Therac-25 (1985) 6 massive radiation overdoses  Multiple space fiascos (1990s) Ariane V exploded after 40 seconds.
1 Chapter 26 Cleanroom Software Engineering Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.
Formal Methods.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
Project Management Inspections and Reviews 1 February.
Project Management Organization Scheduling 31 January.
Objects First With Java A Practical Introduction Using BlueJ Well-behaved objects 2.1.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Duminda WijesekeraSWSE 623: Introduction1 Introduction to Formal and Semi- formal Methods Based on A Specifier's Introduction to Formal Methods (J. Wing)
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
1 Software Testing and Quality Assurance Motivation and Review of Software Verification & Validation (2)
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
What is a Functional Spec?  Defines what the functionality will be NOT how it will be implemented  Describes features of the software product product's.
Introduction to Formal Methods
Software Engineering (CSI 321)
Software Quality Assurance
Chapter 10 Software Quality Assurance& Test Plan Software Testing
Software Quality Engineering
Verification and Validation Overview
Manfred Huber Based on an earlier presentation by Mike O’Dell, UTA
Software engineering – 1
Verification and Validation
Logical architecture refinement
Software Quality Assurance
Inspection and Review The main objective of an Inspection or a Review is to detect defects. (Not for Giving Alternative Solutions) This activity and procedure.
Department of Computer Science Abdul Wali Khan University Mardan
QA Reviews Lecture # 6.
Software Reviews.
Testing, Inspection, Walkthrough
Activities of Formal Methods
Presentation transcript:

Project Management: Inspections and Reviews Formal Specifications 5 February

Deliverables Design Document Only highest levels Details will be filled in Living document

Reviews and Inspections

Reviews and Inspections Why? Developer can’t correct unseen errors More eyes to catch problems Earlier is cheaper Integration fix typically 3-10 times the cost at design Difference in terms Review implies completed work, often reviewed by someone at a different level Inspection implies peer review of work in progress

Software Inspections Disciplined engineering practice for detecting and correcting defects Introduced at IBM by Fagan in the 1970s More formal than walkthroughs or peer reviews Roles, statistics Used for specs, code, test plans, …

Uses Early detection of errors Identification of excellence indicators Major escapes cost 2-10 times as much; minor 2-4 Identification of excellence indicators Completeness (requirements to code) Correctness (specification to code) Style (consistency) Exit criteria for life cycle phases

Additional Benefits Programmer finds errors and types of errors that he is apt to make immediately Awareness means focus on those types of errors and therefore improved skills Designers get feedback on quality of their designs Using statistical anomalies to recode

Why do inspections work? More eyes Focused activity Structure Timely Measurable criteria for passing and rework Required follow-up

Why Aren’t Inspections Used? Rigorous and formal (requires training) Time consuming 4-5 people over multiple 2 hour sessions 250-500 lines of code per hour 5-10 errors detected per session Boring, low tech Egos

References Fagan, Design and code inspections to reduce errors in program development, IBM Systems Journal (reprinted 99) Porter, Siy and Votta, A Review of Software Inspections, 1995

Will you review or inspect? What? How?

Formal Specifications

Formal Methods and Specifications Mathematically-based techniques for describing system properties Used to show completeness, consistency, unambiguity Able to be used without executing the program (inference systems)

Inference Systems Proving something about the specification not already stated Formal proofs Mechanizable Examples: theorem provers and proof checkers

Users of Specifications Requirements analysis rigor System design Decomposition, interfaces Verification Specific sections Documentation System analysis and evaluation Reference point, uncovering bugs

Properties of Specifications Unambiguous Maps to a single specificand set Consistency Maps to a non-empty specificand set Completeness Not required! Balance between underspecification and overspecification

Examples of Specification Languages Abstract data types Algebras, theories, and programs VDM (Praxis: UK Civil aviation display system CDIS), Z (Oxford and IBM: CICS), Larch (MIT) Concurrent and distributed systems State or event sequences, transitions Hoare’s CSP, Transition axioms, Lamport’s Temporal Logic Programming languages!

References J.M. Wing, A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September 1990. Clarke et al, Formal methods: state of the art and future directions, ACM Computing Surveys, 28(4): 626--643, 1996.