Department: MCA
Semester : IV
Subject : Principles of Software Engineering
Subject : Principles of Software Engineering
Paper : 21
Faculty : Avinash
Kumar
Syllabus covered in this blog
Introduction to S/W Engineering
Software and Software Engineering
Software is a program or a set of programs containing instructions which provides
desired functionality and Engineering
is the process of designing and building something that serves a particular
purpose and finds a cost effective solution to a given problems.
Dual Role of
Software
As a product:
·
It delivers the computing
potential across network of Hardware.
·
It enables the Hardware
to deliver the expected functionality.
·
It acts as information
transformer because it produces, manages, acquires, modifies, displays, or
transmits information.
As a vehicle for delivering a product:
·
It provides system functionality
(e.g., payroll system)
·
It controls other
software (e.g., an operating system)
·
It helps build other
software (e.g., software tools)
Objectives of Software Engineering
- Maintainability:
It should be feasible for the software to evolve to meet changing requirements.
- Correctness:
A software product is correct, if the different requirements as specified in the SRS document have been correctly implemented.
- Reusability:
A software product has good reusability, if the different modules of the product can easily be reused to develop new products.
- Testability:
Here software facilitates both the establishment of test criteria and the evaluation of the software with respect to those criteria.
- Reliability:
It is an attribute of software quality i.e. the extent to which a program can be expected to perform its desired function over an arbitrary time period.
- Portability:
In this case, software can be transferred from one computer system or environment to another.
- Adaptability:
In this case, software allows differing system constraints and user needs to be satisfied by making changes to the software.
Program and Software Product
- Program
is a set of instructions related to each other whereas Software Product is
a collection of program designed for specific task.
- Programs
are usually small in size whereas Software Products are usually large in
size.
- Programs
are developed by individuals’ i.e. single user whereas Software Products
are developed by multiple users.
- In
program, there is no whereas a Software Product has proper documentation
and well prepared user manual.
- Development
of program is Unplanned, non-systematic but development of Software
Product is well systematic, organized and well planned.
- Programs
provide limited functionality and less features where as Software Products
provides more functionality as they are big in size (lines of codes).
Hence they possess more options and features.
Classification of Software
The software is used extensively in several domains
including hospitals, banks, schools, defense, finance, stock markets and so on.
It can be categorized into different types:
On
the basis of application
- System Software:
System Software is necessary to manage the computer resources and support
the execution of application programs. Software like operating systems,
compilers, editors and drivers etc., come under this category. A computer
cannot function without the presence of these. Operating systems are needed to
link the machine dependent needs of a program with the capabilities of the
machine on which it runs. Compilers translate programs from high-level language
to machine language.
- Networking and Web Applications Software:
Networking Software provides the required support necessary for computers
to interact with each other and with data storage facilities. The networking
software is also used when software is running on a network of computers (such
as World Wide Web). It includes all network management software, server
software, security and encryption software and software to develop web-based
applications like HTML, PHP, XML, etc.
- Embedded Software:
This type of software is embedded into the hardware
normally in the Read Only Memory (ROM) as a part of a large system and is used
to support certain functionality under the control conditions. Examples are
software used in instrumentation and control applications, washing machines,
satellites, microwaves, washing machines etc.
- Reservation Software:
A Reservation system is primarily used to store and
retrieve information and perform transactions related to air travel, car
rental, hotels, or other activities. They also provide access to bus and
railway reservations, although these are not always integrated with the main
system. These are also used to relay computerized information for users in the
hotel industry, making a reservation and ensuring that the hotel is not
overbooked.
- Business Software:
This category of software is used to support the
business applications and is the most widely used category of software.
Examples are software for inventory management, accounts, banking, hospitals,
schools, stock markets, etc.
- Entertainment Software:
Education and entertainment software provides a
powerful tool for educational agencies, especially those that deal with
educating young children. There is a wide range of entertainment software such
as computer games, educational games, translation software, mapping software,
etc.
- Artificial Intelligence
Software:
Software like expert systems, decision support
systems, pattern recognition software, artificial neural networks, etc. come
under this category. They involve complex problems which are not affected by
complex computations using non-numerical algorithms.
- Scientific Software:
Scientific and engineering software satisfies the
needs of a scientific or engineering user to perform enterprise specific tasks.
Such software is written for specific applications using principles, techniques
and formulae specific to that field. Examples are software like MATLAB,
AUTOCAD, PSPICE, ORCAD, etc.
- Utilities Software:
The programs coming under this category perform
specific tasks and are different from other software in terms of size, cost and
complexity. Examples are anti-virus software, voice recognition software,
compression programs, etc.
- Document Management
Software:
A Document Management Software is used to track,
manage and store documents in order to reduce the paperwork. Such systems are
capable of keeping a record of the various versions created and modified by
different users (history tracking). They commonly provide storage, versioning,
metadata, security, as well as indexing and retrieval capabilities.
On the basis of Copyright
- Commercial:
It represents the majority of software which we
purchase from software companies, commercial computer stores, etc. In this
case, when a user buys a software, they acquire a license key to use it. Users
are not allowed to make the copies of the software. The copyright of the
program is owned by the company.
- Shareware:
Shareware software is also covered under copyright but
the purchasers are allowed to make and distribute copies with the condition
that after testing the software, if the purchaser adopts it for use, then they
must pay for it.
In both Commercials and Sharewares, changes to software are prohibited.
- Freeware:
In general, according to freeware software licenses,
copies of the software can be made both for archival and distribution purposes
but here, distribution cannot be for making a profit. Derivative works and
modifications to the software are allowed and encouraged. Modification of the
program code is also allowed without the explicit permission of the copyright
holder.
- Public Domain:
In case of public domain software, the original
copyright holder explicitly relinquishes all rights to the software. Hence
software copies can be made both for archival and distribution purposes with no
restrictions on distribution. Modifications to the software and reverse
engineering are also allowed.
No comments:
Post a Comment