Mälardalen University Licentiate Thesis No.38 ARCHITECTING SOFTWARE FOR COMPLEX EMBEDDED SYSTEMS - QUALITY ATTRIBUTE BASED APPROACH TO OPENNESS ć Goran Mustapi 2004 Department of Computer Science and Engineering Mälardalen University ć Copyright © Goran Mustapi , 2004 ISSN number: 1651-9256 ISBN number: 91-88834-74-3 Printed by Arkitektkopia, Västerås, Sweden Distribution: Mälardalen University Press ABSTRACT There has been such an increase in the complexity of systems embedded in modern industrial robots, construction equipment, cars, trains, systems in telecommunication networks etc. that the engineering of such systems requires the coordinated efforts of tens or hundreds of engineers. These engineering efforts are multidisciplinary, requiring software engineers, control engineers, hardware engineers etc. to work together in the design and implementation of the systems concerned. Many have a lifetime of 10-20 years which means that their maintenance must be carefully planned. Furthermore, most of the systems can be classified as safety-critical or dependable systems. The importance of software in complex embedded systems is increasing and software quality issues are becoming first level concerns. One of the keys to success in industry in the future will be the ability to develop high-quality embedded systems and their software on time in order to remain competitive. The complexity and size of these systems requires a systematic approach to software architecture analysis and design. To advance research in this area, we need to improve our understanding of software architecting for these systems. Among the disadvantages of current methods of software architecture design are that they target “pure” software systems and that they make simplifying assumptions that software architecture design of embedded systems begins from a well-defined, fixed list of requirements for a software subsystem. This thesis is divided into two parts and has two main objectives. In the first part, we describe the state of practice of software architecting of complex embedded systems. The objective here is to get a better understanding of the factors that influence the software architecture design of complex embedded systems. In the second part of the thesis, we study industrial robots, as open, complex embedded systems that can be extended and programmed by third party. The objective is to determine how software quality concerns and in particular dependability concerns can be systematically approached when system openness is increased. The main contributions of the thesis are the following. Several important common factors which influence the architectural design of complex embedded systems software are identified, the state of the practice is described and some areas that require further research are identified. In considering the design of open robotics system, the thesis shows which dependability means need to be applied in the architecture design phase, to support system openness. The dependability means are systematically applied within the context of software architecture approach based on quality attributes. The results presented in this thesis are based on industrial experience from the author’s work as an engineer-researcher and from systematically performed interviews with several industry experts having positions as senior architects or similar in companies that develop complex and long-lived embedded systems. ii ACKNOWLEDGMENTS ć I want to thank to my academic supervisors Ivica Crnkovi , Christer Norström and my industrial supervisor Peter Eriksson very much. They were always available for countless number of discussions on the journey towards this thesis. Thanks to all of my colleagues at Mälardalen University, Department of Computer Science and Engineering and ABB Automation Technologies AB, Robotics and especially to those who co-authored and reviewed the papers that were the basis for this thesis. In particular, I want to mention Anders Wall and thank him for his detailed reviewing. Thanks to the managers at ABB Automation Technologies, who supported my work, especially to Lennart Sundstedt and Kent Vasberg. Additionally, I want to thank Johan Schubert for the discussions about the terminology and methodology used in this thesis. Thanks to my parents, my brother and sister for their support and encouragement. And, to save the best for the last, thank you Carina, Filip and Klara for being with me every day. ć Goran Mustapi , Västerås, November 2004 iii iv TABLE OF CONTENTS 1 INTRODUCTION.............................................................................................................1 1.1 Background and Motivation – the Industrial Context..............................................1 1.2 Research Questions.................................................................................................3 1.3 Outline of the Thesis Contributions.........................................................................4 1.4 Research Methodology............................................................................................5 1.4.1 Theory and Research Hypotheses....................................................................7 1.4.2 Research Strategy, Methods and Results Validation........................................9 1.5 List of Publications................................................................................................10 1.6 Thesis outline........................................................................................................11 PART I - UNDERSTANDING IMPORTANT FACTORS THAT DETERMINE SOFTWARE ARCHITECTURE OF COMPLEX EMBEDDED SYSTEMS....................13 2 REAL WORLD INFLUENCES ON SOFTWARE ARCHITECTURE – INTERVIEWS WITH INDUSTRIAL SYSTEMS EXPERTS............................................15 Abstract...........................................................................................................................15 2.1 Introduction...........................................................................................................15 2.2 The case study setup..............................................................................................17 2.3 Systems overviews................................................................................................19 2.3.1 ABB Automation Technologies/ Robotics......................................................19 2.3.2 Ericsson AB (R&D System Management)......................................................21 2.3.3 TietoEnator Telecom & Media......................................................................21 2.3.4 Ericsson AB (Core Network Development)...................................................23 2.3.5 Volvo Construction Equipment......................................................................23 2.3.6 Volvo Car Corporation..................................................................................24 2.3.7 Bombardier Transportation...........................................................................25 2.4 Comparative interview analysis.............................................................................26 2.4.1 Relationship of system, computer hardware and software architecture.........26 2.4.2 Reuse and legacy in architectural design......................................................27 2.4.3 Business and application domain factors......................................................28 2.4.4 Choice of technologies...................................................................................29 2.4.5 Organizational factors and architecture........................................................30 v 2.4.6 Process related factors..................................................................................31 2.4.7 Resources used for architectural design........................................................31 2.5 Conclusion.............................................................................................................32 2.6 Feedback from the conference attendees...............................................................34 2.7 Acknowledgments.................................................................................................34 PART II – SYSTEM QUALITY AND OPENNESS IN SOFTWARE ARCHITECTURE DESIGN...................................................................................................................................35 3 A DEPENDABLE OPEN PLATFORM FOR INDUSTRIAL ROBOTICS – A CASE STUDY.....................................................................................................................................37 Abstract...........................................................................................................................37 3.1 Introduction...........................................................................................................37 3.2 System Overview..................................................................................................39 3.3 Defining the Open Platform for the Robot Controller Software System................40 3.3.1 The Software Development Architecture.......................................................42 3.3.2 Extensions and Software Operational Architecture.......................................43 3.4 Describing the Design Approach...........................................................................44 3.4.1 Different Approaches with Focus on Quality Attributes................................45 3.4.2 The Approach Used in This Case Study.........................................................47 3.5 Modelling Design Constraints for the Robot Controller Software – the First Step in Architecture Design...............................................................................................................47 3.5.1 Operational Constraints................................................................................48 3.5.2 Software Development Architecture and Constraints in the Development Domain 51 3.5.3 Other Important Requirements and Constraints............................................52 3.6 Robot Controller Software System Architecture Transformations.........................52 3.6.1 Architectural Design.....................................................................................55 3.6.2 Fault Tolerance Design Techniques to Support New Tasks...........................57 3.6.3 Software Architecture Tools for Evaluation of Real-Time Properties............58 3.7 Conclusions...........................................................................................................59 4 PROPAGATION OF QUALITY ATTRIBUTES IN LAYERED ARCHITECTURE – A CASE STUDY IN INDUSTRIAL ROBOTICS..............................................................61 Abstract...........................................................................................................................61 4.1 Introduction...........................................................................................................61 vi 4.2 Quality Modelling and Layered Architecture........................................................62 4.2.1 Software Product Quality Modelling.............................................................62 4.2.2 System Quality Attributes vs. Component-Quality Attributes.........................63 4.2.3 Propagation of Qualities in Layered Architecture.........................................63 4.3 Case Study - FlexPendant Device for ABB Industrial Robots...............................65 4.3.1 Quality Attributes of the OS/Platform Layer..................................................66 4.3.2 Qualities in the Extensible Application..........................................................67 4.3.3 Qualities of Application Extensions...............................................................68 4.3.4 Qualities of the Resulting System...................................................................69 4.4 Conclusion.............................................................................................................70 PART III – CONCLUSIONS AND FUTURE WORK.........................................................73 5 CONCLUSIONS.............................................................................................................75 5.1 Question 1.............................................................................................................75 5.1.1 Conclusion Details........................................................................................75 5.1.2 Validity of the Conclusions............................................................................79 5.1.3 Lessons Learned............................................................................................79 5.2 Question 2.............................................................................................................80 5.2.1 Conclusion Details........................................................................................81 5.2.2 Validity of the Conclusions............................................................................83 5.2.3 Lessons learned.............................................................................................84 6 FUTURE WORK............................................................................................................85 APPENDIX A - TERMINOLOGIES AND OVERVIEWS OF THE RESEARCH AREAS RELEVANT IN THE CONTEXT OF THE THESIS..........................................................87 A.1 Software Quality, Quality Models and Quality Attributes........................................89 A2. Dependability...........................................................................................................93 A3. Software Architecture...............................................................................................96 A3.1 Bosch’s approach................................................................................................96 A3.2 SEI Architecture-Centric Methods......................................................................97 A3.3 NFR Framework...............................................................................................100 A3.4 Other approaches..............................................................................................101 A3.5 Certain common principles of the quality attribute centric software architecture design methods................................................................................................................102 REFERENCES......................................................................................................................103 vii viii
Description: