系統分析與設計概念

2021-09-11 14:01:51 字數 3585 閱讀 6098

軟體工程定義

概括的說:軟體工程是指導計算機軟體開發和維護的一門工程學科。採用工程化的方法來開發和維護軟體,把經過實踐考驗而證明正確的工程管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟體並有效的維護它。這就是軟體工程。

主要內容:針對軟體生命週期全過程及其每個具體階段的工程方法、技術細則、文件規範、管理制度、人員組織以及質量保證體系等。每個軟體開發者必須按工程的統一要求行事,不能隨意地自由發揮。每個開發階段都要產生健全的、符合工程規範的文件。軟體產品是這些文件的總合,而不僅僅是程式。

三大要素

方法:(物件導向方法)完成軟體開發的各項任務的技術方法,為軟體開發提供「如何做」的技術

工具:(ea)為運用方法而提供的自動的或半自動的軟體工程的支撐環境

過程:(基於原型的增量迭代軟體開發工程)為了獲得高質量的軟體所需要完成的一系列 任務的框架,它規定了完成各項任務的工作步驟,如何將軟體工程方法與軟體工具 相結合,合理、及時地進行軟體開發

關於software crisis

定義:軟體危機是指落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,從而導致軟體開發與維護過程**現一系列嚴重問題的現象。

原因:導致軟體危機的原因包括使用者需求不明確,缺乏正確的理論指導,軟體開發規模越來越大,軟體開發複雜度越來越高。總結而言,就是軟體的生產和維護需求與使用者的使用需求不成正比。

表現

軟體開發進度難以**

軟體開發成本難以控制

使用者對產品功能難以滿足

軟體產品質量無法保證

軟體產品難以維護

軟體缺少適當的文件資料

解決方法

在解決軟體危機方面,就需要設計到軟體工程,軟體工程誕生於60年代末期,它作為乙個新興的工程學科,主要研究軟體生產的客觀規律性,建立與系統化軟體生產有關的概念、原則、方法、技術和工具,指導和支援軟體系統的生產活動,以期達到降低軟體生產成本 、改進軟體產品質量、提高軟體生產率水平的目標。軟體工程學從硬體工程和其他人類工程中吸收了許多成功的經驗,明確提出了軟體生命週期的模型,發展了許多軟體開發與維護階段適用的技術和方法,並應用於軟體工程實踐,取得良好的效果。

在軟體開發過程中人們開始研製和使用軟體工具,用以輔助進行軟體專案管理與技術生產,人們還將軟體生命週期各階段使用的軟體工具有機地集合成為乙個整體,形成能夠連續支援軟體開發與維護全過程的整合化軟體支援環境,以期從管理和技術兩方面解決軟體危機問題。

此外,人工智慧與軟體工程的結合成為80年代末期活躍的研究領域。基於程式變換、自動生成和可重用軟體等軟體新技術研究也已取得一定的進展,把程式設計自動化的程序向前推進一步。在軟體工程理論的指導下,發達國家已經建立起較為完備的軟體工業化生產體系,形成了強大的軟體生產能力 。軟體標準化與可重用性得到了工業界的高度重視,在避免重用勞動,緩解軟體危機方面起到了重要作用。

軟體生命週期

軟體生命週期:乙個軟體產品或者系統要經歷孕育、誕生、成熟、衰亡等階段,一般稱為軟體生命週期(軟體生存週期)。

軟體生命週期(sdlc,軟體生存週期)是軟體的產生直到報廢的生命週期。為了使規模擴大、結構複雜和管理複雜的軟體開發變得容易管理和控制,把整個軟體生命週期劃分成若干個階段,使每個階段都有明確的任務,整理出軟體生命週期模型。

軟體的生命週期包括問題的定義以及規劃,需求分析,軟體設計,程式編碼,軟體測試,執行維護。

swebok 的 15 個知識域

15個知識域包括11個軟體工程實踐知識域即:

knowledge areas characterizing the practice of software engineering,分別是:

2.1 software requirements–軟體需求

2.2 software design–軟體設計

2.3 software construction–軟體構造

2.4 software testing–軟體測試

2.5 software maintenance–軟體維護

2.6 software configuration management–軟體配置管理

2.7 software engineering management–軟體工程管理

2.8 software engineering process–軟體工程過程

2.9 software engineering models and methods–軟體工程模型與方法

2.10 software quality–軟體質量

2.11 software engineering professional practice–軟體工程職業實踐

以及4個軟體工程教育基礎知識域即:

knowledge areas characterizing the educational requirements of software engineering,分別是:

3.1 software engineering economics–軟體工程經濟學

3.2 computing foundations–計算基礎

3.3 mathematical foundations–數學基礎

3.4 engineering foundations–工程基礎

cmmi的五個級別

1、初始級:軟體過程是無序的,有時甚至是混亂的,對過程幾乎沒有定義,成功取決於個人努力。管理是反應式的。

2、可管理級:建立了基本的專案管理過程來跟蹤費用、進度和功能特性。制定了必要的過程紀律,能重複早先類似應用專案取得的成功經驗。

3、已定義級:已將軟體管理和工程兩方面的過程文件化、標準化,並綜合成該組織的標準軟體過程。所有專案均使用經批准、剪裁的標準軟體過程來開發和維護軟體,軟體產品的生產在整個軟體過程是可見的。

4、量化管理級:分析對軟體過程和產品質量的詳細度量資料,對軟體過程和產品都有定量的理解與控制。管理有乙個作出結論的客觀依據,管理能夠在定量的範圍內**效能。

5、 優化管理級:過程的量化反饋和先進的新思想、新技術促使過程持續不斷改進。

cmmi

cmm (capability maturity model for software,軟體能力成熟度模式),是卡內基梅隆大學的一項研究成果,其目的是用來評估及改善軟體發展公司的軟體開發過程及軟體開發能力,提公升軟體開發專案及軟體發展公司的軟體開發管理能力,達成軟體發展的功能正確、縮短開發時程、降低成本及確保品質等目標。 cmmi(capability maturity model - integrated, cmmi)是sei繼cmm成功發展後的新修訂版本,目的在發展乙個共通性的整合架構,以支援整合不同專業領域的特定能力成熟度模式及相關產品,並致力提供系統工程及軟體工程的指導原則,期許在任何架構下的組織,皆能促進其流程改善,cmmi不僅提高每一級別成熟度要求的門檻,亦同時擴充能力成熟度評估適用範圍,使得軟體工程、系統工程的專業領域及整合性產品與流程發展的環境,皆能運用cmmi為軟體開發流程提供持續改善的指引,對軟體生產力與品質的提公升亦有顯著的實質效益。

其認證分為五級:第一級:初始(initial)、第二級:已管理(managed)、第**:已定義(defined)、第四級:數量化管理(quantitatively managed)、第五級:最佳化(optimizing)。

系統分析與設計

軟體工程是一門研究用工程化方法構建和維護有效的 實用的和高質量的軟體的學科。它涉及程式語言 資料庫 軟體開發工具 系統平台 標準 設計模式等方面。軟體危機是指落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,從而導致軟體開發與維護過程中出現一系列嚴重問題的現象。cocomo,英文全稱為 const...

系統分析與設計

位置 用簡短的語言給出對分析 設計的理解 用一句話描述物件導向的分析與設計的優勢 物件導向的分析與設計的優勢是按照物件的觀點考慮問題域和邏輯解決方案,通過分析現實來發現並描述問題域中的物件。簡述uml 統一建模語言 的作用。考試考哪些圖 uml是用來描述 構造和文件化系統製品的視覺化語言,它的作用是...

系統分析與設計

概述 在充分理解系統分析與設計的工作內容的基礎上,大致了解系統分析與設計的過程。以及各個過程所使用的技術和工具。什麼是分析和設計?分析 強調的是對問題和需求的調查研究,而不是解決方案。解決 要做什麼 的問題。目標做正確的事。設計 強調的是滿足需求的概念上的解決方案,而不是實現。解決 該如何做 的問題...