intro pro mngt

Upload: azaad-ius

Post on 08-Apr-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 Intro Pro Mngt

    1/45

    Software Engineering (Classical)-IPrakash Jagdale

  • 8/7/2019 Intro Pro Mngt

    2/45

    What?

    Applying sound engineering principles andmethodologies during software development for

    Enterprise Applications and Software Products

    The course will focus on upfront activities in thesoftware engineering lifecycle with emphasis onRequirements engineering and ProjectManagement.

  • 8/7/2019 Intro Pro Mngt

    3/45

    How?

    Stress on activity and group discussions and use of supporting tools The software engineering activities will be learnt by discussing their basic

    principles as well applying them on a mock project.

    Demonstration and use of Tools to capture and manage requirements,project management tools

    Industry standard Unified Software Development methodology will beillustrated with course material adopted from IBM Rational Company. Preparation of industry standard artifacts such as Vision document, SRS,

    Project Plan, Formal Technical Reviews shall be adopted.

    (some) Research papers from reputed Journals and Conferenceshighlighting issues

  • 8/7/2019 Intro Pro Mngt

    4/45

    Grading???

    Evaluation will be in theform of quizzes, tests,

    classroom participationand lifecycle project workand submissions.

    Evaluation type weightage

    Quizzes( 2-4) 10%

    Mid Term Test 15%

    Use Case model 10%

    Vision document 10%

    Project Plan 10%

    Individual Presentation 15%

    Classroom participation 5%

    End Term Test 25%

  • 8/7/2019 Intro Pro Mngt

    5/45

    Books & References

    Pankaj Jalote An Integrated Approach to SoftwareEngineering 3rd edition Narosa Publishers

    Dean Leffingwell & Don Widrig Managing SoftwareRequirements a Unified Approach Pearson Education

    Writing Effective Use Cases by Allistair Cockburn, LPEAddison Wesley

    Walker Royce, Software Project Management: A UnifiedFramework, Pearson Education Asia

    Fred Brooks, Mythical Man-Month

  • 8/7/2019 Intro Pro Mngt

    6/45

    Software development is about

    People - A wide-range of people, with differentskill-sets

    Technologies - Infrastructure upon whichsoftware will be based

    Tools - Software development and project

    management tools Organizational Patterns - How team members

    interact

  • 8/7/2019 Intro Pro Mngt

    7/45

    Software Goal

    Primary goal

    Delivering working software which satisfies current

    requirements and is flexible for future enhancements

    Secondary goal

    Documents and other artifacts

  • 8/7/2019 Intro Pro Mngt

    8/45

    Few things to note

    The debris you leave on the road as you walkthrough a process

    Reflect a transformation of information from oneform into another

    Serve as maps in understanding decision-making

    which occurs during artifact development and attimes more important than the artifact itself

  • 8/7/2019 Intro Pro Mngt

    9/45

    Why Methodology at all?

    Introducing and substituting people

    Delineating and fixing responsibilities

    Impressing and demonstrating visible progress

    Methodology itself does not guarantee results

  • 8/7/2019 Intro Pro Mngt

    10/45

    Software Development

    Its a high risk business

    Four control variables in Software Development

    Cost

    Time

    Scope

    Quality If you fix three variables, fourth gets defined

  • 8/7/2019 Intro Pro Mngt

    11/45

    Hardware / Programmers costs

    Factor 1965 2005

    Cost of Computer(256K)

    $750000 $1000

    Cost of programmer $2500/year $75000/year

    Software Projects Late Late

    Buggy Buggy

    Inflexible Inflexible

  • 8/7/2019 Intro Pro Mngt

    12/45

    Software Crisis (Late 1980s)

    All major projects were late by an average of 30months!

    Maintenance consumed over 70% of the budget

    Quality

    Pathetic!

    Difficult to debug high maintenance costs Small changes had bad side effects.

  • 8/7/2019 Intro Pro Mngt

    13/45

    Russell'sLawsof Software Relativity

    Asa software projectapproachesrelease, itsmass increases.

    The energy required torelease asoftware projectisinversely

    proportionaltothe time before ascheduled release.

    Ittakesinfinite energy torelease afinished producton time;therefore, allsoftware projectsare both incomplete and late.

    Time isrelative tothe observerofasoftware project. The lastmonth

    ofdevelopmentappearstotake ayear.

    Ifasoftware projectbecomestoolarge, itwill collapse intoablackhole. Time and money are absorbed butnothing ever comesout.

  • 8/7/2019 Intro Pro Mngt

    14/45

    Properties of Failing software Redundancy

    Duplication and little reuse

    Interconnectedness High coupling between so called modules Fragility

    Low understandability Obsolete documentation

    Human factors Human resource management crisis

  • 8/7/2019 Intro Pro Mngt

    15/45

    Cost of fixing defects

    Average cost of fixing defects based on when they areintroduced when they are detected

    Time Introduced Requirements Architecture Construction System Test Post Release

    Requirements 1 3 5 to 10 10 10 to 100

    Architecture * 1 10 15 25 to 100

    Construction * * 1 10 10 to 25

  • 8/7/2019 Intro Pro Mngt

    16/45

    Typical ApplicationsBusiness System Mission Critical

    SystemEmbedded Life-Critical Systems

    Internet Site Embedded Software Avionics software

    Intranet Site Games Embedded software

    InventoryManagement

    Internet site Medical devices

    Games Packaged software Operating systems

    MIS Software tools Packaged software

    Payroll Web services

  • 8/7/2019 Intro Pro Mngt

    17/45

    SE: The Problem Domain

    Industrial Strength Software

    Software is expensive

    Software is late and unreliable

    Maintenance & Rework

  • 8/7/2019 Intro Pro Mngt

    18/45

    Industrial strength software

    Student programs for a problem & industrial strengthsoftware are two different things

    Key difference is in quality (including usability, reliability,portability, etc.) High quality requires heavy testing, which consumes 30-50% of

    total development effort

    Requires development to be broken in stages such that bugs can

    be detected in each Good UI, backup, fault-tolerance, following of standards etc.

    increase the size for the same functionality

  • 8/7/2019 Intro Pro Mngt

    19/45

    Industrial strength software

    If 1/5th productivity, and increase in size by afactor of 2, industrial strength software will take

    10 times effort Brooks thumb-rule: Industrial strength software

    costs 10 time more than student software

    Domain of Software Engg: Industrial strength

    software In Software Engg. and in this course, software

    means industrial strength software

  • 8/7/2019 Intro Pro Mngt

    20/45

    Software is Expensive

    Let us look at costs involved

    Productivity = 500 LOC/PM

    Cost to the company = $10K/PM Cost per LOC = $20

    i.e, each line of delivered code costs about $20.

    A simple application for a business may have 20KLOC to50KLOC Cost = $100K to $1Million

    Can easily run on $10K-$20K hardware

    So HW costs in an IT solution are small as compared to SW costs.

  • 8/7/2019 Intro Pro Mngt

    21/45

    Software is Expensive

    The HW/SW ratio for a computer system hasshown a reversal from the early years.

    In 50s , HW:SW :: 80:20

    In 90s , HW:SW :: 20:80

    So , SW is very expensive

    Importance of optimizing HW is not much

    More important to optimize SW

  • 8/7/2019 Intro Pro Mngt

    22/45

    Late & Unreliable

    20-25% of SW projects never complete Because after some time they realize that the final cost

    will be much higher Many companies report runaways

    budget & cost out of control

    consulting companies to help control them

    One defence survey found that 70% of theequipment problems are due to SW

    Many examples of software failures

  • 8/7/2019 Intro Pro Mngt

    23/45

    Unreliable

    SW failures are different from failures ofmechanical or electrical systems

    In software, failures are not due to aging relatedproblems

    Failures occur due to bugs or errors that getintroduced during development

    i.e. the bug that causes a failure exists from start,only manifests later

  • 8/7/2019 Intro Pro Mngt

    24/45

    Maintenance & Rework

    Once SW delivered, it enters maintenance phase

    Why is maintenance needed for SW when it does not wear

    with age? Residual errors requiring corrective maintenance

    Upgrades and environment changes adaptive maintenance

    Over SW life, maintenance can cost more than thedevelopment cost of SW ~60:40

    Rework: changes made during the development

    Rework cost: ~30 to 40% of development cost

  • 8/7/2019 Intro Pro Mngt

    25/45

    SE Challenges

    SE (IEEE): systematic approach todevelopment, operation, maintenance and

    retirement of software Systematic approach: methodologies and

    practices that can be used to solve a problemfrom problem domain

    repeatable

  • 8/7/2019 Intro Pro Mngt

    26/45

    Basic Problem

  • 8/7/2019 Intro Pro Mngt

    27/45

    SE Challenges

    The problem of producing software to satisfy userneeds drives the approaches used in SE

    Software is Industrial strength SW

    But there are other factors that drive the selectionof approaches

    These factors include considerations of scale,quality, productivity, consistency, change,

  • 8/7/2019 Intro Pro Mngt

    28/45

    Scale

    SE must deal with problem of scale

    methods for solving small problems do not scale up for largeproblems

    industrial strength SW problems tend to be large

    SE methods must be scalable

    Two clear dimensions in this engineering methods

    project management

    For small, both can be informal or ad-hoc, for large bothhave to be formalized

  • 8/7/2019 Intro Pro Mngt

    29/45

    Scale

  • 8/7/2019 Intro Pro Mngt

    30/45

    Scale

    An illustration of issue of scale is counting thenumber of people in a room vs taking a census

    Both are counting problems

    Methods used in first not useful for census

    For large scale counting problem, must use differenttechniques and models

    Management will become critical

  • 8/7/2019 Intro Pro Mngt

    31/45

    Scale: Examples

    GCC 980KLOC C, C++, yacc

    Perl 320 KLOC C, perl, sh

    Apache 100 KLOC C, sh

    Linux 30,000 KLOC C, C++

    Windows XP 40,000 KLOC C, C++

  • 8/7/2019 Intro Pro Mngt

    32/45

    Productivity

    An engineering project driven by cost & schedule

    In SW cost is mainly manpower cost, measured in

    person-months

    Schedule is in months/weeks very important inbusiness context

    Productivity capture both of these If P is higher, cost is lower

    If P is higher, time taken can be lesser

    Approaches used by SE must deliver high P

  • 8/7/2019 Intro Pro Mngt

    33/45

    Quality

    Quality is the other major driving factor

    Developing high Q software is a basic goal

    Quality of software is harder to define

    Approaches used should produce a high Qsoftware

  • 8/7/2019 Intro Pro Mngt

    34/45

    Quality ISO standard

  • 8/7/2019 Intro Pro Mngt

    35/45

    Quality ISO std ISO std has six attributes

    Functionality Meet stated & implied needs

    Reliability Maintain specified level of performance

    Usability Understand, learn, use

    Efficiency Judicious use of resources

    Maintainability Corrections, improvements, adaptation

    Portability Adapt to different environments

  • 8/7/2019 Intro Pro Mngt

    36/45

    Quality

    Multiple dimensions mean that not easy to reduceQ to a single number

    Concept of Q is project specific For some reliability is most important

    For others usability may be more important

    Reliability is generally considered the main Qcriterion

  • 8/7/2019 Intro Pro Mngt

    37/45

    Quality

    Reliability = Probability of failure hard to measure

    approximated by no. of defects in software To normalize Quality = Defect density

    Quality = No. of defects delivered / Size

    Defects delivered - approximated with no. of

    defects found in operation Current practices: less than 1 def/KLOC

    What is a defect?

  • 8/7/2019 Intro Pro Mngt

    38/45

    Consistency and repeatability Sometimes a group can deliver quality software Key SE challenge: how to ensure that success can

    be repeated SE wants methods that can consistently produce

    high Q software with high P A software organization, wants to deliver high Q &

    P consistently across projects Frameworks like ISO and CMM focus on this

    aspect a lot

  • 8/7/2019 Intro Pro Mngt

    39/45

    Change

    Only constant in business is change!

    Software must change to support the changing

    business needs

    SE practices must accommodate change

    Methods that disallow change, even if high Q and P,are of little use

  • 8/7/2019 Intro Pro Mngt

    40/45

    SE Approach

    Consistently develop software with high Q&Punder large scale and changes

    Q&P governed by people, processes, andtechnology

  • 8/7/2019 Intro Pro Mngt

    41/45

    Iron Triangle

  • 8/7/2019 Intro Pro Mngt

    42/45

    SE Approach

    SE focuses mostly on processes for achieving thegoals

    Systematic approach is really about processesbeing used

    SE separates process for developing softwarefrom the developed product (i.e software)

    Premise: Process largely determines Q&P, hencesuitable processes will lead to high Q&P

  • 8/7/2019 Intro Pro Mngt

    43/45

    SE Approach

    Design of proper processes and their control is akey challenge SE faces

    This focus on process makes SE different frommany CS courses

    Software process is the equivalent ofmanufacturing process

  • 8/7/2019 Intro Pro Mngt

    44/45

    SE Approach

    The development process used in SE is typicallyphased

    Phases separate concerns with each phasefocusing on some aspect

    Requirements, architecture, design, coding, testing arekey phases

    This phased process has to be properly managedto achieve the objectives

    Metrics and measurement important for process &product

  • 8/7/2019 Intro Pro Mngt

    45/45

    Summary

    SE aims to provide methods for systematicallydeveloping industrial strength software

    Main goal is to high Q&P with consistency, underlarge scale and changes

    Basic approach of SE is to separate process fromproducts and define metrics for each