TEST DRIVEN DEVELOPMENT VS DESIGN BY CONTRACT

Size: px
Start display at page:

Download "TEST DRIVEN DEVELOPMENT VS DESIGN BY CONTRACT"

Transcription

1 TEST DRIVEN DEVELOPMENT VS DESIGN BY CONTRACT prof. Carlo Bellettini

2 Perhaps it is not a so silly question...

3 SUMMARY Simple presentation of Demo of The comparison between e

4 make the code simpler, nice to see, you have to be proud of your code :-D MANTRA

5 SOME INFO the name is misleading some one suggested to use Instead of Test Driven Development someone suggested to call it Behavioral Driven Development The main goal is a design goal... not a verification goal There are complex interaction with other extreme Programming practices

6 REFACTORING another way to exercise is to use some calisthenics rule... The code is simple enough when it: 0. Runs all the tests 1. Expresses every idea that we need to express 2. Contains no duplication 3. Has the minimum number of classes and functions (In this order)

7 HOW TO CHECK IT? The classical suggested way is: exercise yourself with a Kata

8 BOWLING KATA The game consists of 10 frames as shown above. In each frame the player has two opportunities to knock down 10 pins. The score for the frame is the total number of pins knocked down, plus bonuses for strikes and spares. A spare is when the player knocks down all 10 pins in two tries. The bonus for that frame is the number of pins knocked down by the next roll. So in frame 3 above, the score is 10 (the total number knocked down) plus a bonus of 5 (the number of pins knocked down on the next roll.) A strike is when the player knocks down all 10 pins on his first try. The bonus for that frame is the value of the next two balls rolled. In the tenth frame a player who rolls a spare or strike is allowed to roll the extra balls to complete the frame. However no more than three balls can be rolled in tenth frame.

9 LET S START THE DEMO

10 GENERAL MISUNDERSTANDINGS (IN COMPARISON TOO) but we saw in the previous lessons that this is not the intention of Meyer... it was the childhood approach is often viewed as using assertion or defensive programming, i.e., testing the contract at run-time When you write code the way, you get the code and its unit-tests at the same time

11 SOME COMMON POINTS the compiler help us to check for syntax & semantics of the language, and by type checking with syntax of the application. e try yo give an help in checking the semantics of the application It s all about specifying the desired behavior and using some sort of automation to check that the specification is being satisfied Both concepts want to improve software quality by providing a set of conceptual building blocks that allow you to prevent bugs before making them. DbC and are about code-based specification

12 DESIGN AS A SIDE EFFECT Moreover contracts lead to components with very few dependencies (promoting the SRP) since it s difficult to write contracts for components with many responsibilities. drives the API design as you go with your tests. [...] This kind of specification is functional and example-driven

13 AND TESTING

14 AND TESTING is not testing it is a design technique

15 AND TESTING is not testing it is a design technique is bad testing the common argument used to demonstrate it is to say that it does guarantee no coverage criteria

16 AND TESTING is not testing it is a design technique is bad testing the common argument used to demonstrate it is to say that it does guarantee no coverage criteria What kind of testing is? black-box or white-box?

17 WHAT IS EASIER? In my mind is more "inductive". You start with examples (test cases) and your code embodies the general solution to those examples. seems more "deductive", after gathering requirements you determine object behavior and contracts. You then code the specific implementation of those contracts. Writing contracts is somewhat difficult, more so than tests that are concrete examples of behavior, this may be part of the reason is more popular than. [ is easier to write and to maintain because no special test cases need to be specified, just conditions for method parameters, expected results and state invariant that must be preserved [

18 I think there is overlap between DbC and, however, I don't think there is duplicated work: introducing DbC will probably result in a reduction of test cases. Let me explain. In, tests aren't really tests. They are behavioral specifications. However, they are also design tools: by writing the test first, you use the external API of your object under test that you haven't actually written yet in the same way that a user would. That way, you design the API in a way that makes sense to a user, and not in the way that makes it easiest for you to implement. Something like queue.full? instead of queue.num_entries == queue.size. This second part cannot be replaced by Contracts. The first part can be partially replaced by contracts, at least for unit tests. tests serve as specifications of behavior, both to other developers (unit tests) and domain experts (acceptance tests). Contracts also specify behavior, to other developers, to domain experts, but also to the compiler and the runtime library. But contracts have fixed granularity: you have method pre- and postconditions, object invariants, module contracts and so on. Maybe loop variants and invariants. Unit tests however, test units of behavior. Those might be smaller than a method or consist of multiple methods. That's not something you can do with contracts. And for the "big picture" you still need integration tests, functional tests and acceptance tests. And there is another important part of that DbC doesn't cover: the middle D. In, tests drive your development process: you never write a single line of implementation code unless you have a failing test, you never write a single line of test code unless your tests all pass, you only write the minimal amount of implementation code to make the tests pass, you only write the minimal amount of test code to produce a failing test. In conclusion: use tests to design the "flow", the "feel" of the API. Use contracts to design the, well, contract of the API. Use tests to provide the "rhythm" for the development process. Something like this: 1. Write an acceptance test for a feature 2. Write a unit test for a unit that implements a part of that feature 3. Using the method signature you designed in step 2, write the method prototype 4. Add the postcondition 5. Add the precondition 6. Implement the method body 7. If the acceptance test passes, goto 1, otherwise goto 2 If you want to know what Bertrand Meyer, the inventor of Design by Contract, thinks about combining and DbC, there is a nice paper by his group, called Contract-Driven Design = Test-Driven Development - Writing Test Cases. The basic premise is that contracts provide an abstract representation of all possible cases, whereas test cases only test specific cases. Therefore, a suitable test harness can be automatically generated from the contracts.

19 HOW TO ADD CONTRACTS Contracts extend the definition of a code element, but how? language level (Eiffel) execution framework level (Code Contract in.net) library level annotation in java (c4j) aspect orientation (Contract4J)

20 The first big problem putting down this lesson has been that I did find no dilbert s comics on the argument... problems with real world contracts and in the software world so, this is not referring to design by contract, but with real world2 contracts, but I think that the metaphor could be used in both ways... so... the long time and effort due in understanding and writing a usefull and approved contract is a problem in dbc approach too

21 REFERENCES the two links that express better my ideas code-contracts/comparison-of-dbc-and-tdd-part-1 interesting exposition

22 PROBABLY INTERESTING READING... Contract Driven Development =Test Driven Development Writing Test Cases [

23

24

25

26

27 Design?

28 Design?

29 Design?

30

31

32

33 Formal verification?

34 Formal verification?

35 Formal verification?

36 Formal verification? Support for evolution of the software?

37 Formal verification? Support for evolution of the software?

38 Formal verification? Support for evolution of the software?

39 Formal verification? Support for evolution of the software? - short iteration, continuos integration?

40 Formal verification? Support for evolution of the software? - short iteration, continuos integration?

41 Formal verification? Support for evolution of the software? - short iteration, continuos integration?

42 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change?

43 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change?

44 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change?

45 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance?

46 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance?

47 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance?

48 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers

49 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers

50 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers

51 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

52 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

53 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

54 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

55 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

56 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

57 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

58 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

59 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

60 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

61 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

62 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

63 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

64 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

65 Formal verification? Support for evolution of the software? - short iteration, continuos integration? - design for change? - inheritance? comunication towards developers comunication towards compiler

66 TOGETHER? This is a common results for example in comparison different verification techniques. METTERE FIGURA TESTING, INSPECTION... Redundancy If there is no inclusion relation, it makes sense to use both.

216 SENG%403% %Software%Development%in%Teams%&%Organizations. Benefits

216 SENG%403% %Software%Development%in%Teams%&%Organizations. Benefits Software%Development%in%Teams%&%Organizations Test>Driven%Design% (Development) Test>Driven%Development A%development%technique%wherein%you%test%your% code%before%you%even%write%it. Three%Laws%of%TDD:

More information

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software? Software engineering Facts CSC 4181 - Compiler Construction Software Engineering Topics Fact: The economies of ALL developed nations are dependent on software. Fact: More and more systems are software

More information

Agile Manifesto & XP

Agile Manifesto & XP Agile Manifesto & XP Chapter 3.1-3.3 CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville. Slides 8 18-06-10 1 Topics 1) What is Agile trying to do? 2) How to choose plan-driven

More information

Implementation & Testing Plan. CS 307: Software Engineering Pascal Meunier

Implementation & Testing Plan. CS 307: Software Engineering Pascal Meunier Implementation & Testing Plan CS 307: Software Engineering Pascal Meunier Why An Implementation Plan If you don't think about how you're going to do it, it's likely going to be: Haphazard Unmanageable

More information

Agile Manifesto Principles

Agile Manifesto Principles Agile Manifesto Principles Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes

More information

A Brief Tour of Responsibility- Driven Design in Rebecca Wirfs-Brock

A Brief Tour of Responsibility- Driven Design in Rebecca Wirfs-Brock A Brief Tour of Responsibility- Driven Design in 2004 Rebecca Wirfs-Brock rebecca@wirfs-brock.com 1 What Is Responsibility-Driven Design? A way to design software that emphasizes behavioral modeling of

More information

Mike Vincent. mvasoftware.net

Mike Vincent. mvasoftware.net Scrum and ALM Coach Over 30 years as software developer and architect Marketing director, construction project manager and structural engineer previously Microsoft MVP - Visual Studio ALM Professional

More information

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development Agile Software Development T-110.6130 Systems Engineering in Data Communications Software P, Aalto University Agile software development Structured and disciplined, fast-paced Iterative and Incremental

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 Friday 30 th September 2016 - Morning Answer any THREE questions

More information

Welcome to this IBM podcast, Agile in the. Enterprise: Yes You Can. I'm Kimberly Gist with IBM. If

Welcome to this IBM podcast, Agile in the. Enterprise: Yes You Can. I'm Kimberly Gist with IBM. If IBM Podcast [ MUSIC ] Welcome to this IBM podcast, Agile in the Enterprise: Yes You Can. I'm Kimberly Gist with IBM. If you love the idea of applying Agile practices in your large enterprise but think

More information

Systematic Testing#1. (adapted from lecture notes of the CSCI 3060U - Software Quality Assurance unit, J.S. Bradbury, J.R.

Systematic Testing#1. (adapted from lecture notes of the CSCI 3060U - Software Quality Assurance unit, J.S. Bradbury, J.R. Systematic Testing#1 (adapted from lecture notes of the CSCI 3060U - Software Quality Assurance unit, J.S. Bradbury, J.R. Cordy, 2018) Nuno Pombo, Qualidade de Software, 2018/19 1 2 Introduction to Systematic

More information

HUMAN RELATIONS: A JOB ORIENTED APPROACH BY ANDREW J. DUBRIN DOWNLOAD EBOOK : HUMAN RELATIONS: A JOB ORIENTED APPROACH BY ANDREW J.

HUMAN RELATIONS: A JOB ORIENTED APPROACH BY ANDREW J. DUBRIN DOWNLOAD EBOOK : HUMAN RELATIONS: A JOB ORIENTED APPROACH BY ANDREW J. HUMAN RELATIONS: A JOB ORIENTED APPROACH BY ANDREW J. DUBRIN DOWNLOAD EBOOK : HUMAN RELATIONS: A JOB ORIENTED APPROACH BY Click link bellow and free register to download ebook: HUMAN RELATIONS: A JOB ORIENTED

More information

Implementation Methodology

Implementation Methodology Implementation Methodology Contents Introduction Challenges in large implementation projects 3 What we suggest to solve it? 3 How is it different? 3 Methodology Key concepts 4 Phases 6 Business Need Analysis

More information

Why We Need Architects (and Architecture) on Agile Projects

Why We Need Architects (and Architecture) on Agile Projects Why We Need Architects (and Architecture) on Agile Projects Rebecca Wirfs-Brock rebecca@wirfs-brock.com Twitter: @rebeccawb www.wirfs-brock.com 2015 Wirfs-Brock Associates Three Questions??? What is the

More information

Requirements Verification and Validation

Requirements Verification and Validation SEG3101 (Fall 2010) Requirements Verification and Validation SE502: Software Requirements Engineering 1 Table of Contents Introduction to Requirements Verification and Validation Requirements Verification

More information

Formal Techniques in Large-Scale Software Engineering

Formal Techniques in Large-Scale Software Engineering Formal Techniques in Large-Scale Software Engineering Mathai Joseph Tata Research Development and Design Centre Tata Consultancy Services 54B Hadapsar Industrial Estate Pune 411 013 India Draft of Paper

More information

HOW YOUR CAREER BACKGROUND CAN HELP YOU BECOME A BUSINESS ANALYST

HOW YOUR CAREER BACKGROUND CAN HELP YOU BECOME A BUSINESS ANALYST By Laura Brandenburg Lesson Objective: After completing this lesson, you ll be able to identify strengths from your career background that will directly support your transition into business analysis.

More information

Bugs are costly... Kinds of Quality Assurance

Bugs are costly... Kinds of Quality Assurance Bugs are costly... 1. Types of bugs (What type of bugs have you had in the past?) a. Race conditions and deadlocks b. Library misuse c. Logical errors (off by one, null, buffer overflow) d. Usability e.

More information

Welcome to this IBM podcast. What is product. line engineering? I'm Angelique Matheny with IBM. It's not

Welcome to this IBM podcast. What is product. line engineering? I'm Angelique Matheny with IBM. It's not IBM Podcast [ MUSIC ] MATHENY: Welcome to this IBM podcast. What is product line engineering? I'm Angelique Matheny with IBM. It's not easy to build a smarter product. Now try to build more than one at

More information

Software Engineering Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur.

Software Engineering Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur. Software Engineering Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 14 Scrum Welcome to this lecture. Till now we had looked at some introductory

More information

Requirements Analysis. Overview

Requirements Analysis. Overview Requirements Analysis Overview What is requirement? Classification of requirements Iterative and evolutionary requirements analysis Use Cases Domain models N. Meng, B. Ryder 2 1 Requirements Definition

More information

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects Lifecycle of Software Projects ECE450 Software Engineering II Lifecycle models are useful to compare project management strategies in abstract terms Birds-eye view strategy Detect strengths and weaknesses...

More information

Best Practices for Creating an Open Source Policy. Why Do You Need an Open Source Software Policy? The Process of Writing an Open Source Policy

Best Practices for Creating an Open Source Policy. Why Do You Need an Open Source Software Policy? The Process of Writing an Open Source Policy Current Articles RSS Feed 866-399-6736 Best Practices for Creating an Open Source Policy Posted by Stormy Peters on Wed, Feb 25, 2009 Most companies using open source software know they need an open source

More information

Project Planning & Control Prof. Koshy Varghese Department of Civil Engineering Indian Institute of Technology, Madras

Project Planning & Control Prof. Koshy Varghese Department of Civil Engineering Indian Institute of Technology, Madras Project Planning & Control Prof. Koshy Varghese Department of Civil Engineering Indian Institute of Technology, Madras Lecture 10 Lesson 04 Gantt / Bar Chart History, Representation Progress Monitoring,

More information

Qm 2 A community of consultants helping museums and cultural nonprofits Getting Results

Qm 2 A community of consultants helping museums and cultural nonprofits   Getting Results By John Durel A plan without execution will not succeed. A solution without implementation will not solve the problem. A business that produces nothing of value will not be in business for long. A nonprofit

More information

Software Engineering Part 2

Software Engineering Part 2 CS 0901341 Software Engineering Part 2 In this part, we look at 2.1 Software Process 2.2 Software Process Models 2.3 Tools and Techniques for Processing Modelling As we saw in the previous part, the concept

More information

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software? Software engineering Facts CSC 4181 Compiler Construction Software Engineering Lectures Part 1 Fact: The economies of ALL developed nations are dependent on software. Fact: More and more systems are software

More information

Requirements elicitation: Finding the Voice of the Customer

Requirements elicitation: Finding the Voice of the Customer Requirements elicitation: Finding the Voice of the Customer Establishing customer requirements for a software system Identify sources of user requirements on your project Identify different classes of

More information

Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design

Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design Aron Trauring T++ Technical Skills Training Program CUNY Institute for Software Design & Development (CISDD) New York Software

More information

Software Evolution. Software Evolution. in the textbook. Importance of evolution. Overview of software evolution. 1. Introduction

Software Evolution. Software Evolution. in the textbook. Importance of evolution. Overview of software evolution. 1. Introduction Software Evolution in the textbook Software Evolution!! Chapter 9 (abridged) 1. Introduction Importance and overview 2. Evolution processes (9.1) Change processes for software systems. 3. Software maintenance

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models 1.Determine objectives Cumulative cost Progress

More information

The Ultimate Guide to B2B Customer Support

The Ultimate Guide to B2B Customer Support TeamSupport The Ultimate Guide to B2B Customer Support Hint: It's not the same as B2C! Table of Contents 1. How is B2B Customer Support Different from B2C? 2. The B2B Customer Service Evolution: From Money

More information

SOFTWARE DEVELOPMENT. Process, Models, Methods, Diagrams Software Development Life Cyles. Part - V

SOFTWARE DEVELOPMENT. Process, Models, Methods, Diagrams Software Development Life Cyles. Part - V SOFTWARE DEVELOPMENT Process, Models, Methods, Diagrams Software Development Life Cyles Part - V Extreme Programming (XP) was conceived and developed by Kent Beck to address the specific needs of software

More information

Dilbert Management tips Scott Adams

Dilbert Management tips Scott Adams Dilbert Management tips Scott Adams 1 Dilbert Management tips Scott Adams 2 Dilbert Management tips Scott Adams 3 Dilbert Management tips Scott Adams 4 Dilbert Management tips Scott Adams 5 Dilbert Management

More information

EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999.

EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999. XP XP extreme programming (slides partially from Andrew Black, Ras Bodik, and Dan Klawitter s letures) EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999. What is

More information

Website Content Creation Worksheet

Website Content Creation Worksheet Worksheet: Website Content Creation Let's face it. Coming up with website content can be a daunting task to tackle. Many times it's not that you don't know what to say, it's that you aren't sure exactly

More information

White Paper: Executive Search Firm How to Engage and Utilise Them Successfully. By Simon Fransca Khan of Leading Headhunters Hunter & Chase

White Paper: Executive Search Firm How to Engage and Utilise Them Successfully. By Simon Fransca Khan of Leading Headhunters Hunter & Chase White Paper: Executive Search Firm How to Engage and Utilise Them Successfully. By Simon Fransca Khan of Leading Headhunters Hunter & Chase Introduction Engaging an Executive Search firm or a Headhunter

More information

Requirements Engineering with Use Cases

Requirements Engineering with Use Cases Requirements Engineering with Use Cases Csaba Veres Outline What are use cases? What do they tell us? How can you write them (properly)? What is a use case? A use case specifies the behavior of a system

More information

Contract Interpretation The grievance alleges that a provision of the contract, other than the just cause provision, was violated.

Contract Interpretation The grievance alleges that a provision of the contract, other than the just cause provision, was violated. HANDLING GRIEVANCES 1. What is a Grievance? Grievances are defined under the contract. Be sure to know your timelines for filing a grievance and moving the grievance to the next step, if necessary. Generally,

More information

Establishing a National Computer Security Incident Response Team (CSIRT) Transcript

Establishing a National Computer Security Incident Response Team (CSIRT) Transcript Establishing a National Computer Security Incident Response Team (CSIRT) Transcript Part 1: The Role of a National CSIRT Julia Allen: Welcome to CERT's Podcast Series: Security for Business Leaders. The

More information

Agile Methods. Course "Softwareprozesse" Lutz Prechelt Freie Universität Berlin, Institut für Informatik

Agile Methods. Course Softwareprozesse Lutz Prechelt Freie Universität Berlin, Institut für Informatik Course "Softwareprozesse" Agile Methods Lutz Prechelt Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Goals and priorities in SW development Principles of agile

More information

"DEALING WITH THE MEDIA IN EMERGENCY SITUATIONS"

DEALING WITH THE MEDIA IN EMERGENCY SITUATIONS PRESENTER'S GUIDE "DEALING WITH THE MEDIA IN EMERGENCY SITUATIONS" Training for the OSHA HAZARDOUS WASTE OPERATIONS and EMERGENCY RESPONSE (HAZWOPER) REGULATION Quality Safety and Health Products, for

More information

developer.* The Independent Magazine for Software Professionals Automating Software Development Processes by Tim Kitchens

developer.* The Independent Magazine for Software Professionals Automating Software Development Processes by Tim Kitchens developer.* The Independent Magazine for Software Professionals Automating Software Development Processes by Tim Kitchens Automating repetitive procedures can provide real value to software development

More information

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

Scrum - Introduction. Petri Heiramo. Agile Coach, CST Scrum - Introduction Petri Heiramo Agile Coach, CST Scrum Started in the Harvard BR. The relay race approach to product development may conflict with the goals of maximum speed and flexibility. Instead

More information

CS 5704: Software Engineering

CS 5704: Software Engineering CS 5704: Software Engineering Agile Methodologies Dr. Pardha S. Pyla 1 1 What is wrong with this? System requirements Software requirements Analysis Program design 1. Rigid/heavy weight process 2. Too

More information

The slightest perception of something negative happening can affect an employee s emotional state.

The slightest perception of something negative happening can affect an employee s emotional state. Employee feedback is the core of personal and professional growth. Feedback can help an employee get better at what they do, and surprisingly employees crave feedback. Most managers don t provide enough

More information

Agile Test Plan How to Construct an Agile Test Plan

Agile Test Plan How to Construct an Agile Test Plan Agile Test Plan How to Construct an Agile Test Plan XBOSoft White Paper How to Construct an Agile Test Plan www.xbosoft.com 2 Agile is changing not only the way we develop software but the way we work

More information

Chapter 6: Software Evolution and Reengineering

Chapter 6: Software Evolution and Reengineering Chapter 6: Software Evolution and Reengineering Harald Gall Software Engineering Group www.ifi.unizh.ch/swe/ Universität Zürich Institut für Informatik Ian Sommerville 2004 Software Engineering, 7th edition.

More information

In-House Solution Stack Hack How to create perfect-fit custom solutions that transcend quick fix hacks and become truly scalable

In-House Solution Stack Hack How to create perfect-fit custom solutions that transcend quick fix hacks and become truly scalable Surviving the Marshall DenHartog President DPS Telecom In-House Solution Stack Hack How to create perfect-fit custom solutions that transcend quick fix hacks and become truly scalable 1 What is a Solution

More information

Lesson-22. Cost Analysis-I

Lesson-22. Cost Analysis-I Lesson-22 Cost Analysis-I Introduction to Cost We can look at the business firm from at least two points of view: productivity, inputs, and outputs or outputs and costs. In advanced microeconomics, these

More information

In this video I want to share with you some thoughts about strategic or big picture planning. Thinking long term about some difficult topics that

In this video I want to share with you some thoughts about strategic or big picture planning. Thinking long term about some difficult topics that In this video I want to share with you some thoughts about strategic or big picture planning. Thinking long term about some difficult topics that there may not be complete agreement about among al the

More information

Agile versus? Architecture

Agile versus? Architecture Agile versus? Architecture This presentation is about Software Architecture and its relationship to Agile practices. There is often a kind of tension between Agile Concepts and Architecture concepts. Why

More information

Chapter 9 Software Evolution and Maintenance. Chapter 9 Software evolution

Chapter 9 Software Evolution and Maintenance. Chapter 9 Software evolution Chapter 9 Software Evolution and Maintenance 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance

More information

I Want You To Win This Game!

I Want You To Win This Game! Part 1 I Want You To Win This Game! Today, we are learning a set of thinking tools that will change how we approach the creation of our Digital Product, and our business I believe that most Digital Products

More information

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1 Failure Rate Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1 SOFTWARE (What is Software? Explain characteristics of Software. OR How the software product is differing than

More information

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2. Chapter 2 Objectives What we mean by a process Software development products, processes, and resources Several models of the software development process Tools and techniques for process modeling 2.1 The

More information

(800) Leader s Guide

(800) Leader s Guide www.edgetrainingsystems.com (800) 476 1405 Leader s Guide Copyright 2002 Edge Training Systems, Inc. All Rights Reserved This publication may not be reproduced, stored in a retrieval system, or transmitted

More information

Software Engineering Lecture 5 Agile Software Development

Software Engineering Lecture 5 Agile Software Development Software Engineering Lecture 5 Agile Software Development JJCAO Mostly based on the presentation of Software Engineering, 9ed Exercise Describe the main activities in the software design process and the

More information

Agile Quality Management

Agile Quality Management Agile Quality Management Panagiotis Sfetsos, PhD Assistant Professor, Department of Informatics, Alexander Technological Educational Institution E mail: sfetsos@it.teithe.gr Web Page: http://aetos.it.teithe.gr/~sfetsos/

More information

Welcome to this IBM podcast, Ten Things I Hate. About ALM, Part Two. I'm Angelique Matheny with IBM.

Welcome to this IBM podcast, Ten Things I Hate. About ALM, Part Two. I'm Angelique Matheny with IBM. [ MUSIC ] Welcome to this IBM podcast, Ten Things I Hate About ALM, Part Two. I'm Angelique Matheny with IBM. Software is the invisible thread powering an increasing number of products and services today,

More information

Customer Service Interview Questions

Customer Service Interview Questions Customer Service Interview Questions Did you know? According to the U.S. Department of Labor Statistics, making a bad hiring decision can cost employers 30 percent of the individual's potential earnings

More information

Book Outline. Software Testing and Analysis: Process, Principles, and Techniques

Book Outline. Software Testing and Analysis: Process, Principles, and Techniques Book Outline Software Testing and Analysis: Process, Principles, and Techniques Mauro PezzèandMichalYoung Working Outline as of March 2000 Software test and analysis are essential techniques for producing

More information

Planning Your Success With Jimmy Petruzzi

Planning Your Success With Jimmy Petruzzi Planning Your Success With Jimmy Petruzzi www.nlp-trainingcourses.com Good time management, as we have already hinted at, is largely about good planning and knowing how to set effective priorities. Understanding

More information

John Borys Agile Transformation Coach Accenture Digital

John Borys Agile Transformation Coach Accenture Digital What Gives Agile Its Agility? John Borys Agile Transformation Coach Accenture Digital John s Bio Nineteen Years of Software Development Sixteen Years of Enterprise Java Development Eight years of Agile

More information

Requirements Analysis

Requirements Analysis Requirements Analysis Analysis and Design? Analysis emphasizes an investigation of the problem and requirements, rather than a solution. Analysis = requirements analysis + object analysis. Requirement

More information

ASIC speaks on Improving and Maintaining Audit Quality & The Role of Others

ASIC speaks on Improving and Maintaining Audit Quality & The Role of Others CPA Australia Podcast - Episode 16 - Transcript ASIC speaks on Improving and Maintaining Audit Quality & The Role of Others INTRO: Hello and welcome to the CPA Australia Podcast your source for business,

More information

Writing For Internal Decision Makers

Writing For Internal Decision Makers Writing For Internal Decision Makers Dan Miller Miller Consulting Group The Facts How you write your proposal depends on your audience. Academic proposals are very different from public library proposals.

More information

More than Mobile Forms Halliburton s Implementation of an End to End Solution

More than Mobile Forms Halliburton s Implementation of an End to End Solution CUSTOMER INTERVIEW More than Mobile Forms Halliburton s Implementation of an End to End Solution Hosted by: Mark Scott, VP Marketing, ProntoForms Yamina Hibbard, Global Asset Manager, Halliburton Mike

More information

Software Quality Assurance

Software Quality Assurance Software Quality Assurance Software Testing Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (UM) Software Quality Assurance 2018 1 / 26 Table of Contents 1 Software Development Methodologies 2 Quality

More information

User Stories and Use Cases

User Stories and Use Cases 1/19 User Stories and Use Cases Mikael Svahnberg 1 2017-03-23 1 Mikael.Svahnberg@bth.se 2/19 User Stories User Stories are the currently preferred way in agile of writing requirements. Simpler structure

More information

The Basics of ITIL Help Desk for SMB s

The Basics of ITIL Help Desk for SMB s The Basics of ITIL Help Desk for SMB s This three-step process will provide you the information necessary to understand ITIL, help you write your strategic IT plan and develop the implementation plan for

More information

Before getting into the details of our engagement, I d like to ask, what does your company do?

Before getting into the details of our engagement, I d like to ask, what does your company do? Before getting into the details of our engagement, I d like to ask, what does your company do? We re a multilevel marketing company, with sales of around two-hundred million dollars a year. We deal with

More information

Applicant Tracking Systems: A data-driven guide to making the right choice

Applicant Tracking Systems: A data-driven guide to making the right choice Applicant Tracking Systems: A data-driven guide to making the right choice NOVEMBER 2016 Sponsored by Applicant Tracking Systems: A data-driven guide to making the right choice Today s job market is an

More information

CSC301. Scrum, detailed view of an agile process. CSC301, Winter 2016

CSC301. Scrum, detailed view of an agile process. CSC301, Winter 2016 CSC301 Scrum, detailed view of an agile process CSC301, Winter 2016 Today s Tour - Scrum We will take a tour of Scrum An agile process Well More framework than process Extremely popular in the last 5-10

More information

Led by the Author Attended by a peer group Varying level of formality Knowledge gathering Defect finding

Led by the Author Attended by a peer group Varying level of formality Knowledge gathering Defect finding Technical Review Walkthrough Review Inspection Review Informal Review A Technical Review is a type of peer review, and is considered to be a formal review type, even though no Managers are expected to

More information

Systems Engineering Concept

Systems Engineering Concept Systems Engineering Concept WHITE PAPER February 2017 The Systems Engineering Concept provides practical hands-on methods and tools, that enable companies to meet today s global business challenges through

More information

Career and you: How to think strategically

Career and you: How to think strategically Career and you: How to think strategically Realising you must make a decision You are going to graduate soon... a decision must be made Some may continue to study, but most of you will look for work and

More information

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at www.ijarcs.info A Study of Software Development Life Cycle Process Models

More information

Why Your SIEM Isn t Adding Value And Why It May Not Be The Tool s Fault Co-management applied across the entire security environment

Why Your SIEM Isn t Adding Value And Why It May Not Be The Tool s Fault Co-management applied across the entire security environment Why Your SIEM Isn t Adding Value And Why It May Not Be The Tool s Fault Co-management applied across the entire security environment Best Practices Whitepaper Make Security Possible Table of Contents Living

More information

Ruminations on the paper by Parnas and Clements. COMP2110/2510 Software Design Software Design for SE October 29, 2008

Ruminations on the paper by Parnas and Clements. COMP2110/2510 Software Design Software Design for SE October 29, 2008 Ruminations on the paper by Parnas and Clements COMP2110/2510 Software Design Software Design for SE October 29, 2008 Ideal Real Department of Computer Science The Australian National University 29.1 1

More information

I ot & Microservices A PERFECT

I ot & Microservices A PERFECT I ot & Microservices A PERFECT MATCH @perrynfowler Perryn Fowler is Head of Analytics at Urbanise NOW EVERY BUILDING CAN BE SMART DEMO SENSORS, FIRMWARE, ARDUINOS, HARDWARE IoT What is IoT - a lot of the

More information

Creating a High-Performance Management Environment

Creating a High-Performance Management Environment Creating a High-Performance Management Environment 2008 Executive War College Miami, FL May 13, 2008 Larry Siedlick, CEO Sunrise Medical Laboratories 1 Physician Office Market Share in the New York City

More information

Click here if your download doesn"t start automatically

Click here if your download doesnt start automatically Higher Probability Commodity Trading: A Comprehensive Guide to Commodity Market Analysis, Strategy Development, and Risk Management Techniques Aimed at Favorably Shifting the Odds of Success Click here

More information

The Road from Software Testing to Theorem Proving

The Road from Software Testing to Theorem Proving The Road from Software Testing to Theorem Proving A Short Compendium of my Favorite Software Verification Techniques Frédéric Painchaud DRDC Valcartier / Robustness and Software Analysis Group December

More information

Software Engineering. Lecture 2: The Personal Software Process

Software Engineering. Lecture 2: The Personal Software Process Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March June 2007 Lecture 2: The Personal Software Process PSP: the background CMMI: Capability Maturity Model Integration (originally:

More information

Delivering Software Certainty. Atomic Object, Grand Rapids based software development firm Started in 2001 by Carl Erickson and Bill Bereza

Delivering Software Certainty. Atomic Object, Grand Rapids based software development firm Started in 2001 by Carl Erickson and Bill Bereza Delivering Software Certainty Atomic Object, Grand Rapids based software development firm Started in 2001 by Carl Erickson and Bill Bereza company photo 2008... Owning our own building lets us control

More information

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016 Introduction to Agile Life Cycles CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016 1 Goals Introduction to Agile Life Cycles The Agile Manifesto and Agile Principles Agile Life Cycles

More information

Feature Selections & Change Orders: From Negative To Positive Once & For All

Feature Selections & Change Orders: From Negative To Positive Once & For All Feature Selections & Change Orders: From Negative To Positive Once & For All JANUARY 20, 2016 1:00 2:00 PM Presenter(s): Timothy Faller: Field Training Services/ Falcon Remodeling What It s About: Builders

More information

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Foundations of Software Engineering. Process: Agile Practices Michael Hilton Foundations of Software Engineering Process: Agile Practices Michael Hilton 1 Learning goals Define agile as both a set of iterative process practices and a business approach for aligning customer needs

More information

Chapter 4 Document Driven Approach for Agile Methodology

Chapter 4 Document Driven Approach for Agile Methodology Chapter 4 Document Driven Approach for Agile Methodology In this chapter, 4.1. Introduction 4.2. Documentation Selection Factors 4.3. Minimum Required Documents 4.4. Summary 4.1. Introduction In all, the

More information

10 WAYS TO RECOGNIZE A GOOD AFFILIATE PROGRAM

10 WAYS TO RECOGNIZE A GOOD AFFILIATE PROGRAM 10 WAYS TO RECOGNIZE A GOOD AFFILIATE PROGRAM KIM PHOENIX buyhealthplr.com 10 WAYSTO RECOGNIZEAGOOD AFFILIATE PROGRAM You Can Sell This Report Or Give It Away, But You Can NOT Alter This Report In Any

More information

The Meaningful Hospitality Smart Hiring Guide

The Meaningful Hospitality Smart Hiring Guide The Meaningful Hospitality Smart Hiring Guide This guide will help you make smart hires by teaching you: What to look for in potential employees What questions to ask in an interview How to ensure you

More information

Defining Requirements

Defining Requirements Defining Requirements The scope of any project should represent the minimum amount of work needed to fulfil the customer s, or end user s requirements. Doing more work is wasteful; doing less means the

More information

The analysis and design of a Smalltalk application.

The analysis and design of a Smalltalk application. The analysis and design of a Smalltalk application. The OO A&D Process The Spiral Model: No one will dispute that o-o programming is a different way to develop programs from traditional methods. However,

More information

Chapter 14 Current trends in system development

Chapter 14 Current trends in system development Chapter 14 Current trends in system development Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Trends in System Development Methodologies

More information

ADVANCES IN DOCUMENT MANAGEMENT TECHNOLOGY FOR HUMAN RESOURCES WHITE PAPER

ADVANCES IN DOCUMENT MANAGEMENT TECHNOLOGY FOR HUMAN RESOURCES WHITE PAPER ADVANCES IN DOCUMENT MANAGEMENT TECHNOLOGY FOR HUMAN RESOURCES For Human Resources Executives and their teams, choosing the right document management software solution is a daunting task. Finding the right

More information

Franklin Legacy Fund. Visioning Workshop For Public Distribution. November 2017

Franklin Legacy Fund. Visioning Workshop For Public Distribution. November 2017 Franklin Legacy Fund Visioning Workshop For Public Distribution November 2017 Group Introductions Franklin Legacy Fund Team Introductions Name Title Role in Organizaiton Goals for Visioning Session Personal

More information

Software Testing(TYIT) Software Testing. Who does Testing?

Software Testing(TYIT) Software Testing. Who does Testing? Software Testing(TYIT) Software Testing Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words,

More information