1. 導致軟體危機的本質原因: 軟體的大量需求與軟體生產力效率之間的矛盾;軟體系統的複雜性與軟體開發方法之間的矛盾。
2. 軟體危機的表現:①軟體需求增長得不到滿足;②軟體生產高成本、**昂貴; ③軟體生產進度無法控制 ;④軟體需求定義不準確 ;⑤軟體質量不易保證; ⑥軟體可維護性差 ;⑦使用者對產品功能難以滿足。
3.克服軟體危機的方法:①正確理解計算機軟體的內涵;②採用工程專案管理方法實施軟體開發的組織管理。(軟體開發應該是一種組織良好、管理嚴密、協同配合的工程活動);③採用成熟的軟體開發技術和方法,開發和使用適當的軟體工具。
軟體生命週期六個階段:
1. 可行性分析:確定開發總體目標;估計可利用的開發資源、成本、利益;提交可行性分析報考,開發計畫文件
2. 需求分析:分析使用者需求;提交軟體需求說明、軟體規格說明、資料要求說明的初步的文件和初步的使用者手冊
3. 設計:架構師確定軟體開發環境和目標環境,將架構結果交給具體負責的結構工程師(每個模組給出具體的實現的演算法指標);講模組分發給專案經理,專案經理分解模組中的程式單元,分給具體的程式工程師完成;提交結構設計說明書、詳細設計說明書和測試計畫初稿等文件
4. 實現:提交使用者手冊、操作手冊等面向使用者的文件
5. 軟體測試:全面測試目標軟體系統;提交專案開發總報告
6. 執行與維護
軟體需求:軟體需求知識域關注軟求需求的啟發,協商,分析,規範和驗證。軟體行業普遍認為,當這些活動執行得很差時,軟體工程專案是非常脆弱的。軟體需求表達了對軟體產品的需求和約束,這些需求和約束有助於解決一些實際問題。
軟體設計:設計被定義為定義系統或元件的體系結構、元件、介面和其他特性的過程,以及該過程的結果(ieee 1991)。軟體設計知識域包括設計過程和最終產品。軟體設計過程是軟體工程生命週期的活動,在此過程中,軟體需求被分析,以產生對軟體內部結構及其行為的描述,並作為其構建的基礎。軟體設計結果必須描述軟體體系結構——也就是說,軟體如何分解和組織成元件以及這些元件之間的介面。它還必須在支援其構造的詳細級別上描述元件。
軟體實現:軟體實現是指通過詳細設計、編碼、單元測試、整合測試、除錯和驗證相結合,對工作軟體進行詳細的建立。軟體實現知識域包括與軟體程式開發相關的主題,這些軟體程式將滿足需求和設計約束。本知識域涵蓋了軟體構建的基礎;管理軟體建設;施工技術;實際問題;以及軟體構建工具。
軟體測試:測試是一種通過識別缺陷來評估產品質量和改進產品質量的活動。軟體測試包括在有限的測試用例集中,根據預期的行為對程式的行為進行動態驗證。這些測試用例是從(通常非常大的)執行域中選擇的。軟體測試知識域包括軟體測試的基礎知識;測試技術;人機介面測試與評價;任何跟考試有關的措施;和實際的考慮。
軟體維護:軟體維護包括增強現有的功能,使軟體適應新的和修改過的操作環境,以及糾正缺陷。這些類別被稱為完善的、自適應的和糾正的軟體維護。軟體維修知識域包括軟體維修的基本知識(維修的性質和需要、維修類別、維修費用);軟體維護中的關鍵問題(技術問題、管理問題、維護成本估算、軟體維護度量);維護過程;軟體維護技術(程式理解、再工程、逆向工程、重構、軟體退役);災難恢復技術和軟體維護工具。
軟體配置管理:系統的配置是硬體、韌體、軟體或這些的組合的功能和/或物理特性。它還可以看作是根據特定的構建過程組合的特定版本的硬體、韌體或軟體項的集合,以滿足特定的目的。因此,軟體配置管理(scm)是在不同的時間點識別系統配置的規程,目的是系統地控制配置的變更,以及在整個軟體生命週期中維護配置的完整性和可跟蹤性。軟體配置管理知識域包括對scm過程的管理;軟體配置識別、控制、狀態核算、審計;軟體發布管理與交付;和軟體配置管理工具。
軟體工程管理:軟體工程管理包括計畫、協調、度量、報告和控制乙個專案或程式,以確保軟體的開發和維護是系統的、有紀律的和量化的。軟體工程管理知識域包括初始化和範圍定義(確定和協商需求、可行性分析、需求評審和修訂);軟體專案規劃(過程規劃、工作量估算、成本和進度、資源分配、風險分析、質量規劃);軟體專案制定(測量、報告、控制;採購和**商合同管理);產品驗收;檢討及分析專案表現;專案關閉;以及軟體管理工具。
軟體工程過程:軟體工程知識域涉及軟體生命週期過程的定義、實現、評估、度量、管理和改進。涵蓋的主題包括過程實現和變更(過程基礎結構、過程實現和變更的模型以及軟體過程管理);過程定義(軟體生命週期模型和過程、過程定義符號、過程適應和過程自動化);過程評估模型和方法;測量(過程測量、產品測量、測量技術、測量結果質量);以及軟體處理工具。
軟體工程模型和方法:軟體工程模型和方法知識域解決了包含多個生命週期階段的方法;特定於特定生命週期階段的方法由其他知識域覆蓋。涵蓋的主題包括建模(軟體工程模型的原理和屬性;語法、語義和不變數;前置條件、後置條件和不變數);模型的型別(資訊、結構和行為模型);分析(正確性、完整性、一致性、質量和互動性分析;可追溯性;和權衡分析);以及軟體開發方法(啟發式方法、形式化方法、原型方法和敏捷方法)。
軟體質量:軟體質量是乙個普遍存在的軟體生命週期問題,許多swebok v3的知識域都解決了這個問題。此外,軟體質量知識域包括軟體質量的基礎(軟體工程文化、軟體質量特徵、軟體質量的價值和成本、軟體質量改進);軟體質量管理過程(軟體質量保證、驗證和驗證、評審和審核);以及實際的考慮(缺陷描述、軟體質量度量和軟體質量工具
軟體工程專業實踐:軟體工程專業實踐是指軟體工程師必須具備的知識、技能和態度,以便以專業、負責任和合乎道德的方式實踐軟體工程。軟體工程專業實踐知識域涵蓋專業(專業行為、專業社團、軟體工程標準、僱傭合同、法律問題);倫理準則;群體動力學(團隊合作,認知問題複雜性,與利益相關者互動,處理不確定性和模糊性,處理多元文化環境);和溝通能力。
軟體工程經濟學:軟體工程經濟學知識域關注的是在業務上下文中做出決策,使技術決策與組織的業務目標保持一致。涵蓋的主題包括軟體工程經濟學的基本原理(建議、現金流、金錢的時間價值、規劃範圍、通貨膨脹、折舊、替換和退休決定);非營利性決策(成本效益分析、優化分析);評估、經濟風險與不確定性(評估技術、風險與不確定性下的決策);多屬性決策(價值和度量尺度、補償和非補償技術)。
計算基礎:計算基礎知識域涵蓋了為軟體工程實踐提供必要的計算背景的基本主題。主題包括問題解決技術、抽象、演算法和複雜性、程式設計基礎、並行和分布式計算基礎、計算機組織、作業系統和網路通訊。
數學基礎:數學基礎知識域涵蓋了為軟體工程實踐提供必要的數學背景的基本主題。主題包括集合、關係和函式;基本命題與謂詞邏輯;證明技術;圖表和樹木;離散型概率;語法和有限狀態機;和數論。
工程基礎:工程基礎知識域涵蓋了為軟體工程實踐提供必要的工程背景的基本主題。主題包括經驗方法和實驗技術;統計分析;測量和度量;工程設計;**和建模;以及根本原因分析。
1、初始級:軟體過程是無序的,有時甚至是混亂的,對過程幾乎沒有定義,成功取決於個人努力。管理是反應式的。
2、可管理級:建立了基本的專案管理過程來跟蹤費用、進度和功能特性。制定了必要的過程紀律,能重複早先類似應用專案取得的成功經驗。
3、已定義級:已將軟體管理和工程兩方面的過程文件化、標準化,並綜合成該組織的標準軟體過程。所有專案均使用經批准、剪裁的標準軟體過程來開發和維護軟體,軟體產品的生產在整個軟體過程是可見的。
4、量化管理級:分析對軟體過程和產品質量的詳細度量資料,對軟體過程和產品都有定量的理解與控制。管理有乙個作出結論的客觀依據,管理能夠在定量的範圍內**效能。
5、 優化管理級:過程的量化反饋和先進的新思想、新技術促使過程持續不斷改進。
cmmi全稱是capability maturity model integration,即能力成熟度模型整合(也有稱為:軟體能力成熟度整合模型) ,是美國國防部的乙個設想,2023年由美國國防部(united states department of defense)與卡內基-梅隆大學(carnegie-mellon university)下的軟體工程研究中心(software engineering institute,seism)以及美國國防工業協會(national defense industrial association)共同開發和研製的,他們計畫把現在所有現存實施的與即將被發展出來的各種能力成熟度模型,整合到乙個框架中去,申請此認證的前提條件是該企業具有有效的軟體企業認定證書。
其目的是幫助軟體企業對軟體工程過程進行管理和改進,增強開發與改進能力,從而能按時地、不超預算地開發出高質量的軟體。其所依據的想法是:只要集中精力持續努力去建立有效的軟體工程過程的基礎結構,不斷進行管理的實踐和過程的改進,就可以克服軟體開發中的困難。cmmi為改進乙個組織的各種過程提供了乙個單一的整合化框架,新的整合模型框架消除了各個模型的不一致性,減少了模型間的重複,增加透明度和理解,建立了乙個自動的、可擴充套件的框架。因而能夠從總體上改進組織的質量和效率。cmmi主要關注點就是成本效益、明確重點、過程集中和靈活性四個方面。
系統分析與設計 第一周
解答 軟體工程是應用系統的 規範的 可量化的方法來開發,操作和維護軟體。即工程應用於軟體的方法研究。解答 落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,從而導致軟體開發與維護過程 現一系列嚴重問題的現象。專案執行超預算 專案執行時間過長 軟體效率很低 軟體質量很差 軟體通常不符合要求 專案難以...
《演算法設計與分析》第一周作業
標籤 空格分隔 課堂作業 姓名 李 學號 16340114 題目 valid parentheses 題目概要 給定一串只包含 的字串,判斷該字串中的括號是否合法地閉合。思路 發現一對合法的子字串,如 就將該子字串消去,再對修改後的輸入字串進行該操作,直到字串無法繼續進行消去操作,如字串完全被消掉則...
系統分析與設計作業(一)
1.軟體工程的定義 軟體工程是 1 將系統化 規範化 可度量的方法應用於軟體開發 執行和維護,即將工程化方法應用於軟軟體。2 在 1 中所述方法的研究。2.解釋 software crisis cocomo 模型 software crisis 軟體危機是指落後的軟體生產方式無法滿足迅速增長的計算機...