0% found this document useful (0 votes)
19 views6 pages

Unit 1

Software engineering is the systematic application of engineering principles to develop high-quality software that meets user needs. It distinguishes between programs, which are often simple and personal, and software products, which are complex and require documentation and support. The Software Development Life Cycle (SDLC) outlines the structured phases for planning, developing, testing, deploying, and maintaining software to ensure quality and efficiency.

Uploaded by

5002mani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views6 pages

Unit 1

Software engineering is the systematic application of engineering principles to develop high-quality software that meets user needs. It distinguishes between programs, which are often simple and personal, and software products, which are complex and require documentation and support. The Software Development Life Cycle (SDLC) outlines the structured phases for planning, developing, testing, deploying, and maintaining software to ensure quality and efficiency.

Uploaded by

5002mani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

1 Software Engineering

1 a Definition – Software engineering is the systematic application of engineering


principles, methods, and tools to the development and maintenance of high-quality
software systems

1 b Purpose – To produce reliable, efficient, maintainable, and cost-effective


software that meets user needs

2 Programs vs Software Products

2 1 Program
a Developed for personal use or a limited audience
b Focused mainly on functionality, little or no documentation
c Example A student writing a calculator app for their own use

2 2 Software Product
a Developed for commercial or organizational use by multiple users
b Includes documentation, support, and maintenance
c Must meet quality standards and work across environments
d Example MS Word, billing software for a company
Aspect Program Software Product
A small, single-purpose A comprehensive solution built via all
Definition
set of instructions SDLC stages (GeeksforGeeks)
Very quick (minutes to Much longer (months to years)
Development Speed
a day) (Bench Partner, Shiksha)
Extensive: user manuals, design
Minimal, often just
Documentation docs, training materials (Ahir Labs,
code comments
Shiksha)
Development Systematic, planned, follows SDLC
Ad-hoc, unstructured
Approach (Ahir Labs, GeeksforGeeks)
Experienced team with roles for
Single developer or
Developer Team design, QA, documentation (Ahir
very small team
Labs, GeeksforGeeks)
Usually the developer Multiple end users, clients, or public
User Base
themselves (Ahir Labs, Bench Partner)

Limited testing,ad-hoc Thorough testing & QA ensure


Reliability & Testing
reliability reliability (Ahir Labs, Bench Partner)

Features & Simple, limited Rich, multi-featured, complex


Complexity functionality features (Ahir Labs, Shiksha)
Often no UI or very Full GUI or CLI with polished design
User Interface
basic (Ahir Labs, Shiksha)
Large (MB to GB), many integrated
Size & Scope Small (KB to few MB)
components (Ahir Labs, Shiksha)
Address broader problems, packaged
Purpose Solve a specific task for distribution (GeeksforGeeks,
Wikipedia)
Ongoing support, updates,
Minimal or one-time
Maintenance maintenance cycles (GeeksforGeeks,
use
Wikipedia)

Characteristics of Software Product


1 Correctness – The software must perform exactly as per the specified requirements
and solve the intended problem without errors

2 Reliability – The ability of the software to operate without failure under given
conditions for a specified period

3 Efficiency – Optimal use of system resources such as CPU time, memory, and
network bandwidth

4 Integrity – Protection of the software from unauthorized access or modification,


ensuring data security

5 Usability – The ease with which end-users can learn, operate, and gain value from
the software

6 Maintainability – The ease with which the software can be modified to fix defects,
improve performance, or adapt to a changing environment

7 Testability – The extent to which the software can be tested to verify that it meets
requirements and is defect-free

8 Portability – The ability of the software to run on different hardware platforms or


operating systems with minimal changes

9 Reusability – The degree to which parts of the software can be used in other
applications with little or no modification

10 Interoperability – The capability of the software to interact and work with other
systems or products

Software Crisis

1 Definition – Software crisis refers to the set of problems faced during the
development and maintenance of software, especially as systems became larger and
more complex, leading to issues such as delays, cost overruns, and low quality

2 Causes
a Rapid increase in demand for complex software systems
b Inadequate project management and planning
c Lack of standardized development methods in early years
d Poor communication between stakeholders and developers
e Underestimation of complexity and resources needed
f Difficulty in managing changing requirements

3 Symptoms
a Software delivered late or over budget
b Software that fails to meet user requirements
c Low reliability and frequent failures
d High maintenance costs
e Incomplete or missing documentation
f Difficulty in adapting software to new needs or platforms

4 Impact
a Loss of customer trust and market reputation
b Increased costs for maintenance and bug fixes
c Wastage of development resources
d Reduced productivity of development teams

5 Solution Approaches
a Adoption of systematic software engineering practices
b Use of structured analysis and design methods
c Better project management techniques
d Improved requirement gathering and validation
e Emphasis on documentation and quality assurance
f Use of modern tools, techniques, and frameworks

Software Development Life Cycle (SDLC)

1 Definition
a SDLC is a structured sequence of stages that defines how software is planned,
developed, tested, deployed, and maintained
b It ensures that software is delivered systematically, with quality and efficiency

2 Objectives
a To deliver high-quality software that meets or exceeds customer expectations
b To complete projects within time and budget constraints
c To ensure maintainability, scalability, and reliability of the product

3 Phases of SDLC

a Requirement Analysis
i Identify and gather user needs
ii Document functional and non-functional requirements

b System Design
i Convert requirements into architecture and design specifications
ii Prepare data flow diagrams, ER diagrams, and interface designs

c Implementation (Coding)
i Translate design into source code
ii Follow coding standards and documentation practices

d Testing
i Verify that the system meets requirements
ii Identify and fix defects through unit testing, integration testing, and system testing
e Deployment
i Install and configure the software in the target environment
ii Provide user training and documentation

f Maintenance
i Perform bug fixes, updates, and enhancements after release
ii Adapt software to new requirements and environments

4 Importance of SDLC
a Provides a clear project roadmap
b Reduces risk of project failure
c Improves software quality and maintainability

Software Development Life Cycle (SDLC)

1 Definition
a SDLC is a structured sequence of stages that defines how software is planned,
developed, tested, deployed, and maintained
b It ensures that software is delivered systematically, with quality and efficiency

2 Objectives
a To deliver high-quality software that meets or exceeds customer expectations
b To complete projects within time and budget constraints
c To ensure maintainability, scalability, and reliability of the product

3 Phases of SDLC

a Requirement Analysis
i Identify and gather user needs
ii Document functional and non-functional requirements

b System Design
i Convert requirements into architecture and design specifications
ii Prepare data flow diagrams, ER diagrams, and interface designs

c Implementation (Coding)
i Translate design into source code
ii Follow coding standards and documentation practices

d Testing
i Verify that the system meets requirements
ii Identify and fix defects through unit testing, integration testing, and system testing

e Deployment
i Install and configure the software in the target environment
ii Provide user training and documentation
f Maintenance
i Perform bug fixes, updates, and enhancements after release
ii Adapt software to new requirements and environments

4 Importance of SDLC
a Provides a clear project roadmap
b Reduces risk of project failure
c Improves software quality and maintainability

You might also like