0% found this document useful (0 votes)
3 views32 pages

Software Engineering

Software is essential for controlling hardware, providing user interfaces, and performing specific tasks. It can be categorized into system software, application software, and programming software, each serving distinct functions. Various software process models, including Agile and Waterfall, guide the development, testing, and maintenance of software applications.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views32 pages

Software Engineering

Software is essential for controlling hardware, providing user interfaces, and performing specific tasks. It can be categorized into system software, application software, and programming software, each serving distinct functions. Various software process models, including Agile and Waterfall, guide the development, testing, and maintenance of software applications.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Role of Software

Software is a set of instructions, programs, and data that tells a computer how to perform various operations
and solve problems.

It acts as the interface between the user and the hardware. Without software, computer hardware cannot
function effectively.

Roles of Software

1. Controls Computer Hardware

 Software manages and controls all hardware components such as the CPU, memory, keyboard,
monitor, printer, and storage devices.
 It ensures proper communication between hardware and users.

Example: Windows and Linux manage hardware resources.

2. Provides User Interface

 Software allows users to interact with the computer through graphical or command-line interfaces.
 Makes computers easy to operate.

Example: Windows desktop, Android interface.

3. Performs Specific Tasks

 Application software helps users complete different tasks quickly and accurately.
 Increases productivity.

Examples:

 MS Word – Document creation


 MS Excel – Calculations
 PowerPoint – Presentations

4. Data Management

 Software stores, retrieves, updates, and processes data efficiently.


 Helps in maintaining databases.

Example: MySQL, Oracle Database.

5. Automation of Work

 Software automates repetitive and time-consuming tasks.


 Saves time and reduces human effort.

Examples:

 Payroll systems
 Attendance management
 Online billing systems

6. Communication
 Software enables communication over the internet and networks.
 Supports email, messaging, and video conferencing.

Examples:

 Gmail
 Zoom
 Microsoft Teams

7. Security

 Software protects computer systems from viruses, hackers, and unauthorized access.
 Ensures data confidentiality and integrity.

Examples:

 Antivirus software  Encryption software


 Firewalls
8. Decision Making

 Software analyzes large amounts of data and generates useful reports.


 Helps organizations make informed decisions.

Examples:

 Business Intelligence tools


 Data Analytics software

9. Entertainment

 Software provides entertainment through multimedia applications.

Examples:

 Games  Video streaming applications


 Music players
10. Supports Business Operations

 Software manages business activities efficiently.


 Improves productivity and customer service.

Examples:

 ERP Systems  Accounting Software


 CRM Software

Types of Software

1. System Software

System software controls the operation of the computer and provides a platform for application software.

Examples:
 Operating Systems (Windows, Linux)
 Device Drivers
 Utility Programs

Functions:

 Hardware management  File management


 Memory management  Process management

2. Application Software

Application software is designed to perform specific tasks for users.

Examples:

 MS Word  Photoshop
 MS Excel  Web Browsers

Functions:

 Document preparation  Image editing


 Data analysis  Internet browsing

3. Programming Software

Programming software helps developers create, test, and maintain software.

Examples:

 Compilers  IDEs (Visual Studio, Eclipse)


 Interpreters
Advantages of Software

 Improves efficiency and productivity.  Provides security for data.


 Saves time and effort.  Facilitates communication.
 Reduces human errors.  Supports decision-making.
 Automates repetitive tasks.  Enhances business operations.

Disadvantages of Software

 High development and maintenance cost.  Compatibility issues between different


 Security vulnerabilities if not updated. software versions.
 Software bugs may cause system failures.  Risk of malware and viruses.
 Requires regular updates.
Applications of Software

Software is widely used in:

 Education  Manufacturing
 Healthcare  Entertainment
 Banking  Transportation
 Business  E-commerce
 Government  Scientific Research
Software Process Model

Definition

A Software Process Model is a framework that describes the activities, tasks, and processes involved in
software development from requirement analysis to maintenance.

Software process models are used to:

 Improve software quality.  Reduce risks and errors.


 Reduce development cost and time.  Meet customer requirements efficiently.
 Ensure proper planning and management.
Phases of a Software Process Model

1. Requirement Analysis

 Collect and analyze customer requirements.


 Identify functional and non-functional requirements.
 Prepare the Software Requirement Specification (SRS) document.

Output: Software Requirement Specification (SRS)

2. System Design

 Convert requirements into a software design.


 Define system architecture, database, modules, and user interface.
 Prepare design documents.

Output: Software Design Document (SDD)

3. Implementation (Coding)

 Developers write the program using programming languages.


 Each module is coded according to the design.

Examples: Java, Python, C++, C#

4. Testing

 Verify whether the software works correctly.


 Detect and fix errors (bugs).
 Ensure the software meets user requirements.

Types of Testing

 Unit Testing
 Integration Testing
 System Testing
 Acceptance Testing

5. Deployment

 Install the software in the customer's environment.


 Make the software available for users.
6. Maintenance

 Correct errors found after deployment.


 Improve software performance.
 Add new features based on user needs.

Maintenance continues throughout the software's life.

Types of Software Process Models

1. Waterfall Model

The Waterfall Model is the simplest and most traditional software development model. Each phase is
completed before moving to the next.

Phases

Requirement Analysis → Design → Coding → Testing → Deployment → Maintenance

Advantages

 Simple and easy to understand.  Suitable for small projects.


 Easy to manage.  Clear documentation.

Disadvantages

 Difficult to change requirements.  High risk if requirements are incorrect.


 No working software until late stages.
Suitable For

 Small projects
 Stable and well-defined requirements

2. Incremental Model

Software is developed in small parts (increments). Each increment adds new features.

Advantages

 Early delivery of software.


 Easy to test each increment.
 Lower risk.

Disadvantages

 Requires careful planning.


 Integration can be difficult.

Suitable For

 Medium and large projects


 Projects with changing requirements

3. Spiral Model
The Spiral Model combines design and prototyping with continuous risk analysis.

Phases

1. Planning 3. Development
2. Risk Analysis 4. Customer Evaluation

These phases repeat in a spiral until the software is completed.

Advantages

 Excellent risk management.  Suitable for complex projects.


 Flexible to changes.
Disadvantages

 Expensive.
 Requires experienced developers.
 Time-consuming.

Suitable For

 Large and high-risk projects

4. Prototype Model

A prototype (sample version) is developed first to understand user requirements. After customer feedback,
the final software is developed.

Advantages

 Better understanding of requirements.


 High customer involvement.
 Reduces requirement errors.

Disadvantages

 Increased development cost.


 Frequent changes may delay the project.

Suitable For

 Projects with unclear requirements

5. Agile Model

Agile is an iterative and flexible software development model. Software is developed in small cycles called
iterations or sprints.

Principles

 Customer collaboration  Frequent software delivery


 Continuous feedback  Adaptability to changes

Advantages
 Fast delivery.  Easy to accommodate changes.
 High customer satisfaction.  Better software quality.

Disadvantages

 Requires continuous customer involvement.


 Difficult to estimate cost and time.
 Less documentation.

Suitable For

 Dynamic projects
 Frequently changing requirements

Comparison of Software Process Models

Model Best For Main Advantage Main Disadvantage


Waterfall Small projects Simple and easy Difficult to change requirements
Incremental Medium projects Early delivery Integration complexity
Spiral Large, risky projects Risk management Expensive
Prototype Unclear requirements Better requirement understanding Higher cost
Agile Dynamic projects Flexible and fast Requires active customer participation

Advantages of Software Process Models

 Improves software quality.  Makes project management easier.


 Reduces development risks.  Ensures proper documentation.
 Helps complete projects on time.  Increases customer satisfaction.
 Improves communication among team  Simplifies maintenance.
members.
Limitations

 Some models require more time and cost.


 Choosing the wrong model can lead to project failure.
 Frequent changes may delay development.
 Large projects require skilled professionals.

Applications

Software process models are used in:

 Banking systems  Government projects


 Healthcare applications  Educational software
 E-commerce websites  Business management systems
 Mobile application development  Cloud-based applications
Agile Process Model

Introduction

The Agile Process Model is a modern software development approach that focuses on flexibility,
teamwork, customer involvement, and continuous improvement. Unlike traditional models, Agile
develops software in small parts called iterations or sprints, allowing frequent delivery of working
software and easy adaptation to changing customer requirements.

Agile is one of the most widely used software development models because it delivers high-quality software
quickly and efficiently.

Objectives of Agile

The main objectives of Agile are:

 Deliver working software quickly.


 Satisfy customer requirements.
 Welcome changes even during development.
 Improve software quality.
 Encourage teamwork and communication.
 Reduce development risks.

Features (Characteristics) of Agile Process Model

 Iterative and incremental development.


 Frequent delivery of working software.
 Continuous customer involvement.
 Easy to accommodate changing requirements.
 Small development teams.
 Regular testing and feedback.
 Continuous improvement after every iteration.
 Close collaboration between developers and customers.

Agile Development Cycle

The Agile process consists of the following phases:

1. Requirement Gathering

 Collect customer requirements.


 Prioritize features according to business needs.
 Prepare the product backlog.

2. Planning

 Select features to be developed in the current sprint.


 Estimate time and resources.
 Assign tasks to team members.

3. Design

 Prepare a simple design for the selected features.


 Focus on only the current sprint requirements.
4. Development (Coding)

 Developers write code for the selected features.


 Coding is completed within a short sprint.

5. Testing

 Test the developed software.


 Identify and fix bugs immediately.
 Ensure software quality.

6. Review

 Demonstrate the completed software to the customer.


 Collect customer feedback.
 Suggest improvements.

7. Release and Maintenance

 Deliver the working software.


 Add new features and fix issues in future sprints.

Agile Workflow

Requirement Gathering

Planning

Design

Development (Coding)

Testing

Review

Release & Maintenance

Next Sprint (Repeat)

Agile Principles

The Agile model follows these important principles:

1. Customer satisfaction through early delivery.


2. Welcome changing requirements.
3. Deliver working software frequently.
4. Developers and customers work together.
5. Face-to-face communication is preferred.
6. Working software is the main measure of progress.
7. Continuous attention to quality.
8. Regular improvement of the development process.
Advantages of Agile Process Model

 Quick delivery of software.


 Easy to handle changing requirements.
 High customer satisfaction.
 Continuous customer feedback.
 Better software quality through frequent testing.
 Faster bug detection and fixing.
 Reduced project risk.
 Improved teamwork and communication.
 Continuous improvement after every sprint.
 Suitable for dynamic projects.

Disadvantages of Agile Process Model

 Requires continuous customer involvement.


 Difficult to estimate total cost and project duration.
 Less documentation compared to traditional models.
 Requires experienced and skilled developers.
 Frequent changes may increase project scope.
 Not suitable for very small projects with fixed requirements.

Applications of Agile Process Model

The Agile model is widely used in:

 Web application development


 Mobile application development
 E-commerce websites
 Cloud computing applications
 Banking software
 Healthcare systems
 Artificial Intelligence (AI) projects
 Software startups
 Enterprise applications
 Online services

When to Use Agile

Agile is suitable when:

 Requirements change frequently.


 Customers are available for regular feedback.
 Fast software delivery is required.
 The project is large or complex.
 Continuous improvement is needed.

Comparison: Agile vs Waterfall

Agile Model Waterfall Model


Flexible Rigid
Iterative development Sequential development
Customer involved throughout Customer involved mainly at the beginning
Easy to change requirements Difficult to change requirements
Agile Model Waterfall Model
Frequent software delivery Software delivered at the end
Continuous testing Testing after development
Best for changing requirements Best for fixed requirements

Example

A company developing an online shopping application releases basic features such as user registration and
product search in the first sprint. In later sprints, it adds features like shopping cart, online payment, order
tracking, and customer reviews based on user feedback. This continuous development approach is an
example of the Agile Process Model.

Web Engineering

Introduction

Web Engineering is the application of Software Engineering principles, methods, and tools to the
development, testing, deployment, and maintenance of websites and web applications. It provides a
systematic and disciplined approach to creating high-quality, secure, reliable, and user-friendly web
applications.

Today, web engineering is widely used in developing e-commerce websites, online banking systems,
educational portals, social networking sites, and cloud-based applications.

Definition

Web Engineering is the systematic application of engineering principles, methods, and technologies to
the design, development, testing, deployment, and maintenance of web-based applications.

Objectives of Web Engineering

The main objectives of web engineering are:

 To develop high-quality web applications.


 To satisfy user requirements.
 To improve website performance.
 To provide security for web applications.
 To reduce development time and cost.
 To simplify maintenance.
 To improve user experience.
 To ensure reliability and scalability.

Characteristics of Web Engineering

The important characteristics of Web Engineering are:

 Systematic development process.


 User-centered design.
 High-quality standards.
 Security and reliability.
 Easy maintenance.
 Fast performance.
 Cross-platform compatibility.
 Continuous improvement.

Web Engineering Process

1. Requirement Analysis

 Collect customer and user requirements.


 Identify functional and non-functional requirements.
 Prepare the Software Requirement Specification (SRS).

2. Planning

 Define project scope.


 Estimate cost and time.
 Allocate resources.
 Prepare the project schedule.

3. Design

 Design the website structure.


 Create the user interface (UI).
 Design the database.
 Plan navigation and system architecture.

4. Development

 Develop the front-end and back-end.


 Connect the application with the database.
 Implement all required features.

Front-end Technologies

 HTML
 CSS
 JavaScript

Back-end Technologies

 PHP
 Java
 Python
 [Link]

5. Testing

Testing ensures that the website works correctly.

Types of Testing

 Functional Testing
 Performance Testing
 Security Testing
 Usability Testing
 Compatibility Testing

6. Deployment

 Upload the website to the web server.


 Configure the domain and hosting.
 Make the application available to users.

7. Maintenance

 Fix software bugs.


 Update website content.
 Improve performance.
 Add new features.
 Apply security updates.

Components of Web Engineering

1. Content Development

 Preparing text, images, videos, and multimedia content.

2. Web Design

 Creating attractive and user-friendly web pages.

3. Navigation Design

 Designing menus and links for easy navigation.

4. Database Management

 Storing and managing website data efficiently.

5. Security

 Protecting user information from unauthorized access.

6. Performance Optimization

 Improving website speed and responsiveness.

Advantages of Web Engineering

 Produces high-quality web applications.


 Improves website security.
 Reduces development time.
 Simplifies maintenance.
 Enhances user satisfaction.
 Improves team collaboration.
 Increases system reliability.
 Supports future expansion (scalability).
 Reduces software errors.
Disadvantages of Web Engineering

 Requires skilled developers.


 Development cost may be high.
 Large projects take more time.
 Continuous technology updates are needed.
 Regular maintenance is required.

Applications of Web Engineering

Web Engineering is used in:

 E-Commerce Websites  Social Networking Sites


 Online Banking Systems  Online Booking Systems
 Educational Portals  Business Websites
 Hospital Management Systems  News Portals
 Government Websites  Cloud-Based Applications

Example

An online shopping website follows Web Engineering by:

 Collecting customer requirements.


 Designing user-friendly web pages.
 Developing front-end and back-end modules.
 Testing security and performance.
 Deploying the website on a web server.
 Maintaining and updating the website regularly.

Challenges of Web Engineering

 Rapid changes in web technologies.


 Security threats and cyber attacks.
 Browser compatibility issues.
 Supporting multiple devices.
 Handling large numbers of users.
 Meeting changing customer requirements.

Easy Memory Formula

Web Engineering Process:

Requirement Analysis → Planning → Design → Development → Testing → Deployment →


Maintenance

Shortcut to Remember:

R→P→D→D→T→D→M

(Requirement → Planning → Design → Development → Testing → Deployment → Maintenance)

These notes are written in simple, easy-to-understand English and are suitable for a 15-mark PG
Computer Science examination.
Web System Design

Introduction

Web System Design is the process of planning and designing the structure, layout, navigation, database, and
functionality of a website or web application before development begins. A good web system design
ensures that the website is user-friendly, secure, reliable, fast, and easy to maintain.

It acts as a blueprint that guides developers in building an efficient web application.

Definition

Web System Design is the process of designing the architecture, user interface, database, navigation, and
functional components of a web application to meet user and business requirements.

Objectives of Web System Design

The main objectives are:

 To create a user-friendly website.


 To satisfy user and business requirements.
 To improve website performance.
 To ensure security.
 To simplify maintenance.
 To reduce development time and cost.
 To provide easy navigation.
 To improve scalability and reliability.

Steps in Web System Design

1. Requirement Analysis

 Collect user and business requirements.


 Identify functional and non-functional requirements.
 Prepare the Software Requirement Specification (SRS).

Example: Identifying features needed for an online shopping website.

2. System Architecture Design

 Define the overall structure of the web application.


 Decide how the client, server, and database will communicate.
 Select appropriate technologies.

Example: Three-tier architecture (Presentation, Business Logic, Database).

3. User Interface (UI) Design

 Design attractive and easy-to-use web pages.


 Create menus, buttons, forms, and navigation.
 Ensure responsive design for mobile and desktop devices.

4. Database Design

 Design database tables and relationships.


 Store user information and application data efficiently.
 Maintain data integrity and security.

Examples: MySQL, PostgreSQL, Oracle.

5. Navigation Design

 Organize links and menus clearly.


 Make it easy for users to move between web pages.
 Reduce user confusion.

6. Content Design

 Plan and organize website content.


 Include text, images, videos, and multimedia.
 Ensure content is clear, relevant, and attractive.

7. Security Design

 Protect user data from unauthorized access.


 Implement authentication and authorization.
 Use encryption and secure communication.

8. Testing and Evaluation

 Verify that the design meets user requirements.


 Test usability, performance, and security.
 Make necessary improvements before development.

Components of Web System Design

1. User Interface (UI)

The visual appearance of the website.

2. Navigation

Menus and links that help users move through the website.

3. Database

Stores and manages application data.

4. Web Server

Hosts and delivers web pages to users.

5. Security

Protects data and prevents cyber attacks.

6. Content

Information presented on the website, including text, images, and videos.


Principles of Good Web System Design

 Simplicity
 Consistency
 Easy Navigation
 Fast Loading Speed
 Security
 Accessibility
 Responsive Design
 Scalability
 Reliability

Advantages of Web System Design

 Improves website quality.


 Enhances user experience.
 Reduces development errors.
 Makes maintenance easier.
 Improves website security.
 Increases system performance.
 Supports future expansion.
 Saves time and development cost.

Disadvantages

 Requires experienced designers.


 Initial design process may take more time.
 High development cost for large projects.
 Frequent requirement changes may affect the design.

Applications of Web System Design

Web System Design is used in:

 E-Commerce Websites
 Online Banking Systems
 Educational Portals
 Hospital Management Systems
 Government Websites
 Social Media Platforms
 Online Booking Systems
 Business Websites
 News Portals
 Cloud-Based Applications

Example

An online banking system is designed by:

 Collecting customer requirements.


 Designing login, account, and transaction pages.
 Creating a secure database.
 Implementing authentication and encryption.
 Testing the website before deployment.
Conclusion

Web System Design is an important stage in web application development. It provides a clear plan for
designing the structure, interface, database, security, and navigation of a website. A well-designed web
system improves performance, security, usability, and maintenance, leading to successful web applications.

Easy Memory Formula

Web System Design Steps

Requirement Analysis → System Architecture → UI Design → Database Design → Navigation Design


→ Content Design → Security Design → Testing

Shortcut:

R→A→U→D→N→C→S→T

(Requirement → Architecture → UI → Database → Navigation → Content → Security → Testing)

These notes are written in simple, easy-to-understand English and are suitable for a 15-mark PG
Computer Science examination.

Project Management Concepts

Definition

Project Management is the process of applying knowledge, skills, tools, and techniques to plan, execute,
monitor, and complete a project successfully within the specified time, budget, and quality standards.

The main objectives are:

 Complete the project on time.  Use resources efficiently.


 Complete the project within budget.  Reduce project risks.
 Deliver high-quality software.  Improve team coordination.
 Satisfy customer requirements.  Achieve project goals successfully.

Characteristics of a Project

A project has the following characteristics:

 It has a specific objective.  It requires resources such as people,


 It has a defined start and end date. money, and technology.
 It is temporary in nature.  It follows a planned sequence of activities.
 It produces a unique product or service.

Project Management Life Cycle

1. Project Initiation

 Identify project objectives.  Conduct feasibility study.


 Define project scope.  Identify stakeholders.

Output: Project Charter


2. Project Planning

 Prepare project schedule.  Identify project risks.


 Estimate cost and budget.  Define project milestones.
 Allocate resources.
Output: Project Plan

3. Project Execution

 Develop the software.  Communicate with stakeholders.


 Coordinate team members.  Perform assigned tasks.

4. Project Monitoring and Control

 Monitor project progress.  Manage risks and issues.


 Compare actual progress with the project  Take corrective actions when necessary.
plan.
5. Project Closure

 Complete all project activities.  Prepare final project documentation.


 Deliver the final product to the customer.  Review project performance.
 Obtain customer approval.
Key Elements of Project Management

1. Scope Management

 Defines the work to be completed.  Prevents unnecessary work.

2. Time Management

 Plans and controls project schedule.  Ensures timely completion.

3. Cost Management

 Estimates and controls project expenses.  Keeps the project within budget.

4. Quality Management

 Ensures the software meets quality standards.

5. Risk Management

 Identifies and manages project risks.

6. Resource Management

 Manages human resources, equipment, and materials.

7. Communication Management

 Ensures effective communication among stakeholders.

Roles of a Project Manager

The Project Manager is responsible for:


 Planning the project.  Managing risks.
 Organizing project activities.  Maintaining communication.
 Managing the project team.  Ensuring quality.
 Allocating resources.  Delivering the project on time and within
 Monitoring project progress. budget.

Advantages of Project Management

 Improves project planning.  Reduces project risks.


 Ensures timely project completion.  Enhances team coordination.
 Controls project cost.  Increases customer satisfaction.
 Improves software quality.  Improves resource utilization.

Disadvantages of Project Management

 Requires experienced project managers.


 Planning can be time-consuming.
 Large projects may have high management costs.
 Poor planning may lead to project failure.
 Frequent requirement changes can affect the project schedule.

Applications of Project Management

Project Management is widely used in:

 Software Development  Government Projects


 Web Application Development  Construction Projects
 Mobile Application Development  Manufacturing Industries
 Banking Systems  Information Technology (IT) Projects
 Healthcare Systems  Research and Development Projects

Example

A company developing an Online Library Management System follows project management by:

 Gathering customer requirements.


 Planning the project schedule and budget.
 Assigning tasks to developers.
 Monitoring project progress.
 Testing the software.
 Delivering the completed system to the customer on time.

Conclusion

Project Management is an essential part of software development. It helps organizations plan, organize,
execute, monitor, and complete projects successfully. Effective project management ensures that software is
delivered on time, within budget, and with high quality, while satisfying customer requirements and
minimizing risks.

Easy Memory Formula

Project Management Life Cycle


Initiation → Planning → Execution → Monitoring & Control → Closure

Shortcut:

I→P→E→M→C

(Initiation → Planning → Execution → Monitoring → Closure)

Key Elements

Scope → Time → Cost → Quality → Risk → Resources → Communication

Shortcut:

S→T→C→Q→R→R→C

These notes are written in simple, easy-to-understand English and are suitable for a 15-mark PG
Computer Science examination.

Project Scheduling and Tracking

Definition

Project Scheduling

Project Scheduling is the process of planning project activities, assigning resources, and setting start and
finish dates for each task.

Project Tracking

Project Tracking is the process of monitoring project progress, identifying delays or problems, and taking
corrective actions to keep the project on schedule.

Objectives of Project Scheduling and Tracking

 Complete the project on time.  Improve project coordination.


 Monitor project progress regularly.  Reduce project cost.
 Use resources effectively.  Ensure quality work.
 Identify risks and delays early.  Achieve customer satisfaction.

Project Scheduling Process

1. Identify Project Activities

 List all tasks required to complete the project.


 Divide the project into smaller activities.

Example: Requirement Analysis, Design, Coding, Testing, Deployment.

2. Estimate Time

 Estimate the time required for each activity.


 Consider available resources and project complexity.
3. Allocate Resources

 Assign developers, testers, hardware, software, and budget.


 Ensure resources are available when needed.

4. Prepare Project Schedule

 Arrange activities in the correct sequence.  Define project milestones.


 Set start and finish dates.
5. Review and Update Schedule

 Review the schedule regularly.


 Make changes if project requirements change.

Project Tracking Process

1. Monitor Progress

 Compare actual work with the planned schedule.


 Check whether activities are completed on time.

2. Measure Performance

 Measure project performance using reports and progress charts.


 Evaluate team productivity.

3. Identify Problems

 Detect delays, risks, and resource shortages.


 Identify technical or management issues.

4. Take Corrective Actions

 Reassign resources if necessary.


 Revise the schedule.
 Solve identified problems quickly.

5. Report Project Status

 Provide regular progress reports to stakeholders.


 Inform management about project status.

Project Scheduling Techniques

1. Gantt Chart

 A bar chart that shows project activities and their timelines.


 Easy to understand and monitor.

Advantages

 Simple to prepare.
 Clearly shows task duration.
 Easy to track project progress.
2. PERT (Program Evaluation and Review Technique)

 Used to estimate project completion time.


 Focuses on uncertain task durations.

Advantages

 Helps in planning large projects.


 Identifies critical activities.
 Improves time estimation.

3. CPM (Critical Path Method)

 Identifies the longest sequence of project activities.


 Helps determine the minimum time needed to complete the project.

Advantages

 Identifies critical tasks.


 Improves project scheduling.
 Reduces project delays.

Importance of Project Tracking

 Monitors project performance.  Ensures timely project completion.


 Detects problems early.  Supports better decision-making.
 Helps control project cost.  Improves customer satisfaction.
 Improves communication.

Advantages of Project Scheduling and Tracking

 Better project planning.  Improves team coordination.


 Timely completion of projects.  Controls project budget.
 Efficient use of resources.  Increases productivity.
 Reduces project risks.  Improves software quality.

Disadvantages

 Requires continuous monitoring.  Frequent changes may affect the schedule.


 Time-consuming for large projects.  Incorrect estimates can delay the project.
 Requires experienced project managers.
Applications

Project Scheduling and Tracking are used in:

 Software Development Projects  Construction Projects


 Web Application Development  Manufacturing Industries
 Mobile Application Development  Government Projects
 Banking Systems  Research Projects
 Healthcare Systems  IT Services

Easy Memory Formula

Project Scheduling Steps


Identify Activities → Estimate Time → Allocate Resources → Prepare Schedule → Review

Shortcut:

I→E→A→P→R

Project Tracking Steps

Monitor → Measure → Identify Problems → Correct → Report

Shortcut:

M→M→I→C→R

Scheduling Techniques

 Gantt Chart – Displays project schedule using bars.


 PERT – Estimates project completion time.
 CPM – Identifies the critical path (longest sequence of activities).

These notes are written in simple, easy-to-understand English and are suitable for a 15-mark PG
Computer Science examination.

Software Quality Assurance (SQA)

Definition

Software Quality Assurance (SQA) is a set of activities used to ensure that the software development
process and the final software product meet the required quality standards.

Objectives of SQA

 Produce high-quality software.  Ensure software reliability.


 Prevent defects.  Reduce development cost.
 Improve customer satisfaction.  Improve software performance.

Need for SQA

 Reduces software errors.


 Improves software quality.
 Ensures security.
 Increases customer confidence.
 Makes software easy to maintain.

Activities of SQA

1. Quality Planning

 Prepare quality standards and plans.

2. Reviews

 Review requirements, design, and code.


3. Testing

 Find and fix software defects.

4. Audits

 Check whether quality standards are followed.

5. Defect Management

 Record and correct software bugs.

6. Process Improvement

 Improve the software development process.

QA vs QC

Quality Assurance (QA) Quality Control (QC)


Prevents defects Detects defects
Process-oriented Product-oriented
Done during development Done after development/testing

Advantages

 Improves software quality.  Improves reliability.


 Reduces defects.  Reduces maintenance cost.
 Increases customer satisfaction.  Ensures timely delivery.

Disadvantages

 Requires more time.  Needs skilled professionals.


 Increases initial cost.  Requires continuous monitoring.

Applications

SQA is used in:

 Software Development  E-Commerce Websites


 Banking Systems  Mobile Apps
 Healthcare Applications  Web Applications

Example

An Online Banking System uses SQA by reviewing requirements, testing the software, fixing defects, and
ensuring secure transactions before release.

Easy Memory Trick

Plan → Review → Test → Audit → Fix → Improve

Shortcut: P → R → T → A → F → I
Formal Methods

Definition

Formal Methods are mathematical methods used to describe, develop, and verify software systems to
ensure correctness and reliability.

Objectives of Formal Methods

 Improve software quality.  Improve software security.


 Detect errors early.  Reduce development and maintenance
 Ensure software correctness. costs.
 Increase software reliability.

Features of Formal Methods

 Based on mathematical models.


 Provides precise software specifications.
 Helps verify software correctness.
 Reduces software defects.
 Improves software reliability.

Steps in Formal Methods

1. Specification

 Define software requirements using mathematical notation.

2. Verification

 Check whether the software design satisfies the specifications.

3. Validation

 Ensure the software meets user requirements.

4. Implementation

 Develop the software based on the verified design.

Advantages

 Produces high-quality software.


 Detects errors before implementation.
 Improves reliability and security.
 Reduces software failures.
 Suitable for critical systems.

Disadvantages

 Requires mathematical knowledge.


 Time-consuming.
 Expensive for small projects.
 Difficult for large and complex systems.
Applications

Formal Methods are used in:

 Banking Systems
 Healthcare Systems
 Railway Reservation Systems
 Air Traffic Control Systems
 Space and Defence Systems
 Nuclear Power Plants

Example

In an Online Banking System, Formal Methods are used to verify that every money transfer is processed
correctly and securely without errors.

Conclusion

Formal Methods improve software quality by using mathematical techniques to specify and verify software
systems. They help develop correct, reliable, and secure software, especially for safety-critical
applications.

Easy Memory Trick

Formal Methods Process:

Specification → Verification → Validation → Implementation

Shortcut:

S→V→V→I

(Specify → Verify → Validate → Implement)

Cleanroom Software Engineering

Definition

Cleanroom Software Engineering is a software development approach that aims to produce defect-free
software by using formal specifications, mathematical verification, and statistical testing.

Objectives

 Develop defect-free software.  Prevent errors during development.


 Improve software reliability.  Improve software quality.
 Reduce software failures.  Increase customer satisfaction.

Principles of Cleanroom Software Engineering

1. Formal Specification – Clearly define software requirements using mathematical methods.


2. Incremental Development – Develop the software in small modules (increments).
3. Correctness Verification – Verify the correctness of the software before coding.
4. Statistical Testing – Test the software using real-world usage scenarios.
Process of Cleanroom Software Engineering

1. Requirement Analysis

 Collect and analyze customer requirements.

2. Formal Specification

 Write precise software specifications.

3. Design and Verification

 Design the software and verify its correctness using mathematical methods.

4. Coding

 Develop the software according to the verified design.

5. Statistical Testing

 Test the software with sample inputs to measure reliability.

6. Certification

 Release the software only after meeting quality standards.

Advantages

 Produces high-quality software.  Increases customer satisfaction.


 Reduces software defects.  Reduces maintenance cost.
 Improves reliability.  Suitable for critical systems.

Disadvantages

 Requires skilled developers.  Uses complex mathematical techniques.


 Time-consuming.  Not suitable for simple applications.
 Expensive for small projects.

Applications

Cleanroom Software Engineering is used in:

 Banking Systems  Space Research


 Aviation Software  Defence Systems
 Medical Systems  Railway Control Systems

Example

In an Air Traffic Control System, Cleanroom Software Engineering is used to verify software correctness
before deployment, ensuring safe and reliable aircraft operations.

Conclusion
Cleanroom Software Engineering is a software development methodology that focuses on preventing
defects instead of correcting them later. By using formal specifications, correctness verification, and
statistical testing, it produces reliable, secure, and high-quality software, especially for safety-critical
applications.

Easy Memory Trick

Cleanroom Process

Requirement → Specification → Design → Coding → Testing → Certification

Shortcut:

R→S→D→C→T→C

(Requirement → Specification → Design → Coding → Testing → Certification)

Component-Based Software Engineering (CBSE)

Definition

Component-Based Software Engineering (CBSE) is a software development method that creates


applications by assembling reusable software components.

Objectives

 Reuse existing software components.  Increase software reliability.


 Reduce development time and cost.  Simplify software maintenance.
 Improve software quality.  Improve development productivity.

Features of CBSE

 Reusable software components.  Easy maintenance.


 Modular design.  Faster software development.
 Easy integration of components.  Improved reliability and flexibility.

CBSE Process

1. Requirement Analysis

 Identify user requirements.


 Determine the required software components.

2. Component Selection

 Search and select suitable reusable components.

3. Component Design

 Design new components if reusable ones are unavailable.


4. Component Integration

 Combine all selected components into a complete system.

5. Testing

 Test individual components and the integrated system.

6. Maintenance

 Update or replace components whenever necessary.

Advantages

 Reduces development time.  Easy maintenance.


 Lowers development cost.  Promotes code reuse.
 Improves software quality.  Improves software reliability.
 Increases productivity.

Disadvantages

 Finding suitable components may be difficult.


 Component compatibility issues may occur.
 Integration can be complex.
 Security risks in third-party components.
 Limited customization.

Applications

CBSE is used in:

 Web Applications  Hospital Management Systems


 Mobile Applications  Enterprise Software
 Banking Systems  Cloud-Based Applications
 E-Commerce Websites
Example

An Online Shopping Website can be developed by combining reusable components such as:

 User Login Component  Shopping Cart Component


 Payment Gateway Component  Product Search Component

Instead of creating each module from the beginning, existing components are integrated to build the
complete application.

Easy Memory Trick

R→S→D→I→T→M

(Requirement → Selection → Design → Integration → Testing → Maintenance)


Software Reengineering

Definition

Software Reengineering is the process of analyzing, modifying, and improving existing software to
make it more maintainable, reliable, and efficient while preserving its original functionality.

Objectives

 Improve software quality.  Make software easy to maintain.


 Reduce maintenance cost.  Extend the life of existing software.
 Increase software performance.  Adapt software to new technologies.

Features of Software Reengineering

 Improves existing software.  Enhances software performance.


 Preserves original functionality.  Improves maintainability and reliability.
 Reduces development cost.  Supports modernization.

Software Reengineering Process

1. Inventory Analysis

 Identify software that needs improvement.


 Select the software for reengineering.

2. Document Restructuring

 Update and improve software documentation.

3. Reverse Engineering

 Analyze the existing software to understand its design and code.

4. Code Restructuring

 Improve the source code without changing its functionality.

5. Data Restructuring

 Improve database structure and data organization.

6. Forward Engineering

 Develop the improved version of the software using the updated design.

Advantages

 Reduces maintenance cost.  Improves reliability.


 Improves software quality.  Saves development time.
 Increases software performance.  Supports new technologies.
 Extends software life.
Disadvantages

 Time-consuming for large systems.


 Requires skilled developers.
 Old software may have poor documentation.
 Can be expensive for complex projects.

Applications

Software Reengineering is used in:

 Banking Systems  Legacy Systems


 Hospital Management Systems  Enterprise Applications
 Government Software  Educational Software
 Business Applications

Example

A Banking System developed many years ago is upgraded with a modern user interface, improved
database, and enhanced security without changing its core banking functions. This is an example of
Software Reengineering.

I→D→R→C→D→F

(Inventory → Document → Reverse → Code → Data → Forward)

Key Point to Remember

 Reengineering = Improve existing software without changing its main functionality.


 Reverse Engineering = Understand the existing software.
 Forward Engineering = Build the improved version.

You might also like