SoftEng Process Models

Embed Size (px)

Citation preview

  • 8/6/2019 SoftEng Process Models

    1/22

    NEU CS424 SoftwareEngineering

    Software Engineering

    The application of systematic,

    disciplined, quantifiable approach to the

    development, operation, and

    maintenance of software, that is the

    application of engineering to software

    - IEEE

  • 8/6/2019 SoftEng Process Models

    2/22

    NEU CS424 SoftwareEngineering

    MANAGEMENT: Managers

    and leaders should promote an

    ethical approach to the

    management of software

    development PROFESSION: Advance the

    integrity and reputation of the

    profession

    COLLEAGUES: Be fair and

    supportive of colleagues

    SELF: Participate in lifelonglearning, promote ethical

    approach to the profession

    PUBLIC: Act consistently with

    the public interest

    CLIENT AND EMPLOYER: Act

    in the best interest of client and

    employer, consistent with thepublic interest

    PRODUCT: Ensure product

    meets highest professional

    standards

    JUDGMENT: Maintain integrity

    and independence inprofessional judgment

    ACM/IEEE Code of Ethics(available at http://www.acm.org/serving/se/code.htm)

  • 8/6/2019 SoftEng Process Models

    3/22

    NEU CS424 SoftwareEngineering

    Software != CodeSource code is asubsetsoftware project

    Requirements and specification

    Design documents

    Test suites, test plans

    InterfacesDocumentation

    Software is notwhat we think it is

  • 8/6/2019 SoftEng Process Models

    4/22

    NEU CS424 SoftwareEngineering

    Large Software != Lots of Code

    Large software brings up several issues of scale: Total comprehensibility must be forfeited

    Solo programming becomes impossible

    Communication becomes an essential challenge

    Changing requirements are an everyday reality

    Lifetime is measured in years or decades

    People dont know what they want

    Large software is notwhat we think it is

  • 8/6/2019 SoftEng Process Models

    5/22

    NEU CS424 SoftwareEngineering

    Software as a Product

    Software is expensive!

    The major cost is your salary!

    Every software project has a trade-off between:

    Functionality

    Resources (cost)

    Timeliness

  • 8/6/2019 SoftEng Process Models

    6/22

    NEU CS424 SoftwareEngineering

    Client (a.k.a. Customer)

    # The client provides resources and expects some product

    in return.

    # Client satisfaction is the primary measurement of

    success.

    Question: Who is the client for Microsoft Excel?

  • 8/6/2019 SoftEng Process Models

    7/22

    NEU CS424 SoftwareEngineering

    Variety of Software Products

    Examples

    Real time: air traffic control

    Embedded systems: digital camera, GPS

    Data processing: telephone billing, pensionsInformation systems: web sites, digital libraries

    Sensors: weather data

    System software: operating systems, compilers

    Communications: routers, mobile telephonesOffices: word processing, video conferences

    Scientific: simulations, weather forecasting

    Graphical: film making, design

    etc., etc., etc., ....

  • 8/6/2019 SoftEng Process Models

    8/22

    NEU CS424 SoftwareEngineering

    General characteristics

    Usability

    Maintainability

    DependabilityEfficiency

    Good software products require good programming,

    but ...

    Programming quality is the means to the end, not the

    end itself.

    Characteristics of All Software

    Products

  • 8/6/2019 SoftEng Process Models

    9/22

    NEU CS424 SoftwareEngineering

    Usefulness

    Modularization

    Reliability Robustness

    Usability

    Efficiency

    Flexibility

    Good internal documentation Good external documentation

    Software Qualities

  • 8/6/2019 SoftEng Process Models

    10/22

    NEU CS424 SoftwareEngineering

    Correctness

    - No errors

    Usefulness- Does what we want to do

    Minimal production effort

    minimal cost

    minimal time maximum profit

    Minimal maintenance effort

    Ideal Goals of Software

    Engineering

  • 8/6/2019 SoftEng Process Models

    11/22

    NEU CS424 SoftwareEngineering

    Categories of Product

    Categories of client and software product:

    # Generic (e.g., Microsoft Excel)

    # Bespoke (customized) (e.g., IRS internal

    system)

    Many systems are customized versions of genericpackages (e.g., Cornell's payroll system)

  • 8/6/2019 SoftEng Process Models

    12/22

    NEU CS424 SoftwareEngineering

    Variety of Software Products

    Software products are very varied

    --> Client requirements are very different

    --> There is no standard process for software engineering

    --> There is no best language, operating system, platform,

    database system, development environment, etc.

    A skilled software developer knows about a wide variety ofapproaches, methods, tools. The craft of software engineering

    is to select appropriate methods for each project and apply them

    effectively.

  • 8/6/2019 SoftEng Process Models

    13/22

    NEU CS424 SoftwareEngineering

    Professional Responsibility

    Organizations put trust in software developers:

    Competence: Software that does not work effectively can

    destroy an organization.

    Confidentiality: Software developers and systems

    administrators may have access to highly confidential

    information (e.g., trade secrets, personal data).

    Legal environment: Software exists in a complex legalenvironment (e.g., intellectual property, obscenity).

    Acceptable use and misuse: Computer abuse can paralyze an

    organization (e.g., the Internet worm).

  • 8/6/2019 SoftEng Process Models

    14/22

    NEU CS424 SoftwareEngineering

    Requirements Analysis & Specification

    Conceptual/System Design

    Detailed/Program Design

    Implementation/Coding

    Unit & Integration Testing

    System Testing

    System Delivery

    Maintenance

    Software Development Stages

  • 8/6/2019 SoftEng Process Models

    15/22

    NEU CS424 SoftwareEngineering

    Waterfall Model

    V Model

    Prototyping Model

    Operational Specification Model

    Phased Development Model Spiral Model

    Software Lifecycle Models

  • 8/6/2019 SoftEng Process Models

    16/22

    NEU CS424 SoftwareEngineering

    Waterfall ModelREQUIREMENT

    NALYSIS

    SYSTEM

    DESI N

    PROGRAM

    DESIGN

    CODING

    UNIT & INTE-

    GRATION TESTING

    SYSTEM

    TESTING

    ACCEPTANCE

    TESTINGOPERATION

    & MAINTENANCE[Pfleeger 98]

  • 8/6/2019 SoftEng Process Models

    17/22

    NEU CS424 SoftwareEngineering

    V ModelREQUIREMENTS

    ANALYSIS

    SYSTEMDESIGN

    PROGRAM

    DESIGN

    CODING

    UNIT & INTE-

    GRATION TESTING

    SYSTEM

    TESTING

    ACCEPTANCE

    TESTING

    OPERATION

    & MAINTENANCE

    Veri y design

    Validate requirements

    [Pfleeger 98]

  • 8/6/2019 SoftEng Process Models

    18/22

    NEU CS424 SoftwareEngineering

    Prototyping Model

    Listen toCustomer

    Customer

    Test-drives

    Mock-up

    Build/ReviseMock-Up

    [Pressman 97]

  • 8/6/2019 SoftEng Process Models

    19/22

    NEU CS424 SoftwareEngineering

    Prototyping ModelLIST OF

    REVISIONS

    LIST OF

    REVISIONS

    LIST OF

    REVISIONS

    PROTOTYPE

    REQUIREMENTS

    PROTOTYPE

    DESIGN

    PROTOTYPE

    SYSTEMTEST

    DELIVERED

    SYSTEMSYSTEM

    REQUIREMENTS

    (sometimes informal

    or incomplete)

    revise

    prototype

    user/

    customer

    review

    [Pfleeger 98]

  • 8/6/2019 SoftEng Process Models

    20/22

    NEU CS424 SoftwareEngineering

    Operational Specification

    Model

    TEST

    DELIVEREDSYSTEM

    Execute and

    Revise

    OPERATIONAL

    SPECI ICATION

    (problem-oriented)

    TRANSFORMED

    SPECIFICATION

    (implementation-

    oriented)

    SYSTEM

    REQUIREMENTS

    (sometimes informal

    or incomplete)

    [Pfleeger 98]

  • 8/6/2019 SoftEng Process Models

    21/22

    NEU CS424 SoftwareEngineering

    Phased Development ModelDevelopment systems

    Production systems

    DEVELOPERS

    USERS

    Build Release 1

    Use Release 1

    Build Release 2

    Use Release 2

    Build Release 3

    Use Release 3

    Time

    [Pfleeger 98]

  • 8/6/2019 SoftEng Process Models

    22/22

    NEU CS424 SoftwareEngineering

    Boehms Spiral Model

    PLAN DEVELOP AND TEST

    DETERMINE GOALS,ALTERNATIVES,CONSTRAINTS

    EVALUATE ALTERNATIVESAND RISKS

    Requirements,

    life-cycle plan

    Budget1

    Risk analysis1

    Risk analysis 2

    Risk analysis3

    Risk analysis 4

    Budget2

    Budget3

    Budget 4 Prototype1

    Proto -

    type 2

    Proto-

    type 3

    Proto-

    type 4

    Concept of

    operationDetailed

    design

    Code

    Unit test

    System

    testAcceptance

    test

    Implementation

    plan

    [Pfleeger 98]

    start