6
1 Life Cycle of Software • Specification • Design Risk Analysis – Verification • Coding • Testing – Refining – Production • Maintenance

1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance

Embed Size (px)

Citation preview

Page 1: 1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance

1

Life Cycle of Software

• Specification• Design

– Risk Analysis– Verification

• Coding• Testing

– Refining– Production

• Maintenance

Page 2: 1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance

2

Modularity

• Abstraction– Separates the purpose of a module from its

implementation

• Abstract data type – collection of data and a set of operations on

the data

• Information Hiding

• Top Down Design

Page 3: 1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance

3

Object Oriented Design

• Encapsulation– Objects combine data and operations

• Inheritance– Classes can inherit properties from other

classes

• Polymorphism– Objects can determine appropriate operations

at execution time

Page 4: 1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance

4

Design Guidelines

• Use OOD and TDD together– Develop abstract data types and algorithms together

• Use OOD for problems that primarily involve data

• Use TDD to design algorithms for an objects operations

• Consider TDD for problems that emphasize algorithms over data

• Focus on what not how• Reuse

Page 5: 1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance

5

Key Programming Issues

• Modularity• Modifiability• Ease of Use

– Prompt for input– Echo the input– Label the output

• Fail-safe programming• Style• Debugging

Page 6: 1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance

6

Style

• Extensive use of functions

• Use of private data members

• No global data

• Proper use of reference arguments

• Error handling

• Readability

• Documentation