click below
click below
Normal Size Small Size show me how
CECS 343 Quiz7- CH.8
| Question | Answer |
|---|---|
| What are the key characteristics of good design? | Consistency and completeness |
| What are some examples of consistency across design? | Common UI, Common error processing, Common reports, Common system interfaces, Common help, All design carried to the same depth level |
| What is common UI? | Looks and logical flow |
| What are some explanations of 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, Henry-Kafura Information Flow metrics, Card and Glass design complexity metrics |
| Out of these 4, which is the most broadly used: | McCabe’s Cyclomatic Complexity metric |
| Who developed Halstead Metrics? | Maurice Halstead of Purdue |
| When was Halstead Metrics developed? | 1970s |
| What is Halstead Metrics used for? | Analyzing program source code complexity |
| Which four fundamental units of measurements from code are using in Halstead Metrics? | n1, n2, N1, N2 |
| In Halstead Metrics, n1 represents: | number of distinct operators |
| In Halstead Metrics, n2 represents: | number of distinct operators |
| In Halstead Metrics, N1 represents: | sum of all occurrences of the n1 |
| In Halstead Metrics, N2 represents: | sum of all occurrences of the n2 |
| Program vocabulary, n = | n1 + n2 |
| Program length, N = | N1 + N2 |
| Using these, he defined four metrics: | Volume, Potential Volume, Program Implementation Level, Effort |
| Volume, V = | N * (Log_2 n) |
| Potential Volume, V^@ = | (2 + 2n^@)log_2(2+2n^@) |
| Program Implementation Level, L = | V^@/V |
| Effort, E = | V/L |
| Halstead metrics mainly measures _______________, and sometimes also ________________ is a suspect | Lexical complexity; potential volume |
| Cyclomatic complexity = | E - N + 2p |
| In the cyclomatic complexity formula, E represents: | number of edges |
| In the cyclomatic complexity formula, N represents: | number of nodes |
| In the cyclomatic complexity formula, p represents: | number of connected components (usually 1) |
| Cyclomatic complexity number can also be computed as followed: | Number of binary decision +1; Number of closed regions +1 |
| T.J. McCabe's Cyclomatic Complexity metric is based on the belief that program quality is related to: | the complexity of the program "control flow" |
| Henry and Kafura metric measures: | Inter-modular flow |
| In Henry and Kafura metrics, Fan-in: | number of inter-modular flow into a program |
| In Henry and Kafura metrics, Fan-out: | number of inter-modular flow out of a program |
| In Module's Complexity, Cp = | (fan-in x fan-out)^2 |
| Card and Glass used the same concept of fan-in and fan-out to describe design complexity: | Structural complexity of module x, Data complexity, System complexity |
| Structural complexity, Sx = | (fan-out)^2 |
| Data complexity, Dx = | Dx = Px/(fan-out+1) |
| Px: | represents the number of variables passed to and from the module |
| System complexity, Cx = | Sx + Dx |
| Card and Glass is considered a: | Higher-level complexity |
| In Henry and Kafura metric measures the inter-modular flow, which includes: | Parameter passing, global variable access, inputs, outputs |
| "Easy to" attributes (Hint: There's 6): | Understand, Change, Reuse, Test, Integrate, Code |
| We can get many of these "easy to's" if we consider: | Cohesion and Coupling |
| Cohesion: | a unit, of a module, of an object, or of a component addresses the attribute of "degree of relatedness" within that unit, module, object, or component |
| Cohesion refers to: | Degree of relatedness within a module |
| Higher cohesion is: | Better |
| Beiman and Ott introduced a measure of program cohesion using the following concepts from program and data slices: | Data token, slice, data slice, glue tokens, super glue tokens |
| Data token: | any occurrence of variable or constant in the program |
| Slice: | the collection of all the statements that can affect the value of a specific variable of interest |
| Data slice: | the collection of all the data tokens in the slice that will affect the value of a specific variable of interest |
| Glue tokens: | the data tokens in the program that lie in more than one data slice |
| Super glue tokens: | the data tokens in the program that lie in every data slice of the program |
| Measurement program cohesion through two metrics: | Weak functional cohesion and strong functional cohesion |
| Weak functional cohesion = | (# of glue tokens)/(total # of data tokens) |
| Strong functional cohesion = | (# of super glue tokens)/(total # of data tokens) |
| What does coupling address in software design? | degree of interdependence between soft units, modules, or components |
| Levels of couplings where data coupling is | lowest (lower the better) |
| What is content coupling? | accessing the internal data or procedural information |
| What is data coupling? | passing only the necessary information |
| What is true about no coupling? | ideal, but not practical |
| What are some examples of Chidamber and Kemerer (C-K) OO Metrics? | Weighted Methods per Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Coupling Between Object Classes (CBO), Response for a Class (RFC), Lack of Cohesion in Methods (LCOM) |
| What is LCOM? | a reverse measure in that high LCOM indicates low cohesion and possible high complexity |
| In LCOM, #p = | number of pairs of methods in class that have no common instance variables |
| In LCOM, #q = | number of pairs of methods in class that have common instance variables |
| What is the formula for LCOM? | LCOM = #p - #q |
| Cohesion is _________ at the low level, and ________ at the high level | weak; strong |
| Coupling is _________ at the low level and _________ at the high level | loose; tight |
| What is the Origin of Law of Demeter? | A design “guideline” for OO systems that originated from the Demeter System project |
| Where did the Law of Demeter originate? | Northeastern University in the 1980s |
| What project is associated with the origin of the Law of Demeter? | Aspect-Oriented Programming Project |
| What is the main purpose of the Law of Demeter origin design goal? | Addresses the design coupling issue through placing constraints on messaging among the objects |
| What is the key limitation introduced by the Law of Demeter origin? | Limit the sending of messages to objects that are directly known to it |
| What are Mandel’s three golden rules for UI design? | Place the user in control, Reduce the users’ memory load (G. Miller’s 7 + or – 2), Consistency (earlier: design completeness and consistency) |
| What are Shneiderman and Plaisant’s eight rules for design? | Consistency, Short cuts for frequent (or experienced) users, Informative feedback, Dialogues should result in closure, Strive for error prevention and simple error handling, Easy reversal of action, Internal locus of control, Reduce short-term memory |
| Describe UI design prototypes: | Low fidelity (with cardboards), High fidelity (with “storyboard” tools) |
| Describe testing methods used in UI design: | Usability “laboratories test” and statistical analysis |
| What measurement is used in UI usability evaluation? | Number of subjects who can complete the tasks within some specified time |
| What represents a UI usability performance measure? | Length of time required to complete different tasks |
| What metric is used in usability testing for support usage? | Number of times “help functions need” |
| Which usability metric tracks user correction behavior? | Number of times “redo” used and where |
| Which metric evaluates efficiency in UI interaction? | Number of times “short cuts” were used |
| What are the two UI design prototypes: | Low fidelity (with cardboards), High fidelity (with “storyboard” tools) |
| What is measured in usability "laboratories test" and statistical analysis? | Number of subjects who can complete the tasks within some specified time, Length of time required to complete different tasks, Number of times “help functions need”, Number of times “redo” used and where, Number of times “short cuts” were used |
| According to the Law of Demeter, which set of objects can receive messages? (Part 1) | 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 method of the object, etc. |
| According to the Law of Demeter, which set of objects can receive messages? (Part 2) | Any object in any collection that is one of the above categories |