10
Chapter 3 SOFTWARE ENGINEERING PRACTICE SOFTWARE SYSTEM ENGINEERING (260CT)

Software System Engineering - Chapter 3

Embed Size (px)

DESCRIPTION

Software System Engineering

Citation preview

Page 1: Software System Engineering - Chapter 3

Chapter 3 SOFTWARE ENGINEERING

PRACTICE

SOFTWARE SYSTEM ENGINEERING

(260CT)

Page 2: Software System Engineering - Chapter 3

THE ESSENCE OF PRACTICE

Understand the problem Plan a solution Carry out the plan Examine the result for accuracy

Page 3: Software System Engineering - Chapter 3

CORE PRINCIPLES

The reason it all exist Keep it simple, stupid Maintain the vision What you produce, other will consume Be open to the future Plan ahead for reuse think

Page 4: Software System Engineering - Chapter 3

Communication practice Listen Prepare before you communicate Someone should facilitate the activity face-to-face communication is best Takes notes and document decisions Strive for collaboration Stay focused, modularize your discussion If something is unclear, draw picture Negotiation is not a contest or a game. It works

best when both parties win

Page 5: Software System Engineering - Chapter 3

Planning practice Understand the scope of the project Involve the customer in the planning activity Recognize that planning is iterative Estimate based on what you know Consider risk as you define the plan Be realistic Adjust granularity as you define the plan Define how you intend to ensure quality Describe how you intend to accommodate change Track the plan frequently and make adjustment as

required

Page 6: Software System Engineering - Chapter 3

Analysis modeling principles The information domain of a problem must be

represented and understood The functions that the software perform must

be define The behavior of the software The models that depict information, function

and behavior must be partitioned in a manner that uncovers detail in a layered fashion

The analysis task should move from essential information toward implementation detail

Page 7: Software System Engineering - Chapter 3

Design modeling practice Design should be traceable to the analysis model Always consider the architecture of the system to be built design of data is as design of processing function Interfaces must be designed with care User interface design should be tuned to the needs of the

end-user Component level design should be functionally

independent Components should be loosely coupled to one another

and to the external environment Design representations should be easily understandable The design should be developed iteratively

Page 8: Software System Engineering - Chapter 3

Coding principles

Preparation Coding validation

Page 9: Software System Engineering - Chapter 3

Testing principles

All tests should be traceable to customer requirements

Tests should be planned long before testing begins

The pareto principles applies to software testing

Testing should begin in the small and progress toward testing in the large

Exhaustive testing is not possible

Page 10: Software System Engineering - Chapter 3

Deployment

Customer expectations for the software must be managed

A complete delivery package should be assembled and tested

A support regime must be established before the software is delivered

Buggy software should be fixed first, delivered later