Software Design
Sheraz Pervaiz
MS – Germany
BS Canada
Lecture – 1 : Agenda
Course Information
Software Crisis
Software Process Models– An Overview
Classic Models (Water Fall and VModel)
Drawbacks in Classic Models
Agile Process Models
Extreme Programming (XP)
Problem Discussion
Review
Course Information
Course Name: Software Design
PreRequisites
Software Engineering I and II, Object Oriented
Programming, Object Oriented Analysis and
Design
Programming Language
Java in the Lectures
Students can use any OOP based language to solve the
assignments and write answers in exams
Software Crisis
Term by F. L. Bauer at the first NATO Software Engineering
Conference in 1968 at Garmisch, Germany
It refers to the difficulty of writing correct, understandable,
and verifiable computer programs
Exceeding of the date, budget excess, failure of the project
IT projects are not realized as planned realized
Unmethodical procedure, unplanned activities, double work
History of Software Crisis
Advances in hardware capability have enabled
increasingly complex software.
Our ability to intellectually manage this complexity has
always lagged the advances in software complexity.
We continually require better tools (CASE etc)
Software CHAOS Report
Standish Group Study 1995
46 % date or budget excess
28 % failure
Only 9 % of all large IT projects in time and budget
Reasons
Unclear, unstable, misunderstood and missing
requirements
To late integration of results of working and components,
thus to late recognition of risks and errors
Fast changing technologies
Missing Quality Management
Overvaluation of documents
No modelbased process
Examples of Software Bug and Failures
Buggy Computer Club, in 1945 engineers found a
moth in Panel F, Relay #70 of the Harvard Mark II
system. The computer was running a test of its multiplier
and adder when the engineers noticed something was
wrong. The moth was trapped, removed and taped into
the computer's logbook with the words: "first actual case
of a software bug being found."
NASA : Mariner Failure in 1962
A bug in the flight software for the Mariner 1 causes the
rocket to divert from its intended path on launch. Mission
control destroys the rocket over the Atlantic Ocean. The
investigation into the accident discovers that a formula
written on paper in pencil was improperly transcribed into
computer code, causing the computer to miscalculate the
rocket's trajectory.
Korean Airline Crash
The Korean Airlines KAL 801 accident in Guam
killed 225 out of 254 aboard. A software design
problem was discovered in barometric altimetry
in Ground Proximity Warning System (GPWS)
Software Process – An Overview
• “Software Processes model models desired
phases or activities in the project”
Water Fall Model
By Winston Royce 1970
Originate from Manufacturing and Construction Industry
where requirements are stable
Due to lack of any standard software process this model
was adopted as standard for software development
Change is a costly issue
Water Fall Model
Draw Back of Classic Models
Highly structured and expect stable requirements.
Too rigid to later changes in Software.
Clients don’t know exact requirements
VModel – Extension of Water Fall
Model
Features of VModel
Instead of going down the waterfall in a linear way the
process steps are bent upwards at the coding phase, to
form the typical V shape
Traceability down the left side of the V
Draw Backs of V Model
Has the reputation of being ponderous and document
heavy
Unsuitable for small and middle projects (leads to
software bureaucracy)
Not manageable without suitable tools
Many different roles (25)
Agile Processes – Light Weight
Methodologies
Slogan : “Change is the only
Constant”
Focuses on Agility and adaptability
Software Design is never frozen !!
Core Values of Agile Methods
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.