Software Engineering
Overview
Lecture # 2
Software Engineering
What is Software?
Software is the collection of computer
programs,rules,and associated documentation and data.
What is Software Engineering?
It is the systematic approach to the development,
operations. Maintenance and retirement of software.
Software Engineering
 As defined in IEEE Standard 610.12:
 (1) The application of a systematic, disciplined,
quantifiable approach to the development, operation,
and maintenance of software; that is, the application of
engineering to software.
 As defined
 Software engineering is a discipline whose aim is the
production of fault-free software, delivered on time and
within budget, that satisfies the user’s needs
Software Engineering
 Software engineering is concerned with
theories, methods and tools for professional
software development.
 The cost of software on a PC are often greater
than the hardware cost.
 Software costs more to maintain than it does to
develop.
 For systems with a long life, maintenance costs
may be several times development costs:
 60% of costs are development costs, 40% are
testing costs.
Software Engineering
 For custom software, evolution costs
often exceed development costs.
 Costs vary depending on the type of
system being developed and the
requirements of system attributes such
as performance and system reliability.
 Distribution of costs depends on the
development model that is used.
 Software engineering is concerned
with cost-effective software
development.
Software Engineering
 Software products may be developed for a particular
customer or may be developed for a general market.
 Software products may be Generic - developed to be
sold to a range of different customers. Bespoke
(custom) - developed for a single customer according to
their specification
Software Engineering
 Software engineers should adopt a systematic and
organized approach to their work and
 Use appropriate tools and techniques depending on
 • the problem to be solved,
 • the development constraints and
 • the resources available.
Software Engineering
 The basic goal of software engineering is to produce a
high quality software at low cost.
 Two basic factors are quality and cost.
 Cost of a completed project can be calculated easily if
proper accounting procedure are followed
The evolving role of software
 Today, software takes on dual role
 It is a product
 At the same time, the vehicle for delivering a product.
 Software delivers what many believe will be the most
important product of 21st century------Information
The evolving role of software
 Software transform personal data.
 It provides a gateway to the worldwide
networks(Internet)
 The role of computer software has undergone
significant change through the 2nd half of 20th century.
The evolving role of software
 Osborne called a new industrial revolution.
 Toffler called the advent of microelectronics
Different Eras
 During first era software was
viewed an afterthought
 A few systematic methods existed
 Software development was
virtually unmanaged
 No cost scheduling techniques
 Software was custom design for
each application
 Limited distribution.
The evolving role of software
 Product software was not common
 Documentation was uncommon
The evolving role of software
 The 2nd era of computer system evolution spanned the
decade from mid-1950s to the late 1970s
 Multiprogramming,multi-user systems introduced
 Real time systems
 DBMS
The evolving role of software
 The 2nd era was also characterized by the use of product
software and advent of software houses
 Wide distribution.
The evolving role of software
 The 3rd era began in 1970s and spanned more than half
a decade
 Distributed systems
 Global and local area networks
 High Bandwidth digital communication.
 The conclusion of the 3rd era was characterized by the
advent and wide spread use of microprocessors.
The evolving role of software
 The 4th era of computer systems includes powerful
Desktop computers controlled by sophisticated OS
 Network locally and globally
 Internet
 Change in computer architecture
The evolving role of software
 MS put billions of dollars at risk
 OOP
 Expert systems
 AI with fuzzy logic has opened pattern matching and
human like information like qualities
 Virtual Reality programming and multimedia systems
Ongoing Problems
 Hardware advances outpace ability to build
software to tap potential
 Ability to build new programs cannot meet
demand for new programs, nor do we build fast
enough to meet business and market needs
 Widespread use of computers has made society
increasingly dependent
 Struggle to build software with high reliability
& quality
 Ability to support and enhance programs is
threatened by poor design and few resources
Why Study Software Engineering?
Software Crisis
- Software hard to create well
- budget over runs
- time over runs
- faulty products
e.g., billing example
Programming methods do not scale up
 "Toy" programs 100's of lines
 Small programs 10,000 lines
 Medium programs100,000 lines
 Large programs 1,000,000 lines
 Very Large programs 10,000,000 lines
 Small programs are typically implemented
by individuals.
Medium and larger programs are
implemented by teams.
COST EFFORT LINES
Product ($million) (Person Year) (of
code)
Lotus 1-2-3 Ver 3 22 263
400k
NASA Space Shuttle 1200 22096
25.6k
CitiBank ATM 13.2 50
780k
IBM Checkout 3 58
90k
Scanner
dBase II took two programmers and 50,000 lines of code
- 1970s
dBase IV took 100 people, 500,000 lines of code in 1986
Students Professionals
Get assignment from instructor
Ask clarifying questions 5%
Devise an appropriate algorithm 5%
Code the algorithm 20%
Validation: Testing 5%
Debugging 65%
Never_look_at_it_again
Get request from user.
Requirements_Analysis 10%
|Functional Specifications 20 %
Design 15%
Implementation 15%
Validation: Testing 30%
Debugging 10%
Maintainence 100-200%
The Software Crisis
 It became clear in the mid-60s that:
 software systems were
developed far too slowly
 many software projects failed
 most projects were delivered
late and cost far more than
was budgeted
 delivered systems were often
of very low quality
 This collection of maladies (which is
still with us) was labeled the
“software crisis”
A view of the software crisis
 Experts tried to resolve such as :
 Why does software development take so long?
 Why does it cost so much?
 Why does software has bugs?
 Why do we have difficulty managing software
development efforts?
 The software crisis prompted the
creation of “software engineering”
as a discipline
Eight years ago
 From a 1995 American General Accounting Office
report:
 more than 50% of SW contracts had cost overruns
 more than 60% of SW contracts had schedule overruns
 more than 45% of delivered SW could not be used
 more than 28% of SW was never delivered
 A recent IEEE survey found that 30% of all software
development projects are canceled, 50% are more
than 150% over budget and, on average, only 60% of
desired functionality is achieved.
Hardware versus Software
Costs
 While the cost of hardware has come down
dramatically, the cost of software is increasing
 Most SW errors and cost of repair are traceable to
failures in the initial requirements
 2/3 of lifetime SW cost comes after installation
Challenges
 The key challenges facing software
engineering are:
 Coping with legacy systems -old, valuable
systems must be maintained and updated
 Coping with increasing diversity - systems
are distributed and include a mix of
hardware and
 Software coping with demands for
reduced delivery times.
 There is increasing pressure for faster
delivery of software.

overview introduction to Software Engineering

  • 1.
  • 2.
    Software Engineering What isSoftware? Software is the collection of computer programs,rules,and associated documentation and data. What is Software Engineering? It is the systematic approach to the development, operations. Maintenance and retirement of software.
  • 3.
    Software Engineering  Asdefined in IEEE Standard 610.12:  (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.  As defined  Software engineering is a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the user’s needs
  • 4.
    Software Engineering  Softwareengineering is concerned with theories, methods and tools for professional software development.  The cost of software on a PC are often greater than the hardware cost.  Software costs more to maintain than it does to develop.  For systems with a long life, maintenance costs may be several times development costs:  60% of costs are development costs, 40% are testing costs.
  • 5.
    Software Engineering  Forcustom software, evolution costs often exceed development costs.  Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability.  Distribution of costs depends on the development model that is used.  Software engineering is concerned with cost-effective software development.
  • 6.
    Software Engineering  Softwareproducts may be developed for a particular customer or may be developed for a general market.  Software products may be Generic - developed to be sold to a range of different customers. Bespoke (custom) - developed for a single customer according to their specification
  • 7.
    Software Engineering  Softwareengineers should adopt a systematic and organized approach to their work and  Use appropriate tools and techniques depending on  • the problem to be solved,  • the development constraints and  • the resources available.
  • 8.
    Software Engineering  Thebasic goal of software engineering is to produce a high quality software at low cost.  Two basic factors are quality and cost.  Cost of a completed project can be calculated easily if proper accounting procedure are followed
  • 9.
    The evolving roleof software  Today, software takes on dual role  It is a product  At the same time, the vehicle for delivering a product.  Software delivers what many believe will be the most important product of 21st century------Information
  • 10.
    The evolving roleof software  Software transform personal data.  It provides a gateway to the worldwide networks(Internet)  The role of computer software has undergone significant change through the 2nd half of 20th century.
  • 11.
    The evolving roleof software  Osborne called a new industrial revolution.  Toffler called the advent of microelectronics
  • 12.
    Different Eras  Duringfirst era software was viewed an afterthought  A few systematic methods existed  Software development was virtually unmanaged  No cost scheduling techniques  Software was custom design for each application  Limited distribution.
  • 13.
    The evolving roleof software  Product software was not common  Documentation was uncommon
  • 14.
    The evolving roleof software  The 2nd era of computer system evolution spanned the decade from mid-1950s to the late 1970s  Multiprogramming,multi-user systems introduced  Real time systems  DBMS
  • 15.
    The evolving roleof software  The 2nd era was also characterized by the use of product software and advent of software houses  Wide distribution.
  • 16.
    The evolving roleof software  The 3rd era began in 1970s and spanned more than half a decade  Distributed systems  Global and local area networks  High Bandwidth digital communication.  The conclusion of the 3rd era was characterized by the advent and wide spread use of microprocessors.
  • 17.
    The evolving roleof software  The 4th era of computer systems includes powerful Desktop computers controlled by sophisticated OS  Network locally and globally  Internet  Change in computer architecture
  • 18.
    The evolving roleof software  MS put billions of dollars at risk  OOP  Expert systems  AI with fuzzy logic has opened pattern matching and human like information like qualities  Virtual Reality programming and multimedia systems
  • 19.
    Ongoing Problems  Hardwareadvances outpace ability to build software to tap potential  Ability to build new programs cannot meet demand for new programs, nor do we build fast enough to meet business and market needs  Widespread use of computers has made society increasingly dependent  Struggle to build software with high reliability & quality  Ability to support and enhance programs is threatened by poor design and few resources
  • 20.
    Why Study SoftwareEngineering? Software Crisis - Software hard to create well - budget over runs - time over runs - faulty products e.g., billing example
  • 21.
    Programming methods donot scale up  "Toy" programs 100's of lines  Small programs 10,000 lines  Medium programs100,000 lines  Large programs 1,000,000 lines  Very Large programs 10,000,000 lines  Small programs are typically implemented by individuals. Medium and larger programs are implemented by teams.
  • 22.
    COST EFFORT LINES Product($million) (Person Year) (of code) Lotus 1-2-3 Ver 3 22 263 400k NASA Space Shuttle 1200 22096 25.6k CitiBank ATM 13.2 50 780k IBM Checkout 3 58 90k Scanner
  • 23.
    dBase II tooktwo programmers and 50,000 lines of code - 1970s dBase IV took 100 people, 500,000 lines of code in 1986
  • 24.
    Students Professionals Get assignmentfrom instructor Ask clarifying questions 5% Devise an appropriate algorithm 5% Code the algorithm 20% Validation: Testing 5% Debugging 65% Never_look_at_it_again Get request from user. Requirements_Analysis 10% |Functional Specifications 20 % Design 15% Implementation 15% Validation: Testing 30% Debugging 10% Maintainence 100-200%
  • 25.
    The Software Crisis It became clear in the mid-60s that:  software systems were developed far too slowly  many software projects failed  most projects were delivered late and cost far more than was budgeted  delivered systems were often of very low quality  This collection of maladies (which is still with us) was labeled the “software crisis”
  • 26.
    A view ofthe software crisis  Experts tried to resolve such as :  Why does software development take so long?  Why does it cost so much?  Why does software has bugs?  Why do we have difficulty managing software development efforts?  The software crisis prompted the creation of “software engineering” as a discipline
  • 27.
    Eight years ago From a 1995 American General Accounting Office report:  more than 50% of SW contracts had cost overruns  more than 60% of SW contracts had schedule overruns  more than 45% of delivered SW could not be used  more than 28% of SW was never delivered
  • 28.
     A recentIEEE survey found that 30% of all software development projects are canceled, 50% are more than 150% over budget and, on average, only 60% of desired functionality is achieved.
  • 29.
    Hardware versus Software Costs While the cost of hardware has come down dramatically, the cost of software is increasing  Most SW errors and cost of repair are traceable to failures in the initial requirements  2/3 of lifetime SW cost comes after installation
  • 31.
    Challenges  The keychallenges facing software engineering are:  Coping with legacy systems -old, valuable systems must be maintained and updated  Coping with increasing diversity - systems are distributed and include a mix of hardware and  Software coping with demands for reduced delivery times.  There is increasing pressure for faster delivery of software.