Mapping-Friendly:

CQE-9002: Quality Issues Organized by Practices

 
Quality Issues Organized by Practices
[an error occurred while processing this directive] Definition in a New Window Definition in a New Window
View ID: 9002 Maturity: Preliminary
+ View Data

View Objective

This view (graph) organizes Quality Issues based on the software practices in which they appear.

+ View Metrics
Formal CQE IDs (this view)Micro Elements (this view)Total Catalog
Total Elements76out of16040out of66226
Views0out of77
Quality_Characteristics0out of4141
Quality_Issues76out of112112
Practices40out of4040
Consequences0out of2626
+ Relationships
NatureTypeIDNameView(s) this relationship pertains to
View
HasMember
Pr
Practice
9016Modular Development
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9037Resource Management
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9063Authentication Practices
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9078Memory Management
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9083Iteration Control
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9085Numerical Conversion
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9088Reuse
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9089Code Comments
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9105Data Access Constructs
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9124Layered Architectures
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9131Error/Exception Handling
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9136Cryptography
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9170Initialization Practices
Quality Issues Organized by Practices (primary)9002
HasMember
Pr
Practice
9176Coding Practices
Quality Issues Organized by Practices (primary)9002
9002 - Quality Issues Organized by Practices
+
Pr
Practice
Authentication Practices - (9063)
9002 (Quality Issues Organized by Practices) > 9063 (Authentication Practices)
Authentication Practices
*
Is
Issue
Hard-Coded Credentials Usage for Remote Authentication - (798)
9002 (Quality Issues Organized by Practices) > 9063 (Authentication Practices) > 798 (Hard-Coded Credentials Usage for Remote Authentication)
This pattern identifies situations where a literal value is hard-coded in the application via the Write action, transported throughout the application along the sequence composed of ActionElements with DataRelations, some of which being part of named callable and method control elements, and ultimately used in the remote resource management action; the transport sequence is composed of assignment operations as updates to the value would not be considered as hard-coded (literal) any more.
+
Pr
Practice
Code Comments - (9089)
9002 (Quality Issues Organized by Practices) > 9089 (Code Comments)
Code Comments
*
Is
Issue
Excessive Volume of Commented-out Code - (9161)
9002 (Quality Issues Organized by Practices) > 9089 (Code Comments) > 9161 (Excessive Volume of Commented-out Code)
The software contains an excessive amount of code that has been commented out.
+
Pr
Practice
Coding Practices - (9176)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices)
Coding Practices
*
Is
Issue
Allocation of Memory without Associated Release - (9112)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9112 (Allocation of Memory without Associated Release)
The software allocates memory for a data element, but it does not release the associated memory at a later time.
*
Is
Issue
Class Instance Self Destruction Control Element - (9156)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9156 (Class Instance Self Destruction Control Element)
This pattern identifies situations where the class element executes the control element to destroy itself. As an example of self-destruction control element in C++, the 'delete this' control element.
*
Is
Issue
Creation of Immutable Text Using String Concatenation - (9014)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9014 (Creation of Immutable Text Using String Concatenation)
The software creates an immutable text string using string concatenation operations.
*
Is
Issue
Data Element Aggregating an Excessively Large Number of Non-Primitive Elements - (9005)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9005 (Data Element Aggregating an Excessively Large Number of Non-Primitive Elements)
The software uses a data element that has an excessively large number of sub-elements with non-primitive data types (i.e., aggregated objects).
*
Is
Issue
Data Resource Access without Use of Connection Pooling - (9116)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9116 (Data Resource Access without Use of Connection Pooling)
The software accesses a data resource without using a connection pooling capability.
*
Is
Issue
Float Type Storable and Member Data Element Comparison with Equality Operator - (9138)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9138 (Float Type Storable and Member Data Element Comparison with Equality Operator)
This pattern identifies situations where the floating value 1 and floating value 2 of storable or member data elements of float types, are tested for equality with regular comparison operators in the comparison control element.
*
Is
Issue
Incorrect Type Conversion or Cast - (704)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 704 (Incorrect Type Conversion or Cast)
This pattern identifies situations where the storable element or member element is declared with the datatype in the Create action, then updated with a value that is cast via the type cast action into the second datatype, which is incompatible with the first one.
*
Is
Issue
Invokable Control Element with Variadic Parameter Element - (9062)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9062 (Invokable Control Element with Variadic Parameter Element)
A named-callable or method control element has a signature that supports a variable number of parameters.
*
Is
Issue
Missing Serialization Control Element - (9102)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9102 (Missing Serialization Control Element)
The software contains a serializable data element that does not have an associated serialization method.
*
Is
Issue
Persistent Storable Data Element without Associated Comparison Control Element - (9193)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9193 (Persistent Storable Data Element without Associated Comparison Control Element)
The software uses a storable data element that does not have all of the associated control elements that are necessary to support comparison.
*
Is
Issue
Runtime Resource Management Control Element in a Component Built to Run on Application Servers - (9100)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9100 (Runtime Resource Management Control Element in a Component Built to Run on Application Servers)
This pattern identifies situations where the application uses deployed component from the platform deployed component list, yet uses control elements from the list of low-level resource management API.
*
Is
Issue
Serializable Data Element Containing non-Serializable Item Elements - (9110)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9110 (Serializable Data Element Containing non-Serializable Item Elements)
The software contains a serializable, storable data element, but the data element contains item elements that are not serializable.
*
Is
Issue
Static Member Data Element outside of a Singleton Class Element - (9004)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9004 (Static Member Data Element outside of a Singleton Class Element)
This pattern identifies situations where the static member element is declared as static but its parent class element is not a singleton class, that is, a class element that can be used only once in the 'to' association of a Create action; it does not take into account final static fields.
*
Is
Issue
Storable and Member Data Element Missing Initialization - (456)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 456 (Storable and Member Data Element Missing Initialization)
The software contains a storable or member data element that is not initialized before it is used.
*
Is
Issue
Storable or Member Data Element containing Pointer Item Element without Proper Copy Control Element - (9194)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9194 (Storable or Member Data Element containing Pointer Item Element without Proper Copy Control Element)
This pattern identifies situations where the storable data element or member data element contains the child pointer data element but has no dedicated copy operation or copy constructor element.
*
Is
Issue
Unchecked Return Parameter Value of Invokable Control Element with Read, Write, and Manage Access to Platform or Data Resource - (252)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 252 (Unchecked Return Parameter Value of Invokable Control Element with Read, Write, and Manage Access to Platform or Data Resource)
A named callable control element or method control element performs an action that reads, writes, or manages access to a data or platform resource, but it does not check the return parameter from the action.
*
Is
Issue
Use of Data Element without Invoking Deconstructor Method - (9182)
9002 (Quality Issues Organized by Practices) > 9176 (Coding Practices) > 9182 (Use of Data Element without Invoking Deconstructor Method)
The software accesses a data element but does not later invoke its associated finalize method.
+
Pr
Practice
Cryptography - (9136)
9002 (Quality Issues Organized by Practices) > 9136 (Cryptography)
Software using a broken or risky cryptographic algorithm incurs the risk of sensitive data being compromised.
*
Is
Issue
Broken or Risky Cryptographic Algorithm Usage - (327)
9002 (Quality Issues Organized by Practices) > 9136 (Cryptography) > 327 (Broken or Risky Cryptographic Algorithm Usage)
This pattern identifies situations where the application uses the cryptographic deployed component while it is not part of the list of vetted cryptographic deployed components. As an example, FIPS 140-2 features a list of validated implementations.
+
Pr
Practice
Data Access Constructs - (9105)
9002 (Quality Issues Organized by Practices) > 9105 (Data Access Constructs)
Data Access Constructs
+
Pr
Practice
Data Encapsulation - (9104)
9002 (Quality Issues Organized by Practices) > 9105 (Data Access Constructs) > 9104 (Data Encapsulation)
Data Encapsulation
*
Is
Issue
Data Element Declared Public - (9153)
9002 (Quality Issues Organized by Practices) > 9105 (Data Access Constructs) > 9104 (Data Encapsulation) > 9153 (Data Element Declared Public)
The software contains a data element that has been declared public.
*
Is
Issue
Method Containing Access of a Member Element from Another Class - (9181)
9002 (Quality Issues Organized by Practices) > 9105 (Data Access Constructs) > 9104 (Data Encapsulation) > 9181 (Method Containing Access of a Member Element from Another Class)
A method for a class performs an operation that directly accesses a member element from another class.
*
Is
Issue
Excessive Data Query Operations in a Large Data Table - (9027)
9002 (Quality Issues Organized by Practices) > 9105 (Data Access Constructs) > 9027 (Excessive Data Query Operations in a Large Data Table)
The software performs a data query with a large number of joins and sub-queries on a large data table.
*
Is
Issue
Excessive Execution of Sequential Searches of Data Resource - (9103)
9002 (Quality Issues Organized by Practices) > 9105 (Data Access Constructs) > 9103 (Excessive Execution of Sequential Searches of Data Resource)
The software contains a data query against an SQL table or view that is configured in a way that does not utilize an index and may cause sequential searches to be performed.
*
Is
Issue
Excessive Index Range Scan for a Data Resource - (9187)
9002 (Quality Issues Organized by Practices) > 9105 (Data Access Constructs) > 9187 (Excessive Index Range Scan for a Data Resource)
The software contains an index range scan for a data resource, but the scan can cover a large number of rows.
*
Is
Issue
Excessive Number of Indices for a Large Data Table - (9175)
9002 (Quality Issues Organized by Practices) > 9105 (Data Access Constructs) > 9175 (Excessive Number of Indices for a Large Data Table)
The software uses a data table that contains a large number of indices.
+
Pr
Practice
Error/Exception Handling - (9131)
9002 (Quality Issues Organized by Practices) > 9131 (Error/Exception Handling)
Inconsistent/Incomplete Handling
*
Is
Issue
Declaration of Catch for Generic Exception - (396)
9002 (Quality Issues Organized by Practices) > 9131 (Error/Exception Handling) > 396 (Declaration of Catch for Generic Exception)
This pattern identifies situations where the named callable control element or method control element contains the catch unit which declares to catch the exception parameter whose datatype is part of the list of overly broad exception datatypes. With Java, an example is {'java.lang.Exception'}.
*
Is
Issue
Declaration of Throws for Generic Exception - (397)
9002 (Quality Issues Organized by Practices) > 9131 (Error/Exception Handling) > 397 (Declaration of Throws for Generic Exception)
This pattern identifies situations where the named callable control element or method control element throws with the Throws action the exception parameter whose datatype is part of the list of overly broad exception datatypes. In Java, one example from this list is {'java.lang.Exception'}.
*
Is
Issue
Empty Exception Block - (9108)
9002 (Quality Issues Organized by Practices) > 9131 (Error/Exception Handling) > 9108 (Empty Exception Block)
An invokable code block contains an exception handling block that is empty.
*
Is
Issue
Unchecked Return Parameter Value of Invokable Control Element with Read, Write, and Manage Access to Platform or Data Resource - (252)
9002 (Quality Issues Organized by Practices) > 9131 (Error/Exception Handling) > 252 (Unchecked Return Parameter Value of Invokable Control Element with Read, Write, and Manage Access to Platform or Data Resource)
A named callable control element or method control element performs an action that reads, writes, or manages access to a data or platform resource, but it does not check the return parameter from the action.
+
Pr
Practice
Initialization Practices - (9170)
9002 (Quality Issues Organized by Practices) > 9170 (Initialization Practices)
Initialization Practices
*
Is
Issue
Storable and Member Data Element Missing Initialization - (456)
9002 (Quality Issues Organized by Practices) > 9170 (Initialization Practices) > 456 (Storable and Member Data Element Missing Initialization)
The software contains a storable or member data element that is not initialized before it is used.
+
Pr
Practice
Iteration Control - (9083)
9002 (Quality Issues Organized by Practices) > 9083 (Iteration Control)
Iteration Control
*
Is
Issue
Loop with Unreachable Exit Condition ('Infinite Loop') - (835)
9002 (Quality Issues Organized by Practices) > 9083 (Iteration Control) > 835 (Loop with Unreachable Exit Condition ('Infinite Loop'))
This pattern identifies situations where the named callable control element or method control element features the execution path whose entry element is found again in the path, while it has no path whatsoever to not return to itself and exit the recursion.
+
Pr
Practice
Recursion - (9061)
9002 (Quality Issues Organized by Practices) > 9083 (Iteration Control) > 9061 (Recursion)
Recursion
*
Is
Issue
Uncontrolled Recursion - (674)
9002 (Quality Issues Organized by Practices) > 9083 (Iteration Control) > 9061 (Recursion) > 674 (Uncontrolled Recursion)
This pattern identifies situations where the named callable control element or method control element features the recursive execution path.
*
Is
Issue
Unchecked Input for Loop Condition - (606)
9002 (Quality Issues Organized by Practices) > 9083 (Iteration Control) > 606 (Unchecked Input for Loop Condition)
This pattern identifies situations where an external value is entered into the application through the user interface ReadsUI action, transformed throughout the application along the sequence composed of ActionElements with DataRelations relations, some of which being part of named callable and method control elements, and ultimately used in the loop condition statement; none of the callable or method control element of the transformation sequence being a range check control element
+
Pr
Practice
Layered Architectures - (9124)
9002 (Quality Issues Organized by Practices) > 9124 (Layered Architectures)
Layered Architectures
*
Is
Issue
Architecture with Number of Horizontal Layers Outside of Expected Range - (9007)
9002 (Quality Issues Organized by Practices) > 9124 (Layered Architectures) > 9007 (Architecture with Number of Horizontal Layers Outside of Expected Range)
The software architecture contains too many - or too few - horizontal layers.
*
Is
Issue
Invocation of a Control Element at an Unnecessarily Deep Horizontal Layer - (9052)
9002 (Quality Issues Organized by Practices) > 9124 (Layered Architectures) > 9052 (Invocation of a Control Element at an Unnecessarily Deep Horizontal Layer)
The code at one architectural layer invokes code that resides at a deeper layer than the adjacent layer, i.e., the call skips at least one layer.
*
Is
Issue
Use of Same Invokable Control Element in Multiple Architectural Layers - (9184)
9002 (Quality Issues Organized by Practices) > 9124 (Layered Architectures) > 9184 (Use of Same Invokable Control Element in Multiple Architectural Layers)
The software uses the same control element across multiple architectural layers.
+
Pr
Practice
Memory Management - (9078)
9002 (Quality Issues Organized by Practices) > 9078 (Memory Management)
Memory Management
*
Is
Issue
Buffer Copy without Checking Size of Input - (120)
9002 (Quality Issues Organized by Practices) > 9078 (Memory Management) > 120 (Buffer Copy without Checking Size of Input)
This pattern identifies situations where two buffer storable elements or member elements are allocated with specific sizes in the source buffer allocation statement and target buffer allocation statement, transformed within the application via transformation sequences composed of ActionElements with DataRelations relations, some of which being part of named callable and method control elements, then ultimately used by the application to move the content of the first buffer onto the content of the second buffer through the move buffer statement, while the size of the first buffer is greater than the size of the second buffer.
*
Is
Issue
Uncontrolled Memory Allocation - (789)
9002 (Quality Issues Organized by Practices) > 9078 (Memory Management) > 789 (Uncontrolled Memory Allocation)
This pattern identifies situations where an external value is entered into the application through the user interface ReadsUI action, transformed throughout the application along the sequence composed of ActionElements with DataRelations relations, some of which being part of named callable and method control elements, and ultimately used as an index element to access a storable or member data element in the buffer Read or Write access action; none of the callable or method control element of the transformation sequence being a range check with regards to the 'Buffer' buffer that whose maximum size was defined in the buffer creation action.
+
Pr
Practice
Modular Development - (9016)
9002 (Quality Issues Organized by Practices) > 9016 (Modular Development)
Modularity
*
Is
Issue
Callable and Method Control Element Number of Outward Calls - (9024)
9002 (Quality Issues Organized by Practices) > 9016 (Modular Development) > 9024 (Callable and Method Control Element Number of Outward Calls)
This pattern identifies situations where the named callable control element or method control element has a Fan-Out value that is too large, based on its number of references to other objects within the application which exceeds the threshold value; the application determines the scope of the search for the referenced objects. Default value for threshold value is 5.
*
Is
Issue
Modules with Circular Dependencies - (9018)
9002 (Quality Issues Organized by Practices) > 9016 (Modular Development) > 9018 (Modules with Circular Dependencies)
The software contains modules with circular dependencies.
*
Is
Issue
Source Code File with Excessive Number of Lines of Code - (9151)
9002 (Quality Issues Organized by Practices) > 9016 (Modular Development) > 9151 (Source Code File with Excessive Number of Lines of Code)
A source code file has too many lines of code.
+
Pr
Practice
Numerical Conversion - (9085)
9002 (Quality Issues Organized by Practices) > 9085 (Numerical Conversion)
Numerical Conversion
*
Is
Issue
Numeric Types Incorrect Conversion - (681)
9002 (Quality Issues Organized by Practices) > 9085 (Numerical Conversion) > 681 (Numeric Types Incorrect Conversion)
This pattern identifies situations where the storable element or member element is declared with the numerical datatype in the Create action, then updated with a value which is cast via the type cast action into the second numerical datatype, which is incompatible with the first one.
+
Pr
Practice
Resource Management - (9037)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management)
Resource Management
+
Pr
Practice
Cache Maintenance - (9096)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9096 (Cache Maintenance)
Cache Maintenance
*
Is
Issue
Data Access Operations Outside of Expected Data Manager Component - (9069)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9096 (Cache Maintenance) > 9069 (Data Access Operations Outside of Expected Data Manager Component)
The software performs data-access operations that do not use a dedicated, central data manager component.
+
Pr
Practice
Resource Identification Control - (9127)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9127 (Resource Identification Control)
Resource Identification Control
*
Is
Issue
Name or Reference Resolution Improper Input Neutralization - (99)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9127 (Resource Identification Control) > 99 (Name or Reference Resolution Improper Input Neutralization)
This pattern identifies situations where an external value is entered into the application through the user interface ReadsUI action, transformed throughout the application along the sequence composed of ActionElements with DataRelations relations, some of which being part of named callable and method control elements, and ultimately used in the platform action to access a resource by its name; none of the callable or method control element of the transformation sequence being a vetted sanitization callable and method control elements from the list of vetted sanitization callable and method control elements.
+
Pr
Practice
Resource Lifecycle - (9080)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9080 (Resource Lifecycle)
Resource Lifecycle
*
Is
Issue
Expired or Released Resource Usage - (672)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9080 (Resource Lifecycle) > 672 (Expired or Released Resource Usage)
This pattern identifies situations where the platform resource is deallocated in the manages action using its unique resource handler value which is transported throughout the application via the transport sequence composed of ActionElements with DataRelations relations, some of which being part of named callable and method control elements, then used later within the application to try and access the resource in the read or write action.
*
Is
Issue
Missing Release of Resource after Effective Lifetime - (772)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9080 (Resource Lifecycle) > 772 (Missing Release of Resource after Effective Lifetime)
This pattern identifies situations where the platform resource is allocated and assigned a unique resource handler value via the ManagesResource action, its unique resource handler value is used throughout the application, along the sequence composed of ActionElements with DataRelations relations, some of which being part of named callable and method control elements, none of which being a resource release statement.
+
Pr
Practice
Resource Monitoring - (9144)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9144 (Resource Monitoring)
Resource Monitoring
*
Is
Issue
Memory Location Access After End of Buffer - (788)
9002 (Quality Issues Organized by Practices) > 9037 (Resource Management) > 9144 (Resource Monitoring) > 788 (Memory Location Access After End of Buffer)
This pattern identifies situations where the value element is transformed throughout the application along the sequence composed of ActionElements with DataRelations relations, some of which being part of named callable and method control elements, and ultimately used as an index element to access a storable or member data element in the buffer Read or Write access action; none of the callable or method control element of the transformation sequence being a range check with regards to the buffer whose maximum size was defined in the buffer creation action.
+
Pr
Practice
Reuse - (9088)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse)
Reuse
+
Pr
Practice
Inheritance and Polymorphism - (9157)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9157 (Inheritance and Polymorphism)
Inheritance and Polymorphism
*
Is
Issue
Child Class Element without Virtual Destructor unlike its Parent Class Element - (9013)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9157 (Inheritance and Polymorphism) > 9013 (Child Class Element without Virtual Destructor unlike its Parent Class Element)
This pattern identifies situations where, with languages where custom destructors can be written, the child class element used in the 'from' association of an Extends class relation whose parent class element that is used in the 'to' association of the Extends class relation, directly or indirectly through parent and child class element, has the parent virtual destructor, that lack its own virtual destructor.
*
Is
Issue
Class Element with Virtual Method Element without Virtual Destructor - (9166)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9157 (Inheritance and Polymorphism) > 9166 (Class Element with Virtual Method Element without Virtual Destructor)
This pattern identifies situations where the class element contains the virtual method element yet without declaring any virtual destructor.
*
Is
Issue
Class with Excessive Number of Child Classes - (9165)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9157 (Inheritance and Polymorphism) > 9165 (Class with Excessive Number of Child Classes)
A class contains an unnecessarily large number of children.
*
Is
Issue
Class with an Excessive Inheritance Level - (9123)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9157 (Inheritance and Polymorphism) > 9123 (Class with an Excessive Inheritance Level)
The inheritance level of a class is excessively high, i.e., it has a large number of ancestors.
*
Is
Issue
Multiple Inheritance from Concrete Classes - (9060)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9157 (Inheritance and Polymorphism) > 9060 (Multiple Inheritance from Concrete Classes)
The software contains a class with inheritance from more than one concrete class.
*
Is
Issue
Parent Class Element with References to Child Class Element - (9087)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9157 (Inheritance and Polymorphism) > 9087 (Parent Class Element with References to Child Class Element)
This pattern identifies situations where the parent class element that is used in the 'to' association of the Extends class relation, references the child class element used in the 'from' association of the Extends class relation, directly or indirectly through parent and child class element, with the callable or data relations. The reference statement is made directly to the child class element or to any one of its own method or member elements.
*
Is
Issue
Parent Class Element without Virtual Destructor Method Element - (9147)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9157 (Inheritance and Polymorphism) > 9147 (Parent Class Element without Virtual Destructor Method Element)
This pattern identifies situations where, with languages where custom destructors can be written, the parent class element of the child class element via an Extends class relation has no virtual destructor.
*
Is
Issue
Unreachable Invokable Control Element - (9079)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9079 (Unreachable Invokable Control Element)
The software contains a named callable or method control element that is not reachable by other code, i.e. is dead code.
*
Is
Issue
Use of Redundant Code - (9011)
9002 (Quality Issues Organized by Practices) > 9088 (Reuse) > 9011 (Use of Redundant Code)
The software has two or more invokable control elements that contain the same code.
Page Last Updated or Reviewed: October 01, 2017