軟件工程碩士開題報告范文
一、課題的意義
選擇一個適合的產品開發過程對于成功完成產品開發有著至關重要的作用。一個定義良好的過程,可以有效地指導和監控產品開發實踐活動,提高產品開發的效率、質量和可預測性。但是,如果過程定義不合理,卻會反過來制約我們的工作,導致挫折、低效、低質量甚至失敗。
產品開發是一個多學科綜合的過程。以消費電子產品為例,在產品開發過程中,軟件、硬件、結構件和定制件等各個學科和專業小組的活動互相依賴、交叉并行。傳統的產品開發過程往往采用串行、離散、重量級的方法,存在著以下問題:
串行的產品開發過程不能有效支持產品開發的迭代本質,項目的風險往往在后期集中爆發,導致項目進度失控或產品草率交付。
傳統產品開發過程把各個學科和專業小組的活動視為一系列靜態的、離散的過程,對于多學科交叉并行活動缺少有效綜合與協調。
傳統產品開發過程采用的重量級方法導致大量的文檔工作和漫長的開發周期,難以快速交付高質量的產品。
隨著產品的智能化、自動化和信息化程度越來越高,產品的功能和結構日趨復雜,其開發難度也不斷增大。同時,技術和工藝水平的飛速提高,以及激烈的市場競爭導致產品的更新換代更加頻繁,也使得開發時間日益縮短。在開發難度提高和開發時間縮短的雙重壓力下,傳統的產品開發過程已經不能滿足消費電子產品開發的需要。因此,建立一個高效的產品開發過程有著重大的意義。
二、國內外現狀分析
為了解決傳統串行的產品開發過程導致的產品設計改動量大、開發周期長、成本高、質量差等問題,人們提出了并行工程(Concurrent Engineering)與集成產品和過程開發(Integrated Product and Process Development, IPPD)的思想,這些思想對于建立產品開發過程有著重要的指導意義。但是并行工程與IPPD本身并沒給出具體的產品開發過程定義,尤其是對于產品開發的迭代本質和多學科交叉并行特性缺乏具體的過程方法予以支持。
在產品開發中,系統工程(Systems Engineering)起著統領全局,綜合、協調各個學科和專業小組的關鍵作用。對于產品開發過程方法的研究和實踐,是系統工程的重要組成部分。在系統工程領域,現有的各種系統生命周期模型和系統工程過程模型從各個不同的方面對產品開發過程進行了描述,現有的重量級的產品開發過程大多數正是在這些模型的基礎上建立起來的。但這些模型本身比較抽象化和一般化,不足以作為產品開發過程定義。同時,由于系統工程長期以來主要應用于大型/超大型系統(如武器系統、航天飛機等),在應用這些模型進行產品過程定義時必須非常小心,否則容易產生過于重量級的過程。
反觀軟件工程(Software Engineering)領域,對于軟件開發過程的研究和實踐近年取得了很大的進展,迭代開發正取代傳統的瀑布模型逐漸成為軟件過程方法的主流。基于迭代開發的產品化的軟件開發過程——RUP的出現,標志著迭代開發方法的成熟。以迭代開發為核心的一批敏捷方法(Agile Methods),代表著軟件開發過程研究和實踐中極為活躍的部分。但是這些過程和方法主要關注于軟件開發過程,對于其他學科的活動通常只是作為軟件開發過程的外部環境加以考慮,而不是從全局上予以綜合和協調。
產品開發、系統工程、軟件工程3個領域的過程方法各有所長,但都滿足不了消費電子產品開發過程的要求,尤其對于多學科綜合的迭代開發方法都缺乏具體的解決方案。
三、研究目標和內容
本課題的研究目標是為消費電子產品建立一個能夠有效支持產品開發迭代本質、有效綜合與協調多學科交叉并行活動、輕量級的產品開發過程。
由于現有的過程方法都滿足不了消費電子產品開發過程的要求,尤其對于多學科綜合的迭代開發方法都缺乏具體的解決方案。因此,我們在綜合產品開發、系統工程、軟件工程等領域先進的過程方法的基礎上,提出了一個適合于消費電子產品的、基于迭代開發方法的、多學科綜合的開發過程——多學科集成迭代過程(Multidisciplinary Integrated Iterative Process, MIIP)。在這里:
“多學科”是指MIIP能夠有效綜合與協調多學科交叉并行的開發活動;
“集成”有兩方面的含義,一是MIIP在產品開發過程中集成了各個學科和專業小組的活動,二是MIIP在過程方法上集成了RUP、敏捷方法、系統工程、并行工程、IPPD等多種過程方法的先進思想和經典實踐;
“迭代”是指MIIP基于迭代開發方法。
本課題的研究內容主要包括:
1. 分析消費電子產品開發的多學科集成迭代特征,并為之建立合適的過程;
2. 研究迭代過程在多學科交叉并行情況下存在的問題,并尋求解決方案;
3. 將多學科集成迭代過程應用到具體的項目中,在實踐中檢驗和完善;
4. 總結多學科集成迭代過程應用的經驗教訓,為企業乃至整個行業的過程改進提供經典實踐。
[注:一般研究內容3-6個,每個研究內容要展開來陳述一下]
四、關鍵技術研究
[注:關鍵技術研究是指要解決的關鍵問題,不是要使用的主要技術]
多學科集成迭代過程(MIIP)以軟件工程領域的RUP和敏捷方法為基礎,將其擴展到系統工程領域,同時吸收了并行工程與IPPD的思想。MIIP的研究需要深入分析并解決好以下幾個問題:
1. 消費電子產品開發過程具備什么樣的過程特征?
2. 如何為消費電子產品開發過程建立合適的過程?
3. 對于消費電子產品,產品開發過程應具備什么程度的敏捷性?
4. 軟件開發的迭代過程是否同樣適用于硬件、結構件和定制件等其他學科的產品組件的開發?
5. 在多學科交叉并行的情況下如何進行迭代?
6. 各個學科如何在迭代之間進行協同?
7. 各個學科在獨立并行和同步協調之間如何進行權衡?
8. 在實踐中,產品開發如何實現從傳統的串行過程到迭代過程的轉變?
[注:關鍵問題3個以上,并建議每個問題要展開來陳述一下]
五、研究方案
本課題的研究方法主要包括:
1. 文獻閱讀:大量閱讀文獻,了解業界成熟的過程理論、經典實踐和最新研究進展,建立充實的理論基礎。
2. 過程資產分析:分析Z公司(一個大型的消費電子產品提供商)過程資產庫中的現有過程定義文檔,并將其與實際執行結果相比較。
3. 項目歷史數據分析:分析Z公司項目歷史數據,特別是項目計劃、監控、度量結果和技術類工作產品,了解項目的實際執行過程。
4. 人員訪談:訪談Z公司項目經理、開發人員和過程改進人員,了解現有過程模型存在的問題及其根源和人們的期望。
5. 過程定義:在分析消費電子產品開發過程的特征之后,建立與之相適應的多學科集成迭代過程。
6. 討論和評審:在新過程的設計過程中定期與相關專業人員進行討論和評審,集思廣益。
7. 過程試點:在Z公司選擇一個現有項目進行試點,在實踐中檢驗和完善過程定義。
8. 試點總結:總結多學科集成迭代過程應用的經驗教訓,為Z公司乃至整個行業的過程改進提供經典實踐。
1. 基于復用定義軟件總線架構
2. 面向快速軟件服務的個體敏捷過程擬包括以下子過程:
a) 需求與組件池的匹配過程
b) 派生組件的開發過程
c) 需求的驗證過程
d) 快速服務交付過程
e) 組件反饋維護過程
3. 借鑒CMMI和PSP來建立面向快速軟件服務的個體能力成熟度模型,并進行評估
[注:如果是開發系統,則可畫個系統結構圖,并說明開發語言、工具、框架等]
本課題的研究經費來自Z公司的過程改進費用,Z公司有一支專職的過程改進隊伍,并且已經具備一定的過程資產和項目歷史數據,過程的試點項目已經選定,多學科集成迭代過程的核心思想已經開始在該項目中應用。課題研究各方面的資源已基本具備,可以支持研究工作的開展。
六、計劃進度
[注:一般從開題到答辯是一年時間]
2019.10 開題
2019.12 定義面向快速軟件服務的個體敏捷過程
2019.03 定義面向快速軟件服務的個體敏捷過程中個人能力成熟程度
2019.04 選擇2-3個專業服務項目進行推廣試點
2019.06 對試點專業服務項目進行評估與改進
2019.07 撰寫學術論文
2019.08 部門內部推廣
2019.10 學位論文定稿和答辯準備
參考文獻
[2] 熊光楞,徐文勝,張和明,范文慧。并行工程的理論與實踐。清華大學出版社,施普林格出版社,2019
[3] 傅立豐,張耀宗,劉長紅。并行工程的發展及應用。機械加工與自動化,2019(9)
[4] R. Winner, J. PenneU, H. Bertrand, M. Slusarczuk. The Role of Concurrent Engineering iWeapons System Acquisition. IDA Report R-338, Institute for Defense Analyses, 1988
[5] 朱煥立,劉玉賓。并行工程的產生、應用及研究現狀。中州大學學報,2019(4)
[6] 萬立,鄭霞,劉清華。產品全生命周期管理平臺的集成產品開發流程實現研究。計算機輔助工程,2019(6)
[7] International Council oSystems Engineering. Systems Engineering Handbook, Versio2a. INCOSE, 2019
[9] International Council oSystems Engineering. Guide to the Systems Engineering Body of Knowledge.
[10] Alexander Kossiakoff, William N. Sweet. Systems Engineering Principles and Practice. Wiley-Interscience, 2019
[11] Systems Thinking and Systems Engineering.
[12] Watts S. Humphrey. Managing the software process. Addison-Wesley, 1989
[13] WintoRoyce. Managing the Development of Large Software Systems. Proceedings of IEEE Westcon, 1970
[14] Frederich P. Brooks Jr.. The Mythical Man-Month. AddisoWesley Longman, 1995
[15] Roger S. Pressman. Software Engineering: A Practitioner’s Approach, Fifth Edition. McGraw-Hill Companies, Inc., 2019
[16] Steve McConnell. Rapid Development: Taming Wild Software Schedules. Micosoft Press, 1996
[17] Walker Royce. Software Project Management: A Unified Framework. AddisoWesley Longman, 1998
[18] Barry W. Boehm. A Spiral Model of Software Development and Enhancement. IEEE computer, 1988(5): 61~72
[19] Craig Larman. Agile & Iterative Development: A Manager’s Guide. PearsoEducation, Inc., 2019
[20] Barry W. Boehm. Anchoring the software process. IEEE computer, 1996(7): 73~82
[21] Philippe Kruchten. The Rational Unified Process: AIntroduction, Second Edition. Addison-Wesley, 2019
[22] Ivar Jacobson, Grady Booch, James Rumbaugh. The Unified Software Development Process. AddisoWesley Longman, Inc., 1999
[23] 沈備軍,陳誠,居德華。敏捷軟件過程的研究。計算機研究與發展,2019(11)
[24] Manifesto for Agile Software Development.
[26] 錢樂秋,張敬周,朱三元。Agile方法研究綜述。計算機應用與軟件,2019(6)