DEVELOPMENT WITH REUSE
Anal 59. Use different abstraction levels for the requirements depending on the phase of the development. The earlier in the development life cycle, the more general must be the requirements. [p346]

60. Enlarge the scope of the search for reusable components as widely as possible within the company, and do not ignore external sources of reusable components. [p347]

61. Use the taxonomy put forward by the company. [p348]

62. Use the appropriate view of a component to understand it.

63. Use domain analysis results, if available, to understand the characteristics of the component.

64. Consult experienced people. [p349]

65. Carry out a study of a high-level component so that you fully understand it and can make an appropriate selection if time allows.

66. Study the technical solutions for implementing adaptations based on your chosen mode of reuse. [p350]

67. Determine the appropriate level of investigation of components depending on the component type and the types of requirements to be fulfilled. [p351]

68. Evaluate the distance between candidate components and the requirements.

69. When using evaluation models based on metrics, consider the different evaluation levels of FCM (factor-criteria-metrics). [p352]

70. Do not forget to study the adaptations you need to integrate the component into the application development.

71. When selecting components, you should choose standardized ones in the absence of any other criteria. [p354]

72. Use a project-wide or module-wide prefix for each outstanding global name.

73. Define a standard communication protocol.

74. When making adaptations of a component in a given phase, do not forget to carry this information forward to the following phases.

75. Identify reuse opportunities during the specification phase, and identify specific reuse requirements that support them. [p359]

76. Do not over-specify requirements.

77. Use the domain analysis and validate new application requirements.

78. Use the products from domain analysis to understand the context in which the application takes place, and its dynamics.

79. Use available documentation as much as possible when learning about a reuse repository. [p360]

Arch
Design
80. Select well-documented frameworks. [p362]

81. Consider downstream detailed design for framework evaluation.

82. Preserve the strategy implemented in the framework when adapting it.

83. Keep the life cycle sequencing for framework adaptation.

84. Use inheritance to customize reused frameworks. [p363]

Detail
Design
 
Imple 85. Using browsers during the implementation phase is very useful in understanding components. [p365]

86. Establish implementation standards that facilitate the ease and safety of code reuse.

87. Control and document each modification performed on the component.

88. Rename programming entities when necessary.

89. Keep the naming coherent. [p366]

90. Keep coherence when manipulating programming entities.