Date post: | 10-May-2015 |
Category: |
Technology |
Upload: | puteri-sabah |
View: | 348 times |
Download: | 0 times |
INTRODUCTION TO BASIC PROGRMMING COM 1013
Chapter 6: software development method
Types of Software Development Strategies
PREPARED BY:
JACQULYN ANNABELLA
KASNIDAR BINTI NURDIN
What is software development ??
A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system.
Common methodologies include waterfall, prototyping, incremental development, spiral development, rapid application development, and extreme programming.
Common methodologies
waterfall
prototyping
Incremental development
Spiral development
Rapid application
development (RAD)
Agile development
RAPID APPLICATION DEVELOPMENT (RAD)
Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping.
Requirements Planning phase – combines elements of the system planning and systems analysis phases of the System Development Life Cycle (SDLC). Users, managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements. It ends when the team agrees on the key issues and obtains management authorization to continue.
User design phase – during this phase, users interact with systems analysts and develop models and prototypes that represent all system processes, inputs, and outputs. The RAD groups or subgroups typically use a combination of Joint Application Development (JAD) techniques and CASE tools to translate user needs into working models. User Design is a continuous interactive process that allows users to understand, modify, and eventually approve a working model of the system that meets their needs.
Construction phase – focuses on program and application development task similar to the SDLC. In RAD, however, users continue to participate and can still suggest changes or improvements as actual screens or reports are developed. Its tasks are programming and application development, coding, unit-integration and system testing.
Cutover phase – resembles the final tasks in the SDLC implementation phase, including data conversion, testing, changeover to the new system, and user training. Compared with traditional methods, the entire process is compressed. As a result, the new system is built, delivered, and placed in operation much sooner.
Advantage & Disadvantage of RAD
Advantages Flexible and adaptable
to changes Can handle large
projects without a doubt
RAD realizes an overall reduction in project risk.
Generally Rad incorporates short development cycles (2-3 months).
Disadvantages Can’t use for small
projects Requires more resources
and money to implement RAD
All applications are not competible with RAD
RAD is not appropriate hen technical risks are high
Need both customer and developer commitments to complete a project. Otherwise RAD wil fail
SPIRAL DEVELOPMENT
The Spiral Development ( or Lifecycle) Model is a systems development method used in information technology.
It combines the features of the prototyping model and the waterfall model.
The spiral model is intended for large, expensive and complicated projects.
Spiral model
Each loop has four sections or quadrants :
1. To determine the objectives, alternatives and constraints. We try to understand the product objectives, alternatives in design and constraints imposed because of cost, technology, schedule, etc.
2. Risk analysis and evaluation of alternatives. Here we try to find which other approaches can be implemented in order to fulfill the identified constraints. Operational and technical issues are addressed here. Risk mitigation is in focus in this phase. And evaluation of all these factors determines future action.
3. Execution of that phase of development. In this phase we develop the planned product. Testing is also done. In order to do development, waterfall or incremental approach can be implemented.
4. Planning the next phase. Here we review the progress and judge it considering all parameters. Issues which need to be resolved are identified in this phase and necessary steps are taken.
Advantage and Disadvantage SpiralAdvantages
1)spiral Life Cycle Model is one of the most flexible SDLC models in place. Development phases can be determined by the project manager, according to the complexity of the project.
2) It is suitable for high risk projects, where business needs may be unstable.
3) Risk management is one of the in-built features of the model, which makes it extra attractive compared to other models.
Disadvantages
1) Cost involved in this model is usually high.2) It is a complicated approach especially for projects with a clear SRS.3) Skills required, to evaluate and review project from time to time, need expertise.4) Rules and protocols should be followed properly to effectively implement this model. Doing so, through-out the span of project is tough.
AGILE SOFTWARE DEVELOPMENT
Agile methodology is an alternative to traditional project management, typically used in software development. It helps teams respond to unpredictability through incremental, iterative work cadences, known as sprints. Agile methodologies are an alternative to waterfall, or traditional sequential development.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams
Agile model
The Agile Manifesto is based on twelve principles: Customer satisfaction by rapid delivery of useful software
Welcome changing requirements, even late in development
Working software is delivered frequently (weeks rather than months)
Working software is the principal measure of progress
Sustainable development, able to maintain a constant pace
Close, daily cooperation between business people and developers
Face-to-face conversation is the best form of communication (co-location)
Projects are built around motivated individuals, who should be trusted
Continuous attention to technical excellence and good design
Simplicity—the art of maximizing the amount of work not done—is essential
Self-organizing teams
Regular adaptation to changing circumstances
Advantage and Disadvantage AgileAdvantages
• Customer satisfaction by rapid, continuous delivery of useful software.
• People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
• Working software is delivered frequently (weeks rather than months).
• Face-to-face conversation is the best form of communication.
Disadvantages
• In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
• There is 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.
What is prototyping?? Software prototyping, refers to the activity of
creating prototypesp of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing
A prototype is a model or a program which is not based on strict planning, but is an early approximation of the final product or software system. A prototype acts as a sample to test the process. From this sample we learn and try to build a better final product..
Advantage and disadvantage of prototypeAdvantages of Prototype model:
Users are actively involved in the development
Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed.
Errors can be detected much earlier.
Quicker user feedback is available leading to better solutions.
Missing functionality can be identified easily
Disadvantages of Prototype model:o Leads to implementing and
then repairing way of building systems.
o Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.
o Incomplete application may cause application not to be used as thefull system was designedIncomplete or inadequate problem analysis.