KEMBAR78
Software Engineering | PDF | Software Development Process | Software
0% found this document useful (0 votes)
14 views2 pages

Software Engineering

The document outlines the definitions and components of software, emphasizing the importance of documentation alongside programming. It discusses major issues in software development, such as poor requirements and weak project management, and details various software development methodologies including Waterfall, Incremental, Prototype, and Spiral models. Each model has its advantages and disadvantages, highlighting the need for careful planning and user feedback throughout the software development life cycle.

Uploaded by

cuday9517
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)
14 views2 pages

Software Engineering

The document outlines the definitions and components of software, emphasizing the importance of documentation alongside programming. It discusses major issues in software development, such as poor requirements and weak project management, and details various software development methodologies including Waterfall, Incremental, Prototype, and Spiral models. Each model has its advantages and disadvantages, highlighting the need for careful planning and user feedback throughout the software development life cycle.

Uploaded by

cuday9517
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
You are on page 1/ 2

○​ 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

You might also like