SE Chapter01

Embed Size (px)

Citation preview

  • 7/28/2019 SE Chapter01

    1/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 1

    Chapter 1

    Software & Software Engineering

    Slide Set to accompany

    Software Engineering: A Practitioners Approach, 7/eby Roger S. Pressman

    Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman

    For non-profit educational use only

    May be reproduced ONLY for student use at the university level when used in conjunctionwith Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is

    prohibited without the express written permission of the author.

    All copyright information MUST appear if these slides are posted on a website for student

    use.

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 2

    What is Software?

    Software is: (1) instructions(computerprograms) that when executed provide desiredfeatures, function, and performance; (2) data

    structuresthat enable the programs toadequately manipulate information and (3)documentationthat describes the operationand use of the programs.

  • 7/28/2019 SE Chapter01

    2/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 3

    What is Software?

    Software is developed or engineered, it isnot manufactured in the classical sense.

    Software doesn't "wear out."

    Although the industry is moving towardcomponent-based construction, mostsoftware continues to be custom-built.

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 4

    Wear vs. Deterioration

    idealized curve

    change

    actual curve

    Failurerate

    Time

    increased failurerate due to side effects

  • 7/28/2019 SE Chapter01

    3/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 5

    Software Applications

    system software

    application software

    engineering/scientificsoftware

    embedded software

    product-line software

    WebApps (Web

    applications) AI software

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 6

    SoftwareNew Categories

    Open world computingpervasive,distributed computing

    Ubiquitous computingwireless networks

    Netsourcingthe Web as a computingengine

    Open sourcefree source code open tothe computing community (a blessing, butalso a potential curse!)

  • 7/28/2019 SE Chapter01

    4/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 7

    Legacy Software

    software must be adapted to meet the needsof new computing environments ortechnology.

    software must be enhanced to implement newbusiness requirements.

    software must be extended to make itinteroperable with other more modernsystems or databases.

    software must be re-architected to make itviable within a network environment.

    Why must it change?

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 8

    Software Engineering

    Some realities:

    a concerted effort should be made to understand theproblem before a software solution is developed

    design becomes a pivotal activity

    software should exhibit high quality

    software should be maintainable

    The seminal definition:

    [Software engineering is] the establishment and useofsound engineering principlesin order to obtaineconomicallysoftware that isreliable and worksefficientlyonreal machines.

  • 7/28/2019 SE Chapter01

    5/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 9

    Software Engineering

    The IEEE definition: Software Engineering: (1) The application of a

    systematic, disciplined, quantifiable approachto thedevelopment, operation, and maintenanceofsoftware; that is, the application of engineering tosoftware. (2) The study of approaches as in (1).

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 10

    A Layered Technology

    Software Engineering

    aa qualityquality focusfocus

    process modelprocess model

    methodsmethods

    toolstools

  • 7/28/2019 SE Chapter01

    6/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 11

    A Process Framework

    Process frameworkProcess framework

    Framework activitiesFramework activities

    work tasks

    work products

    milestones & deliverables

    QA checkpoints

    Umbrella ActivitiesUmbrella Activities

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 12

    Framework Activities Communication

    Planning

    Modeling

    Analysis of requirements Design

    Construction Code generation

    Testing

    Deployment

  • 7/28/2019 SE Chapter01

    7/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 13

    Umbrella Activities Software project management

    Formal technical reviews

    Software quality assurance

    Software configuration management

    Work product preparation and production

    Reusability management

    Measurement Risk management

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 14

    The Essence of Practice

    Polya suggests:

    1. Understand the problem(communication and analysis).

    2. Plan a solution(modeling and software design).

    3. Carry out the plan(code generation).

    4. Examine the result for accuracy(testing and qualityassurance).

  • 7/28/2019 SE Chapter01

    8/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 15

    Understand the Problem

    Who has a stake in the solution to theproblem?That is, who are the stakeholders?

    What are the unknowns?What data, functions,and features are required to properly solve theproblem?

    Can the problem be compartmentalized?Is itpossible to represent smaller problems thatmay be easier to understand?

    Can the problem be represented graphically?Can an analysis model be created?

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 16

    Plan the Solution

    Have you seen similar problems before?Are therepatterns that are recognizable in a potential solution? Isthere existing software that implements the data,functions, and features that are required?

    Has a similar problem been solved?If so, are elementsof the solution reusable?

    Can subproblems be defined?If so, are solutions readilyapparent for the subproblems?

    Can you represent a solution in a manner that leads toeffective implementation?Can a design model becreated?

  • 7/28/2019 SE Chapter01

    9/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 17

    Carry Out the Plan

    Does the solution conform to the plan?Issource code traceable to the design model?

    Is each component part of the solution provablycorrect?Has the design and code beenreviewed, or better, have correctness proofs

    been applied to algorithm?

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 18

    Examine the Result

    Is it possible to test each component part of thesolution?Has a reasonable testing strategybeen implemented?

    Does the solution produce results that conformto the data, functions, and features that arerequired?Has the software been validated

    against all stakeholder requirements?

  • 7/28/2019 SE Chapter01

    10/10

    These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 19

    Software Myths

    Affect managers, customers (andother non-technical stakeholders)and practitioners

    Are believable because they oftenhave elements of truth,

    but

    Invariably lead to bad decisions,

    therefore

    Insist on reality as you navigate your

    way through software engineering