Chapter 1 An Introduction To Software Engineering
Chapter 1 An Introduction To Software Engineering
Objectives
● To introduce software engineering and to explain its importance
● To introduce ethical and professional issues and to explain why they are of
WHAT IS SOFTWARE?
Computer programs and associated documentation such as requirements, design models
and user manuals.
Software products may be developed for a particular customer or may be developed for a
general market.
● Readily available
Disadvantages of Generic
specification.
New software can be created by developing new programs, configuring generic
software systems or reusing existing software.
Advantages of Tailor Made software
● Prone to errors
Engineering on the other hand, is all about developing products, using well-defined,
scientific principles and methods.
So, we can define software engineering as an engineering branch associated with the
development of software product using well-defined scientific principles, methods and
procedures. The outcome of software engineering is an efficient and reliable software
product.
NB. IEEE defines software engineering as:
The application of a systematic, disciplined, quantifiable approach to the development,
operation and maintenance of software.
Scalability- If the software process were not based on scientific and engineering
concepts, it would be easier to re-create new software than to scale an existing one.
Cost- As hardware industry has shown its skills and huge manufacturing has lower
down the price of computer and electronic hardware. But the cost of software remains
high if proper process is not adapted.
Dynamic Nature- The always growing and adapting nature of software hugely
depends upon the environment in which the user works. If the nature of software is
always changing, new enhancements need to be done in the existing one. This is where
software engineering plays a good role.
perspective.s
■ Waterfall;
■ Iterative development;
■ Roughly 60% of costs are development costs, 40% are testing costs. For custom
■ Costs vary depending on the type of system being developed and the requirements
■ Model descriptions
■ Rules
■ Constraints applied to system models;
■ Recommendations
■ Process guidance
● Upper Case Toolsikki - Upper CASE tools are used in planning, analysis and
design stages of SDLC. E.g Microsoft visual, draw.io, lucid software,
● Lower Case Tools - Lower CASE tools are used in implementation, testing and
maintenance.
● Integrated Case Tools - Integrated CASE tools are helpful in all the stages of
SDLC, from Requirement gathering to Testing and documentation.
software product can be judged by what it offers and how well it can be used. This
software must satisfy on the following grounds:
Operational
Transitional
Maintenance
Well-engineered and crafted software is expected to have the following characteristics:
Operational
This tells us how well software works in operations. It can be measured on:
Budget
Usability
Efficiency
Correctness
Functionality
Dependability
Security
Safety
Transitional
This aspect is important when the software is moved from one platform to another:
Portability
Interoperability
Reusability
Adaptability
Maintenance
This aspect briefs about how well a software has the capabilities to maintain itself in the
ever-changing environment:
Modularity
Maintainability
Flexibility
Scalability
● Use or prototypes
● Train users
■ Heterogeneity
■ Trust
■ Software engineers should not use their technical skills to misuse other
people’s computers. Computer misuse ranges from relatively trivial (game
playing on an employer’s machine, say) to extremely serious
(dissemination of viruses).