軟體設計的三個階段及快速構建原型

2021-07-30 10:16:14 字數 4545 閱讀 7425

一 : 明確幾個問題

1 . 快速構建原型是什麼意思?

快速就是越快越好,火速進行。 我們可以花少量的時間去規劃這個應用程式,然後便可以建立原型 ,原型實現的功能能完成最基本的功能,不考慮很多細節的東西,是乙個系統的最精簡的版本 。

2 . 軟體設計的三個階段指的是什麼?

第乙個系統 、 第二個系統 、 第三個系統

3 . 快速建立原型屬於哪乙個階段 ?

第乙個系統

二 : 知識學習與技能學習的區別

1 . 知識的特點

i .知識 是「知道」或者「不知道」的問題,比如在你眼前放一輛自行車,如果你以前沒有見過自行車,就會感到好奇。此時若有乙個人告訴你,這是自行車,你便從此知道了什麼是自行車了,你從不知道到知道這個過程就是知識的積累的過程,再自己的頭腦中增加了一點關於自行車的知識。

ii . 在這個資訊時代,最不缺的就是知識了,成千上萬的資料庫的知識可以使用網際網路這個入口得到,從這個層面上來說,知識最不值錢了。

iii . 這個時代,日新月異,知識不斷推陳出新,知識更新的速度遠勝於以往任何時代 ,獲得的知識多了,可以讓乙個人開闊視野,在今後的人生道路上的選擇和判斷上變得更加明智。

2 . 技能養成因人而異

i . 前面說了,知識是本身不值錢,當我們把知識應用到具體的實踐過程中的時候,那麼那就能發揮顯性價值了。知識到技能的轉變是需要投入大量時間和精力,反覆磨練才能得到的,必須經過嘗試、失敗、再嘗試、再失敗的這麼乙個過程的。

ii . 每個人都是乙個獨特的個體,有不同的思維模式,生活習慣,同一件事在不同人眼中的結果是不一樣的。技能的學習也是如此,每個人的學習方法不盡相同,各有優劣,適合自己的才是最好的。

三 :變化是不可避免的,沒有一成不變的規格說明書

i . 幾乎沒有什麼專案會一直遵守原有的規格說明說,而不發生任何變化。營銷需求會改變,**商不能提供商品,關鍵的部件的表現可能會和原設想完全不同。

ii . 發生變化是不可避免的,因為事物的發展總是在變化的,很多細節是沒有辦法實現具體化的,客戶的需求,產品的複雜度,意外的情況等等都可能使得開發流程偏離原先預定的軌道。

四 : 盡快建立軟體原型

1 . 盡快構建產品原型的優點

i .原型的建立可以顯示哪些想法是可行的,最重要的,哪些是次要的,不重要的,在早起發現設想錯誤,這樣做的代價遠遠小於後期發現問題付出的代價。

ii .有了乙個產品具體的原型,你就可以對產品有乙個整體上的認知:「哦,產品將會是這個樣子的呀。」你可以將它演示給值得信賴的顧客上,並獲得他們的反饋資訊,為後期軟體的開發提供了寶貴建議,這比產品成型以後的建議來的更加有用 。

2 . 與傳統方法相比較

i .快速構建軟體系統的想法與傳統的適當工程方法背道而馳。大部分人都曾經被要求,在進入程式設計階段之前,應該充分考量自己的設計,他們說:「你必撰寫乙份功能說明書,定期進行核查,以確保自己沒有脫離正確的軌道。」 他們認為這樣乙份設計規範可以理清自己的思路,只有在完成設計99%之後,才開始編碼。

ii .這樣的原則聽起來不錯,但是他們都沒有給予原型足夠的重視。因為只有構建原型,你的構想才能首先通過視覺化、現實可行的方法得到驗證。在此之前,那些只不過是你腦海中零零散散的想法,盡快構建乙個原型基礎,使得想法依附於乙個具體化的存在。

五:軟體開發的 三 個階段

1 . 階段歸納的**

人類設計的系統類似於人自身一樣,都必須經歷三個階段:未成年、成年、老年 。

2 . 第一階段:未成年——第乙個系統

i .這個階段也就是快讀構建原型的階段,它的成果就是用最小的成本獲得差強人意的效能和功能,它極其精簡,一犧牲功能的擴充套件靈活性為代價來換取簡潔和速度,任何和系統重要組成部分無關的事物都被排除在外 。

ii .第乙個系統設計人員高度集中精力以解決目前的問題,讓系統工作,甚至也不管什麼具體細節,先執行起來再說,它完成乙個最基本但相對完善的框架,細節的東西暫且不論。

比如 構建如下** c:

先寫出所有的介面函式,具體實現先不寫,保證一次編譯通過,利用具體的數值來驗證原理上正確。

#include 

typedef

int datatype;

struct mystru ;

// all apis needed :

static

struct mystru * get_next(struct mystru *p_local_stru) ;

static

struct mystru *init_stru(void);

static datatype get_data(struct mystru *p_local_stru);

int main(void)

static

struct mystru * get_next(struct mystru *p_local_stru)

static

struct mystru *init_stru(void)

static datatype get_data(struct mystru *p_local_stru)

3 . 第二階段:成年 —— 第二個系統

第二個系統,相對於第乙個系統而言,內容更加豐富,實現了具體的細節,增加更多新的特性,雖然不一定都用得上,正因如此,相對於第乙個系統而言變得臃腫而緩慢,可謂是有喜參半,它逐漸接近偉大的成就 。

4 . 第三階段:老年 ——第三個系統

第三個系統,它將功能特性和效能完美地結合在一起,裡面只包含實際上用得上的功能,對它在 磁碟空間、記憶體和cpu週期這些硬體資源和系統效能之間取得適當的平衡 。

六 : 傳統軟體工程方法和快速構建原型對比

步驟傳統軟體工程方法

快速構建原型

step 1思考系統的設計撰寫乙份簡短的功能規格檔案

step 2建立乙個原型來測試既定目標編寫軟體

step 3撰寫詳細的功能和設計規範使用迭代的軟體測試/重新編寫**,知道完成全部功能

step 4編寫**,軟體測試如果有必要的話,再撰寫乙份詳細文件

step 5修復測試中的bug和設計缺陷,更新規格文件null

七 :總結

1 . unix程式設計師一開始只是匆匆記一些與目標相關的事情,然後就著手去構建原型系統了。

2 . unix的方法要優於傳統工程方法,是因為在傳統主義還不清楚產品是什麼樣子的時候,unix開發人員已經在考慮如何處理這個工作原型了。

3 . 如果不合適,可以盡快調整設計方法,盡早調整要比晚期傷筋動骨地修改更容易。

三個軟體,快速構建你的知識庫

不管是學生還是職場上都需要大量輸入 整合 輸出內容。如何把自己看到和學到的知識進行收集並合理整理對於很多人來說是乙個非常頭疼的問題,好的工具可以最大限度的提公升工作效率,減少不必要的時間,今天給大家帶來三款軟體,合理利用能夠大幅度的提高知識的管理能力。我在工作和學習的過程。試用了很多的效率工具,從中...

學習設計模式的三個階段

模式修練的第乙個階段 死記硬套,總有把新學的模式硬塞到實際的設計和 中的衝動,儘管實際場景可能並不太適合用這個模式,甚至根本就不需要用。這個階段有點類似 少年不識愁滋味,愛上層樓。愛上層樓,為賦新詞強說愁 第二個階段 從背景出發,針對特定的上下文,從幾個備選的模式中選擇最合適的乙個或多個。這個階段,...

軟體架構設計的三個維度

軟體架構設計的三個維度 架構設計是乙個非常大的話題,不管寫幾篇文章,接觸到的始終只是冰山一角,更多的是實踐中去體會。這篇文章主要介紹物件導向oo 面向方面aop和面向服務soa這三個要素在架構設計中的位置與作用。架構設計有三個維度,或者說是我們在考慮架構時需要思考三個方向。這三個維度分別為物件導向 ...