Software Engineering: Unit 1
Software Engineering: Unit 1
Unit 1
Introduction
Prepared by UJJWAL RIJAL
Definition of Software
Many people equate the term software with computer programs. However, I prefer a broader definition where software is not
just the programs but also associated documentation and configuration data that is needed to make these programs operate
correctly. A software system usually consists of a number of separate programs, configuration files, which are used to set up
these programs, system documentation, which describes the structure of the system and websites for users to download recent
products, i.e. software which can be sold to a customer.
Software engineers are concerned with developing software products, i.e. software which can be sold to a customer.
Software Product
Software products are nothing but software systems delivered to customers with the documentation that describes how to
install and use the system.
There are two fundamental types of software products:
i. Generic software products
These are stand-alone systems that are produced by a development organization and sold on the open market to any customer
who is able to buy them.
Examples of this type of product include software for PCs such as databases, word processors, drawing packages and project
management tools.
ii. Customized (or bespoke) software products
These are systems commissioned by a particular customer. A software contractor develops the software especially for that
customer.
Examples of this type of software include control systems for electronic devices, systems written to support a particular
business process and air traffic control systems.
Essential characteristics of well engineered software products
i. Efficiency
Software should not make wasteful use of system resources such as memory and processor cycles.
ii. Maintainability
It should be possible to evolve software to meet the changing requirements of customers.
iii. Dependability
It is the ability of software that should not cause any physical or economic damage in the event of the system failure.
iv. Usability
Software should have an appropriate user interface and adequate documentation.
v. On time
Software should be delivered in well- time.
vi. Within budget
The software development cost should not overrun and it should be within the budgetary limits.
vii. Functionality
The software system should exhibit the proper functionality i.e. it should perform all the functions, it is supposed to perform.
viii. Adaptability
The software system should have the ability of getting adapted to a reasonable extent with the changing requirements.
Software Engineer
A software engineer is a person who applies a wide range of application development knowledge to the systematic
development of software application system for organization.
Software engineers’ jobs have evolved to include analysis, evaluation, selection and use of the specific, systematic approaches
to the development, operations, maintenance and retirement of software.