Download - intr SE
-
8/7/2019 intr SE
1/55
MODULE:I
INTRODUCTIONTO
SOFTWARE ENGINEERING
3/1/2011 1MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
2/55
Software Engineering
Software engineering (SE) is a professiondedicated to designing, implementing, andmodifying software so that it is of higher
quality, more affordable, maintainable, andfaster to build.
Systematic collection of past experience:
Techniques, Methodologies,
Guidelines.
3/1/2011 2MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
3/55
The IEEE Definition
TheIEEE Computer Society'sSoftware Engineering
Body of Knowledge defines "softwareengineering"
astheapplicationofasystematic,disciplined,
quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware,andthe
studyoftheseapproaches;thatis,theapplicationof
engineering tosoftware.
3/1/2011 MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
3
-
8/7/2019 intr SE
4/55
Why Study Software Engineering? (1)
To acquire skills to develop large programs
Exponential growth in complexityand difficulty level with size.
The ad hoc approach breaks down
when size of software increases.
3/1/2011 4MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
5/55
Why Study Software Engineering? (2)
Ability to solve complex programmingproblems:
How to break large projects into smallerand manageable parts?
How to use abstraction?
Also learn techniques of:
Specification, design, user interfacedevelopment, testing, projectmanagement, etc.
3/1/2011 5MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
6/55
Why Study Software Engineering? (3)
To acquire skills to be a better programmer:
- Higher Productivity
- Better Quality Programs
3/1/2011 6MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
7/55
PROGRAM vs SOFTWARE
PROGRAM
Usually small in size
Author himself is sole user
Single developer
Lacks proper user interface
Lacks proper
documentation
Ad hoc development.
SOFTWARE
Large
Large number of users
Team of developers
Well-designed interface
Well documented & user-
manual prepared
Systematic development
3/1/2011 7MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
8/55
SOFTWARE
Software consists of three components:
-Program ,whenexecutedprovidesdesiredfunctionandperformance.
-Documents ,thatdescribetheoperationandtheuseofprogram.
-Data structure ,thatenabletheprogramstoadequatelymanipulateinformation.
In other words software is the collection ofcomputer programs ,procedure rules andassociated documentation and data.
3/1/2011 8MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
9/55
Softwares Dual Role
Software is a product
Deliverscomputing potential
Produces,manages,acquires,modifies,displays,or
transmitsinformation
Software is a vehicle for delivering a product
Supports ordirectlyprovidessystemfunctionality
Controls otherprograms(e.g.,anoperatingsystem) Effectscommunications (e.g.,networkingsoftware)
Helpsbuild othersoftware(e.g.,softwaretools)
3/1/2011 MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
9
-
8/7/2019 intr SE
10/55
Types of software:
1.System software
2.Application software/PC software
3.Engg. &scientific software4.Real time software
5.Web based software
6.AI software
7.Embedded software
-
8/7/2019 intr SE
11/55
System software : Managingandcontrollingoperationofcomputersystem. Itfrequentlyinteractwiththehardware.
Ex-OS ,assembler,compiler,linker,loaderetc.
Application software : usedforofficialandpersonaluseondailybasisandalsotosolveaparticularbusinessneed.Ex-MS word,MS office,mediaplayer,powerpointetc.
Engineering and scientific software : usedforscientificandengineeringactivities.
Ex-CAD, CAM , Mat Labetc.
Real time software : observes,analyzeandcontrolsrealworldeventsastheyoccur.
Ex- traffic lightcontrol.
3/1/2011 11MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
12/55
Web-based software : act asinterfacebetweenuserandinternet.Inotherwordsitisusedtodevelopwebbasedapplication.
Ex-HTML , ASP,webbrowseretc.AI software : usedwheretheproblemsolvingtechniqueis
nonalgorithmicinnature.
Ex-Robotics,gameplayingtechniqueetc.
Embedded software : itisverysmallandembeddedinasmallchiptoperformlimitedapplication.
Ex-automaticwashingmachine,s/win DVD playeretc.
3/1/2011 12MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
13/55
Legacy Software
Why must it change? softwaremustbeadapted tomeettheneeds
ofnewcomputingenvironmentsortechnology.
softwaremustbeenhanced toimplementnewbusinessrequirements.
softwaremustbeextended to make itinteroperable withothermoremodernsystems
ordatabases. softwaremustbere-architected tomakeit
viablewithinanetworkenvironment.
3/1/2011 MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
13
-
8/7/2019 intr SE
14/55
Characteristics of software
1.Efficiency: thes/wmustusetheresourceproperly.
2.Maintainability: thes/wcanchangewithachangewithusers requirement.
3.On time: thes/wdevelopment mustbewithinthetimespecifiedbytheclient.
4.Within the budget: thedevelopment costofs/wshouldntexceedbudgetspecifiedbytheclient.
5.Functionality: itshouldmeetallthefunctionalityspecifiedbytherequirement.
6.Dependability: thes/wmustbesecuredandreliable.
3/1/2011 14MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
15/55
Characteristics of software
1. Softwareisdeveloped orengineered,itis
notmanufacturedintheclassicalsense.
2.softwaredoesnt wear out.
3/1/2011 15MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
16/55
Failure curve of hardware
3/1/2011 16MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
17/55
Wear vs. Deterioration
3/1/2011 17MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
18/55
SE is a layered technology
3/1/2011 18MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
19/55
Generic view of s/w Engg.:
-
8/7/2019 intr SE
20/55
Emergence of SE:
1. Earlycomputer programming
2. Highlevellanguageprogramming
3. Controlflowbaseddesign
4. Structureorienteddesign
5. Datastructureorienteddesign
6. Datafloworienteddesign
7. Objectorienteddesign
8. Aspectorientationclient-serverdesign,embeddeds/wdesign.
-
8/7/2019 intr SE
21/55
Early Computer Programming (50s) Every programmer developed
his own style of writing
programs: According to his intuition
(exploratory programming).(build & fix)
-
8/7/2019 intr SE
22/55
What is Wrong with the Exploratory
Style?
Can successfully be used for very small
programs only.
3/1/2011 MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
22
-
8/7/2019 intr SE
23/55
High-Level Language
Programming(Early 60s)
High-level languages such as
FORTRAN, ALGOL, and COBOL wereintroduced:
This reduced software developmentefforts greatly.
Software development style was still
exploratory. Typical program sizes were limited to a
few thousands of lines of source code.
3/1/2011 23MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
24/55
Control Flow-Based Design
(late60s) Size and complexity of programs
increased further:
Exploratory programming style
proved to be insufficient.
Programmers found:
Very difficult to write cost
effective and correct programs.
-
8/7/2019 intr SE
25/55
Control Flow-Based Design (late60s)
Programmers found:
programs written by others very
difficult to understand and maintain.
To cope up with this problem,
experienced programmers advised:
``Pay particular attention to thedesign of the program's control
structure.'
-
8/7/2019 intr SE
26/55
Control Flow-Based Design (late 60s)
A program's control structure
indicates:
The sequence in which the program'sinstructions are executed.
To help design programs having good
control structure: Flow charting technique was developed.
3/1/2011 26MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
27/55
Control Flow-Based Design (late 60s)
Using flow charting technique:
One can represent and design a program's
control structure. Usually one understands a program:
By mentally simulating the program's
execution sequence
3/1/2011 27MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
28/55
Control Flow-Based Design
A program having a messy flow chart
representation:
Difficult to understand and debug
3/1/2011 28MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
29/55
Control Flow-Based Design
It was found:
GO TO statements makes control
structure of a program messy. GO TO statements alter the flow of
control arbitrarily.
The need to restrict use of GO TOstatements was recognized.
3/1/2011 29MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
30/55
Control Flow-Based Design
Many programmers had extensively used
assembly languages.
JUMP instructions are frequently usedfor program branching in assembly
languages.
Programmers considered use of GO TOstatements inevitable
3/1/2011 30MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
31/55
Control-flow Based Design (Late 60s)
At that time, Dijkstra published his
article:
Goto Statement Considered HarmfulComm. of ACM, 1969.
Many programmers were unhappy to read his
article.
3/1/2011 31MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
32/55
Control-flow Based Design (Late 60s)
They published several counter articles:
Highlighting the advantages and
inevitability of GO TO statements
3/1/2011 32MODULE:I INTRODUCTION TO SOFTWAREENGINEERING
-
8/7/2019 intr SE
33/55
Control-flow Based Design (Late 60s)
But, soon it was conclusively proved:
Only three programming constructs are
sufficient to express any programminglogic:
sequence (e.g. a=0;b=5;)
selection (e.g. if(c=true) k=5 else m=5;) iteration (e.g. while(k>0) k=j-k;)
3/1/2011 33MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
34/55
Control-flow Based Design (Late 60s)
Everyone accepted:
It is possible to solve any programming
problem without using GO TO statements. This formed the basis of Structured
Programming Methodology.
3/1/2011 34MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
35/55
Structured Programming
A program is called structured
When it uses only the following types of
constructs: sequence
selection
iteration
3/1/2011 35MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
36/55
Structured Programming
Unstructured control flows are
avoided.
Consist of a neat set ofmodules.
Use single-entry, single-exit programconstructs.
3/1/2011 36MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
37/55
Structured Programming
However, violations to this feature are
permitted:
Due to practical considerationssuch as:
Premature loop exit to support
exception handling.
3/1/2011 37MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
38/55
Structured Programming
Structured programs are:
Easier to read and understand,
Easier to maintain, Require less effort and time for
development.
3/1/2011 38MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
39/55
Data Structure-Oriented Design
(Early70s)
Soon it was discovered:
It is important to pay more attention to the
design of data structures of a program Than to the design of its control structure.
3/1/2011 39MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
40/55
Data Structure-Oriented Design
(Early70s)
Techniques which emphasize designing the
data structure:
Derive program structure from it:Are called data structure oriented Design
techniques.
3/1/2011 40MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
41/55
Data Structure-Oriented Design
(Early70s)
Example of data structure oriented
design technique:
Jackson's Structured Programming(JSP)methodology
Developed by Michael Jackson in 1970s.
3/1/2011 41MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
42/55
Data Flow-Oriented Design (Late 70s)
Data flow-oriented techniques advocate:
The data items input to a system
must first be identified, Processing required on the data
items to produce the required
outputs should be determined.
3/1/2011 42MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
43/55
Data Flow-Oriented Design (Late 70s)
Data flow technique identifies:
Different processing stations (functions) in
a system.
The items (data) that flow between
processing stations.
3/1/2011 43MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
44/55
Data Flow-Oriented Design (Late 70s)
Data flow technique is a generic
technique:
Can be used to model the working ofany system.
not just software systems.
A major advantage of the data flowtechnique is its simplicity.
3/1/2011 44MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
45/55
Data Flow-Oriented Design (Late 70s)
3/1/2011 45MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
46/55
Object-Oriented Design (80s)
Object-oriented technique:
An intuitively appealing design
approach: Natural objects (such as employees,
pay-roll-register, etc.) occurring in
a problem are first identified.
3/1/2011 46MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
47/55
Object-Oriented Design (80s)
Relationships among objects:
Such as composition, reference,
and inheritance are determined. Each object essentially acts as
A data hiding (or data abstraction)
entity.
3/1/2011 47MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
48/55
Object-Oriented Design (80s)
Object-Oriented Techniques have gained wide
acceptance:
Simplicity
Reuse possibilities
Lower development time and cost
More robust code
Easy maintenance
3/1/2011 48MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
49/55
Evolution of design techniques
3/1/2011 49
MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
50/55
COMPUTER SYSTEMS ENGINEERING
3/1/2011 50
MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
51/55
Software Crisis
Software products:
Fail to meet user requirements.
Frequently crash. Expensive.
Difficult to alter, debug, and enhance.
Often delivered late. Use resources non-optimally
3/1/2011 51
MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
52/55
Software Crisis (cont.)
3/1/2011 52
MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
53/55
Factors Contributing to the Software
Crisis
Larger problems
Lack of adequate training in software
engineering
Increasing skill shortage
Low productivity improvements.
3/1/2011 53
MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
54/55
Types of Software Projects
Software products
Outsourced projects Indian companies have focused on
outsourced projects.
3/1/2011 54
MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING
-
8/7/2019 intr SE
55/55
Reference
Fundamentals of Software Engineering,
Prentice-Hall of India, By R.Mall CHAPTER -1.
Software Engineering: A Practitioners
Approach,TMH, By R.S.Pressman,6th Edition,
CHAPTER-1.
3/1/2011
MODULE:I INTRODUCTION TO SOFTWARE
ENGINEERING 55