Software engineering 2 1
1 / 31

Software Engineering (2+1) - PowerPoint PPT Presentation

  • Updated On :

Software Engineering (2+1). BIT-8. Some Basic Definitions. Software -- Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. Engineering -- Application of systematic, disciplined, quantifiable approach to some process.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Software Engineering (2+1)' - libitha

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Some basic definitions l.jpg
Some Basic Definitions

  • Software -- Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.

  • Engineering -- Application of systematic, disciplined, quantifiable approach to some process.

Resulting definition of software engineering l.jpg
Resulting Definition Of Software Engineering

  • Definition -- The application of systematic, disciplined, quantifiable approaches to software development, operation and maintenance.*

    * - IEEE Standard 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology, IEEE Standards Collection Software Engineering, IEEE (1997).

The software life cycle l.jpg
The Software Life Cycle

  • Development

  • Operation

  • Maintenance

    • Corrective

    • Enhancement

Nature of software l.jpg
Nature of Software

  • Software is intangible.

  • Software is developed or engineered, it is not manufactured in the classical sense.

  • Software does not “wear out” but deteriorate.

  • Although the industry is moving toward component-based assembly, most software continues to be custom built.

Software success and failure l.jpg

Satisfies user needs.

Performs flawlessly.

Easier to use.

Easier to modify.

Dissatisfies user needs.

Error prone.

Harder to use.

Harder to modify.

Software Success and Failure

Why do we need software eng l.jpg
Why do we need Software Eng. ?

  • The “Software Crisis”

    • First identified at NATO Conference, Garmisch, Germany, 1968

    • Characterized by software which is

      • of poor quality

      • over budget

      • late

Where is software engineering today l.jpg
Where Is Software Engineering Today ?

  • Although significant improvements have been made in specific areas, the rapidly evolving nature of the software industry has resulted in little overall improvement in the overall situation -- in fact …..

The crisis persists l.jpg
The Crisis Persists

  • More than 30 years later, the software “crisis” is still with us

  • Major problems are still the same:

    • poor quality (correctness, bugs, usability, maintainability, etc)

    • over budget

    • delivered late, or not at all

Software quality problems l.jpg
Software Quality Problems

  • Correctness, bugs, usability, etc

    • Examples --

      • U.S. Strategic Air Command alert (Nov 9, 1979) -- alert scramble in response to report that Soviet Union had launched missile attack

      • Therac 25 medical linear accelerator treatment device -- two patients died of severe overdoses of radiation (1985-1987)

      • Gulf War (1991) -- U.S. Patriot missile defense failed to detect Scud missile due to time error -- 28 Americans died as a result.

      • Assignment 1: Software Crisis/Failure in History

Schedule cost problems l.jpg
Schedule/Cost Problems

  • An example -- U.S. Internal Revenue Service

    • Hired Sperry Corporation to build automated income tax form processing system (1980-1985) --the resulting system couldn’t handle the work load, cost almost twice what was expected, and had to be replaced soon after initial installation. By 1996, the situation had not improved.

Not a crisis but a chronic condition l.jpg
Not A Crisis -- But A Chronic Condition

  • Software “Crisis” has lasted too long to be a crisis -- rather, it’s a persistent, chronic condition of the software business

  • Software Engineering is the proposed solution to the problem. Its aims are:

    • production of fault-free software, delivered on time and within budget, that satisfies the users’ needs, and is easy to maintain.

What is software14 l.jpg
What is software?

  • Computer programs and associated documentation

  • 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 in a nutshell l.jpg
Software: In a Nutshell

  • Software is set of items or objects that form a “configuration” that includes:

    • Computer programs that produce information.

    • System documentation that describe the manipulation of information.

    • User documentation that describe the operation and use of the programs.

What are the attributes of good software l.jpg
What are the attributes of good software?

The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable

  • Maintainability

    • Software must evolve to meet changing needs

  • Dependability (reliability, security, safety)

    • Software must be trustworthy

    • Should not cause physical or economical damage.

  • Efficiency

    • Software should not make wasteful use of system resources

  • Usability

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

Importance of product characteristics l.jpg
Importance of Product Characteristics

  • The relative importance of these characteristics depends on the product and the environment in which it is to be used.

  • In some cases, some attributes may dominate

    • In safety-critical real-time systems, key attributes may be dependability and efficiency.

  • Costs tend to rise exponentially if very high levels of any one attribute are required.

Software costs l.jpg
Software: Costs

  • 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 to develop.

  • Software engineering is concerned with cost-effective software development.

Software applications l.jpg
Software Applications

  • Generic categorization:

    • System software,

    • real-time software

    • business software,

    • engineering and scientific software

    • embedded software,

    • personal computer software,

    • web-based software, and

    • artificial intelligence software etc.

  • How is the nature of software application determined?

    • Information content and determinacy.

Why software engineering l.jpg
Why Software Engineering?

  • Software development is not an easy Job !

  • Important to distinguish:

    • “easy” systems(one developer, one user, experimental use only)

    • “hard” systems (multiple developers, multiple users, products)


  • The problem is complexity

  • Many sources, but size is key:

    • UNIX contains 4 million lines of code

    • Windows 2000 contains 108 lines of code

      Software engineering is about managing this complexity.

Software engineering and computer science l.jpg

  • theory

  • fundamentals

    Algorithms, date structures, complexity theory, numerical methods

Software engineering and computer science?

Computer Science

Software Engineering

is concerned with

Computer science theories are currently insufficient to act as a complete foundation for software engineering, BUT it is a base for practical aspects of software engineering

Key challenges faced by software engineering l.jpg
Key challenges faced by software engineering

Software engineering in the 21st century faces three key challenges:

  • Legacy systems

    • Old, valuable systems must be maintained and updated

  • Heterogeneity

    • Systems are distributed and include a mix of hardware and software

  • Delivery

    • There is increasing pressure

      for faster delivery of software

Trends software demand l.jpg

Software Demand







Trends — Software Demand

  • several hundred billion dollars/year spent worldwide and growing

  • essential part of almost all organizations

  • key part of many products ®embedded systems

Personal computing,




Scientific & Technical

Trends software effort cost l.jpg












1000’s of language statements

Trends — Software Effort (Cost)

  • sample code sizes:

    • hand-held bar code scanner: 10-50KLOC [Symbol Technologies Inc.]

    • cellular telephone: 30KLOC [Motorola]

    • automated teller network: 600KLOC [IBM]

    • B-2 Stealth bomber: 3.5MLOC [Leonard Lee]

    • telephone switch; Windows 95: 15MLOC [Nokia; Ted Lewis]

Software engineering in a nutshell l.jpg
Software Engineering: In a Nutshell

  • Software engineering (SE) is framework for building software with higher quality.

  • Software engineering is an engineering discipline which is concerned with all aspect of software production form early stage of system specification to maintaining the system after it has gone into use (Sommerivlle, 2000).

Slide28 l.jpg