Software Engineering Overview and Models
Software Engineering Overview and Models
Software Characteristics
4. Software is intangible:
It can’t be touched or seen physically. Its quality depends on logical structure, documentation, and
performance.
Software Engineering uses a layered technology approach where each layer supports the next, ensuring
systematic and quality-oriented development.
2. Process Layer:
This defines how software is
developed — the overall framework
including planning, analysis, design,
coding, testing, and maintenance.
It acts as the “glue” that binds methods and tools together.
3. Methods Layer:
These are technical procedures and techniques used in analysis, design, and coding.
Example: DFDs, ER diagrams, flowcharts, UML, algorithms.
4. Tools Layer:
These are software applications that automate or support software development.
Example: IDEs like Eclipse, CASE tools, debuggers.
Together, these layers make software engineering a disciplined, structured, and repeatable process.
A software development framework defines a standard structure or model that guides the software
development life cycle (SDLC).
It provides guidelines, processes, and best practices for planning, building, testing, and maintaining
software.
1. Process Framework
Framework Activities:
Communication:
Developers interact with customers and stakeholders to understand their needs and collect
requirements clearly.
Planning:
A proper plan is made for the project — tasks, schedule, resources, risks, and deadlines are
decided.
Modeling:
Models and diagrams (like DFDs or ER diagrams) are made to understand and design the system
before coding.
Construction:
Actual coding and testing are done here. Errors are found and fixed to make sure the software
works properly.
Deployment:
The final product is delivered to the customer. Feedback is taken, and small improvements are
made if needed.
2. Umbrella Activities
Umbrella activities are supporting activities that are done throughout the software development
process.
They ensure that the main process runs smoothly and the software maintains quality.
Quality Assurance: Makes sure the software meets quality standards and works correctly.
Configuration Management: Controls and tracks changes made to the software.
Documentation: Keeps proper records of all project details for easy understanding and
maintenance.
Risk Management: Identifies and prepares for possible risks in the project.
Project Tracking: Monitors progress and ensures work is on time and within budget.
Measurement & Metrics: Collects data to measure performance and improve future projects.
The Waterfall Model is the oldest and most traditional software development model.
It follows a step-by-step (sequential) process where each phase must be completed fully before moving to
the next.
It is called “waterfall” because the development flows downward like a waterfall, from one stage to the
next.
1. Requirement Analysis:
In this phase, all the requirements of the customer are collected and written in detail.
It helps the developer to clearly understand what needs to be built.
2. System Design:
Based on the gathered requirements, the system’s structure and design are planned.
The database, user interface, and data flow are decided here.
3. Implementation (Coding):
The system design is converted into actual code using a programming language.
Each module is coded and tested individually.
4. Testing:
The complete software is tested carefully to find and fix any errors.
The goal is to ensure the software works exactly as required.
5. Deployment:
The software is delivered to the customer for actual use.
Installation and user training may also take place.
6. Maintenance:
After delivery, any problems found are corrected.
Updates or improvements may be added based on user feedback.
Advantages:
Disadvantages:
Example:
Payroll systems, calculator software, or other small projects with fixed needs.
RAD (Rapid Application Development) is an incremental software process model that focuses on fast
development and early delivery of software components.
In this model, the entire software is divided into small parts (increments).
Each part is developed, tested, and delivered to the user quickly.
After all parts are completed, they are combined into the final product.
2. Data Modeling:
Data objects and relationships between them are identified and designed.
3. Process Modeling:
Defines how data is processed to achieve business goals.
4. Application Generation:
The actual software is built using powerful tools, reusable components, and automatic code
generators.
Advantages:
Disadvantages:
Example:
The Evolutionary Process Models focus on developing software step by step, improving it with each
version (iteration).
The system evolves over time as feedback is received from users.
These models are suitable when requirements are not clear in the beginning or may change during
development.
1. Requirement Gathering:
Initial requirements are collected from the customer.
2. Quick Design:
A rough design (basic screens and layout) is created.
3. Build Prototype:
A simple working model is developed to demonstrate the main functions.
4. Customer Evaluation:
The customer tries the prototype and gives feedback.
5. Refinement:
Changes and improvements are made based on feedback.
6. Final Product:
Once the customer is satisfied, the final software is developed using the refined requirements.
Advantages:
Disadvantages:
Example:
Websites, user interface design, or mobile apps where user feedback is important.
The Spiral Model, developed by Barry Boehm, combines features of the waterfall model and prototyping
model with strong risk management.
2. Risk Analysis:
All possible risks are identified (cost, time, technical risks) and ways to minimize them are planned.
3. Engineering:
The next version of the product is developed and tested.
4. Evaluation:
The customer reviews the product and provides feedback for the next iteration.
Advantages:
Disadvantages:
Complex to manage.
Example:
The Agile Model is a modern approach that focuses on flexibility, teamwork, and continuous customer
feedback.
Work is divided into short time periods called iterations or sprints (1–4 weeks).
After every sprint, a working part of the software is delivered and reviewed.
The goal of Agile is to deliver working software quickly, accept changes easily, and keep the customer
closely involved.
Extreme Programming (XP) improves software quality by combining strong teamwork, coding standards,
and customer involvement.
Main Practices:
Pair Programming: Two developers work together at one computer.
Advantages:
Disadvantages:
Phases:
3. Learn: Review what was done and improve in the next cycle.
Advantages:
Disadvantages:
(c) Scrum
Scrum divides the project into short cycles (sprints) of 2–4 weeks.
Each sprint delivers a working part of the software.
Roles in Scrum:
Product Owner: Represents the customer and defines what needs to be built.
Activities in Scrum:
Sprint Retrospective: Discuss what went well and what to improve next.
Advantages:
Disadvantages:
DSDM is an Agile framework that focuses on timely delivery and active user involvement.
It uses a technique called timeboxing, where a fixed time is given for each task.
Advantages:
Disadvantages:
The Crystal Method focuses on people, communication, and interaction rather than strict processes.
Di erent versions (like Crystal Clear, Crystal Orange) are used depending on project size and criticality.
Advantages:
Lightweight and simple.
Disadvantages:
The Agile Unified Process combines the structure of Rational Unified Process (RUP) with Agile flexibility.
It divides development into four main phases and emphasizes iterative progress.
Phases:
Advantages:
Disadvantages:
Software engineering core principles are basic rules or guidelines that help software engineers develop
good-quality software.
They ensure that every project is organized, easy to maintain, and meets the user’s needs.
Software Practices are set of activities that guide how software is built and maintained.
Each practice has its own principles that help ensure success.
1. Communication Practice
2. Planning Practice
3. Modeling Practice
4. Construction Practice
5. Deployment Practice
1. Communication Practice
Communication ensures a clear understanding between developers, clients, and stakeholders before and
during development.
Principles:
Principle Explanation
1. Listen actively Developers must listen carefully to customers to understand their real needs
and expectations.
2. Use simple, clear Avoid technical jargon when communicating with clients; ensure everyone
language understands.
3. Record everything All discussions, decisions, and requirements should be documented for
reference.
4. Encourage feedback Regular feedback ensures corrections happen early, avoiding later confusion.
2. Planning Practice
Planning defines how the project will be carried out, who will do what, and by when.
Principles:
Principle Explanation
1. Understand the scope Know exactly what the project must achieve — this gives direction.
2. Involve stakeholders Clients and users should be part of the planning to set realistic goals.
4. Be realistic and flexible Don’t overpromise — adjust plans as new information comes in.
3. Modelling Practice
Modelling means representing the software system visually or conceptually to understand requirements
and design.
Principles:
Principle Explanation
1. Model what is important Focus on critical system aspects, not unnecessary details.
4. Validate models Ensure all models match real requirements before coding
starts.
4. Construction Practice
Principles:
Principle Explanation
1. Follow coding standards Maintain consistent code style for clarity and maintainability.
2. Keep it simple and modular Write small, understandable modules that can be reused.
3. Test as you build Perform unit testing after each code segment to catch errors early.
4. Review and refactor Regularly review code and improve it for performance and readability.
5. Deployment Practice
Deployment means delivering the software to the end users and ensuring it runs correctly in their
environment.
Principles:
Principle Explanation
3. Train users Ensure users know how to operate the software e ectively.
4. Gather post-deployment feedback Monitor usage and gather user feedback for improvement.
Definition:
Requirement Engineering is the process of understanding, analyzing, documenting, and validating what
the customer needs from the software system. It starts during communication and continues through
modeling. It ensures that the final product meets user expectations and business goals.
1. Inception
o At this stage, the business need, target users, and basic project goals are identified.
o Helps understand the scope of the project and the nature of the required solution.
2. Elicitation
3. Elaboration
o Defines:
4. Negotiation
o Both sides (customer and developer) reach a “win-win” agreement using cost, time, and risk
as reference points.
5. Specification
Written documents
Graphical models
Use-case descriptions
6. Validation
o Ensures that the documented requirements are correct, complete, and consistent.
o Detects:
Missing information
Ambiguities
7. Requirements Management
o Involves tracking and controlling changes in requirements throughout the project life cycle.
o Helps maintain traceability (link between requirements and other project documents).
1. Functional Requirements:
o Example: “The system should generate a sales report at the end of each month.”
2. Non-Functional Requirements:
o These are quality attributes like speed, security, reliability, usability, and scalability.
o Example: “The response time of the system must be less than 2 seconds.”
3. Product Requirements:
4. Organizational Requirements:
o Example: “The software must use the company’s existing Oracle database.”
5. External Requirements:
o Arise from factors outside the organization such as laws, regulations, or hardware
interfaces.
o Example: “The system must comply with government data privacy laws.”
Definition:
A Software Requirement Specification (SRS) is a formal document that describes in detail what the
software will do and how it will perform.
It is prepared after all requirements are gathered and finalized.
Need for SRS:
Provides a clear and detailed overview of the software product, its features, and goals.
1. Introduction
2. Overall Description
o Product perspective
o User characteristics
3. Specific Requirements
5. Appendices
1. Correctness:
All requirements stated must be accurate and reflect user needs.
2. Completeness:
Every function and constraint must be clearly defined without missing details.
3. Consistency:
No conflicting or contradictory requirements should exist.
4. Unambiguousness:
Requirements should have only one clear meaning.
5. Modifiability:
The document should be easy to change when requirements change.
6. Traceability:
Each requirement should be easily linked to its source or corresponding design element.
7. Testability:
Each requirement must be testable through inspection or testing methods.
8. Understandable by Stakeholders:
The document should be written in simple, clear language for both technical and non-technical users.
After collecting and analyzing all requirements, we move to the design phase.
This process is called translating the requirement model into a design model.
It means converting what the system should do (requirements) into how the system will do it (design).
Data Modelling
Data Modelling is the first and most important step in this translation.
It focuses on identifying, organizing, and structuring the data used in the system.
2. Define Attributes:
3. Establish Relationships:
o A data dictionary gives details about every data item like name, type, size, and meaning.
o The logical data model is finally converted into database tables and keys for implementation.
Example:
2. Class-Based Model:
o Example: Class Student has attributes like name, roll number and functions like register() or
viewResult().
3. Behavioral Model:
o Example: When the user enters a password, the system verifies it and shows the homepage.
4. Data Model:
5. Flow-Oriented Model:
o Shows how data moves through the system and what operations are applied.
In short:
Analysis models show the functions, data, and behavior of the system before any code is written.
They help both the customer and the developer agree on what needs to be built.
To make good designs, software engineers follow some fundamental design concepts.
1. Abstraction
Abstraction means showing only important details and hiding unnecessary ones.
Example: When you use a “Print” option, you don’t see how printing happens internally — that is
abstraction.
2. Information Hiding
Information hiding means keeping internal details of a module secret from other modules.
Example: A “Database” module hides its connection details and only provides functions like
addData() or getData().
3. Structure
It defines how modules are linked and how data flows between them.
Example: Dividing a web system into layers — user interface, business logic, and database layer.
4. Modularity
Modularity means dividing a big system into smaller parts called modules.
Each module performs a specific task and can be developed or tested separately.
Example: In an online shopping app — modules can be Login, Search Product, Payment, and Delivery.
5. Concurrency
Concurrency means that di erent parts of the program can run at the same time.
Example: While one user is shopping online, another can also browse products at the same time.
6. Verification
Verification ensures that the design is correct and meets all requirements.
Example: Review meetings are done to verify that all modules follow design rules.
7. Aesthetics
Aesthetics means the design should be neat, consistent, and easy to understand.
Good naming, clean layout, and readable diagrams make the system easier to maintain.
Abstraction Show only important details Hide print logic behind “Print” button
Information Hiding Keep internal details private Database hides connection details
Modularity Divide system into small parts Login, Payment, Delivery modules
Design notations are the graphical or symbolic methods used to represent the structure, behavior, and
flow of a software system during the design phase.
They help in visualizing and communicating system logic before coding begins.
According to Pressman & Ri man, good design notations should be simple, understandable, and easy to
verify.
Meaning:
A Data Flow Diagram shows how data moves through the system, what processes change it, and where it
is stored.
It focuses on the flow of information rather than the actual program logic.
Purpose:
To show how input data is transformed into output data through various processes.
Symbol Meaning
○ or Rounded Rectangle Process (transformation of data)
→ (Arrow) Data Flow (direction of movement)
▭ (Open rectangle) Data Store (where data is kept)
□ (Square) External Entity (source or destination of data)
Levels of DFD (as per Ri man):
2. Level 1:
Expands the main process into major sub-processes.
Example:
For an Online Banking System
Advantages:
Meaning:
A Flowchart is a graphical representation of program logic showing the sequence of steps, decisions, and
operations.
It is the oldest and most widely used design notation.
Purpose:
Symbol Meaning
⭘ (Oval) Start / End
(Rectangle) Process / Operation
⧫ (Diamond) Decision (Yes/No)
⧍ (Parallelogram) Input / Output
→ (Arrow) Flow line showing order of steps
Example:
A flowchart for a Login System:
Start → Input Username and Password →
If correct → “Login Successful” → Home Page → Stop.
Else → “Invalid Credentials” → Try Again.
Advantages:
3. Decision Tables
Meaning:
A Decision Table represents di erent possible conditions and the actions taken for each combination of
conditions.
It is useful when a process involves complex decision-making.
Structure:
Advantages:
UML (Unified Modelling Language) is a standard visual language developed by Grady Booch, James
Rumbaugh, and Ivar Jacobson.
According to Ri man, UML is not just for design; it’s a common communication tool that bridges
understanding between users, analysts, and developers.
1. Use-Case Diagram
Meaning:
A Use-Case Diagram shows how users (actors) interact with the system and what functions (use-cases)
the system provides.
Purpose:
Elements:
2. Class Diagram
Meaning:
A Class Diagram represents the structure of the system by showing its classes, attributes, methods, and
relationships.
It gives a static view of the software.
Elements:
Relationships:
o Association (uses)
o Inheritance (is-a)
o Aggregation (has-a)
Example:
Class: Student
Purpose:
3. Sequence Diagram
Meaning:
A Sequence Diagram shows how objects communicate with each other through messages over time.
It represents the order of interaction in a particular use-case.
Elements:
Purpose:
3.6 Testing
Meaning:
Software Testing is the process of executing a software program with the intention of finding errors and
ensuring that the developed software meets the specified requirements.
In simple words, testing ensures that the software is working correctly, reliably, e iciently, and satisfies
user needs before it is delivered.
Purpose of Testing:
The main purpose of testing is not only to find errors but also to ensure that the software product:
Testing is also used to verify that the software product performs as per its design, and to validate that it
meets user needs and expectations.
Points of
Black Box Testing White Box Testing
Di erence
Also known as data-driven testing, and Also called structural testing or glass box
Other Names
functional testing. testing.
Type of Test It is a functional test of the software. It is a structural test of the software.
Testing can start after preparing the Testing can start after preparing the
When to Start
Requirement Specification Document. Detailed Design Document.
Software testing is mainly divided into two broad categories based on whether the code is executed or not
—
Static Testing and Dynamic Testing.
1. Static Testing
Meaning:
Static testing means testing without executing the actual code of the program.
It focuses on reviewing documents, code, and design to find errors early — even before the program runs.
Purpose:
Activities Involved:
Code inspection
Walkthroughs
Usually performed by developers, analysts, or reviewers before handing the code to testers.
Advantages:
Errors are found early, before execution.
Example:
Checking the requirement document for missing functions or reviewing code manually for syntax errors
before running the program.
2. Dynamic Testing
Meaning:
Dynamic testing means testing by executing the software to check its behavior, logic, and output.
It focuses on how the software performs when it runs.
Purpose:
To verify that the software produces correct outputs for given inputs.
Activities Involved:
Usually performed by testers or QA engineers during di erent testing levels like unit, integration, and system
testing.
Advantages:
Example:
Executing a login program with valid and invalid usernames to check if it allows correct users and rejects
wrong ones.
The V-Model (also called the Verification and Validation Model) is an improved version of the Waterfall
Model.
It shows how development phases (on the left side) are linked with testing phases (on the right side) —
forming the shape of the letter “V”.
It means that for every development activity, there is a matching testing activity.
This ensures that testing starts early and runs in parallel with development.
The overall system architecture and high-level design are created in this phase.
Corresponding System Test Cases are designed to test the system as a whole.
The software is divided into smaller modules, and their communication (interfaces) is designed.
Integration Test Cases are planned to ensure all modules communicate properly.
Developers write and compile the code according to the design documents.
Once coding is done, the testing phases on the right side of the V begin.
o The stage where verified designs are turned into executable code, which is then validated
through various tests.
Not suitable for projects where requirements are not clearly defined.
The success of a software project depends on four key elements collectively called the 4 P’s of Project
Management:
1. People
Meaning:
People are the most important resource in any software project.
Without skilled and motivated people, even the best tools and plans will fail.
Key Roles:
In short:
Good teamwork, clear communication, and proper responsibility distribution among people ensure project
success.
2. Product
Meaning:
The product defines what needs to be built — i.e., the software itself and all associated deliverables (like
documents, user manuals, and reports).
Key Points:
In short:
A well-defined product ensures that everyone knows exactly what the final software should do.
3. Process
Meaning:
The process is the framework or methodology used to plan, design, develop, test, and maintain the
software.
Key Points:
The process should be chosen based on project size, time, and risk level.
In short:
A good process guides the team from start to finish in an organized way, ensuring quality and timely delivery.
4. Project
Meaning:
The project refers to the actual planning, scheduling, and tracking of software development activities.
Key Activities:
In short:
Project management ensures that people, product, and process all work together e ectively to meet goals.
Meaning:
Before estimating time and cost, the size of the software must be measured.
“Size” refers to how much software needs to be built — the amount of code, functionality, or user features.
Software size estimation is the process through which we estimate the size of the software to be developed.
We use it to determine software costs. Hence, tight size estimates are critical for correct cost estimates. Our
project can run behind schedule or exceed its budget if they are way o .
Meaning:
This method estimates the size of the software by counting the number of lines of source code written for
the program.
Formula:
Kilo Lines of Code (KLOC)
Productivity =
E ort (Person-Months)
Types:
Advantages:
Disadvantages:
Example:
If a project has 20,000 lines of code (20 KLOC) and past records show 500 LOC per person-month,
then estimated e ort = 20,000 / 500 = 40 person-months.
Definition:
In this method, the number and type of functions supported by the software are used to calculate the
Function Point Count (FPC).
It measures the functionality of the software from the user’s point of view, not the code size.
External Enquiries (EQ) Functions that perform data retrieval from the system.
Internal Logical Files (ILF) Logical files maintained within the system.
External Interface Files (EIF) Logical files of other applications used by our system.
Each function type is categorized as low, avg, or high based on its complexity.
EI (Inputs) 3 4 6
EO (Outputs) 4 5 7
EQ (Inquiries) 3 4 6
Multiply the count of each function type with its weighting factor.
EI contribution:
5 × 3 (Low) + 4 × 4 (Avg) + 1 × 6 (High) = 15 + 16 + 6 = 37
EO contribution:
3 × 4 + 3 × 5 = 12 + 15 = 27
EQ contribution:
0 × 3 + 4 × 4 + 0 × 6 = 16
ILF contribution:
0 × 7 + 2 × 10 + 1 × 15 = 0 + 20 + 15 = 35
EIF contribution:
2 × 5 = 10
Add all weighted values to get the UFP (Unadjusted Function Points).
UFP = 37 + 27 + 16 + 35 + 10 = 125
Use the 14 General System Characteristics (GSCs) such as data communication, performance,
transaction rate, end-user e iciency, etc.
The VAF adjusts the UFP value according to the complexity of the system.
Introduction
A Risk Management Plan (also called Plan Risk Management) is a document that helps to foresee risks,
estimate their impact, and define responses before they occur.
It is part of project planning and helps ensure that the software project does not fail unexpectedly.
A risk is an uncertain event or condition that, if it occurs, can have a positive or negative e ect on a project’s
objectives.
3 Risk Management and Monitoring Track and handle risks during the project
1) Risk Identification
Meaning:
This step lists all possible risks that may a ect the project.
Risks can come from technical, human, organizational, or environmental sources.
Meaning:
After identifying risks, the next step is to analyze how likely each risk is and how severe its e ect could be.
Main Factors:
Probability (P): How likely the risk will occur (High, Medium, Low).
Impact (I): The e ect on project goals if it happens (High, Medium, Low).
𝑅𝐸 = 𝑃𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡𝑦 × 𝐼𝑚𝑝𝑎𝑐𝑡
This helps in ranking risks and deciding which ones need immediate attention.
Meaning:
Once the project starts, risks must be tracked and reviewed regularly.
Monitoring checks whether a risk is becoming more or less likely, and ensures that mitigation steps are being
applied.
Objectives of Monitoring:
Meaning:
Risk mitigation means taking steps to reduce the chance of the risk happening or minimize its e ect if it
does happen.
Risk Refinement:
Breaking down large or general risks into smaller, manageable parts and defining specific actions for each.
Example:
If “hardware crash” is a risk:
Introduction
The RMMM Plan (Risk Mitigation, Monitoring, and Management) is a formal part of the software project
plan.
It defines how risks will be handled throughout the life cycle of the project — from identifying them to
tracking and controlling them.
In simple words:
“RMMM is a plan that helps a software team avoid problems (mitigation), watch for warning signs
(monitoring), and handle issues if they actually occur (management).”
Can be part of the main software project plan, or kept as a separate document.
The first and best step — try to prevent the risk from occurring.
2. Risk Monitoring
It is a continuous activity that tracks risk indicators to see whether the risk is becoming more or less
likely.
Example:
For a sta turnover risk:
This step assumes that the risk has occurred and mitigation has failed.
Example:
If system crashes and data is lost despite backups:
Note: Risk management activities usually add cost, so project managers perform a cost-benefit analysis to
check if the cost of applying controls is worth the benefits gained.
Requirement Get written sign-o Watch for client Negotiate new schedule and
Change before development. change requests. budget with client.
Why RMMM Plan is Important
Introduction
Project scheduling is a part of Software Project Management that deals with planning and organizing
project activities so they can be completed on time and within resources.
It defines what tasks are to be done, who will do them, and when they will be completed.
The goal of scheduling is to ensure smooth workflow, timely delivery, and balanced workload across all
team members.
Software project scheduling is built on a few key principles that help the project manager organize the project
e ectively.
1. Compartmentalization The project should be divided into small, manageable parts — tasks or
activities. This makes it easier to track and manage. Both the product
(software) and the process (development steps) are broken down into
parts.
2. Interdependency The relation between tasks should be identified — which tasks depend on
others, which can run parallel, and which must wait. Example: Testing can
start only after coding is done.
3. Time Allocation Each task should have a clear time limit — a start date, end date, and
e ort hours. This ensures all tasks fit within the overall project timeline.
4. E ort Validation Total work assigned should match the available sta strength. The
manager ensures no one is overbooked or underused.
5. Defined Responsibilities Every task must be assigned to a specific team member, so accountability
is clear.
6. Defined Outcomes Each task should have a clear output (e.g., a document, a tested module,
or a feature). This helps measure progress.
7. Defined Milestones Important points or checkpoints in the project should be identified as
milestones — for example, “Design Completed” or “Testing Started.”
Each milestone ensures the project is on the right track.
A well-scheduled project is divided into small parts, linked correctly, timed properly, given to the right people,
and reviewed regularly through milestones.
Meaning:
Work Breakdown Structure is a hierarchical decomposition of the total project into smaller, more
manageable parts.
It helps the project manager understand the scope of work, assign resources e iciently, and track progress.
A good WBS is considered essential for the success of software project development. The primary purpose
of a WBS is to break down a large project into smaller, more manageable tasks. It serves as a foundation for
project planning and provides the basis for:
1. Identify Final Deliverables: First, the desired final results of the project are identified.
2. Define Major Steps: The project is then broken down into major steps, which form the main framework.
3. Decompose into Smaller Tasks: Each major step is further analyzed and broken into smaller tasks
required for its completion.
4. Continue Decomposition: This process of breaking down tasks into even smaller component tasks
continues until the work can be estimated and assigned to an individual
Advantages of WBS:
Meaning:
An Activity Network is a visual representation showing how project tasks are connected and the order in
which they must be completed.
These help identify critical paths, i.e., the longest path through the network which determines the minimum
completion time of the project.
Critical Path: The longest sequence of tasks which cannot be delayed without delaying the entire
project.
Project tracking is the process of monitoring and controlling a software project to ensure it proceeds
according to the planned schedule, budget, and objectives.
It helps project managers measure progress, compare actual results with expected results, and make
corrections if delays or cost overruns occur.
1. Timeline Charts
3. Gantt Charts
Timeline Charts
Definition
A Timeline Chart is a graphical representation of the project schedule that shows the sequence of tasks or
activities over time.
Each activity is represented as a horizontal bar drawn according to its start and end dates.
It helps visualize how di erent phases of the project overlap and when each phase should start and end.
Characteristics
Provides a macro view of project phases such as Communication, Planning, Design, Coding, and
Testing.
6. Mark milestones (♦) for important checkpoints such as SRS completion or delivery.
Advantages
Disadvantages
Microsoft Project
Smartsheet
GanttProject
In short:
A Timeline Chart gives a simple visual of project activities along a time scale, showing when each task starts
and ends, helping managers ensure everything is on track.
Definition
Earned Value Analysis (EVA) is a quantitative project tracking technique used to measure a project’s
performance and progress by comparing planned work, actual work done, and budgeted cost.
It helps to answer:
Characteristics
o BCWP (Budgeted Cost of Work Performed) – Earned value of actual work done.
Indicates project e iciency and health using performance indexes (SPI, CPI).
3. Compute BCWP: Multiply percentage of completed work with total planned cost.
4. Calculate Variances:
o Schedule Variance = BCWP − BCWS
5. Compute Indexes:
6. Interpret Results:
Advantages
Disadvantages
Not very helpful when work progress is subjective (like design quality).
Primavera P6
Smartsheet
ProjectLibre
In short:
EVA is a cost and schedule tracking method that uses planned value, earned value, and actual cost to
measure project performance and forecast completion.
Gantt Charts
Definition
A Gantt Chart is a detailed project scheduling tool that represents activities and their progress on a time
scale using horizontal bars.
It was developed by Henry L. Gantt and is one of the most popular project management tools.
It provides a visual summary of tasks, durations, dependencies, and milestones.
Characteristics
Each activity is represented by a horizontal bar; its length shows task duration.
Vertical axis lists project activities; horizontal axis shows time (days, weeks, months).
6. Add milestones (♦) for major deliverables (e.g., SRS, testing, delivery).
Advantages
Disadvantages
Microsoft Project
GanttProject
TeamGantt
ClickUp / [Link]
Smartsheet
Developed by DuPont Company (1957) Developed by U.S. Navy (1958) for the
2. Developed By
for chemical plant maintenance. Polaris missile project.
CPM helps to control both time and cost. PERT helps to control time and manage
9. Focus of Control It allows cost optimization by allocating risk. It focuses on ensuring timely
extra resources to critical activities. completion under uncertainty.
Includes cost analysis — cost can be Does not include cost analysis —
11. Cost
adjusted by “crashing” activities to focuses mainly on time estimation and
Consideration
shorten project time. probability.
13. Estimation High accuracy since time values are Lower accuracy since time values are
Accuracy known. estimated.
To reduce total project cost and duration To reduce project time uncertainty and
16. Main Objective
through proper time-cost trade-o . improve time estimation reliability.
18. Nature of Deterministic analysis (fixed, known Probabilistic analysis (uncertain, uses
Analysis values). expected time and variance).
Less useful for risk analysis (no Very useful for risk and uncertainty
21. Risk Analysis
uncertainty). analysis.
22. Slack / Float Float time can be calculated: Float = Float is also calculated, but it includes
Calculation Latest Start – Earliest Start probabilistic time estimates.
Used for well-structured projects like Used for new development projects
23. Use in Software
maintenance, upgrades, or where task durations are not well-
Projects
enhancement. known.
The main goal is to plan, organize, The main goal is to verify and assure that
2. Purpose and control all quality-related the process used to develop software is
activities within a project. e ective and consistent.
11. Focus on Prevention: focuses on setting up Assurance: focuses on verifying that the
Prevention or proper processes to prevent quality process works correctly to avoid
Detection issues. defects.
Quality management tools like ISO QA tools like Test Management Systems,
15. Tools Used 9001, Six Sigma, CMMI, and Quality Review Checklists, and Defect Tracking
Auditing tools. tools (e.g., JIRA, Bugzilla).
SQA is a subprocess under SQM. SQA works within the SQM framework
19. Dependency SQM depends on SQA feedback for and ensures its processes are correctly
improvement. followed.
Software Quality means that the software product meets its specified requirements and also satisfies
user expectations in terms of performance, reliability, and usability.
In simple words, a high-quality software is one that works as intended, is easy to maintain, performs
e iciently, and fulfills customer needs.
Hence, maintaining balance between both is the main goal of Software Quality Assurance.
Definition of Software Quality Assurance (SQA)
Software Quality Assurance (SQA) is a systematic process that ensures the software being developed
meets the required quality standards and follows the defined software process.
It includes:
Purpose:
This is the first phase where a complete SQA Plan is prepared before development begins.
It defines how quality will be managed, measured, and controlled throughout the project.
Main Objectives:
Prepare a Software Quality Assurance Plan (SQAP) as part of the project plan.
Example:
In a payroll system project, the SQA plan may specify following ISO 9001 standards and require two design
reviews before coding begins.
Purpose:
This phase involves the execution of SQA tasks as defined in the SQA plan.
The SQA group performs various activities to ensure the software process complies with standards.
1. Participate in process definition: Review project’s software process for compliance with company
policy and standards.
2. Review software engineering activities: Ensure development tasks follow the defined process.
3. Audit work products: Verify they meet specified standards.
4. Document and track deviations: Note any non-compliance and ensure corrections are made.
5. Provide feedback: Communicate quality findings and suggestions to the project team and
management.
Example:
During design phase, the SQA team verifies that UML diagrams follow company’s naming and documentation
rules.
Purpose:
To formally check and evaluate if the software project activities and products adhere to defined standards
and processes.
Description:
Example:
An audit may find that some test cases were not executed as per the SQA plan, leading to a corrective action
and re-audit.
Purpose:
To analyze results, measure quality performance, and ensure that deviations are resolved and overall
product quality improves.
3. Identify Indicators – Set quality indicators (like defect density or code complexity).
4. Analyze and Compare Results – Compare actual results with expected outcomes.
6. Record and Report Findings – Share results with project management and senior leadership.
Example:
If coding standards violations are detected frequently, the SQA team recommends extra peer reviews or
automated code quality tools.
1. Planning Defines quality goals, standards, and prepares SQA plan SQA Plan Document
before development begins.
2. Activities Implements SQA tasks and monitors compliance with Compliance Reports
the defined process.
4. Review & Analyzes results, identifies issues, and ensures Review & Management
Reporting continuous quality improvement. Reports
Six Sigma
Definition:
Six Sigma is a quality improvement strategy that focuses on reducing defects and errors in a process to
produce near-perfect results.
It aims to make every process e icient, predictable, and consistent by identifying the causes of problems
and eliminating them.
In simple words, Six Sigma means improving process performance by reducing variation and ensuring that
products or services meet customer expectations every single time.
Six Sigma follows two main methodologies based on the type of process — DMAIC and DMADV.
A) DMAIC Methodology
1. Define:
In this phase, the problem and project goals are clearly defined.
The team prepares project charters, process maps, and flowcharts to understand how the current system
works.
2. Measure:
The existing process performance is measured using data.
It involves identifying key performance indicators and collecting measurements related to process e iciency,
error rate, and customer satisfaction.
3. Analyze:
In this stage, the team studies the collected data to find the root cause of defects or variations.
Statistical tools like process capability analysis and control charts may be used to understand where
problems occur.
4. Improve:
Once the root cause is known, improvements are planned and implemented.
Techniques such as risk analysis, simulation, and design of experiments are used to find the best solutions
that reduce errors.
5. Control:
The final step ensures that the new and improved process remains consistent over time.
Process control systems, monitoring charts, and periodic reviews are used to maintain performance.
Use:
DMAIC is applied when a company already has an existing process that needs to be optimized or improved.
B) DMADV Methodology
1. Define:
The team defines the project’s purpose, goals, and customer needs.
2. Measure:
It collects detailed information about customer requirements and expectations for the new product or
process.
3. Analyze:
Di erent design options are analyzed to determine how best to meet the customer’s needs and achieve
performance goals.
4. Design:
A new process or product is designed that meets the quality and performance expectations identified earlier.
5. Verify:
The new design is tested and verified to ensure it performs correctly and meets customer satisfaction.
Use:
DMADV is applied when a new product or process needs to be designed with built-in quality from the start.
Goal Reduce variation and errors Create high-quality and predictable systems
Definition:
CMMI stands for Capability Maturity Model Integration.
It is a process improvement framework developed by the Software Engineering Institute (SEI) to help
organizations improve their software development and management processes.
CMMI describes how mature and capable an organization’s processes are in delivering quality software
consistently.
It provides a step-by-step improvement path, divided into five levels of maturity.
Basic project management practices are used. Projects can repeat past
Level 2 Repeatable
successes using documented plans and control.
2. Continuous Model:
Advantages of CMMI
Although both CMMI and ISO (International Organization for Standardization) are used for improving
software quality, they di er in scope, approach, and implementation.
CMMI compares the organization’s existing ISO requires organizations to adjust and
Implementation processes to industry best practices and document their existing processes
helps improve them. according to ISO standards.
CMMI mainly links processes with business ISO gives high importance to customer
Customer
goals; customer satisfaction is not a major satisfaction and continuous
Focus
ranking factor. improvement.
CMMI (Capability Maturity Model ISO (International Organization for
Aspect
Integration) Standardization)
CMMI is more rigid and technical, suitable ISO is flexible and generic, suitable for
Flexibility
for large software projects. all industries.