High Level Modeling to Support Software Design

32 

Loading....

Loading....

Loading....

Loading....

Loading....

Full text

(1)

High Level Modeling to Support Software Design

by

Gerrit Muller

Buskerud University College

e-mail:

gaudisite@gmail.com

www.gaudisite.nl

Abstract

High level models are simple models with the primary goal to support

under-standing, analysis, communication and decision making. The models have different

complementary representations and formats, e.g. visual diagrams, mathematical

formulas, and quantitative information and graphs.

The models are made at different levels to guide software design choices:

enter-prise level, specification level, and design.

Distribution

This article or presentation is written as part of the Gaudí project. The Gaudí project philosophy is to improve by obtaining frequent feedback. Frequent feedback is pursued by an open creation process. This document is published as intermediate or nearly mature version to get feedback. Further distribution is allowed as long as the document remains complete and unchanged.

March 6, 2013

status: preliminary draft

(2)

Figure Of Contents

TM

illustration by case

reflection on modeling

approach

problem statement

technical

conclusions

complexity

context

high-level

High Level Modeling to Support Software Design 2 Gerrit Muller

version: 0

March 6, 2013 HLMSDlogo

(3)

Ubiquitous Information and Services

consumers

business

business

businesses

government

...

IT infrastructure

IT

companies

information and services

anywhere, anytime

High Level Modeling to Support Software Design 3 Gerrit Muller

version: 0

March 6, 2013 HLMSDubiquitous

(4)

But, Horrendous Failure Rate

slow response, outages, human-less helpdesks, silly

excuses (the computer could not...), identity-theft,

lost privacy

consumers

businessbusiness

businesses

government

...

IT infrastructure

IT

companies

information and services

anywhere, anytime

late delivery of new products,

poor scaling of new services,

interference of features,

...

budget overruns

total failures

High Level Modeling to Support Software Design 4 Gerrit Muller

version: 0

March 6, 2013 HLMSDhell

(5)

Typical Architecture Levels in IT

enterprise

enterprise context

system specification

system design

sub-system

system

sub-

system

sub-local SW choice

enterprise architecture

information architecture

system architecture

High Level Modeling to Support Software Design 5 Gerrit Muller

version: 0

March 6, 2013 HLMSDlevels

(6)

illustration by case

reflection on modeling

approach

problem statement

technical

conclusions

complexity

context

high-level

High Level Modeling to Support Software Design 6 Gerrit Muller

version: 0

March 6, 2013 HLMSDlogoApproach

(7)

Simplified Framework for Modeling

life cycle context

system

usage context

enterprise &

users

requirements

black box view

design

realization

technology

business

:

profit, etc.

operational costs

stakeholder benefits

workload

risks

key performance

:

throughput, response

reliability

availability

scalability

...

(emerging?) properties

:

resource utilization

load

latency, throughput

quality, accuracy

...

and their mutual relations

creation

life cycle business

business

:

profit, etc.

operational costs

stakeholder benefits

workload

risks

High Level Modeling to Support Software Design 7 Gerrit Muller

version: 0

March 6, 2013 MAOwhatModeling

(8)

Recommendations for Modeling

objectives

principles

recommendations

Time-box

Iterate

Multi-view

Measure and validate

Quantify early

Visualize

System and its context

Analysis of accuracy and

credibility

(Simple) mathematical models

Multiple levels of abstraction

use feedback

work incremental

work evolutionary

support communication

facilitate reasoning

support decision making

be explicit

make issues tangible

create

maintain

understanding

insight

overview

translate into

translate into

help to

achieve

High Level Modeling to Support Software Design 8 Gerrit Muller

version: 0

March 6, 2013 MAOrecommendations

(9)

illustration by case

reflection on modeling

approach

problem statement

technical

conclusions

complexity

context

high-level

High Level Modeling to Support Software Design 9 Gerrit Muller

version: 0

March 6, 2013 HLMSDlogoTechnical

(10)

Example Web Shop

data

base

server

web

server

client

client

network

network

client

screen

screen

screen

product

descriptions

logistics

ERP

financial

customer

relations

exhibit products

sales & order intake

order handling

stock handling

financial bookkeeping

consumer

browse products

order

pay

track

customer relation

management

update catalogue

advertize

after sales support

enterprise

logistics

finance

product management

customer managment

High Level Modeling to Support Software Design 10 Gerrit Muller

version: 0

March 6, 2013 MAFTexampleWebShop

(11)

Web Shop: NFR’s, Properties and Critical Technologies

system

NFR's:

performance browsing

initial cost

running costs

reliability/availability

scalability order rate

maintainability

effort product changes

effort staff changes

security

(emerging?) properties

:

resource utilization

server load, capacity

memory load, capacity

response latency

redundancy

order throughput

product data quality

product definition flow

staff definition flow

security design

compartimentalization

authentication

encryption

critical technologies

caching

load balancing

pipelining

virtual memory

memory management

data base transactions

XML for customization

and configuration

firewalls

virtual networks

...

1

2

3

High Level Modeling to Support Software Design 11 Gerrit Muller

version: 0

March 6, 2013 MASMwhatWebShop

(12)

Purpose of Picture Cache Model in Web Shop Context

data

base

server

web

server

client

client

network

network

client

screen

screen

screen

product

descriptions

logistics

ERP

financial

customer

relations

picture

cache

required

server capacity

response time

required

server capacity

browse

products

exhibit

products

High Level Modeling to Support Software Design 12 Gerrit Muller

version: 0

March 6, 2013 MASMwebShopPictureCache

(13)

illustration by case

reflection on modeling

approach

problem statement

technical

conclusions

complexity

context

high-level

High Level Modeling to Support Software Design 13 Gerrit Muller

version: 0

March 6, 2013 HLMSDlogoComplexity

(14)

Level of Abstraction Single System

10

0

10

1

10

6

10

5

10

4

10

3

10

2

10

7

static system definition

monodisciplinary

number of

details

system

requirements

multidisciplinary

design

High Level Modeling to Support Software Design 14 Gerrit Muller

version: 0

March 6, 2013 RAPpyramid

(15)

From system to Product Family or Portfolio

number of

details

system

multidisciplinary

monodisciplinary

10

0

10

1

10

6

10

5

10

4

10

3

10

2

10

7

10

0

10

1

10

6

10

5

10

4

10

3

10

2

10

7

10

8

10

9

systems

multidisciplinary

monodisciplinary

system

portfolio

increase

High Level Modeling to Support Software Design 15 Gerrit Muller

version: 0

March 6, 2013 DRALpyramidGrowth

(16)

Product Family in Context

10

0

10

6

10

3

10

9

systems

multidisciplinary design

parts, connections, lines of code

10

3

10

9

10

6

stakeholders

enterprise

enterprise context

number of

details

High Level Modeling to Support Software Design 16 Gerrit Muller

version: 0

March 6, 2013 RAPdiabolo

(17)

RA: Capturing the Essence

10

0

10

6

10

3

10

9

systems

multi-disciplinary design

parts, connections, lines of code

10

3

10

9

10

6

stakeholders

enterprise

enterprise context

number of

details

high-level

models

some context

details are

essential

some technical

details are

essential

high-level

focus

area

High Level Modeling to Support Software Design 17 Gerrit Muller

version: 0

March 6, 2013 HLMSDdiabolo

(18)

illustration by case

reflection on modeling

approach

problem statement

technical

conclusions

complexity

context

high-level

High Level Modeling to Support Software Design 18 Gerrit Muller

version: 0

March 6, 2013 HLMSDlogoContext

(19)

Data Sources of Web Server

content

provider

content

provider

web server

content

content

preparation

content

provider

client

system

configuration

shop

configuration

e.g., staff, roles

e.g. resource

allocation

data

quality?

High Level Modeling to Support Software Design 19 Gerrit Muller

version: 0

March 6, 2013 MALCwebServerChanges

(20)

Example Product Portfolio Change Books

O'Reilly Addison Wesley

publisher

system

selection

sales info

Springer

new

books per year

UK (1)

USA(2)

China(3)

206k (2005)

172k (2005)

India(21)

107k (1996)

101k (1994)

68k (1996)

12k (1996)

source: http://en.wikipedia.org/wiki/Books_published_per_country_per_year

item

sales

Amazon

"long tail"

WH Smith

source: http://en.wikipedia.org/wiki/Long_tail

product portfolio characteristics

selection depends on business

life cycle changes determined by

business characteristics

High Level Modeling to Support Software Design 20 Gerrit Muller

version: 0

March 6, 2013 MALCbookExample

(21)

Example Customer Change

Asia Pacific total

China

India

Q1 '04

48M

15M

87k

Q2 '04

54M

19M

189k

growth in

Q2 '04

12.8%

26.1%

116.8%

http://www.apira.org/download/world_broadband_statistics_q2_2004.pdf

What is the expected growth of # customers?

What is the impact on system and infrastructure?

What is the impact on CRM

(Customer Relation Management)

?

What is the impact on customer, sales support staff?

internet: broadband penetration

High Level Modeling to Support Software Design 21 Gerrit Muller

version: 0

March 6, 2013 MALCcustomerExample

(22)

Web Shop Content Update

data

base

server

web

server

client

client

network

network

screen

screen

product

descriptions

logistics

ERP

financial

customer

relations

content

definition

new content

and updates

publication

How much time/effort is needed for content updates?

How much staff is needed?

What is the impact of errors in content updates?

How many errors can be expected?

What is the impact of content updates on server loads?

High Level Modeling to Support Software Design 22 Gerrit Muller

version: 0

March 6, 2013 MALCwebShopContentUpdate

(23)

Web Shop Content Change Effort

prepare

change 1

change 2

prepare

review input

select info

layout&cosmetics

check-in

prepare

change n

verify

change n

verify

change 1

inspect source

inspect result

commit

changes

effort

changes

= n

changes

*(t

prepare

+ t

verify

)+t

commit

n

changes

per day

10

100

effort

changes

1

uur

10

uur

1000

100

uur

#fte

0.1

1

12

#fte = effort

changes

/ hours per day

t

prepare

= 4

min

t

verify

= 2

min

t

commit

= 1

min

hours per day = 8 hours with

High Level Modeling to Support Software Design 23 Gerrit Muller

version: 0

March 6, 2013 MALCeffortContentChanges

(24)

Example of Client Level Changes

Up-to-date information:

Bestsellers

What Other Customers Are

Looking At Right Now

catalogue entries

main access

through search

standard boilerplate

other advertizements

personalization

styling: frequently

updated, fashion!

snapshot of www.amazon.com

High Level Modeling to Support Software Design 24 Gerrit Muller

version: 0

March 6, 2013 MALCmoreChanges

(25)

Web Shop Security and Changes

public

internet

protected

production

area

very secure intranet

data

base

server

web

server

client

client

network

network

screen

screen

product

descriptions

logistics

ERP

financial

customer

relations

content

definition

What is the security model?

What is the impact on server loads?

What is the impact on staffing?

What is the impact of changes in staff?

What is the impact of changes on

security?

High Level Modeling to Support Software Design 25 Gerrit Muller

version: 0

March 6, 2013 MALCwebShopSecurity

(26)

Web Shop Reliability and Changes

new faults = average fault density * #changes

#errors = f( severity,hit probability,

detection probability) faults Jansen iso Janssen severity low hit probability high operator iso

sales repr high high

detection probability

low medium

High Level Modeling to Support Software Design 26 Gerrit Muller

version: 0

March 6, 2013 MALCreliability

(27)

illustration by case

reflection on modeling

approach

problem statement

technical

conclusions

complexity

context

high-level

High Level Modeling to Support Software Design 27 Gerrit Muller

version: 0

March 6, 2013 HLMSDlogoHighLevel

(28)

High Level Models Support Communication

number of

involved people

time per

iteration cycle

1 month

1 week

1 day

1 hour

1 minute

in the

architect's

head

model based

architecting

fast but

intangible

tangible

1

10

High Level Modeling to Support Software Design 28 Gerrit Muller

version: 0

March 6, 2013 MAREcommunication

(29)

Model Life Cycle

m

m

m

m

m

m

m

m

m

m

m

m

m

m

m

m

m

understanding

exploration

optimization

verification

try out

models

m

m

m

m

m

m

m

m

m

m

m

m

abandoned

abandoned

m

m

archived

not maintained

simple and small

models

substantial models

m

?

?

most try out models never

leave the desk or computer

of the architect!

archived

not maintained

archived

not maintained

re-used in

next project next projectre-used in next projectre-used in

re-used in next project re-used in next project re-used in next project

many small and simple models

are used only once;

some are re-used in next projects

substantial models capture core domain know how;

they evolve often from project to project.

creation and evolution of intellectual property assets

re-use

re-use

High Level Modeling to Support Software Design 29 Gerrit Muller

version: 0

March 6, 2013 MAREmodelLifeCycle

(30)

Example Model Life Cycle

understanding

exploration

optimization

verification

try out

models

simple and small

models

substantial models

(IP assets)

load/cost

load/cost

peak impact

customer

global

distribution

web server

performance

global

customer

demographics

function

mix

webshop

benchmark

suite

load/stress

test suite

integral

load

model

High Level Modeling to Support Software Design 30 Gerrit Muller

version: 0

March 6, 2013 MAREmodelLifeCycleExample

(31)

illustration by case

reflection on modeling

approach

problem statement

technical

conclusions

complexity

context

high-level

High Level Modeling to Support Software Design 31 Gerrit Muller

version: 0

March 6, 2013 HLMSDlogoConclusions

(32)

Conclusions

lack of integral understanding

of software in human and business context

causes horrendous failure rate of IT projects and systems

simple high-level models

create understanding across specialties

and stimulate fact based decision making

High Level Modeling to Support Software Design 32 Gerrit Muller

version: 0

March 6, 2013 HLMSDconclusions

Figure

Updating...

References

Updating...

Related subjects :