0 ratings 0% found this document useful (0 votes) 23 views 28 pages SE Unit 1
The document provides an overview of software engineering, including its evolving role, characteristics, and various process models such as Waterfall, Spiral, and Agile. It discusses the nature of software, its impact on hardware performance, and the methodologies used in software development. Additionally, it outlines the importance of software as a vehicle for product transmission and the significance of different software categories like engineering software, web-based software, and artificial intelligence software.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here .
Available Formats
Download as PDF or read online on Scribd
Go to previous items Go to next items
Introduction to Software Engineering,
A Generic View of Process,
Process Models
UNIT
aN
Introduction to Software Engineering: The Evolving Role of Software, Changing Nature of Software,
Software Myths.
A Generic View of Process: Software Engineering - A. Layered Technology, A Process Framework,
The Copebility Maturity Model Integration (CAAMI)..
Process Models: The Waterfall Model, Spiral Model and’Agile Methodology:
Evolution of Software
Nature and Characteristics of Software
Various Myths associated with Software and Reality
Software Engineering and its Layers
SN NKR OS
Five Generic Process Framework Activities
Improving Software Process using CMMI
Various Process Models like Waterfall, Spiral and Prototyping Models.
SON
Software is generally referred to'as an organized set of instructions which when executed by
means of a given computing device, delivers the desired result by considering various processes
_ Gnd functions. It is an organized set of instructions capable of accepting inputs, processes them
‘and delivers the result in the form of functions and performs as expected by the user. Software
_- Engineering is the establishment and application of sound engineering principles for obtaining
economically feosible and reliable software that can run efficiently on any real-time machine.
Software Engineering consists of various software process models for the development of
, 30ftware. A software process is a set of activities that are performed in developing software.
There are various software process models that are followed to ease development of software.
‘Some common models are Waterfall model, Spiral model and Protatyping model.SOFTWARE ENGINEERING [JNTU-HYDERABAD]
‘Baiving ROB of Sok
Qt. Define software. Explain the evolving role of software.
Answe!
Definitions of Software .
In general terms, software can be defined as an organized set of instructions. These instructions deliver the
desired result by considering various processes and functions.
Itis an organized set of instructions capable of accepting inputs, processes them and deliver the result in the
form of functions. Apart from this, it refers to the records (say software manuals) which help and guide the users to
‘efficiently deal with it. It is now-a-days delivered in the form of a package offering the design documents, source
code, installations implementation manuals, operations system manuals.
Software Evolution .
Modem software act as a vehicle to transmit a product.
Role of Software as a Vehicle in Product Transmission
Software as a vehicle has certain responsibi
s. They are,
@ Controlling various operating systems.
(i) Creating and managing programs such as, software tools, software erivironments etc.
ii) Delivering information.
Role of Software in Delivery of a Product
‘As a product, software performs the following tasks,
(Transmitting computer data which is a part of computer hardware.
(ii) Delivering the computer data that is a part of computer networks accessible by a local hardware.
An interesting feature of computer software is its location independence as it is basically used to transform
information. Traisforming information involves, 5
(@) Creation of information.
(b) Management of information
(©) Modification of information
(@ Display of information.
With the above features, it can be said that today’s software gives more emphasis ‘on the delivery of information.
Over the petiod of time, software has made a serious impact in'the field of software.
Impact of Software in the Field of Computers
Performance of hardware has improved.
Memory size of computer has increased.
Improvement in storage capacity of the computer,
(iv) Availability of latest and exciting ii put and output devices,
©) Development of different computer architectures,
systema Wieexbilty of software systems is one ofthe reasons of software béing incorporated in large and complex
can be made coe chances tothe hardware is expensive once itis manufactured. However, changes tothe software
— ‘Any time during or after the system development. . .
Sofware croton ata ate developed as completely new sysiems and hei updates and maintenance ae continuous
n evolutioy " :
the changing requirements, nat Process where the software is periodically changed over its life time in response to
WARNING: KeroxiPhota
»lPhotocopying of this hoal
‘of this hook is & CRIMINAL act, Anyone found gullty e LIABLE ta face LEGAL proceedings.ities,
ving para ati
te lore car pattern done?
a the evolution
@ Miers nes the market place
‘The where segment deter :
Fn, nich the client request is obtained
ii y is it done?
° a cer ment determines the reasons for
“errors, failures and the necessary FOr improving
and recovery.
(ii) What are the requirements?)
“The what segment specifies the design document
test plan, interface, user manual forthe projec”
process.
(iv)_When itis performed?” ;
‘The when segment determines at which point
“of time necessary tests like component test, cost
estimate, acceptance test are to be carried out.
(v) How itis performed?
The how segment specifies the method of
rewiting, redesigning, redrawing and coding the
project.
(vi) By whom itis performed?
The ‘by whom’ segment specifies the person who
is involved in the particular process/project or
The person can be engincet/client/user.
2. Explain about evaluation of software en-
gineering methodologies.
(Mode! Papers, a2{a) | Sep-21(R 12), Ata)!
March-24(R18), Q1(b))
Answer:
Software engineering methodologies refers
to group of procedures which are performed from
initial development phase till the end phase in
software development process. These methodologies
‘emerged with many complexities and advancements
in programming technologies. Some of the software
methodologies are as follows,
I. Exploratory Methodology
Exploratory methodology is, adopted for
developing those software wherein requirements are
unclear in the beginning of development. This style is
carried out in step by step process ic., by expermenting
and exploring.
It is only good for developing softwares which
performs test research hypothesis as it lacks reliability,
extensibility and maintainability. Errors are identified
in the final product testing. Therefore it is problematic
to modify every time. It is very laborious to maintain
_ because of the absence of proper documentation,
__ It makes usé’ of unstructured programming or
design heuristes for writing program which emphasizes
mn global data items. Some of the unstructured
Programming languages are BASIC, low-level languages
a sembly containing sequence of commands or
ements like labels, GoTo. State oriented mode
Tike flow cha
state machin areata: Bn
ic state machine is used for performing an can
h produces the result and changes its state, While
state diagrams are used for recording the behaviour of
machine.
2, Structure Oriented Methodology
Structure oriented methodology makes use, of
procedural approach to develop functions or procedures,
‘These procedure aré nothing but the instructions which
are written by programmer that guides the computer
from starting point to end point. It inherits some of
the characteristics of unstructured which offers some
improvements. There are three elements such as
sequence, selection, Iteration.
‘Sequence: Sequence refers to the order in which
@ :
instructions are implemented.
(b) Selection: There are different selection statements
Tike if else conditional statements as program
reacts upon the choice of selection.
(©. _ Iteration: Use of repetitive set of instructions
and loops results into the developments of last
building block of procedural programming. The
main program calls the procedures which passes
the appropriate parameters as required. Structure
oriented methodology makes use of various
notations like Data Flow Diagrams (DFD), data
dictionary control flow graphs, entity relationship
diagram to generate solution for the issues. It is
well suited for all the projects. It is preferable
in small memory requirements, and high speed
systems like embedded systems and scripts,
3. Data Structure Oriented Methodology
‘Data structure oriented methodology is generally
used for designing data structure. It was evolved by
Michael Jackson in the year 1970 which describes
how functionality get along with real world. entities.
It specifies real world actions, arranging of actions,
entities. Data’ structure methodology also called as
Jackson structured design progresses its development
by categorizing into two steps.
‘Step1: It describes what are the specifications.
‘Step2: It describes how the implementation is performed.
ISD is very popular among concurrent softwares,
real time software, microcode and parallel computer
programming as it focuses more on actions and less,
on attributes. Although this methodology appears to be.
good for shaping real world scenarios but turns out to
be complex and difficult to understand,
4. Object Oriented Methodology
Object oriented methodology focuses more on
using data instead of funétions real world entities are
generally treated as objects. Objects possessing same
features are | formed into a class, ‘They include methods
and properties.
SPECTRUM @LL-IN-ONE JOURNAL FOR ENGINEERING STUDENTS.(a)
2 Methods refers
Methods ‘object itself Generally
which canbe executed by: :
Sach objects possess its own group of methods.
ties: Properties refers to the features
© omen tnd ree their behavior objects
wonted methodology presents three important
sncepts namely, abstraction, eneapsulation’ and
modularity:
‘This methodology uses Object Oriented Design
(GOD) and Object Oriented Analysis (OA).
Object Oriented Analysis (OOA): This
technique is used to determine the requirements
by finding objects and classes, attributes,
relationship that exist among them, inheritance
relationship.
(b) Object Oriented Design (OOD): This technique
creates object models and tries to design real
world situations into software structure.
& Component Based Development Methodology
Comiponent based development methodology
helps in communication between stakeholders and large
scale reuse. It was basically evolved to provide solution
10 application development. It has been evolved from
object oriented methodology for system and design
analysis purpose. It mainly emphasizes on reuse. Its the
main supports cause for cost reduction, flexibility, better
quality, scalability. It makes use of reusable independently
packaged, large components for software development.
‘This methodology focuses on reuse wherein
components display systematic parts which can be
stored independently and organized into a new software
component fabrication includes different ‘phases like
domain analysis, component identification component
design integration and testing, acceptance and roll out,
deployment.
Q3. Define the term Software. Describe its
various characteristics. March-t7(Rt3),02(a)
OR .
Define Software and its characteristics.
Answer : Dec.-19(R16), a1(6)
Software
For answer refer Unit, Page No, 2, QL, Topic:
Definitions of Software i eh al
Characteristics of Software
AA software should be analyzed through various
levels of perception. To do this, which it needs to be
analyzed by its characteristics,
Following are the attributes ofa good software,
1. Customizable Software
In order to analyze the customizable software,
the user should have a clear distinction between
hardware and software manufacturing procedures
@)
WARNING: Xeros/Photocopying of this book
SOFTWARE ENGINEERING [JNTU-HYDERABAD]
procedure ch certain digital circuitry is to be
built. The process starts by drawing neat sketches
and analyzing whether the given design is satisfying
the intended specifications or not. Once these
are known, the user begin acquiring the req
ital circuitry i.c., gates, capacitors etc. Finally
testing is performed to complete this process. While
closely analyzing the above mentioned scenario it
can be concluded that this process contains many
reusable facts and very less new facts, But this is not
the case during the software development. Here, the
given software is first-required to be built and later
implemented, so'as to determine its reusability values.
It is the recent trend in software engineering process
to rely on certain reusable components along with few
new components in framing the entire software.
2. “Software Doesn't Wear Out”
In order to analyze this characteristic, consider
development life cycle of hardware and software. The best
mode of comparison is to take various aspects of the
graphs during their life cycle (hardware and software)
to be perfectly analyzed graph describing various
consequences related to the hardware is given below,
yeaxis
Wear
Fate out
rate
—>Time x-axis
Figure (i Graph Depicting the Failure Curve for Hardware
Analyzing the curve concludes that during the
initial days of manufacturing, the hardware suffers from
severe defects. When these failures are eliminatéd, the
curve attains a steady success rate. This Success rate
does not last longer and many external entities such as,
vibration, environmental effects, temperature changes,
dust, ete., act as barrier to its prolonged success causing
itto wear out steadily. Now, analyze the same aspects of.
the software in the following curve.
pikes due to high
failure rate
Actual curve
Failure t (deteriorate)
rate
Ideal curve
——> Time x-axis
Figure oftware
inyone found guilty is LIABLE to
dings.Introduction to Software Engine
Th the ideal curve, software initially sufTers from
does not get affected
unexpected defects. But as software
with climatic or other environmental changes as that of
hardware, it comes down to a steady success rate by
suitably correcting the errors. Till this stage, the ideal
gurve remains analogous to the actual curve. Whenever
the actual curve is considered, it declines from its initial
“UNI
failure rate and comes down steadily to. particular point,
where it demands certain changes to be applied and leads
to the introduction of other defects. Hence, a spike is
observed in the curve, Now, efforts are applied to nullify
these defects and hence, the spike comes down to a point
where it demands change and again the sarne process is
repeated which gives rise to other spikes. While change is
made to the curve, the main cause of defect remains due
tothe changes made to the sofiware to acertain extentand
due to the side effects of the software to a larger extent.
Hence, with reference to above illustrations it
can be concluded that, the “software does not wear out
rather it deteriorates”.
3. “Software is Developed or Engineered; it is
not Manufactured in the Classical Sense”
Development of a software and other hardware
involves manpower, but the quantity and the way of
approach remain significantly different. In both the
‘manufacturing processes, one will be left out with certain,
‘end products, but, the efforts applied in them remain
different, Finally, both the activities are initiated with a
determination of-building high quality of products, but,
their quality maintaining activities differ. Hence, with
these specifications it can be conclude that, “software is
developed or engineered, it is not manufactured in the
classical sense”.
Q4. - Explain the categories of software.
OR
Discuss about the changing nature of
software.
(Model Papers, 23() | Nov/Dec. ABR), 2a)
oR
Elaborate on the changing nature of
software in detail.
Answer
March-17(R13), Q2{b)
Following are the broad categories of Software,
often referred as applications of software which
describe its changing nature,
1. Engineering and Scientific Software
Software is being developed to ease the growth in
engineering and scientific areas. Engineering and
scientific software development requires large
area of information tobe covered, For these fields,
applications have been developed which cover
areas from astronomy to voleanology, molecular
2
‘Generic View of Process, Process Models 5
iology to automated manufacturing and also
from automotive stress analysis to space shuttle
orbital dynamics. Now, advanced applications
like CAD/CAM, SPSS, MATLABS, etc., have
been developed.
Web-based Software
‘The software packages have been updated
and they can now transfer information on
the'web. These packages are used to develop
highly sophisticated web based-software that
simultaneously eases its usage and also ensures
a safe transfer of data over network. Web-based
software or applications can be developed, by
ising Ianguages or packages like JAVA, C++,
Vb.net, CGI, JavaScript, HTML, DHTML etc.
Embedded Software
Embedded sofiware is developed to control the
products under consumer and industrial markets.
This software resides in the Read Only Memory
(ROM) of the product. This software is developed
to perform the limited and the specialized
functions of the product.
Example: Keypad control ofan air cooler, button
control of a washing machine and so on. These
software also provide significant functional and
control capabilities of the product
Artificial Intelligence Software
‘This type of software miakes use of non-numerical
algorithms to solve: complex problems, they
are not adaptable to computation or direct
(straightforward) analysis. One of the. most
active artificial intelligence areas is the, “Expert
Systems”. Other application areas for AI software
includé pattern recognition, theorem proving and
game playing. .
System Software
System Software refers to a piece of software
capable of providing services to other applications.
Good examples of such software are categorized
in two sets. One-of the sets includes file
management utilities, compilers, editors etc.,
and other set includes drivers, operating system,
networking software etc. The system software
belonging to category-I can easily be applied to
quite complex and deterministic applications. On
the other hand, category-II can easily be applied
to highly non-deterministic applications.
Application Software
Application software usually resides on a single
system capable of satisfying only business
requirements and involves managemenvtechnical
decision making,
‘SPECTRGM (ILL-IN-ONE JOURNAL FOR ENGINEERING STUDENTSNetsourcing
‘The growth of
engineers to look
simple as well as mor
Thisisbeeause, inte
an engine
only ating ike an
the software
internet forced ware
forthe developmen
fore sophis cated software.
‘et in today’s world, is not
but also as the major
umes of data
source for obi
versal Computing,
Une oid, the major source of data
communi pain the future such circuits can be
is ers developing distributed systems, Hence,
se gpotcations will also remain a challenge to
the software engineets
9, OpenSource
Open source is also an expected future
development in software where a given software
is made available to all users irrespective of
their profession. They ean modify it as per their
requirements, In this case, the engineers must
strive to make the software easily understandable
and compatible so that, it can be easily moulded.
10, Product Line Software
Software product line is a software that allow
systems to share a common set of features
satisfying a business need. For example. Mobiles,
‘Smart watch, Laptops can use same version of
software.
QS. Whatis a legacy software? Explain.
(Dec.-19(R16), At(a) | NovDec.-17(R15), Q2{a) |
NovDec.-16(R13), 21(a))
oR
What is legacy software? Explain briefly
its impact in software engineering.
NoviDec.-18(R16), a2(a)
OR
What type of changes is made to legacy
systems if it exhibits poor quality?
Answer :
Legacy Software
Legacy Software can be defined as an old soft-
ware developed in the past. This software is still being
used in the present era as it performs essential business
activities. It may include procedures which are-no
longer relevant in the newer computing environment.
‘As businéss requirements are dynamic, the legacy soft
‘Ware system undergo continuous modifications. These
‘Modifications make the software adaptable to the new
Pusiness requirements and to make it interoperable with
the current computing environments.
‘These legacy sofware
Problematic ia
0st maintenance and due to
WARN
ware systems are becoming
ee organizations because of their high
the difficulties and
SOFTWARE ENGINEERING [JNTU-HYDERABAD]
‘encountered while replacing these systems with modem
systems. Legacy systems support essential business
activities and therefore they are considered as business
critical systems.
‘Types of Changes Made to Legacy Systems
Re-engineering must be carried out on legacy
systems so as to make these systems capable of handling
the modem business requirements. This can be done by
making the following significant-changes to the legacy
systems, ° :
Making the Software Adaptable: The software
can meet the requirements of new computing,
environments, by making the software adaptable
to the computing environment.
Enhancing the’Software: The characteristic
features of software needs to be enhanced so
that the software can easily implement the new
business requirements.
Extending the Software: The software needs to
be extended so that it can achieve the interoper-
ability feature.
Redesigning the Software: The software needs
tobe redesigned by making changes to the cxist-
ing software soas to make the software operable
within a network environment.
Explain, why legacy systems evolve as
time passes.
Answer :
Reasons for Legacy Software Evolution
Software evolution is an evolutionary process
where software is continuously changed over its lifetime
in response to changing requirements. This process is
carried by ‘change’ and is performed when,
@® __ The errors identified are corrected.
‘The software becomes adaptable to new comput-
ing environment.
‘The application re-engineering is performed.
The following important laws are defined, so as
to-get a brief description about the unified theory for
software evolution,
1. Continuing Change Law
‘The E-type system software that evolved overtime
‘must be continuously adapted so as to make them
implement in real world computing environment.
The system is capable of.meeting the custom-
ers requirements and satisfying them to the
maximum extent only if the system undergoes a
continuous modification.
Increasing Complexity Law
@
(ity
ww
Qs.
Gi)
During the evolution process of an E-type system
software, the level of complexity increases when
no measures are tised forreducing or maintainingIntroduction to
‘Self Regulation Law
“The process of evolving an
regulating with respect to the product d ;
tnd process measures Its vale fs approximately
equal to the normal value,
Conservation of Organizational Stabili
activity rate is constant over the
type system is
UNT
-aype system is self
tribution
ity Law
‘The average
lifetime of a proxiuet when an
being evolved.
& Conservation of Familiarity Law
When an Extype system is being evolved, it is
necessary to ensure that all the members (
developers, sales personnel, users) responsible for
performing the system evolution must maintain
the entire information about the evolution pro-
cess. They should also track the behavior using
which a satisfactory evolution is achieved.
6 Continuing Growth Law
‘The functionality of an E-type system must
increase continuously over the lifetime of the
system in response to the customers requirements.
7. Declining Quality Law
‘The quality of an E-type system will be degraded.
if the software system doesn’t undergo continu-
‘ous modification. Due to this, the system fails to
meet the requirements of new computing environ-
ments.
8. Feedback System Law
The evolution process of an E-type system
comprises of feedback systems with multilevel,
multiloop, multiagent feature, It is necessary to-
have such feedback systems for improving the
performance ofthe software,
Q7. What are the challenges of software en-
gineering? ;
Answer: Sep24(R12), a1(b)
Some of the challenges of software engineering
are as follows,
1, — Problem Understanding
The objectives oraimof the problem understanding
is to know and understand the requirements of the clients
and Users as the client and users may be completely
aware of the new systems requirements, Similarly even
software engineers may not have complete information
Of all application domain, The main cause of problem
ee nites engineers. and customers is lack of
ene ication. Thus, it is necessary for an engineer to
cae. io explain the requirements clearly 1 the customer
‘en if they known then’,
Software Engineering, A Generic Viow 0! "TO —————s8 Models
ime and Cost
jomers prefers software prod
consume reduce amount of cycle tine
Therefore software engineers focuses on nin Sot
cycle time and products cost, Customers demang 8
delivery in less time because ofthe competitin Pott
s0 software engineer try hard to deliver ye 2,
on time which ean some times result into ie oe
product. ly, 8
ity
: thy
re and Software in
8 Whigg
The cost of software is'ret
some resources like manpower, ie saat ot
sererally, the cost of developing asoftwarerequny
number of labours and is measured in terms at es OF
monihs. Cost of product varies for different projec,
instance ifthe size ofthe project is large and corpse
then it consumers more cycle time. There exist few 6.
factors due to which time and cost may get effected li
level of technology, availability of resource application, by
experience. Proper planing can minimize the cost and w.
time of a project. &
3. Reliability th
Itrefers to the property of satisfying the software *!
requirements effectively. It is an important characteristics
of high quality software. Product quality can be attained ©
by focusing on the development phases like design,
coding and testing carefully. Verification and validation
techniques are used in order to detect defects in the intial
stages development. Unreliability deals with the presence
of defects that are seen in the’software. Complexity in the 7
project leads to development of unreliability. Unreliable
software caused many failures in the year 1989 like.
°
@ 22 fatal crashés took place by wire UH-6 F
Pp
s¢
7
helicopter «
Gi) Numerous patients died to the malfunctioning of ©
hospital computers, .
4 Usabi and Reusability f
Usability is defined as a process for software il
development that helps to easily understand the user &
needs and obtains direct user feedback in overall ¢
development of life cycle..It ensures the strategy of
software systems that satisfies the need of user in various i
environment in order to reduce costs and complexities.
Software engineering focuses on using usability
engineering’ approaches. Reusability is an important
characteristic of a high quality software. Itis defined as
‘degree to which software modules or work product can
‘be used in more than one computing program or software,
Now-a-days reuse of existing software has become very
Popular in software industry and institutional business.
But there are many challenges faced by reuse business
like analysis of domain knowledge, development of
reusable library, integration of reusable Components. It
has got many benefits if systematic approach is used
Reusability is mainly used for increasing-productivity,
ity and ro ity within a software.