Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability...

9
Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability Software Software Engineering Engineering II II

Transcript of Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability...

Page 1: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-1

MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad

Lesson 9: Maintainability

Lesson 9: Maintainability

Software Software Engineering Engineering

IIII

Page 2: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-2

MEF-TRANSITION-P3-L9-2 Dr. M.E. Fayad

Lesson ObjectivesLesson Objectives

Understand why OO helps maintainability

Recognize OO principles that enhance maintainability

Learn how to structure projects to support maintenance

Objectives

Page 3: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-3

MEF-TRANSITION-P3-L9-3 Dr. M.E. Fayad

SOFTWARE MAINTENANCE CATEGORIES

• Corrective maintenance - Correcting

• Perfective maintenance - Upgrading

• Adaptive maintenance - Rehosting

• Preventive maintenance

Page 4: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-4

MEF-TRANSITION-P3-L9-4 Dr. M.E. Fayad

TYPICAL MAINTENANCE MODEL

We must throw away

everythingand start over!!!

“Spaghetti”

Page 5: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-5

MEF-TRANSITION-P3-L9-5 Dr. M.E. Fayad

OO ENHANCES COMMUNICATION

1990sMaturing OO MethodsSystem

EngineerSoftwareEngineer

Ailerons, Elevators,and Rudders

Inertial NavigationSystem

Commercial Airplane Block Diagram

AltimeterRadarLanding Gear

Air DataComputer RadiosCompass

45°

CommercialAirplane

??? ?

?

?? ?Assembly

Language

SystemEngineer

SoftwareEngineer

Pre 1970sNo Formal Methods

??

?

SystemEngineer

SoftwareEngineer

1970s - 1980sFunctional and

Early OO Methods

??? ?

?

??

??

??

Top Level

Level 1 Level 1 Level 1 Level 1 Level 1

Level 2 Level 2

Level 2 Level 2 Level 2

Level 3

OO Maps the Problem Domain to the Solution DomainOO Maps the Problem Domain to the Solution Domain

Page 6: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-6

MEF-TRANSITION-P3-L9-6 Dr. M.E. Fayad

OO ENFORCES ORDER

VS.

Object-Oriented

Typical Legacy Software

I know aquick fix!!

1985

1993

I don'tunderstand

?!?

David Zeigler

Page 7: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-7

MEF-TRANSITION-P3-L9-7 Dr. M.E. Fayad

.

VS.

Abstractions EffectivelyCommunicate Complex Systems

Reducing Connections MinimizesChances For Error

Localization Packages RelatedInformation

Information Hiding PreventsCorruption Of Details

XQ

14

47

S/N

56

A2

34

-04

1

D

C

Q

Q

D

CQ

Q

OO PRINCIPLES ENHANCE MAINTAINABILITY

Page 8: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-8

MEF-TRANSITION-P3-L9-8 Dr. M.E. Fayad

HOW TO STRUCTURE THE PROJECT TO SUPPORT MAINTENANCE

Software Maintenance

20301993

1992

System

Sensor

Alarm Human

Clock

Hierarchical AbstractionProvides Understandability

T em p era tureM od el3 .2.1.4 .1 1

T emp era tureIn te rface3.2.2.9

Ice D ete ctorModel3.2.1.4.14

ADU M odel3.2.1.4.1

Modify_ OAT_W AT_Dif f

OAT_WAT_Diff

U pd ate_ T e mp_ Trn dc rsM a ch _N u m b e r

Measured_OAT_WAT_Diff

Measured_OAT_WAT_Diff

Update_Ice_Detector

OAT_WAT_Diff_Voltage

BIT_State

Tem p_ T rn d c rs_ S ta te

Measured_Static_Press

M e asu re d _S ta t ic _ Pr es s

ADU Model

3.2.1.4.1

CASE Tools Allow Easy TraversalOf Requirements, Design, And Code

Disciplined Process Critical ToEngineer Quality Objects

Standards ProvideUniformity

DesignStandards Code

Standards

TrainedWork

Teams

MethodDriven

Analysis

Reviews&

Inspections

Self_Test

Filter

q

q

Bias

PressureSensor

Measured_Static_Pressure

Measured_Static_Pressure

Page 9: Maintainability - Page P3-L9-1 MEF-TRANSITION-P3-L9-1 Dr. M.E. Fayad Lesson 9: Maintainability SoftwareEngineeringII.

Maintainability - Page P3-L9-9

MEF-TRANSITION-P3-L9-9 Dr. M.E. Fayad

MAINTENANCE SUMMARY

• Use OO to engineer maintainability into the software product

• OO principles that enhance maintainability are:– Abstraction

– Localization (Cohesion)

– Encapsulation with rigorous interfaces

– Information Hiding

• Software maintainability process elements:– Object-Oriented Software Engineering

– Standards

– Processes

– CASE tools

– Hierarchical abstraction of the problem