Biological Model Engineering Peter Saffrey, Department of Medicine Cakes Talk Monday, October 20, 2008.

Slides:



Advertisements
Similar presentations
A Method for Validating Software Security Constraints Filaret Ilas Matt Henry CS 527 Dr. O.J. Pilskalns.
Advertisements

Object Oriented Analysis And Design-IT0207 iiI Semester
Software Quality Assurance Plan
Test process essentials Riitta Viitamäki,
Acceptance Testing.
Programming Paradigms and languages
Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th.
Chapter 4 Quality Assurance in Context
LIFE CYCLE MODELS FORMAL TRANSFORMATION
SSA 2013 Software Development Lifecycle (and how to make the best of it) Mono d.o.o.
The Joel Test: 12 Steps to Better Code By Tim Denton.
Professor John Hosking, Dean of Engineering and Computer Science Models, Modelling, MBSE.
Software Construction
Testing: Who 3, What 4, Why 1, When 2, How 5 Lian Yu, Peking U. Michal Young, U. Oregon.
Rational Unified Process
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
Chapter 6: Design of Expert Systems
CS CS 5150 Software Engineering Lecture 5 by Stephen Purpura Matching Process to Risk.
System Design and Analysis
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
Software Testing and Quality Assurance: Introduction and Terminology
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Chapter 1 The Systems Development Environment
Introduction to Systems Analysis and Design Trisha Cummings.
Chapter 8: Problem Solving
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
LESSON 8 Booklet Sections: 12 & 13 Systems Analysis.
Chapter 8: Systems analysis and design
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Laurent Noel.
The Joel Test 12 Steps to Better Code. Readings The Joel Test (by Joel Spolsky) 043.html.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Event Driven Programming
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
Virtis-Opis Beta Testing Todd S. Thompson, PE South Dakota DOT Office of Bridge Design August 3, 2011.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Software Engineering Saeed Akhtar The University of Lahore.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Refactoring as a Lifeline : Lessons Learned from Refactoring Amr Noaman Abdel-Hamid Software Engineering Competence Center ( SECC ) IT Indeustry Development.
Aspect Oriented Security Tim Hollebeek, Ph.D.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
© Chinese University, CSE Dept. Software Engineering / Topic 3: Software Engineering Principles Your Name: _____________________ Computer Science.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
 System Requirement Specification and System Planning.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
The Software Development Process. Contents  Product Components  Software project staff  Software development lifecycle models.
Software Testing.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Topic for Presentaion-2
Chapter 6: Design of Expert Systems
Maintaining software solutions
Applied Software Implementation & Testing
Introduction to Software Testing
Introduction to Systems Analysis and Design
Model Based Testing Venkata Ramana Bandari, Expert Software Engineer
Sharing the good, the bad, the ugly & What can we do about it?
Introduction To software engineering
1.2 System Design Basics.
Software Verification, Validation, and Acceptance Testing
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Requirements Engineering
Presentation transcript:

Biological Model Engineering Peter Saffrey, Department of Medicine Cakes Talk Monday, October 20, 2008

Talk Outline Computing/biology: some patterns Biological modelling –What is it? –How is it done? Can modelling learn from SE? –Theory –Practice Generally; modelling: –How is it similar to software engineering? –How is it different?

Computing/Biology patterns 1 Pattern: “I know a computer can do this but I can’t figure out how to do it” Example microarray to wiggle file : –Csv file 1: id,flag,data Id occurs 3 times Flag indicates whether this data is good or not –Csv file 2: id,chromosome,start,end –We want: chromosome,start,end,normalised_data You can do this in Excel, but it hurts A “known unknown” problem

What for?

Computing/Biology patterns 2 Pattern: –“I have a problem like this …” –… –“oh, you call it that, do you?” For example: –“I have this network of proteins and I’d like to know some properties of it” –… –“Oh, so that’s graph theory?” An “unknown unknown” problem

Biological modelling Specify key parts of system Analyse by simulation/sensitivity analysis/bifurcation analysis Use results to drive experimental work Features of modelling community –Cottage industry –Driven both by biologists and mathematicians –Some standardisation –No process or methodology defined

Illustration What do we want to know? What data do we have? What details shall we include? What modelling paradigm? Most suitable technology? Managing construction? Does it match our existing data? Does it tell us something new? Has the data changed? Are there new questions? RequirementsDesign Implementation Validation Maintenance How do I build my model?

So? Just acknowledging the existence of these stages might improve the process Can tools from software engineering help at each stage? –Requirements engineering –Good design practice –Implementation techniques –…

Coal-Face Software Engineering

12 Steps 1.Do you use source control? 2.Can you make a build in one step? 3.Do you make daily builds? 4.Do you have a bug database? 5.Do you fix bugs before writing new code? 6.Do you have an up-to-date schedule?

12 Steps 7.Do you have a spec? 8.Do programmers have quiet working conditions? 9.Do you use the best tools money can buy? 10.Do you have testers? 11.Do new candidates write code during their interview? 12.Do you do hallway usability testing?

Software and Model Version Control Software Version Control –Works to single set of requirements –Each version an improvement –Looking for a single “best” version Model Version Control –Model base and variety of extensions –Successive versions test different hypotheses –Branching creates combinations of possible versions

Software and Model Version Control

Test implementation Work with XML models Use a base-and-patch approach Each patch: –refers to an Xpath –Specifies an addition, deletion or removal With some restrictions, patches can be applied in any order and combination This worked well for a EGF model –Different sections of pathway –Different versions for each section –Parameter settings

One-step build and Model Usability Nobody makes their models “usable” “My model is too complicated to be used by other people” Is this correct? –Repeatability? –Reusability?

Model “Usability”

Testing Unit tests –Automated –Quick and simple to apply –Catch errors early Would these work in modelling? –Define basic model behaviour –Check changes do not violate these (regression testing) –Use like assertions to validate boundaries –Capture different analysis types (“build in one step”)

Other possibilities Bug tracking –“These parts aren’t right yet” –How would this work with changing models? Configuration management Documentation –Provenance of results –Provenance of model construction

Conclusions Modelling is growing in popularity and acceptance There is little agreement on how to do it Many modelers are not software oriented Software experts could: –Help improve process and efficiency –Find new places to apply their expertise

Software and Modelling Requirements Design Implementation Verification Maintenance SoftwareModelling What should it do? What are the constraints? What do we want to know? What data do we have? What components? How are they connected? Most suitable technology? Managing construction? Does it do what we asked? Does it do what we wanted? How do we keep it working? How do we keep it current? What details are included? What modelling paradigm? Most suitable technology? Managing construction? Does it match our existing data? Does it tell us something new? Has the data changed? Are there new questions?