Coupling and Cohesion
Lecture 12 details the two most vital qualitative and quantitative metrics in software engineering: Coupling and Cohesion. Coupling measures the degree of interdependence between software modules. The lecture classifies coupling levels from worst to best: Content coupling (one module directly modifies another's internal data), Common coupling (sharing global variables), Control coupling (one module controls the execution flow of another via flags), Stamp coupling (passing entire data structures when only a field is needed), Data coupling (passing only atomic data parameters, the ideal coupling level), and Uncoupled. Cohesion measures the single-mindedness and functional relatedness of elements within a module. The lecture examines cohesion levels from worst to best: Coincidental, Logical, Temporal, Procedural, Communicational, Sequential, and Functional cohesion (the ideal state where a module performs exactly one well-defined task). Defensive programming practices illustrate safe file handling, resource leak prevention, and robust input validation in C++ and Java environments. Exception handling mechanisms demonstrate try-catch-finally blocks, structured error propagation, and eliminating silent runtime failures. Software portability guidelines detail isolating hardware-dependent logic, handling endianness, and standardizing primitive data type representations. Verification and validation activities contrast static software inspections and walkthroughs with dynamic code execution testing techniques. Testing paradigms emphasize finding defects systematically, contrasting developer testing mindsets with destructive verification approaches. Black-box testing strategies evaluate equivalence class partitioning and boundary value analysis to design high-coverage test case suites. White-box testing methodologies analyze control flow graphs, cyclomatic complexity calculations, and branch and statement coverage criteria. Unit testing protocols establish test drivers and stubs to isolate software modules and verify functional correctness before system integration. Formal inspection processes demonstrate the Fagan inspection methodology to detect defects early and reduce overall software maintenance expenditure. Debugging methodologies guide students through systematic backtracking, cause elimination, and fault isolation to eliminate software anomalies. Bug classifications, including Bohrbugs, Heisenbugs, Mandelbugs, and Schroedinbugs, explain non-deterministic and concurrency-related failure modes. Systematic preparation on VU SIGMA empowers students to achieve outstanding grades in university examinations through structured practice and verified feedback.
No questions available yet.
There are currently no examination questions published for Coupling and Cohesion. Explore other curriculum units or build a custom quiz with the practice builder.