| 研究生: |
郭禹鴻 Guo, Yu-Hung |
|---|---|
| 論文名稱: |
支持元件式軟體開發之嵌入式系統中介軟體與開發環境 An Embedded Middleware for Component-Based Software Development and the Development Environment |
| 指導教授: |
蘇文鈺
Su, W. Y. Alvin |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 資訊工程學系 Department of Computer Science and Information Engineering |
| 論文出版年: | 2007 |
| 畢業學年度: | 95 |
| 語文別: | 英文 |
| 論文頁數: | 208 |
| 中文關鍵詞: | 元件式軟體開發 、軟體再用 、開發平台 、嵌入式中介軟體 |
| 外文關鍵詞: | embedded middleware, component-based software development, software reuse, development environment |
| 相關次數: | 點閱:182 下載:2 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
元件式軟體開發(component-based software development)是一種軟體開發方式,主要概念是將軟體依其架構與功能性分為多個獨立元件,在軟體開發過程中獨立開發這些元件,其後將各元件連接組合起來,完成最終應用程式的一種軟體開發方式。元件導向式軟體開發之目的在於加強軟體的可重複利用性與彈性,並提供軟體開發者一個更方便、快速且容易使用的軟體開發方式。本論文在嵌入式系統上提出一套符合元件導向式軟體設計的方法,實作其中的元件中介軟體以及該中介軟體的整合軟體開發平台。該中介軟體可運行於 Linux 個人電腦或各種基於 Unix 之嵌入式系統之上,中介軟體本身並提供多個預設的元件與組合而成的應用程式,建立一個預設的元件資料庫。本論文之中介軟體核心設計考量嵌入式系統之有限資源與有限計算能力,提供最小的記憶體需求,縮小與各種函式庫的依賴性。對於嵌入式軟體開發人員而言,本中介軟體提供簡單易用的元件模組化設計,並利用各種現有開放源碼軟體,如 GNU Toolchain 平台,提供開發環境支援,其與中介軟體的核心設計概念組合,成為一個完整的嵌入式軟體開發平台,首重概念為模組化的設計、軟體重用、易於使用與除錯。
Component-based software development(CBSD) is a branch of software engineering discipline, with emphasis on the decomposition of the software system into various functional or logical components according to its software architecture. In the software development process the components are individually implemented and later assembled or composed into the final software application. CBSD is an approach to software development that relies on software reuse and flexibility. CSBD is aimed to provide developers with a more convenient and easier to use development procedure. In this paper we proposed a way to realize CBSD and implemented the component middleware on which software components cooperate and run. We also implemented software development toolkits for the middleware to construct a software development environment. The middle-ware is targeted for embedded Unix-like operating systems, but it can also be applied to desktop computers. The middleware comes with default component repository with which one can easily build an embedded application with the composer tool of our middleware. The kernel of our system is designed with efficiency in mind, so as to provide maximal flexibility with minimal computing power and library dependencies. For embedded software developers, our middleware allows for simpler modular component design. With the support of open source softwares such as GNU toolchain, we have built a complete embedded software development platform with its concept being component-oriented design, software reuse, and easier development.
[1]: Ivica Crnkovic, "Component-based Software Engineering-New Challenges in Software Development", In Information Technology Interfaces, 2003
[2]: D Urting, S Van Baelen, T Holvoet, Y Berbers, Embedded Software Development: Components and Contracts , In Proceedings of the IASTED International Conference Parallel, 2001
[3]: P Bresciani, A Perini, P Giorgini, F Giunchiglia, J Mylopoulos, "Tropos: An Agent-Oriented Software Development Methodology ", In Autonomous Agents and Multi-Agent Systems, 2003
[4]: G.T. Heineman and W.T. Councill, "Component-Based Software Engineering: Putting the Pieces Together", Addison-Wesley, 2001
[5]: "Component Based Software Engineering", http://www.smb.uklinux.net/reusability
[6]: Mei Hong, Chen Feng, Feng Yao-Dong, Yang Jie, "ABC: An Architecture Based, Component Oriented Approach to Software Development", In Journal of Software 軟體學報, 2003
[7]: Xia Cai, Michael R. Lyu, Kam-Fai Wong, Roy Ko, "Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes", In Proceedings of the Seventh Asia-Pacific Software Engineering, 2000
[8]: Brown A., "Large-Scale Component-Based Development", Prentice Hall, 2000
[9]: Roger S. Pressman., "Software Engineering - A Practitioner's Approach", McGraw-Hill Professional, 2005
[10]: "Common Object Request Broker Architecture - Wikipedia", http://en.wikipedia.org/wiki/CORBA
[11]: Robert Orfali, Jeri Edwards, Dan Harkey, Jeri Edwards, "The Essential Distributed Objects Survival Guide", John Wiley & Sons, 1996
[12]: "CORBA Product Profiles", http://www.puder.org/corba/matrix/
[13]: Michi Henning, ZeroC, "The Rise and Fall of CORBA", In ACM Queue vol. 4, no. 5, 2006
[14]: "Component Object Model - Wikipedia", http://en.wikipedia.org/wiki/Component_object_model
[15]: "Microsoft COM Technologies", http://www.microsoft.com/com/
[16]: Don Box, "Essential COM", Addison-WesleyProfessional, 1998
[17]: "Sun's Enterprise JavaBeans Technology", http://java.sun.com/products/ejb/index.jsp
[18]: "Enterprise JavaBean - Wikipedia", http://en.wikipedia.org/wiki/Ejb
[19]: "NetBeans Official Site", http://www.netbeans.org/
[20]: "Eclipse Official Site", http://www.eclipse.org/
[21]: "Ruby on Rails", http://www.rubyonrails.org/
[22]: "Spring Framework.org", http://www.springframework.org/
[23]: "Hibernate.org", http://www.hibernate.org/
[24]: "Rolling with Ruby on Rails", http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html
[25]: Clemens Szyperski, "Component Software: Beyond Object-Oriented Programming 2nd ed.", Addison-Wesley Professional, 2002
[26]: "Inter-process Communication - Wikipedia", http://en.wikipedia.org/wiki/Inter-process_communication
[27]: "Interface Description Language - Wikipedia", http://en.wikipedia.org/wiki/Interface_description_language
[28]: Jean-Philippe Fassino, Jean-Bernard Stefani,Julia Lawall, Gilles Muller, "THINK: A Software Framework for Component-based Operating System Kernels", In USENIX Annual Technical Conference, 2002
[29]: Geoff Coulson, Gordon S. Blair, Michael Clarke, Nikos Parlavantzas, "The design of a configurable and reconfigurable middleware platform", In Distributed Computing, 2002
[30]: Szyperski C., "Component Software: Beyond Object-Oriented Programming", Addison-Wesley, 1998
[31]: Andrei Alexandrescu, "Modern C++ Design - Generic Programming and Design Patterns Applied", Addison-WesleyProfessional, 2001
[32]: "Resource Acquisition Is Initialization - Wikipedia", http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization
[33]: Fabio Paterno, "Model-Based Design and Evaluation of Interactive Applications", Springer, 2000
[34]: "UIML: An Appliance-Independent XML User Interface Language", http://www8.org/w8-papers/5b-hypertext-media/uiml/uiml.html
[35]: Kris Luyten and Karin Coninx, "An XML-based runtime user interface description language for mobile computing devices", In Proceedings of the Eight Workshop of Design, Specification and Verification of Interactive Systems, 2001
[36]: "MiniGUI Organization Website", http://www.minigui.org/
[37]: "Beijing Feynman Software Technology Co., Ltd.", http://www.minigui.com
[38]: "EXMAP Documentation", http://www.berthels.co.uk/exmap/doc.html
[39]: "KCachegrind", http://kcachegrind.sourceforge.net/cgi-bin/show.cgi
[40]: "Valgrind Home", http://valgrind.org/
[41]: "KCacheGrind Glossary", http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindGlossary
[42]: "Institute for Information Industry", http://www.iii.org.tw/
[43]: Barry Boehm, TRW Defense Systems Group, "A Spiral Model of Software Development and Enhancement", In ACM SIGSOFT Software Engineering Notes, 1986
[44]: "Advanced Linux Sound Architecture - ALSA", http://www.alsa-project.org/
[45]: "GDB: The GNU Debugger", http://sourceware.org/gdb/
[46]: Tien-Ming Wang, "Reconfigurable Multimedia Software Development Platform", 2006
[47]: "QEMU-Open Source Processor Emulator", http://fabrice.bellard.free.fr/qemu/