17
1 Software Engineering Process Large-scale industrial software development Björn Regnell Software on Earth How many software developers? > 2 million in China > 2 million in India > 2 million in US > 2 million in EU > 10 million in the world ? How much software? > 10 LOC per day per developer? > 100 million lines per day How many bugs? > 1 error per 1000 LOC ? > 100 000 errors per day ?

Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

1

Software Engineering Process

Large-scale industrial software development

Björn Regnell

Software on EarthHow many software developers?> 2 million in China > 2 million in India > 2 million in US > 2 million in EU> 10 million in the world ?How much software?> 10 LOC per day per developer?> 100 million lines per dayHow many bugs?> 1 error per 1000 LOC ?> 100 000 errors per day ?

Page 2: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

2

Building SW from components

Ever Increasing SW Complexity

Page 3: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

3

From Centralized to Decentralized to Distibuted

Page 4: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

4

Group Discussions

Assume that you work as a software engineer with a large company.

• What do you think are the biggest challenges that you need to cope with?

Examples of real difficulties in real industrial projects

1. What is actually the best set of requirements?2. How much uncertainty in effort estimation can we cope with?3. At what level of detail should we document requirements?4. How to minimize waiting time for other parts to be ready before

we can start our part?5. How to make more parts in parallel without generating

confusion and unnecessary rework?6. How to know when the product is reliable enough to be

released?7. How to incorporate changes without generating spaghetti and

excessive cost of rework?

Page 5: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

5

Who are the stakeholders?

External stakeholdersCustomers

Direct customersOperators

Global customersRegional customersOther key customers

RetailersIndirect customers

ConsumersMarket segments

Service providersContent providers

Product providersDirect Competitors

Mobile phone developersIndirect Competitors

CamerasMobile music players… consumer wallet competition

Platform providersOperating SystemsTechnical Platforms

Network system providersStandardization bodiesLegislation and authorities

NationalInternational

Manufacturing sub-contractorsComponent providers…

Internal stakeholdersMarketing

Long term brandingCustomer relations

Product managementProduct planningRoadmapping and portfolios

Product developmentHardware design

ElectronicsAnalogDigital

MechanicsSoftware design

User interfaceService logicNetwork accessCodecs

Platform developmentMother, daughters, clusterGlobal functions

Sub-contracting managementTechnical platforms Operating systemsOriginal Design Manufacturing

Technology forecastingMarket researchCustomer Services

SupportRepair

LegalSourcingAccessories…

PlayNow™

… find the right person to talk to …… get the deep domain knowledge …

Page 6: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

6

SW Value chains are getting more and more complex...

Software Ecosystems

Page 7: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

7

Matrix Organization

Organizing the development

Toll Gate Concept

TG Define

Launch

ApplicationPlatform Dev.

Hardware Dev.

Portfolio Design

Product Planning

Software Dev.

Product Design

Product Management

Time

Technology RoadmappingSub-domain RE

Technology OutlookTechnology Platform RE

Standardization

Market Research

Design Studies

Application Planning

Pre-development in line functions; development in projects

TIMING CHALLENGE!!!

Page 8: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

8

Orders of magnitude in Requirements Engineering

Abrev. Level Order of magnitude

Managing a complete set of interdependencies…

SSRE Small-Scale

Requirements

Engineering

~10 reqs requires small effort.

MSRE Medium-Scale Requirements

Engineering

~ 100 reqs is feasible but requires large effort.

LSRE Large-Scale Requirements

Engineering

~1000 reqs is practically unfeasible, but feasible among small bundles of requirements.

VLSRE Very Large-Scale Requirements

Engineering

~10000 reqs among small bundles of requirements is unfeasible in practice.

Dealing with very large requirements databases

Profitable?

Expensive?

Ambiguous?Related?

Group?

Complete? Split?

Reject?

Strategic?

RequirementsDatabaseToo

much

Page 9: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

9

MR Market RequirementPSR Platform System ReqP Product SR Supplier RequirementCv Component versionPv Platform versionCP Configuration PackageF Feature

Market Requirements~10000

MR1

Platform System Requirements ~10000Features ~100Configuration Packages ~100

PSR1

PSR2

PSR3

Products ~100

F1

Platform Versions ~10

Supplier Requirements ~1000

SR1

SR2

SR3

Cv1

Cv2

Pv3

CP1

CP2MR2

P1

P2

P3MR3MR4 CP3

Pv1

Pv2

Component Versions ~100

F2

F3

Complex Information Structures

Challenges in Large-Scale Software Engineering

Karlsson, Dahlstedt, Regnell, Natt och Dag, Persson: Requirements engineering challenges in market-driven software development - An interview study with practitioners, Information and Software Technology 49 (2007) 588–604

Page 10: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

10

Chasm between marketing and development

State-of-practiceEngineering and marketing are not aligned

State-of-the-artCommon strategy and joint future vision of RE

Organisational instability and market turbulence

State-of-practiceInability to reach steady state

State-of-the-artStability combined with flexibility

Page 11: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

11

Elementary or advanced process?

State-of-practiceTo small or too large process

State-of-the-artManaged process evolution

Specifications grow and grow and grow…

State-of-practiceMonolithic specifications

State-of-the-artTailored Requirements Databases

Page 12: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

12

Overloaded Requirements Management

State-of-practiceProcess is trashed by lack of early screening

State-of-the-artControlled requirements selection quality and screening

Resource planning Release planning

State-of-practiceUncertain estimates of cost and value

State-of-the-artSystematic learning from estimation outcomes

Page 13: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

13

Living withchangingrequirements

State-of-practiceEngineers want to “freeze” requirements

State-of-the-artContinuous and controlled allocation of requirements, readiness for controlled changes

Living withdesigninfiltration

State-of-practiceUnnecesssary restrictions imposed by low-level requirements

State-of-the-artManagement of appropriate requirements abstraction level

Page 14: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

14

Requirements are invented rather than discovered

State-of-practiceBlinded by technology or passively reacting on current market

State-of-the-art Balancing market pull

and technology push

Strategic innovation process connected to requirements engineering

Requirementsdependenciesand bundling

State-of-practiceDependencies are treated ad hoc

State-of-the-artMost important dependencies are managed by bundling and links

Page 15: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

15

Kravberoende [Carlshamre et al., 2001]

AND Ömsesidigt OCH: A kräver B och vice versaPrinter kräver drivrutin och vice versa för att funka

REQUIRES Ensidigt OCH: A kräver B men ej vice versaSkicka epost kräver nätverk men inte tvärtom

TEMPORAL A måste implementeras före BAtt ”lägga till” bör implementeras före ”ta bort”

CVALUE A&B har annat kundvärde än var för sigon-line manual minskar värdet av tryckt manual

ICOST A&B har annan kostnad än var för sigKrav på högre prestanda ökar impl. kostnaden

OR Bara en av A eller B behöver implementerasRitfunktion integrerad i ordbehandlare eller länk till annat ritverktyg

Technical Platform (HW+SW) Release iTechnical Platform (HW+SW) Release i

Application Platform (HW+SW) Release jApplication Platform (HW+SW) Release j

Layers of Platforms

Technical Platform (HW+SW) Release i

Application Platform (HW+SW) Release j

ProductA Rel m

ProductB Rel n

Company X

Company YIn-house platform

Subcontracted platform

Page 16: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

16

Platforms as product lines => Synchronization Challenge

TimeMilestone

Internal platform(HW/SW code base)

Technical platform product

Internal system & application platform

Mobile product projects

Requirements in sync over borders?

Consumers

Supplier

SoCStatement ofCompliance

RoadmapsIntegrator

Operator Retailer DeviceCompetitor

PlatformCompetitor

SRSSystem Req Spec

for integration platform

Product Management

IntegrationPlatform

Development

ProductManagement

TechnicalPlatform

Development

RequriementsSub-domain

working groups

Roadmaps

ChangeRequest

Hotlist

MaintenanceRelease

ArchitectureReguirements

RequriementsSub-domain

working groups

SRSSystem Req Spec

for technical platform

DetailedReguirements

Order

Release

Page 17: Large-scale industrial software developmentfileadmin.cs.lth.se/cs/Education/etsa01/lectures/2011/f6...Service logic Network access Codecs Platform development Mother, daughters, cluster

17

Summary

• Large-scale development require processes, organizations and tools that can cope with increasing complexity

• Most of you will work in– Large companies– Small- or medium-size companies that deliver

software or systems to large companies• Your engineering skills depend also on

– How you can combine technology and economics– Work in teams and with big organizations

34Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F6

Och sedan då....

Krav

Test

Design

Kod

Projekt-plan

Utv-process

Binär

Objektorienterad modellering och

design

Kravhantering

Programvarutestning

Programvaru-utveckling i grupp

Programvaruutveckling för stora system

Coaching av programvaruteam

Ingengörsprocessen - ekonomi och kvalitet

Konfigurations-hantering