SPIRAL MODEL The spiral model is a system development lifecycle (SDLC) method used for risk management that combines the iterative development process model with elements of the waterfall model. It is used by software engineers and is favoured for large , expensive and complicated projects. The spiral model has a total of four phases as explained below, Requirement Analysis The spiral model process starts with collecting business needs. In this ,the following spirals will include the documentation of system requirements and the subsystem needs. In this stage we can easily understand the system requirements because the business analyst and the client have constant communication. Once the cycle is completed the application will be deployed in the market. Design The second stage of the spiral model is designed, where we will plan the logical design, architectural design, flowcharts, decision trees. Coding After the compilation of the design stage , we will move to our next step which is the coding phase. In this we will develop the product based on the client's requirement and getting the client's feedback as well. This stage refers to the construction of the real application in every cycle. And those spirals had an excellent clarity of the requirements and the design details of an application are known as the build with version numbers. After that these builds are transferred to the client for the responses. Testing and Risk analysis Once the development is completed successfully, we will test the build at the end of the first cycle and also analyse the risk of the software on the different aspects such as managing risks, deleting, and observing the technical feasibility. And after that, the client will test the application and give feed back. The spiral model is widely used in the software industry as it is in sync with the natural development process of any product for example learning with maturity which involves minimum risk for the customer as well as the development firms. When there's a budget constraint and risk evaluation is important. The best suitable example for the spiral model is MsExcel because it having several cells , which are the components of an excel sheet. NASA is one of the good example which is using the spiral model. Advantages ✓Flexible changes are allowed in spiral model ✓The development can be distributed into smaller parts ✓The customer can use the application at an early stage also ✓More clarity for developers and test engineers ✓It will provide the wide use of prototypes Disadvantages >It is not suitable for the small and low risk products because it could be costly for smaller projects. >It is a traditional model, and thus developers only did the testing job as well >There's no requirement of review process and no parallel deliverables allowed in the spiral model >In the spiral model management is abit difficult, that's why it is a complex process >The maximum number of intermediate phases needs unnecessary paper work RAPID APPLICATION DEVELOPMENT (RAD) MODEL RAD is a linear sequential software using an element based construction approach. With rapid application development, developers can make multiple iterations and updates to a software quickly without starting from scratch each time. RAD is a development model that prioritizes rapid prototyping and quick feed back over long drawn out development and testing cycles. RAD is a concept that products can be developed faster and of higher quality through; - Gathering requirements using workshops or focus groups - Prototyping and early, reiterative user testing of designs - The reuse of software components - A rigidly placed schedule that refers design improvement to the next product version. - Less formality in reviews and other team communication The RAD is particularly useful for small businesses that need software done quickly whilst having alot of input during the development process. The various phases of the rapid application development are, Business modelling The information flow among business functions is defined by answering questions like what data drives the business process, what data is generated , who generates it. Data modelling The data collected from business modelling is refined into a set of data objects (entities) that are needed to support the business. The attributes (character of each entity) are identified, and the relation between these data objects is defined. Process modelling The information object defined in the data modelling phase are transformed to achieve the data flow necessary to implement a business function. Processing descriptions are created for adding, modifying, deleting, or retrieving a data object. Application generation Automated tools are used to facilitate construction of the software, they even use the 4th GL techniques Testing and Turn over Many of the programming components have already been tested since RAD emphasises reuse. This reduces the overall testing time. But the new part must be tested , and all interfaces must be fully exercised. When to use RAD ~ When the requirements are well-known ~ When the system should need to create the project that modularized in a short span time ( 2-3 months) ~ When the technical risk is limited ~ When there's a necessity to make a system which modularized in 2-3 months period ~ It should be used only if the budget allows the use of automatic code generating tools Advantages ✓This model is flexible for change ✓In this model , changes are adoptable ✓Each phase in RAD brings highest priority functionality to the customer ✓It reduced development time ✓It increases the reusability of features Disadvantages > Requires user involvement > On the high technical risk, it's not suitable > For smaller projects, we can't use the RAD model > All applications are not compatible with RAD > It required highly skilled designers JOINT APPLICATION DEVELOPMENT (JAD) MODEL JAD is a methodology that involves the client or end user in the design and development of an application, through a succession of a collaborative workshop called JAD sessions. JAD is a very common technique in the business analysis world. It brings system developers and users together in a productive and creative environment through a structured approach that involves discussion groups with the goal to obtain requirements and specifications. When a business needs some technical input from the technical expertise, JAD session is required. Like wise, when technical expertise needs business input , JAD is required. JAD participants When implementing JAD process , you need to keep in mind that the JAD team is at the heart of the project . And also you need to carefully include your stake holders as they will be responsible for the overall success of a JAD session Here are key roles you need to involve to keep your JAD session on the right track, Executive sponsor This person is usually the manager of the business area who comes from the customer's company and has a full Freedom to make critical decisions concerning the project. Although they don't have have to actively participate in all steps of the project , they need to be available throughout the process and solve important issues as they arise. Facilitator This is the most important person in the process as they are responsible for planning, executing, and managing the session. The facilitator should have the right knowledge and extensive experience to lead the project. Also ,they should work closely with executive sponsors to achieve desired goals . During the discussion, the facilitator should be able to; • Focus on the process • Lead groups and keep sessions on track • Be unbiased and neutral • Stop sideline conversations Stakeholder A stakeholder is the main focus of the entire process ,without their involvement, JAD sessions are pointless. They represent all key user groups affected by the project development and represent multiple levels within the organisation. JAD session allows stake holders to become an integral part of the project so they can get the product they need. Scribe (recorder) The scribe is in charge of documenting the entire JAD process. Since there are often alot of ideas and suggestions, a JAD session may involve more scribes . A scribe must , ° Capture the important decisions, who made them , and why ° Distribute and archive the documentation at the end of each session ° Have excellent analytical skills to be able to analyse the discussion IT representative IT representative gives technical advice and helps JAD team develop logical models to build a prototype. They must √ Help the customer turn their concepts into business requirements √ Efficiently use available technology √ Provide end solutions that are realistic for a budget and time frame Observer This person observes each step of a JAD session, end user's needs and JAD session decisions JAD sessions Each JAD session must have well-defined objectives and detailed agenda items. You need to ensure you have invited key players from both the business and technical world, as well as the person who will take notes. You need to ask questions, record important decisions and assign action items. While the questions and agenda items are the essence of the discussion that will drive the meeting, don't expect to get the answers immediately. The point of JAD sessions is to trigger creative thinking and brainstorming that will lead to a joint discussion that will require expertise from various departments At its core , JAD sessions should help the teams come up with decisions, if you and your team can't arrive to a decision, you need to run to JAD sessions on a scheduled basis , which are usually known as JAD workshops. The outcome of a JAD session is more valuable than other meetings because you can make more decisions. Although most of the JAD sessions are scheduled during the development phase, they may even happen during the requirements phase JAD is used as a technique for developing business system requirements and is typically used in the early stages of a system development project. The purpose of JAD is to bring together MIS and end users in a structured workshop setting, to extract consensus based system requirements. Advantages ^ It allows you to resolve difficulties more simply and produce better, error free software ^ The joint collaboration between the company and the clients lowers all risks ^ JAD reduces costs and time needed for project development ^ Well-defined requirements improve system quality ^ Due to the close communication, progress is faster ^ JAD encourages the team to push each other to work faster and deliver on time Disadvantages ~ Different opinions within the team make it difficult to align goals and maintain focus ~ Depending on the size of the project, JAD may require a significant time commitment PROTOTYPING A prototype is a draft version of a product that allows you to explore your ideas and show the intention behind a feature or the overall design concept to users before investing time and money into development. Prototyping is an experimental process where design teams implement ideas into tangible forms from paper to Digital. Teams build prototypes of varying degrees of fidelity to ensure design concepts and test on users. With prototypes, you can refine and validate your designs so your brand can release the right products Types of prototypes - Concept sketch prototype - Bench model prototype - Fully functional rapid prototype - Visual model prototype - Pre-production 'Alpha' prototype - Manufacture production prototype Types of prototyping • Rapid ( throw away ) prototyping • Evolutionary prototyping • Incremental prototyping • Extreme prototyping Advantages * Early discovery of design problems * Estimation of production costs, manufacturing time, and material requirements * Select machinery required for production * Testing to determine fit and durability * Receive feedback from customers and end users * Identify improvements Disadvantages • Insufficient analysis • User confusion • Developer misunderstanding of user objectives • Excessive development time