Software Engineering Diagrams

  • Upload
    ivanbah

  • View
    247

  • Download
    2

Embed Size (px)

DESCRIPTION

Some interesting diagrams

Citation preview

  • www.construx.com

    Seven Diagrams Every

    Software Developer

    Should Understand

  • Also Known As

  • Copyright Notice

    These materials are 1996-2014 Construx Software Builders,

    Inc.

    All Rights Reserved. No part of the contents of this seminar

    may be reproduced or transmitted in any form or by any

    means without the written permission of Construx Software

    Builders, Inc.

  • Introduction

  • 5 Construx

    How Not to Be Surprised in Software Development

    My Background

    300 books and articles?

    600 books and articles!

    Another 300 books

    and articles!

    Another ~1000 papers,

    of which only 250

    were publishable

  • 6 Construx

    I did not work as hard on my next book,

    Software Project Survival Guide

  • A History of

    Attempts to Explain

    Software

    Development

  • 8 Construx

    A Long Line of Attempts to Explain

    Software Development

    http://www.computer.org/web/swebok/https://www.google.com/url?sa=i&rct=j&q=&esrc=s&frm=1&source=images&cd=&cad=rja&docid=GLKR9ZGluCKhwM&tbnid=_6H1hCPzzz_n6M:&ved=0CAUQjRw&url=https://www.computer.org/portal/web/certification/96&ei=q7h-Uu-xKeS6iwLLqoCwBA&bvm=bv.56146854,d.cGE&psig=AFQjCNEJFhr34SQZlJuyNlQNCjZbdOP9UQ&ust=1384122921575253http://www.google.com/url?sa=i&rct=j&q=&esrc=s&frm=1&source=images&cd=&cad=rja&docid=D5aqBEUOo6xCMM&tbnid=EOSqWkQsIw3cnM:&ved=0CAUQjRw&url=http://www.canyons.org/SubTabGeneric.jsp?team=sccac&_stabid_=49518&ei=N7l-UqaIHefTiwKM8IGgCw&bvm=bv.56146854,d.cGE&psig=AFQjCNH6EQW9-xYqVkG4dMBzgmq-lVrO9A&ust=1384123058509830
  • 9 Construx

    Why do we Need to Help People

    Understand Software Engineering?

    http://www.google.com/url?sa=i&rct=j&q=&esrc=s&frm=1&source=images&cd=&cad=rja&docid=D5aqBEUOo6xCMM&tbnid=EOSqWkQsIw3cnM:&ved=0CAUQjRw&url=http://www.canyons.org/SubTabGeneric.jsp?team=sccac&_stabid_=49518&ei=N7l-UqaIHefTiwKM8IGgCw&bvm=bv.56146854,d.cGE&psig=AFQjCNH6EQW9-xYqVkG4dMBzgmq-lVrO9A&ust=1384123058509830
  • 10 Construx

    Why do we Need to Help Other People

    Understand Software Engineering? (cont.)

    the pieces from several contractors had to work

    have after the various parts were integrated was

    difficult until the site actually went online, Bataille

    about 500 million lines of software code. By

    typically about one-

  • 11 Construx

    Latest Attempt to Explain Software Development

    Software

    Engineering

    Essentials Lecture Series

    CxLearn.com

  • 12 Construx

    The Goal

    Help software professionals develop mental

    models and frameworks to understand and

    improve their software projects, to understand

    the context for current software practices,

    and to evaluate new developments in

    software engineering .

  • Talk Roadmap

  • 14 Construx

    Roadmap for This Talk

    Introduce four core influences

    Highlight seven key diagrams

    Introduce many other diagrams

    that are also informative

    Candidate

    Top 7 Diagram

  • Four Core Software

    Influences

  • 16 Construx

    Four Core Influences

    SIZE (diseconomy of scale; failure rate ; specializations; mix of activities)

    UNCERTAINTY (intellectual phases; cone of uncertainty; feature staircase vs. feature buildup; risk management; effort vs. certainty curve)

    DEFECTS (DCI, defect detection lag, defect removal techniques in series, relationship to process stability)

    HUMAN VARIATION (effect on research; effect on selection of methods (familiar vs. unfamiliar); effect on team composition, team

    cohesion, recruiting, and retention; focus on perfect execution vs. perfect

    plans; implication for favoring robust methods)

  • Core Influence:

    Size

  • 18 Construx

    We have many informative diagrams. Which really

    explains the essence of Size in Software?

    Team Size

    Pro

    ductivity

    1 ~7 ~50 ~250-350

    Outp

    ut

  • 19

    Diseconomy of Scale (Fred Brooks)

    Efficiency is an N 2 function of the number of

    people on the project due to communication

    paths: N*(N -1)/2

    1 person =

    0 paths

    2 people =

    1 path

    3 people =

    3 paths

    4 people =

    6 paths

    5 people =

    10 paths

  • 20

    Diseconomy of Scale (Larry Putnam)

    0

    5

    10

    15

    20

    25

    30

    35

    40

    45

    50

    1.5-3 3-5 5-7 9-11 15-20

    Team Size

    Sch

    ed

    ule

    (M

    on

    ths)

    0

    50

    100

    150

    200

    250

    300

    Eff

    ort

    (S

    taff

    Mo

    nth

    s)

    Schedule Effort

    Adapted from Lawrence H. Putnam and Ware Myers , Five Core Metrics: The Intelligence

    Behind Successful Software Management

  • 21

    Efficiency is an N 2 function of the number of

    people on the project due to communication

    paths: N*(N -1)/2

    1 person =

    0 paths

    2 people =

    1 path

    3 people =

    3 paths

    4 people =

    6 paths

    5 people =

    10 paths

    50 people =

    1225 paths

  • 22

    Step Function

    Team Size

    Pro

    du

    ctivity

    1 ~7 ~50 ~250-350

  • 23

    Diseconomy of Scale:

    Step Function, Output

    Team Size

    Pro

    du

    ctivity

    1 ~7 ~50 ~250-350

    Outp

    ut

  • 24 Construx

    Failure Rates by Size

    Source: Adapted from Applied Software Measurement, 3 rd Edition (Jones 2008), Estimating Software Costs (Jones 1998).

    Project Outcomes by Project Size

    0%

    10%

    20%

    30%

    40%

    50%

    60%

    70%

    80%

    90%

    100%

    10 FP

    500-1000 LOC

    100 FP

    5K-10K LOC

    1,000 FP

    50K-100K LOC

    10,000 FP

    500K-1M LOC

    100,000 FP

    5M-10M LOC

    Pe

    rce

    nta

    ge

    Failed

    Late

    On Time

    Early

  • 25 Construx

    Error Rate by Size? Productivity by Size?

    -

    5,000

    10,000

    15,000

    20,000

    25,000

    30,000

    1 KLOC 10KLOC

    100KLOC

    1,000KLOC

    10,000KLOC

    LO

    C /

    Sta

    ff Y

    ea

    r

    Productivity by Size

    High LOC/Staff Year

    Nominal

    Low LOC/Staff Year

    This implies that a 500 MLOC

    healthcare.gov would

    require at least

    100,000 staff -years of effort

    (all since 2010!)

    -

    20

    40

    60

    80

    100

    120

  • 26 Construx

    Specializations by Organization Size

  • Cocomo Factors by

    Size