0% found this document useful (0 votes)
17 views14 pages

Session - 1 PPT-1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views14 pages

Session - 1 PPT-1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

What is SOFTWARE

ENGINEERING ?
Software Engineering is defined as a process of ;

 Analyzing user requirements

 Designing

 Developing

 Testing

 Maintenance of the Software


MODULE - 1
( 1.1) The Nature of Software

Software’s Dual Role


 Software as a Product

 Transforms Information – produces, manages, acquires, modifies, displays, or transmits


information.

 Delivers computing potential of hardware and networks.

 Software is a Vehicle for delivering a product

 Controls other programs ( Operating Systems )

 Effects Communications ( Networking Software )

 Helps build other software ( Software Tools & Environments )


 During the 1970s and 1980s, there were some popular books which provided useful Historical insight
into the changing perception of Computers and Software, and their impact on culture.

 Today, a huge Software Industry has become a dominant factor in the economies of the Industrialized
World.

 The Lone programmer of an Earlier Era has been replaced by teams of Software Specialists, each
focusing on one part of the technology required to deliver a complex application.

 Same set of questions were still asked to both Lone Programmers and even now, such as;

 Why does it take so long to get software finished ?


 Why are development costs so high ?
 Why cant we find all errors before we give the software to our customer ?
 Why do we spend so much time and effort maintaining existing programs ?
 Why do we continue to have difficulty in measuring progress as software is being developed and
maintained ?
1.1.1 Defining Software

 Software is defined as (1) Instructions (computer programs) that when executed provide desired
features, function and performance; (2) Data structures that enable the programs to adequately
manipulate information; and (3) Documents that describe the operation and use of the programs.

 To gain an understanding of the software, it is important to examine the Characteristics of


Software.

 Software is a Logical element rather than a Physical System element.

 Therefore, software has characteristics that are considerably different than those of hardware.
 Characteristics of Software

 Software is developed or engineered; it is not manufactured in the classical sense.

 Although some similarities exist between Software Development & Hardware Manufacturing, the
two activities are fundamentally different.
 Software doesn’t “Wear Out”.
 The figure below depicts Failure rate as a function of time for Hardware ( also known as Bathtub
Curve).

 This indicates that Hardware exhibits


relatively high failure rates early in its life (due
to design or manufacturing defects)
 Defects are then corrected and failure rate
drops to steady state for some period of time.
 As time passes, failure rate rises again as
hardware components can fail to work.
 The below figure depicts the Failure curve for Software ;

 Undiscovered defects will cause high


failure rates in the life of a program.

 Later they are corrected and the


curve flattens.

 Although the industry is moving toward component-based construction, most software continue to be
custom built.
( 1.1.2 ) Software Applicaion Domains

 There are now 7 broad categories of computer Software that continue giving challenges to
Software Engineers;

1. System Software

2. Application Software

3. Engineering/Scientific Software

4. Embedded Software

5. Product-Line Software

6. Web-Applications

7. Artificial Intelligence Software


Type of Software Description
System Software  System software is a collection of programs written to service other programs
 Example: Compilers, Editors, File management utilities
Application Software  Consists of standalone programs that solve a specific business need.
 Process Business or Technical data
Engineering/Scientific Software  Range from Astronomy to Volcanology, Automotive to Space, etc..
 Nowadays to handle real time data, we have Computer-Aided Deisgn, System
Simulation etc.
Embedded Software  Resides within a product or system
 Example: Digital functions in an automobile such as Fuel Control, Braking
systems etc
Product-Line Software  Can focus on limited and specific marketplace products
 Example: Word processing, multimedia, entertainment etc.
Web-Applications  “WebApps” span a wide variety of applications used over a Network

Artificial Intelligence Software  Makes use of non-numerical algorithms to solve complex problems
 Applications within this area includes Robotics, Expert Systems, Pattern
Recognition etc.
( 1.1.3 ) Legacy Software

 The Legacy software systems were developed decades ago and have been continually modified to
meet changes in business requirements and computing platforms.

 The proliferation of such systems is causing headaches for large organizations who find them costly
to maintain and risky to evolve.

 Legacy systems sometimes have inextensible designs, convoluted code, poor or nonexistent
documentation, test cases and results that were never archived, a poorly managed change history.

 As time passes, legacy systems often evolve for one or more of the following reasons:

 must be adapted to meet the needs of new computing environments or technology.


 must be enhanced to implement new business requirements.
 must be extended to make it interoperable with other more modern systems or databases.
 must be re-architected to make it viable within a network environment.

You might also like