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

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Characterizing “Good” Design Besides the obvious design should match the requirements there are two “basic” characteristics: –Consistency across.
Program Slice Program slice was a concept first discussed by Mark Weiser in the early 1980’s –He especially noticed that when people debug, they trace.
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Object-Oriented Analysis and Design
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
© Copyright 2011 John Wiley & Sons, Inc.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Copyright W. Howden1 Lecture 6: Design Evaluation and Intro to OO Design Patterns.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
PVK-Ht061 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance.
PVK-Ht051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance.
Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance.
SE-565 Software System Requirements More UML Diagrams.
Unified Modeling Language
INTRODUCTION TO PROGRAMMING STRUCTURE Chapter 4 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Coupling and Cohesion Source:
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
SE: CHAPTER 7 Writing The Program
Concepts of Software Quality Yonglei Tao 1. Software Quality Attributes  Reliability  correctness, completeness, consistency, robustness  Testability.
Chapter 7 System models.
Criteria Based Software Product Integration Architecture F. Tsui Southern Polytechnic State University.
Cohesion and Coupling CS 4311
Systems analysis and design, 6th edition Dennis, wixom, and roth
System Implementation
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
GRASP: Designing Objects with Responsibilities
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
What to remember from Chap 13 (Logical architecture)
Criteria Based Software Product Integration Architecture (2007) F. Tsui Kennesaw State University (Southern Polytechnic State University)
An Automatic Software Quality Measurement System.
Measurement and quality assessment Framework for product metrics – Measure, measurement, and metrics – Formulation, collection, analysis, interpretation,
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Object-Oriented Design. 1 Objects and concerns Objects have a concern, meaning they have a purpose Not concerned as in worried All code should have a.
INFO 620Lecture #71 Information Systems Analysis and Design Design Class Diagrams and others INFO 620 Glenn Booker.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
1 Week 6 Software Engineering Fall Term 2015 Marymount University School of Business Administration Professor Suydam.
Metrics "A science is as mature as its measurement tools."
1 Week 5 Software Engineering Fall Term 2015 Marymount University School of Business Administration Professor Suydam.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
School of Business Administration
School of Business Administration
7. Modular and structured design
Coupling and Cohesion Rajni Bhalla.
School of Business Administration
Design Characteristics and Metrics
Class and Method Design
Design Metrics Software Engineering Fall 2003
Design Metrics Software Engineering Fall 2003
Cohesion and Coupling Chapter 5, Pfleeger 01/01/10.
Improving the Design “Can the design be better?”
CS223: Software Engineering
University of Houston-Clear Lake
Software Design CMSC 345, Version 1/11.
Software Design Lecture : 9.
PPT6: Object-oriented design
Cohesion and Coupling.
Chapter 8: Design: Characteristics and Metrics
Presentation transcript:

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

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 Due: 2/26/16

4

5

6 MP3 App B UML Diagrams MP3 App A UML DFD

7

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

11

12

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 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 Bieman and Ott introduced a measure of program cohesion using the following concepts from program and data slices

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

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 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

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

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: 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: 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 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: 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: 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 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: 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: 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 Software Group: UML Tools

28

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%) State chart diagram (10%) Sequence diagram (10%) Deployment diagram (10%) Component diagram (10%) Collaboration diagram (10%) Activity diagram (10%)

30 Click on above image to open chapter

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