software engineering unit 5

24
SOFTWARE ENGINEERING UNIT-5 ABHIMANYU MISHRA ASSISTANT PROF.(CSE) JETGI 24/12/16 1 Abhimanyu Mishra(CSE) JETGI

Upload: abhimanyu-mishra

Post on 23-Jan-2018

218 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Software Engineering unit 5

SOFTWARE ENGINEERING

UNIT-5

ABHIMANYU MISHRA

ASSISTANT PROF.(CSE)

JETGI

24/12/16 1Abhimanyu Mishra(CSE) JETGI

Page 2: Software Engineering unit 5

Software Evolutionary.

Need for maintenance.

Categories of maintenance.

Cost of maintenance.

Software Re-engineering.

Reverse engineering.

Software configuration management activities.

Change control process.

Software version control.

Overview of CASE Tools.

COCOMO Model, RMA, Software Risk Analysis & Management.

CONTENTS

24/12/16 2Abhimanyu Mishra(CSE) JETGI

Page 3: Software Engineering unit 5

The software development evolution processes vary considerably on the type of

software being maintained, development process used in the organization and the

people involved in the process.

System change proposal are drivers for system evolution in the organization.

These changes proposal may involve existing requirements that have not been

implemented in the released system, request for new requirements and the bugs

repair from stakeholders and new ideas and proposals for software improvement

from system development team.

The evolution process includes fundamental activities of change analysis, release

planning, system implementation and release a system to customer. The cost and

impact of these changes are accessed to see how much system is affected by the

change and how much it might cost to implement the change.

SOFTWARE EVOLUTION :

24/12/16 3Abhimanyu Mishra(CSE) JETGI

Page 4: Software Engineering unit 5

24/12/16 4Abhimanyu Mishra(CSE) JETGI

Change Identification process

New systemChange

Proposal

Software Evolution Process

Page 5: Software Engineering unit 5

24/12/16 5Abhimanyu Mishra(CSE) JETGI

SOFTWARE MAINTENANCE:

Software maintenance is recognize as an important part of software life cycle.

It is the process of changing system after it has been delivered to the customer.

“According to the standard for software maintenance 1992, software

maintenance is modification of software product after delivery to correct

faults, to improve performance of other attributes or to adopt the product to a

modified environment”.

Need for software maintenance- All hardware system needs maintenance as

due to ageing the hardware wear out and need replacement, but software does

not age and don’t wear out then what is the need for maintenance. The

software needs maintenance due to:-

i. Over a period of time, software’s original requirement may change to

reflect the customer’s need.

ii. Errors undetected during software development may be found during the

use and require correction.

iii. With time new technologies are introduced such as new hardware, o.s , etc.

Page 6: Software Engineering unit 5

24/12/16 6Abhimanyu Mishra(CSE) JETGI

CATEGORIES OF MAINTENANCE:

I. Corrective maintenance- Corrective maintenance involves changing a

software application to remove errors and bugs. While in software

development attention is paid to remove all errors and bugs but even some

errors and bugs are left uncovered and they come in notice after a system

has been operation for a long time.

II. Adaptive maintenance- This type of maintenance is concerned with

external changes. Even if the software is error free, it is possible that the

environment in which the software works will often changes.

III. Perfective maintenance- Perfective maintenance is an activity that we

undertake to improve the maintainability, performance and other attributes

of our application. It include all change insertion , deletions, modification,

extension and enhancement made to the application to meet evolving user

need.

Page 7: Software Engineering unit 5

The cost of software maintenance is very high. More than 65% of software lifecycle cost is expended in the maintenance activities.

Cost of software maintenance can be control by postponing the developmentopportunity of software maintenance but this will cause following intangible cost:-

Customer dissatisfaction when request for repair cannot be addresses in a manner.

Reduction in overall software quality as a result of changes that introduce hiddenerrors in maintained software.

M=P+K(C-D)

M= Total efforts expended on maintenance

P= Productive software

K= An empirical constant

C= Measure of complexity

D= Measure of degree of familiarity with the software.

COST OF SOFTWARE MAINTENANCE:

24/12/16 7Abhimanyu Mishra(CSE) JETGI

Page 8: Software Engineering unit 5

24/12/16 8Abhimanyu Mishra(CSE) JETGI

SOFTWARE RE-ENGINEERING:

Software re-engineering is concerned with taking existing legacy systems and

re- implementing them to make them more maintainable.

“The IBM user group guide define software engineering as:- The process of

modifying the internal mechanisms of a system or program or the data

structures of a system or program without changing its functionality”.

The following suggestions may be useful for the modification of the legacy

code:

Study code well before attempting changes.

Concentrate on overall control flow and not coding.

Heavily comment internal code.

Create cross reference.

Build symbol tables.

Keep detailed maintenance document

Use modern design technique.

Page 9: Software Engineering unit 5

24/12/16 9Abhimanyu Mishra(CSE) JETGI

BENEFITS OF RE-ENGINEERING PHASE:

Costs- Evidence from a number of US project suggest that re-

engineering of an existing software system cost significantly less than

new.

Lower Risk- Software re- engineering is based on incremental

improvement of system, rather than radical system replacement.

Better use of existing staff

Incremental Development

Page 10: Software Engineering unit 5

REVERSE ENGINEERING

• Reverse engineering, in computer programming, is a technique used to

analyze software in order to identify and understand the parts it is

composed of. The usual reasons for reverse engineering a quantity of

software are to recreate the program, to build something similar to it, to

exploit its weaknesses or strengthen its defenses.

12/31/2016 Abhimanyu Mishra(CSE) JETGI 10

Page 11: Software Engineering unit 5

DIAGRAM:-

Reverse Engineering

12/31/2016 Abhimanyu Mishra(CSE) JETGI 11

Proposal

Description

Code

Performance

Page 12: Software Engineering unit 5

WHAT IS CAPABILITY MATURITY MODEL?

The Software Engineering Institute (SEI) Capability Maturity Model (CMM)

specifies an increasing series of levels of a software development group. The

higher level, better the software development process, hence getting each

level is an exclusive and inefficient process

12/31/2016 Abhimanyu Mishra(CSE) JETGI 12

Page 13: Software Engineering unit 5

There are five levels:

(i) Initial

(ii) Repeatable

(iii) Defined

(iv) Managed

(v) Optimizing

12/31/2016 Abhimanyu Mishra(CSE) JETGI 13

Page 14: Software Engineering unit 5

Diagram: CAPABILITY MATURITY MODEL

Optimizing

(Process)

Managed

(Process measure and controlled)

Defined

(Categories for the Organization )

Repeatable

(Its often reactive)

Initial

(Unpredictable and poorly controlled)

12/31/2016 Abhimanyu Mishra(CSE) JETGI 14

Page 15: Software Engineering unit 5

CHANGE CONTROL PROCESS

Change control is a methodical approach to handling all changes complete to a product or system. The purpose are to ensure that no redundant changes are made, that all changes are documented, that services are not without need disrupted and that resources are used efficiently.

12/31/2016 Abhimanyu Mishra(CSE) JETGI 15

Page 16: Software Engineering unit 5

Diagram: (CCP)

12/31/2016 Abhimanyu Mishra(CSE) JETGI 16

Identify.

Impleme

nt

Approve.

Access.

Follow-Up

Page 17: Software Engineering unit 5

SOFTWARE VERSION CONTROLS

Version control systems are a category of software tools that help a software team manage changes to source code finished time. Version control software keeps track of every adjustment to the code in a special kind of database. If a error are made, developers could turn back the clock and compare earlier versions of the code to help fix the error while minimizing interruption to all team members.

12/31/2016 Abhimanyu Mishra(CSE) JETGI 17

Page 18: Software Engineering unit 5

TASK A

Branch Merge

Development

(Ver1.0) (Ver 1.1) Ver(1.2) Ver(1.3) Ver(1.4)

Branch Merge

TASK B

12/31/2016 Abhimanyu Mishra(CSE) JETGI 18

Page 19: Software Engineering unit 5

CASE (COMPUTER-AIDED SOFTWARE

ENGINEERING)

CASE (computer-aided software engineering) is the use of a computer-assisted method to organize and control the development of software,especially on large, complex projects involving many software componentsand people. Using CASE allows designers, code writers, testers, planners, andmanagers to share a common view of where a project stands at each stage ofdevelopment. CASE helps ensure a disciplined, check-pointed process. A CASEtool may portray progress (or lack of it) graphically. It may also serve as arepository for or be linked to document and program libraries containing theproject's business plans, design requirements, design specifications, detailedcode specifications, the code units, test cases and results, and marketing andservice plans.

12/31/2016 Abhimanyu Mishra(CSE) JETGI 19

Page 20: Software Engineering unit 5

Diagram: CASE

Upper Case

Integrated Case

Lower Case

12/31/2016 Abhimanyu Mishra(CSE) JETGI 20

Analysis

Planning

Design

Implementation

Testing

Maintenance

Page 21: Software Engineering unit 5

COCOMO MODEL

The Constructive Cost Model (COCOMO) is an algorithmic software cost

estimation model developed by Barry Boehm. The model are using a basic

deterioration formula, with parameters that is resulting from antique project

data and current project characteristics.

12/31/2016 Abhimanyu Mishra(CSE) JETGI 21

Page 22: Software Engineering unit 5

Diagram: COCOMO Model

12/31/2016 Abhimanyu Mishra(CSE) JETGI 22

COCOMO

Intermediate COCOMO model

Complete COCOMO model

Basic COCOMO model

Page 23: Software Engineering unit 5

SOFTWARE RISK MANAGEMENT

Risk is an anticipation of loss, a potential problem that not occur in the future. It is generally caused due to lack of information, control or time. A possibility of grief from loss in software development process is called a software risk. Loss can be anything, increase in production cost, development of poor quality software, not being able to complete the project on time. Software risk exists because the future is uncertain and there are many well-known and indefinite things that cannot be incorporated in the project plan. A software risk can be of two types (a) internal risks that are within the control of the project manager (b) external risks that are beyond the control of project manager. Risk management is carried out to:

(i) Identify the risk

(ii) Reduce the impact of risk

(iii) Reduce the probability or like of risk

(iv) Risk monitoring

12/31/2016 Abhimanyu Mishra(CSE) JETGI 23

Page 24: Software Engineering unit 5

Problem? Fill the box

12/31/2016 Abhimanyu Mishra(CSE) JETGI 24

Risk Management

Process