Skip to main content

Unit 4 Software development Models (Class 12 SEP)

  Software development Model

Software development models are various processes or methods that are chosen for project development depending on the objectives and goals of the project. Many development life cycle models have been developed to achieve various essential objectives. Models specify the various steps of the process and the order in which they are executed.

The few software development models are discussed below:

Waterfall Model (SDLC Model)

The Waterfall Model is a traditional software development model in which the project is developed in sequential phases. Each phase must be completed before moving to the next phase, and there is usually no going back once a phase is completed. It is one of the earliest SDLC (Software Development Life Cycle) models.

1. Features of Waterfall Model

  1. Sequential Phases: Development progresses in a fixed order:
    • Requirements → Design → Implementation → Testing → Deployment → Maintenance
  2. Clear Documentation: Each phase produces formal documentation that guides the next phase.
  3. Easy to Understand & Manage: Because of its step-by-step approach, project progress is easy to monitor.
  4. Well-defined Requirements: Works best when requirements are clear and unlikely to change.
  5. Phase Completion: Each phase has specific deliverables and milestones.

 

2. Advantages of Waterfall Model

  1. Simple & Easy to Use: Very straightforward; easy for developers and managers to understand.
  2. Structured & Disciplined: Clear documentation and defined phases make project management easier.
  3. Early Detection of Errors: Errors in a phase can be detected before moving to the next phase.
  4. Ideal for Small Projects: Works well when requirements are well-known and stable.
  5. Progress Tracking: Easy to measure progress by checking completion of each phase.

 

3. Disadvantages of Waterfall Model

  1. Inflexible to Changes: Once a phase is completed, going back to make changes is difficult and costly.
  2. Poor for Complex Projects: Not suitable for large projects with evolving requirements.
  3. Late Testing Feedback: Testing is done after implementation, so defects may be discovered late.
  4. Customer Feedback Delayed: The client sees the final product only after the implementation phase.
  5. High Risk: If requirements are misunderstood initially, it can lead to project failure.

Prototype model

The Prototype Model creates an early working version of the software that users can see and test. It focuses on user feedback and improves the system through repeated changes. This model helps clarify unclear requirements, gives a visual idea of the system, and is flexible to updates. It is best for projects that need high user interaction like online apps and banking systems.


Steps of Prototype Model

Requirement Gathering

Collect the basic requirements from the user. Only the main features are identified at this stage.

Quick Design

Prepare a simple design of the system, such as the user interface, input screens, and output format.

Build Prototype

Develop a basic working model that shows how the software will look and function.

User Evaluation

Show the prototype to the user. The user tests it and gives suggestions or feedback.

Refine the Prototype

Modify and improve the prototype according to the user's feedback. This process may be repeated several times.

Develop Final System

After the user approves the prototype, the complete software is developed with all required features.

Testing and Deployment

Test the final software, fix errors, and deliver it to the user for actual use.


Applications:

·         Web and mobile applications with interactive user interfaces.

·         E-commerce websites where users’ feedback is important for design.

·         Online forms and data entry systems where usability is critical.

·         Training or simulation software where users need to test functionality before full development.

 

Features of Prototype Model

1.      In the prototype model, a sample software (prototype) is developed at an early stage so that users can see and interact with it.

2.      The model follows a user-centered approach, where user feedback is collected regularly to improve the system.

3.      The process is iterative, meaning it is repeated as build → feedback → refine until the user is satisfied.

4.      It helps in requirement clarification, especially when requirements are unclear or keep changing.

5.      It provides a visual representation, allowing users to see screens, menus, and reports early, which makes it easier to explain their needs.

6.      The model supports systems with high user interaction, such as online applications, e-commerce platforms, and banking software.

7.      It is flexible in design, as features and design can be easily changed and updated during the development process.

Advantages

  1. The prototype model helps to understand user requirements more clearly.
  2. Errors and missing features can be detected at an early stage.
  3. It improves communication between users and developers.
  4. Users are more satisfied because they are involved in the process.
  5. The chance of project failure is reduced because the user approves the prototype.
  6. It is flexible because changes can be made easily.
  7. It is very useful for systems that have complex user interfaces.

Disadvantages

  1. The prototype model can take more time because of repeated changes.
  2. It can be costly because building and refining prototypes requires extra effort.
  3. Users may keep asking for new changes, which can delay the project.
  4. Documentation may be poor because more focus is given to prototypes.
  5. It is not suitable for very large or complex projects.
  6. Sometimes developers may use the temporary prototype code in the final system, which can reduce quality.
  7. Customers may think the prototype is the final product and expect delivery too quickly.

Spiral Model 

The Spiral Model is a software development model that builds software in repeated loops (spirals). Each loop improves the software and reduces risks. It is best for large, complex, or high-risk projects. This model combines ideas from Waterfall, Prototyping, and Iterative models.


Steps of the Spiral Model

1. Objectives Defined (Planning Phase)

·         Identify what the project aims to achieve, including functional and non-functional requirements.

·         Gather requirements from customers and analyze them carefully.

·         Propose alternative solutions for the phase before development starts.

2. Risk Analysis and Resolving

·         Identify and evaluate risks associated with the project.

·         Evaluate all possible solutions and select the best solution.

·         Resolve risks using the most effective strategies.

·         Build a prototype if needed to test risky or complex features.

3. Develop the Next Version of the Product

·         Develop the features identified in the current phase.

·         Test the software to ensure it meets the requirements.

·         At the end of this phase, a new version of the software is available.

·         Evaluate whether the software meets the customer's needs and quality standards.

4. Review and Plan for the Next Phase (Evaluation Phase)

·         Present the developed version to customers for evaluation.

·         Collect feedback and suggestions from users.

·         Plan the next spiral iteration based on the evaluation.

·         Continue the next loop with updated planning, incorporating feedback and improvements.

 

Applications:

·         Large-scale software projects like banking systems or enterprise software.

·         E-commerce platforms with complex features and security requirements.

·         Air traffic control or defense systems where risk management is critical.

·         Projects with evolving or unclear requirements that need prototyping and iterative development.

Features of Spiral Model

  1. It is risk-driven, focusing on identifying and reducing risks in every cycle.
  2. It follows an iterative process, with repeated loops improving the software.
  3. Customers are involved in each cycle, giving feedback regularly.
  4. The model is flexible, allowing changes to requirements anytime.
  5. It is suitable for large and complex projects.
  6. Combines features of Waterfall, Prototyping, and Iterative models.
  7. Each phase can include prototyping to test solutions and reduce risks.

Advantages of Spiral Model

  1. Excellent Risk Management – Risks are addressed at each phase to avoid project failure.
  2. High Customer Satisfaction – Clients can see progress and suggest changes early.
  3. Handles Changing Requirements – Flexible to incorporate changes anytime.
  4. Improves Software Quality – Multiple cycles, evaluations, and testing increase reliability.
  5. Good for Large Projects – Ideal for complex, long-term projects with many modules.
  6. Iterative and Incremental – Software is developed gradually, reducing the chance of major errors.
  7. Improved Communication – Regular interactions between users and developers reduce misunderstandings.

Disadvantages of Spiral Model

  1. Complex Process – More difficult to manage than simple SDLC models.
  2. High Cost – Risk analysis, multiple prototypes, and cycles increase expense.
  3. Time-Consuming – Iterative cycles and evaluations require more time.
  4. Depends on Expertise – Needs experienced staff for risk analysis and planning.
  5. Difficult Time Estimation – Total project duration is uncertain because the number of cycles may vary.
  6. Resource Intensive – Requires skilled manpower, tools, and sufficient budget.
  7. Not Suitable for Small Projects – Too costly and complex for simple software.

When to Use Spiral Model

  • For large and complex projects with high risk.
  • When requirements are unclear or frequently changing.
  • When frequent customer feedback is needed during development.
  • When prototypes are useful for testing solutions.
  • For long-term projects where continuous evaluation is required.

Rapid Application Development (RAD) Model

·         Rapid Application Development (RAD) is a software development methodology that emphasizes quick prototyping and iterative delivery instead of long planning phases.

·         It was introduced by James Martin in 1991.

·         RAD focuses on user involvement and fast development cycles, making it suitable for projects that require speed and flexibility.



Phases of Rapid Application Development (RAD)

1. Requirements Planning

·         Project scope, goals, and requirements are identified.

·         Developers, users, and stakeholders collaborate to finalize needs.

·         Ensures clear objectives and reduces risk of miscommunication.

2. User Design

·         Prototypes are created and tested in multiple iterations.

·         Users actively participate, giving feedback at each step.

·         Helps refine design and ensure the system meets user expectations.

3. Rapid Construction

·         Approved prototypes are turned into the working system.

·         Coding, application development, and system testing are performed quickly.

·         Developers and users work together to make adjustments as needed.

4. Cutover

·         The final product is tested, data is converted, and users are trained.

·         System is fully implemented and deployed into real use.

·         Ensures a smooth transition to the new system.

 

Features of RAD

  1. Prototyping-based approach – Working models are created quickly and improved through iterations.
  2. High user involvement – Users continuously provide feedback and guide development.
  3. Iterative and incremental – System is developed in small parts and refined until completion.
  4. Time-boxed development – Focus on delivering functional components in a short period.
  5. Use of reusable components – Saves time and effort by using pre-built modules and tools.
  6. Less emphasis on documentation – Priority is given to working prototypes instead of lengthy documents.
  7. Flexibility – Can easily adapt to changing requirements during development.

Advantages of RAD

  1. Faster development – Delivers software in a shorter time compared to traditional models.
  2. User satisfaction – Users are actively involved, so the final product meets their needs.
  3. Reduced project risk – Early prototypes reveal issues quickly, preventing big failures later.
  4. Improved quality – Regular testing and feedback enhance the accuracy and performance of the system.
  5. Encourages component reuse – Saves resources and makes development more efficient.
  6. Better alignment with business goals – Since users contribute continuously, the system matches actual business requirements.

Disadvantages of RAD

  1. Not suitable for large or complex projects – Difficult to manage big systems using prototypes.
  2. Requires skilled developers and designers – Quick prototyping and tool usage need expertise.
  3. High cost of tools and resources – Prototyping tools and automation software can be expensive.
  4. Depends heavily on user availability – Without active user participation, the project may fail.
  5. Poor documentation – Since the focus is on working prototypes, future maintenance becomes harder.
  6. Scalability issues – May not be effective if the system needs to grow significantly later.

Comments

Popular posts from this blog

Unit 2 Operating System

  Unit- 2  Process and Process Scheduling 2.1 Introduce Process, Program and Process Life Cycle  Process Process is something that is currently under execution. So, an active program can be called a Process. Examples: ●        Opening a web browser to search something on the internet — the browser becomes a process. ●        Launching a music player to enjoy your favorite tunes — the music player is also a process. In computing, a process is the instance of a computer program that is being executed by one or many threads. It contains the program code and its activity. Modern operating systems support multithreading , meaning a process can have multiple threads running concurrently .   A Process has various attributes associated with it. Some of the attributes of a Process are: ●          Process Id: Every process will be given a unique id that identifies the process...

Unit-1 Introduction to C#.NET (Class 12)

  What is .NET Framework? The .NET Framework is a software development platform developed by Microsoft. It provides tools and libraries to build and run Windows applications, web services, and web apps. It gives tools and libraries that make it easier to write programs. It also helps the computer run those programs safely and efficiently. Microsoft started working on .NET Framework in the late 1990s . The first version, .NET Framework 1.0 , was released in 2002 .   The .NET Framework is made up of several important components: 1.       Common Language Runtime (CLR) is the core engine that runs your program. It converts your code into machine code that the computer can understand, manages memory, handles errors, and ensures that your program runs safely. 2.       The Class Library is a large collection of ready-made code that helps you perform common tasks like working with files, databases, graphics, the i...

Introduction to Software Engineering (Class 12)

 Introduction to Software Engineering Software engineering is the branch of computer science that deals with the design, development, testing, and maintenance of software applications. Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users. IEEE, in its standard 610.12-1990, defines software engineering as the application of a systematic, disciplined, which is a computable approach for the development, operation, and maintenance of software. Boehm defines software engineering, which involves, ‘the practical application of scientific knowledge to the creative design and building of computer programs. It also includes associated documentation needed for developing, operating, and maintaining them.’ Importance of Software Engineering Reduces complexity Large software systems are divided into smaller, manageable modules. Each module is developed and solved independently, ...