A Quick Overview of Software Engineering. Paul Klint

Size: px
Start display at page:

Download "A Quick Overview of Software Engineering. Paul Klint"

Transcription

1 A Quick Overview of Software Engineering Paul Klint

2 g n i t o qu r o f s ie ch g o t l u o Ap me D pers so wspa ne 2

3 3

4 4

5 Software Engineering is about... Building large software systems Using state-of-the-art scientific knowledge Using solid engineering practices Dealing with evolving software Controlling complexity Controlling quality 5

6 Societal Relevance All parts of society essentially depend on software: Government (taxes, social security,...) Healthcare Services (banking and insurance companies) Transportation, logistics, telecommunication Entertainment (games, animation)... 6

7 Facts about Software 50% of all software projects costs more than twice the original budget One-third of all projects has a delay of % 80% of all projects fails Failing software costs in the US 56 billion $ per year 60% of all programmers works on maintenance 7

8 Software Engineering has to reconcile The requirements of the stakeholders and users of a system The engineering of the system including designing, building, testing, and maintaining it The process how to organize all the above 8

9 Requirements 9

10 Requirements 10

11 Requirements Interviews with stakeholders User stories and Use cases Mock ups Early prototypes Customer on site 11

12 User Stories Pattern: As a <role>,i want <goal/desire> As a user, I want to search for my customers by their first and last names. As a want made last user closing the application, I to be prompted to save if I have any change in my data since the save. 12

13 Use Case 13

14 Message Sequence Chart 14

15 Mock-ups 15

16 Engineering Software Architecture Software Design Software Construction Software Quality Assessment Software Maintenance 16

17 Software Architecture and Design 17

18 Sagrada Familia Barcelona, Spain,

19 19

20 20

21 21

22 22

23 23

24 Antoni Gaudi,

25 Why is Gaudi's Design Good? Forms inspired by nature Organic integration of parts Each facade a separate theme Unconventional Impressive Note: miniature models were used to study the design 25

26 Johnson Wax Headquarters

27 Fallingwater,271935

28 Robie House

29 Frank Loyd Wright

30 Why are Loyd Wright's Designs Good? Clear lines and forms Simple Design has a perfect fit with the environment Careful consideration how light enters building 30

31 Gasuniegebouw, Groningen, Alberts en Huut, Mooiste gebouw van Nederland, Trouw,

32 What is Software Architecture? The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. The term also refers to documentation of a system's "software architecture." Documenting software architecture facilitates communication between stakeholders, documents early decisions about high-level design, and allows reuse of design components and patterns between projects 32

33 Software Architecture Client-server architecture 33

34 Software Architecture Service Bus 34

35 What is Software Design? Software design is a process of problemsolving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution. It includes low-level component and algorithm implementation issues as well as the architectural view. Source: Wikipedia 35

36 Software Design Design Patterns Algorithm Design Data design Unclear separation between high-level and low-level concerns 36

37 SW Design is a Wicked Problem No definite formulation of the problem No stopping rule: we never reach the solution Solution not true/false but only good/bad. Many acceptable solutions Every solution may lead to other wicked problems Source: Van Vliet, Software Engineering 37

38 Global SW Design Strategies Top-down: start from problem domain Pro: good fit with the requirements, global picture Con: unclear whether you can reach good (efficient) solution at the code level Bottom-up: start from solutions domain Pro: good solution for local problems Con: unclear whether you will eventually satisfy the global requirements YoYo: reconcile these strategies 38

39 YoYo Design Start with global, top-down, design Do bottom-up design of selected parts to verify that detailed design is feasible Integrate with (and change) global design Repeat 39

40 Software Construction Programming Languages Paradigms: imperative OO functional... Approaches: Design Patterns Domain-specific Languages (DSLs) Model-driven Aspect-oriented programming Tools: IDEs, debuggers, test tools, version management,... 40

41 Software Quality Assessment Software complies with requirements and is functionally correct? Non-functional quality aspects: Performance, reliability, security, maintainability, documentation, ease-of-use,... Rule of thumb: the earlier a problem is found, the cheaper you can fix it: Requirements (1x); Post-release (100x) 41

42 Code Review Interactive session, where a developer explains his/her code to colleagues Finds more errors than any other technique! Pair-programming (discussed later) supports this 42

43 The Word bug In relay-based machines little insects could disrupt machine operation Here a moth found in the Harvard Mark II Now used for software errors Debugging: removing errors 43

44 Testing Testing can only show the presence of bugs, not their absence (Edsger Dijkstra) White-box testing Black-box testing During testing the implementation is known Implementation is unknown Test levels Unit Integration System 44

45 Manual Unit Testing Manually write test cases that exercise a function for average values and boundary values Example: test cases for a list sort function: Empty list Non-empty, sorted, lists Non-empty, reversely sorted, lists Random lists of various sizes 45

46 Automatic Unit Testing Write a predicate issorted to test that a list is sorted. bool testsort(list[int] L) = issorted(sort(l)) Randomly generate lists and use testsort as oracle. This approach is called QuickCheck and is highly effective. 46

47 Test Tools for the Rascal programmer test is a function modifier, currently for Boolean functions without parameters. Use :test on the command line to run all test functions A Master's project is well-advanced to add QuickCheck functionality to Rascal's test framework. 47

48 Testing Rascal itself Thousands of tests for basic language elements and libraries Code examples in Tutor are also executed and also act as tests. Developer and tester should wear different hats 48

49 Testing the Integer public void testint() { asserttrue(runtest("1 == 1;")); asserttrue(runtest("1!= 2;")); asserttrue(runtest("-1 == -1;")); asserttrue(runtest("-1!= 1;")); asserttrue(runtest("1 + 1 == 2;")); asserttrue(runtest(" == 1;")); asserttrue(runtest("1 + (-2) == -1;")); asserttrue(runtest("2-1 == 1;")); asserttrue(runtest("2-3 == -1;")); asserttrue(runtest(" == 3;")); asserttrue(runtest("-2-1 == -3;")); asserttrue(runtest("2 * 3 == 6;")); asserttrue(runtest("-2 * 3 == -6;")); asserttrue(runtest("2 * (-3) == -6;")); asserttrue(runtest("-2 * (-3) == 6;")); asserttrue(runtest("8 / 4 == 2;")); asserttrue(runtest("-8 / 4 == -2;")); asserttrue(runtest("8 / -4 == -2;")); asserttrue(runtest("-8 / -4 == 2;")); asserttrue(runtest("7 / 2 == 3;")); asserttrue(runtest("-7 / 2 == -3;")); asserttrue(runtest("7 / -2 == -3;")); asserttrue(runtest("-7 / -2 == 3;")); asserttrue(runtest("5 % 2 == 1;")); asserttrue(runtest("-5 % 2 == -1;")); asserttrue(runtest("5 % -2 == 1;")); asserttrue(runtest("-2 <= -1;")); asserttrue(runtest("-2 <= 1;")); asserttrue(runtest("1 <= 2;")); asserttrue(runtest("2 <= 2;")); assertfalse(runtest("2 <= 1;")); asserttrue(runtest("-2 < -1;")); asserttrue(runtest("-2 < 1;")); asserttrue(runtest("1 < 2;")); assertfalse(runtest("2 < 2;")); asserttrue(runtest("-1 >= -2;")); asserttrue(runtest("1 >= -1;")); asserttrue(runtest("2 >= 1;")); asserttrue(runtest("2 >= 2;")); assertfalse(runtest("1 >= 2;")); asserttrue(runtest("-1 > -2;")); asserttrue(runtest("1 > -1;")); asserttrue(runtest("2 > 1;")); assertfalse(runtest("2 > 2;")); assertfalse(runtest("1 > 2;")); asserttrue(runtest("(3 > 2? 3 : 2) == 3;")); } asserttrue(runtest("0 / 5 == 0;")); asserttrue(runtest("5 / 1 == 5;")); 49

50 Testing public void sort() { prepare("import List;"); asserttrue(runtestinsameevaluator("{list::sort([]) == [];}")); asserttrue(runtestinsameevaluator("{sort([]) == [];}")); asserttrue(runtestinsameevaluator("{list::sort([1]) == [1];}")); asserttrue(runtestinsameevaluator("{sort([1]) == [1];}")); asserttrue(runtestinsameevaluator("{list::sort([2, 1]) == [1,2];}")); asserttrue(runtestinsameevaluator("{sort([2, 1]) == [1,2];}")); asserttrue(runtestinsameevaluator("{list::sort([2,-1,4,-2,3]) == [-2,-1,2,3, 4];}")); asserttrue(runtestinsameevaluator("{sort([2,-1,4,-2,3]) == [-2,-1,2,3, 4];}")); } 50

51 Test Driven Developmen (TDD) Write test cases first (they act as a specification) Then write the implementation of the code that is tested 51

52 The Software Process 52

53 Software Process All aspects of the software life cycle Two main styles: Waterfall Agile 53

54 Waterfall Model Requirements Design Implementation Verification Maintenance 54

55 Waterfall Model All steps are traceable Solid engineering practices Long development cycles Not so easy to steer the project Much bureaucracy 55

56 Agile Development Originally called Extreme Programming Agile Manifesto Agile Principles Agile Practices Large commercial interests in selling you agile methods 56

57 57

58 Agile Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements, even late in development Working software is delivered frequently (weeks, not months) Working software is the principal measure of progress Sustainable development, able to maintain a constant pace Daily co-operation between business people and developers Face-to-face conversation is the best form of communication (co-location) Projects are built around motivated, trusted, individuals Continuous attention to technical excellence and good design Simplicity- The art of maximizing the amount of work not done - is essential Self-organizing teams Regular adaptation to changing circumstances 58

59 Agile Practices Pair programming Design patterns Continuous Integration Test-driven development Automated unit testing Refactoring 59

60 Agile Development Many agile approaches: SCRUM, Kanban, XP, DSDM There is no scientific proof that waterfall methods or agile methods are better We have done various studies; it is hard to obtain and compare data The influence of individual programmers is large (10x difference between individuals) 60

61 Software Engineering At the core of Many faces: Web technologies Technical Mobile applications Human Gaming Organizational Big Data Scientific computing 61

62 62

Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering Life Cycle Models V. Paúl Pauca Department of Computer Science Wake Forest University CSC 331-631 Fall 2013 Software Life Cycle The overall framework in which software is conceived, developed, and maintained.

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Waterfall to Agile. DFI Case Study By Nick Van, PMP Waterfall to Agile DFI Case Study By Nick Van, PMP DFI Case Study Waterfall Agile DFI and Waterfall Choosing Agile Managing Change Lessons Learned, Sprints Summary Q and A Waterfall Waterfall Waterfall

More information

How to manage agile development? Rose Pruyne Jack Reed

How to manage agile development? Rose Pruyne Jack Reed How to manage agile development? Rose Pruyne Jack Reed What will we cover? Introductions Overview and principles User story exercise Retrospective exercise Getting started Q&A About me: Jack Reed Geospatial

More information

Introduction to Agile Software Development

Introduction to Agile Software Development Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP)

More information

The Agile Manifesto is based on 12 principles:

The Agile Manifesto is based on 12 principles: The Agile Manifesto is based on 12 principles: Customer satisfaction by rapid delivery of a useful product solution Welcome changing requirements, even late in development Working products are delivered

More information

Vragen. Software development model. Software development model. Software development model

Vragen. Software development model. Software development model. Software development model Vragen Noem de belangrijkste activiteiten in een software engineeringsproject Welke vormen van onderhoud kan men onderscheiden? Karakteriseer het waterval model Waterfall model Document oriented Suited

More information

Introduction to Agile Software Development Process. Software Development Life Cycles

Introduction to Agile Software Development Process. Software Development Life Cycles Introduction to Agile Software Development Process Presenter: Soontarin W. (Senior Software Process Specialist) Date: 24 November 2010 AGENDA Software Development Life Cycles Waterfall Model Iterative

More information

Agile Projects 7. Agile Project Management 21

Agile Projects 7. Agile Project Management 21 Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development

More information

Agile Software Development Methodologies and Its Quality Assurance

Agile Software Development Methodologies and Its Quality Assurance Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed

More information

Exception Handling. development.

Exception Handling. development. Exception Handling Name: ID: These questions do not have a formal, definitive answer. They are meant to be food for thoughts. Feel free to seek answers on browsing the Internet, talking to other software

More information

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing

More information

Advanced Software Engineering. Software Development Processes

Advanced Software Engineering. Software Development Processes Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development

More information

COMP 354 Introduction to Software Engineering

COMP 354 Introduction to Software Engineering COMP 354 Introduction to Software Engineering Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course

More information

Testing in Agile methodologies easier or more difficult?

Testing in Agile methodologies easier or more difficult? Testing in Agile methodologies easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości Systemów Informatycznych L.Stapp@mini.pw.edu.pl L.Stapp@sjsi.org Professor in

More information

Agile Project Management By Mark C. Layton

Agile Project Management By Mark C. Layton Agile Project Management By Mark C. Layton Agile project management focuses on continuous improvement, scope flexibility, team input, and delivering essential quality products. Agile project management

More information

A Glossary of Scrum / Agile Terms

A Glossary of Scrum / Agile Terms A Glossary of Scrum / Agile Terms Acceptance Criteria: Details that indicate the scope of a user story and help the team and product owner determine done-ness. Agile: the name coined for the wider set

More information

Agile Development with C#

Agile Development with C# Agile Development with C# Paweł Jarosz, pjarosz@pk.edu.pl Cracow University of Technology, Poland Jyvaskyla University of Applied Sciences, February 2009 Paweł Jarosz who am I? M.Sc. of Applied Physics

More information

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer Software Development Life Cycle at SSPL An Summary of Methodologies We Offer 10/29/2009 Table of Contents The SSPL Advantage... 2 Commonly Used SDLC Models at SSPL... 2 Waterfall Model... 2 Agile Model...

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

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 Waterfall: Spiral: Split project into controlled

More information

Introduction to Agile and Scrum

Introduction to Agile and Scrum Introduction to Agile and Scrum Matthew Renze @matthewrenze COMS 309 - Software Development Practices Purpose Intro to Agile and Scrum Prepare you for the industry Questions and answers Overview Intro

More information

Atomate Development Process. Quick Guide

Atomate Development Process. Quick Guide Development Process Quick Guide METHODOLOGY Every project is unique You know your business inside out. You have thought and planned your ideas carefully and are keen to see it live as soon as possible.

More information

AGILE & SCRUM. Revised 9/29/2015

AGILE & SCRUM. Revised 9/29/2015 AGILE & SCRUM Revised 9/29/2015 This Page Intentionally Left Blank Table of Contents Scrum Fundamentals Certified Course... 1 Scrum Developer Certified (SDC)... 2 Scrum Master Certified (SMC)... 3 Scrum

More information

Using Agile with Large, Geographically Dispersed Development Teams

Using Agile with Large, Geographically Dispersed Development Teams Using Agile with Large, Geographically Dispersed Development Teams Ade Miller Development Manager, patterns & practices group (Development Lead, Visual Studio Tools for Office) Microsoft Corporation 2010

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development Ingegneria del Software Corso di Laurea in Informatica per il Management Agile software development Davide Rossi Dipartimento di Informatica Università di Bologna The problem Efficiency: too much effort

More information

CSE 435 Software Engineering. Sept 16, 2015

CSE 435 Software Engineering. Sept 16, 2015 CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process

More information

A Capability Maturity Model (CMM)

A Capability Maturity Model (CMM) Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability

More information

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations International Journal of Recent Research and Review, Vol. VI, June 2013 Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations Uma Kumari 1, Abhay Upadhyaya

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency

More information

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan YOUR SUCCESS IS OUR FOCUS Whitepaper Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan 2009 Hexaware Technologies. All rights reserved. Table of Contents 1. Introduction 2. Subject Clarity 3. Agile

More information

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson 21.05.2014

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson 21.05.2014 Lean and Agile in Safety-critical Software Development Research and Practice Henrik Jonsson 21.05.2014 About me 2012 Henrik Jonsson Professional Software engineer +13 years Employed by Etteplan Part-time

More information

Copyright protected. Use is for Single Users only via a VHP Approved License. For information and printed versions please see www.vanharen.

Copyright protected. Use is for Single Users only via a VHP Approved License. For information and printed versions please see www.vanharen. Global Standards and Publications Edition 2014/2015 Global Standards and Publications EDITION 2014/2015 Colophon Title: Global Standards and Publications Edition 2014/2015 Publication of: Van Haren Publishing,

More information

D25-2. Agile and Scrum Introduction

D25-2. Agile and Scrum Introduction D25-2 Agile and Scrum Introduction How to Use this Download This download is an overview of a discussion Intertech has with clients on Agile/Scrum This download has an overview of Agile, an overview of

More information

Introduction to Agile Software Development. EECS 690 Agile Software Development

Introduction to Agile Software Development. EECS 690 Agile Software Development Introduction to Agile Software Development EECS 690 Agile Software Development Agenda Research Consent Forms Problem with Software Engineering Motivation for Agile Methods Agile Manifesto Principles into

More information

Rapid Software Development

Rapid Software Development Software Engineering Rapid Software Development Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain how an iterative, incremental development process leads to faster delivery

More information

Corso di Laurea Magistrale in Informatica, Università di Padova Tecnologie open-source, Anno accademico 2010/2011. Development Processes 1 / 51

Corso di Laurea Magistrale in Informatica, Università di Padova Tecnologie open-source, Anno accademico 2010/2011. Development Processes 1 / 51 Software development process A software development process is a structure imposed on the development of a software product Software development activities Requirements analysis The important task in creating

More information

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software

More information

Software Requirements and Specification

Software Requirements and Specification Software Requirements and Specification Agile Methods SE3821 - Jay Urbain Credits: Beck, K. (1999). Extreme Programming Explained: Embrace Change. Boston, MA: Addison-Wesley. Beck, Kent; et al. (2001).

More information

Agile methods. Objectives

Agile methods. Objectives Agile methods CMSC435-1 Objectives To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods To explain

More information

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

SOFTWARE ENGINEERING INTERVIEW QUESTIONS SOFTWARE ENGINEERING INTERVIEW QUESTIONS http://www.tutorialspoint.com/software_engineering/software_engineering_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Software Engineering

More information

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the

More information

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS Xihui Zhang University of North Alabama xzhang6@una.edu Hua Dai University of Wisconsin-La Crosse dai.hua@uwlax.edu Tao Hu King College thu@king.edu

More information

Best Practices for Improving the Quality and Speed of Your Agile Testing

Best Practices for Improving the Quality and Speed of Your Agile Testing A Conformiq White Paper Best Practices for Improving the Quality and Speed of Your Agile Testing Abstract With today s continually evolving digital business landscape, enterprises are increasingly turning

More information

Achieving ISO 9001 Certification for an XP Company

Achieving ISO 9001 Certification for an XP Company Achieving ISO 9001 Certification for an XP Company Graham Wright Development Team Coach Workshare 20 Fashion Street London, E1 6PX (44) 020 7539 1361 graham.wright@workshare.com Abstract It is generally

More information

Agile and lean methods for managing application development process

Agile and lean methods for managing application development process Agile and lean methods for managing application development process Hannu Markkanen 24.01.2013 1 Application development lifecycle model To support the planning and management of activities required in

More information

Zarządzanie projektem agile 2015-05-21. The Mystery of Effective IT by Bogdan Bereza blogomotion.com/mystery 1 (30) Effective IT?

Zarządzanie projektem agile 2015-05-21. The Mystery of Effective IT by Bogdan Bereza blogomotion.com/mystery 1 (30) Effective IT? The Mystery of Effective IT by Bogdan Bereza blogomotion.com/mystery 1 (30) Effective IT? The Mystery of Effective IT by Bogdan Bereza blogomotion.com/mystery 2 (30) Bogdan Bereza, Victo.eu 1 The Mystery

More information

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC

More information

Agile Software Development

Agile Software Development E Learning Volume 5 Number 1 2008 www.wwwords.co.uk/elea Agile Software Development SOLY MATHEW BIJU University of Wollongong in Dubai, United Arab Emirates ABSTRACT Many software development firms are

More information

SECC Agile Foundation Certificate Examination Handbook

SECC Agile Foundation Certificate Examination Handbook Versions 2.0 Version Date Remarks 1.0 12/4/2012 Initial version 2.0 3/8/2008 REVISION HISTORY Updated knowledge areas Added questions examples Updated suggested readings section Page 2 of 15 Version 2.0

More information

Alternative Development Methodologies

Alternative Development Methodologies Alternative Development Methodologies The Software Development Process described in the course notes and lecture is a generalized process that been in use for decades. Over this time, scholars in the IT

More information

Challenges in adopting Agile

Challenges in adopting Agile ImproValue Consulting in adopting Copyright: ImproValue 2011 www.improvalue.com About Us ImproValue Consulting specialize in business process consulting focus on IT and ITES organizations. provide a wide

More information

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

More information

LEAN AGILE POCKET GUIDE

LEAN AGILE POCKET GUIDE SATORI CONSULTING LEAN AGILE POCKET GUIDE Software Product Development Methodology Reference Guide PURPOSE This pocket guide serves as a reference to a family of lean agile software development methodologies

More information

Agile Development Overview

Agile Development Overview Presented by Jennifer Bleen, PMP Project Services Practice of Cardinal Solutions Group, Inc. Contact: Agile Manifesto We are uncovering better ways of developing software by doing it and helping others

More information

New Developments in an Agile World: Drafting Software Development Agreements. By: Paul H. Arne 1,2

New Developments in an Agile World: Drafting Software Development Agreements. By: Paul H. Arne 1,2 New Developments in an Agile World: Drafting Software Development Agreements By: Paul H. Arne 1,2 A few months before this article was prepared, a group of senior IT professionals from some of the largest

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

The Impacts Of Agile Development On The System Engineering Process

The Impacts Of Agile Development On The System Engineering Process The Impacts Of Agile elopment On The System Engineering Process 17 th Annual Systems Engineering Conference October 27-30, 2014 Springfield, Virginia Discussion Topics Background What Is Agile elopment

More information

Getting Started with Agile Project Management Methods for Elearning

Getting Started with Agile Project Management Methods for Elearning Getting Started with Agile Project Management Methods for Elearning Megan Torrance TorranceLearning Training2013 Session 108 February 18, 2013 8am Megan Torrance has 20 years of experience in the learning

More information

Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1

Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1 Modern practices 2.3.2015 1 Today s lecture Learn what some modern SW engineering topics are about A peek to some research topic of our department 2 3 4 5 6 How the lectures continue? 02.03 Modern practices

More information

Introduction. Industries across the globe are burgeoning. Stiff

Introduction. Industries across the globe are burgeoning. Stiff Solutions for higher performance! Agile VS Lean THE COMPREHENSIVE FACTORS Introduction Introduction Industries across the globe are burgeoning. Stiff competition has permeated every stratum among enterprises.

More information

Quality Assurance Software Development Processes

Quality Assurance Software Development Processes Quality Assurance Software Development Processes Part II - Lecture 3 1 The University of Auckland New Zealand 254 12/09/ /2012 The FBI Virtual Case File 254 12/09/ /2012 Database application developed

More information

Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1

Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1 Collaborative Large scale Integrating Project Open Platform for EvolutioNary Certification Of Safety critical Systems Methodology: Agile development of safety critical systems to deliverable D1.1 Work

More information

Agile with XP and Scrum

Agile with XP and Scrum Agile with XP and Scrum Amit Goel National Agile Software Workshop @ Indore Agile India Conference Agile Software Community of India Disclaimer and Credits Most of material in this presentation has been

More information

Waterfall vs. Agile Methodology

Waterfall vs. Agile Methodology 2012 Waterfall vs. Agile Methodology Mike McCormick MPCS, Inc. Revised Edition 8/9/2012 Contents Waterfall vs. Agile Model Comparison...3 Conceptual Difference...3 Efficiency...4 Suitability...4 Waterfall

More information

Software Quality Testing Course Material

Software Quality Testing Course Material Prepared by Vipul Jain Software Quality Testing Course Material Course content is designed and will be taught in such a manner in order to make a person job ready in around 10-12 weeks. Classroom sessions

More information

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series Overview This is a 15-day live facilitator-led or virtual workshop is designed to prompt your entire team to work efficiently with Microsoft s Application Lifecycle Management solution based around Visual

More information

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986) Agile Methods Barry Boehm, CS 510 Lecture Fall 2001 (boehm@sunset.usc.edu) (http://sunset.usc.edu) Outline Silver bullets and lead bullets Information technology trends The dwindling lead-bullet niche

More information

SOFTWARE PROCESS MODELS

SOFTWARE PROCESS MODELS SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation

More information

Fail early, fail often, succeed sooner!

Fail early, fail often, succeed sooner! Fail early, fail often, succeed sooner! Contents Beyond testing Testing levels Testing techniques TDD = fail early Automate testing = fail often Tools for testing Acceptance tests Quality Erja Nikunen

More information

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara http://www.cs.ucsb.

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara http://www.cs.ucsb. CS189A - Capstone Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ How Should We Build Software? Let s look at an example Assume we asked our IT folks if they can do the

More information

Software Development Methodology Development Process followed @ Aress

Software Development Methodology Development Process followed @ Aress Software Development Methodology Development Process followed @ Aress 1. Development Methodology Software Development at Aress has adopted Agile Software Development methodology and uses it effectively

More information

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering Shvetha Soundararajan Thesis submitted to the faculty of the Virginia Polytechnic Institute and State University

More information

Agile Software Development in the Large

Agile Software Development in the Large Agile Software Development in the Large Jutta Eckstein 1 Large Large in... Scope Time People Money Risks We concentrate on Large Teams Large is relative 1, 2, 10, 100, 2000 People 2 Principles behind Agile

More information

The Role of Software Quality in Agile Software Development Methodologies Osama Sohaib and Khalid Khan Abstract he various agile software development methodologies have promoted since their inception and

More information

Processes in Software Development. Presented 11.3.2008 by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008

Processes in Software Development. Presented 11.3.2008 by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008 Processes in Software Development Presented 11.3.2008 by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008 Software hall of shame Classic mistakes ACM Code of Ethics

More information

The 2015 State of Scrum Report. How the world is successfully applying the most popular Agile approach to projects

The 2015 State of Scrum Report. How the world is successfully applying the most popular Agile approach to projects The 2015 State of Scrum Report How the world is successfully applying the most popular Agile approach to projects RELEASED: JULY 2015 EXECUTIVE SUMMARY In February 2015, Scrum Alliance surveyed almost

More information

An Approach to Agile Automation Testing. QAANOVA September 16, 2008 Frank Hurley, Technical Manager

An Approach to Agile Automation Testing. QAANOVA September 16, 2008 Frank Hurley, Technical Manager An Approach to Agile Automation Testing QAANOVA September 16, 2008 Frank Hurley, Technical Manager 1 Agile development is here Iterative development and deployment Faster times to market/client stakeholders

More information

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD Development Techniques CSE301 University of Sunderland Harry R. Erwin, PhD Sources Boehm, 1981, Software Engineering Economics, Prentice- Hall. Stephens and Rosenberg, 2003, Extreme Programming Refactored:

More information

Becoming a Business Analyst

Becoming a Business Analyst Becoming a Business Analyst What is Business Analysis? The practice of enabling change in an organizational context by defining needs and recommending solutions that delivers value to stakeholders When

More information

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing. Processing Models Of SDLC Mrs. Nalkar Sanjivani Baban Asst. Professor, IT/CS Dept, JVM s Mehta College,Sector 19, Airoli, Navi Mumbai-400708 Nalkar_sanjivani@yahoo.co.in Abstract This paper presents an

More information

Agile and lean methods for managing application development process

Agile and lean methods for managing application development process Agile and lean methods for managing application development process Hannu Markkanen 27.01.2012 1 Lifecycle model To support the planning and management of activities required in the production of e.g.

More information

Agile Software Engineering Practice to Improve Project Success

Agile Software Engineering Practice to Improve Project Success Agile Software Engineering Practice to Improve Project Success Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems dietmar.winkler@qse.ifs.tuwien.ac.at

More information

How To Understand The Limitations Of An Agile Software Development

How To Understand The Limitations Of An Agile Software Development A Cynical View on Agile Software Development from the Perspective of a new Small-Scale Software Industry Apoorva Mishra Computer Science & Engineering C.S.I.T, Durg, India Deepty Dubey Computer Science

More information

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson Agile In a Nutshell Note - all images removed to fit 2MB limit Actual presentation has much more content Jonathan Rasmusson What we re going to cover How agile works What to expect What agile is Agile

More information

Software Engineering and Scientific Computing

Software Engineering and Scientific Computing Software Engineering and Scientific Computing Barbara Paech, Hanna Valtokari Institute of Computer Science Im Neuenheimer Feld 326 69120 Heidelberg, Germany http://se.ifi.uni-heidelberg.de paech@informatik.uni-heidelberg.de

More information

Agile Development with Agile Business Suite

Agile Development with Agile Business Suite Agile Development with Agile Business Suite By: Alan Hood White Paper Agility. It s a wonderful thing. For a dancer or an athlete the need for agility is obvious. The ability to move, and change directions

More information

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited Continuous Integration: Improving Software Quality and Reducing Risk Preetam Palwe Aftek Limited One more title Do you love bugs? Or Are you in love with QC members? [Courtesy: Smita N] Agenda Motivation

More information

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, vukicevicsanja@yahoo.com 2 Faculty

More information

Comparing Agile Software Processes Based on the Software Development Project Requirements

Comparing Agile Software Processes Based on the Software Development Project Requirements CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical

More information

Agile! Springer. The Good, the Hype and the Ugly. Bertrand Meyer

Agile! Springer. The Good, the Hype and the Ugly. Bertrand Meyer i ii imnin111 imiiii niiini n in mi1111 m i urn u n in i H 111 nil n i ni*tmi n11111 iimn mn n IIIH iwi m«inininnmminniii m HI

More information

Agile in a Safety Critical world

Agile in a Safety Critical world Agile in a Safety Critical world Julian Goddard 24/11/2014 26/11/14 (c) 2014 Plaxion Limited. All rights reserved. 1 Contents Introductions The pervasiveness of software Agile review Safety Critical software

More information

Agile Beyond The Team 1

Agile Beyond The Team 1 Agile Beyond The Team 1 Dilbert Agile 2 What Does Your Organization Value? Projects over Teams? Do new teams spools up for new projects? On-Time/On-Budget Delivery over Zero Maintenance Products Deliver

More information

Software Engineering. Introduction. Lecturer: Giuseppe Santucci

Software Engineering. Introduction. Lecturer: Giuseppe Santucci Software Engineering Introduction Lecturer: Giuseppe Santucci Summary Some useful pieces of information Introduction to Software Engineering Standardization of Software Process 2 Software Engineering Classes

More information

PMBOK? You Can Have Both! June 10, 2009. Presented by: www.esi-intl.com

PMBOK? You Can Have Both! June 10, 2009. Presented by: www.esi-intl.com Agile or the PMBOK? You Can Have Both! June 10, 2009 Presented by: David M. Sides, Vice President, ESI Consulting Services www.esi-intl.com Agenda June 10, 2009 Pic? Agile Framework Agile Truths & Myths

More information

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP About Jess BS Applied Physics, WPI / MS Cybersecurity, UMUC PMP, ITIL, Data Scientist, Tableau, Alteryx Project Experience Data and technology Construction

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled

More information