Design time and Run time Chris, Andrea, Martina, Henry, Antonio, Ole, Philippe, Hartmut, Anne, Jeff, Felix, Sebastian, Kurt.

Slides:



Advertisements
Similar presentations
Formal Methods and Testing Goal: software reliability Use software engineering methodologies to develop the code. Use formal methods during code development.
Advertisements

Situation Calculus for Action Descriptions We talked about STRIPS representations for actions. Another common representation is called the Situation Calculus.
Inpainting Assigment – Tips and Hints Outline how to design a good test plan selection of dimensions to test along selection of values for each dimension.
Sponsored by the U.S. Department of Defense © 2005 by Carnegie Mellon University 1 Pittsburgh, PA Dennis Smith, David Carney and Ed Morris DEAS.
CHAPTER NO 2.  Everything in history which has been planned was done in a highly predictable manner  Whatever you do whether launching a new product,
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 19 Confidence Intervals for Proportions.
CS 106 Introduction to Computer Science I 11 / 09 / 2007 Instructor: Michael Eckmann.
David Notkin Autumn 2009 CSE303 Lecture 7 bash today, C tomorrow Quick reprise: debugging, performance What’s homework 2B? (yes, it’s posted) Some looks.
CS 106 Introduction to Computer Science I 03 / 23 / 2007 Instructor: Michael Eckmann.
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
CS 106 Introduction to Computer Science I 03 / 30 / 2007 Instructor: Michael Eckmann.
CS 106 Introduction to Computer Science I 03 / 03 / 2008 Instructor: Michael Eckmann.
1 Psych 5500/6500 The t Test for a Single Group Mean (Part 5): Outliers Fall, 2008.
Runtime alignment system SOFTWARE DESIGN IDEAS Wed 4 th May 2005 P Coe.
Page 1 Copyright © Alexander Allister Shvartsman CSE 6510 (461) Fall 2010 Selected Notes on Fault-Tolerance (12) Alexander A. Shvartsman Computer.
CS 106 Introduction to Computer Science I 10 / 15 / 2007 Instructor: Michael Eckmann.
CS 106 Introduction to Computer Science I 10 / 16 / 2006 Instructor: Michael Eckmann.
Modeling and Simulation
28/08/2015SJF L31 F21SF Software Engineering Foundations ASSUMPTIONS AND TESTING Monica Farrow EM G30 Material available on Vision.
Upstream Prerequisites
1 Testing Concurrent Programs Why Test?  Eliminate bugs?  Software Engineering vs Computer Science perspectives What properties are we testing for? 
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
1 DAN FARRAR SQL ANYWHERE ENGINEERING JUNE 7, 2010 SCHEMA-DRIVEN EXPERIMENT MANAGEMENT DECLARATIVE TESTING WITH “DEXTERITY”
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
A genda for Today What is memory management Source code to execution Address binding Logical and physical address spaces Dynamic loading, dynamic linking,
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Haskell Chapter 1, Part I. Highly Recommended  Learn you a Haskell for Great Good. Miran Lipovaca.
Software Requirements Engineering CSE 305 Lecture-2.
Test-based programming Ask: “What should this software do?” Write a test first “Does this software do X correctly?” Fill in the code, and keep working.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
ICOM 6115: Computer Systems Performance Measurement and Evaluation August 11, 2006.
Recursion. What is recursion? Rules of recursion Mathematical induction The Fibonacci sequence Summary Outline.
Modeling and Simulation Discrete-Event Simulation
Sept 2007 K. Ingram 1 Waterfall Life Cycle An introduction to the Waterfall.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
Introduction to Loops For Loops. Motivation for Using Loops So far, everything we’ve done in MATLAB, you could probably do by hand: Mathematical operations.
1 Design and Integration: Part 3 To prepare for today’s class, visit Cookie Clicker and plan with it for a few minutes:
Memory Hierarchy Adaptivity An Architectural Perspective Alex Veidenbaum AMRM Project sponsored by DARPA/ITO.
LANDESK SOFTWARE CONFIDENTIAL Tips and Tricks with Filters Jenny Lardh.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Experimental Design. Homework Variables Worksheet due Monday. Mystery Powder Lab due Monday.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
CS 106 Introduction to Computer Science I 03 / 02 / 2007 Instructor: Michael Eckmann.
Operating Systems Lecture 4 Deadlock Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of Software Engineering.
Observations so far…. In general… There are two ways to design a software system –Centralized control One “driver” function that contains the entire algorithm.
Ranking of Database Query Results Nitesh Maan, Arujn Saraswat, Nishant Kapoor.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Introduction to Computer Programming - Project 2 Intro to Digital Technology.
The Evolution of “An Experiment on Exit in Duopoly”
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Efficiently Solving Computer Programming Problems Doncho Minkov Telerik Corporation Technical Trainer.
MEMORY MANAGEMENT Operating System. Memory Management Memory management is how the OS makes best use of the memory available to it Remember that the OS.
1. Free Will and Determinism Determinism: given a specified way things are at a time t, the way things go thereafter is fixed as a matter of natural law.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Lecture 5 Page 1 CS 111 Online Process Creation Processes get created (and destroyed) all the time in a typical computer Some by explicit user command.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVIII. Software Testing.
Testing and Debugging PPT By :Dr. R. Mall.
COMPUTATIONAL MODELS.
Process Creation Processes get created (and destroyed) all the time in a typical computer Some by explicit user command Some by invocation from other running.
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Anne Pratoomtong ECE734, Spring2002
Computer Science Testing.
Introduction to Data Structure
Arrays.
On a “Buzzword” Hierarchical Structure
Design Document Review
Presentation transcript:

Design time and Run time Chris, Andrea, Martina, Henry, Antonio, Ole, Philippe, Hartmut, Anne, Jeff, Felix, Sebastian, Kurt

What distinctions between design time and run time? What about systems that design systems? Some designs need to be done prior to run time – The first set of decisions – When you’re setting general requirements, criteria, e.g. for safety – There is always some constraint on the design space that can be specified up front

Paola said: everything that can (must??) be done statically should be done statically. – Maybe change that to “everything that must be done statically should be done statically”. – Things that I think are not going to change vs. things that I think will change – can we distinguish them at design time? – Maybe not – we just can’t anticipate what we’re going to need to adapt. How about: everything that can be done at run time should be done at run time – Ex. Different sorting algorithms are appropriate under different conditions of resources. Design choices can become outmoded. Design choices can get locked in prematurely. Don’t let that happen; you can’t predict the future. This is not just data size dependent; it depends also on system architecture and resources. – In this case you should wait for run time to see what are the characteristics of the system on which you’re running, and then configure the system at run time – Sort of like don’t hardcode; use parameters Do we need design time?

How to completely avoid design? – Invent a universal computing machine that can run an arbitrary program – Oops, someone already did that We don’t know how to write a program that can write an arbitrary program So we can simply write a program to do that – Chris Landauer promised to do this, and will give a demo tomorrow

Design decisions. Choices about what should and should not be variable about runtime. This is an engineering decision that depends on requirements, costs, anticipation of environment(s) in which system might run, etc. Requirements and capabilities. What do I want my system to be able to do? What will the user possibly want the system to be able to do? (Expected runtime knowledge) – E.g. Want to ensure that X happens before Y, or some other constraint Beliefs about the environment in which the system will be situated – What is the corridor/envelope for which I’m designing (I may not know exactly; take your best guess) – What is the range of environments in which I anticipate that my system will find itself (this relates to robustness): workload, user goals, etc. – What is a model of the world in which your system will be situated? – Defining the universe of the things that you can a) control and b) observe (those that are potentially relevant and not unduly costly) What things are good to do at design time?

Maybe design time is slower timescale – Takes time to check/verify/synthesize – Takes time to effect adaptation Ex of what you might specify at design time – This system should sort correctly – it should run efficiently based on the resources available at runtime – It should make use of the best known algorithms (but “best” implies goals, which may not be known until run time)

Runtime adaptation allows you to delay some decisions – good if you’re not sure you know what you want A runtime advantage – the designer doesn’t know all of the goals; – doesn’t know all of the operational costs; – the user may do a lot of the goal specification; – other information may only become available at run time (system architecture, for example) What’s different today? – We used to assume that programs were not long-lived – Human coders more expensive – impact on relative cost of design What’s good about runtime?

What models are most appropriate at design time and run time? – Are any models that are inappropriate for one or the other? – If it takes too long for runtime, then do it at design time – Costly argues more for design time – If I only run a model once, then maybe just design time (throw-away code, or at least you anticipate not running it many times) What connections or shared information might there be (between design and run time)? – Design time goals should be made available to run time. Can check whether goals are being met, or whether assumptions made at design time are met; if not try to adapt or launch a re-design; give design time better model of environment. – Instantiation of design time boundaries/constraints/parameters Need for new formalisms and tools to support the type of design models that are necessary for engineering adaptive systems – How to specify boundaries, constraints, envelopes, requirements/capabilities – Software that augments itself by finding new modules that it can load dynamically; these need metadata that provide hints or models that allow you to predict how well it would serve the requirements Evolution is re-design that happens parallel to runtime – here distinctions between design time and run time blur especially

Note: we didn’t really cover decision making….