Presentation By Dr. MOHAMMAD SHAHID · Presentation By Dr. MOHAMMAD SHAHID Department of Commerce...
Transcript of Presentation By Dr. MOHAMMAD SHAHID · Presentation By Dr. MOHAMMAD SHAHID Department of Commerce...
System Development Approaches
Presentation By
Dr. MOHAMMAD SHAHID
Department of Commerce
Aligarh Muslim University
Aligarh-202002
Various Approaches of System Development
Waterfall Model
Prototype Model
Iterative Model
Spiral Model
4GT Model
Agile Model
Introduction
Background on software process models
1970 : Waterfall model (Royce)
1971 : Incremental model(Mills)
1977 : Prototyping model(Bally and others)
1988 : Spiral model (Boehm)
Waterfall Model
Waterfall Model is introduced by Royce 1970. first Process Model and referred as a linear-sequential
life cycle model. the outcome of one phase acts as the input for the
next phase sequentially. Phases do not overlap Very less customer interaction during development
Waterfall Model….
When to use the waterfall model
Requirements are very well known, clear and fixed.
Product definition is stable
Technology is understood
There are no ambiguous requirements
Resources with required expertise are available freely
The project is short.
For conventional product/software
Waterfall Model..
Advantages of waterfall model: It is simple and easy to understand and use.
Amount of resources required are minimal.
High Visibility:
In this model, output is generated after each stage, therefore it has high visibility. The client and project manager gets a feel that there is considerable progress. (psychological factors also play an important role)
Project management
Waterfall model works well for smaller projects where requirements are very well understood.
Clearly defined stages
Process and results are well documented
Waterfall Model…
Disadvantages….
Not a good model for complex and object-oriented projects
Not suitable for the projects where requirements are changing.
Cannot accommodate changing requirements
Poor model for long and ongoing projects.
Prototype Model
Instead of freezing the requirements, a prototype is built to understand the requirements.
This prototype is developed based on the currently known requirements
By using this prototype, the client can get an “actual feel” of the system, enabling the client to better understand the requirements
Prototyping is an attractive idea for complicated and large systems for which there is no manual process or existing system to help determining the requirements.
Prototype Model….
Merits.. Prototyping is tuned and iterated till the customer satisfaction.
Prototype mainly serves a mechanism for identifying software needs
Users can actually view the future system which is going to get develop.
Well suited in case of changing requirement or ambiguous needs
Prototype Model….
Limitations…..
Customer and developer must both agree on the built prototype to serve as a mechanism for defining requirements.
Additional cost due to prototype building
Time and cost taken due evolutionary nature
Insufficient analysis
User confusion of prototype and finished system
Iterative Model
Iterative /Incremental model
Complete work is divided into parts
These portions are developed with sequential life cycle (analysis, design& implement)
Iterative Model…
Used in the following scenarios: Requirements of the complete system are clearly
defined and understood.
However, some functionalities or requested enhancements may evolve with time.
A new technology is being used and is being learnt by the development team while working on the project.
Resources with needed skill set are not available and are planned to be used on contract basis for specific iterations.
There are some high risk features and goals which may change in the future.
Iterative Model…
Merits:
Results are obtained early and periodically.
Parallel development can be planned.
Less costly to change the scope/requirements.
Testing during smaller iteration is easy.
Risks are identified and resolved during iteration
Easier to manage risk - High risk part is done first.
Iterative Model…
Demerits:
Although cost of change is lesser but it is not very suitable for changing requirements.
More management attention is required.
System architecture or design issues may arise because not all requirements are gathered in the beginning of the entire life cycle.
Defining increments may require definition of the complete system.
Not suitable for smaller projects.
Management complexity is more.
Spiral Model
The spiral model, has spiral lifecycle
This model merges the features of the prototyping model and the waterfall model. The spiral model is preferred for large, expensive, and complicated (high Risk) projects.
4 GT Model
The Fourth Generation Technique (4GT) is based on NPL that is the Non-Procedural Language techniques. Depending upon the specifications made,
4GT approaches uses various tools for the automatic generation of source codes.
4GT encompasses a broad array of software tools. These are for… 1) Non-procedural languages for database query 2) Report generation 3) Data manipulation 4) Screen interaction and definition 5) Code generation and High-level graphics capability 6) Spreadsheet capability 7) Automated generation of HTML and similar languages used for Web-site creation using advanced software tools.
4 GT Model
Advantages
Simplified the programming process.
Use non-procedural languages that encourage users and programmers to specify the results they want
Use natural languages that impose no rigid grammatical rules.
Coding Time reduction
4 GT Model
Disadvantages…. Programs written in 4GLs are generally far less
efficient than programs in high-level languages. Therefore, their use is limited to projects that do not call for such efficiency.
For large software development, as much more efforts demands for analysis, design, and testing to achieve substantial time saving
Tools used may not be easy to use or Codes may be inefficient
Less flexible to other languages
Agile model
It is also a type of Incremental model.
Software is developed in incremental, rapid cycles.
This results in small incremental releases with each release building on previous functionality.
Each release is thoroughly tested to ensure software quality is maintained.
Advantages..
Customer satisfaction by rapid, continuous delivery of useful software.
Working software is delivered frequently (weeks rather than months).
Regular adaptation to changing circumstances
Even late changes in requirements are welcomed
Disadvantages..
Lack of emphasis on necessary designing and documentation
The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
Only senior programmers are capable of taking the kind of decisions required during the development process.