Unit 1 SE Notes
Unit 1 SE Notes
MODULE 1: OVERVIEW
Software is more than just a program code. A program is an executable code, which serves some
computational purpose. Software is considered to be a collection of executable programming code,
associated libraries and documentations. Software, when made for a specific requirement is called software
product.
Engineering on the other hand, is all about developing products, using well-defined, scientific principles and
methods.
Reference Notes
8. Scalability
• Design the system to handle increasing workloads or user demands.
• Ensures long-term usability of the software.
9. Robustness
• Software should handle unexpected situations gracefully.
• Prevents crashes and data loss due to user or system errors.
10. Efficiency
• Use resources (CPU, memory, storage) wisely.
• Ensures fast and optimized performance.
11. Portability
• Software should run on different platforms with minimal changes.
• Useful in cross-platform development.
12. Testability
• Software should be easy to test.
• Improves defect detection and validation of correctness.
13. Consistency
• Follow consistent naming, formatting, and logic across all modules.
• Reduces confusion and improves collaboration.
14. Documentation
• Maintain up-to-date and clear documentation.
• Helps new developers understand and maintain the system.
NEED OF SOFTWARE ENGINEERING
The need of software engineering arises because of higher rate of change in user requirements and
environment on which the software is working.
• Large software - It is easier to build a wall than to a house or building, likewise, as the size of software
become large engineering has to step to give it a scientific process.
• Scalability- If the software process were not based on scientific and engineering concepts, it would be
easier to re-create new software than to scale an existing one.
• Cost- As hardware industry has shown its skills and huge manufacturing has lower down the price of
computer and electronic hardware. But the cost of software remains high if proper process is not adapted.
• Dynamic Nature- The always growing and adapting nature of software hugely depends upon the
environment in which the user works. If the nature of software is always changing, new enhancements need
to be done in the existing one. This is where software engineering plays a good role.
Reference Notes
• Quality Management- Better process of software development provides better and quality software
product.
Ethics To Be followed:
Principle Meaning / Description (in simple words)
Privacy & Data Always protect users’ personal information. Don’t collect or share more than
Protection necessary and ensure it is stored securely.
Design software to prevent misuse, hacking, or data leaks. Regularly update and
Security
test for vulnerabilities.
Transparency & Be clear about how the software works and how data is used. Take
Accountability responsibility for mistakes or failures.
Think about how your software affects society. Don’t create tools that could
Societal Impact
harm or manipulate people.
Safety in Software Design software that avoids physical, emotional, or financial harm. Always
Design consider user safety first.
Respect others’ code, ideas, and digital content. Never use or copy without
Intellectual Property
permission or proper licensing.
CHARACTERESTICS OF GOOD SOFTWARE: A software product can be judged by what it offers and
how well it can be used. This software must satisfy on the following grounds:
Operational
This tells us how well software works in operations. It can be measured on:
• Budget
• Usability
• Efficiency
• Correctness
• Functionality
• Dependability
• Security
• Safety
Transitional
This aspect is important when the software is moved from one platform to another:
Reference Notes
• Portability
• Interoperability
• Reusability
• Adaptability
Maintenance This aspect briefs about how well a software has the capabilities to maintain itself in the
everchanging environment:
• Modularity
• Maintainability
• Flexibility
• Scalability
That mean all the activities required to make a software product transit through its life cycle phases. It also
captures the order in which these activities are to be undertaken.
Need for a Software Life Cycle Model
1. Provides a Structured Approach
Ensures software development is done in a systematic and disciplined way.
2. Avoids Confusion in Teamwork
All team members know what to do and when, avoiding chaos in the development process.
Reference Notes
3. Defines Clear Phases
Each phase (e.g., Requirements, Design, Coding, Testing) has entry and exit criteria.
A phase only begins when the previous one is properly completed.
4. Improves Coordination
All members follow the same sequence, improving communication and coordination.
5. Prevents Project Failure
Without a model, developers may work randomly (e.g., one codes first, another tests first),
leading to disorder and failure.
6. Helps in Project Monitoring
Project managers can track progress easily and ensure each phase is completed on time.
7. Ensures Quality Control
Entry/exit criteria allow review and validation at every stage, improving overall quality.
8. Enables Better Planning
Helps in estimating time, cost, and resources for each phase effectively.
Feasibility study - The main aim of feasibility study is to determine whether it would be financially
and technically feasible to develop the product.
1. Requirements
Objective: Understand and document what the client needs.
Activities:
o Gather functional and non-functional requirements.
o Performs Feasibility Study.
o Conduct stakeholder interviews and surveys.
o Create a Software Requirements Specification (SRS) document.
Output: Clear and complete requirement specifications.
Reference Notes
2. System Design
Objective: Plan the overall software architecture.
Activities:
o High-level design (architecture, database design).
o Low-level design (module design, data structures, algorithms).
o Define hardware and software requirements.
Output: Design documents, UML diagrams, and interface designs.
3. Implementation (Coding)
Objective: Convert design into working software.
Activities:
o Developers write code using appropriate programming languages.
o Code is developed according to design specifications.
o Follow coding standards and use version control.
o Unit testing will be performed.
Output: Source code for each module.
6. Maintenance
• Objective: Correct and improve the system after deployment.
• Activities:
o Bug fixing (corrective maintenance).
o Enhancing features (perfective maintenance).
Reference Notes
o Adapting to new environments (adaptive maintenance).
• Output: Updated and improved software system.
Incremental Model
1. Requirements
Reference Notes
Each Increment Follows These Phases:
2. Analysis
3. Design
4. Implementation
5. Testing
6. Deployment
Reference Notes
7. Maintenance
Disadvantages
Prototype Model
Reference Notes
The prototype model is a software development approach where a working model of the software (a
prototype) is built quickly to understand requirements better. It allows continuous feedback from users before
the final system is developed.
Reference Notes
Disadvantages of Prototype Model
Spiral Model
The Spiral Model is a combination of the waterfall model, iterative model and the Prototype Model. It
provides support for Risk Handling.
The Spiral Model is a software development process that develops the system in repeated cycles (spirals).
Each cycle goes through planning, risk analysis, engineering, and evaluation to ensure continuous
improvement and risk management.
1. Requirements Planning
3. Engineering / Development
Reference Notes
V – Model
The V-Model (Verification and Validation Model) is a sequential software development process where each
development phase is directly associated with a testing phase. It emphasizes that testing starts in parallel with
development activities.
The V shape represents the relationship between the left side (Verification) and the right side (Validation).
1. Requirement Analysis
2. System Design
5. Coding
6. Unit Testing
o Based on LLD.
7. Integration Testing
o Based on HLD.
8. System Testing
9. Acceptance Testing
Advantages of V-Model
Disadvantages of V-Model
Reference Notes
4. No working software is produced until late in the cycle.
Cyclical with
Linear, Development is
Build a repeated
sequential done in Similar to Waterfall but
prototype first, phases
phases from increments, each development phase
Process Flow refine based on (planning, risk
requirements each adding has a corresponding
feedback until analysis,
to new testing phase.
final product. engineering,
maintenance. functionality.
evaluation).
When product
When When
can be When project
requirements requirements When requirements are
delivered in is high-risk,
When to Use are well- are unclear & clear & high emphasis on
parts & complex, or
defined & need verification/validation.
priorities costly.
stable. validation.
change.
Reference Notes
Waterfall Incremental Prototype
Aspect Spiral Model V-Model
Model Model Model
Delivered in Prototype
Delivered after
Delivered once functional parts delivered early, Delivered at the end after
Delivery each cycle’s
at the end. after each final product verification.
completion.
increment. later.
Lower than
Moderate;
Waterfall; Low in early
Cost of Very high in changes High if changes occur
changes stages,
Changes later stages. possible every after verification starts.
possible in new increases later.
iteration.
increments.
Web Military,
Banking UI-heavy
applications, aerospace,
Example Use systems, ERP, systems, R&D Medical devices, safety-
mobile apps large-scale
Cases embedded projects, proof critical systems, avionics.
with evolving government
software. of concept.
features. projects.
Process activities
Simple
Step Detailed Explanation Example
Meaning
Reference Notes
Simple
Step Detailed Explanation Example
Meaning
and payment
module.
Add “Wishlist”
Once delivered, the software is maintained
4. Software Updating and feature later
to fix bugs, improve features, or adapt to
Evolution improving because customers
new needs. This is ongoing throughout the
(Maintenance) after release. requested it; fix a
product’s life.
payment bug.
Simple
Step Detailed Explanation Example
Meaning
Reference Notes
Simple
Step Detailed Explanation Example
Meaning
Agile is a way of developing software (or products) that is flexible, quick, and customer-focused.
Instead of making the whole product in one go (like Waterfall), Agile makes it step-by-step in small
parts called iterations.
In simple way if I am working on application which is used to maintain Feedback, I will write a
prototype and build it, then I will release it, later I will collect the feedback from client or users, I
will implement changes or I will use advance features in it.
Reference Notes
• Change the plan anytime if needed.
Agile principles
8. Sustainable pace
Work at a steady rate that can be kept long-term avoid burning out the team.
1. Idea / Vision
Someone (client or stakeholder) decides what product to make and what problem it should
solve.
Reference Notes
2. Make a To-Do List (Product Backlog)
Write down all features, fixes, and improvements. This is a priority list.
10. Repeat
Use the feedback, update the to-do list, and start the next sprint.
Example:
2-Week Sprint
• Before Sprint – Break big tasks into smaller ones and write clear “done” rules.
• Day 0 – Sprint Planning – Decide what you can finish in 2 weeks and set a sprint goal.
Reference Notes
o Build, test, and fix problems quickly.
• Day 11 – Sprint Review – Show the work to the client/stakeholders and get feedback.
• Day 12 – Retrospective – Team talks about improvements for the next sprint.
• After Sprint – Deploy if ready, update the to-do list, plan the next sprint.
A. Scrum
How it works:
1. Product The Product Owner creates a Product Owner lists: “Add product
Backlog prioritized list of all features, fixes, search,” “User login,” “Shopping cart,”
Creation and improvements. “Payment gateway,” etc.
Reference Notes
Scrum Step What Happens Example (E-commerce Website Project)
what they did yesterday, what they update feature, facing issue with quantity
will do today, and blockers. update.”
Team works on the Sprint Backlog Developers build login and cart features;
5. Development
items, collaborating and solving Scrum Master helps solve quantity update
Work
blockers with help of Scrum Master. bug.
At the end of the Sprint, the team Team shows working “User login” and
6. Sprint
demonstrates the completed work to “Shopping cart” in the live demo to the
Review
stakeholders for feedback. Product Owner.
8. Repeat Next The cycle repeats with new backlog Next Sprint focuses on “Payment
Sprint items. gateway” and “Product search.”
Pros:
• Encourages teamwork.
Cons:
Reference Notes
B. Kanban
How it works:
All tasks are listed on a Kanban board, Board shows: To Do – “User login,”
1. Visualize Work divided into columns like To Do → In “Shopping cart,” “Payment
Progress → Testing → Done. gateway.”
4. Work on Tasks Team works on items, moving them “User login” moves from In Progress
Continuously across columns as progress is made. → Testing after completion.
5. Review and As soon as a task reaches Done, it’s “User login” tested → moved to
Deliver ready for release (no waiting for a sprint Done → deployed live for users
Continuously to end). immediately.
Regular meetings (if needed) to discuss Team adds a new column Blocked
7. Continuous
process improvements and update for tasks waiting on third-party
Feedback Loop
board. approval.
Pros:
Reference Notes
• Visual system makes status clear.
Cons:
How it works:
2. Practices:
Example (E-commerce
XP Step What Happens
Website Project)
Reference Notes
Example (E-commerce
XP Step What Happens
Website Project)
Pros:
Reference Notes
Cons:
D. Lean
How it works:
Understand what the customer Customers want fast checkout and easy
1. Identify Value
really needs and focus on it. product search.
Ensure work moves smoothly Make sure adding to cart, payment, and
3. Create Flow
without delays or bottlenecks. confirmation happen without slow page loads.
Pros:
Reference Notes
• Adapts easily to change.
• Fast delivery.
Cons:
E. Crystal
How it works:
o Team size.
o Project type.
o Urgency.
Example (E-
Crystal Step What Happens commerce Website
Project)
Reference Notes
Example (E-
Crystal Step What Happens commerce Website
Project)
Developers choose
Trust skilled people to choose
5. Prioritize People their own testing
the best tools and methods for
Over Processes framework instead of
the job.
being forced into one.
Developer reports a
Encourage open discussion
7. Maintain Safety payment bug without
without blame to solve
in Work fear of criticism, and
problems.
team fixes it together.
Pros:
Reference Notes
• Encourages direct communication.
• Less paperwork.
Cons:
How it works:
Reference Notes
Example (E-commerce Website
DSDM Step What Happens
Project)
Pros:
Cons:
Reference Notes
Differences Between Agile methods
Fixed Medium
Product Predictabl Hard to
short Team (changes
Backlog → Projects with e delivery, change
cycles roles & mostly
Scrum Sprint clear short- strong mid-sprint,
(Sprints: regular after
Backlog → term goals team many
2–4 feedback sprint
Sprint structure meetings
weeks) ends)
Limit No
Continuo Visual board Very Support,
work in Simple, deadlines
us (no (To Do → High maintenance,
Kanban progress visual, can slow
fixed Doing → (change continuous
, smooth flexible pace, less
cycles) Done) anytime) work
flow structure
Short High
Test-first
cycles + High- (frequent Fewer Needs
Extreme coding, pair Software
continuou quality releases bugs, easy skilled
Programmi programming, needing high
s clean allow to change, devs, can
ng (XP) frequent reliability
integratio code quick clean code be tiring
releases
n changes)
Can cut
Saves
Flexible Remove Efficien Projects too much,
time/mone
Lean small waste, deliver cy & High needing speed needs
y, adapts
deliveries value fast value & cost control disciplined
fast
team
Reference Notes
Agile Timefra How Work is Key Flexibili Main Main
Best For
Method me Organized Focus ty Pros Cons
Very flexible — changes can be Rigid — changes are hard and costly
Flexibility
made anytime after starting
Delivery Deliver small parts early and often Deliver full product at the end
Customer High — client gives feedback Low — client usually sees product only
Involvement regularly at the end
Risk Handling Low risk — issues found early Higher risk — issues found late
Team
Daily or frequent meetings Limited to phase reviews
Communication
Best For Projects with changing requirements Projects with clear, fixed requirements
Reference Notes
Feature Agile Method Waterfall Model
Building an app where features can Building a bridge where design can’t
Example
change often change mid-way
Characteristics
• Upfront planning: All requirements are gathered and documented before coding begins.
When to use?
Advantages
Disadvantages
Example
Reference Notes
• Building a railway system → You cannot keep changing requirements midway, everything
must be fixed early.
Characteristics
• Incremental development: Work is divided into small iterations (sprints, usually 1–4 weeks).
• Customer involvement: Customers review product after each iteration and give feedback.
• Working software focus: Deliver a small but working product quickly, then improve it step
by step.
When to use?
Advantages
Flexible to changes.
Customer satisfaction (continuous involvement).
Faster delivery of working features.
Problems are detected early (testing in every iteration).
Disadvantages
Example
• Developing a mobile app → You can release version 1 with basic features, then add more
features based on user feedback.
Reference Notes