The need for Rapid development methodologies is to develop systems more quickly with good quality. And main aims of the rapid development methodologies are to involve the customer or client in to the project analysis, design and the implements activities. The phases in the rapid development methodologies are done in the iterative construction. And these methodologies will manage to change the behaviour of requirements. During the construction of large and complex system by small and technically contended development team.
A methodology is regarded as a recommended series of steps and procedures to be followed in the course of developing an information system. But in present days business needs there is a requirement for system development methodologies that can develop the information system with in less period of time with good quality.so rapid development methodologies are proposed for achieving the above requirement. Her in this paper we emphasized the importance of rapid development of methodology and we discussed some of the rapid development methodologies.
Here we provide a working definition of the term ?methodology?. The term is not well defined either in the literature or by practitioners.
A methodology is regarded as a recommended series of steps and procedures to be followed in the course of developing an information system. In a brief ad hoc survey, this proves to be about the maximum that people will agree to and of course, such a definition raises many more question that it answers.
Rapid development methodology: By the name itself we can understand that it is used in the development of a particular system to get the better results that user reacquires
Generally this includes five different phases which are stated in the below diagram:
This phase includes the vision of the project that is what are the goals to be achieved during the development of the system and this also contains the technologies that are to be included in developing the system.
This incldes the gathering of the requirements and their categorization that is requirements are divided into functional and nonfuctional. This also includes analyzing of requirements, scope of the project, architecture and project plan.
Analysis and Design:
This includes the analyzation of the process, plan and architecture of the system. This also incldes the designing of the system. Risk management plan is also included in this phase.
This includes the planning of the cycle, construction, transition and review. This ia an iterative phase which is continuosly repeted, after each iteration feedback is taken by the user and by this review in the next iteration developer overcomes those disadvantages.
This includes the overall review of the system that is project post-mortem, documentation and the things that they learned from the overall system.
They are different types of rapid development methodologies
- RAD(Rapid Application Development)
- DSDM(Dynamic System Development Method)
Rapid application development (RAD)
Rapid Application Development is a term originally used to describe a?software development process?introduced by?James Martin?in 1991. Martin's methodology involves iterative development and the construction of?prototypes. More recently, the term and its acronym have come to be used in a broader, generic sense that encompasses a variety of techniques aimed at speeding application development, such as the use of?web application frameworks?and other types of?software frameworks.
It is a software development methodology. This includes software prototyping and iterative development. It is a combination of various structured techniques, particularly data driven information engineering, prototyping techniques to accelerate software systems development.
In rapid application development, structured &prototyping techniques are used in user?s requirements, because to design in final system. Developments models began with business models & data models these are used in structured techniques later stage requirements are using prototyping, finally refine the data and process models and these stages are act continuously ,in future results, ?a unify business requirements and technical design statement to be used for constructing new systems.
Rad approaches mean to agree in functionality and performance to exchange faster development and facilitating application maintenance.
Four phases of RAD life cycle:
- requirement?s planning
- user design
- cut over
Requirements Planning Phase
Requirements planning appear in a joint requirement planning workshop (JRP).These RPP phase requires that high level knowledgeable end-user determine what the function of the system should be. The requirements planning phase solve the problems.it can be often be done quickly when the right users and executives are solved.
User Design Phase
User design phase, the users to participate strongly in the non-technical design of the system, under the lead of (I.S) professionals. The user design work in a joint application design (JAD) work shop look like to the JRP workshop. The prototyping used in requirements specification and design, the user doesn?t sign off paper design, they sign off a case representation
While design the system the designing phase is added to I ?CASE tools so that at each transit the user a can revise the system. The case tools allow the users to involve in the construction phase and make it easy for continuous change during the design. Testing is done thought out the process. The I case set tool should be able generate code along with the data base decryption in final product .Code optimizers are used for increasing the performance of the overall system
In the cutover phase different action are needed. They are comprehensive testing and training of the end user. When in case the organizational changes and operation in parallel the previous system until the new system settle in.
Advantages and Disadvantages
RAD primary advantages are ?speed and quality?. Potentially reduced the scalability and reduced feature sets are the disadvantages
The main goal of rapid development methodologies is to increase the speed of delivery of the application and decrease the time taken to develop it with good quality. The process of developing application with an increased speed is provided by computer aided software engineering is case tools. These case tools convert the requirements of the application into code very fastly along with time boxing by which we can append necessary features in the new releases in order to complete full version quickly.
Along with the increased speed of delivery of that application and low developmental cost rapid developmental methodologies focus on quality of the product. The quality of the product is that it should be the application conforms to specification and lake of defects in the application which was delivered once the application is delivered the maintain cost should be low rapid application development involves the users early in design stages.
Rad focus on the iterative development of prototype of a system and the solution acquired in this method may lack the scalability when compared to that of a solution that was fully developed from the starting of the application. The automated architecture our just in time application generation methodology provides the benefits of rad.it is minimize many disadvantages it means decrease scalability .the enterprise level ?prototype? provides a starting point scalable well designed and efficient application
The features are pushed off to next versions in favour of delivering an application in a short time in the time boxing frame. RAD may produce less full applications these are featured than traditionally developed applications. This concern should be addressed as early as possible through clear communication with the client as to what will be delivered and when.
Dynamic system development method
The Dynamic Systems Development Method is a framework which describes out the throughout knowledge about the project management. DSDM already expanded out its structure in the software development, But the together emergence of the development and processing fields in the software makes it the general framework for complex tasks in solving problems.
Principles of? DSDM? are:
- Active user involvement.
- Empowered teams that the authority to can make decisions.
- A focus on frequent delivery of products.
- Using fitness for business purpose as the essential criterion for acceptance of deliverables.
- Iterative and incremental development to ensure convergence on an accurate business solution.
- Reversible changes during development.
- Requirements that are base lined at a high level.
- Integrated testing throughout the life cycle.
- Collaboration and cooperation between all stakeholders.
Dynamic System Development is one of the approach in the system development and which develops out the system dynamically. This methodology not uses or depends over the tools and can be used with both structured and object oriented approaches.
The Dynamic System Development Method Is one of the Rapid application Development Methodologies And uses the incremental prototyping in it. It is mainly concerned in the fields where system development is to be obtained in short span of time and the requirements for it cannot be frozed out at the starting stage of application building. The design is to be prepared, developed and comprised into the system with available requirements known at that point of time. In Dynamic System Development Method (DSDM) the three phases (Analysis, Design and Development) are overlapped at some time , for example some people working out on requirements while others may developing on systems at the same time. In Dynamic model requirements may evolve at time
Dynamic System Development Method (DSDM) has a five-phase life cycle as given the following figure:
In This phase at first the problem is taken out and technical aspects to solve it may be verified. Apart from these tasks it also verifies that whether it may work through rapid application approach are not, otherwise it will not continue out through the process.
In the business study phase at first the business study of the overall desired system is done. The business requirements out of the desired system are identified. Once the business requirements are identified the basic architectural framework is prepared.
The Rapid Application development designed systems are based on the incremental development process, so they should be maintained precisely. In order to cope up with the standards of quality control activities the maintainability of the designed systems should be maintained throughout the developmental processes.
Functional Model Iteration:
Functional model is one of the iterative phases in the life cycle and the main aim of this phase is to build the prototype iteratively. It will get the required information for to build the system from the users itself.
It is one of the repeated phases of the life cycle. The main focus in this phase is on building the prototype iteratively and getting it reviewed from the users to bring out the requirements of the desired system. The prototype is further improved or makes changes by giving the demonstration to the user and taking their views. This cycle is repeated two to three times until a part of the functional model is agreed by. The End product of this phase consists of the model which consisting of throughout analysis model and some software components containing the major part of functionality.
Design and Build Iteration:
The main focus on this prototype is to engineer it satisfactorily in order to be compatible with the operational environment. The components in this software are refined until they reach satisfactory standards. After this the system is tested and ensure for implementation.
In these two sub phases design and building there may be cases in which the software components will flow of the functional design and some may not be started yet. Hence these two phases can be continued simultaneously.
The important and the last development stage in this methodology is Implementation. In this phase the overall system runs in an operational environment and the users are trained. At the end there are four possibilities as portrayed in the figure.
- Everything was developed according to the user specification so no further development is required.
- In case if a new functional area was discovered then we have to repeat the whole process by returning back to business study phase.
- If even a very little essential part of the project may be missed out due to time constraint the development may return back to functional model iteration.
- If some non-functional requirement was not satisfied in the completed model it will again return back to the design implementation and build the iterations phase.
Dynamic System Development Method (DSDM) assumes out that all the previous steps are to be revised once again as it is a part of its iterative approach. So it predicts that the current step need to be completed only enough to proceed to the next step as it can be finished in the later occurring iterations. This assumption is that the business requirements are changing from time to time anyway as the understanding increases, so any later work may be wasted out.
In this approach the time is taken as an constraint i.e. In this method time and the resources are kept fixed while the requirements are allowed to change along. This does not use up the fundamental point of making a perfect part of the system but provides a 80% of the desired system in 20% of the applied time. This approach is very useful under certain time constraints and the changing requirements.
DSDM Model Limitations:
- It is relatively new model and not so common and very difficult to understand
DSDM Model Advantages:
- Active user participation throughout the project and its iterativeness can improve the quality of the product.
- DSDM ensures rapid deliveries.
- Those above factors will be considered in order to reduce the project cost.
Software prototyping: Is the framework of activities during?software development?of creating prototypes, i.e., incomplete versions of the software program being developed.
Basic principles of prototyping are
- Not a standalone, complete development methodology, but rather an approach to handling selected portions of a larger, more traditional development methodology (i.e. Incremental, Spiral, or Rapid Application Development (RAD)).
- Attempts to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process.
- User is involved throughout the process, which increases the likelihood of user acceptance of the final implementation.
- Small-scale mock-ups of the system are developed following an iterative modification process until the prototype evolves to meet the users? requirements.
- While most prototypes are developed with the expectation that they will be discarded, it is possible in some cases to evolve from prototype to working system.
- A basic understanding of the fundamental business problem is necessary to avoid solving the wrong problem.
- Encourages innovation and flexible designs
- Helps to easily identify confusing or difficult functions and missing functionality
- Its generate specification for a production application.
- Approval process and control is not strict.
- Identification non-functional element?s is difficult to document.
Situation where most appropriate:
- Team composition is stable.
- Project manager is experienced.
- User is not fully knowledgeable.
- Project objectives are unclear.
Situation where least appropriate:
- Web-enabled e-business systems.
- Project team composition is unstable
- Future scalability of design is critical.