Software Engineering - PowerPoint PPT Presentation


PPT – Software Engineering PowerPoint presentation | free to download - id: 18fae-ZTgwN


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation

Software Engineering


Causes of the software crisis were linked to the overall complexity of the ... Software engineers advocate many different technologies and practices, and the ... – PowerPoint PPT presentation

Number of Views:165
Avg rating:3.0/5.0
Slides: 23
Provided by: namep2
Learn more at:


Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Software Engineering

Software Engineering
  • Charles Moen
  • Sharon White
  • Bun Yue

Software Development
  • With the rapid increase in technology, the
    complexity and expectation of computer
    capabilities also increased.
  • Requirements have increased rapidly. However,
    while users expect and demand a many features,
    customers generally want to minimize the cost for
    the software and they want it developed very
    fast. This becomes a recipe for disaster!

Software Disasters
  • Software has played a role in many high-profile
  • Mars probe - data calculated on the ground in
    Imperial units and reported that way to the
    navigation team who were expecting the data in
    metric units caused it to be destroyed.
  • Therac-25 - A radiation therapy machine
    responsible for six overdoses due to faulty
  • Airbus A320 - In the Airbus flight control
    systems, the computer has the final say on all
    decisions, meaning the safety of passengers
    depends upon the accuracy of the software
    specification, and the competence of the
    engineering teams producing the (multiple,
    independent) software stacks. The Strasbourg A320
    crash of Jan 21, 1992 is partially related to
    software in that poor user interface design was a
    contributing factor.

Cause of the Software Crisis
  • Causes of the software crisis were linked to the
    overall complexity of the process and the
    relative immaturity of software engineering as a
    profession. The crisis manifested itself in
    several ways
  • Projects running over-budget. (DIA 2 billion
    over )
  • Projects running over-time. (DIA 16 months
  • Software was of low quality.
  • Software often did not meet requirements.
  • Projects were unmanageable and code difficult to

Software Engineering
  • This discipline deals with identifying,
    defining, and realizing the required performance
    characteristics of the resulting software. These
    performance characteristics include reliability,
    maintainability, availability, testability,
    ease-of-use, portability, etc. Software
    engineering addresses these performance
    characteristics by preparing design and
    technology specifications, that if implemented
    properly, will enable the resulting software to
    meet these requirements.

Software Development Process
  • What is the best way to make more and better
    software? Software engineers advocate many
    different technologies and practices, and the
    debate on how to accomplish this has gone on for
    many years and may continue forever.

Software Life Cycle Models
  • With large numbers of software projects not
    meeting their expectations in terms of
    functionality, cost, or delivery schedule,
    effective project management is proving
    difficult. This has resulted in people apply
    project management techniques to writing

Waterfall Model
  • In Royce's original waterfall model, the
    following phases are followed perfectly in order
  • Requirements specification
  • Design
  • Construction (aka implementation or coding)
  • Integration
  • Testing and debugging (aka verification)
  • Installation
  • Maintenance

Key Software Activities
  • 5 Phases of Software Life Cycle
  • Phase 1 Problem Analysis and Specification
  • Phase 2 Design
  • Phase 3 Implementation (Coding)
  • Phase 4 Testing, Execution and Debugging
  • Phase 5 Maintenance

Phase 1 Problem Analysis and Specification
Easy in CS courses, not always in the real world.
Computer Science programming assignment -
specific statement of problem quantitative
description clearly defined requirements
input, output, calculations, test data
Phase 1 Problem Analysis and Specification
Real World request - general statement of
problem qualitative not quantitative
precision missing for input, output, processing
Phase 2 Design
  • CS courses
  • small systems
  • few hundred lines of code
  • simple, straightforward
  • self-contained
  • Real world
  • large systems
  • Tens of thousands of lines of code
  • complex
  • many components

OOD Object-Oriented Design
  • Identify the objects in the problem's
    specification and their types.
  • Identify the operations of the objects (methods)
    needed to solve the problem.
  • Arrange the operations in a sequence of steps,
    called an algorithm, which, when applied to the
    objects, will solve the problem.

OOD Goals
  • Robust
  • Capable of handling unexpected inputs
  • Adaptable
  • Able to evolve over time in response to changes
  • Reusable
  • Code should be reusable in other applications
  • Components e.g., code libraries like the Java

Phase 3 Implementation (Coding)
  • Select language of implementation
  • Encode the design
  • Verify integration
  • Combining program units into a complete software
  • Insure quality
  • programs must be correct, readable, and
    understandable, that is, well-structured,
    documented, and stylistic.

Phase 4 Testing, Execution, and Debugging
  • Validation "Are we building the right product?"
  • The software should do what the user really
  • check that documents, program modules, etc. match
    the customer's requirements.
  • Verification "Are we building the product
  • The software should conform to its specification
  • check that products are correct, complete,
    consistent with each other and with those of the
    preceding phases.

Errors can occur anytime
  • Specifications don't accurately reflect given
    information or the user's needs/requests
  • Logic errors in algorithms
  • Incorrect coding or integration
  • Failure to handle boundary data or test values

Different kinds of testing
  • Unit tests
  • Each individual program unit works?
  • Program components tested in isolation
  • Integration tests
  • Units combined correctly?
  • Component interface and information flow tested
  • System tests
  • Overall system works correctly?

Phase 5 Maintenance
  • Large of computer center budgets
  • Large of programmer's time
  • Largest of software development cost
  • Why?
  • Includes modifications and enhancements
  • Due to poor structure, poor documentation, poor
  • less likely to catch bugs before release
  • make fixing of bugs difficult and time-consuming
  • impede implementation of enhancements

Iterative Processes
  • Iterative development prescribes the
    construction of initially small but ever larger
    portions of a software project to help all those
    involved to uncover important issues early before
    problems or faulty assumptions can lead to
    disaster. Iterative processes are preferred by
    commercial developers because it allows a
    potential of reaching the design goals of a
    customer who does not know how to define what he

Rational Unified Process
  • An example of an iterative process