• No results found

Organizing Software Development

N/A
N/A
Protected

Academic year: 2021

Share "Organizing Software Development"

Copied!
33
0
0

Loading.... (view fulltext now)

Full text

(1)

Organizing Software

Development

Software Engineering 2004-2005

(2)

Content

¾

Introduction

¾The three beasts

¾Components of a software development

project

(3)

Introduction

¾Software development is a combination of

mutually dependent activities

¾Activities often overlap in time and scope

¾Good organization is the key towards

(4)

Content

¾

Introduction

¾

The three beasts

¾Components of a software development

project

(5)

Preparing a cappuccino (1/4)

Prepar e the esp resso

Put the esp resso in the Cappucc ino cup

Steam the milk, produ cing a thick foam

Put the fo amed milk in the Cappucc ino cup

Add the sugar and s tir the cappu ccino till pe rfection

(6)

Preparing a cappuccino (2/4)

Prepar e the Espresso

Put the esp resso in the Cappucc ino cup

Stea m the milk, produ cing a thick foa m

Start

Put the fo amed milk in the cappu ccino cup

(7)

Preparing a cappuccino (3/4)

¾ If you live in the mountains, it may be possible

that your cup of espresso is not as good as that the cup you might enjoy at sea level

• The water boils earlier at higher elevations, so you might lose some of the aroma.

¾ The choice of the coffee from which you make

the espresso has a significant impact on the resulting quality of the cappuccino

• the same for the quality of the water you use,

(8)

Preparing a cappuccino (4/4)

¾The basic resources are perishable

• Once you have made a bad espresso, there is

no way to undo the process and get back the original coffee. The milk cannot be steamed too many times

¾The magic touch!

• The touch is needed when you prepare the

espresso

• The touch is needed when you have the foam

ready and you pour it in the cup. Without

such touch, the cappuccino could well become just a Latte

(9)

The three beasts

¾3 major problems faced in

developing software • Uncertainty

• Irreversibility • Complexity

¾Occurs

before

,

during

,

(10)

Uncertainty

¾ Difficulty of communication among different

parties

¾ Before: customers yet to decide what they

want exactly

¾ During: unexpected problems with supporting

materials (eg. libraries) discovered by developers

¾ After: bugs and crashes discovered by users;

(11)

Irreversibility

¾ Time and most resources are not recoverable

¾ Before: customers’ definition of the expected

quality cannot be reversed

¾ During: structures of the system and unit

tests; choices of design patterns and tools

¾ After: decision of allowing upgrades and the

(12)

Complexity

¾Lots of information to kept for a project

¾Coordination between different groups

(i.e. customers, managers, developers, etc.) is important

¾Uncertainty and irreversibility make

(13)

Overview of the three beasts

Before Development During Development After Development

Uncertainty in:

The desires of customer; the business goals of managers; the personal goals of developers; …

The resources required; the reliability of supporting tools; …

The failures of the system; the possibility for the system to work in different OSs; …

Irreversibility in:

The definition of the expected level of reliability;

The architecture of the system; structures of packages; …

The level of support decided; upgrading to a new platform, …

Complexity in:

Customers, managers, marketing people, and analysts, …

Cowboy coding, spaghetti code

Customers, customer service, developers, and managers, …

(14)

Content

¾

Introduction

¾

The three beasts

¾

Components of a software

development project

(15)

Components of a software

development project

¾Starts with vague idea of what to be

developed

¾Ends with codes of various degrees of

satisfaction to the original idea

¾The 3 beasts in general:

• Uncertainty in idea • Irreversibility in time

(16)

Product lifecycle

¾Sequences of stages for a product

¾From conception to disposal/maintenance

¾Reduces uncertainty of customers

¾Reduces complexity of development

¾Comes from experience

(17)

Example of product lifecycle

Building a home

¾ Analyze requirement of customers

¾ Design home

¾ Purchase land

¾ Commission development to builder

¾ Ensure the building meet standards set by

different parties (personal and governmental)

(18)

Software lifecycle (1/2)

¾Aiming for building quality software

products in well organized manner

¾Stages:

• Are a common reference for all parties • Are not fixed; vary for different projects • Are not necessarily implemented in linear

fashion

(19)

Software lifecycle (2/2)

¾Stages:

• Requirement elicitation: from customers

• Analysis: purposes formalized in a consistent

and coherent way

• Implementation: code developed

• Testing: system tested for correctness

• Maintenance: bug fixes, new features, new

(20)

Diagram of software lifecycle

Time Maintenance Testing Implementation Design Analysis Requirement Elicitation

(21)

Software lifecycle (1/2)

Design Analysis

Requirement Elicitation

Discussion with the customers to understand the problem or the issues they have and the

requirements of the product to develop

Creation of a model of the product to develop to address

Development of the overall internal and external structure

(22)

Software lifecycle (2/2)

Maintenance

Time

Testing Implementation

Writing of the code of the system previously designed

Testing of the system to ensure that it does not contains bugs

and it does responds to the desire of the customer

Review of the system to fix bugs found and adapt the system to new hardware r software,

(23)

Key stakeholders

¾Key stakeholders

• Customer • Manager • Developer

¾Communication and mutual understanding

of each other’s role are important

¾Pitfall: uncertainty

(24)

Customer

¾“what to do”

¾Desires and pays for the product

¾Provides description of requirements

(25)

Manager

¾“when to finish and for how

much”

¾A link between customer and

developer

¾Negotiates with customer

(timeline and price)

¾Plans and oversees the project

¾Set constraints of time and

(26)

Developer

¾“how to do”

¾Builds the product

¾Aims for the

satisfaction of customer

(27)

Three kingdoms (1)

Requirements Analysis Design Implementation Testing Planning Kingdom of Managers Kingdom of Customers Kingdom of Developers

(28)

Three kingdoms (2)

Analysis Design Implementation Testing Planning Kingdom of Managers Kingdom of Customers Kingdom of Developers Requirements Time Time Time

(29)

Content

¾

Introduction

¾

The three beasts

¾

Components of a software development

project

(30)

Plan-driven approach

¾Aim: reduce uncertainty and complexity

¾Guiding development via long term plans

¾Strict end-to-start dependencies among

stages

¾Irreversibility increases inevitably as

project progresses

(31)

Divide and conquer

¾Clearly separate different stages

¾Formalize the worst case scenarios of

by-products to prevent misunderstanding

¾Detect and correct defects as early as

possible

(32)

Agile approach

¾Original idea and plans changed

progressively

¾Changes in development is essential, not

evil

¾Accepts and addresses the 3 beasts rather

than avoiding them

It is up to developers to decide which

(33)

Review questions

¾ Can you summarize the three major stakeholders and

the three major classes of problems of software development?

¾ What is the root of uncertainty?

¾ What do we mean by the term “complexity” and why is

it so relevant in the production of software systems?

¾ What are the key ingredients of an effective software

development process?

¾ How the several proposals for software development

Figure

Diagram of software lifecycle  Time  Maintenance Testing Implementation Design Analysis Requirement Elicitation

References

Related documents

In particular, irrespective of the specific evolutionary dynamics and of the exact behavioral rules used, the dynam- ics of the aggregate participation rate is consistent with

All levels of concern Software Requirements Specification (SRS) Software functional requirements from SRS SRS Architecture Design Chart. A chart depicting the partitioning

United Kingdom WEL STEL (mg/m³) 1060 mg/m³ Dichloromethane; United Kingdom; Short time value; Workplace exposure limit (EH40/2005) United Kingdom WEL STEL (ppm) 300

In the 1960s, the equivalent approach emerged, in which Black and White multiracial people were simply regarded as Black; that approach drew heavily “from Erikson’s

 Blistering in pemphigoid occurs at the sub epidermal level - deeper than the blisters of pemphigus vulgaris (which occur at the dermal-epidermal junction); hence the tense

“….an opportunity to build their business, supported by the most advanced technology, market leading products and comprehensive initial and ongoing training and support,

Characteristics of the 5 kingdoms examples of living things that belong to these kingdoms are public under Kingdom Example Monera Bacteria.. The kingdom do not monophyletic, which

According to a Forrester Report by Monique Levy (2005), “Consumers’ demand for products that enable them to take more control of their health decisions and benefits