○ Exists as code and operates within digital
Program: A set of step-by-step instructions written in a systems.
programming language to perform a specific task.
Major Issues in Software Development
Software: A complete package that includes one or more
programs plus proper documentation such as requirement
● Poor Requirements: Incomplete/unclear needs,
analysis, design, coding, testing, installation guide, and user
weak stakeholder communication.
manuals.
● Weak Project Management: Bad planning, risk
handling, wrong tools/tech.
Formula: ● Time & Budget Limits: Unrealistic deadlines,
Software = Program + Documentation poor resource use.
● Lack of Skills: Inexperienced team, high attrition.
Software Components ● Resistance to Change: Hard to adapt to new
tech/processes.
Software consists of more than just a program—it includes all
necessary documentation and operational guidelines. Software Quality Attributes
1. Program: The core executable logic written in ● Correctness: Performs intended tasks accurately.
code. ● Usability: Easy to learn and use.
2. Documents: Written materials related to the ● Reliability: Consistent, error-free operation.
software. ● Efficiency: Optimal use of resources.
3. Software Documentation: Includes all ● Maintainability: Easy to update and fix.
descriptions, code, graphics, and instructions ● Portability: Works across platforms.
related to: ● Scalability: Handles growth smoothly.
○ Design ● Security: Protects against threats.
○ Coding ● Modularity: Organized into manageable parts.
○ Testing ● Reusability: Components usable elsewhere.
○ Software preparation ● Testability: Easy to verify functionality.
4. Operating Procedures (User & Operational
Manuals):
○ Explain what the software is Software Process (Software Methodology)
○ Guide on installation
○ Describe how to use and control the A set of activities for creating or modifying software.
software
Key Phases:
Note: A program becomes software only when
documentation and operating procedures are included. 1. Feasibility Study
○ Check financial & technical viability
○ Analyze cost-benefit, resources,
Software Engineering alternatives
2. Requirement Analysis & Specification
Definition: ○ Understand & document user needs
The systematic application of engineering principles and ○ Produce SRS (Software Requirement
methods to the design, development, testing, and Specification)
maintenance of software products. ○ Critical phase — errors here affect all later
stages
Purpose: 3. Designing
○ Convert requirements into system
● To deliver high-quality software architecture
● That is on time, within budget, and ○ Focus on coupling & cohesion
● Meets user requirements ○ Output: SDD (Software Design
Description)
4. Coding
Characteristics of Software Development ○ Translate design into actual code
○ Maintainable, readable code is essential
1. Development vs. Manufacturing: 5. Testing
○ Software is developed, not manufactured. ○ Identify and fix bugs
○ It is created through coding and design, ○ Ensure software works as intended
not produced on an assembly line. 6. Implementation
2. No Physical Wear and Tear: ○ Deploy software, provide training, check
○ Software doesn't physically degrade over hardware needs
time. 7. Maintenance (Post-release changes)
○ Performance issues are usually due to bugs ○ Adaptive: Environment changes
or outdated code, not usage wear. ○ Corrective: Fix defects
3. Custom-Built Nature: ○ Perfective: Improve features
○ Most software is tailored to specific
requirements.
○ Often involves unique coding and design, SDLC (Software Development Life Cycle)
not just assembling existing parts.
4. Intangibility: ● A structured approach to software development.
○ Software is non-physical—it can’t be ● Defines entry/exit criteria for each stage.
touched or seen like hardware. ● Enables better planning, fault detection,
cost/time estimation, and scheduling.
● Choosing the right model (e.g., Waterfall, Agile) is ● Handles risks early
key to project success. ● Supports incremental releases
● Better quality, cost, and schedule control
Waterfall Model (Classical Life Cycle)
Disadvantages:
● Linear & sequential model; each phase depends
on the previous. ● Not suitable for small projects (high cost)
● Best for small to medium projects with clear, ● Complex and time-consuming
fixed requirements. ● Needs expertise for risk analysis
● Created by Winston W. Royce in the 1970s.
Incremental Model
Advantages:
● System built in small modules (increments)
● Simple, easy to use and manage ● Each increment goes through requirements →
● Clear phases with defined inputs/outputs design → code → test
● Low cost, easy to schedule ● User feedback drives improvement across
versions
● Early delivery of working software, adding
Disadvantages: features step-by-step
● Mix of Waterfall + Prototyping benefits
● Rigid – hard to handle changes once started
● Late working version Advantages:
● Not ideal for large or evolving projects
● High risk and uncertainty ● Delivers software early
● Flexible to change
Prototype Model ● Easier to test/debug per module
● Lower risk, manageable in parts
● Iterative approach: Build a working mock-up ● Customer feedback after each build
with limited features based on current
requirements. Disadvantages:
● Refined through user feedback until satisfaction
→ then final SRS is created. ● Needs solid planning/design upfront
● Full system must be clearly defined early
Types: ● Higher total cost than Waterfall
● Evolutionary Prototype:
○ Gradually evolves into the final product
○ Good for changing requirements
● Throwaway Prototype:
○ Built to explore/test ideas, then
discarded
○ Helps reduce risk for complex features
Advantages:
● Early feedback from users
● New requirements can be added
● Reduces development risk
Disadvantages:
● Users may expect final system early
● Process may drag if not controlled
● Risk of user losing interest if delays occur
Spiral Model
● Introduced by Barry Boehm in 1986
● Combines iterative development with risk
analysis
● Each loop = one phase (4 sectors):
1. Objective setting & planning
2. Risk analysis
3. Engineering & testing
4. Customer evaluation
● Radial axis = cost; angular axis = progress
Advantages:
● Early & frequent customer feedback