Intro
Intro
By
Debraj Chatterjee
WHAT IS SOFTWARE?
• Generic products
• Stand-alone systems that are marketed and sold to any
customer who wishes to buy them.
• Examples – PC software such as editing, graphics programs,
project management tools; CAD software; software for
specific markets such as appointments systems for dentists.
• Customized products
• Software that is commissioned by a specific customer to
meet their own needs.
• Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
WHY SOFTWARE IS IMPORTANT?
Its characteristics that make it different from other things human being build.
Features of such logical system:
•Software is developed or engineered;
•it is not manufactured in the classical sense which has quality problem.
•Software doesn't "wear out.” but it deteriorates (due to change). Hardware has
bathtub curve of failure rate ( high failure rate in the beginning, then drop to steady state, then
cumulative effects of dust, vibration, abuse occurs).
•Although the industry is moving toward component-based construction (e.g.
standard screws and off-the-shelf integrated circuits), most software continues
to be custom-built. Modern reusable components encapsulate data and
processing into software parts to be reused by different programs. E.g. graphical
user interface, window, pull-down menus in library etc. 6
WEAR VS. DETERIORATION
7
SOFTWARE APPLICATIONS
11
FAQ ABOUT SOFTWARE ENGINEERING
Question Answer
What are the attributes of good software? Good software should deliver the required functionality
and performance to the user and should be maintainable,
dependable and usable.
What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering? computer-based systems development including hardware,
software and process engineering. Software engineering is
part of this more general process.
12
ESSENTIAL ATTRIBUTES OF GOOD
SOFTWARE
Maintainability Software should be written in such a way so that it can evolve to meet the
changing needs of customers. This is a critical attribute because software
change is an inevitable requirement of a changing business environment.
Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with
other systems that they use.
A LAYERED TECHNOLOGY
tools
methods
process model
a “quality” focus
Any engineering approach must rest on organizational commitment to quality which fosters
a continuous process improvement culture.
Process layer as the foundation defines a framework with activities for effective delivery of
software engineering technology. Establish the context where products (model, data, report,
and forms) are produced, milestone are established, quality is ensured and change is
managed.
Method provides technical how-to’s for building software. It encompasses many tasks
including communication, requirement analysis, design modeling, program construction,
testing and support.
Tools provide automated or semi-automated support for the process and methods.
SOFTWARE PROCESS