Вы находитесь на странице: 1из 33

Software Design and

Architecture

By
Shahab Ul Islam
Lecture – 02 : Agenda

 Software Crisis

 Software Process Models– An Overview

 Classic Models (Water Fall and V-Model)

 Drawbacks in Classic Models

 Agile Process Models


Software Crisis
It refers to the difficulty of writing correct,
understandable, and verifiable computer
programs in the required time.
A situation in which catastrophic failures has
occurred.
Exceeding of the date, budget excess, failure of the
project
IT projects are not realized as planned ,
unmethodical procedure, unplanned activities.
History of Software Crisis

 Term by  F. L. Bauer at the first NATO Software


Engineering Conference in 1968 at Garmisch, Germany
 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 for Failure

 Unclear, unstable, misunderstood and missing


requirements
 Too late integration of results of working and
components, thus too late recognition of risks and errors
 Fast changing technologies
 Missing Quality Management
 Overvaluation of documents
 No model-based process
Examples of Software Bug and Failures
• The Northeast blackout in 2003
 A major Problem in history of North America
 Failure of 100 power plants due to which almost 50 million
customers faced power loss
 Financial loss of approximately $6 billion.
 Software bug in the power monitoring and management system.
 Year 2000 (Y2K) problem:
 Y2K problem can be traced back to 1960-80
 Developers shortened the 4-digit date format because of
limited memory.
 At that time they did not realize that year 2000 will be
shortened to 00 which is less than 72.
 Realize in 1990 and spent millions to on this overcome
this problem.
Arian-5 space rocket
• In 1996, Arian-5 space rocket, developed at the
cost of $7000 million over a period of 10 years
was destroyed within less than a minute after its
launch. The crash occurred because there was a
software bug in the rocket guidance system.
• Gulf War in 1991:

Patriot missile(US) failed to hit the Scud


missile(Iraqi) many times during Gulf war 1991.

As a result, 28 US soldiers were killed

Bug was in the miscalculation of missile path


• In 1996, one of the largest banks of US credited
accounts of nearly 800 customers with
approximately $9241acs. Later, it was detected
that the problem occurred due to a programming
bug in the banking software.
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


 Also referred to as a linear-sequential life cycle model
 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
Requirement Gathering and
analysis:
All possible requirements of the system to be
developed are captured in this phase and
documented in a requirement specification doc.
System Design
The requirement specifications from first phase
are studied in this phase and system design is
prepared. System Design helps in specifying
hardware and system requirements and also
helps in defining overall system architecture.
Implementation
With inputs from system design, the system is
first developed in small programs called units,
which are integrated in the next phase. Each unit
is developed and tested for its functionality
which is referred to as Unit Testing.
Integration and Testing
All the units developed in the implementation
phase are integrated into a system after testing
of each unit. Post integration the entire system is
tested for any faults and failures.
Deployment of system
Once the functional and non functional testing is
done, the product is deployed in the customer
environment or released into the market.
Maintenance
There are some issues which come up in the
client environment. To fix those issues patches
are released. Also to enhance the product some
better versions are released. Maintenance is
done to deliver these changes in the customer
environment.
Waterfall Model Application
Some situations where the use of Waterfall model is most appropriate
are:

• Requirements are very well documented, clear and fixed.


• Product definition is stable.
• Technology is understood and is not dynamic.
• There are no ambiguous requirements.
• The project is short.
Draw Back of Classic Models

 Highly structured and expect stable requirements.


 Too rigid to later changes in Software.
 Clients don’t know exact requirements
V-Model
• An extension of waterfall model.
• Execution of processes happens in a sequential
manner in V-shape.
• Also known as Verification and Validation
model.
• Every single phase in the development cycle
there is a directly associated testing phase
V-Model – Extension of Water Fall
Model
V-Model (Verification Phases)
• Business Requirement Analysis
▫ This phase involves detailed communication with the customer to
understand his expectations and exact requirement.

• System Design
▫ System design would comprise of understanding and detailing
the complete hardware and communication setup for the product
under development.
V-Model (Verification Phases)
• Architectural Design(HLD)
▫ Architectural specifications are understood and designed in this

phase.

• Module Design(LLD)
▫ In this phase the detailed internal design for all the system
modules is specified.
V-Model (Coding Phase)
The actual coding of the system modules
designed in the design phase is taken up in the
Coding phase. The best suitable programming
language is decided based on the system and
architectural requirements.
V-Model (Validation Phases)
• Unit Testing
• Unit tests designed in the module design phase are executed on the code during
this validation phase. Unit testing is the testing at code level and helps
eliminate bugs at an early stage, though all defects cannot be uncovered by unit
testing.

• Integration Testing
▫ Integration testing is associated with the architectural design phase.
Integration tests are performed to test the coexistence and

communication of the internal modules within the system .


V-Model (Validation Phases)
• System Testing
▫ Directly associated with the System design phase.
▫ Check the entire system functionality and the communication of the
system under development with external systems.
▫ Most of the software and hardware compatibility issues can be
uncovered during system test execution.
• Acceptance Testing
▫ Acceptance testing is associated with the business requirement
analysis phase and involves testing the product in user environment.
V- Model Application
Following are the suitable scenarios to use V-
Model:
Requirements are well defined, clearly
documented and fixed.
Product definition is stable.
Technology is not dynamic and is well understood
by the project team.
There are no ambiguous or undefined
requirements.
The project is short.
Features of V-Model

 Simple and easy to use.


 Testing activities like planning, test designing happens
well before coding.
 Proactive defect tracking – that is defects are found at
early stage.
 Works well for small projects where requirements are
easily understood.
Draw Backs of V- Model
 Not a good model for complex projects.

 Poor model for long and ongoing projects.

 Not suitable for the projects where requirements are at a

moderate to high risk of changing.


Agile Processes – Light Weight
Methodologies

Slogan : “Change is the only


Constant”.

Вам также может понравиться