What to Measure? | Komputasi | Suatu Permulaan
4.4 Measuring Module Cohesion
We already encountered the term cohesion in Chapter 2, where it was argued that each unit of design, whether it is at the modular level or component level, should be focused on a single purpose. This means that it should have very few responsibilities that are logically related. Terms such as “intramodular functional relatedness” or “modular strength” have been used to address the notion of design cohesion. Cohesion of a unit of high-level or of a detail-level design can be defined as an attribute that identifies to which degree the elements within that unit belong together or are related to each other.4.4.1 Internal Cohesion or Syntactic Cohesion
Internal cohesion can best be understood as syntactic cohesion evaluated by examining the code of each individual module. It is thus closely related to the way in which large programs are modularized. Modularization can be accomplished for a variety of reasons and in a variety of ways. A very crude modularization is to require that each module should not exceed certain size, e.g., 50 lines of code. This would arbitrarily quantize the program into blocks of about 50 lines each. Alternatively, we may require that each unit of design has certain prescribed size. For example, a package is required to have certain number of classes, or each class a certain number of attributesParts
» | Komputasi | Suatu Permulaan
» Why Software Engineering Is Difficult
» Book Organization What is Software Engineering?
» Symbol Language Software Engineering Lifecycle
» Requirements Analysis and System Specification
» Object-Oriented Analysis and the Domain Model
» Object-Oriented Design Software Engineering Lifecycle
» Case Study 1: From Home Access Control to Adaptive Homes
» Case Study 2: Personal Investment Assistant
» Relationships and Communication Object Model
» Design of Objects Object Model
» PROPHASE 2. METAPHASE TELOPHASE 3. ANAPHASE
» Project 2: Restaurant Automation Student Team Projects
» Stock Market Investment Fantasy League
» Web-based Stock Forecasters Student Team Projects
» Summary and Bibliographical Notes
» Agile Development Software Development Methods
» Types of Requirements Requirements Analysis and Use Cases
» Use Cases Requirements Analysis and Use Cases
» Requirements Elicitation through Use Cases
» Modeling System Workflows Requirements Analysis and Use Cases
» Why Software Engineering Is Difficult 1
» Identifying Concepts Analysis: Building the Domain Model
» Concept Associations and Attributes
» Contracts: Preconditions and Postconditions
» Design Principles for Assigning Responsibilities
» Class Diagram Design: Assigning Responsibilities
» Why Software Engineering Is Difficult 2
» Software Architecture | Komputasi | Suatu Permulaan
» Implementation | Komputasi | Suatu Permulaan
» World Phenomena and Their Abstractions
» Events, Signals, and Messages
» Context Diagrams and Domains
» Systems and System Descriptions
» Basic Formalisms for Specifications
» UML Object Constraint Language OCL
» TLA+ Notation Notations for System Specification
» Problem Frame Notation Problem Frames
» Problem Decomposition into Frames
» Composition of Problem Frames
» Specifying Goals Summary and Bibliographical Notes
» Measurement Theory Fundamentals of Measurement Theory
» What to Measure? | Komputasi | Suatu Permulaan
» Cyclomatic Complexity Measuring Complexity
» Internal Cohesion or Syntactic Cohesion
» Semantic Cohesion Measuring Module Cohesion
» Algorithmic Information Content Psychological Complexity
» Applications of Publisher-Subscriber Indirect Communication: Publisher- Subscriber
» Control Flow Indirect Communication: Publisher- Subscriber
» Pub-Sub Pattern Initialization Indirect Communication: Publisher- Subscriber
» Exclusive Resource Access—Exclusion Synchronization
» Cooperation between Threads—Condition
» Concurrent Programming Example Concurrent Programming
» Broker Pattern Broker and Distributed Computing
» Java Remote Method Invocation RMI
» Symmetric and Public-Key Cryptosystems
» Release publicly the public key, which is the pair of numbers n and E, K
» Syntax Structure of XML Documents
» Document Type Definition DTD
» Namespaces Structure of XML Documents
» XML Parsers Structure of XML Documents
» XML Schema Basics XML Schemas
» Models for Structured Content
» XPointer and Xpath Indexing and Linking
» Document Transformation and XSL
» Components, Ports, and Events
» Property Access Event Firing
» Custom Methods JavaBeans: Interaction with Components
» Run-Time Type Identification Computational Reflection
» Automatic Component Binding Computational Reflection
» State Persistence for Transport
» Port Interconnections A Component Framework
» Levels of A Component Framework
» Service Oriented Architecture | Komputasi | Suatu Permulaan
» The SOAP Section 5 Encoding Rules
» SOAP Communication SOAP Communication Protocol
» Binding SOAP to a Transport Protocol
» The WSDL 2.0 Building Blocks
» Defining a Web Service’s Abstract Interface
» Binding a Web Service Implementation
» Using WSDL to Generate SOAP Binding
» Non-functional Descriptions and Beyond WSDL
» UDDI for Service Discovery and Integration
» Server-side Development with Axis
» Client-side Development with Axis
» OMG Reusable Asset Specification Summary and Bibliographical Notes
» Aspect-Oriented Programming | Komputasi | Suatu Permulaan
» OMG MDA | Komputasi | Suatu Permulaan
» Autonomic Computing | Komputasi | Suatu Permulaan
» Software-as-a-Service SaaS End User Software Development
Show more