Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.

Similar presentations


Presentation on theme: "1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam."— Presentation transcript:

1 1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam

2 2 Mini-Project 2 Plan for March classes App C Essential Software Design Chap 8 Design Characteristics and Metrics Case Study 3 – UML Review Questions

3 3 Due: 2/26/16

4 4

5 5

6 6 MP3 App B UML Diagrams MP3 App A UML DFD

7 7

8 8 Besides the obvious - - - design should match the requirements - - - there are two “basic” characteristics -- Consistency across design : Common UI – looks, logical flow Common error processing Common reports Common system interfaces Common help All design carried to the same depth level Completeness of the design All requirements are accounted for All parts of the design is carried to its completion, to the same depth level Some “Legacy Characterization” of Design Complexity Halstead metrics McCabe’s Cyclomatic Complexity metric (most broadly used) Henry-Kafura Information Flow (Fan-in/Fan-out) metrics Card and Glass design complexity metrics

9 9

10

11 11

12 12

13 13 Easy to: Understand Change Reuse Test Integrate Code It is believed that we can get many of these “easy to’s” if we consider: Cohesion Coupling

14 14 Cohesion of a unit, of a module, of an object, or a component addresses the attribute of “degree of relatedness” within that unit, module, object, or component. Functional Sequential Communicational Procedural Temporal Logical Coincidental Levels of Cohesion where Functional is the “highest” Performing more than 1 unrelated functions Performing 1 single function Higher the better

15 15 Bieman and Ott introduced a measure of program cohesion using the following concepts from program and data slices

16

17 17 Coupling addresses the attribute of “degree of interdependence” between software units, modules or components. Content Coupling Common Coupling Control Coupling Stamp Coupling Data Coupling Passing only the necessary information No Coupling Ideal, but not practical Accessing the internal data or procedural information Levels of coupling where Data coupling is lowest Lower the better

18 18

19 19 A design “guideline” for OO systems that originated from the Demeter System project at: Northeastern University in the 1980’s Aspect-Oriented Programming Project Addresses the design coupling issue through placing constraints on messaging among the objects Limit the sending of messages to objects that are directly known to it

20 20 An object should send messages to only the following kinds of objects: the object itself the object’s attributes (instance variables) the parameters of the methods in the object any object created by a method in the object any object returned from a call to one of the methods of the object any object in any collection that is one of the above categories

21 21

22 22 UI design prototypes: Low fidelity (with cardboards) High fidelity (with “story board” tools) Usability “laboratories test” and statistical analysis # of subjects who can complete the tasks within some specified time Length of time required to complete different tasks Number of times “help” functions needed Number of times “redo” used and where Number of times “short cuts” were used

23 23

24 24 1. What are the two general characteristics of a design that naturally carry over from requirements? Ans: The design is an evolution from requirements. So the two general characteristics are: a) consistency and b) completeness of requirements usually carry over to the design. Page: 166 2. What is the cyclomatic complexity of the design flow shown in Figure 8.4 where the diamond shapes represent decision branches and the rectangles are statements? Ans: The cyclomatic complexity using the simple formula of (# of binary branches + 1), the cyclomatic number of Figure 8.4 is (3+1) or 4. Page: 168 3. What are glue tokens and super glue tokens? Which type contributes more to cohesion and why? Ans: Glue tokens are data tokens that lie in more than one data-slice, and super glue tokens are data tokens that lie in every data-slice. The super glue tokens contribute more to cohesion because they lie in every data slice. Page: 173

25 25 4. What are the levels of cohesion? Ans: There are 7 levels of cohesion listed in the order of worst to best: coincidental, logical, temporal, procedural, communicational, sequential, and functional. Page: 172 5. What are the levels of coupling? Ans: There are 5 levels of coupling listed in the order of worst to best: content, common, control, stamp, and data. Page: 175 6. What are the six C-K metrics in OO? Ans: They are: a) weighted number of methods per class, b) depth of inheritance tree of the class, c) number of children of a class, d) coupling between objects, e) number of responses to a class message, and f) lack of cohesion among methods in a class. Page: 177

26 26 7. What is a depth of inheritance tree (DIT) in C-K metrics, and why may a large DIT be bad for design? Ans: DIT is the maximum length of inheritance from a given class to its “root” class. A large DIT would mean a long length between the root and the class. The increase in this distance increases the chance of error. Page: 178 8. In contrast to general design, what is user interface design interested in? Ans: The general software design is concerned about the software components, their characteristics and their interactions. User interface design is focused on the interaction between the software and its human users; thus both software and human attributes are of concern in user interface design (the people rather than software system). Page: 180-181 9. List four out of the eight rules of user interface design identified by Shneiderman and Plaisant. Ans: There are actually 8: a) consistency, b) provide short cuts, c) informative feedback, d) closure in dialogues, e) simple error handling and prevention, f) permit “re-do”, g) support locus of control, h) reduce the amount of short-term memory needs. Any four of the eight would be fine. Page: 181

27 27 Software Group: UML Tools

28 28

29 29 MP3 Requirement/WeightInside Visio 2013 Page UML Distilled Page Data Flow Diagrams DFD (Context, DFD0, DFD1, DFD2) (30%) 583None (see Video slide 11) Static structure (class) diagram (10%) 59336 State chart diagram (10%) 598108 Sequence diagram (10%) 59554 Deployment diagram (10%) 60198 Component diagram (10%) 600140 Collaboration diagram (10%) 599144 Activity diagram (10%) 596118

30 30 Click on above image to open chapter

31 31 Database Model Diagram Visio 2010 Software Group: Dataflow Model Diagram Visio 2013


Download ppt "1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam."

Similar presentations


Ads by Google