1. 程式人生 > 其它 >需求分析與系統設計 黑皮書 皮爾森 筆記摘錄(持續更新)

需求分析與系統設計 黑皮書 皮爾森 筆記摘錄(持續更新)

技術標籤:軟體需求分析程式人生其他程式語言

Requirements Analysis and System Design, 3rd ed. Addison Wesley, Harlow England

第一章 Software Process(軟體過程)

軟體開發本質(nature of software development)

  1. 70%的軟體工程都失敗了…
  2. 軟體開發的本質由什麼定義? 軟體開發本身固有的問題(defined by the issues inherent in the software itself)
  3. 軟體是一個創新型行為的產品,並非一系列重複性操作。
  4. 軟體開發困難*的原因 / 軟體開發的特徵:

    ①複雜性
    ②一致性(軟體與其他軟體、平臺或者介面等等要一致)
    ③可變性(要能隨需求變化而更改,且能避免修改導致的軟體的退化)
    ④不可見性(看不見也摸不著,以為程式碼就是軟體了?NO!原始碼!=軟體,軟體以機器程式碼的形式執行
    ps: 銀彈(silver bullet)指代:可解決複雜問題的簡單、奇妙方案;指一項可使軟體工程的生產力在十年內提高十倍的技術或方法。
  5. 人為可干預的可變化的困難:
    ①最主要歸因於**“資訊系統是社會系統”**這個事實
    ②軟體解決方法禁止增加軟體產品本身的複雜度
    ③適應性 = 可理解性(understandability) + 可維護性(maintainability) + 可擴充套件性(scalability)
    (1)這些困難與以下三個因素有關:
    ①利益干係人(Stakeholders)
    ②軟體過程(Process)
    ③建模(Modeling)
    (2)以下為三個因素的具體介紹:
    ①利益干係人
    在一個軟體工程中有股份(Stake)的人,包括兩大主要群體:客戶(Customers)和開發者(Developers)
    為什麼資訊系統是社會性系統?因為是由人為人開發的(由開發者為客戶開發的)
    軟體失敗的主要原因可追溯到利益干係人上——要麼是客戶端要麼是開發者端
    ②軟體過程
    定義了在軟體開發和維護過程重使用的活動和組織性過程/程式
    過程模型的特徵:
    描述(state)一系列活動的實施順序
    (an order for carrying out activities)
    說明(specify)了要交付的開發成品是什麼樣、什麼時候交付
    (what development artifacts are to be delivered and when)
    分配(assign)活動和工作給開發者
    (activities and artifacts)
    為監督(monitor)工程進度提供規範標準(criteria),以衡量產出和計劃未來的工程
    (measuring the outcomes and planning future projects)
    模型不易受標準化的影響
    (not susceptible to standardization)
    迭代和增量過程:
    這個過程包含了管理一系列由持續迭代使系統結構整體化而產生的可執行版本。每個新的版本都包含了在其他版本的基礎上新增的改進
    (involves managing a stream of executable releases)
    (involves the continuous integration of the system’s architecture)
    (each new release embodies incremental improvements over the other)
    過程的例子:
    螺旋模型(spiral model)
    統一過程(the Rational Unified Process, RUP)
    模型驅動架構(Model Driven Architecture, MDA)
    敏捷開發過程(agile development process)
    面向方面的軟體開發(aspect-oriented software development)
    迭代增量開發必須:
    可計劃、可控、符合之前所定義的結構設計框架
    以下是幾個具體的模型、標準、框架的例子,先不整理了
    Capability maturity model
    ISO 9000 family of quality standardsI——工業生產的通行標準;應用於質量管理和過程
    ITIL framework
    CSIP
    COBIT framework
    ③建模
    模型必須能交流和記錄,即有確定的語言和工具。
    語言:UML,(Universal Modeling Language)
    工具:CASE,(Computer-Assisted Software Engineering) 可以在一個儲存倉庫裡儲存和獲取模型,並且可以在電腦螢幕上以影象或者文字進行操作。
    UML介紹
    獨立於任何軟體開發過程和實現手段——只支援面向物件軟體開發(但是也可能會導致UML在軟體開發生命週期的詳細設計階段相對而言比較低效)
    UML模型可以有以下三個分類:狀態模型state models(靜態的資料結構)(有類圖)、行為模型behavior models(物件如何協作)(有用例圖,時序圖,活動圖)、狀態轉換模型state change models(系統隨時間變化過程中狀態怎麼變)(狀態圖)
    CASE 和過程優化
    過程優化不止是引進新工具新方法新技術手段(introduciton of new methods and techniques)——對於過程尚未成熟的組織(organizations at a low level of process maturity),引進新的方法或者技術手段可能弊大於利
    CASE工具可以給獨立開發者帶來個人的效率提升和質量改進(bring personal productivity and quality improvements to individual developers)
    整合、發展
    面向介面的整合,將應用介面(通過介面抽象定義的服務)連線在一起。介面 顯示了一個應用系統向其他應用系統所提供的有益服務。
    that links application interfaces (that is, services defined through an interface abstraction)
    面向過程的整合,將應用系統連線在一起,方法是在現有應用系統的已有過程 集和資料集的頂部定義一個新的過程層。

系統規劃(system planning)

三個管理層級的系統

軟體開發生命週期

開發模型和方法

針對學習案例的問題陳述

你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。

新的改變

我們對Markdown編輯器進行了一些功能拓展與語法支援,除了標準的Markdown編輯器功能,我們增加了如下幾點新功能,幫助你用它寫部落格:

  1. 全新的介面設計 ,將會帶來全新的寫作體驗;
  2. 在創作中心設定你喜愛的程式碼高亮樣式,Markdown 將程式碼片顯示選擇的高亮樣式 進行展示;
  3. 增加了 圖片拖拽 功能,你可以將本地的圖片直接拖拽到編輯區域直接展示;
  4. 全新的 KaTeX數學公式 語法;
  5. 增加了支援甘特圖的mermaid語法1 功能;
  6. 增加了 多螢幕編輯 Markdown文章功能;
  7. 增加了 焦點寫作模式、預覽模式、簡潔寫作模式、左右區域同步滾輪設定 等功能,功能按鈕位於編輯區域與預覽區域中間;
  8. 增加了 檢查列表 功能。

功能快捷鍵

撤銷:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜體:Ctrl/Command + I
標題:Ctrl/Command + Shift + H
無序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
檢查列表:Ctrl/Command + Shift + C
插入程式碼:Ctrl/Command + Shift + K
插入連結:Ctrl/Command + Shift + L
插入圖片:Ctrl/Command + Shift + G
查詢:Ctrl/Command + F
替換:Ctrl/Command + G

合理的建立標題,有助於目錄的生成

直接輸入1次#,並按下space後,將生成1級標題。
輸入2次#,並按下space後,將生成2級標題。
以此類推,我們支援6級標題。有助於使用TOC語法後生成一個完美的目錄。

如何改變文字的樣式

強調文字 強調文字

加粗文字 加粗文字

標記文字

刪除文字

引用文字

H2O is是液體。

210 運算結果是 1024.

插入連結與圖片

連結: link.

圖片: Alt

帶尺寸的圖片: Alt

居中的圖片: Alt

居中並且帶尺寸的圖片: Alt

當然,我們為了讓使用者更加便捷,我們增加了圖片拖拽功能。

如何插入一段漂亮的程式碼片

部落格設定頁面,選擇一款你喜歡的程式碼片高亮樣式,下面展示同樣高亮的 程式碼片.

// An highlighted block
var foo = 'bar';

生成一個適合你的列表

  • 專案
    • 專案
      • 專案
  1. 專案1
  2. 專案2
  3. 專案3
  • 計劃任務
  • 完成任務

建立一個表格

一個簡單的表格是這麼建立的:

專案Value
電腦$1600
手機$12
導管$1

設定內容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文字居中第二列文字居右第三列文字居左

SmartyPants

SmartyPants將ASCII標點字元轉換為“智慧”印刷標點HTML實體。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

建立一個自定義列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何建立一個註腳

一個具有註腳的文字。2

註釋也是必不可少的

Markdown將文字轉換為 HTML

KaTeX數學公式

您可以使用渲染LaTeX數學表示式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通過尤拉積分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多關於的資訊 LaTeX 數學表示式here.

新的甘特圖功能,豐富你的文章

Mon 06 Mon 13 Mon 20 已完成 進行中 計劃一 計劃二 現有任務 Adding GANTT diagram functionality to mermaid
  • 關於 甘特圖 語法,參考 這兒,

UML 圖表

可以使用UML圖表進行渲染。 Mermaid. 例如下面產生的一個序列圖:

張三 李四 王五 你好!李四, 最近怎麼樣? 你最近怎麼樣,王五? 我很好,謝謝! 我很好,謝謝! 李四想了很長時間, 文字太長了 不適合放在一行. 打量著王五... 很好... 王五, 你怎麼樣? 張三 李四 王五

這將產生一個流程圖。:

連結 長方形 圓角長方形 菱形
  • 關於 Mermaid 語法,參考 這兒,

FLowchart流程圖

我們依舊會支援flowchart的流程圖:

Created with Raphaël 2.2.0 開始 我的操作 確認? 結束 yes no
  • 關於 Flowchart流程圖 語法,參考 這兒.

匯出與匯入

匯出

如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當你完成了一篇文章的寫作, 在上方工具欄找到 文章匯出 ,生成一個.md檔案或者.html檔案進行本地儲存。

匯入

如果你想載入一篇你寫過的.md檔案,在上方工具欄可以選擇匯入功能進行對應副檔名的檔案匯入,
繼續你的創作。

hello


  1. mermaid語法說明 ↩︎

  2. 註腳的解釋 ↩︎