Subjects
Applied Mathematics for Electrical Engineering - 3130908
Complex Variables and Partial Differential Equations - 3130005
Engineering Graphics and Design - 3110013
Basic Electronics - 3110016
Mathematics-II - 3110015
Basic Civil Engineering - 3110004
Physics Group - II - 3110018
Basic Electrical Engineering - 3110005
Basic Mechanical Engineering - 3110006
Programming for Problem Solving - 3110003
Physics Group - I - 3110011
Mathematics-I - 3110014
English - 3110002
Environmental Science - 3110007
Software Engineering - 2160701
Data Structure - 2130702
Database Management Systems - 2130703
Operating System - 2140702
Advanced Java - 2160707
Compiler Design - 2170701
Data Mining And Business Intelligence - 2170715
Information And Network Security - 2170709
Mobile Computing And Wireless Communication - 2170710
Theory Of Computation - 2160704
Semester
Semester - 1
Semester - 2
Semester - 3
Semester - 4
Semester - 5
Semester - 6
Semester - 7
Semester - 8
Software Engineering
(2160701)
SE-2160701
Summer-2018
Question-5b-OR
BE | Semester-
6
Summer-2018
|
04/28/2018
Q5) (b)
4 Marks
Explain the following term in brief<br / 1) Re-Engineering 2) Reverse Engineering
When we need to update the software to keep it to the current market, without impacting its functionality, it is called software re-engineering
It is a process where the design of software is changed and programs are re-written
Legacy software cannot keep tuning with the latest technology available in the market
For example, initially UNIX was developed in assembly language. When language C came into existence, UNIX was re-engineered in C, because working in assembly language was difficult.
Other than this, sometimes programmers notice that few parts of software need more maintenance than others and they also need re-engineering
Re-Engineering Process
Decide
what to re-engineer.
Is it whole software or a part of it?
Perform
Reverse Engineering, in order to obtain specifications of existing software
Restructure
Program if required
For example, changing function-oriented programs into object-oriented programs and re-structure data as required
Apply
Forward engineering concepts in order to get re-engineered software
Reverse Engineering Process
Reverse engineering can extract design information from source code
The abstraction level of a reverse engineering process refers to the sophistication of the design information that can be extracted from source code
Ideally, the abstraction level should be as high as possible
The reverse engineering process should be capable of
Deriving procedural design representations (a low-level abstraction)
Program and data structure information (a somewhat higher level of abstraction)
Object models, data flow models (a relatively high level of abstraction)
Entity relationship models (a high level of abstraction).
As the abstraction level increases, information will allow easier understanding of the program
Interactivity refers to the degree to which the human is “integrated” with automated tools to create an effective reverse engineering process
In most cases, as the abstraction level increases, interactivity must increase
The directionality of the reverse engineering process is one-way, all information extracted from the source code is provided to the software engineer
Questions
Go to Question Paper
Q1
(a)
(b)
(c)
Q2
(a)
(b)
(c)
(c)
(OR)
Q3
(a)
(b)
(c)
Q3
(a)
(OR)
(b)
(OR)
(c)
(OR)
Q4
(a)
(b)
(c)
Q4
(a)
(OR)
(b)
(OR)
(c)
(OR)
Q5
(a)
(b)
(c)
Q5
(a)
(OR)
(b)
(OR)
(c)
(OR)