A Pattern-based Refactoring Approach for Multi-core System Design

Until recently, the most software development tools and techniques were concentrated on views from the sequential model of program execution. Software developers who only familiarize with the sequential model will face unusual challenges of software projects that require multi-core or parallel programming. In this paper, we addresses the challenges that developers face as their projects requiring multi-core or parallel programming by applying design patterns. In general, design patterns are usually regarded as the role of quality-improver for improving software quality, but they could be the role of design-facilitator for facilitating design activities. To address this issue, we propose an approach for specifying the applicable contexts and refactoring steps of patterns systematically, as well as automating the refactoring process for lightening the burden of developers. We also extract a multi-core pattern ParallelWhile which is derived from the template class parallel_while of Intel ® TBB library to introduce our approach. Furthermore, we demonstrate our approach by a real-world multicore embedded system PVE (Parallel Video Encoder), where Command Pipeline pattern is designed for the design enhancement and platform migration. It aids developers identifying operations which could be parallel processing, and revising a sequential design as an Intel ® TBB parallel structure. In addition, our approach can promote the extensibility of parallel operations.

[1]  Pao-Ann Hsiung,et al.  VERTAF: an application framework for the design and verification of embedded real-time software , 2004, IEEE Transactions on Software Engineering.

[2]  Daniel Pak-Kong Lun,et al.  Precise modeling of design patterns in UML , 2004, Proceedings. 26th International Conference on Software Engineering.

[3]  Jong-Yih Kuo,et al.  Object-oriented design: A goal-driven and pattern-based approach , 2007, Software & Systems Modeling.

[4]  Gao Qing,et al.  Integrated Design Supporting Business Model Stability , 2011 .

[5]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[6]  Gao Qing,et al.  Research on Framework Developing Technology based on MVC , 2011 .

[7]  Martin Gogolla,et al.  Model transformations? transformation models! , 2006, MoDELS'06.

[8]  William C. Chu,et al.  A quantitative approach for evaluating the quality of design patterns , 2008, J. Syst. Softw..

[9]  Robert B. France,et al.  A UML-based pattern specification technique , 2004, IEEE Transactions on Software Engineering.

[10]  Walter F. Tichy,et al.  Software engineering for multicore systems: an experience report , 2008, IWMSE '08.

[11]  Yongtao Sun,et al.  XSLT‐based evolutions and analyses of design patterns , 2009, Softw. Pract. Exp..

[12]  Daniel Gross,et al.  From Non-Functional Requirements to Design through Patterns , 2001, Requirements Engineering.

[13]  Hsung-Pin Chang,et al.  System supports for protocol and application adaptation in vertical handoffs , 2009 .

[14]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[15]  Pao-Ann Hsiung,et al.  Model-driven development of multi-core embedded software , 2009, 2009 ICSE Workshop on Multicore Software Engineering.

[16]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[17]  David Chek Ling Ngo,et al.  Formal specification of design pattern combination using BPSL , 2003, Inf. Softw. Technol..

[18]  Lawrence Chung,et al.  Developing adaptable software architectures using design patterns: an NFR approach , 2003, Comput. Stand. Interfaces.

[19]  Neelam Soundarajan,et al.  Patterns: from system design to software testing , 2007, Innovations in Systems and Software Engineering.

[20]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[21]  Ying-Wen Bai,et al.  Estimation by Software for the Power Consumption of Streaming-Media Servers , 2007, IEEE Transactions on Instrumentation and Measurement.