Chapter 6- Software Process Model

 Software Development Life Cycle (SDLC)

·         SDLC stands for Software Development Life Cycle.

·         It is the step-by-step process used to plan, design, build, test, and deliver software.

·         It helps developers create high-quality software that meets user needs and works properly.

 

Stages of SDLC

 1. Planning

·         In this stage, the project team plans the whole software project.

·         They find out what problem needs to be solved and how to solve it.

·         They also decide what resources (time, money, people, tools) will be needed.

 Main goal: To make a clear plan for the project.

 

2. Defining

·         Here, the team clearly defines the requirements of the software.

·         They write down what the software should do, based on user needs.

·         This information is written in a document called SRS (Software Requirement Specification).

 Main goal: To understand exactly what the user wants.

 

3. Designing

·         The system design is prepared based on the SRS.

·         It shows how the software will work internally.

·         Includes design of:

   Database

·         User interface (screen layout)

·         System structure and data flow

Main goal: To make a blueprint of the system before coding.

 

4. Building (Coding)

·         Programmers write the actual code using programming languages like Python, Java, or C++.

·         The code must follow the design prepared in the previous step.

·         This is the stage where the software is created.

Main goal: To build the software program.

 

5. Testing

·         After building, the software is tested to find and fix errors (bugs).

·         Testing makes sure the program works correctly and meets all requirements.

·         Different types of testing include:

   Unit testing

·         Integration testing

·         System testing

Main goal: To ensure the software is error-free and reliable.

 

 6. Deployment

·         The final software is installed and delivered to the user.

·         Users start using the system in the real environment.

·         The developer also provides training, support, and updates if needed.

  Main goal: To launch the software and keep it running properly.

 

Summary Table

Stage        

Description                       

Main Goal           

Planning  

Decide what to build and how      

Make a clear plan   

Defining

Collect and list all requirements 

Know what users need

Designing

Create system structure and layout

Make blueprint      

Building

Write the actual program          

Build the software  

Testing

Check for errors and fix them     

Make it error-free  

Deployment

Deliver and install the system    

Launch the software 

  Software Project Manager

·         A Software Project Manager is the leader of the software project.

·         They are responsible for planning, organizing, and managing the whole project.

·         They make sure the project is completed on time, within budget, and with good quality.

·         The project manager guides the team and ensures project success.

  Main Duties:

·         Plan the project schedule and resources.

·         Assign tasks to team members.

·         Monitor progress and control project costs.

·         Communicate with clients and developers.

·         Solve problems during development.

 2. System Analyst

·         A System Analyst is the person who studies user needs and designs the system to meet those needs.

·         They act as a bridge between users and developers.

·         They understand both business problems and technical solutions.

·         The system analyst finds out what users need and plans how the system will work.

  Main Duties:

·         Study the existing system (manual or old system).

·         Collect and analyze user requirements.

·         Prepare System Requirement Specification (SRS).

·         Design system models like data flow diagrams and system structure.

·         Communicate with both clients and programmers.

 Software Engineer / Programmer

     ·         A Software Engineer (or Programmer) is the person who writes and tests the code to build the software.

·         They follow the design given by the system analyst and instructions from the project manager.

  Main Duties:

·         Write programs using programming languages (like C, Java, Python).

·         Test and debug the code to remove errors.

·         Maintain and update the software.

·         Work closely with other team members to ensure smooth functioning.

 Requirement Collection Methods

·         Requirement collection (also called requirement gathering) means finding out what users need from a new or improved computer system.

·         It is done by the system analyst during the system analysis phase of SDLC.

·         The goal is to clearly understand user needs, problems, and expectations before designing the system.

 Main Methods of Requirement Collection

 1. Brainstorming

·         A group discussion where team members and users share ideas freely.

·         The aim is to generate many ideas quickly about system features and problems.

Advantage: Encourages creativity and teamwork.

Disadvantage: Some ideas may be unrealistic or off-topic.

 2. Document Analysis

·         The analyst studies existing documents, such as reports, forms, manuals, and files from the current system.

·         It helps to understand how data flows and what improvements are needed.

Advantage: Provides accurate technical details.

Disadvantage: May not show current user problems or updated information.

 3. Focus Group

·         A small group of users (usually 6–10 people) are invited to discuss their needs and experiences.

·         The analyst listens to their opinions about the current system and expectations for the new one.

Advantage: Provides quick feedback from multiple users.

Disadvantage: May not represent all user views.

  4. Interface Analysis

·         The analyst studies how users interact with the system — for example, through screens, forms, or reports.

·         The goal is to find ways to make the user interface easier and more efficient.

Advantage: Improves user experience and system usability.

Disadvantage: Focuses only on interface, not full system logic.

 5. Interview

·         The analyst talks directly with users, managers, or other stakeholders.

·         Questions can be structured (planned) or unstructured (open discussion).

Advantage: Gives detailed and clear information.

Disadvantage: Time-consuming; users must cooperate.

  6. Observation

·         The analyst watches users while they perform their daily work.

·         It helps to see real problems and work habits in the existing system.

Advantage: Gives practical, real-world data.

Disadvantage: Users may change behavior when being watched.

 7. Prototyping

·         The analyst builds a sample or model (prototype) of the system to show users.

·         Users give feedback, and the prototype is improved until it meets their needs.

Advantage: Easy for users to understand and suggest changes.

Disadvantage: Takes time and may create confusion if users think it’s the final system.

 8. Requirement Workshop

·         A formal group meeting with users, developers, and managers.

·         They discuss, review, and agree on system requirements together.

Advantage: Builds common understanding quickly.

Disadvantage: Needs careful planning and cooperation.

 9. Reverse Engineering

·         Used when the analyst studies an existing old system (without documentation) to find out how it works.

·         The system is analyzed backward to discover its structure, data, and functions.

Advantage: Useful when upgrading or replacing old systems.

Disadvantage: Difficult and time-consuming.

 10. Survey / Questionnaire

·         A written set of questions given to users to collect their views or needs.

·         Best for large organizations with many users.

Advantage: Fast and covers many people.

Disadvantage: Answers may be incomplete or unclear.

Concept of System Design

·         System Design is the process of planning and creating the structure of a computer system after the system analysis phase.

·         It shows how the system will work — including data flow, processing, input, and output.

·         It acts as a blueprint or map for the programmers to build the actual software.

Note: The System Analysis Phase helps to understand what the user wants, identifies problems in the current system, and produces the SRS document that guides the next step — System Design.

 

Input and Output of System Design

 

 Input to System Design

The inputs are the materials or documents used to create the design:

1. System Requirement Specification (SRS) – describes what the system must do.

2. Data Flow Diagrams (DFD) – shows how data moves in the system.

3. User Requirements and Constraints – user expectations, hardware/software limits.

4. Feasibility Report – information about cost, technology, and risk.

 

Output of System Design

The outputs are the results or documents produced after the design:

1. System Architecture – structure of the system (hardware, software, network).

2. Database Design – how data will be stored and managed.

3. User Interface Design – layout of screens, menus, and forms.

4. Program Design – logic and structure of code.

5. System Design Document (SDD) – final blueprint for implementation.

 

Types of System Design

System design can be divided into several types depending on the level of detail and focus.

1. Physical Design

·         Shows the actual physical arrangement of the system.

·         Includes hardware devices, software, input/output media, network setup, and file locations.

·         Focuses on how the system will be implemented in the real world.

·         Example: Choosing computers, printers, servers, and network cables.

2. System Architecture Design

·         Describes the overall structure of the system.

·         Defines major components, their relationships, and how they interact.

·         Includes architecture styles like client-server, 3-tier, or cloud-based systems.

·          Example: Dividing a system into presentation, application, and database layers.

3. Detailed Design

·         Also called logical design.

·         It focuses on each part of the system in detail — inputs, outputs, data processing steps, file structures, and algorithms.

·         Helps programmers write code easily.

·          Example: Designing input forms, validation rules, and database fields.

4. Conceptual Data Modeling

·         Describes the data requirements of the system at a high level.

·         Focuses on what data is needed, how it is related, and how it flows between entities.

·         It does not focus on physical storage details.

·         Example: Identifying entities like Student, Teacher, Course, and their relationships.

5. ER (Entity–Relationship) Modeling

·         A specific type of conceptual data model.

·         It uses an ER diagram to show:

   Entities: main objects (e.g., Student, Teacher)

   Attributes: properties of entities (e.g., Name, Age)

   Relationships: connections between entities (e.g., Student enrolls in Course)

·         Example: Drawing an ER diagram showing how students enroll in courses taught by teachers.

ER Diagram rule and example



 

 


 














Software Quality

Software Quality means how well a software system meets user needs, works correctly, and performs as expected.

 A high-quality software is reliable, easy to use, efficient, secure, and maintainable.

 

Objectives of Software Quality

1. To ensure the software meets user requirements.

2. To improve reliability and reduce errors (bugs).

3. To make the software easy to use, maintain, and update.

4. To provide long-term performance and stability.

5. To increase customer satisfaction.

 

Factors / Characteristics of Software Quality

Characteristic     

Description

1. Functionality  

The software performs the required tasks correctly. It has all the needed features and functions.

2. Reliability    

The software works without failure under different conditions for a long time.               

3. Usability      

The software is easy to learn and operate for users.       

4. Efficiency     

The software uses less time and system resources (like memory and CPU) effectively.          

5. Maintainability

The software can be easily modified, debugged, or updated when needed.

6. Portability    

The software can run on different hardware or operating systems without major changes.

 

Software Quality Assurance (SQA)

·         SQA is the process used to ensure software quality during development.

·         It includes:

Ø  Regular testing

Ø  Code reviews

Ø  Quality control and standards checking

Ø  Its main goal is to prevent defects and maintain high standards.

 

SDLC Models (v. important)

·         SDLC (Software Development Life Cycle) Models describe different ways of developing software.

·         Each model defines how the phases of SDLC are carried out.

·         The choice of model depends on the type of project, time, cost, and user involvement.

 

1. Waterfall Model

·         The Waterfall Model is the oldest and simplest SDLC model.

·         In this model, each phase is completed step-by-step in a linear order, like a waterfall.

·         Once a phase is finished, the developer moves to the next phase — no going back.

   Phases:

1. Requirement Gathering

2. System analysis

3. Coding

4. Testing

5. Implementation

6. Operation and Maintenance

 

Page number 262: Diagram of water fall model

   1. Requirement Gathering

·         In this phase, the project team collects all requirements from the client or user.

·         They identify what the software should do and what features are needed.

·         The result of this phase is a Requirement Specification Document (SRS).

Output: List of all user requirements.

Goal: Understand the problem clearly before starting development.

 

2. System Analysis

·         The collected requirements are studied and analyzed in detail.

·         Analysts check what is possible, identify system components, and plan how data will flow.

·         A system model (like data flow diagrams or ER diagrams) is created.

Output: System design plan and feasibility confirmation.

Goal: Understand the system structure and how it will work.

 

3. Coding (Implementation)

·         In this phase, programmers write the actual code using a suitable programming language (like C, Java, or Python).

·         The code is written based on the system design document.

·         Each module or part of the system is developed separately.

Output: Source code (the working software).

Goal: Build the software according to design.

 

4. Testing

·         After coding, the system is tested to find and fix errors (bugs).

·         Testing ensures that the software:

Ø  Works correctly

Ø  Meets the user requirements

Ø  Is reliable and secure

Output: Tested, error-free software.

Goal: Ensure software quality and performance.

 

5. Implementation

·         The tested software is installed (deployed) in the real working environment.

·         Users are trained to use the new system.

·         Old data and systems may be replaced or integrated with the new one.

Output: Software in actual use.

Goal: Successfully launch the system for users.

 

6. Operation and Maintenance

·         After the system is in use, developers perform maintenance activities such as:

·         Fixing new errors (bugs)

·         Updating the system for new needs

·         Improving performance

Output: Updated and smoothly running system.

Goal: Keep the software working properly over time.

 

Features:

·         Each phase must be completed before the next starts.

·         Documentation is done at every stage.

·         Works well for small, clear, and fixed projects.

 

 Advantages:

·         Simple and easy to understand.

·         Well-structured and organized.

·         Good for projects with clearly defined requirements.

 

 Disadvantages:

·         Difficult to go back and make changes.

·         Not suitable if requirements change often.

·         Testing is done late, so errors are found late.

 

2. Prototyping Model

·         In the Prototyping Model, a sample version (prototype) of the software is built first.

·         The prototype is shown to users for feedback and improvement until the final system is ready.

 

 Steps:

1. Collect basic requirements

2. Design and build a prototype

3. Show to users and get feedback

4. Refine and improve prototype

5. Final system development

 

 Features:

·         The prototype is used to understand user needs better.

·         Changes can be made early and easily.

 

 Advantages:

·         Helps users see how the system will look.

·         Reduces misunderstandings between users and developers.

·         Faster to find and fix problems.

Disadvantages:

·         Can take more time if users keep requesting changes.

·         May lead to incomplete or unstructured documentation.

 

3. Agile Model

·         The Agile Model is a modern and flexible SDLC approach.

·         The software is developed in small parts (iterations), and each part is tested and improved based on user feedback.

·         It focuses on continuous improvement and close teamwork.

 

 Process:

1. Plan the first small part (iteration).

2. Design, code, and test that part.

3. Get user feedback.

4. Improve and continue with the next part.

5. Repeat until the full system is complete.

 

 Features:

·         Users are involved throughout development.

·         Software is delivered quickly and improved regularly.

 

 Advantages:

·         Very flexible — easy to adapt to changes.

·         Faster delivery of working software.

·         High customer satisfaction due to constant feedback.

 

 Disadvantages:

·         Needs experienced developers.

·         Hard to estimate total cost and time at the start.

·         Requires continuous user involvement.

 Difference between waterfall model, Prototype model and agile model- Page number 266

  Book Exercises Page number-

 

1.Multiple Choice Questions

 i.Which software process model is known for its sequential and linear approach, where each phase must be completed before moving on to the next?

a. Waterfall model

b. Agile model

C. Spiral model

d. V-Model

 ii. Which software process model emphasizes the importance of continuous customer collaboration and the ability to adapt to changing requirements?

a Waterfall model

b. Incremental model

C. Agile model

d. RAD model

 iii. In the Agile model, what is the primary role responsible for defining and prioritizing the items in the product backlog?

a. Scrum Master

b. Product Owner

C. Development Team

d Project Manager

 iv.Which software process model is suitable for projects with well-defined and stable requirements?

a. Waterfall model

b. RAD model

C Agile model

d. Spiral model

 

2. Short Answer Questions

 i. List the advantages and disadvantages of Waterfall Model.

Advantages:

·         Simple and easy to understand.

·         Clearly defined stages.

·         Easy to manage due to rigidity.

·         Works well for smaller projects with fixed requirements.

 Disadvantages:

·         Difficult to go back to previous stages.

·         Not suitable for changing requirements.

·         Late testing can lead to higher costs.

·         Poor model for long and complex projects.

ii. What is software project? Explain briefly.

A software project is a planned and organized effort to develop or maintain a specific software application or system. It includes tasks such as requirement gathering, design, coding, testing, and maintenance. The main goal is to deliver quality software within time and budget.

 

iii. Describe about Software development process with example.

The software development process is a set of steps followed to design, develop, test, and deploy software efficiently.

Example:

In the Waterfall Model, development follows stages like requirement analysis → design → coding → testing → deployment. Each stage must be completed before the next one begins.

 

iv. Write advantage and disadvantage of Prototyping Model.

Advantages:

·         Users can visualize the system early.

·         Helps identify missing or incorrect requirements.

·         Reduces risk of failure.

 

Disadvantages:

·         Time-consuming to build multiple prototypes.

·         May lead to incomplete or poorly designed systems if rushed.

·         Users may confuse prototype with final product.

 

v. Mention advantage and disadvantage of Agile Model.

Advantages:

·         Flexible and adaptable to changes.

·         Continuous customer feedback improves quality.

·         Early delivery of working software.

·         Encourages teamwork and communication.

 

Disadvantages:

·         Difficult to estimate cost and time.

·         Requires experienced developers.

·         Not suitable for very large projects.

·         Can be less documentation-heavy.

 

vi. What are systems analysts?

A system analyst is a professional who studies and analyzes business needs to design information systems that improve efficiency. They act as a bridge between users and developers by defining requirements, preparing system specifications, and ensuring the system meets user goals.

 

vii. Explain about software quality.

Software quality refers to how well software meets user requirements, performance standards, and reliability expectations. High-quality software is easy to use, efficient, secure, maintainable, and error-free. It ensures customer satisfaction and long-term usability.

 

viii. What are the factors affecting the detection of defects in software products and other industrial products?

Factors affecting defect detection include:

·         Testing methods and tools used.

·         Experience and skill of testers.

·         Complexity of the software.

·         Time allocated for testing.

·         Quality of design and code review process.

·         Communication among development team members.

 

3. Long Answer Questions (8 Marks Each)

 

i. What is SDLC? Write the various stages of SDLC.

SDLC (Software Development Life Cycle) is a systematic process used by software developers to design, develop, test, and deploy software. It ensures high-quality software production within time and budget.

 

Stages of SDLC:

1.      Planning

2.      Defining

3.      Designing

4.      Building(coding)

5.      Testing

6.      Deployment

 

ii. What are the requirements collecting methods?

Requirements collecting methods are techniques used to gather user and system needs before development begins.

Common methods include:

1. Interviews – Direct discussions with users or stakeholders.

2. Questionnaires – Written surveys to collect information.

3. Observation – Watching how users perform their tasks.

4. Document Analysis – Studying existing manuals, reports, or records.

5. Brainstorming – Group discussion to generate ideas.

 

iii. Explain about system design with its different types.

System design is the process of defining the architecture, components, modules, interfaces, and data for a system to meet specified requirements.

 

Types of System Design:

1. Input System  Design:

i. System Requirement Specification (SRS) – describes what the system must do.

ii. Data Flow Diagrams (DFD) – shows how data moves in the system.

iii. User Requirements and Constraints – user expectations, hardware/software limits.

iv. Feasibility Report – information about cost, technology, and risk.

 

2. Output of System  Design:

 

i. System Architecture – structure of the system (hardware, software, network).

ii. Database Design – how data will be stored and managed.

iii. User Interface Design – layout of screens, menus, and forms.

iv. Program Design – logic and structure of code.

v. System Design Document (SDD) – final blueprint for implementation.

 

Example: In a library system, logical design defines how users borrow books, while physical design defines which database stores book records.

 

iv. What are the popular SDLC models? Explain any one of them.

Popular SDLC Models:

·         Waterfall Model

·         Prototype Model

·         Agile Model

 

Example – Waterfall Model:

The Waterfall Model is a linear and sequential approach where each phase must be completed before the next begins.

Phases:

1. Requirement Gathering

2. System analysis

3. Coding

4. Testing

5. Implementation

6. Operation and Maintenance

 

Advantages: Easy to manage, simple to understand, suitable for small projects.

Disadvantages: Inflexible to changes, late error detection, not suitable for complex or evolving projects.

 

 



Popular posts from this blog

Computer

Sequential Programs