21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• Exercises<br />

6.1 What is modularity and why is it important?<br />

Answers to self-test questions 85<br />

6.2 Argue <strong>for</strong> and against restricting components to about seven statements.<br />

6.3 Look at the way that the library methods are called within a library available to you –<br />

say the Java or C# library. Assess what <strong>for</strong>ms of coupling are demonstrated by the<br />

methods.<br />

6.4 Examine any software or software design that you have available. How are the<br />

components coupled? What <strong>for</strong>ms of coupling and cohesion are present? Analyze<br />

the component types. Is in<strong>for</strong>mation hiding in use? Can the structure be improved?<br />

6.5 Is there any correspondence between:<br />

(a) any one <strong>for</strong>m of cohesion and in<strong>for</strong>mation hiding?<br />

(b) any <strong>for</strong>m of coupling and in<strong>for</strong>mation hiding?<br />

6.6 Does functional decomposition tend to lead to components that possess a particular<br />

<strong>for</strong>m of cohesion? If so, which?<br />

6.7 In functional decomposition, the components are functionally independent but they<br />

may act upon shared data. Is functional decomposition compatible with in<strong>for</strong>mation<br />

hiding?<br />

6.8 Does the data structure design method lead to a program structure that exhibits any<br />

particular types of coupling and cohesion? How does in<strong>for</strong>mation hiding relate to, or<br />

contrast with, data structure design?<br />

6.9 Does data flow design create a program structure that exhibits any particular types of<br />

coupling and cohesion?<br />

6.10 Does object-oriented design tend to create software structures that exhibit any particular<br />

types of coupling and cohesion?<br />

6.11 Consider a programming language with which you are familiar. What types of coupling<br />

are allowed? What types are not permitted?<br />

6.12 Compare and contrast the features <strong>for</strong> modularity provided by C++, Ada, Java and<br />

Unix.<br />

Answers to self-test questions<br />

6.1 In order to understand one component, we are <strong>for</strong>ced into studying them<br />

all.<br />

6.2 The method per<strong>for</strong>ms a single well-defined action. The parameters are<br />

pure data. This is functional cohesion.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!