Software engineering
1 / 25

Software Engineering - PowerPoint PPT Presentation

  • Uploaded on

Software Engineering. EECE 351 Spring 2000 Lecture # 24. Overview. MMM No Silver Bullets Silver Bullet Re-fired Items not in book Quality Control Personality traits What we know Where we are going. MMM No Silver Bullet.

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' - reba

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
Software engineering

Software Engineering

EECE 351 Spring 2000

Lecture # 24

EECE 351 – Lecture 24


  • MMM

    • No Silver Bullets

    • Silver Bullet Re-fired

  • Items not in book

    • Quality Control

    • Personality traits

  • What we know

  • Where we are going

EECE 351 – Lecture 24

Mmm no silver bullet
MMMNo Silver Bullet

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

EECE 351 – Lecture 24

Mmm nsb accidental vs essence
MMM NSB –Accidental vs. Essence

  • Accidental is:

    • The difficulties that arise in the software’s production. (The simple errors)

      • What makes it hard to implement the program.

        • Unfamiliarity with MSDEV, C++, etc.

  • Essence is:

    • The difficulties inherent in the process of building software. (The hard stuff)

      • What makes Software creation difficult to begin with.

        • Understanding where to put a for/while loop

EECE 351 – Lecture 24

Mmm nsb the software engineering essential
MMM NSB – The Software Engineering Essential

  • The software engineering essential

    • Fashioning abstract conceptual structures of great complexity

    • To address this

      • Exploit shrink-wrapped applications

      • Use rapid prototyping and planned iteration in establishing requirements

      • Grow software organically

      • Identify and develop the great conceptual designers of the rising generation

The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination.

EECE 351 – Lecture 24

Mmm nsb essential difficulties
MMM NSB – Essential Difficulties

  • Essential, inherent properties of software systems

    • Complexity (non-linear with size)

    • Conformity (yes or no conceptual integrity)

    • Changeability (infinite malleability)

    • Invisibility (no ready geometric representation)

I believe the hard part of

building software to be the

specification, design, and

testing of this conceptual

construct, not the labor of

representing it and testing

the fidelity of the


There is inherently no silver


EECE 351 – Lecture 24

Mmm nsb solving the accidental difficulties
MMM NSB –Solving the Accidental Difficulties

  • High level languages

    • Think in terms of ints, fors instead of byte cmp, branch.

      • More productive

  • Time-sharing

    • Enable many to utilize precious CPU power

      • Cheap PCs no longer make this as important

  • Unified Programming Environments

    • Attack problems of using programs together

      • Making them work together still takes 3x effort.

EECE 351 – Lecture 24

Mmm nsb duds on accidental
MMM NSB – Duds on accidental

  • Revolutionary or incremental?

    • High-level language advances

      • Ada, Smalltalk, C++, java

    • Object-oriented programming

    • Artificial intelligence

      • IA > AI

    • Automatic programming

    • Graphical programming

    • Program verification

    • Environments and tools

    • Workstations/PC’s

EECE 351 – Lecture 24

Mmm nsb brass bullets attacks on essence
MMM NSB – Brass Bullets? Attacks on Essence

  • Therefore the most important function that software builders do for their clients is the iterative execution and refinement of the product requirements. For the truth is, the clients do not know what they want.

  • Buy versus build

    • Is $150,000 A lot of money?

  • Rapid prototyping and requirement refinement

    • Well-defined up-front requirements are a myth

  • Organic, incremental software development

    • Get the system running as fast as possible

    • Keep the system running

  • Great designers

    • The most important factor

EECE 351 – Lecture 24

Mmm no silver bullet refired
MMM“No Silver Bullet” Refired

  • There was no Silver Bullet

    • There never will be.

  • A lot of people have trouble believing

    • Accidental vs. Essence

    • Accurate and orderly representation of the conceptual construct

    • Effort of mentally crafting the constructs

      • Do not attack the Accident, go for the Essence

  • When people understand these differences, there might be a bullet.

EECE 351 – Lecture 24

Mmm sbr

  • Can we attack the essence?

    • Yes!

      • But we still have to focus on the ENTIRE essence

  • Complexity Levels

    • Hierarchically (modules) & Incrementally

  • Pessimism vs. optimism vs. realism

    • NSB is “far too bleak”

      • Waaahhhh

    • We need to know what we are up against in order to beat it

      • “Know thy enemy, know thyself, your victory will not be endangered. Know the ground, know the weather, your victory will then be total.” Sun-Tzu The Art Of War

EECE 351 – Lecture 24

Mmm sbr1

  • Gloom

    • Separation

      • Needed to understand the differences

    • Isolation

      • Look at quote again “…by itself…”

      • “It is not the techniques I oppose, it is expecting them to work magic.”

    • Only allowing 10 yrs.

      • Humans can’taccurately predict beyond a decade

      • 40 yrs is a long time to wait

      • Moore’s Law

EECE 351 – Lecture 24

Mmm sbr2

  • Thought Experimentation

    • 1952 vs. 1986

      • Might as well call this section 1984!!!!

    • Still have same problems now as then

      • What’s easier:

        • Figuring out MSDEV or

        • Figuring out C++?

  • Vanilla Framework

    • I haven’t heard of it outside this book

      • Have you?

EECE 351 – Lecture 24

Mmm sbr3

  • Invisibility

    • You cannot represent a program in the real world

      • Flow charts are EVIL

    • “Where is next November?”

      • Good programmers have strong spatial senses

      • Highly individualistic models

  • Productivity follows Quality

    • Goal of SE is to increase Quality, Testability, Stability, & Predictability NOT efficiency!

    • Who’s responsible when a BSOD occurs?

EECE 351 – Lecture 24

Mmm sbr do i throw the first one away
MMM SBR – Do I Throw The First One Away?

  • Brooks admits now that this was erroneous (his term is “simplistic”) advice.

  • He blames the use of a waterfall model for this error.

  • He now counsels the use an organic growth (incremental build, rapid prototyping, etc.) model so that there is no “first one.”

  • He discusses the “build every night” approach used at Microsoft.

  • He’s still side-stepping the issue.

    • The fact is that you need to get your customers, through some incentive, to accept early versions of your product.

EECE 351 – Lecture 24

Mmm sbr object oriented methodology a silver or brass bullet
MMM SBR – Object-Oriented Methodology: A Silver or Brass Bullet?

[Why has object-oriented technique grown slowly?]

The problem is that programmers in O-O have been experimenting in incestuous applications and aiming low in

abstraction, instead of high. [James Coggins]

It is because [O-O] has been tied to a variety of complex languages. Instead of teaching people that O-O is a type of

design, and giving them design principles, people have

taught that O-O is the use of a particular tool. We can write

good or bad programs with any tool. Unless we teach people

how to design, the languages matter very little. [David Parnas]

EECE 351 – Lecture 24

Mmm sbr object oriented methodology revisited
MMM SBR – Object-Oriented Methodology Revisited Bullet?

  • There is a frank admission that data abstraction and encapsulation are absolutely necessary

  • There is an admission that inheritance is critical in achieving intra- and inter-program reuse

EECE 351 – Lecture 24

Mmm sbr re use another brass bullet
MMM SBR – Re-Use: Another Brass Bullet Bullet?

  • Most experienced programmers have private libraries

    • Do you?

  • The larger the group, the tougher is re-use to practice

    • Why?

      • Motivational issues exist, but are largely accidental and not essential

      • NIH (not invented here) is real, but is not a minor reason (see above)

      • Vocabulary size is the inherent issue

        • Microsoft’s MFC, COM, and active-x efforts are examples massive vocabularies

EECE 351 – Lecture 24

Mmm sbr conceptual integrity
MMM SBR – Bullet?Conceptual Integrity

  • Conceptual integrity is the most important concept

  • The architect is the realization vehicle for conceptual integrity

    • Separation of the architecture and implementation/realization is key

      • Note the similarity of the C++ class declaration and class implementation mechanisms - and the advice to separate into a separate header (*.H) and source file (*.Cpp)

  • Complexity is the business we are in!

    • And what limits us.

EECE 351 – Lecture 24

Things not in mmm quality control
Things not in MMM Bullet?Quality Control

  • Dr. W. Edwards Demingwas the first to think of Quality Control

  • America laughed at him

  • Japanese thought it was good idea

    • How many TVs are made in the US now?

  • Dr. Deming’s ideas were employed in industrial settings.

    • Getting the machines to work correctly

  • How can they be applied to Software?

EECE 351 – Lecture 24

Things not in mmm quality control1
Things not in MMM Bullet?Quality Control

  • First, we have to know what quality software is (how to define):

    • Doesn’t crash

    • Accurate

    • Fulfills specifications

    • Etc.

  • Then, how do we make Quality Software


    • Look at those who do and ask:

      • What are they doing that I’m not?

EECE 351 – Lecture 24

Things not in mmm personalities
Things not in MMM Bullet?Personalities

  • You won’t be graded on it, but check out:


      • Temperament or Character Sorter

  • Will help you figure out who you are

    • And more importantly how you learn

  • There are several types of outcomes

  • Each has a four letter code

    • Mine was ESTP

    • Now its ESTJ (or ENTJ)

EECE 351 – Lecture 24

Things not in mmm personalities1
Things not in MMM Bullet?Personalities

  • E or I

    • Extroverted vs. Introverted

  • N or S

    • Intuition or Sensing

  • T or F

    • Thinking or Feeling

  • J or P

    • Judgment or Perception

  • The best engineers are usually ISTP

EECE 351 – Lecture 24

What we know
What we know Bullet?

  • No Silver Bullets

  • Quality Control

  • Personality Traits

EECE 351 – Lecture 24

Where we are going
Where we are going Bullet?

  • Quiz & Project questions

  • Final Review

  • The Exam

  • Summer!!!

EECE 351 – Lecture 24