久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

軟件工程方法學的學習總結

時間:2019-05-12 02:16:42下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《軟件工程方法學的學習總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《軟件工程方法學的學習總結》。

第一篇:軟件工程方法學的學習總結

軟件工程方法學學習總結

? 軟件工程方法學是研究軟件設計方法論及工程開發技術的一門學科,主要研究的是:模型、方法、過程、工具、理念/原則、文檔,甚至相應的開發語言。隨著軟件工程的發展,形成了不同的軟件工程方法:結構化、面向對象、敏捷方法。在某個開發項目中,如何選擇、應用哪種軟件開發方法,用哪種方法更好,就成研究軟件工程方法學的基本動機。

? 定義(2)把在軟件生命周期全過程中使用的一整套技術的集合,稱為軟件工程方法學。軟件工程方法學包括三個要素:方法、工具和過程。? 軟件工程方法的分類

1.按不同的分類準則,會有不同的分類方法

a)注意,這一分類體系中并不是非此即彼,有可能有重復、沖突 2.按開發理念來分:

a)結構化方法;面向對象方法

3.按有無使用數學工具協助分析、設計、驗證、實現來分

a)形式化方法:從規范出發的開發、函數式編程、凈室方法 b)非形式化方法:目前大多數軟件工程方法 4.按是否有大量文檔工作和設計規范要遵守來分

5.重量級的方法:傳統結構化方法、面向對象方法b)輕量級的方法:敏捷方法(極限編程,快速原型法…),目前,并沒有一個很規范的分類體系。? 其相關知識體系: 結構化方法: 基本的結構化方法;復雜的結構化方法IDEF體系、Jackson方法 2 面向對象方法:基本的面向對象方法;RUP 3 極限編程方法(XP)4 快速原型軟件開發方法 5 測試驅動的軟件開發方法 6 形式化方法: 7 基于規范的開發方法/函數式編程開發方法 8 凈室(clean room)/零缺陷軟件開發方法面向方面編程的軟件開發(AOP)10 產生式編程、開發(GP)11 SOA: 面向服務的體系結構 MDA/MDSD: 模型驅動體系結構/軟件開發 ? 結構化軟件分析設計方法的概述

1.它是第一個成型的、完整的軟件工程方法

2.它是隨著函數和結構化語言(不要goto語句)的出現來誕生的 3.它第一次引入了模型圖的使用(程序流程圖)4.基本流程

a)項目調研

b)需求調查與分析 c)系統設計 d)系統實現 e)系統測試 f)系統維護

5.根據這些基本步驟的不同排列,可以有瀑布型、迭代型、螺旋型等等不同軟件開發模型 ? 對結構化方法和面向對象方法的對比和討論

結構化方法的特點

1.結構化思想的開發本質是:基于分解 2.簡單

3.把一個復雜過程用多個單個小過程來實現

4.用數據流圖,可以完成整個分解過程(其它的內容都可以從數據流圖派生出來)5.結果的唯一性

6.同一個問題,不同的人分解出來的結果基本是一樣的。

7.也即,用結構化方法,基本上是有標準答案的(差主要在于細不細)適用范圍:(1)較適合初學者學習(2)一個連續的處理過程 面向對象的特點 1.基于映射:

a)把現實世界的工作過程或系統,用代碼系統中的相對應的元素模擬出來,就完成了軟件的設計和開發 i.事物→對象

ii.事物的特征→對象的屬性 iii.事物的行為→對象的方法

iv.事物之間的信息交換與協同→類方法調用

… 2.復雜:

a)由于現實事物的復雜性,為了要更好地完成上面的模擬/映射,需要從多個角度描述系統或過程

b)靜態關系:多態、繼承、聚合、狀態轉換 c)動態關系:用例、活動、序列、協作 d)這僅僅是UML1.5之前的

e)UML2.0又增加了:時序、結構 3.結果的唯一性

a)同一個問題,有經驗的人和沒有經驗的人,進行面向對象設計時,結果可能會判別很大

適用范圍:(1)設計復雜系統;(2)設計高質量系統(3)設計與現實世界對應程度比較大的系統

未來的發展趨勢

面向對象仍將是主流,但結構化方法并不會,相反在某些領域還會有進一步應用,如:(1)網頁/網站;(2)工作流系統;(3)SOA ? 深入全面的面向對象分析設計方法

1.首先要搞清楚:軟件工程的分析和設計階段是要干什么的?需求->方案

a)了解用戶的需求:需求調查

b)把需求描述清楚、規范:用模型圖來描述需求

c)在需求分析的過程中,從規范的需求描述開始,描述及定義以下內容,完成需求分析(1)業務中要處理的數據(2)業務數據的處理過程 d)從這個需求分析出發,完成概要設計和詳細設計 i.概要設計是什么?完成軟件組成單元的劃分

ii.詳細設計是什么?單元接口設計(輸入輸出設計)、業務處理流程設計、數據庫設計、界面設計

2.需求調查

結果: 系統化、條目化的軟件需求文檔 3.需求定義

a)用標準化的軟件設計模型來描述已經獲得的需求,結果:用例圖 4.需求分析

a)就是要從需求定義(用例圖)中提取出這些內容,進行軟件概要設計和詳細設計

(1)處理過程設計:模塊內部流程設計(2)數據庫設計(3)界面設計 5.概要設計

構造軟件的大模塊(在OO方法中,模塊就是“類”)6.詳細設計

(1)處理過程設計:模塊內部流程設計(2)數據庫設計(3)界面設計

? 面向對象需求分析要完成的任務

1.描述出軟件的大致結構和功能分工

以便劃分類,確實類的屬性和方法;最終結果用類圖來表達。2.描述出類的相互調用關系

3.描述出每項系統工作的工作過程

以便設計每個模塊的輸入輸出;最終結果用交互圖和活動圖來表達。4.描述類的內部運作規律

最終結果用狀態圖來表達

5.在整個OO分析設計中,最重要的是類圖 ? 面向對象分析設計方法

– 從用例圖出發,進行需求分析,結構化方法是從數據流圖出發,而OO是從用例圖出發(請對比一下)

– 第一,就是細化用例圖

1.用例是描述外部用戶使用本軟件系統的應用場景。就是一個單個的使用功能

2.一個用例可能進一步分解成更小的應用場景的序列來實現

3.用有層次的用例圖,來描述需求

用例圖

活動圖

4.其次用序列圖(也叫順序圖)(見下頁例)b)序列圖是對活動圖的進一步深化 c)將活動圖中初步獲得的對象列出

d)對活動圖中,描述每一個工作步驟中,需要哪個對象向哪個對象發出消息 e)添加消息中的數據

f)將序列圖生成協作圖, 協作圖不用自己去畫(見后頁)以上這些,都是需求描述,通過這些描述理解并表達需求 我們是以活動圖為基礎來繪制順序圖的

協作圖

我們用用例圖、活動圖、順序圖、協作圖描述了需求中的業務處理過程,從這個需求描述,如何獲得我們最需要的類圖呢?

– 獲得類圖,可以用常識或經驗來設計,(1通過經驗和常識來確定類、添加類的屬性和方 法(2這其實也是常用的、高效快速的方法,我們不是說這種不對。

– 但我們這里介紹的是規范、標準的做法。因為,但對復雜的系統、不熟悉的系統來說,未必全部能從常識來。

第二篇:軟件工程學習總結

軟件工程學習總結

通過一個學期系統的學習軟件工程這門課,結合與小組成員一起開發設備管理系統的經驗,讓我對軟件的開發有了更深的了解,學習到每一個軟件的開發都不僅僅是寫代碼,還有更加復雜的系統性的開發流程。

要開發一個軟件,就拿設備管理系統來說,我們不能一上手就開始寫代碼,這樣會浪費大量的人力物力財力還得不到理想的結果,首先我們應該先做好市場及需求方面的調查,了解用戶需求有助于我們開發更加實用高效的軟件,做好市場調研可以讓我們對成本、利潤、市場情況等有深層了解,讓我們做出最優決策。

調查結束后,我們要寫出詳細的報告,包括項目開發計劃書、軟件需求規格說明書等,有了這些調查結果,我們才可以系統的,條理的來編寫我們的軟件。從前我們寫代碼都非常的盲目,雜亂無章,想到哪寫到哪,浪費了大量的時間,寫的代碼結構也很松散,錯誤率高。學習軟件工程后,我們學習了多種軟件開發模型,學會了模塊化的開發方法,小組成員每人完成不同的模塊,最后綜合起來,這樣能夠節省大量的時間,縮短開發時間,使代碼結構更加緊湊,易于管理維護。如果說代碼是一種工具的話,那么軟件工程就是使用工具的經驗指導,他能指導我們更好的使用這個工具,發揮它最大的潛能,幫助我們完成項目,不管使用什么程序語言,軟件工程教給我們的開發方法都無條件適用,我們需要認真學習理解這門課程,它將伴隨我們在程序開發的路上走下去。

第三篇:軟件工程學習總結和體會2015

西安交通大學

2015級研究生課程專題作業

軟 件

工 程 心 得專 業: 班 級: 學 號: 姓 名: 電 話:

二○一五年十月

體 會

一、軟件生命周期各階段任務目的和主要方法

在分階段總結之前,首先要明確以下三個問題:

1、什么是軟件生存周期?

軟件生存周期是指從軟件定義、開發、使用、維護到淘汰的全過程。主要包括:

(1)問題定義;(2)可行性研究;(3)需求分析;(4)概要設計;(5)詳細設計;(6)編碼;(7)測試;

(8)軟件維護。

2、軟件生存周期為什么劃分成階段?

(1)任何一個階段的具體任務不僅獨立,而且簡單,便于不同人員分工協作,從而降低整個軟件開發工作的困難程度。

(2)可以降低每個階段任務的復雜程度,簡化不同階段的聯系,有利于工程的組織管理,也便于采用良好的技術方法。

(3)使軟件開發的全過程以一種有條不紊的方式進行,保證軟件的質量,特別是提高了軟件的可維護性。

3、應該怎樣來劃分階段?

(1)每一個階段的任務盡可能獨立;(2)同一階段內的任務性質盡可能相同;

(3)每一個階段任務的開始和結束有嚴格的標準。

下面分別對各階段進行討論:

1、問題定義

目的是將用戶提出的要求具體化、定量化,任務是確定研制系統的范圍,明確研制的邊界。

方法步驟:

(1)通過調查研究,了解系統要求;

(2)需求方與開發方討論確定系統的功能、性能、可靠性、安全保密性等方面的要求,以及費用、進度等方面的要求。

2、可行性研究

可行性研究說明該軟件開發項目的實現在技術上、經濟上和社會條件上的可行性,評述為合理地達到開發目的可能選擇的各種方案,目標是用最小的代價在盡可能短的時間內確定問題是否能夠解決。

可行性研究的方法是首先需要進一步分析和澄清問題定義;然后分析員導出系統的邏輯模型;最后對未來的行動方針提出建議。

在導出邏輯模型的過程中,具體要根據以下四個方面分析可行性:

(1)經濟可行性:進行成本效益分析,評估項目的開發成本,估算開發成本是否會超過項目預期的全部利潤.分析系統開發對其它產品或利潤的影響。

(2)技術可行性:根據客戶提出的系統功能,性能及實現系統的各項約束條件,從技術的角度研究實現系統的可行性。(3)法律可行性:研究在系統開發過程中可能涉及的各種合同,侵權,責任以及各種于法律相抵觸的問題。

(4)開發方案的選擇性:提出并評價實現系統的各種看法方案.從中選出一種用于軟件項目開發。

3、需求分析

需求分析是為了有效解決用戶的需要而進行的一項工程活動,要考慮的問題是功能需求、數據需求、性能需求和接口需求,開發者承擔分析任務,核心是用戶。

軟件項目的失敗大半源于需求分析沒有做好,軟件開發人員首先應該明確用戶的意圖和要求,正確獲取用戶的需求,然后形成一個軟件需求規格說明,它是軟件開發的重要基礎。

需求分析的方法:

(1)需求獲取:獲取客戶需求,客戶泛指某個人或機構部門等,一般方法是調查,包括訪談座談、問卷、跟班和收集資料,需求規約可表達用戶的軟件價值。

(2)需求分析與規格說明:建立需求模型,它是用戶需求的圖解,一些常用的模型有:業務樹圖、用例圖、活動圖。分別用于結構化需求建模、系統業務舉例和反映系統工作流程。

(3)需求驗證:要驗證的主要內容有:有效性驗證、一致性驗證、完整性驗證、現實性驗證和可檢驗性驗證。

需求建模的方法:

(1)關聯模型

(2)面向對象模型(3)原型方法

4、系統設計

此階段主要根據需求分析的結果,對整個軟件系統進行設計,如系統框架設計,數據庫設計等,一般分為概要設計和詳細設計,好的軟件設計將為軟件程序編寫打下良好的基礎。

概要設計是對需求規格說明書中提供的軟件系統邏輯模型進行進一步的分解,從而建立軟件系統的總體結構和各個子系統間及各個模塊間的關系,定義各子系統接口界面和各模塊的功能描述,并根據設計結果產生概 要設計文檔。

概要設計在早期有模塊化方法、功能分解方法;在60年代后期提出了面向數據流和面向數據結構的設計方法;近年來又提出面向對象的設計方法等。

詳細設計過程根據概要設計形成的結果對各個模塊的內部實現進行規劃設計,并根據設計結果產生詳細設計文檔。

詳細設計主要方法是通過采用結構化和面向對象的方法從視圖、控制、模型三層模型上細化概要設計的各個模塊,并完成偽代碼為編碼階段做準備。

5、編碼和測試

編碼是將軟件設計的結果轉換成計算機可執行的程序代碼。主要方法是依據詳細設計文檔實現設計中的算法、功能、接口、數據結構,采用結構化和面向對象化的方法編寫代碼。

編碼過程中要制定統一,符合標準的編寫規范,以保證程序的可讀性,易維護性,提高程序的運行效率。

軟件設計完成后要經過嚴密的測試,以發現軟件在整個設計過程中存在的問題并加以糾正。整個測試過程分單元測試、組裝測試以及系統測試三個階段進行。

測試的方法主要有白盒測試和黑盒測試兩種。在測試過程中需要建立詳細的測試計劃并嚴格按照測試計劃進行測試,以減少測試的隨 意性。

6、軟件維護

軟件維護是軟件生命周期中持續時間最長的階段。在軟件開發完成并投入使用后,由于多方面的原因,軟件不能繼續適應用戶的要求。要延續軟件的使用壽命,就必須對軟件進行維護。

軟件的維護包括糾錯性維護和改進性維護兩個方面。

二、課程主要收獲

《軟件工程》課程強調概念和知識的理解和掌握,側重軟件項目的分析、設計、實現和維護的基本技能。比較注意“點”和“面”的結合,是一門理論性和實踐性都較強的學科。作為一名已經在IT領域工作十年之后又重返校園的大齡學生,雖然已經不是第一次學習這門課程了,去年也剛在單位取得了信息系統項目管理高級工程師資格,從另一個側面對軟件開發過程有了更深層次的理解。不過溫故而知新,這次仍然選修這門課,我還是得到了一些新的啟示。最大的收獲就是在我看來,軟件工程與其說是一門課程,不如說是一門思想,是一個如何去分析和處理問題的過程,應該說其范疇已經遠遠不止局限于該門課程,它已經成為了一個綜合的能夠解決問題的思想集合。

此外,通過對軟件開發過程的重學習,并結合之前在軟件開發管理工作中的經驗,我對自己在軟件開發主要階段管理工作中的不足有了更進一步的認識,總結了相應的管理要點,具體闡述如下:

1、概要設計

主要任務:系統應該怎樣做,或概括地說,系統應該如何實現。本階段特點:將用戶的具體要求轉為抽象的計算機軟件設計。管理要點:

通過分析對比,從多種可能的實現方案和軟件結構中選出最佳方案及最合理的,即: 設想供選擇的方案→推薦最佳方案→選取合理的方案功能分解→ 軟件設計結構 → 數據庫設計 3 確定測試要求并確定測試計劃

作為項目管理者必須從概要設計開始就應該從全局角度開始把握整個系統的進展,并必須從此階段開始,時刻從全局觀的問題來發現問題,解決問題。

2、詳細設計

主要任務:系統應該怎樣具體地做,或概括地說,系統應該如何具體地去實現所有的要求。

本階段特點:將抽象的計算機軟件設計轉為形象的,具體的,面向用戶的計算機界面設計。

管理要點:

本階段尚未涉及具體編寫程序,而是要設計出程序的“藍圖”,所以詳細設計的結果基本上決定了最終的程序代碼的質量。邏輯是否正確性能是否滿足要求是否容易閱讀和理解 作為項目管理者在詳細設計階段,應始終不忘從一名用戶的使用角度出發,審視每一個界面的詳細設計,以保證設計出來的界面以及程序能夠滿足一般用戶希望將來的系統能夠通俗易懂,簡單實用的要求。

3、編碼

主要任務:用某種程序設計語言書寫計算機能夠識別的程序。

本階段特點:將詳細設計書的內容“翻譯”成計算機語言,直接關系到整個項目的質量。

管理要點:

本階段的編碼是設計的自然結果,因此,程序的質量主要取決于軟件設計的質量。但是,程序設計語言的特性和編碼途徑也對程序的以下特性產生深遠的影響: 程序的可靠性 2 程序的可讀性 3 程序的可測試性 4 程序的可維護性

作為項目管理者在編碼階段,必須從把握進度與質量這兩個基本方面來有效地實施對項目的管理。首先應該根據項目進度計劃來合理地安排每一名作業成員的作業日程,并且隨時監督每一作業的進展情況,還需要針對項目的最新變更及時對計劃進行調整,以保證項目的按時完成。同時,在項目的進展過程中還需要通過小組討論,檢查評審等形式洞察每項作業的質量,以保證項目的保質保量完成。可以說,本階段是一名項目管理者在項目開發過程中極為忙碌也異常重要的階段。

4、測試

主要任務:通過單元測試和綜合測試來保證軟件工程的高質量。

本階段特點:盡可能早地發現并糾正差錯,往往占到軟件開發總工作量的40%以上,是保證軟件質量的關鍵。

管理要點:

軟件測試在軟件生命周期中橫跨兩個階段。通常在編寫出每個模塊之后就對其作必要的測試(稱之為單元測試),模塊的編寫者和測試者是同一人,編碼和單元測試屬于軟件生命周期的同一個階段。在此階段結束之后,對軟件系統還應該進行各種綜合測試,這是軟件生命周期的另一個獨立階段,通常由專門的測試人員來承擔這項工作。

作為項目管理者在編碼階段,必須高度重視軟件測試工作,甚至可以說應該把測試看作與編寫程序同等重要的任務來對待。在要求每一名開發人員完成自己分內的單元測試,并且監督測試人員認真進行各項綜合測試的同時,應該把自己完全當成一名本軟件工程的用戶,從用戶的角度以一種高度負責,甚至近乎苛刻的嚴格態度來對軟件進行徹底的測試。在本階段通過嚴把質量關來確保軟件工程的質量。

所以說,尤其在軟件進入具體開發階段后,能否遵循要點進行管理是很重要的。

總之,實際工作當中軟件項目為什么會失敗?為什么交付日期會一拖再拖?我覺得項目失敗只有一個原因:就是項目經理不合格。除非這個項目經理在項目開始階段就已經提出來了這個項目會失敗,或者是完全屬于項目之外不可抗拒的原因導致失敗。也許還會有一些我的同行跳出來說不服,那么請繼續:

難道是新增需求的原因導致失敗?客戶會讓你新增100個需求而要你二天交貨嗎?必然是分析設計階段沒有充分考慮好可擴展性和新增需求導致現在不可控制而失敗的!

難道是程序員人力不足導致?人都沒有到位,怎么會失敗,多少人做多少人的事,多少人做多少人的計劃,不會有失敗。

難道是程序員技能不夠?項目經理是如何面試的?怎么在項目失敗了才發現是程序員技能不夠?有問題早提出來嘛。

難道測試人員沒有做好?少來了,測試人員只是加了一道保障證明。程序很多流程都通過不了,程序還屬于開發調試階段,與測試人員有什么關系?

我曾經在單位參加一些項目,發現有這樣一個概念很多項目經理都沒有搞清楚:什么叫開發階段?我認為開發階段最多只能包括單元測試這一部分。綜合測試絕對不能屬于開發階段了,也就是說不能到了最后交付階段還有程序流程走不通,程序隨便正常操作都會失敗。程序隨便正常操作都出現好多bug屬于開發還沒有完成,絕對還沒有過單元測試階段,離綜合測試和驗收階段還早著呢。說白了,還屬于代碼審查階段。

不懂程序設計的項目經理,往往不注重code開發人員,其實這是一個嚴重的錯誤。軟件的質量來源于什么?由誰來保證?有的項目經理說是由測試人員來保證,就算測試人員的測試用例寫得很詳細,把需求中的每一個功能點都測試到了,那最后就沒有問題了嗎?當然不是,很多邏輯上的東西要程序員來保證不出問題的,而測試人員只是起一個驗證的作用,問題不應該由測試人員來發現,而應該由開發人員來發現。也就是說,我們盡量不要讓測試人員來發現問題。如果第一次測試有至少25%以上的用例通不過,那說明質量控制出了問題。這樣的版本根本就不應該拿出來進行測試。由此可見,軟件的質量是由程序員來保證的,而不是測試人員。

總的說來,一個項目的成敗與否,與項目的各個階段皆有關系:需求都不清楚,開發起來肯定是南轅北轍;分析設計不夠好,會讓程序員難以維護,隨著新增需求的增多,會導致整個系統混亂不可控制;編碼不好,整個系統不穩定是必然的,Bug也是抓不盡的;測試不做好,系統是沒有保證的,少了哪個環節都不行。

所以做軟件項目開發過程管理工作,我認為重點要放在項目計劃、進度控制、質量控制、風險預測這四個方面。不要說項目的失敗是因為新需求引起的,一個沒有新增需求和風險的項目是不存在的,承認這一點之后,我們就不會有很多怨言了。

以下針對這四個方面進行詳述:

項目計劃:沒有項目計劃,那失敗還有什么話好說?大家都知道凡事預則立,不預則廢。項目計劃一定要包括這幾方面的內容:各階段里程碑時間點,各個里程碑的輸出結果,風險預測,意外應對。計劃時間一定要提前于交貨時間,并注意風險意外是否留下足夠的應對時間和處理方案。

進度監控:對每個階段把握好,每個階段要完成的任務一定要完成,如果完不成,是什么原因導致的?我們的應對策略是什么?我們要信任別人,但是不要忘記鎖門。同樣的,別人說完成了,你不能就認為別人完成了,要看到結果才能證明完成了。有的項目經理說,我也進度監控啦,他說完成了就完成了,誰想到沒有完成?到底是程序員不誠實還是項目沒有管理好?你沒有鎖好門,能怨別人偷你東西嗎?還有一種情況就是不懂如何鎖門,根本就不知道這一階段的輸出結果是什么?當然進度監控就是一句空話了。

質量監控:也應該是分階段進行的,每一個階段的質量監控內容有所不同。

需求分析階段的質量監控就是完整而又正確的理解用戶需求,需求是否清楚可懂,寫用例的測試人員是否明白需求?

分析設計階段的質量監控就是設計是否完全滿足需求?這個設計方案是否滿足以后新功能的擴展?以及是否有考慮到新功能的意外和設備環境,運行平臺的變化?

編碼階段的質量監控就是變量命名是否規范?代碼是否可讀?是否有詳細的注釋?是否有重復代碼?要知道重復代碼是必然會造成系統不穩定,bug成群的。可變部分的代碼和不可變部分的代碼是否分離。要知道上面講的每一部分如果沒有做好,都會導致后期的產品出現大量問題。代碼階段還有一個重要的工作就是做code review代碼公開評審,你自己發現不了的問題別人也許就看得見。

單元測試階段的質量監控任務就是單元測試代碼是否測試通過?代碼覆蓋是否完全?單元測試報告提交情況如何?單元測試用例有沒有做好? 綜合測試階段質量監控任務當然就是看用例是否完全?是否全部真正執行?測試報告有沒有寫好?

回歸測試當然得看以前測試的Bug是否還在,如果還在,當然是無條件打回去重新開發。

測試階段最主要的監控就是看用例是否真正執行,是否有安全性測試?破壞性測試?異常測試,壓力測試?

以上的每個階段最好完成了才進行下一階段,否則會造成混亂出現問題的,造成想并行進行節約時間卻反而浪費了時間。

以上就是我重學《軟件工程》并結合實際工作經驗所得到的啟示,不妥之處請劉老師批評指正!

第四篇:軟件工程總結

軟件工程課程總結

摘要:

計算機是20世紀最重大的科學技巧成就之一,使當代社會的經濟、軍事、科研、教育、服務等方面在概念和技巧上發生了性的變化,對人類社會的進步已經并還將產生極為深刻的影響。目前,計算機是世界各發達國度劇烈競爭的科學技巧領域之一。

電子計算機早期功效主要是計算,后來已遠遠超越單純計算的功效,還可模擬、思維、進行自適應反饋處理等等,把它叫做“電腦”更為合實際。由于電子計算機功效的飛躍性發展,應用于生產和生活的各個方面,直接和顯著地提高了生產、工作和生活的效率、節奏和水平,在軟科學研究和應用中它也起著關鍵作用,因此它已被公認是現代技巧的神經中樞,是未來信息社會的心臟和錄魂。計算機學科分為四個領域,分別是計算機科學,計算機工程,軟件工程和信息系統。

正文:

軟件工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟件,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科。包括項目管理,分析,設計,程序的編寫,測試和質量控制。它涉及到程序設計語言、數據庫、軟件開發工具、系統開發平臺、標準、設計模式等方面。

學了《軟件工程》這門課程和一些有關資料后,感覺一些東西都曾經接觸過,但在實際工作中有些理論要完全遵循可能還有些障礙,軟件工程只是提供了理論上的一些結論,但對項目的具體可操作性的規范的制定方面卻做的很少,《軟件工程》發展了幾十年,光是開發模型就達到了10多種,對不同的項目采用合適的開發模式,有些項目在不同的開發階段可能還要轉換開發模式,把它們靈活的應用到實際中還是很困難的。

軟件技術是信息技術產業的核心之一,軟件技術的發展是與信息技術產業的發展互相促進的。當今世界,信息技術正處于新一輪重大技術突破的前夜。預計今后 20~30 年是信息科學技術的變革突破期,可能導致 21 世紀下半葉一場新的信息技術革命。近年來,從 IT 界到一些國家首腦,都高度關注以物聯網為標志的新一輪信息技術的發展態勢,認為這是繼 20 世紀 80 年代 PC 機、90 年代互聯網、移動通信網之后,將引發 IT 業突破性發展的第三次 IT 產業化浪潮。每一次重大的技術變革都會引起企業間、產業間甚至國家間競爭格局的重大變化,也促進了軟件技術與軟件產業的重大變革與發展。

近年來,信息技術、軟件技術、軟件系統與軟件產業的發展備受關注,已有不少論述、分析與判斷。近10 年內網絡技術經歷寬帶化、移動化和三網融合將走向基于 Ipv6 的下一代互聯網,2010 年 1 月,國家 863 計劃信息技術領域辦公室和國家 863 計劃信息技術領域專家組,在上海舉辦“信息-物理融合系統 CPS發展戰略論壇”,提出“信息-物理融合系統 CPS 是一個綜合計算、網絡和物理環境的多維復雜系統,是信息和物理世界的深度的融合交互,可實現大型工程系統的實時感知、動態控制和信息服務,使系統更加可靠、高效與實時協同,使得人類物理現實和虛擬邏輯逐步融合,具有重要而廣泛的應用前景。業界關于軟件工程的代表性觀點創立與使用健全的工程原則,以便經濟地獲得可靠且高效率的軟件。應用系統化,遵從原則,可被計量的方法來發展、操作及維護軟件;也就是把工程應用到軟件上。與開發、管理及更新軟件產品有關的理論、方法及工具。一種知識或學科,目標是生產品質良好、準時交貨、符合預算,滿足用戶所需的軟件。實際應用科學知識在設計、建構電腦程序,與相伴而來所產生的文件,以及后續的操作和維護上。

6使用與系統化生產和維護軟件產品有關之技術與管理的知識,使軟件開發與修改可在有限的時間與費用下進行。

7建造由工程師團隊所開發之大型軟件系統有關的知識學科。對軟件分析、設計、實施及維護的一種系統化方法。系統化地應用工具和技術于開發以計算機為主的應用。

10軟件工程是關于設計和開發優質軟件。

《軟件工程》是一門綜合性和實踐性很強的核心課程,它屬于是一門交叉學科,包含有:軟件開發技術(軟件開發方法學、軟件開發過程、軟件工具和軟件工程環境)、軟件工程管理(軟件管理學、軟件經濟學、軟件心理學)。主要內容包括軟件工程概述、可行性分析、需求分析、概要設計、詳細設計、面向對象分析與設計、編碼、軟件測試、項目計劃與管理。

本課程是面向準備從事軟件開發的畢業生而開設的一門專業課程。針對計算機教學中軟件工程這一薄弱環結,結合目前軟件開發商對人才的要求,對計算機專業的畢業生進行軟件工程強化培訓,目的是使畢業生能夠了解和掌握軟件工程的基本理論和方法,并在實際軟件開發中運用這些方法。

我理解,軟件工程是按照工程學的管理方式,有組織、有計劃的,在一定的質量基礎、時間限度和成本范圍內,實現功能明確的軟件系統。而且,軟件工程在企業范圍內運行,一定需要企業資源的支持,要與企業的經營、決策、管理體系聯系在一起,才能夠被踏踏實實的落實下來。

軟件工程項目是一個需要一步一步的計算,分析思考而來的,需要不斷思考,研究不斷進步,軟件業作為一個服務業,要想得到發展,首先必須形成一個對軟件服務有迫切需要的市場。其次,這個市場中的消費者必須具備足夠的購買力。軟件的消費群體簡單一點,可以分為個體消費和企業消費。中國的企業群體,數量龐大,但是質量不高。上規模的企業極少。國內目前能夠形成比較大規模的獨立市場的,肯定是小規模的軟件系統。

隨著信息化時代的到來其地位越來越受到人們的重視,軟件工程從一個學科,或是某一個研究方向來說,人員僅僅是過程,方法的執行者,所以人員素質往往被忽略,軟件工程是一門實踐性很強的學科,所以在實際的軟件研究過程中,人員的素質占有很重要的地位。要有出色的軟件問世,研發人員的素質至關重要!

作為軟件工程的學習者應該不斷創新,不斷嘗試、實踐,不斷研究和學習,中國的軟件工程技術依舊滯后于國外一些軟件工程技術,作為新一代的學習者應該擔當起振興起中國軟件事業,使中國科技得到高速發展!

現在已經是信息化時代,信息化潮流不斷涌現,想要掌握主動權就是掌握信息化的發展方向,這就需要我們不斷學習,時間,研究,學習國外的先進技術,轉變自己的技術,然后融合,創新。

軟件技術不是一成不變的,是隨著社會的進步的不斷進步,不需要不斷的創新,不斷的改善的,需要我們不斷的學習,不斷的研究,不斷進步。

第五篇:軟件工程總結

1.Software is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b 2.WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.Answer: b 3.Software engineering umbrella activities are only applied during the initial phases of software development projects.Answer: b 4.Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.Answer: a 5.The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.Answer: a 6.In agile process models the only deliverable work product is the working program.Answer: b 7.A most software development projects are initiated to try to meet some business need.Answer: a 8.In general software only succeeds if its behavior is consistent with the objectives of its designers.Answer: b 9.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.Answer: a 10.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.Answer: b 11.It is generally accepted that one cannot have weak software processes and create high quality end products.Answer: a 1.Requirements engineering is a generic process that does not vary from one software project to another.Answer: a 2.A stakeholder is anyone who will purchase the completed software system under development.Answer: b 3.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.Answer: a 4.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.Answer: a 5.Use-case actors are always people, never system devices.Answer: b 6.Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.Answer: a 7.In win-win negotiation, the customer’s needs are met even though the developer’s need may not be.Answer: b 8.In requirements validation the requirements model is reviewed to ensure its technical feasibility.Answer: b

1.Object-oriented domain analysis is concerned with the identification and specification of reusable capabilities within an application domain.Answer: a 2.In structured analysis models focus on the structure of the classes defined for a system along with their interactions.Answer: b 3.Creation and refinement of use cases if an important part of scenario-based modeling.Answer: a 4.It is important to consider alternative actor interactions when creating a preliminary use case.Answer: b 5.Brainstorming is one technique that may be used to derive a complete set of use case exceptions.Answer: a 6.In many cases there is no need to create a graphical representation of a usage scenario.Answer: a 7.One or more attributes of a data object must be defined as a key to allow the location of an instance of the data object.Answer: a 8.Attributes are chosen for an object by examining the problem statement and identifying the entities that appear to be related.Answer: b 9.An analysis package involves the categorization of analysis model elements into useful groupings.Answer: a 10.The data flow diagram must be augmented by min-spec that can serve as a guide the design of the software component that will implement the process.Answer: a 11.The UML sequence diagram show the order in which system events are processed.Answer: b 12.Analysis patterns are discovered, they are not explicitly created.Answer: a 13.It is not possible to justify the time required for WebApp requirements analysis.Answer: b 14.UML activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis class.Answer: a 15.Configuration analysis focuses on the architecture of the user’s web browsing environment.Answer: b 16.Content objects are extracted from use cases by examining the scenario description for direct or indirect content references.Answer: a 1.With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.Answer: b 2.Program flow graphs are identical to program flowcharts.Answer: b 3.The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.Answer: a 4.Graph-based testing methods can only be used for object-oriented systems Answer: b 5.Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.Answer: a 6.Boundary value analysis can only be used to do white-box testing.Answer: b 7.Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.Answer: a 8.Client/server architectures cannot be properly tested because network load is highly variable.Answer: b 1.The best representation of system architecture is an operational software prototype.Answer: b 2.The architectural representations can be an enabler for communication among project stakeholders.Answer: a 3.An architectural description is often documented using an architecture template.Answer: b 4.An architectural genre will often dictate the architectural approach that may used for the structure to be built.Answer: a 5.Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.Answer: b 6.Once selected, archetypes always need to be refined further as architectural design proceeds.Answer: a 7.Quantitative methods for assessing the quality of proposed architectural designs are readily available.Answer: b

Chapter 10 Self-Check Quiz

1.In the most general sense a component is a modular building block for computer software.a.True b.False

Answer: a(Section 10.1)

2.In the context of object-oriented software engineering a component contains

a.attributes and operations b.instances of each class c.roles for each actor(device or user)d.set of collaborating classes

Answer: d(Section 10.1.1)

3.In traditional software engineering modules must serve in which of the following roles?

a.Control component b.Infrastructure component c.Problem domain component d.All of the above

Answer: d(Section 10.1.2)

4.Software engineers always need to cerate components from scratch in order to meet customer expectations fully.a.True b.False

Answer: b(Section 10.1.3)

5.Which of the following is not one of the four principles used to guide component-level design?

a.Dependency Inversion Principle b.Interface Segregation Principle c.Open-Closed Principle d.Parsimonious Complexity Principle

Answer: d(Section 10.2.1)

6.The use of stereotypes can help identify the nature of components at the detailed design level.a.True b.False

Answer: a(Section 10.2.2)

7.Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.a.True b.False

Answer: a(Section 10.2.3)

8.Software coupling is a sign of poor architectural design and can always be avoided in every system.a.True b.False

Answer: b(Section 10.2.4)

9.WebApp content design at the component level focuses on content objects and the manner in which they interact.a.True b.False

Answer: b(Section 10.4.1)

10.A WebApp functional architecture describes the key functional components and how they interact with each other.a.True b.False

Answer: a(Section 10.4.2)

11.Which of these is a graphical notation for depicting procedural detail?

a.box diagram b.decision table c.ER diagram d.flowchart

Answer: d(Section 10.5.1)

12.A decision table should be used

a.to document all conditional statements b.to guide the development of the project management plan c.only when building an expert system d.when a complex set of conditions and actions appears in a component

Answer: d(Section 10.5.2)

13.A program design language(PDL)is often a

a.combination of programming constructs and narrative text b.legitimate programming language in its own right c.machine readable software development language d.useful way to represent software architecture

Answer: a(Section 10.5.3)

14.In component-based software engineering, the development team examines the requirements to see which are amenable to composition, rather than construction, before beginning detailed design tasks.a.True b.False

Answer: a(Section 10.6)

15.Which of the following is not one of the major activities of domain engineering?

a.analysis b.construction c.dissemination d.validation

Answer: d(Section 10.6.1)

16.Which of the following factors would not be considered during component qualification?

a.application programming interface(API)b.development and integration tools required c.exception handling d.testing equipment required

Answer: d(Section 10.6.2)

17.Which is the following is a technique used for component wrapping?

a.black-box wrapping b.clear-box wrapping c.gray-box wrapping d.white-box wrapping

Answer: b(Section 10.6.2)

18.Which of the following is not one of the issues that form a basis for design for reuse?

a.object-oriented programming b.program templates c.standard data d.standard interface protocols

Answer: a(Section 10.6.3)

19.In a reuse environment, library queries are often characterized using the ________ element of the 3C Model.a.concept b.content c.context d.all of the above

Answer: c(Section 10.6.4)

1.The importance of software design can be summarized in a single word a.b.c.d.Answer: d(Section 8.1)

2.Which of the following is not a characteristic common to all design methods?

a.configuration management b.functional component representation c.quality assessment guidelines d.refinement heuristics

Answer: a(Section 8.2.2)

3.Which of the following can be used to represent the architectural design of a piece of software?

a.Dynamic models b.Functional models c.Structural models d.All of the above

Answer: d(Section 8.3.2)

4.Design patterns are not applicable to the design of object-oriented software?

a.True b.False

Answer: b(Section 8.3.3)

5.Since modularity is an important design goal it is not possible to have too many modules in a proposed design.a.True b.False

Answer: b(Section 8.3.5)

6.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.accuracy complexity efficiency quality

a.True b.False

Answer: a(Section 8.3.6)

7.Cohesion is a qualitative indication of the degree to which a module

a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: b(Section 8.3.7)

8.Coupling is a qualitative indication of the degree to which a module

a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: d(Section 8.3.7)

9.When using structured design methodologies the process of stepwise refinement is unnecessary.a.True b.False

Answer: b(Section 8.3.8)

10.Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.a.True b.False

Answer: a(Section 8.3.10)

11.Which of the following is not one of the five design class types

a.Business domain classes b.Entity classes c.Process classes d.User interface classes

Answer: b(Section 8.3.13)

12.Which design model elements are used to depict a model of information represented from the user’s view?

a.Architectural design elements b.Component-level design elements c.Data design elements d.Interface design elements

Answer: c(Section 8.4.1)

13.Which design is equivalent to the floor plan of a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: a(Section 8.4.2)

14.Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: d(Section 8.4.3)

15.Which design model is equivalent to a set of detailed drawings for each room in a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: b(Section 8.4.4)

16.The deployment design elements specify the build order for the software components.a.True b.False

Answer: b(Section 8.4.5)

下載軟件工程方法學的學習總結word格式文檔
下載軟件工程方法學的學習總結.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    軟件工程總結

    第一章軟件與軟件工程的概念 軟件的概念:軟件是計算機系統中與硬件相互依存的另一部分,軟件包括程序,數據,及其相關文檔的完整集合。程序是按事先設計的功能和性能要求執行的指......

    軟件工程總結

    一、軟件工程概述1.軟件特點 軟件:計算機程序(人們為了實現特定的功能而編制的一組指令集),軟件文檔,以及計算機程序運行時所需要的數據。 軟件是計算機系統中的邏輯成分,具有無形......

    軟件工程總結

    軟件工程的定義:軟件工程是將系統化的,規范化的,可度量的方法應用于軟件的開發,運行和維護過程,即將工程化應用于軟件中的方法的研究。軟件工程的定義2:開發運行,維護和修復軟件的......

    軟件工程學習心得體會(范文大全)

    軟件工程學習心得體會范文我們從一些事情上得到感悟后,寫一篇心得體會,記錄下來,這樣可以幫助我們總結以往思想、工作和學習。應該怎么寫才合適呢?以下是小編為大家整理的軟件工......

    軟件工程學習心得體會[范文]

    軟件工程學習心得體會 軟件工程學習心得體會一:學習軟件工程的心得體會 學習了這門課程, 還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實例,讓理論......

    軟件工程學習心得體會

    軟件工程學習心得體會學習了這門課程, 還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實例,讓理論和實踐得到了很好的結合。整一個學期下來,總的來說還......

    軟件工程學習報告

    軟件工程學習報告 時間飛逝,不知不覺間《軟件工程》的學習已經即將結束了。在這將近一學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良......

    9.開發進度月報文檔 (軟件工程方法)

    九、開發進度月報 1.報告時間及所處的開發階段.....................................................................................................1 2.工程進度..........

主站蜘蛛池模板: 日本丰满熟妇videossex| 亚洲中文字幕av一区二区三区| 玖玖玖国产精品视频| 国产成人无码a区在线观看视频免费| 免费国产裸体美女视频全黄| 国产成a人片在线观看视频| 色老久久精品偷偷鲁| 日韩精品一区二区三区中文| 在线观看无码不卡av| 亚洲精品无码午夜福利中文字幕| 国产女人乱人伦精品一区二区| 国产一二三四区中| 久久人人爽天天玩人人妻精品| 一区二区三区在线 | 日本| 蜜芽久久人人超碰爱香蕉| 曰本极品少妇videossexhd| 久久久无码精品国产一区| 久久精品国产精品亚洲精品| 国产色无码精品视频免费| 强奷漂亮人妻系列老师| 国产亚洲精品久久精品6| 日韩无码在钱中文字幕在钱视频| 综合色区亚洲熟妇另类| 亚洲AV秘?成人久久无码海归| 亚洲精品伊人久久久大香| 国产成人午夜精品影院| 色欲老女人人妻综合网| 中文字幕无码人妻少妇免费| 国内大量揄拍人妻精品视频| 亚洲欧美国产国产一区二区三区| 警察被两个混混脱裤玩j视频| 黑人尾随强伦姧人妻爽翻天| 国产成人免费高清激情视频| 久久久久国产精品嫩草影院| 久久精品道一区二区三区| 亚洲成国产人片在线观看| 免费极品av一视觉盛宴| 精品日产一区二区三区| 精品一区二区三区免费播放| 东京热人妻系列无码专区| 午夜福利视频网站|