0% found this document useful (0 votes)
2 views56 pages

Software Engineering

Uploaded by

RAHUL KUMAR RAM
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)
2 views56 pages

Software Engineering

Uploaded by

RAHUL KUMAR RAM
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

Unit 1

1. Overview of System Analysis and Design


Introduction

System Analysis and Design (SAD) is a structured approach used for developing information
systems and software applications. It involves analyzing the current system, identifying
requirements, and designing solutions that fulfill organizational objectives.

It is one of the fundamental activities in Software Engineering.

System

A system is a group of interconnected components working together to achieve a common


objective.

Examples

• Banking system
• Railway reservation system
• Hospital management system

Characteristics of a System

1. Organization – Proper arrangement of components


2. Interaction – Components interact with each other
3. Interdependence – One component depends on another
4. Integration – Components work together
5. Goal-oriented – Achieves a common objective

System Analysis
Definition

System analysis is the process of studying an existing system to identify its problems and
requirements for improvement.

Objectives of System Analysis

• Understand user requirements


• Identify problems in the existing system
• Improve system performance
• Reduce cost and errors
• Increase efficiency
Activities in System Analysis

1. Requirement Gathering

Methods include:

• Interviews
• Observation
• Questionnaires
• Document analysis

2. Feasibility Study

Checks whether the proposed system is practical.

3. Requirement Analysis

Detailed examination of collected information.

4. Documentation

Preparing reports and requirement specifications.

System Design
Definition

System design converts requirements into a blueprint for software development.

Objectives of System Design

• Design efficient architecture


• Ensure security and reliability
• Reduce complexity
• Improve maintainability

Types of System Design

Logical Design

Describes:

• Data flow
• Inputs and outputs
• Functional requirements
Physical Design

Describes:

• Hardware requirements
• Database implementation
• Network configuration

Difference Between Analysis and Design

System Analysis System Design


Identifies problems Provides solutions
Focuses on requirements Focuses on implementation
“What” the system should do “How” the system will work

2. Business System Concept


Definition

A business system is an organized way of performing business activities using people,


procedures, software, hardware, and data.

It helps organizations achieve business goals efficiently.

Components of Business System

1. Input

Resources entering the system:

• Data
• Materials
• Human resources

2. Process

Transformation of input into useful output.

3. Output

Final products or services.

4. Feedback

Information about system performance.


5. Control

Monitoring and regulation of activities.

Characteristics of Business Systems

• Goal-oriented
• Dynamic
• Integrated
• Adaptive
• Information-driven

Types of Business Information Systems

1. Transaction Processing System (TPS)

Handles daily transactions.

Example:

• ATM system
• Billing system

2. Management Information System (MIS)

Provides reports to management.

3. Decision Support System (DSS)

Helps managers make decisions.

4. Executive Information System (EIS)

Supports top-level executives.

Importance of Business Systems

• Improves productivity
• Better decision making
• Reduces operational cost
• Enhances customer service
• Improves communication
3. System Development Life Cycle (SDLC)
Definition

SDLC is a systematic process used for developing software systems step by step.

It ensures high-quality software development.

Phases of SDLC

1. Planning

• Identify project goals


• Estimate resources and cost
• Define project scope

2. Feasibility Study

Checks practicality of the project.

Types:

• Technical feasibility
• Economic feasibility
• Operational feasibility

3. Requirement Analysis

Gathering and analyzing user requirements.

Output:

• Software Requirement Specification (SRS)

4. System Design

Creating:

• Architecture
• Database design
• User interfaces

5. Coding (Implementation)

Programmers write source code.

Languages:

• Java
• Python
• C++

6. Testing

Finding and fixing errors.

Types:

• Unit testing
• Integration testing
• System testing

7. Deployment

Software is installed for users.

8. Maintenance

Correcting bugs and updating software.

Types:

• Corrective
• Adaptive
• Perfective
• Preventive

Advantages of SDLC

• Better project control


• Improved software quality
• Reduced risk
• Proper documentation

Disadvantages

• Time-consuming
• Expensive for small projects
• Difficult if requirements change frequently
4. Waterfall Model
Definition

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

Phases of Waterfall Model

1. Requirement Analysis
2. System Design
3. Implementation
4. Testing
5. Deployment
6. Maintenance

Diagram Representation

Requirements

Design

Coding

Testing

Deployment

Maintenance

Advantages

• Simple and easy to understand


• Well-documented
• Easy management
• Suitable for small projects

Disadvantages

• Difficult to change requirements


• No working software until late stages
• High risk for complex projects

Applications

• Banking software
• Government systems
• Embedded systems
5. Spiral Model
Definition

The Spiral Model combines iterative development with risk analysis.

Developed by:
Barry Boehm

Phases of Spiral Model

1. Planning

Objectives and requirements are identified.

2. Risk Analysis

Risks are identified and solutions are planned.

3. Engineering

Coding and development.

4. Evaluation

Customer reviews the product.

These phases repeat in spiral cycles.

Spiral Diagram Concept

Planning → Risk Analysis → Engineering → Evaluation


↺ repeated in cycles

Advantages

• Better risk management


• Flexible
• Suitable for large projects
• Customer feedback included

Disadvantages

• Expensive
• Complex management
• Requires risk analysis expertise
Applications

• Military software
• Large enterprise systems
• Space and aviation projects

Difference Between Waterfall and Spiral Model

Waterfall Model Spiral Model


Sequential Iterative
Less flexible Highly flexible
Risk handling is poor Strong risk analysis
Suitable for small projects Suitable for large projects

6. Feasibility Analysis
Definition

Feasibility analysis determines whether a proposed system is practical and beneficial.

Objectives

• Reduce project risk


• Avoid unnecessary investment
• Check practicality
• Ensure successful implementation

Types of Feasibility

1. Technical Feasibility

Checks whether required technology and technical resources are available.

Questions Asked

• Is required hardware available?


• Is software technology available?
• Are skilled developers available?

Example

A company wants an AI chatbot:

• Need AI framework
• Cloud server
• Skilled AI engineers
2. Economic Feasibility (Cost-Benefit Analysis)

Checks whether benefits outweigh costs.

Costs

• Hardware cost
• Software cost
• Employee salary
• Maintenance cost

Benefits

• Increased productivity
• Reduced manpower
• Faster services

3. Operational Feasibility

Checks whether users can operate the system effectively.

4. Legal Feasibility

Checks compliance with laws and regulations.

5. Schedule Feasibility

Checks whether the project can be completed on time.

7. Technical Feasibility
Definition

Technical feasibility checks whether the organization has technical capability to develop and
maintain the system.

Factors Considered

• Hardware availability
• Software availability
• Technical expertise
• Security requirements
• Infrastructure support

Advantages

• Reduces technical risk


• Ensures proper planning
• Prevents project failure
8. Cost-Benefit Analysis
Definition

Cost-Benefit Analysis compares project cost with expected benefits.

Types of Costs

Direct Cost

• Hardware purchase
• Software licenses

Indirect Cost

• Training
• Electricity
• Maintenance

Types of Benefits

Tangible Benefits

• Increased profit
• Reduced labor cost

Intangible Benefits

• Customer satisfaction
• Better reputation

Importance

• Helps management decision-making


• Prevents financial loss
• Measures project profitability

9. COCOMO Model
Definition

COCOMO (Constructive Cost Model) is a software cost estimation model developed by Barry
Boehm.

It estimates:

• Development effort
• Cost
• Time required

Based on:

• Size of software (Lines of Code)

Types of COCOMO Models

1. Basic COCOMO

Simple estimation using program size.

2. Intermediate COCOMO

Considers additional cost drivers.

3. Detailed COCOMO

Considers every phase separately.

Modes of COCOMO

Mode Description
Organic Small simple projects
Semi-Detached Medium complexity
Embedded Complex projects

Basic COCOMO Formula

Effort Estimation:

E = a(KLOC)^b

Where:

• E = Effort in person-months
• KLOC = Thousand Lines of Code
• a and b are constants

Advantages

• Simple estimation method


• Helps project planning
• Reduces project risk
Disadvantages

• Depends on accurate LOC estimation


• Less suitable for modern agile projects

Conclusion

Unit 1 provides the foundation of Software Engineering. It explains how software projects are
analyzed, designed, planned, and estimated before development begins. Topics like SDLC,
Waterfall Model, Spiral Model, Feasibility Analysis, and COCOMO are extremely important
for both university exams and real-world software development.

Unit 2
1. System Design
Definition

System design is the process of converting user requirements into a detailed blueprint for
software development.

It specifies:

• System architecture
• Data structure
• Modules
• Interfaces
• Database design
• Input and output design

Objectives of System Design

1. Improve system quality


2. Reduce complexity
3. Increase maintainability
4. Ensure reliability and security
5. Improve efficiency

Types of System Design

1. Logical Design

Focuses on:

• Data flow
• Business processes
• Functional requirements
2. Physical Design

Focuses on:

• Hardware
• Software
• Database implementation
• Network infrastructure

2. Context Diagram
Definition

A Context Diagram is the highest-level Data Flow Diagram (DFD). It shows the entire system
as a single process and its interaction with external entities.

It provides an overview of:

• Inputs to the system


• Outputs from the system
• External entities interacting with the system

Characteristics

• Represents the whole system as one process


• No internal details shown
• Simple and easy to understand

Symbols Used

Symbol Meaning
Circle Process
Rectangle External Entity
Arrow Data Flow

Example: Library Management System

Student → [Library System] → Book Issue Details


Librarian → [Library System] → Reports

Advantages

• Easy to understand
• Provides system overview
• Helps communication with users
Disadvantages

• No internal process details


• Limited information

3. Data Flow Diagram (DFD)


Definition

A Data Flow Diagram represents the movement of data through a system.

It shows:

• Input data
• Processing
• Data storage
• Output data

Components of DFD

Component Symbol Description


Process Circle Performs operations
Data Flow Arrow Movement of data
Data Store Open Rectangle Stores data
External Entity Rectangle Source or destination

Levels of DFD

1. Level 0 DFD

Also called Context Diagram.

2. Level 1 DFD

Shows main sub-processes.

3. Level 2 DFD

Shows detailed internal processing.

Example of DFD

ATM System

Customer → Enter PIN → Verify Account → Cash Withdrawal


Advantages of DFD

• Easy visualization
• Better understanding of data movement
• Helps in system analysis

Disadvantages

• Cannot represent timing


• Complex for large systems

Difference Between Context Diagram and DFD

Context Diagram DFD


Highest-level overview Detailed representation
Single process Multiple processes
No internal details Shows internal data flow

4. Problem Partitioning
Definition

Problem partitioning means dividing a large problem into smaller manageable sub-problems.

It is also called:

• Modularization
• Decomposition

Objectives

• Reduce complexity
• Improve maintainability
• Simplify development
• Enable parallel development

Types of Partitioning

1. Horizontal Partitioning

Divides system into separate branches.

2. Vertical Partitioning

Divides system into functional modules.


Advantages

• Easier debugging
• Better code reuse
• Simplifies testing

Example

Banking system modules:

• Account management
• Loan processing
• ATM operations
• Transaction handling

5. Top-Down Design
Definition

Top-down design starts from the main system and gradually breaks it into smaller sub-modules.

Process

1. Start with main problem


2. Divide into sub-problems
3. Continue decomposition until manageable modules are obtained

Example

Online Shopping System



User Module
Payment Module
Order Module

Advantages

• Better system planning


• Easier understanding
• Proper control structure

Disadvantages

• Low-level details delayed


• Integration issues may occur later
6. Bottom-Up Design
Definition

Bottom-up design starts with small modules and combines them to form the complete system.

Process

1. Develop basic modules


2. Integrate modules
3. Build larger subsystems

Example

Login Module + Payment Module + Cart Module



E-Commerce System

Advantages

• Reusable modules
• Easier testing
• Early implementation of low-level utilities

Disadvantages

• Overall system structure may be unclear initially


• Difficult planning

Difference Between Top-Down and Bottom-Up Design

Top-Down Design Bottom-Up Design


Starts from main system Starts from small modules
Decomposition approach Composition approach
High-level design first Low-level design first
Easier planning Easier module reuse

7. Decision Tree
Definition

A Decision Tree is a graphical representation of decisions and possible outcomes.

It helps in:

• Decision-making
• Logic representation
• System analysis

Components

1. Decision nodes
2. Branches
3. Outcomes

Example: Loan Approval

Income > 50,000?


├── Yes → Loan Approved
└── No → Loan Rejected

Advantages

• Easy visualization
• Simple decision analysis
• Useful for complex logic

Disadvantages

• Large trees become complex


• Difficult maintenance

8. Decision Table
Definition

A Decision Table is a tabular method for representing decision logic.

It contains:

• Conditions
• Actions
• Rules

Structure of Decision Table

Conditions Rule 1 Rule 2


Valid ID Yes No
Fee Paid Yes Yes
Action Approve Reject
Advantages

• Easy representation of complex rules


• Reduces ambiguity
• Good for business logic

Disadvantages

• Large tables become difficult


• Time-consuming for huge systems

Difference Between Decision Tree and Decision Table

Decision Tree Decision Table


Graphical representation Tabular representation
Better visualization Better for complex rules
Easier for small logic Better for large logic

9. Structured English
Definition

Structured English is a method of writing process logic using simple English statements with
programming-style structure.

It combines:

• English language
• Programming constructs

Features

• Uses IF, ELSE, DO WHILE


• Simple and readable
• Avoids ambiguity

Example

IF marks >= 40
PRINT "Pass"
ELSE
PRINT "Fail"
ENDIF
Advantages

• Easy to understand
• Improves communication
• Useful for documentation

Disadvantages

• Not suitable for very complex systems


• No strict syntax

10. Functional Approach


Definition

The functional approach focuses on functions and processes of the system.

Development is based on:

• Functions
• Procedures
• Modules

Characteristics

• Process-oriented
• Uses DFDs
• Data and functions are separate

Advantages

• Simple
• Easy for procedural programming

Disadvantages

• Difficult maintenance
• Poor data security
• Less reusable

Example Languages

• C
• Pascal
11. Object-Oriented Approach
Definition

The object-oriented approach organizes software using objects and classes.

An object contains:

• Data
• Methods

Basic Concepts

Class

Blueprint for objects.

Object

Instance of a class.

Encapsulation

Binding data and methods together.

Inheritance

Acquiring properties from another class.

Polymorphism

One interface with multiple forms.

Advantages

• Reusability
• Better security
• Easy maintenance
• Modular design

Disadvantages

• Complex for beginners


• Higher memory usage

Example Languages

• Java
• C++
• Python

Difference Between Functional and Object-Oriented Approach

Functional Approach Object-Oriented Approach


Function-centered Object-centered
Data and functions separate Data and functions combined
Less reusable Highly reusable
Difficult maintenance Easy maintenance
Procedural languages OOP languages

Conclusion

Unit 2 focuses on system design techniques and methodologies used in software engineering.
Topics like DFD, Context Diagram, Decision Tree, and Object-Oriented Approach are very
important for system modeling and problem-solving. These concepts help developers design
efficient, modular, and maintainable software systems.

Unit 3
1. Coding
Definition

Coding is the process of converting system design into executable computer programs using
programming languages.

Programmers write instructions according to software requirements and design specifications.

Objectives of Coding

1. Develop working software


2. Implement system functionality
3. Ensure maintainability
4. Improve software quality
5. Reduce errors and complexity

Characteristics of Good Coding

• Simplicity
• Readability
• Modularity
• Efficiency
• Maintainability
• Proper documentation
2. Structured Programming
Definition

Structured Programming is a programming approach in which programs are divided into small
modules or functions using control structures.

It avoids:

• Uncontrolled jumps
• Excessive use of GOTO statements

Features

1. Sequential execution
2. Selection (IF-ELSE)
3. Iteration (LOOPS)
4. Modular programming

Basic Control Structures

1. Sequence

Instructions execute one after another.

Start

Input

Process

Output

2. Selection

IF marks >= 40
PRINT "Pass"
ELSE
PRINT "Fail"
ENDIF

3. Iteration

FOR i = 1 TO 10
PRINT i
NEXT
Advantages

• Easy debugging
• Improved readability
• Better maintainability
• Reduced complexity

Disadvantages

• Less suitable for very large systems


• Reusability is limited

Examples of Structured Languages

• C
• Pascal
• FORTRAN

3. Object-Oriented Programming (OOP)


Definition

Object-Oriented Programming is a programming methodology that organizes software using


objects and classes.

Objects contain:

• Data
• Functions (methods)

Basic Concepts of OOP

1. Class

A blueprint for creating objects.

Example:

• Car class

2. Object

An instance of a class.

Example:

• BMW car object


3. Encapsulation

Binding data and methods together.

4. Inheritance

Acquiring properties from another class.

5. Polymorphism

One interface with multiple forms.

6. Abstraction

Showing essential features while hiding implementation details.

Advantages of OOP

• Reusability
• Security
• Easy maintenance
• Modular design
• Better scalability

Disadvantages

• Complex for beginners


• Higher memory usage
• Slower execution sometimes

OOP Languages

• Java
• C++
• Python
• C#

Difference Between Structured Programming and OOP

Structured Programming OOP


Function-oriented Object-oriented
Top-down approach Bottom-up approach
Data less secure Better data security
Less reusable Highly reusable
4. Information Hiding
Definition

Information hiding means restricting direct access to internal data and implementation details.

Only necessary information is exposed to users.

Objectives

• Improve security
• Reduce complexity
• Protect data
• Improve maintainability

Example

class BankAccount
{
private balance;
public deposit();
}

Here:

• balance is hidden from outside access.

Advantages

• Better security
• Prevents accidental changes
• Easier maintenance

Disadvantages

• Increased design complexity

5. Reuse (Software Reusability)


Definition

Software reuse means using existing software components again in new systems.

Types of Reuse

1. Code Reuse

Reusing functions or modules.


2. Component Reuse

Using existing software components.

3. Design Reuse

Reusing software architecture/design.

Advantages

• Saves development time


• Reduces cost
• Improves reliability
• Faster development

Disadvantages

• Compatibility issues
• Difficult integration sometimes

Example

Using:

• Existing login module


• Existing payment gateway

6. System Documentation
Definition

System documentation contains all information related to software development and operation.

It helps developers, users, and maintenance teams understand the system.

Types of Documentation

1. Technical Documentation

Prepared for developers.

Includes:

• System architecture
• Source code
• Database structure
2. User Documentation

Prepared for users.

Includes:

• User manuals
• Installation guides
• Help instructions

Importance of Documentation

• Easy maintenance
• Better communication
• Training support
• Future upgrades

Advantages

• Simplifies maintenance
• Helps debugging
• Improves understanding

Disadvantages

• Time-consuming
• Requires regular updating

7. Software Testing
Definition

Software testing is the process of evaluating software to identify errors and verify that it meets
user requirements.

Objectives of Testing

• Detect errors
• Improve quality
• Verify functionality
• Ensure reliability
8. Levels of Testing

1. Unit Testing

Definition

Testing individual modules or functions separately.

Performed By

Developers

Example

Testing login function separately.

2. Integration Testing

Definition

Testing interaction between modules.

Example

Checking communication between:

• Payment module
• Order module

3. System Testing

Definition

Testing the complete integrated system.

Example

Testing entire banking application.

4. Acceptance Testing

Definition

Testing performed by users/customers before deployment.

Types

• Alpha testing
• Beta testing
Difference Between Testing Levels

Level Purpose
Unit Testing Test individual modules
Integration Testing Test module interaction
System Testing Test entire system
Acceptance Testing User validation

9. Integration Testing
Definition

Integration testing checks whether combined modules work correctly together.

Types of Integration Testing

1. Top-Down Integration

Testing starts from top modules.

2. Bottom-Up Integration

Testing starts from lower modules.

3. Big Bang Integration

All modules integrated together.

Advantages

• Detects interface errors


• Ensures module compatibility

Disadvantages

• Complex debugging
• Time-consuming

10. Test Case Specification


Definition

A test case is a set of conditions and inputs used to verify software functionality.
Components of Test Case

Component Description
Test Case ID Unique identifier
Objective Purpose of test
Input Data Input values
Expected Result Desired output
Actual Result Obtained result
Status Pass/Fail

Example

Field Value
Test Case ID TC01
Input Correct password
Expected Output Login successful

Importance

• Improves testing quality


• Ensures proper verification
• Reduces errors

11. Reliability Assessment


Definition

Reliability assessment measures the probability that software will operate without failure for a
specified period.

Factors Affecting Reliability

• Number of defects
• Complexity
• Testing quality
• Operating environment

Reliability Metrics

Mean Time Between Failures (MTBF)

MTBF = MTTR + MTTF

Where:

• MTBF = Mean Time Between Failures


• MTTR = Mean Time To Repair
• MTTF = Mean Time To Failure

Importance

• Improves software quality


• Reduces system failure
• Increases user confidence

12. Validation and Verification


Verification

Definition

Verification checks whether software is being developed correctly according to specifications.

Question Answered

“Are we building the product right?”

Validation

Definition

Validation checks whether the developed software satisfies user needs.

Question Answered

“Are we building the right product?”

Difference Between Verification and Validation

Verification Validation
Process-oriented Product-oriented
Done during development Done after development
Checks correctness Checks usefulness
13. Software Metrics
Definition

Software metrics are quantitative measures used to evaluate software quality and development
process.

Types of Metrics

1. Product Metrics

Measure software product quality.

Examples:

• LOC (Lines of Code)


• Complexity

2. Process Metrics

Measure development process efficiency.

3. Project Metrics

Measure project management aspects.

Examples:

• Cost
• Time
• Productivity

Advantages

• Better quality control


• Improved estimation
• Performance measurement

14. Monitoring and Control


Definition

Monitoring and control involve tracking software project progress and ensuring project goals
are achieved.
Objectives

• Track progress
• Detect problems
• Maintain quality
• Control cost and schedule

Activities

Monitoring

• Progress tracking
• Performance measurement
• Risk identification

Control

• Corrective actions
• Resource management
• Schedule adjustments

Tools Used

• Gantt charts
• Project reports
• Dashboard systems

Advantages

• Better project management


• Early problem detection
• Improved productivity

Conclusion

Unit 3 focuses on software development implementation and quality assurance. Topics such as
structured programming, OOP, testing, reliability, documentation, metrics, and monitoring are
essential for building efficient and reliable software systems. This unit is highly important for
both university examinations and practical software engineering projects.
Unit 4
1. Introduction to Software Project Management
Definition

Software Project Management (SPM) is the process of planning, organizing, directing, and
controlling software projects to achieve specific goals within:

• Time
• Budget
• Quality standards

It ensures successful completion of software projects.

Objectives of Software Project Management

1. Complete project on time


2. Maintain software quality
3. Control project cost
4. Manage resources efficiently
5. Reduce project risk
6. Improve customer satisfaction

Responsibilities of Software Project Manager

• Project planning
• Resource allocation
• Team management
• Risk management
• Progress monitoring
• Quality control
• Communication with stakeholders

Characteristics of Software Projects

• Complex and dynamic


• Intangible product
• Continuous requirement changes
• High risk
• Requires teamwork

2. Project Scheduling
Definition

Project scheduling is the process of planning project activities and assigning time durations to
complete tasks in an organized manner.
It answers:

• What work will be done?


• When will it be done?
• Who will do it?

Objectives of Project Scheduling

• Complete project on time


• Avoid delays
• Optimize resource utilization
• Track project progress

Steps in Project Scheduling

1. Identify Activities

Break project into tasks.

Example:

• Requirement analysis
• Coding
• Testing

2. Determine Sequence

Identify order of activities.

Example:
Design must be completed before coding.

3. Estimate Time

Estimate duration for each activity.

4. Assign Resources

Assign developers, testers, and tools.

5. Prepare Schedule

Create project timetable.


Scheduling Techniques

1. Gantt Chart

Definition

A Gantt chart is a graphical representation of project activities against time.

Features

• Displays task duration


• Shows task dependencies
• Tracks progress

Example

Task Week1 Week2 Week3


Requirement ███
Design ███
Coding █████
Testing ███

Advantages

• Easy visualization
• Simple project tracking
• Better management

Disadvantages

• Difficult for large projects


• Complex dependency handling

2. PERT (Program Evaluation Review Technique)

Definition

PERT is a scheduling technique used to estimate project duration considering uncertainty.

Formula for Expected Time

T_E = \frac{O + 4M + P}{6}

Where:

• O = Optimistic time
• M = Most likely time
• P = Pessimistic time
Advantages

• Handles uncertainty
• Better time estimation

Disadvantages

• Complex calculations
• Time-consuming

3. CPM (Critical Path Method)

Definition

CPM identifies the longest path in a project network and determines minimum project
completion time.

Critical Path

The sequence of activities with zero slack time.

Delay in critical path delays the entire project.

Advantages

• Better scheduling
• Identifies critical activities

Disadvantages

• Difficult for complex projects

3. Staffing
Definition

Staffing is the process of selecting, assigning, and managing personnel for software projects.

Objectives of Staffing

• Ensure skilled workforce


• Improve productivity
• Maintain project quality

Staffing Activities

1. Recruitment

Hiring employees.
2. Training

Improving employee skills.

3. Team Formation

Creating project teams.

4. Role Assignment

Assigning responsibilities.

Roles in Software Team

Role Responsibility
Project Manager Project control
System Analyst Requirement analysis
Developer Coding
Tester Testing
Database Administrator Database management

Factors Affecting Staffing

• Project size
• Budget
• Required skills
• Project duration

Advantages of Proper Staffing

• Increased productivity
• Better teamwork
• High-quality software

Problems in Staffing

• Skill shortage
• Communication gap
• Employee turnover

4. Software Configuration Management (SCM)


Definition

Software Configuration Management is the process of managing and controlling changes in


software products.
It ensures software consistency and integrity.

Objectives of SCM

• Control software changes


• Maintain software versions
• Prevent unauthorized modifications
• Improve software quality

Need for SCM

During software development:

• Requirements change
• Bugs are fixed
• Features are updated

SCM helps manage these changes systematically.

Components of SCM

1. Configuration Identification

Identifying software components.

Examples:

• Source code
• Documents
• Databases

2. Version Control

Managing different software versions.

Example:

• Git
• SVN

3. Change Control

Managing approval and implementation of changes.

4. Configuration Audit

Checking correctness and consistency.


5. Status Accounting

Recording and reporting configuration details.

SCM Tools

• Git
• GitHub
• GitLab
• SVN
• Bitbucket

Advantages of SCM

• Better version control


• Easy collaboration
• Faster recovery from errors
• Improved project management

Disadvantages

• Requires training
• Additional management effort

5. Software Quality Assurance (SQA)


Definition

Software Quality Assurance is a set of activities that ensures software quality throughout
development.

It focuses on:

• Process quality
• Product quality

Objectives of SQA

• Prevent defects
• Improve reliability
• Ensure standards compliance
• Increase customer satisfaction
Quality Factors

Factor Meaning
Reliability Failure-free operation
Efficiency Optimal resource usage
Maintainability Ease of modification
Security Protection against threats
Usability User-friendliness

SQA Activities

1. Quality Planning

Setting quality standards.

2. Reviews and Audits

Checking documents and code.

3. Testing

Detecting defects.

4. Process Improvement

Improving development process.

Types of Reviews

Technical Review

Examining technical correctness.

Walkthrough

Author explains software to team.

Inspection

Formal defect detection process.

Advantages of SQA

• Reduces defects
• Improves reliability
• Better customer satisfaction
• Lower maintenance cost
Disadvantages

• Increased development cost


• Time-consuming

6. Project Monitoring
Definition

Project monitoring is the continuous observation and tracking of project progress.

It ensures project activities are proceeding according to plan.

Objectives

• Track project performance


• Identify problems early
• Ensure timely completion
• Control cost and quality

Activities in Project Monitoring

1. Progress Tracking

Monitoring completed tasks.

2. Performance Measurement

Comparing actual progress with planned progress.

3. Risk Monitoring

Identifying and managing risks.

4. Cost Monitoring

Tracking project expenditure.

5. Schedule Monitoring

Ensuring project deadlines are met.

Project Control

Definition

Project control involves corrective actions to keep the project on track.


Steps in Project Control

1. Measure actual performance


2. Compare with planned performance
3. Identify deviations
4. Take corrective actions

Monitoring Tools

1. Gantt Chart

Tracks activity progress.

2. Milestone Chart

Shows important project events.

3. Dashboard

Provides graphical project status.

4. Status Reports

Regular progress reports.

Advantages of Monitoring and Control

• Early problem detection


• Better resource management
• Improved productivity
• Reduced project risk

Disadvantages

• Additional management effort


• Requires continuous supervision

Difference Between Monitoring and Control

Monitoring Control
Observes project progress Takes corrective action
Detects problems Solves problems
Passive activity Active activity
Common Risks in Software Projects

Risk Type Example


Technical Risk Technology failure
Schedule Risk Project delay
Cost Risk Budget overrun
Human Risk Staff shortage

Risk Management Process

1. Risk identification
2. Risk analysis
3. Risk planning
4. Risk monitoring

Importance of Software Project Management

• Ensures successful project completion


• Improves software quality
• Controls budget and schedule
• Enhances teamwork
• Reduces project failure

Conclusion

Software Project Management is essential for developing successful software systems. Topics
like scheduling, staffing, SCM, quality assurance, and project monitoring help organizations
manage software projects efficiently. Proper project management improves productivity,
quality, and customer satisfaction while reducing risks and development costs.

Unit 5
1. Introduction to Modeling
Definition

Modeling is the process of creating a simplified representation of a real system.

It helps developers understand, analyze, design, and communicate system structure and
behavior before actual implementation.

Objectives of Modeling

1. Understand complex systems


2. Visualize system structure
3. Improve communication among developers
4. Reduce development errors
5. Simplify system design
6. Support documentation

Why Modeling is Important

• Makes software easier to understand


• Detects design problems early
• Reduces development cost
• Helps system maintenance
• Improves software quality

Types of Models

1. Static Model

Definition

A static model describes the structural aspects of a system.

It shows:

• Objects
• Classes
• Relationships
• Attributes

It does not show behavior over time.

Characteristics

• Structure-oriented
• Describes system organization
• Represents permanent aspects

Examples

• Class Diagram
• Object Diagram
• Component Diagram

Advantages

• Easy understanding of structure


• Better system organization
• Supports database design

2. Dynamic Model

Definition
A dynamic model describes the behavioral aspects of a system.

It shows:

• Interactions
• Activities
• State changes
• Message flow

Characteristics

• Behavior-oriented
• Represents system operation
• Shows time-dependent behavior

Examples

• Sequence Diagram
• State Chart Diagram
• Activity Diagram

Difference Between Static and Dynamic Models

Static Model Dynamic Model


Describes structure Describes behavior
Time-independent Time-dependent
Focuses on classes and relationships Focuses on interactions and activities

2. UML (Unified Modeling Language)


Definition

UML is a standardized modeling language used to visualize, specify, design, and document
software systems.

Developed by:

• Grady Booch
• James Rumbaugh
• Ivar Jacobson

Objectives of UML

• Visualize system design


• Improve communication
• Simplify software development
• Document software architecture
Categories of UML Diagrams

Category Diagrams
Structural Diagrams Class, Component
Behavioral Diagrams Sequence, Activity, State Chart

3. Class Diagram
Definition

A class diagram represents classes, objects, attributes, methods, and relationships in a system.

It is the most important UML structural diagram.

Components of Class Diagram

1. Class

Represents a blueprint for objects.

2. Attributes

Properties of a class.

Example:

• name
• age

3. Methods

Functions performed by objects.

Example:

• login()
• calculate()

Structure of Class

-----------------
| Student |
-----------------
| rollNo |
| name |
-----------------
| display() |
-----------------
Relationships in Class Diagram

1. Association

Connection between classes.

2. Inheritance

One class acquires properties of another.

3. Aggregation

Weak “has-a” relationship.

4. Composition

Strong “part-of” relationship.

Advantages

• Clear system structure


• Supports OOP design
• Easy maintenance

Disadvantages

• Complex for large systems

4. Interaction Diagram
Definition

Interaction diagrams show communication between objects in a system.

They describe:

• Message passing
• Object interaction
• System behavior

Types of Interaction Diagrams

1. Sequence Diagram
2. Collaboration Diagram

Importance

• Helps understand object communication


• Useful for behavioral analysis
5. Collaboration Diagram
Definition

A collaboration diagram shows interactions among objects emphasizing relationships and


message flow.

It focuses on:

• Object organization
• Message exchange

Components

Component Purpose
Object Participating entity
Link Connection
Message Communication

Example

Customer → Order System → Payment System

Advantages

• Shows object relationships clearly


• Easy communication analysis

Disadvantages

• Difficult for complex systems

6. Sequence Diagram
Definition

A sequence diagram represents interaction among objects arranged in time sequence.

It shows:

• Order of messages
• Object interactions over time
Components

1. Object

Participants in interaction.

2. Lifeline

Represents object existence over time.

3. Message

Communication between objects.

Example

User → Login System : Enter Password


Login System → Database : Verify Password
Database → Login System : Success

Advantages

• Shows interaction flow clearly


• Easy understanding of behavior

Disadvantages

• Complex for large systems

Difference Between Collaboration and Sequence Diagram

Collaboration Diagram Sequence Diagram


Focuses on relationships Focuses on time sequence
Compact representation Detailed interaction flow
Easier structure visualization Easier behavior visualization

7. State Chart Diagram


Definition

A state chart diagram represents different states of an object and transitions between those
states.

It models dynamic behavior of objects.


Components

Component Meaning
State Condition of object
Transition Change between states
Event Trigger for transition

Example: ATM Card

Idle → Insert Card → Enter PIN → Transaction → Exit

Advantages

• Models dynamic behavior


• Useful for real-time systems

Disadvantages

• Complex for large applications

Applications

• ATM systems
• Traffic control systems
• Embedded systems

8. Activity Diagram
Definition

An activity diagram represents workflow and activities in a system.

It is similar to a flowchart.

Components

Component Purpose
Activity Task performed
Decision Branching condition
Start Node Beginning
End Node Completion
Example

Start

Login

Validate User

Access Granted

End

Advantages

• Easy workflow understanding


• Useful for business processes

Disadvantages

• Limited object interaction details

Applications

• Business process modeling


• Workflow systems
• Process analysis

9. Implementation Diagram
Implementation diagrams show physical implementation of software components.

They include:

1. Component Diagram
2. Deployment Diagram

A. Component Diagram

Definition

A component diagram shows software components and their dependencies.

Components

• Software modules
• Libraries
• Interfaces
Example

User Interface → Business Logic → Database

Advantages

• Better modular understanding


• Supports component reuse

B. Deployment Diagram

Definition

A deployment diagram shows hardware configuration and software deployment.

Components

Component Meaning
Node Hardware device
Artifact Software component
Communication Link Network connection

Example

Client Computer ↔ Web Server ↔ Database Server

Advantages

• Helps network planning


• Shows physical architecture

Disadvantages

• Complex for distributed systems

Difference Between Component and Deployment Diagram

Component Diagram Deployment Diagram


Focuses on software structure Focuses on hardware deployment
Logical representation Physical representation

Importance of UML in Software Engineering

1. Improves software visualization


2. Simplifies complex systems
3. Enhances communication
4. Supports documentation
5. Reduces development errors

Advantages of UML

• Standardized notation
• Better design understanding
• Easy maintenance
• Supports object-oriented development

Disadvantages of UML

• Complex diagrams for large systems


• Requires training
• Time-consuming

Real-Life Example of UML Usage

Online Shopping System

Class Diagram

Classes:

• User
• Product
• Cart
• Payment

Sequence Diagram

Shows:

• Login process
• Order placement

Activity Diagram

Shows:

• Shopping workflow

Deployment Diagram

Shows:

• Client browser
• Web server
• Database server

You might also like