Software engineering with Ada
Ada: an advanced introduction
Abstraction and specification in program development
Abstraction and specification in program development
Task coupling and cohesion in Ada
ACM SIGAda Ada Letters
ACM SIGAda Ada Letters
IEEE Transactions on Software Engineering
The practical guide to structured systems design: 2nd edition
The practical guide to structured systems design: 2nd edition
Experience implementing a reusable data structure component taxonomy
WADAS '87 Proceedings of the Joint Ada conference fifth national conference on Ada technology and fourth Washington Ada Symposium
ADA Programming Language
Composite Structure Design
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Computer
Object-oriented programming: an objective sense of style
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Deriving modular designs from formal specifications
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Automated support for encapsulating abstract data types
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Supporting the restructuring of data abstractions through manipulation of a program visualization
ACM Transactions on Software Engineering and Methodology (TOSEM)
Software Engineering
Hi-index | 0.00 |
As software systems have become more complex, a search for better abstraction mechanisms has led to the use of abstract data types (ADTs). To more appropriately use ADTs, however, it is imperative that their properties and characteristics be understood. In this paper we present a method of assessing the quality of ADTs in terms of cohesion and coupling. We argue that an ADT that contains and exports only one domain and exports only operations that pertain to that domain has the best cohesive properties, and we argue that ADTs that make neither explicit nor implicit assumptions about other ADTs in the system have the best coupling properties. Formal definitions are presented for each of the cohesion and coupling characteristics discussed. Their application to Ada® packages is also investigated, and we show how a tool can be developed to assess the quality of an Ada package that represents an ADT. We analyzed nearly one hundred Ada ADT packages found in Ada text books, articles about Ada, and student projects and discovered that more than half of them had inferior cohesive characteristics and almost half of them allowed inferior coupling characteristics.