Lecture 1 Golden Measure and other terms (appropriate for pracs) Lecturer: Simon Winberg Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Formal Methods and Testing Goal: software reliability Use software engineering methodologies to develop the code. Use formal methods during code development.
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
System Integration Verification and Validation
P5, M1, D1.
Lecture 3: Lecturer: Simon Winberg Towards Prac1, Golden Measure, Temporal and Spatial Computing, Benchmarking Attribution-ShareAlike 4.0 International.
Lecturer: Simon Winberg Lecture 18 Amdahl’s Law & YODA Blog & Design Review.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 2.
Verification and Validation: A Quick Introduction 1-2 Lectures.
ISBN Chapter 3 Describing Syntax and Semantics.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
ITEC 451 Network Design and Analysis. 2 You will Learn: (1) Specifying performance requirements Evaluating design alternatives Comparing two or more systems.
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
School of Computing, Dublin Institute of Technology.
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Execution and Reporting Adrian Marshall.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
Describing Syntax and Semantics
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Informatics 43 – June 2, Some Announcements Discussion on Friday – review. Bring questions. 0.5% extra credit for submitting the EEE Course Evaluation.
Introduction to Software Testing
analysis, plug ‘n’ chug, & induction
Data Structures and Programming.  John Edgar2.
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
1 Shawlands Academy Higher Computing Software Development Unit.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
Lecture 14 Reconfigurable Computing Basics Lecturer: Simon Winberg.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
Process Design (Requirements). Recall the Four Steps of Problem Solving * Orient Plan Execute Test These apply to any kind of problem, not just spreadsheet.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Testing E001 Access to Computing: Programming. 2 Introduction This presentation is designed to show you the importance of testing, and how it is used.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
BE-SECBS FISA 2003 November 13th 2003 page 1 DSR/SAMS/BASP IRSN BE SECBS – IRSN assessment Context application of IRSN methodology to the reference case.
Systems Life Cycle. Know the elements of the system that are created Understand the need for thorough testing Be able to describe the different tests.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Anton Krbaťa Ján Budáč  Verification: "Are we building the product right ?„  Validation: "Are we building the right product ?"
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
The Software Development Process
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Lecture 11: Parallel Design Patterns, Where to in Term 2 … Lecturer: Simon Winberg.
Verification & Validation By: Amir Masoud Gharehbaghi
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Introduction to Hardware Verification ECE 598 SV Prof. Shobha Vasudevan.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
CSC-305 Design and Analysis of AlgorithmsBS(CS) -6 Fall-2014CSC-305 Design and Analysis of AlgorithmsBS(CS) -6 Fall-2014 Design and Analysis of Algorithms.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Software Configuration Management (SCM)
Verification and Testing
Verification and Validation Overview
Verification & Validation
Lecture 09:Software Testing
Algorithm Correctness
Unit 1 :Basic Of Software Testing
Dealing with reading assignments
Presentation transcript:

Lecture 1 Golden Measure and other terms (appropriate for pracs) Lecturer: Simon Winberg Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

 Golden measure:  A (usually) sequential solution that you develop as the ‘yard stick’  A solution that may run slowly, isn’t optimized, but you know it gives (numerically speaking) excellent results  E.g., a solution written in OCTAVE or MatLab, verify it is correct using graphs, inspecting values, checking by hand with calculator, etc.

 Sequential / Serial (serial.c)  A non-parallized code solution  Generally, you can call your code solutions parallel.c (or para1.c, para2.c if you have multiple versions)  You can also include some test data (if it isn’t too big, <1Mb), e.g. gold.csv or serial.csv, and paral1.csv

 Speed-up = T p1 /T p2  Where T p1 = Run-time of original (or non-optimized) program  T p2 = Run-time of optimised program  Best practice for measuring speedup:  Run the program more than one, discarding the first result (where the cache, etc. is getting ‘warmed up’)  To be precise should indicate results from when system wasn’t ‘warmed up’* * (which can be simulated by running a whole lot of other things like CounterStrike, Half-Life, maybe some Solitare* for good measure -- but more seriously you could write your own ‘cache cleaning program’)

 Verification  Validation  Testing  Correctness proof These terms are not merely theoretical terms to remember, but relate directly to your project. Not something done in the project (but if you want to, you can experiment with doing a correctness proof if you are keen)

 Two terms you should already know…  Verification  “Are we building the product right?”  Have we made what we understood we wanted to make?  Does the product satisfy its specifications?  Validation  “Are we building the right product?”  Does the product satisfy the users’ requirements  Verification before validation (except in duress)… Sommerville, I. Software Engineering. Addison-Wesley, While it would be nice to be able to validate before verifying, doing so would mean your specifications and design may be wrong in the final version (obviously this sometimes happens in practice due to insufficient time for proper validation)

 The RC engineer (i.e., you) are effectively designing both custom hardware and custom software for the RC platform  Before attempting to make claims about the validity of your system, it’s usually best practice to establish your own (or team’s) confidence in what your system is doing, i.e. be sure that:  The custom hardware working;  The software implementation is doing what it was designed to do; and  The custom software runs reliably on the custom hardware.

 Checking plans, documents, code, requirements and specifications  Is everything that you need there?  Algorithms/functions working properly?  Done during phase interval (e.g., design => implementation)  Activities:  Review meetings, walkthroughs, inspections  Informal demonstrations Focus of project Focus of project

1. Dual processing, producing two result sets 1. One version using PC & simulation only; 2. Other version including RC platform 2. Assume the PC version is the correct one (i.e., the gold measure) 3. Correlate the results to establish correlation coefficients (complex systems may have many different sets of possibly multidimensional data that need to be compared) The correlation coefficients can be used as a kind of ‘confidence factor’

 Testing of the whole product / system  Input: checklist of things to test or list of issues that need to have been provided/fixed  Towards end of project  Activities:  Formal demonstrations  Factory Acceptance Test Focus of project

 Testing  Generally refers to aspects of dynamic validation in which a program is executed and the results analysed  Correctness proofs / formal verification  More a mathematical approach  Exhaustive test => specification guaranteed correct  Formal verification of hardware is especially relevant to RC. Formal methods include:  Model checking / state space exploration  Use of linear temporal logic and computational tree logic  Mathematical proof (e.g. proof by induction)