module 1 introduction to software engineering n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Module 1: Introduction to Software Engineering PowerPoint Presentation
Download Presentation
Module 1: Introduction to Software Engineering

Loading in 2 Seconds...

play fullscreen
1 / 40

Module 1: Introduction to Software Engineering - PowerPoint PPT Presentation


  • 150 Views
  • Uploaded on

Module 1: Introduction to Software Engineering. Objectives. What is Software Engineering? Why Software Engineering? How to do Software Engineering?. What is Software Engineering?. Software Engineering = Software + Engineering What is Software ? Software = Soft + ware Any examples?

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

PowerPoint Slideshow about 'Module 1: Introduction to Software Engineering' - agostino


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
module 1 introduction to software engineering

Module 1: Introduction to Software Engineering

Software Engineering: Introduction

objectives
Objectives
  • What is Software Engineering?
  • Why Software Engineering?
  • How to do Software Engineering?

Software Engineering: Introduction

what is software engineering
What is Software Engineering?

Software Engineering = Software + Engineering

  • What is Software?

Software = Soft + ware

Any examples?

  • What is Engineering?

Engineering = Engine-er-ing

Any examples?

Is this an Engineering discipline? If yes, why? If not, why not?

Is this for an Engineer or a scientist?

Software Engineering: Introduction

what is software engineering1
What is Software Engineering?

A historical definition:

“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines …” [Fritz Bauer, at the 1st NATO Conference on Software Engineering, 1969]

IEEE definition:

“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 to software.”

A shorter definition: BCFH

Software Engineering: Introduction

why software engineering
Why Software Engineering?

9 software projects totaling $96.7 million: Where The Money Went

[Report to Congress, Comptroller General, 1979]

Delivered, but never

successfully used

45%

Used as delivered

2%

Paid for, but

not delivered

30%

Usable w. rework

3%

  • Why?
  • Software hurts
  • Requirements
  • design

Used w. extensive rework,

but later abandoned

20%

Software Engineering: Introduction

what factors contribute to project success

The CHAOS Ten

1. Executive Management Support

2. User Involvement

3. Experienced Project Manager

4. Clear Business Objectives

5. Minimized Scope

6. Standard Software Infrastructure

7. Firm Basic Requirements

8. Formal Methodology

9. Reliable Estimates

10. Other

What Factors Contribute to Project Success?

Standish Group, ‘01 (www.standishgroup.com)

Project Success Factors

28%

completed on time and on budget

  • overran original estimates:
  • Time overrun averaged 63%
  • - Cost overrun averaged 45%

canceled before completion

49%

23%

Software Engineering: Introduction

what factors contribute to project failure
What Factors Contribute to Project Failure?

The CHAOS Ten

The CHAOS Ten

Standish Group, ‘01 (www.standishgroup.com)

Software Engineering: Introduction

“The definition of insanity is doing the same thing over and over again and expecting a different result.” [Albert Einstein]

why software engineering1
Why Software Engineering?

What do software engineers do?

Non-productive

Activities

30%

Interaction

50%

Work alone

20%

  • programming ≠ software engineering
  • personal activity team activity
  • small, clear problem large, nebulous problem

Software Engineering: Introduction

why software engineering2
Why Software Engineering?

http://www.cis.gsu.edu/~mmoore/CIS3300/handouts/SciAmSept1994.html

http://techdirt.com/articles/20060818/1613226.shtml

Are you aware of any other mishaps?

Software Engineering: Introduction

why software engineering3
Why Software Engineering?

Major symptoms of the “software crises”:

  • Over budget
  • Schedule slippage
  • Poor quality

Major causes of the “software crises”:

The "software crises" came about when people realized the major problems in software development were … caused by communication difficulties and the management of complexity” [Budd]

Software Engineering: Introduction

why se
Why SE?

Software Engineering: Introduction

slide12

How to Do Software Engineering?

Software Lifecycle Review

Systems Engineering

Requirements Analysis

Quality Assurance

Project Planning

Maintenance

Architectural Design

Detailed Design

Implementation

BCFH - models/languages,

processes/methodologies, tools, …

Release

Software Engineering: Introduction

to be discussed later on
To be discussed later on…

Software Engineering: Introduction

how to do se
How to do SE?

Software Engineering: Introduction

how to do se1
How to do SE?

Software Engineering: Introduction

the tar pit
The Tar Pit
  • The woes of the craft:
    • Bugs!!!
    • Bugs get harder as testing progresses
    • The fundamental problem: fixing a bug has a 20%-50% chance of introducing another
    • The product gets obsolete upon or even before completion
    • Worse: must use others’ programs!

Software Engineering: Introduction

slide17
Genesis 11:1-9 Acts 2:1-4The Tower Of Babel

Let's become famous by building a city with a tower that reaches up to heaven (verse four).

Let's go down and confuse their speech right away, and make it so that they will not understand each other's speech. (verses five through seven).

Software Engineering: Introduction

why did the tower of babel fail
Why Did the Tower of Babel Fail?

Bad communication in software projects

is the root of all evil.

Software Engineering: Introduction

the mythical man month
The Mythical Man-Month
  • Optimism:
    • All programmers are optimists, believing in happy endings and fairy god-mothers.
    • Because programming tasks are usually chained end-to-end, the probability that each will go well is very small.
  • Man-month:
    • Cost vary as a product: men· months.
    • Progress does not: communication overhead!
    • Overhead: intercommunication and training.

Software Engineering: Introduction

brook s law
Brook’s Law

Adding manpower to a late software project makes it later.

Software Engineering: Introduction

hatching a catastrophe
Hatching a Catastrophe

Poor Project planning, estimation, control

  • Coding is “90% finished” for half of the total coding time
  • Debugging is “99% complete” most of the time

Software Engineering: Introduction

no silver bullet essence and accident in software engineering
No Silver Bullet – Essence and Accident in Software Engineering

“There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity” (1986).

  • Complexity
    • enormous number of states (orders of magnitude more than in hardware), so conceiving, describing and testing is hard
    • increases non-linearly with its size
    • introduces a lot of difficulties:
      • communication among team members
      • enumerating (much less understanding) of all possible states of the program
      • management problems:
        • conceptual integrity is hard to achieve
        • learning curve: personnel turnover becomes disaster
      • others

Software Engineering: Introduction

the m mm after 20 years
The M-MM after 20 years

Answers questions like: What do you now think was wrong when written? What is now obsolete? What is really new in the software engineering world?

  • What was right and still is:
    • Conceptual integrity is the more important factor in ease of use [There are other factors. Consider Macintosh vs. MS-DOS].It is the central question addresses by M-MM and is central to product quality.

Software Engineering: Introduction

how to do se2
How to do SE?

Software Engineering: Introduction

how to do se3
How to do SE?

Software Engineering: Introduction

how to do se4
How to do SE?

Software Engineering: Introduction

how to do se5
How to do SE?

Software Engineering: Introduction

how to do se6
How to do SE?

Software Engineering: Introduction

how to do se7
How to do SE?

Software Engineering: Introduction

slide30

Why speak about management

rather than technical issues?

Software Engineering: Introduction

how to do se8
How to do SE?
  • News Groups:

comp.software-eng

comp.software.testing

  • Professional Organizations:

IEEE: TSE, ICSE, ICRE, …

ACM: TOSEM

Software Engineering: Introduction

introduction to se summary
Introduction to SE - Summary

Why

  • Software Crisis due to Communication and Complexity
  • Inherent complexity

What

  • Engineering (large) software, bcfh

How

  • BCFH languages, concepts, models, tools

Software Engineering: Introduction

introduction to se points to ponder
Introduction to SE - Points to Ponder
  • Programming = software engineering?
  • What does BCFH really mean? Can you define it completely?
  • What are the similarities, and differences, between Civil Engineering and Software Engineering?
  • What are the differences between a notation and a methodology?
  • Can we use C# for analysis?
  • Can you prove you and I communicate with each other perfectly?
  • Are you a scientist or an engineer?

Software Engineering: Introduction