系統架構設計師學習之路(17)

2021-10-09 08:24:50 字數 2638 閱讀 2359

4.1.1 軟體開發生命週期

軟體開發周期是指軟體產品從形成概念(構思)開始,經過定義、開發、使用和維護,直到最後被廢棄(不再使用)為止的全過程。

1.軟體定義時期

(1)問題定義

(2)可行性研究

(3)需求分析

2.軟體開發時期

概要設計

詳細設計

編碼3.軟體執行及維護

軟體執行

軟體維護

4.1.2 軟體開發模型

軟體生命週期模型又稱軟體開發模型或軟體過程模型,它是從某一特定角度提出的軟體過程的簡化描述。

軟體活動:軟體描述、軟體開發、軟體有效性驗證、軟體進化。

軟體開發模型:

(1)瀑布模型

問題定義、可行性分析、需求分析、總體設計、詳細設計、編碼與單元測試、綜合測試、執行與維護。

(2)原型模型

原型開發階段、目標軟體開發階段

(3)螺旋模型

目標設定、風險分析、開發和有效性驗證、評審

(4)基於可重用構件的模型

軟體需求-標識構件-檢索構件庫-開發構件/取出構件-整合目標系統

(5)基於物件導向的模型

軟體需求

檢索構件庫-構件開發

需求開發

物件導向分析-ooa原型

物件導向設計-ood原型-目標系統

系統實現與整合

(6)基於***技術的模型

四代語言是在大型資料庫管理系統的基礎上發展起來的程式語言。可分為:機器語言、組合語言、高階語言、***語言、為人工智慧領域設計的第五代語言。

4gl目前還沒有統一的定義,描述定義:

用於快速開發應用軟體的高產工具;

用於快速事務處理系統的高產工具。

其主要特徵描述如下:

它是非過程化的語言,目的在於高效、直接地實現各種應用系統;

它與資料庫的關係密切,能夠對大型資料庫進行高效處理。

4.1.3 敏捷方法

1.敏捷方法的特點

敏捷方法是「適應性」,而非「預設性」的,重型方法試圖對乙個軟體開發專案在很長時間跨度內做出詳細計畫,然後依據計畫進行開發。而敏捷型方法歡迎變化,目的是適應變化的過程,甚至允許改變自身來適應變化。

敏捷型方法是「面向人的」,而非「面向過程的」。它們試圖使軟體開發工作能夠利用人的特點,發揮人的創造能力。

2.敏捷方法的核心思想

(1)敏捷方法是適應型,而非可**型。

(2)敏捷方法是以人為本,而非以過程為本。

(3)迭代增量式的開發過程。

3.敏捷型方法的適用範圍

敏捷方法比較適合需求變化比較大或者開發前期對需求不是很清晰的專案,以它的靈活性來適應需求的變化,有效地控制專案進度和成本。另外,敏捷方法對設計者、開發者、客戶之間的有效溝通和及時反饋要求比較高,所以不易在開發團隊比較龐大的專案中實施,當然這也不是絕對的。

4.敏捷方法的主要內容

四個核心價值觀:溝通、簡單、反饋、勇氣。

十二條過程實施規則:簡單設計、測試驅動、**重構、結對程式設計、持續整合、現場客戶、發行版本小型化、系統隱喻、**集體所有制、規劃策略、規範**、40小時工作機制。

5.主要敏捷方法簡介

(1)xp,極限程式設計

(2)cockburn的水晶系列方法

(3)開放式原始碼

(4)scrum

(5)coad的功用驅動開發方法fdd

(6)asd方法

4.1.4 rup

1.rup概述:rational、unified、process

2.rup的生命週期

一種二維的軟體開發模型,9個核心工作流。

(1)業務建模

(2)需求

(3)分析與設計

(4)實現

(5)測試

(6)部署

(7)配置與變更管理

(8)專案管理

(9)環境

rup把軟體開發周期劃分為多個迴圈,每個迴圈依次由4個連續的階段組成:初始階段、細化階段、構造階段、移交階段。

3.rup中的核心概念

角色(role)

活動(activity)

製品(artifact)

工作流(workflow)

4.rup的特點

用例驅動

以體系結構為中心

迭代與增量

5.rup剪裁

確定本專案的軟體開發過程需要哪些工作流,

確定每個工作流要產出哪些製品,

確定四個階段(初始階段、細化階段、構造階段、移交階段)如何移交,

確定每個階段內的迭代計畫,

規劃工作流內部結構。

4.1.5 軟體系統工具

1.軟體開發工具

需求分析工具

基於自然語言或圖形描述的工具

基於形式化需求定義語言的工具

其他需求分析工具

2.設計工具

3.編碼與排錯工具

4.軟體維護工具

版本控制工具

文件分析工具

開發資訊庫工具

逆向工程工具

再工程工具

5.軟體管理和軟體支援工具

(1)專案管理工具

(2)配置管理工具

(3)軟體評價工具

(4)軟體開發工具的評價和選擇

功能易用性

穩健性硬體要求和效能

服務和支援

系統架構設計師學習之路(35)

近年來,在物件導向領域中的乙個重要突破就是提出了設計模式的概念。軟體的設計模式是人們在長期的開發實踐中良好經驗的結晶,它提供了乙個簡單 統一的描述方法,使人們可以復用這些軟體設計方法 過程管理經驗。由於設計模式在表達上既經濟又清楚,從而越來越受到重視。本章將介紹軟體設計模式的概念 組成要素和分類,並...

系統架構設計師學習之路(11)

2.4.3 多 系統的組成 1.多 硬體 2.多 軟體 多 軟體系統按功能分為系統軟體 應用軟體。系統軟體是多 系統的核心,不僅具有綜合使用各種 靈活排程多 資料進行 的傳輸和處理的能力,而且要控制各種 硬體裝置協調地工作。多 系統軟體主要包括多 作業系統 素材製作軟體及多 函式庫 多 創作工具與開...

系統架構設計師學習之路(30)

6.2.5 狀態圖和活 1.狀態圖 uml中的狀態圖主要用於描述乙個物件在其生存期間的動態行為,表現乙個物件所經歷的狀態序列,引起狀態轉移的事件,以及因狀態轉移而伴隨的動作。狀態圖是uml中對系統的動態行為建模的五個圖之一。狀態圖在檢查 除錯和描述類的動態行為時非常有用。一般可以用狀態機對乙個物件的...