Evolution of software engineering
- Software development began as a
single person activity in 1940s and 1950s.
- Software engineering was
considered a new scientific discipline in 1960s and 1970s.
- In 1980s and 1990s engineering
ideas dominated software development
Software Engineering Definitions
•
Simple definition: Designing, building and maintaining
large software systems.
•
Others
o
‘Software engineering is concerned with the
theories, methods and tools for developing, managing and evolving software
products’ - I Sommerville
o
‘The practical application of scientific
knowledge in the design and
construction of computer programs and the associated documentation required to
develop, operate and maintain them’
- B.W.Boehm
o
‘ The establishment and use of sound engineering
principles in order to obtain economically software that is reliable and works
efficiently on real machines’ - F.L. Bauer
o
‘The application of systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of
software’ - IEEE Standard 610.12
Software Engineering
Software Engineering is an engineering discipline that is
concerned with all aspects of software production from the early stages of
system specification through to maintaining the system after it has gone into
use.
In the given definition, there are two key phrases:
- Engineering
discipline - Engineers make things work. They apply concepts,
theories, methods and tools where these are appropriate.
- All
Aspects of Software Production – Software Engineering is not just
concerned with the technical processes of software development. It also
includes activities such as software project management, quality
management.
Software Engineering Ethics
Like other engineering disciplines software engineering is
carried out within a social and legal framework. Software engineers must accept
that their job involves wider responsibilities than simply the application of
technical skills. Some of these are:
•
Confidentiality
•
Competence
•
Intellectual property rights
•
Computer misuse
Software Quality Attributes
Bohem’s Classification
•
Current
usefulness
- The qualities expected from a software system
in user’s point of view.
o
Efficiency
o
Reliability
o
Usability
o
Correctness
o
User friendliness
o
Robustness
•
Potential
Usefulness
- The qualities
expected from a software system in developer’s point of view.
o
Maintainability
o
Modularity
o
Reusability
o
Portability
McCall’s Classification
McCall’s Software Quality Model was introduced in 1977. This
model is incorporated with many attributes, termed as software factors, which
influence software.
•
Product
operation
o
Efficiency - The number of hardware resources
and code the software, needs to perform a function.
o
Correctness - The extent to which software meets
its requirements specification.
o
User friendliness
o
Usability - The extent of effort required to
learn, operate and understand the functions of the software.
o
Reliability - The extent to which software
performs its intended functions without failure.
o
Robustness
•
Product revision
o
Maintainability - The effort required to detect
and correct an error during the maintenance phase.
o
Flexibility - The effort needed to improve an
operational software program.
o
Testability - The effort required to verify
software to ensure that it meets the specified requirements.
•
Product
transition
o Interoperability
- The effort required to integrate two systems with one another.
o Reusability - The extent to which the
program’s code can be reused in other applications.
o Portability - The effort required to transfer
a program from one platform to another.
Software Maintenance
Any software system needs to be changed. Maintenance is the
costliest operation in the software development process (about 60%). Software needs
to be changed due to various reasons.
•
Errors
in the system.
•
Changes
in the user requirements
•
Availability of new technology
•
Changes
in the enterprise or Govt. policy.
Goals of Software Engineering
a) Meeting the
user’s needs
b) Low cost of
production
c) High
Performance
d) Portability
e) Low cost of
maintenance
f) High
Reliability
e) Delivery on
time


0 Comments
Post a Comment