Definition of Software Engineering
Software Development Life Cycle (SDLC)
1. Definition of Software Engineering
Software Engineering is the systematic,
disciplined, and organized approach to the development, operation, testing,
maintenance, and management of software.
In simple words, software engineering means
applying engineering principles to develop high-quality software efficiently
and economically.
Objectives
of Software Engineering
To develop reliable and high-quality software.
To complete projects within time and budget.
To make software easy to maintain.
To satisfy user requirements.
To reduce errors and development costs.
2. Characteristics of Software
Software is different from physical products
such as computers or machines.
Important
characteristics:
Software is
intangible
Software cannot be physically touched. It
consists of programs, data, and documentation.
Software is developed, not manufactured
Hardware is manufactured, whereas software is
developed through programming and engineering activities.
Software
does not wear out
Software does not physically wear out like
hardware. However, it may become outdated or require modifications.
Software is
highly complex
Large software systems may contain thousands
or millions of lines of code.
Software is
easy to modify
Changes can be made to software to add new
features or fix problems.
Software
requires maintenance
Software needs corrective, adaptive,
perfective, and preventive maintenance.
Software is
mostly custom-built
Many software systems are developed according
to specific user or organizational requirements.
3. Software Crisis
Software Crisis refers to the problems faced
during the development of large and complex software systems, especially when
software development practices were not sufficiently systematic.
The term became prominent during the late
1960s, when software projects frequently suffered from delays, high costs,
failures, and poor quality.
Causes of
Software Crisis
Increasing complexity of software.
Poor project planning.
Inaccurate estimation of cost and time.
Lack of proper requirements.
Poor communication between users and
developers.
Lack of proper testing.
Frequent changes in requirements.
Inadequate documentation.
Shortage of skilled developers.
Symptoms of
Software Crisis
Projects are completed late.
Development costs become very high.
Software contains many errors.
Software does not satisfy user requirements.
Software is difficult to maintain.
Projects may be completely cancelled.
Solution to
Software Crisis
Software engineering provides systematic methods
such as:
Proper requirement analysis.
Software development methodologies.
Project planning and management.
Testing and quality assurance.
Documentation.
Software maintenance.
Use of appropriate tools and standards.
4. Software Engineering Principles
Software engineering principles are basic
guidelines that help developers produce good-quality software.
Major
Principles
1.
Understand requirements
Developers must clearly understand what the
customer needs.
2. Keep it
simple
Software design should be as simple as
possible.
3. Follow a
systematic approach
Development should follow a planned process
rather than random coding.
4.
Modularity
A large system should be divided into smaller,
manageable modules.
5.
Reusability
Existing components should be reused whenever
possible.
6.
Maintainability
Software should be designed so that future
changes can be made easily.
7. Testing
Software must be tested to identify and
correct errors.
8.
Documentation
Important information about requirements,
design, code, testing, and maintenance should be documented.
9. Quality
assurance
Quality should be considered throughout the
software development process.
10. Security
Software should protect data and prevent
unauthorized access.
No comments:
Post a Comment