軟件工程作業含答案解析_第1頁
軟件工程作業含答案解析_第2頁
軟件工程作業含答案解析_第3頁
軟件工程作業含答案解析_第4頁
軟件工程作業含答案解析_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.TOC o 1-4 h u HYPERLINK l _Toc26882 軟件工程第一章作業 PAGEREF _Toc26882 1 HYPERLINK l _Toc14024 1.1什么是計算機軟件?軟件的特點是什么? PAGEREF _Toc14024 1 HYPERLINK l _Toc16409 1.2 簡述軟件的分類,并舉例說明。 PAGEREF _Toc16409 1 HYPERLINK l _Toc2861 1.4 什么是軟件工程? PAGEREF _Toc2861 1 HYPERLINK l _Toc30732 1.5 簡述軟件工程的基本原則。 PAGEREF _Toc3073

2、2 1 HYPERLINK l _Toc32140 1.6 軟件生存周期分哪幾個階段?分別簡述各個階段的任務。 PAGEREF _Toc32140 1 HYPERLINK l _Toc9566 1.9 簡述各類軟件過程模型的特點。 PAGEREF _Toc9566 2 HYPERLINK l _Toc28388 1.10 敏捷軟件開發的特點是什么? PAGEREF _Toc28388 2 HYPERLINK l _Toc20881 1.12 簡述敏捷軟件開發的原則。 PAGEREF _Toc20881 2 HYPERLINK l _Toc9531 第2、3章 PAGEREF _Toc9531

3、3 HYPERLINK l _Toc19161 2.1簡述系統工程的任務。 PAGEREF _Toc19161 3 HYPERLINK l _Toc32026 2.2基于計算機的系統由哪些元素組成? PAGEREF _Toc32026 3 HYPERLINK l _Toc11833 2.3簡述可行性分析的任務。 PAGEREF _Toc11833 3 HYPERLINK l _Toc28586 3.1需求工程的重要性是什么?舉出身邊由于需求分析失敗而造成整個項目失敗的例子。 PAGEREF _Toc28586 3 HYPERLINK l _Toc26521 3.2需求工程具體包括哪些步驟?每個

4、步驟的具體任務是什么? PAGEREF _Toc26521 3 HYPERLINK l _Toc23282 3.3一個系統分析員應該具備哪些思想素質和基礎知識?請說明理由。 PAGEREF _Toc23282 4 HYPERLINK l _Toc32677 3.4列出在制定需求獲取策略時的3種主要考慮因素。 PAGEREF _Toc32677 5 HYPERLINK l _Toc9415 3.6舉例說明一個系統的3個不同類型的非功能需求 PAGEREF _Toc9415 5 HYPERLINK l _Toc3431 3.8軟件需求分析的操作性原則和需求工程的指導性原則是什么? PAGEREF

5、_Toc3431 5 HYPERLINK l _Toc22116 3.9軟件需求規約主要包括哪些內容?自己尋找一個實例,親自寫一個需求規約。 PAGEREF _Toc22116 5 HYPERLINK l _Toc4609 3.10需求驗證應該有哪些人參加?畫出一個過程模型,說明需求評審應該如何組織。 PAGEREF _Toc4609 5 HYPERLINK l _Toc32216 第4章 PAGEREF _Toc32216 5 HYPERLINK l _Toc30456 4.1 簡述軟件設計階段的基本任務 PAGEREF _Toc30456 5 HYPERLINK l _Toc19355 4

6、.2 軟件設計與質量的關系是怎么樣的? PAGEREF _Toc19355 6 HYPERLINK l _Toc27613 4.4 簡述模塊、模塊化及模塊化設計的概念。 PAGEREF _Toc27613 6 HYPERLINK l _Toc22024 4.6耦合和軟件可移植性的概念有何關系?舉例說明自己的結論。 PAGEREF _Toc22024 6 HYPERLINK l _Toc1639 4.7用自己的話描述信息隱蔽概念,并討論信息隱藏與模塊獨立兩概念之間的關系。 PAGEREF _Toc1639 6 HYPERLINK l _Toc31131 4.8什么是模塊獨立性?設計中為什么模塊要

7、獨立?如何度量獨立性?模塊功能獨立有何優點? PAGEREF _Toc31131 6 HYPERLINK l _Toc24632 4.9軟件設計規約主要包括哪些內容? PAGEREF _Toc24632 7 HYPERLINK l _Toc17439 第5章結構化分析與設計 PAGEREF _Toc17439 7 HYPERLINK l _Toc2018 5.1 簡述數據流圖的主要思想,概述使用數據流圖進行需求分析的過程。 PAGEREF _Toc2018 7 HYPERLINK l _Toc2599 5.2 分別采用數據流方法中得哪些技術來完成用戶需求的精確化、一致化和完全化的任務。 PAG

8、EREF _Toc2599 7 HYPERLINK l _Toc1758 5.7 PAGEREF _Toc1758 8 HYPERLINK l _Toc401 第68章 PAGEREF _Toc401 12 HYPERLINK l _Toc3235 6.1 簡述面向數據結構方法的特點 PAGEREF _Toc3235 12 HYPERLINK l _Toc20706 6.2 采用Jackson圖表示下面的文件結構: PAGEREF _Toc20706 13 HYPERLINK l _Toc3829 8.1什么是構件? PAGEREF _Toc3829 13 HYPERLINK l _Toc17

9、082 8.2 簡述基于構件的軟件開發過程。 PAGEREF _Toc17082 13 HYPERLINK l _Toc29217 第11、13章 PAGEREF _Toc29217 14 HYPERLINK l _Toc1460 13.1請討論使軟件維護成本居高不下的因素。如何盡可能降低這些因素的影響? PAGEREF _Toc1460 14 HYPERLINK l _Toc8146 13.3軟件維護的過程是如何進行的?為什么要進行軟件可維護性分析? PAGEREF _Toc8146 15.軟件工程第一章作業1.1什么是計算機軟件?軟件的特點是什么?答:計算機軟件指計算機系統中的程序及其文檔

10、。軟件的特點是:A 軟件是一種邏輯實體,而不是有形的系統元件,其開發成本和進度難以準確得估算;B 軟件是被開發的或被設計的,沒有明顯的制造過程,一旦開發成功,只需復制即可,但其維護的工作量大;C 軟件的使用沒有硬件那樣的機械磨損和老化問題。1.2 簡述軟件的分類,并舉例說明。答:在計算機科學技術百科全書中,將軟件分為系統軟件、支撐軟件和應用軟件3類。A 系統軟件:系統軟件居于計算機系統中最靠近硬件的一層,其他軟件一般都通過系統軟件發揮作用。系統軟件與具體的應用領域無關。例如:編譯程序、操作系統等。B 支撐軟件:支撐軟件是支撐軟件的開發和維護的軟件。例如:數據庫管理系統、網絡軟件、軟件工具、軟件

11、開發環境等。C 應用軟件:應用軟件是特定應用領域專用的軟件。例如:工程/科學計算軟件、嵌入式軟件、產品線軟件、Web應用軟件、人工智能軟件。1.4 什么是軟件工程?答:在計算機科學技術百科全書中軟件工程是應用計算機科學、數學及管理科學等原理,開發軟件的工程。1.5 簡述軟件工程的基本原則。答:軟件工程原則包括圍繞工程設計、工程支持和工程管理提出的以下4條基本原則:第一條:圍繞適宜的開發模型;第二條:采用合適的設計方法;第三條:提供高質量的工程支撐;第四條:重視軟件工程的管理。1.6 軟件生存周期分哪幾個階段?分別簡述各個階段的任務。答:軟件生存周期有計算機系統工程、需求分析、設計、編碼、測試、

12、運行和維護6個階段。A計算機系統工程的任務是確定待開發軟件的總體要求和范圍,以及該軟件與其他計算機系統元素之間的關系,進行成本估算,做出進度安排,并進行可行性分析,即從經濟、技術、法律等方面分析待開發的軟件是否有可行的解決方案,并在若干個可行的解決方案中做出選擇。B需求分析主要解決待開發軟件要做什么的問題,確定軟件的功能、性能、數據、界面等要求,生成軟件需求規約。C軟件設計只要解決待開發軟件怎么做的問題。軟件設計通常可分為系統設計和詳細設計。系統設計的任務是設計軟件系統的體系結構,包括軟件系統的組成成分、各成分的功能和接口、成分間的連接和通信,同時設計全局數據結構。詳細設計的任務是設計各個組成

13、成分的實現細節,包括局部數據結構和算法等。D編碼階段的任務是用某種程序設計語言,將設計的結果轉換為可執行的程序代碼。E測試階段的任務是發現并糾正軟件中的錯誤和缺陷。測試主要包括單元測試、集成測試、確認測試和系統測試。F軟件完成各種測試后就可交付使用,在軟件運行期間,需對投入運行的軟件進行維護,即可發現了軟件中潛藏的錯誤或需要增加新的功能或使軟件適應外界環境的變化等情況出現時,對軟件進行修改。1.9 簡述各類軟件過程模型的特點。答:典型的軟件過程模型有:瀑布模型、演化模型增量模型、原型模型、螺旋模型、噴泉模型、基于構件的開發模型和形式方法模型等。A瀑布模型中,上一階段的活動完成并經過評審后才能開

14、始下一階段的活動,其特征是:接受上一階段活動的結果作為本階段活動的輸入;依據上一階段活動的結果實施本階段應完成的活動;對本階段的活動進行評審;將本階段活動的結果作為輸出。B增量模型將軟件的開發過程分成若干個日程時間交錯的線性序列,每個線性序列產生軟件的一個可發布的增量版本,后一個版本是對前一個版本的修改和補充,重復增量發布的過程,直至產生最終的完善產品。C原型方法從軟件工程師與客戶的交流開始,其目的是定義軟件的總體目標,標識需求。然后快速制定原型開發的計劃,確定原型的目標和范圍,采用快速設計的方式對其建模,并構建模型。被開發的原型應交付給客戶使用,并收集客戶的反饋意見,這些反饋意見可在下一輪迭

15、代中對原型進行改進。在前一個原型需要改進,或者需要擴展其范圍的時候,進入下一輪原型的迭代開發。D螺旋模型將原型模型實現的迭代特征與瀑布模型中控制的和系統化的方面結合起來,不僅體現了這兩種模型的優點而且還增加了風險分析。E噴泉模型是一種支持面向對象開發的過程模型。類及對象是面向對象方法中的基本成分。在分析階段,標識類及對象,定義類之間的關系,建立對象-關系模型和對象-行為模型。在設計階段,從實現的角度對分析模型進行調整和擴充。在編碼階段,用面向對象語言實現類及對象,通過消息機制實現對象之間的通信,完成軟件的功能。在面向對象方法中,分析模型和設計模型采用相同的符號表示體系,開發的各個活動沒有明顯的

16、邊界,各個活動經常重復,迭代地交替進行。F基于構件的開發模型,基于構件的開發是指利用預先包裝的構建來構造應用系統。構件可以是組織內部開發的構建,也可以是商業化的、現存的軟件構件。G形式化方法是建立在嚴格數學基礎上的一種軟件開發方法。軟件開發的全過程中,從需求分析、規約、設計、編程、系統集成、測試、文檔生成,直至維護等各個階段,凡是采用嚴格的數學語言,具有精確的數學語義的方法,都稱為形式化方法。形式化方法用嚴格的數學語言和語義描述功能和設計規約,通過數學的分析和推導,易于發現需求的歧義性、不完整性和不一致性,易于對分析模型、設計模型和程序進行驗證。通過數學的演算,使得從形式化功能規約到形式化設計

17、規約,以及從形式化設計規約到程序代碼轉換成為可能。1.10 敏捷軟件開發的特點是什么?答:敏捷軟件開發的特點有4個:A個人和交互高于過程和工具;B可運行軟件高于詳盡的文檔;C與客戶協作高于合同談判;D對變更及時做出反應高于遵循計劃。1.12 簡述敏捷軟件開發的原則。答:敏捷軟件開發必須遵循的12條原則如下;A最優先的是通過盡早地和不斷地提交有價值的軟件來使客戶滿意;B歡迎變化的需求,即使該變化出現在開發的后期,為了提升對客戶的競爭優勢,Agile過程利用變化作為動力;C以幾周到幾個月為周期,盡快、不斷地發布可運行軟件;D在整個項目過程中,業務人員和開發人員必須天天一起工作;E以積極向上的員工為

18、中心建立項目組,給予他們所需要的環境和支持,對他們的工作予以充分的信任;F項目組內效率最高、最有效的信息傳遞方式是面對面的交流;G測量項目進展的首要依據是可運行的軟件;H敏捷過程提倡可持續的開發,項目發起者、開發者和用戶應能長期保持恒定的速度;I應該時刻關注技術上的精益求精和好的設計,以增強敏捷性;J簡單化是必不可少的,這是盡可能減少不必要工作的藝術;K最好的構架、需求和設計出自于自我組織的團隊;L團隊要定期反思怎樣才能更加有效,并據此調整自己的行為。第2、3章2.1簡述系統工程的任務。答:系統工程是一個問題求解的活動,其目的是分析基于計算機的系統的功能、性能等要求,并把它們分配到基于計算機系

19、統的各個系統元素中,確定它們的約束條件和接口。主要任務包括:1識別用戶要求;2系統建模與模擬;3成本估算及進度安排;4可行性分析;5生成系統規格說明。2.2基于計算機的系統由哪些元素組成?答:組成基于計算機系統的元素主要有:軟件、硬件、人員、數據庫、文檔和規程。2.3簡述可行性分析的任務。答:可行性分析主要從經濟、技術、法律等方面分析所給出的解決方案是否可行,能否在規定的資源和時間的約束下完成。1經濟可行性主要進行成本效益分析,從經濟角度,確定系統是否值得開發。包括成本、效益、貨幣的時間價值、投資回收期和純收入。2技術可行性主要根據系統的功能、性能、約束條件等,分析在現有資源和技術條件下系統能

20、否實現。技術可行性分析通常包括風險分析、資源分析和技術分析。3法律可行性主要研究系統開發過程中可能涉及到的合同、侵權、責任以及各種與法律相抵觸的問題。3.1需求工程的重要性是什么?舉出身邊由于需求分析失敗而造成整個項目失敗的例子。答:重要性是應用已證實有效的技術、方法進行需求分析,確定客戶需求、幫助分析人員理解問題,評估可行性,協商合理的解決方案,無歧視地規約方案,確認規約以及將規約轉換到可行性的系統時的管理要求,通過合理的工具和符號系統地描述待開發系統以及其行為特征和相關約束,形成需求文檔,并對用戶不斷變化的需求演進給予支持。因需求分析失敗而造成項目失敗例子如下:項目名稱:郵政資信管理系統項

21、目功能:管理郵政方面業務的監督和管理,提高郵政的服務效率。失敗原因:需求分析不足,需求內容不明確,把握不充分。3.2需求工程具體包括哪些步驟?每個步驟的具體任務是什么?答:需求工程具體步驟包括:需求獲取、需求分析與協商、系統建模、需求規約、需求驗證以及需求管理六個步驟。1需求獲取在需求獲取階段系統分析人員通過與用戶的交流、對現有系統的觀察以及對任務進行分析,確定系統或產品范圍的限制性描述、與系統或產品有關的人員及特征列表、系統的技術環境的描述、系統功能的列表以及應用于每個需求的領域限制、一組描述不同運行條件下系統或產品使用狀況的應用場景以及為更好地定義需求而開發的原型。需求獲取的工作產品為進行

22、需求分析提供了基礎。2需求分析與協商此階段的任務是對需求進行分類組織,分析每個需求與其他需求的關系以檢查需求的一致性、重疊和遺漏的情況,并根據用戶的需要對需求進行排序。3系統建模系統建模是為了在用戶和系統分析人員之間建立統一的語言和理解的橋梁,系統分析人員借助建模技術對獲取的需求信息進行分析,排除錯誤和彌補不足,確保需求分析文檔正確反映用戶的真實意圖。4需求規約軟件需求規約是分析任務的最終產物,通過建立完整的信息描述、詳細的功能和行為描述、性能和設計約束的說明、合適的驗收標準,給出對目標軟件的各種需求。需求規約作為用戶和開發者之間的一個協議,在之后的軟件工程各個階段發揮重要作用。5需求驗證此階

23、段的任務是對功能的正確性、完整性和清晰性,以及其他需求給予評價,保證軟件需求定義的質量。6需求管理軟件需求管理是對需求工程所有相關活動的規劃和控制。換句話說,需求管理就是:一種獲取、組織并記錄系統需求的系統化方案,以及一個使用戶與項目團隊對不斷變更的系統需求達成并保持一致的過程。3.3一個系統分析員應該具備哪些思想素質和基礎知識?請說明理由。答:1強烈的責任心和事業心系統分析師由于必須保證分析的準確性,尤其是需求,所以責任更為重大。一般來說,不應以用戶表述不明確,無法得到需求,或者用戶需求變化太多太快作為借口,更不能因為下面的研發技術人員技術水平不如自己而責備研發技術人員,同時也需要能夠為保證

24、企業利益而說服公司領導做出正確的決策;2鉆研精神IT行業不同于其他行業,新理念新技術新方法層出不窮,系統分析師需要能夠適時適當地引進新理念新技術新方法,為企業提高生產效率,為員工降低勞動強度,為客戶提供更具競爭力和更加實用的產品和服務;3優秀的協商談判能力復雜的系統有許多項目相關的人員,他們之間的需求必定會出現沖突,協商的過程就是討論需求,找出每個人都滿意的折衷方案。分析人員是參與這之中的重要一份子,需要協調這之中的各方利益,這就要求分析員必須要有優秀的協商談判能力。4廣泛的知識面:除了具備基本的IT技能、知識外,需要廣泛涉獵其他行業其他學科的知識方法,以系統工程的理念,借鑒和利用其他行業的為

25、IT 行業所用,也可以把IT行業的理念應用到其他行業;5精湛的技術能力:系統分析員往往需要分析可行性和解決研發人員的技術問題,因此必須具備廣泛的技術涉獵面和較強的技術能力;6財務能力:系統分析員往往需要參與項目的招投標分析,為了保證企業的利潤和客戶的利益,必須進行財務核算,需要具備會計、財務,成本計算等方面的能力;7司法能力:與其他大部分行業一樣,IT行業也受到法律的約束,任何活動必須合情合理合法,任何違背法律的項目最終都會失敗,違背倫理道德的事和人最終都將失去人心。8超強超快的學習能力:IT行業新技術層出不窮,同時其他相關必備知識、業務知識也是瞬息萬變,系統分析師要能夠快速學習并快速掌握和靈

26、活應用;9敏銳的觀察力:由于IT行業項目的特殊性,項目復雜多變,系統分析師要能夠先于其他人員發現問題、發現隱患,并提前做出規避風險的策略。3.4列出在制定需求獲取策略時的3種主要考慮因素。答:1能否建立起順暢的通訊途徑;2是否能夠獲取用戶對系統的功能需求和非功能需求;3是否利于在可運行系統時的管理要求。3.6舉例說明一個系統的3個不同類型的非功能需求答:非功能性需求是指軟件產品為滿足用戶業務需求而必須具有且除功能需求以外的特性。軟件產品的非功能性需求包括系統的性能、可靠性、可維護性、可擴充性和對技術和對業務的適應性等。例如在銀行管理系統中,由于銀行數據量的龐大以及對銀行賬戶的管理需求,用戶對系

27、統的性能、可靠性、可維護性要求很高。安全性是對銀行用戶個人信息保密的基本要求;在使用系統時,由于用戶龐大,要求能快速安全的執行要求,這就對系統的性能有高需求;銀行的用戶的變動比較大,需求高要求的系統維護。3.8軟件需求分析的操作性原則和需求工程的指導性原則是什么?答:1必須能夠表示和理解問題的信息域;2必須能夠定義軟件將完成的功能;3必須劃分描述數據、功能和行為的模型,從而可以分層次地揭示細節;4分析過程應該從要素信息移向細節信息3.9軟件需求規約主要包括哪些內容?自己尋找一個實例,親自寫一個需求規約。答:軟件需求規約包括:引言、信息描述、功能描述、行為描述、檢驗標準、參考書目、附錄。3.10

28、需求驗證應該有哪些人參加?畫出一個過程模型,說明需求評審應該如何組織。答:參與人員:分析人員,用戶,開發部門的管理者,軟件設計、實現、測試的人員。需求分析分析人員用戶用戶要求獲取系統系統信息需求折衷方案系統信息開發部門管理者軟件設計、實現、測試人員系統需求第4章4.1 簡述軟件設計階段的基本任務軟件設計的輸入是軟件分析模型。使用一種設計方法,軟件分析模型中通過數據、功能和行為模型所展示的軟件需求的信息被傳送給設計階段,產生數據/類設計、體系結構設計、接口設計、部件及設計。數據/類設計將分析類模型變換成類的實現和軟件實現所需要的數據結構。體系結構設計定義了軟件的整體結構,由軟件部件、外部可見的屬

29、性和他們之間的關系組成。接口設計描述了軟件內部、軟件和協作系統之間以及軟件同人之間的通信方式。部件級設計將軟件體系結構的結構性元素變換為對軟件部件的過程性描述。4.2 軟件設計與質量的關系是怎么樣的?設計是在軟件開發中形成質量的階段,設計提供了可以用于質量評估的軟件表示,是將用戶需求準確的轉化為完整的軟件產品或系統的主要途徑。4.4 簡述模塊、模塊化及模塊化設計的概念。在軟件工程中模塊是數據說明、可執行語句等程序對象的集合,具有名字、參數、功能等外部特征以及完成模塊功能的程序代碼和模塊內部數據等內部特征。模塊化,即把軟件按照規定原則,劃分為一個個較小的,相互獨立的但又相互關聯的部件,實際上是系

30、統分解和抽象的過程。模塊化設計,簡單地說就是程序的編寫不是開始就逐條錄入計算機語句和指令,而是首先用主程序、子程序、子過程等框架把軟件的主要結構和流程描述出來,并定義和調試好各個框架之間的輸入、輸出鏈接關系。逐步求精的結果是得到一系列以功能塊為單位的算法描述。以功能塊為單位進行程序設計,實現其求解算法的方法稱為模塊化。模塊化的目的是為了降低程序復雜度,使程序設計、調試和維護等操作簡單化。4.6耦合和軟件可移植性的概念有何關系?舉例說明自己的結論。所謂耦合性是指模塊之間聯系的緊密程度的一種度量,而軟件的可移植性是指將一個軟件系統從一個計算機系統或環境移植到另一個計算機系統或環境中運行時所需工作量

31、的大小。可移植性是用一組子特性,包括簡明性、模塊獨立性、通用性、可擴充性、硬件獨立性和軟件系統獨立性等,來衡量的。如果一個軟件具有可移植性,它必然耦合性低,這樣模塊獨立性要強。例如,有一個圖形處理軟件,它應具有二維幾何圖形處理、三維幾何圖形處理、圖形顯示、外設控制、數據庫管理、用戶界面控制、設計分析等模塊。如果這些模塊之間都是通過參數表來傳遞信息,那么它們之間的的耦合就是數據耦合或標記耦合等,都是低耦合。將來如果想要把它們移植到另一個外部環境中,這些模塊容易修改功能內聚,且接口清晰,修改可局部化。反言之,如果這些模塊都是功能內聚或信息內聚的模塊,模塊之間的耦合都是低耦合,也對可移植性有促進。但

32、不能講具有低耦合性模塊結構的軟件一定具有可移植性,因為是否具有可移植性還有其它因素的影響。4.7用自己的話描述信息隱蔽概念,并討論信息隱藏與模塊獨立兩概念之間的關系。信息隱藏指在設計和確定模塊時,使得一個模塊內包含的特定信息過程或數據,對于不需要這些信息的其他模塊來說,是透明的。隱藏的意思是,有效的模塊化通過定義一組相互獨立的模塊來實現,這些獨立的模塊彼此之間僅僅交換那些為了完成系統功能所必需的信息,而將那些自身的實現細節與數據隱藏起來。信息隱蔽為軟件系統的修改、測試及以后的維護都帶來好處。通過抽象,可以確定組成軟件的過程實體。通過信息隱藏,可以定義和實施對模塊的過程細節和局部數據結構的存取限

33、制。模塊獨立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結果。開發具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立。4.8什么是模塊獨立性?設計中為什么模塊要獨立?如何度量獨立性?模塊功能獨立有何優點?模塊的獨立性是模塊化、信息隱藏和局部化等概念的直接結果。模塊的獨立性是很重要的:第一,功能被劃分,并且接口被簡化,所以具有有效模塊化的軟件易于開發。第二,由于因設計和編碼修改引起的副作用受到局限,錯誤傳播被減小,并且模塊復用成為可能,所以獨立的模塊更易于維護和測試。總的來說,模塊獨立是良好設計的關鍵,從而又是保證軟件質量的關鍵。用內聚度與耦合度來度量獨立性。內聚度度

34、量同一個模塊內部各個元素彼此結合的緊密程度,耦合度度量不同模塊彼此間相互以來的緊密程度。模塊功能獨立的優點:系統容易開發,系統可靠性高,系統易于維護,軟件結構清晰。4.9軟件設計規約主要包括哪些內容?1.工作范圍2.體系結構設計3.數據設計4.接口設計5.各部件的過程設計6.運行設計7.出錯處理設計8.安全保密設計9.需求/設計交叉索引10.測試部分11.特殊注解12.附錄第5章結構化分析與設計5.1 簡述數據流圖的主要思想,概述使用數據流圖進行需求分析的過程。數據流圖DFD描述輸入數據流到輸出數據流的變換即加工,用于對系統的功能建模。數據流圖可以用來抽象地表示系統或軟件。它從信息傳遞和加工的

35、角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過程,同時可以按自頂向下、逐步分解的方法表示內容不斷增加的數據流和功能細節。因此,數據流圖既提供了功能建模的機制,也提供了信息流建模的機制,從而可以建立起系統或軟件的功能模型。數據流圖進行需求分析的過程:畫出系統的輸入和輸出畫出系統內部畫出加工內部4重復第三步,直至每個尚未分解的加工都足夠簡單即不必再分解5.2 分別采用數據流方法中得哪些技術來完成用戶需求的精確化、一致化和完全化的任務。1父圖和子圖平衡2數據守恒3局部文件4一個加工的輸入數據流不能與該加工的輸入數據流同名5每個加工至少有一個輸入數據流和一個輸出數據流。6在整套分層數據流中,每個

36、文件應至少有一個加工讀該文件,有另一個加工寫該文件。7分層數據流圖中得每個數據流和文件都必須命名除了流入或流出文件的數據流,并且與數據字典一致。8分層DFD中的每個基本加工即不再分解子圖的加工都應有一個加工規約。5.4 在數據流圖中,可否將兩個加工用一個數據流相連?可否將兩個源用一個數據流相連?為什么?兩個加工可以直接用數據流相連,兩個源不能直接用數據流相連。因為數據流由一組固定成分的數據組成。在DFD中,數據流的流向可以有以下幾種:從一個加工流向另一個加工,從加工流向文件寫文件,從文件流向加工讀文件,從源流向加工,從加工流向宿。5.7采用結構化分析方法寫出書店管理系統的需求文檔,包括數據流圖

37、及數據字典。看到這個題目,我想起了以前自己也在手機端Android平臺寫了一個書店的管理系統,不過那個時候根本沒有什么需求分析,只是自己一廂情愿的模擬了一個簡單的流程。也沒有采用什么結構化分析方法,就僅僅描述了幾個對象及其功能。所以我覺得可以對照著新學的軟件工程的知識運用到自己的實際項目中去,同時也可以完成這道相識的題目。下圖就是以前的功能結構圖:會員管理子系統會員管理子系統用戶登錄子系統超級管理員倉庫管理員銷售管理員供應商信息管理子系統倉庫管理子系統進貨出貨銷售管理子系統零售批發退貨書店銷售管理系統利用結構化方法分析:數據流程圖存書分數據流圖:書店管理員書店管理員存書情況查 存書情況查 詢是

38、否為新書是否為新書否進貨分數據流圖:登記進貨信息進貨信息登記進貨登記表進貨登記表查詢查詢存書存書進貨信息進貨信息登記銷售已售信息登記銷售已售信息圖書銷售登記表銷售分數據流圖:圖書銷售登記表登記銷售管理員查詢銷售銷售信息登記銷售管理員查詢銷售存書銷售信息存書會員分數據流圖:查 詢會員信息登記表查 詢會員信息登記表管理員會員信息會員信息登 登 記登記銷售總數據流圖:已售信息登記銷售圖書銷售登記表圖書銷售登記表登記進貨信息進貨信息銷售登記進貨登記表信息進貨登記表登記銷售登記銷售查詢銷售存 書查詢銷售存 書查詢信息信息查詢進貨信息進貨會員信息登記表查 詢登 記信息會員信息登記表查 詢登 記書書 店 管

39、 理 員會員信息會員信息會員信息存書會員信息進會員信息貨查 詢查 詢間查 詢查 詢存書情況進貨信息存書情況新 書 新 書 列是否為新書是否2、數據字典存書數據字典:屬性名類型長度備注書號char10書的編號書名char30書的名稱作者char20書的寫作者類型char20書的類型簡述char150書的簡單介紹單價smallmoney4書的價格現存數量int4店內的現有存書數量店內位置char20書在店內的具體位置出版社號char10出版社的編號特價書char2是否為特價書缺省值是否出版社數據字典:屬性名類型長度備注出版社號char10出版社的編號出版社名稱char20出版社的名稱所在城市cha

40、r10出版社所在的城市電話char15出版社的聯系電話進貨數據字典:屬性名類型長度備注書號char10書的編號進價smallmoney4書的進價進貨數量int4每本書的進貨數量日期datetime8進貨的日期銷售數據字典:屬性名類型長度備注日期datetime8售貨的日期書號char10書的編號銷售量int4售出的書本數量銷售金額money8銷售金額=單價*銷售量會員信息數據字典:屬性名類型長度備注客服號char8會員卡的卡號姓名char20會員的姓名地址char50會員的家庭住址電話char15會員的電話號碼購買書號char10書的編號店內收出數據字典:屬性名長度備注月份6水電支出4水電費用

41、員工支出4員工的工資其他支出4其他費用支出結算8每月的總結算數據結構數據結構名組成存書信息書號,書名,作者,簡介,單價,店內位置,類型,現存數量,出版社號,特價書出版社號出版社號,出版社名稱,電話,所在城市進貨信息書號,進貨數量,進價,進貨日期銷售信息銷售日期,書號,銷售量,銷售金額會員信息購買書號,客服號,會員姓名,地址,電話書店支出信息月份,水電支出,員工支出,其他支出,結算數據流數據流名數據流來源數據流去向組成登記新書信息進貨信息存書信息新書信息查詢新書信息新書登記信息管理員新書信息登記打折書信息存書信息銷售信息存書信息查詢打折書信息打折書登記信息管理員存書信息.登記會員信息會員信息存書

42、信息會員信息查詢會員信息會員登記信息管理員會員信息數據存儲數據存儲名輸入的數據流輸出的數據流組成新書登記表進貨信息,是否為新書存書信息進貨信息,存書信息打折書登記表存書信息,是否為打折書銷售信息存書信息,銷售信息會員登記表會員信息,銷售信息會員信息會員信息,銷售信息第68章6.1 簡述面向數據結構方法的特點答:特點如下:1 以信息對象及其操作作為核心進行需求分析;2 認為復合信息對象具有層次結構,并且可按順序,選擇,重復3種結構分解為成員對象信息;3 提供由層次信息結構映射為程序結構的機制,從而為軟件設計奠定良好的基礎。6.2 采用Jackson圖表示下面的文件結構:文件文件人員記錄人員記錄*

43、工作工號地址姓名工作工號地址姓名工廠。辦公室。管理員。工廠。辦公室。管理員。8.1什么是構件?答:根據pressman書中的定義構件是某系統中有價值的、幾乎獨立的并可替換的一個部分,它在良好定義的體系結構語境內滿足某種清晰的功能。根據brown的定義構件是一個獨立發布的功能部分,可以通過其接口訪問它的服務。根據計算機科學技術百科全書第二版中的定義軟件構件是軟件系統中具有相對獨立功能,可以明確標識,接口由規約指定,與語境有明顯依賴關系,可獨立部署,且多由第三方提供的可組裝軟件實體。軟件構件須承載有用的功能,并遵循某種構件模型。可復用構件是指具有可復用價值的構件。在基于構件的軟件開發中經常會使用到

44、的商用成品構件,是指由第三方開發的滿足一定構件標準并且可組裝的軟件構件。8.2 簡述基于構件的軟件開發過程。基于構件的軟件開發過程:領域工程的步驟:1 領域分析2 建立領域特定的基準體系結構模型3 標識候選構件4 泛化和可變性分析5 構件重構6 構件的測試7 構件的包裝8 構件入庫應用系統工程的步驟:1 建立應用系統的體系結構模型;2 尋找候選構件;3 評價和選擇合適的構件;4 構件的修改和特化;5 開發未被復用的不分;6 構件的組裝;7 集成測試;8 評價被復用的構件,并推薦可能的新構件。第11、13章13.1請討論使軟件維護成本居高不下的因素。如何盡可能降低這些因素的影響?軟件維護的代價是生產率驚人下降。維護費用只不過是軟件及維護最明顯的代價,起一些隱性的代價將更為人們關注。軟件維護除費用外的無形代價包括:1.維護活動占用了其他軟件開發可用的資源,使資源的利用率降低2.一些修復或修改請求得不到及時安排,使得客戶滿意率下降3.維護的結果把一些新的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論