software engineering and scientific computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03modkm... ·...

47
Institute of Computer Science Im Neuenheimer Feld 326 69120 Heidelberg, Germany http://se.ifi.uni-heidelberg.de [email protected] Barbara Paech, Hanna Valtokari RUPRECHT-KARLS-UNIVERSITÄT HEIDELBERG Software Engineering and Scientific Computing

Upload: others

Post on 30-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Institute of Computer ScienceIm Neuenheimer Feld 32669120 Heidelberg, Germanyhttp://[email protected]

Barbara Paech, Hanna Valtokari

RUPRECHT-KARLS-UNIVERSITÄT HEIDELBERG

Software Engineering and Scientific Computing

Page 2: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 2© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Schedule Wednesday

9:00 ModelingKnowledge Management

10:30 Break11:00 Process models

Scientific Software Engineering12:00 Lunch13:00Incl. a short

break

Tools, ExercisesBranches and Tagging in Subversion IDEWrap-Up, Feedback

16.00 End

Page 3: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 3© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Development

•Context

•RequirementsEngineering

•Architecture

•Design

•Implementation

•Version management

Quality management

•Product(Testing,Inspection,Metrics)

•Process(Metrics,Improvement)

Evolution

•Enhance-ment

•Re-use

•Re-engineering

•Change management

Project

management

•Team

•cost

•schedule

•Risks

•Customer/ Contractor

DocumentationKnowledge management

In this course: Programming in a small team

Page 4: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 4© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Programming in a small teamWhat isRon doing?

I want to changeGinnys code

I want to checkHarrys changes

I want to explainmy ideas to Hermione

Version management,Build management

Quality assuranceTesting

Project managementIssue Tracking

ModelingKnowledge Management

Page 5: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 5© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Documentation,Modeling

Page 6: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 6© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Documentation

Customer requirements

Problemdescription Contract

Software specification

Architecture definition

Subsystem specification

Component specification

Code

AcceptanceTestplan

Usage testplan

System-Test plan

Integration Test plan

ComponentTest plan

RequirementsEngineering

Context

Architecture

Design

Implementation

Page 7: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 7© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Documents needed for Communication

Important if• Long-time use

of the SW• System complex• Many project

participants• Decisions have

legal relevance

Software documents typically text and models

Page 8: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 8© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Typical Document Structure

1. Introduction1.1 Purpose

Who has created the document how?Who should read the document why??Whoy has to adhere to the content?

1.2 Executive Summary Main content

1.3 Definitions and AbbreviationsIncluding glossary

1.4 References, Standards and Directives1.5 Overview

Content and Structure of the document

2. – X. Main Content

X+1. ConclusionX+2. Appendices

Page 9: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 9© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Example Requirements Document

2. Product Context2.1 Purpose of the Product

Business goals2.2 Stakeholder

Everyone who is participating in, interested in, affected by the product

2.3 Context ProcessesBusiness processes which involve

the product

3. System Requirements3.1 Main Features3.2 Architectural constraints3.3 Functional requirements

Use Cases, system functions, GUI3.4 Non-functional requirements

4. Project requirements4.1. Assumptions and

Dependencies (incl. Risks)4.2. Product Acceptance

Page 10: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 10© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

How much and how much detail?

Depends on the risk, if the readers of the documents do not find the necessary information

… if it is difficult for the readers to ask the authors personally• E.g. distributed development

… if there is a high risk involved when the software has bugs• E.g. life-critical software

… if there is a high probability of later changes• E.g. context changes (new business processes)

Page 11: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 11© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Good Documents should be …

…Understandable for all readers• Non-ambiguous, complete, consistent

…Understandable for all readers relying on the information, e.g. for requirements documents• Customer:

- Correct: are these really the customer requirements?• Requirements engineering: assess progress, ensure consistent

change- Prioritized, traceable, changeable?

• Developer: - Realizable?

• Tester: - Can test cases be derived?

Page 12: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 12© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Characteristics of a model

A model is essentially a representation of an original, which is reduced in size or abstracts from details[Stachowiak 73]

A model is a system abstraction with the purpose to support thinking about the system (leaving out details) [Brügge 00].

3 important model characteristics• mapping (there is an original)• reduction (original is not represented completely)• pragmatic (model should be used instead of the original within in a

specific context, purpose)

Note: model can be pre-scriptive or de-scriptive

Page 13: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 13© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Example model

Model 3Model 1

Model 2

Page 14: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 14© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Notation (Language) for a model

Everything you need to know to create and use models Syntax

• Symbols allowed • Abstract Syntax (main concepts)• Well-formedness conditions

Semantic• How to interpret the model

Pragmatics (usage methodology)• Techniques for analysis (e.g. type checking, consistency checks)• Techniques for simulation• Techniques for transformation (e.g. Refactoring)• Techniques for generation

Page 15: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 15© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Models in software development

Context,Usage,System

System documentation

Is part of

ModelAbstraction

Interpre-tation

RequirementsArchitecture

Implementation

Views

Communi-cation

Analysissupports

Page 16: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 16© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

SA = Structured Analysis ER = Entity-RelationshipSD = Structured Design OMT = Object Modeling TechniqueSSADM = Structured Systems Analysis and Design Method

1960 1970 1980 1990 2000 2010

Function models

Data models

State models

Interaction models

Combinations Object orientedModels

SA/SD SSADMOMT

UML +Unified Process

ER-Modelle

Statecharts(Harel)

Modeling techniques[Hussmann]

AgileMethds

Page 17: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 17© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Rat

iona

le

Modeling

TextActivity Diagram

Structured Text, Use CaseEntity-Relationship-Diagram

Deployment Diagram, Component diagram

Class diagram, Object diagram,Interaction diagram, state diagram

Programming language

RequirementsEngineering

Context

Architecture

Design

Implementation

Page 18: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 18© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Unified Modeling Language (UML)

Since 1997 De-Facto-Standard in industry (www.uml.org) Mainly for object-oriented development defines

• Structure diagrams (System statics)• Behaviour diagrams (System dynamics)

Page 19: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 19© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Structure diagrams UML

Design• Class diagram• Object diagram (complex situations)• Package diagram (sets of classes)

Architecture• Composition diagram (internal and external interface)• (logical) component diagrams• Deployment diagram (physical components distributed)

Page 20: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 20© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Behaviour diagrams UML

Processes• Use Case Diagrams (overview of system functionsality)• Activity diagrams (sequences of activities)• State diagrams (sequences of states)

Interaction• Sequence diagram (sequences of messages)• Communication diagrams (focus on one component)• Timing diagrams (Communication between automata)• Interaction overview diagram

Page 21: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 21© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Example class diagram

Room{abstract}room no.capacity

Book(){abstract}expertise:: String

number: int

Professor

Lecturername: : String

title: : Titelteaching assignment

DefineCourse()

Lecture hall

book()

coursenameECTSSWS

DefineLecturer()

location 1

0..*

Single markmark

Total markmark

1..*

nameyear

enrollmentnumber: int

Student

0..*1

1

0..*

defines0..*

1

parti-cipatesin

3..*

0..*

for

for

Page 22: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 22© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Goal structureSystem

Interaction

Role

Goal

has

Service

Data

Actor

Activityaccesses

Messageperforms

sends,receives

State Process

Encap-sulates

has knows

Encap-sulates

isPartner

of

System concepts

Page 23: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 23© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Modeling technique focus

Data /State

StructureChanges

Activity /Process

StructueSequences

Service StructureBehaviour

Goal StructureRole Definition

Control state changes

Message /Interaction

CommunicationstructureSequences

Entity/Relationship diagramState diagramData flow diagramAktivity diagram, Petri net(Use case diagramm)State diagramGoal structure diagramClass diagramState diagram

Use Case TextObject modelSequence, Communication diagr.-

Page 24: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 24© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

What documents do you create or use? What documents could you create or use?

What modeling techniques do you use What modeling techniques could you use?

Page 25: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 25© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Literature

Ch. Rupp, S. Queins, B. Zengler, „UML 2 glasklar“, Hanser Verlag 2007

Page 26: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 26© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

KnowledgeManagement

Page 27: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 27© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Motivation Knowledge Management

Documents mostly contain the final decision Discarded options and criteria are not documented => Decisions

• Do not reflect all important criteria• Are not convincing for others• Get overthrown (and dead ends are entered again)

happyWhy this one ?

Page 28: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 28© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Software Engineering Knowledge

Knowledge of the System Knowledge on the process (Roles, Activities, Dokuments)

Product know-ledge

Content:Specification, Design, Code, Test plan, etcRationale: Product Goals,Criteria, Options, Assessments

Content:Project plan, Cost plan, Tasks, GuidelinesRationale: Project goals, Risk assessment, Criteria, Options

Organi-SationalKnow-ledge

Content:Domain model, System architecture, Design patternRationale: on the level of generalized models (e.g. Forces for patterns)

Content:Process model, Best Practices, ExperiencesRationale: on the level of generalized models (e.g. sucess factors for best practices)

Page 29: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 29© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Which knowledge do you capture? Which knowledge could you capture?

Page 30: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 30© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Processmodels

Page 31: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 31© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

What to do when?

Waterfall model Evolutionary development V-model Rational Unified Process Agile methods

• XP• Scrum• Test driven development

Page 32: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 32© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Waterfall model

RequirementsAnalysis

Implementation(Coding)

Testing

FunctionalSpecification

Design

Simple, but• Tangible product too late (too much

paper)• Quality assurance too late

Page 33: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 33© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Evolution / Iteration / Increment

Core Idea: early validation of requirements

But: Often difficult to manage especially if• No stable architecture• No general plan

ValidationOf requ.

Operational use

Defined stages

Operational use of parts

RapidPrototyping

Through prototype

Evolutionary Continue with prototype

Iterative Define Iterations (comprise implementation of parts of requ.)

Incremental Step-wise development of a core system

Page 34: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 34© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

V-Model

Quelle: A. Spillner: „Prozess-Modelle für die Softwareentwicklung“, Vortragsreihe im Rahmen der Wittheit zu Bremen, "Forschung an der Hochschule Bremen", 12.12.2001, http://www.fbe.hs-bremen.de/spillner/Wittheit/Wittheit.pdf

Core idea:early qualityassurance but

• Does not reflect evolution

Page 35: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 35© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Rational Unified Process

[http://www-01.ibm.com/software/awdtools/rup/]

But: often too muchpaper work,to little flexibility

Page 36: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 36© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Extreme Programming Principles1. Fast Feedback

• The learning process depends on the time between the activities.

2. Straightforward Thinking• Simple solutions are often sufficient

3. Incremental changes• Do not change everything at once, but instead in

small steps4. Embrace change

• Do not fear changes – it induces more costs to postpone changes

5. Quality focus• Quality supports the flexibility to react to

changes

AgileMethod

DifficultFor bigprojects

Page 37: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 37© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

XP Practices

ProgrammingStandards

CommonOwnership

40 hour weekContinuous Integration

Metaphor

Simple Design

Pair Programming

Unit Test

Refactoring

AcceptanceTest

PlanningGame

Short Increments

On-SiteCustomer

Development life-cycle:

Project life-cycle:Supporint Practices:

Page 38: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 38© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Scrum

Estimation,Prioritization

User stories Analysis: WHAT

Design:HOW

Implementation,Evaluation

Metrics, experiences

[Gloger]

Page 39: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 39© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Scrum ideas

Change Management, Focus on Team Main idea:

• Develop software in sprints• Daily meetings: Daily Scrum• Team is responsible for planning and results

Roles:• Product Owner (Customer, User, Management)

- Vision, Prioritization• Team• ScrumMaster (not Project manager!)

- Supports Team- Moderates between Product-Owner and Team

[Gloger]

Page 40: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 40© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Scrum Key Practices Sprint planning meeting held at the beginning of each iteration

• Analyze and prioritize current product backlog • Select overall goal for sprint , Decide how to achieve the goal (design) • Create a sprint backlog from the product backlog (more about this below) • Estimate backlog in hours

- Nothing should be longer than a couple of working days - Anything that is should be broken into smaller testable/deliverable chunks

Daily scrum meeting • Every morning, 15 minutes long, standing up (to make sure it stays 15 minutes long) • Everyone says:

- What they did yesterday , What they are going to do today , What stands in their way • Not a status update, but rather making commitments to colleagues

Sprint review held at the end of the iteration • Team presents what it accomplished

- Demo, not slides , And yes, everything can be demo'd Sprint retrospective also held at the end of the iteration

• What do we want to start doing? • What do we want to stop doing? • What do we want to keep doing?

[http://software-carpentry.org/]

Page 41: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 41© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Test driven development

Main idea: • write test cases first• continuous testing

Page 42: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 42© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Which process model do you use? Which process model could you use?

Page 43: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 43© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

ScientificSoftwareengineering

Page 44: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 44© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Kinds of scientific software

Scientific workflow• Software to automate a process of performing a big experiment or

data analysis• Describe the structure of the process (workflow)• Support the semi-automatic execution (workflow management)

High performance computing• Complex simulation on parallel computers

Framework, library • Code from which algorithms for a specific problem can be

created/adapted

Page 45: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 45© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Problem sources

Page 46: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 46© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Quality assurance for scientific software

1. Check Code• Coverage• Use known test oracles

2. Verify Algorithm• Check accuracy of the result• Often grid convergence

testing• Invariants

3. Scientific Validation• Compare results with

experiment results

Page 47: Software Engineering and Scientific Computingse.ifi.uni-heidelberg.de/fileadmin/pdf/03ModKM... · •Design •Implementation •Version management. Quality management •Product

Barbara Paech, Hanna Valtokari 47© 2010 Institut für Informatik, Ruprecht-Karls-Universität Heidelberg

Vorlesung – SE and SC – SS 2010/11

Conclusion

Dare to do some steps in Software Engineering• You can only judge their value, if you tried some out

Talk to other people about it• You can learn a lot from your colleagues (in other groups)