Pressman - Introduction to Software Engineering

Embed Size (px)

Citation preview

  • 7/31/2019 Pressman - Introduction to Software Engineering

    1/14

    5/29/12

    Part

    1IntroductiontoSoftwareEngineering

    copyright 1996,

    2001, 2005R.S. Pressman & Associates,Inc.

    For University UseOnlyMay be reproduced ONLY for student use at the university

    levelwhen used in conjunction with Software Engineering: A Practitioner'sApproach. Any other reproduction or use is expressly

    prohibited.This presentation, slides, or hardcopy may NOT be usedfor

    short courses, industry seminars, or consulting

    purposes.

    1

  • 7/31/2019 Pressman - Introduction to Software Engineering

    2/14

    5/29/12

    Softwares Dual

    Role Software is aproduct Delivers computing

    potential Produces, manages, acquires, modifies, displays,

    ortransmitsinformation Software is a vehicle for delivering a

    productSupports or directly provides system functionality

    Controls other programs (e.g., an operatingsystem)

    Effects communications (e.g., networking

    software)2

  • 7/31/2019 Pressman - Introduction to Software Engineering

    3/14

    5/29/12

    What is

    Software?Software is a set of items orobjects

    that form a configuration that

    includes

    programsdocuments

    data ...

    3

  • 7/31/2019 Pressman - Introduction to Software Engineering

    4/14

    5/29/12

    What is

    Software? software isengineered software doesnt wearout

    software is complex

    4

  • 7/31/2019 Pressman - Introduction to Software Engineering

    5/14

    5/29/12

    Wear vs.

    Deterioration increasedfailurerate due to sideeffectsFailu

    re rate

    change

    actualcurve

    idealizedcurve

    Time

    5

  • 7/31/2019 Pressman - Introduction to Software Engineering

    6/14

    5/29/12

    Software

    ApplicationsSystemsoftwareApplicationsoftwareEngineering/scientific

    software

    Embedded software

    Product-line software

    WebApps (Web

    applications)

    AI software6

  • 7/31/2019 Pressman - Introduction to Software Engineering

    7/14

    5/29/12

    SoftwareNew Categories

    Ubiquitous computingwireless networks

    Netsourcingthe Web as a computingengine

    Open sourcefree source code open tothe

    computing community (a blessing, but also

    apotential curse!)

    Software for

    nanotechnologies7

  • 7/31/2019 Pressman - Introduction to Software Engineering

    8/14

    5/29/12

    Legacy

    Software Software must be adapted to meet the needs ofnewcomputing environments or

    technology. Software must be enhanced to implement newbusinessrequirement

    s. Software must be extended to make itinteroperablewith other more modern systems or

    databases. Software must be re-architected to make it viable

    withina networkenvironment.

    8

  • 7/31/2019 Pressman - Introduction to Software Engineering

    9/14

    5/29/12

    E-Type

    Systems E-TypeSystems:Software that has been implemented in a real-

    world

    computing context and will therefore evolve overtime

    9

  • 7/31/2019 Pressman - Introduction to Software Engineering

    10/14

    5/29/12

    Software

    EvolutionThe Law of Continuing Change (1974): E-type systems must be continually adapted else theybecomeprogressively less satisfactory.The Law of Increasing Complexity (1974): As an E-type system evolves its complexity increasesunlesswork is done to maintain or reduce it.The Law of Self Regulation (1974): The E-type system evolution process is self-regulatingwithdistribution of product and process measures close to normal.The Law of Conservation of Organizational Stability (1980): The average effective global activity rateinan evolving E-type system is invariant over product lifetime.The Law of Conservation of Familiarity (1980): As an E-type system evolves all associated with it,developers, sales personnel, users, for example, must maintain mastery of its content and behaviortoachieve satisfactory evolution.The Law of Continuing Growth (1980): The functional content of E-type systems must becontinuallyincreased to maintain user satisfaction over their lifetime.The Law of Declining Quality (1996): The quality of E-type systems will appear to be declining unlesstheyare rigorously maintained and adapted to operational environment changes.The Feedback System Law (1996): E-type evolution processes constitute multi-level, multi-loop,multi-agent feedback systems and must be treated as such to achieve significant improvement over anyreasonable base.

    1

    0

  • 7/31/2019 Pressman - Introduction to Software Engineering

    11/14

    5/29/12

    Software

    Myths Affect managers, customers (and othernon-technical stakeholders) and

    practitioners Are believable because they often have elements

    oftruth,

    but

    Invariably lead to bad

    decisions,

    therefore Insist on reality as you navigate your waythroughsoftware

    engineering 11

  • 7/31/2019 Pressman - Introduction to Software Engineering

    12/14

    5/29/12

    Management

    Myths We already have a book of standardsandprocedures for building software. It does provide

    my

    people with everything they need to know If my project is behind the schedule, I alwayscanadd more programmers to it and catch up

    (a.k.a. The Mongolian Hordeconcept) If I decide to outsource the software project to a

    third party, I can just relax: Let them build it, andI

    will just pocket my profits 1

    2

  • 7/31/2019 Pressman - Introduction to Software Engineering

    13/14

    5/29/12

    Customer

    Myths A general statement of objectives is sufficientto

    begin writing programs - we can fill in the

    detailslater Project requirements continually change butthischange can easily be accommodated

    because

    software is flexible

    1

    3

  • 7/31/2019 Pressman - Introduction to Software Engineering

    14/14

    5/29/12

    Practitioners

    Myths Lets start coding ASAP, because once we writetheprogram and get it to work, our job is done

    Until I get the program running, I have no way ofassessingits quality

    The only deliverable work product for a successfulprojectis the working program

    Software engineering is baloney. It makes us createtonsof paperwork, only to slow us down

    14