Software engn

download Software engn

of 48

Transcript of Software engn

  • 8/10/2019 Software engn

    1/48

    The course will enable the student to understandand appreciate:

    1. The flow of events in software developmentefforts.

    2. The role of a software engineer in system

    development efforts.

    Upon completion of this course, the student

    should be able to specify, design, implement and

    test a variety of software systems.

  • 8/10/2019 Software engn

    2/48

    Prescribed Text Book

    1. Pressman, R.S., Software Engineering: A Practitioners

    Approach, McGraw Hill Int. Student Ed., 6th Ed.,2005

    2. Hoffer, Modern System Analysis and Design, Pearson

    Education

    Reference Books

    KK Aggarwal, Yogesh Singh, Software Engineering, 2nd

    Ed. New Age Publications, 2005

    Jalote, P., An Integrated Approach to Software

    Engineering, 3rd Ed., Narosa, 2005

    Sommerville, I., Software Engineering, Pearson

    Education, 7th Ed., 2005

  • 8/10/2019 Software engn

    3/48

    Lecture Break UpLecture No. Topic

    01 Fundamentals

    02-05 Software Process and Models

    06-11 Software Requirements Engineering, Process Modeling, Data

    Modeling ,Software Requirements Specification

    12-16 Software Design, Process Oriented Design, User Interface Design

    17-20 Software Testing ,Building Test Plan

    21-23 Software Maintenance, Configuration Management

    24 Quality Assurance Standards

    25-26 Introduction to UML, Object Oriented Design

    Tutorials Case Studies

    Software Engineering Lab : Ms. Supriya

    Software Modeling using Rational Rose

    Lecture Break up

  • 8/10/2019 Software engn

    4/48

    Introduction

    Getting started with software

    engineering

  • 8/10/2019 Software engn

    5/48

    Objectives

    To understand the notion of software engineering

    and why it is important.

    To set out the answers to key questions about

    software engineering

  • 8/10/2019 Software engn

    6/48

    Historical Data

    Data on 28,000 projects completed in 2000

    This is the

    SORRYstate

    of SoftwareEngineering

    Today!

    Completed Late,

    over budget,

    and/or with

    features missing53%

    Cancelled

    18%

    Successful

    29%

  • 8/10/2019 Software engn

    7/48

    Time (= Cost) of Postdelivery Maintenance

    Development25%

    Post-Delivery

    Maintenance75%

    Total Product CostsBreakout of

    Development Costs

    Integration

    29%

    Implementation/

    Coding34%

    Design

    19%

    Requirements &

    Analysis18%

  • 8/10/2019 Software engn

    8/48

  • 8/10/2019 Software engn

    9/48

    Software costs often dominate system costs. The

    costs of software on a PC are often greater than

    the hardware cost

    Software costs more to maintain than it does todevelop. For systems with a long life,

    maintenance costs may be several times

    development costs

    Software engineering is concerned withcost-

    effective software development

    Why Software Engineering

  • 8/10/2019 Software engn

    10/48

    The Nature of SW...

    SW is intangible

    Hard to understand development effort

    SW is easy to reproduce

    Cost is in its development

    in other engineering products, manufacturing is the costly stage

    Quality problems are hard to notice

    SW is easy to modify People make changes without fully understanding it

    SW does not wear out It deteriorates by having its design changed:

    erroneously, or

    in ways that were not anticipated, thus making it complex

  • 8/10/2019 Software engn

    11/48

    The Nature of SW

    ConclusionsMuch SW has poor design and is getting worse

    Demand for SW is high and rising

    We are in a perpetual SW crisis

    We have to learn to engineer SW

  • 8/10/2019 Software engn

    12/48

    What is Software

    Software is both: a Productand Vehicle for Delivering the

    Product

    As a product it delivers computing potential

    embodied by computer hardware or morebroadly, a network of computers that areaccessible by local hardware

    Whether software resides within a cellular phone

    or operates inside a mainframe computer, it is aninformation transformerproducing, managing,acquiring, modifying displaying, or transmittinginformation that can be as simple as bit or as

    complex as multimedia presentation

  • 8/10/2019 Software engn

    13/48

    What is Software

    As a Vehiclesoftware acts as the basis for the

    Control of the Computers (OS), the

    Communication of Information(Networks)and

    Creation and Controlof other Programs (software tools and environments)

  • 8/10/2019 Software engn

    14/48

    When it meets the needs of the people who use it

    When it performs flawlessly over a long period of

    time

    When it is easy to modify and even easier to use

    When a Software Succeeds

  • 8/10/2019 Software engn

    15/48

    Software engineering is the establishmentand use ofsound engineering principles in order to obtain

    economically software that is reliable and works

    efficientlyon real machines

    Software engineering is the application of a

    systematic, disciplined, quantifiable approach to

    the development, operation and maintenance of

    software, that is , the application of engineering tosoftware [IEEE90a]

    Definition : Software Engineering

  • 8/10/2019 Software engn

    16/48

    Software Characteristics

    Software is developed or

    engineered, it is not

    manufactured Software doesntwear out

    Cost of Change at later stages is

    high

  • 8/10/2019 Software engn

    17/48

    Software doesnt wear out

    Failu

    re

    Ra

    tes

    Time

    Infant

    MortalityWear Out

    Fig 1. Failure rate as a function of time for hardware

  • 8/10/2019 Software engn

    18/48

    Wear vs. Deterioration

  • 8/10/2019 Software engn

    19/48

    The Cost of Change

  • 8/10/2019 Software engn

    20/48

    Why does it take so long to get software

    finished?

    Why are development costs so high?

    Why cantwe find all the errors before

    we give the software to customers?

    Why do we continue to have difficultyin measuring progress as software is

    being developed

    Concern about the Software[Crisis]

  • 8/10/2019 Software engn

    21/48

    Factors Contributing to the SW Crisis

    Larger problems,

    Lack of adequate training in SW

    Engineering, Increasing skill shortage,

    Low productivity improvements.

  • 8/10/2019 Software engn

    22/48

    Mastering complexity The efficiency with which software is

    developed

    Software engineering is a field in which

    members of one culture create artifacts on

    behalf of members of another culture

    Visibility and continuity

    Challenges

    What are the key challenges facing

  • 8/10/2019 Software engn

    23/48

    What are the key challenges facingsoftware engineering?

    Software Engineering faces three key challenges :

    The Legacy Challenge:

    The challenge is the challenge of maintainingand updating legacy software in such a way

    that excessive cost are avoided and essential

    business services continue to be delivered

    K Ch ll

  • 8/10/2019 Software engn

    24/48

    Key Challenges

    The Heterogeneity Challenge:

    Increasingly, systems are required to operate

    as distributed systems across networks that

    include different types of computer and with

    different kinds of support systems. The

    heterogeneity challenge is the challenge of

    developing techniques to build dependable

    software which is flexible enough to copewiththis heterogeneity

    K Ch ll

  • 8/10/2019 Software engn

    25/48

    Key Challenges

    The Delivery Challenge:

    Many traditional software engineering techniques

    are time-consuming. The time they take is required

    to achieve software quality. However, businesses

    today must be responsive and change very rapidly.Their supporting software must change equally

    rapidly. The delivery challenge is the challenge of

    shortening delivery times of large and complex

    systems without compromising system quality

    D k

  • 8/10/2019 Software engn

    26/48

    That 80 percent of the engineering is consumed by 20percent of the requirements

    80 percent of the software cost is consumed by 20 percent ofthe components

    80 percent of the errors are caused by 20 percent of thecomponents

    80 percent of the software scrap and rework is caused by 20percent of the changes

    80 percent of the resource consumption (execution time, disk

    space, memory etc.) is consumed by 20 percent of thecomponents

    80 percent of the progress is made by 20 percent of thepeople

    Do you know

    SW M h (M P i )

  • 8/10/2019 Software engn

    27/48

    SW Myths (Management Perspectives)

    As long as there are good standards and clear procedures

    in my company, I shouldnt be too concerned.

    But the proof of the puddingis in the eating;

    not in the Recipe!

  • 8/10/2019 Software engn

    28/48

    SW Myths (Management Perspectives)

    As long as my SW engineers(!) have access to the fastest

    and the most sophisticated computer environments and

    state-of-the-art SW tools, I shouldnt be too concerned.

    The environment isonly one of the several factors

    that determine the qualityof the end SW product!

  • 8/10/2019 Software engn

    29/48

    SW Myths (Management Perspectives)

    When my schedule slips, what I have to do is to start a fire-fighting operation: add more SW specialists, those with higherskills and longer experience - they will bring the schedule backon the rails!

    Unfortunately,SW business does not

    entertain schedule compactionbeyond a limit!

    SW M th (C t P ti )

  • 8/10/2019 Software engn

    30/48

    SW Myths (Customer Perspectives)

    A general statement of objectives is sufficient to get

    started with the development of SW. Missing/vague

    requirements can easily be incorporated/detailed out as

    they get concretized.

    Application requirements can never be stable; SW can be

    and has to be made flexibleenough to allow changes to be

    incorporated as they happen.

    h ( l i )

  • 8/10/2019 Software engn

    31/48

    SW Myths (Developer Perspectives)

    Once the SW is demonstrated, the job is done.

    Usually, the problems just begin!

    SW M th (D l P ti )

  • 8/10/2019 Software engn

    32/48

    Until the SW is coded and is available for testing,

    there is no way for assessing its quality.

    Usually, there are too manytiny bugs inserted at every stagethat grow in size and complexity

    as they progress thru further stages!

    SW Myths (Developer Perspectives)

    SW Myths (Developer Perspectives)

  • 8/10/2019 Software engn

    33/48

    The only deliverable for a SW development projectis the tested code.

    The code is onlythe externally visible component

    of the entire SW complement!

    SW Myths (Developer Perspectives)

    SW P d t

  • 8/10/2019 Software engn

    34/48

    SW Product

    is a product designated for delivery to the user

    sourcecodes

    objectcodes

    plans

    reports

    manuals

    documents

    test suitesprototypes

    data

    test results

    What are the attributes of good

  • 8/10/2019 Software engn

    35/48

    software?

    The software should deliver the required functionality and

    performance to the user and should be maintainable, dependableand usable

    Maintainability Software must evolve to meet changing needs

    Dependability Software must be trustworthy

    Efficiency Software should not make wasteful use of system resources

    Usability Software must be usable by the users for which it was designed

  • 8/10/2019 Software engn

    36/48

    The Process

    Th P

  • 8/10/2019 Software engn

    37/48

    Aprocess represents activities, tools,methods and practices that transform

    inputs or raw materials, into outputs, or

    finished products

    The Process

    Process Framework

  • 8/10/2019 Software engn

    38/48

    Process Framework

    A process defines who is doingwhat, when and how to reach acertain goal

    Jacobson, Booch, and Rumbaugh

    S ft E i i A L d T h l

  • 8/10/2019 Software engn

    39/48

    Software Engineering : A Layered Technology

    a quality focus

    process

    methods

    tools

    Quali ty FocusTotal Quality Management foster a continuous processimprovement culture, which leads to development ofincreasingly more mature approaches to SE

    Software Engineering : A Layered Approach

  • 8/10/2019 Software engn

    40/48

    Software Engineering : A Layered Approach

    Methods provide the technical how-tos for

    building software. Methods encompasses a

    broad array of tasks that include

    requirements analysis, design, program

    construction, testing and support

    Toolsprovide automated or semi-automated

    support for the process and the methods.

    Process : Foundation for Software Engineering

  • 8/10/2019 Software engn

    41/48

    Process : Foundation for Software Engineering

    SE Process is the glue that holds the technology

    layers together and enables rational and timely

    developmentof computer software

    Process defines the framework that must beestablished for effective delivery of Software

    Engineering Technology

    The Software Process forms the basis for :

  • 8/10/2019 Software engn

    42/48

    The Software Process forms the basis for :

    Management Controlof software projects

    Establishes the Control in which technical

    methods are applied

    Work Products (models, documents, data,

    reports, forms etc.) are Produced Milestonesare established

    Qualityis ensured and

    Changeis properly managed

    Software Process

  • 8/10/2019 Software engn

    43/48

    Software Process

    Product Engineering

    Process

    Process Management

    Process

    Development

    Process

    Project

    Management

    Process

    Software

    Configuration

    management

    Process

    Software Process : Characteristics

  • 8/10/2019 Software engn

    44/48

    Predictability

    Support Testability and Maintainability

    Support Change

    Early Defect Removal

    Process Improvement and Feedback

    Software Process

  • 8/10/2019 Software engn

    45/48

    Process FrameworkUmbrella Activities

    Framework ActivityWork Tasks

    Work Products

    Milestones & deliverables

    SQA points

    Process Framework

  • 8/10/2019 Software engn

    46/48

    Process Framework establishes the foundation for acomplete software process by

    identifying a small numberof framework activitiesthat are applicable to all software projectsregardless of their size or complexity

    Process framework encompasses a set of umbrellaactivities that are applicable across the entiresoftware process

    A number of tasks sets enable the frameworkactivities to be adapted to the characteristics ofthe software project and the requirements ofthe project team

    Umbrella Activities

  • 8/10/2019 Software engn

    47/48

    Software project management Formal technical reviews

    Software quality assurance

    Software configuration management

    Document preparation and production Reusability management

    Measurement

    Risk management

    Finally, Umbrella activities overlay the process

    model. Umbrella activities are independent ofany one framework activity and occur

    throughout the process

    The Process Model

  • 8/10/2019 Software engn

    48/48

    To solve actual problems in an industry

    setting, a software engineer or a team ofengineers must incorporate a developmentstrategy that encompasses the process,methods and tools layers.

    This strategy often referred as the ProcessModel