SE Unit-1
SE Unit-1
SE Unit-1
SOFTWARE ENGINEERING
UNIT – I
Software Engineering: The Nature of Software, Changing Nature of Software, Defining the Discipline,
Software Process, Software Engineering Practice. The Software Engineering Practice: A Generic Process
Model, Defining a Framework Activity, Process Assessment and Improvement, Prescriptive Process Models,
Specialized Process Models, Unified Process, Defining Agility, Agile Process, Extreme Programming.
----------------------------------------------------------------------------------
Software:Software is a Collection of Computer Programs and related documents that are intended to
provide desired features, functionalities and better performance. Software products may be
Generic: That means developed to be sold to a range of different customers.
Custom: That means developed for a single customer according to their specification.
The Evolving Role of Software
The evolving role of software means changing role of software. Basically any software appears in two roles
Software as a Product:Being a product the role of software can be recognised by its computing potentials,
hardware capabilities and accessibility of network computers by the local hardware. Being a product it also
acts as an information transformeri.e producing, managing, modifying and conveying the source of
information.
Software as a Process:Being a Process the software act as a vehicle for driving the product. In this role the
duty of the software is to Control the computer or to establish Communications between the computers.
Thus software plays dual role. It is both a product and a vehicle for delivering a product.
The role of software is significantly changing over the past decade. There are many factors affecting the
role of software and those are
Changes in Computer architectures
Improvement in hardware performance
Vast increase in amount of memory
Wide variety of input and outputs
Software Engineering
“Software Engineering is a discipline in which theories, methods and tools are applied to develop
professional software “. In software engineering a systematic and organized approach is adopted. Based on
the nature of problem and development constraints various tools and techniques are applied in order to
develop quality software.
Software Characteristics
Software development is a logical activity and therefore it is important to understand basic characteristics
of software. Some important characteristics of software are
Software is engineered, not manufactured:
Software development and hardware development are two different activities. A good design is a
backbone for both the activities. Quality problems that occur in hardware manufacturing phase cannot be
removed easily. On the other hand, during software development process such problems can be rectified.
In both the activities, developers are responsible for producing qualitative product.
Software does not ware out:
There is a well-known “bath tub curve” in reliability studies for hardware products. The shape of the curve
is like “bath tub” and is known as bath tub curve.
Important point is software becomes reliable overtime instead of wearing out. It becomes obsolete, if the
environment for which it was developed, changes. Hence software may be retired due to environmental
changes, new requirements, new expectations etc.
Most software is custom built rather than being assembled from components:
->While developing any hardware product firstly the circuit design with desired functioning properties is
created. Then required hardware components such as ICs, capacitors and registers are assembled
according to the design but this is not done while developing software product.
->Most of the software is custom built. However, now the software development approach is getting
changed and we look for reusability of software components. It is practiced to reuse algorithms and data
structures.
A Comparison of constructing a bridge and writing a program