This Article 
 Bibliographic References 
 Add to: 
On the Customization of Components: A Rule-Based Approach
September 2007 (vol. 19 no. 9)
pp. 1262-1275
Realizing the quality of service (QoS) requirements for a software system continues to be an important and challenging issue in software engineering. A software system may need to be updated, or reconfigured, to provide modified QoS capabilities. These changes can occur at development time or at run-time. In component based software engineering, software systems are built by composing components. When the QoS requirements change, there is a need to reconfigure the components. Unfortunately, many components are not designed to be reconfigurable, especially in terms of QoS capabilities. It is often labor-intensive and error prone work to reconfigure the components, as developers need to manually check and modify the source code. Furthermore, the work requires experienced, senior developers, which makes it costly. The limitations motivate the development of a new rule-based, semi-automated component parameterization technique that performs code analysis to identify and adapt parameters and changes components into reconfigurable ones. Compared with a number of alternative QoS adaptation approaches, the proposed rule-based technique has advantages in terms of flexibility, extensibility and efficiency. The adapted components support the reconfiguration of potential QoS trade-offs among time, space, quality, etc. The proposed rule-based technique has been successfully applied to two substantial libraries of components. The F-measure or balanced F-score results for the validation are excellent: 94%.

[1] M. Aksit and Z. Choukair, “Dynamic, Adaptive and Reconfigurable Systems Overview and Prospective Vision,” Proc. 23rd Int'l Conf. Distributed Computing Systems (ICDCS '03), pp. 84-89, May 2003.
[2] R. Alexander and G. Bensley, C++ Footprint and Performance Optimization. Sams Publishing, 2000.
[3] A. Bonnet, J.P. Haton, J.M. Truong-Ngoc, and J. Howlett, Expert Systems. Prentice Hall, 1988.
[4] J. Brant, B. Foote, R. Johnson, and D. Roberts, “Wrappers to the Rescue,” Proc. 12th European Conf. Object-Oriented Programming (ECOOP '98), pp. 396-418, July 1998.
[5] L. Capra, “Mobile Computing Middleware for Context-Aware Applications,” Proc. 24th Int'l Conf. Software Eng. (ICSE '02), pp. 19-25, 2002.
[6] G. Chaitin, M. Auslander, A. Chandra, J. Cocke, M. Hopkins, and P. Markstein, “Register Allocation via Coloring,” Computer Languages, pp. 45-57, Jan. 1981.
[7] J.Y. Chung, J.W.S. Liu, and K.J. Lin, “Scheduling Periodic Jobs That Allow Imprecise Results,” IEEE Trans. Computers, vol. 39, no. 9, pp.1156-1174, Sept. 1990.
[8] J. Cocke, “Global Common Subexpression Elimination,” Proc. Symp. Compiler Construction, pp. 850-856, July 1970.
[9] K. Cooper, J. Zhou, H. Ma, I.-L. Yen, and F. Bastani, “Code Parameterization for Satisfaction of QoS Requirements in Embedded Software,” Proc. Third Int'l Conf. Eng. of Reconfigurable System and Algorithms (ERSA '03), pp. 58-64, June 2003.
[10] J.R. Cordy, “TXL—A Language for Programming Language Tools and Applications,” Proc. Fourth ACM Int'l Workshop Language Descriptions, Tools and Applications (LDTA '04), pp. 1-27, Apr. 2004.
[11] J.R. Cordy, T.R. Dean, A.J. Malton, and K.A. Schneider, “Source Transformation in Software Engineering Using the TXL Transformation System,” J. Information and Software Technology, special issue on source code analysis and manipulation, pp. 827-837, Oct. 2002.
[12] R. Gupta, D.A. Benson, and J.Z. Fang, “Path Profile Guided Partial Dead Code Elimination Using Predication,” Proc. Sixth Int'l Conf. Parallel Architectures and Compilation Techniques (PACT '97), pp.102-113, Nov. 1997.
[13] P. Herrmann and H. Krumm, “Trust-Adapted Enforcement of Security Policies in Distributed Component-Structured Applications,” Proc. Sixth IEEE Symp. Computers and Comm. (ISCC '01), pp.2-8, 2001.
[14] M.A. Hiltunen, R.D. Schlichting, X.N. Han, M.M. Cardozo, and R. Das, “Real-Time Dependable Channels: Customizing QoS Attributes for Distributed Systems,” IEEE Trans. Parallel and Distributed Systems, vol. 10, no. 6, pp. 600-612, June 1999.
[15] S. Hiroyuki and Y. Teruhiko, “Characteristics of Loop Unrolling Effect: Software Pipelining and Memory Latency Hiding,” Proc. Int'l Workshop Innovative Architecture for Future Generation High-Performance Processors and Systems (IWIA '01), pp. 63-72, Jan. 2001.
[16] S.A. Hissam, G.A. Moreno, J. Stafford, and K.C. Wallnau, “Packaging Predictable Assembly with Prediction-Enabled Component Technology,” Technical Report CUM/SEI-2001-TR-024, Software Eng. Inst., Carnegie Mellon Univ., Nov. 2001.
[17] J. Huggins and W. Shen, “The Static and Dynamic Semantics of C,” Proc. Seventh Int'l Workshop Abstract State Machines (ASM '00), 2000.
[18] M.E.C. Hull, P.N. Nicholl, and Y. Bi, “Approaches to Component Technologies for Software Reuse of Legacy Systems,” J. Computing and Control Eng., pp. 281-287, Dec. 2001.
[19] V. Issarny, C. Bidan, and T. Saridakis, “Achieving Middleware Customization in a Configuration-Based Development Environment: Experience with the Aster Prototype,” Proc. Fourth Int'l Conf. Configurable Distributed Systems (ICCDS '98), pp. 207-214, May 1998.
[20] M. Kosuga, T. Yamazaki, N. Ogino, and J. Matsuda, “Adaptive QoS Management Using Layered Multi-Agent System for Distributed Multimedia Applications,” Proc. Int'l Conf. Parallel Processing (ICPP '99), pp. 388-394, Sept. 1999.
[21] R. Leupers and P. Marwedel, “Function Inlining under Code Size Constraints for Embedded Processors,” Digest of Technical Papers IEEE/ACM Int'l Conf. Computer-Aided Design (ICCAD '99), pp. 253-256, Nov. 1999.
[22] K.J. Lin, S. Natarajan, and J.W.S. Liu, “Imprecise Results: Utilizing Partial Computations in Real-Time Systems,” Proc. Eighth IEEE Real-Time Systems Symp. (RTSS '87), pp. 210-217, Dec. 1987.
[23] H. Ma, D.F. Wang, F. Bastani, I.-L. Yen, and K. Cooper, “A Model and Methodology for Composition QoS Analysis of Embedded Systems,” Proc. 11th IEEE Symp. Real-Time and Embedded Technology and Applications (RTAS '05), pp. 56-65, Mar. 2005.
[24] H. Ma, I.-L. Yen, J. Zhou, and K. Cooper, “QoS Analysis for Component-Based Embedded Software: Model and Methodology,” J. Systems and Software, pp. 859-870, Sept. 2005.
[25] M. Matsumoto and T. Nishimura, “Mersenne Twister: A 623-Dimensionally Equidistributed Uniform Pseudorandom Number Generator,” ACM Trans. Modeling and Computer Simulation, vol. 8, pp. 3-30, Jan. 1998.
[26] A. Maurino, S. Modalferi, and B. Pernici, “Reflective Architectures for Adaptive Information Systems,” Proc. First Workshop Multi-Channel and Mobile Information Systems (MMIS '03), pp. 217-224, 2003.
[27] J. McCabe and W. Butler, “Design Complexity Measurement and Testing,” Comm. ACM, pp. 1415-1425, Dec. 1989.
[28] J. McCabe and H. Watson, “Software Complexity,” Crosstalk— J.Defense Software Eng., pp. 5-9, Dec. 1994.
[29] M. Moser, “Declarative Scheduling for Optimally Graceful QoS Degradation,” Proc. IEEE Int'l Conf. Multimedia Computing and Systems, pp. 86-94, June 1996.
[30] M. Oriol and G. Di Marzo Serugendo, “A Disconnected Service Architecture for Unanticipated Run-Time Evolution of Code,” Proc. IEE Software, special issue on unanticipated software e volution, pp. 95-107, 2004.
[31] C. Raibulet, F. Arcelli, S. Mussino, M. Riva, F. Tisato, and L. Ubezio, “Components in an Adaptive and QoS-Based Architecture,” Proc. Int'l Workshop Self-Adaptation and Self-Managing Systems, pp. 65-71, May 2006.
[32] S.J. Russell and P. Norvig, Artificial Intelligence: A Modern Approach, second ed. Prentice Hall, 2003.
[33] K. Scott and J. Davidson, “Safe Virtual Execution Using Software Dynamic Translation,” Proc. 18th Ann. Conf. Computer Security Applications (ACSAC '02), p. 209, Dec. 2002.
[34] K. Scott, N. Kumar, S. Velusamy, B. Childers, J. Davidson, and M.L. Soffa, “Retargetable and Reconfigurable Software Dynamic Translation,” Proc. Int'l Symp. Code Generation and Optimization (CGO '03), p. 36, Mar. 2003.
[35] S.H. Son, R. Mukkamala, and R. David, “Integrating Security and Real-Time Requirements Using Covert Channel Capacity,” IEEE Trans. Knowledge and Data Eng., vol. 12, no. 6, pp. 865-879, Nov./Dec. 2000.
[36] D.B. Steward and P.K. Khosla, “Real-Time Scheduling of Dynamically Reconfigurable Systems,” Proc. 13th IEEE Int'l Conf. Systems Eng. (ICSE '91), pp. 139-142, Aug. 1991.
[37] M.G. Stoodley and C.G. Lee, “Software Pipelining Loops with Conditional Branches,” Proc. 29th Ann. IEEE/ACM Int'l Symp. Microarchitecture (MICRO '96), pp. 262-273, Dec. 1996.
[38] A. Szyperski, Component Software: Beyond Object-Oriented Programming. Addison-Wesley Professional, 1997.
[39] A.T. Tai, K.S. Tso, L. Alkalai, S.N. Chau, and W.H. Sanders, “On-Board Guarded Software Upgrading for Space Missions,” Proc. 18th Digital Avionics Systems Conf. (DASC '99), pp. 7.B.4-1-7.B.4-8, Oct. 1999.
[40] L.A. Tewksbury, L. Moser, and P.M. Melliar-Smith, “Live Upgrades of CORBA Applications Using Object Replication,” Proc. IEEE Int'l Conf. Software Maintenance (ICSM '01), pp. 488-497, Nov. 2001.
[41] K. Thankakan, T. Thumthawatworn, and P. Santiprabhob, “Intelligent Scheduling Management for QoS-Enabled Wireless Ad Hoc Network with Fuzzy Rule-Based System,” Proc. Ninth Joint IFSA World Congress and 20th NAFIPS Int'l Conf., pp. 2983-2988, July 2001.
[42] Q. Tran and L. Chung, “NFR-Assistant: Tool Support for Achieving Quality,” Proc. IEEE Symp. Application-Specific Systems and Software Eng. and Technology (ASSET '99), pp. 284-289, Mar. 1999.
[43] D. Wagner, J. Foster, E. Brewer, and A. Aiken, “A First Step towards Automated Detection of Buffer Overrun Vulnerabilities,” Proc. Seventh Ann. Symp. Network and Distributed System Security (NDSS '00), pp. 3-17, Apr. 2000.
[44] D.F. Wang, H. Ma, F. Bastani, and I.-L. Yen, “Decomposition of Fairness and Performance Aspects for High-Assurance Continuous Process-Control Systems,” Proc. Eighth IEEE Int'l Symp. High Assurance Systems Eng. (HASE '04), pp. 3-11, Mar. 2004.
[45] M. Weber, V. Shah, and C. Ren, “A Case Study in Detecting Software Security Vulnerabilities Using Constraint Optimization,” Proc. First IEEE Int'l Workshop Source Code Analysis and Manipulation (SCAM '01), pp. 1-11, Nov. 2001.
[46] H.P. William, P.F. Brian, A.T. Saul, and T.V. William, Numerical Recipes in C: The Art of Scientific Computing. Cambridge Univ. Press, 1992.
[47] S.S. Yau, Y. Wang, and D.Z. Huang, “Middleware Support for Embedded Software with Multiple QoS Properties for Ubiquitous Computing Environments,” Proc. Eighth IEEE Int'l Workshop Object-Oriented Real-Time Dependable Systems (WORDS '03), pp.250-256, Jan. 2003.
[48] J. Zhou, K. Cooper, and I.-L. Yen, “A Rule-Based Component Customization Technique for QoS Properties,” Proc. Eighth IEEE Int'l Symp. High Assurance Systems Eng. (HASE '04), pp. 302-303, Mar. 2004.
[49] J. Zhou, K. Cooper, and I-L. Yen, “Route Finder on PDA—An Application of the Component Parameterization Technique,” Technical Report UTDCS-70-06, Dec. 2006.
[50] J. Zhou, K. Cooper, and I-L. Yen, “Rule Generalization in the Component Parameterization Technique—A Formal Approach,” Technical Report UTDCS-69-06, Dec. 2006.
[51] X.Q. Zhu, X.D. Wu, A.K. Elmagarmid, Z. Feng, and L. Wu, “Video Data Mining: Semantic Indexing and Event Detection from the Association Perspective,” IEEE Trans. Knowledge and Data Eng., vol. 17, no. 5, pp. 665-677, May 2005.

Index Terms:
performance measures, rule based processing, representations
Jia Zhou, Kendra Cooper, Hui Ma, I-Ling Yen, "On the Customization of Components: A Rule-Based Approach," IEEE Transactions on Knowledge and Data Engineering, vol. 19, no. 9, pp. 1262-1275, Sept. 2007, doi:10.1109/TKDE.2007.1059
Usage of this product signifies your acceptance of the Terms of Use.