免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
【信管1.2】信息系統(tǒng)開發(fā)方法

信息系統(tǒng)開發(fā)方法

信息系統(tǒng)是一個極為復(fù)雜的人機交互系統(tǒng),它不僅包含了計算機技術(shù)、通信技術(shù)和網(wǎng)絡(luò)技術(shù)、其他的工程技術(shù),而且,它還是一個復(fù)雜的管理系統(tǒng),它也需要管理理論和方法的支持。因此,與其他的工程項目相比,信息系統(tǒng)工程項目的開發(fā)和管理顯得更加地復(fù)雜,所面臨的風(fēng)險也是更大的。

我們平常所使用的各種后臺管理系統(tǒng),各種在線軟件,比如說淘寶、微信這些,往大了說都可以是一個信息系統(tǒng)。因為他們具備了我們前面所說過的信息的特征。因此,信息系統(tǒng)涵蓋的范圍其實非常廣泛。人們常說,現(xiàn)在是一個信息爆炸的時代,從微博到朋友圈再到抖音,信息的更新速度、傳播速度以及傳播方式都是飛快發(fā)展的。為了應(yīng)對這樣一個時代,在開發(fā)信息系統(tǒng)時,除了技術(shù)、管理等因素外,系統(tǒng)開發(fā)方法也起著很重要的作用。

常用的開發(fā)方法包括結(jié)構(gòu)化方法、面向?qū)ο蠓椒?、原型方法、面向服?wù)方法等。我們今天主要就來說說這幾個方法。

結(jié)構(gòu)化方法

結(jié)構(gòu)是指系統(tǒng)內(nèi)各個組成要素之間的相互聯(lián)系、相互作用的框架。因此,結(jié)構(gòu)化方法是一種非常傳統(tǒng)的方法,也是一種工程化的方法,也稱為生命周期法。它由結(jié)構(gòu)化分析(Structured Analysis, SA)、結(jié)構(gòu)化設(shè)計(Structured Design, SD)和結(jié)構(gòu)化程序設(shè)計(Structured Programming, SP)三個部分組合而成,其精髓是自頂向下、逐步求精和模塊化設(shè)計。

其實這個方法也就是我們最常見也最傳統(tǒng)的那種軟件開發(fā)方式。對應(yīng)的是我們后面要講的 軟件工程 中的 結(jié)構(gòu)化設(shè)計 以及信息系統(tǒng)項目典型生命周期模板中的 瀑布模型 和 V模型 。大家先不要著急,現(xiàn)在我們只需要知道這個結(jié)構(gòu)化的一些特點就好,等到后面學(xué)習(xí)完了 瀑布模型 之后,再回來看這一塊的內(nèi)容,就非常好理解了。

結(jié)構(gòu)化方法有 4 個主要的特點,它們分別是:

  1. 開發(fā)目標(biāo)清晰化。在這其中,最主要的是 “用戶第一” 的原則,用一句俗語說,就是用戶就是上帝,我們一定要和用戶好好地溝通,保持聯(lián)系,充分理解。

  2. 開發(fā)工作階段化。嚴(yán)格區(qū)分工作的階段,每個階段都有任務(wù)與成果。比如說我們在設(shè)計階段,就只做設(shè)計階段的事,在設(shè)計階段結(jié)束的時候,一定要有設(shè)計稿或者設(shè)計文檔產(chǎn)出。

  3. 開發(fā)文檔規(guī)范化。所有的文檔資料都必須是非常標(biāo)準(zhǔn)化的,每個階段結(jié)束都要有文檔留存。

  4. 設(shè)計方法結(jié)構(gòu)化。從整體和全局考慮,自頂向下地分解任務(wù),逐步求精的開發(fā)過程。

從這些特點中可以看出,結(jié)構(gòu)化方法適用用數(shù)據(jù)處理領(lǐng)域的問題,但不適應(yīng)于規(guī)模較大、比較復(fù)雜的系統(tǒng)開發(fā)。注意,劃重點,我們的 PMP 也就是后面要講到的項目管理理論部分(PMP5),其實是非常偏向于這個結(jié)構(gòu)化開發(fā)的模型的。對于需求明確、成熟、穩(wěn)定,并且有類似成功經(jīng)驗的項目來說,結(jié)構(gòu)化方法相當(dāng)適用。在最后,我們也來簡單地了解下結(jié)構(gòu)化設(shè)計的 3 個主要的不足和局限性。

  1. 開發(fā)周期長。直到系統(tǒng)實施階段結(jié)束后,用戶才能使用到系統(tǒng)。

  2. 難以適應(yīng)需求變化。結(jié)構(gòu)化方法要求分析師在系統(tǒng)分析階段充分掌握和理解用戶需求。

  3. 很少考慮數(shù)據(jù)結(jié)構(gòu)。比較注重系統(tǒng)功能的分解與抽象,兼顧數(shù)據(jù)結(jié)構(gòu)的方面不多。從 SA 階段的數(shù)據(jù)流圖到 SD 階段的模塊結(jié)構(gòu)圖的轉(zhuǎn)變也比較困難。

相信跟過我們之前的敏捷課程的,一定對第 1 點和第 2 點深有感觸,因為我們在敏捷中主要解決的就是這兩個問題。敏捷是什么還記得嗎?通過短時間的迭代來快速交付具有價值的產(chǎn)品。正好,對應(yīng)的就是這兩點。在這套課程中,我們也會提到敏捷,但是,真正的主角其實反而是這套 結(jié)構(gòu)化 的開發(fā)方法。畢竟,它的優(yōu)點也是不可忽視的,而且現(xiàn)在的大潮流其實是各種項目管理方法的融合,在很多大廠,你既可以看到敏捷實踐的應(yīng)用,也可以看到傳統(tǒng)項目管理工具的應(yīng)用??傊痪湓挘瑢蛻粲袃r值,對組織有好處,對項目有效果的實踐和方法工具,都是我們值得學(xué)習(xí)的。

面向?qū)ο蠓椒?/span>

對于學(xué)習(xí)過軟件開發(fā)的同學(xué)來說,這個面向?qū)ο蠓椒隙ň蜁浅J煜ち耍踔量梢蕴^這一塊的學(xué)習(xí)直接看后面的內(nèi)容。面向?qū)ο螅∣bejct-Oriented,OO)認(rèn)為 ,客觀世界都是由各種對象組成的,任何事物都是對象,每一個對象都有自己的運動規(guī)律和內(nèi)部狀態(tài),都屬于某個對象類,是該對象類的一個元素。我們先來認(rèn)識面向?qū)ο笾械囊恍┟~。

類:相同屬性、相同操作的對象的集合。一系列相似對象的抽象。

對象:描述客觀對象的一個實體?,F(xiàn)實世界的一個抽象。

實例:類中的每個對象類,是創(chuàng)建對象的模板。對象是類的實例,類是對象的抽象。

屬性:對象的靜態(tài)特征。

操作:方法 或 服務(wù) ,規(guī)定對象的行為。

繼承:一個類可以繼承另一個類的特征或行為,這個類叫做子類,被繼承的類叫做父類。

泛化:和繼承相反,由父類來抽象出子類。

這些東西如果你沒有接觸過的話可能理解起來比較困難,不過不用著急,在后面我們學(xué)習(xí) 軟件工程 中的 UML類圖 和 軟件設(shè)計 的 面向?qū)ο笤O(shè)計 時還會接觸到。當(dāng)然,更好的方法是如果身邊有程序員同事的話,問問他們,讓他們用代碼把上面的概念寫出來,相信你一定就會明白了。到后面要講這些內(nèi)容的時候我就不會再重復(fù)這些名詞了,不記得的小伙伴記得過來查哦。

面向?qū)ο蠓椒?gòu)造的系統(tǒng)具有更好的 復(fù)用性 ,其關(guān)鍵在于建立一個全面的、合理的、統(tǒng)一的模型。OO 方法也是劃分階段的,分別是 系統(tǒng)分析、系統(tǒng)設(shè)計 和 系統(tǒng)實現(xiàn) 三個階段,但是和 結(jié)構(gòu)化方法 不同的是它們?nèi)齻€階段的界限不是很明確。某一個工作即可以在前一個階段完成,也可以在后一個階段補充。

在今天學(xué)習(xí)的最后,我補充了用代碼實現(xiàn)面向?qū)ο筮@幾個概念的內(nèi)容,大家可以了解一下。不過前提是,你最好還是有一點點基礎(chǔ),哪怕是大學(xué)上過 C 語言的課也好。如果實在理解不了,那么只能是硬背概念了。

原型化方法

原型化方法的一個最大的特點是在系統(tǒng)開發(fā)初期必須明確系統(tǒng)的功能需求,確定系統(tǒng)邊界。它也叫做快速原型法,根據(jù)用戶初步的需求,快速地建立一個系統(tǒng)模型直接展示給用戶,在此基礎(chǔ)上與用戶交流并加以改進,最終實現(xiàn)用戶需求的信息系統(tǒng)快速開發(fā)的方法。

根據(jù)原型是否實現(xiàn)功能來分,可以劃分為 水平原型 和 垂直原型 。水平原型也稱為行為原型,用于探索預(yù)期系統(tǒng)的一些特定行為,并達到細化需求的目的。水平原型通常是功能的導(dǎo)航,不會實現(xiàn)真實的功能。垂直原型也稱為結(jié)構(gòu)化原型,實現(xiàn)了一部分功能,主要用在復(fù)雜的算法實現(xiàn)上。

從原型的最終結(jié)果來分,可以分為 拋棄式原型  演化式原型 。拋棄式原型也稱為探索式原型,是指達到預(yù)期的目的后,原型本身被拋棄。拋棄式原型主要用在解決需求不確定性、二義性、不完整性、含糊性等問題上。演化式原型為開發(fā)增量式產(chǎn)品提供 基礎(chǔ),逐步將原型演化成最終系統(tǒng)。主要用在需要易于升級和優(yōu)化的場合,特別適用于 Web 項目。

從這兩種原型的劃分來看,各位有想到我們企業(yè)中的 產(chǎn)品經(jīng)理 畫的原型圖是屬于哪種類型的嗎?沒錯,相信大家已經(jīng)看出來了,原型圖是沒有功能的,或者只有簡單的跳轉(zhuǎn)類的功能用于演示,因此它是水平原型。然后大部分情況下,原型會被拋棄,雖然也有演化式的大型項目的原型圖會持續(xù)更新,但等到項目結(jié)束后一般都會結(jié)束原型圖的維護。如果需要在項目結(jié)束后再添加功能之類的,往往也會以單獨的功能點來繪制原型圖。因此,我們產(chǎn)品經(jīng)理畫的圖一般來說就是 水平拋棄型 的原型。

在另一方面,也是我們之前在講敏捷時學(xué)習(xí)過的 MVP(最小可行性產(chǎn)品),這個其實是有點類似于演化式原型的,要知道,MVP 是用于快速驗證產(chǎn)品可行性的一個可以正式使用的產(chǎn)品,如果確實可行并且對客戶有價值的話,那么我們在敏捷中會基于這個 MVP 繼續(xù)迭代增量開發(fā)的。因此,MVP 是屬于一個 垂直演化式 的例子。

當(dāng)然,上面的兩種例子都并不是非常固定,但在大部分情況下確實還是比較符合原型的分類情況的。原型法的開發(fā)過程我們就簡單地通過下面這張圖了解一下即可,不是特別重點的內(nèi)容,相信產(chǎn)品經(jīng)理們都非常懂這張圖的流程。

對于原型法來說,有其優(yōu)勢,也有其限制,我們先來看看原型法的優(yōu)勢:

  • 原型法可以使系統(tǒng)開發(fā)的周期縮短、成本和風(fēng)險降低、速度加快,獲得較高的綜合開發(fā)效益。

  • 原型法以用戶為中心,用戶參與程度大大提高,開發(fā)的系統(tǒng)符合用戶的需求。

  • 用戶的參與度的提高,會讓用戶對系統(tǒng)的功能和結(jié)構(gòu)更加容易理解和接受,有利于系統(tǒng)的移交和維護。

優(yōu)勢不用多說,其實總結(jié)起來就是中間那一條,用戶參與度很高。而它的限制其實也在這里。

  • 開發(fā)的環(huán)境要求高。開發(fā)人員和用戶的能力水平要求都比較高。

  • 管理水平要求高。如何控制對系統(tǒng)原型的修改次數(shù)、如何確定用戶的滿意度都是非常難協(xié)調(diào)的問題。

因此,原型法非常適用于那些需求不明確的系統(tǒng)開發(fā)。其實很多小伙伴們已經(jīng)看出來了吧,敏捷 和 原型法 有著千絲萬縷的關(guān)系,都是針對需求不明確的、容易變動的項目的。而且,就像上面我們說的 MVP 一樣,確實在 敏捷 中是有原型法的應(yīng)用的。

面向服務(wù)的方法

如果你聽說過 微服務(wù) ,那么面向服務(wù)的方法你肯定也不會陌生了。同樣的,需要一個服務(wù)中心,然后通過將相關(guān)對象進行業(yè)務(wù)功能分組,形成構(gòu)件(Component),將這些構(gòu)件以接口的形式暴露出來,這就是面向服務(wù)的開發(fā)方法(Service-Oriented,SO)。

從這個定義就可以看出來,微服務(wù)其實是它的一個子集,同時也是在面向服務(wù)的基礎(chǔ)上形成的。在現(xiàn)代化的框架中,服務(wù)中心、服務(wù)注冊、服務(wù)發(fā)現(xiàn)都是面向服務(wù)開發(fā)的必備功能,而微服務(wù)更典型的特點是應(yīng)用了 遠程過程調(diào)用 RPC 這個技術(shù),其實就是利用網(wǎng)絡(luò)特性來暴露接口。比如我們最常用的 HTTP 接口就是可以做微服務(wù)的,當(dāng)然,它的性能是比較慘的,所以也會有許多 Socket 的長連接 RPC 框架可以供我們使用。這部分內(nèi)容作為擴展知識,大家自己去查閱相關(guān)的資料吧。如果你做過微服務(wù)相關(guān)的開發(fā)應(yīng)該就很清楚了,如果你沒有做過相關(guān)的開發(fā)或者沒有代碼經(jīng)驗的話,記住上面那一段的定義就可以了。

補充:代碼表示面向?qū)ο笾械母拍?/span>

碼農(nóng)們請?zhí)^這一部分。

class Color {  // 類
    public $color = ''// 屬性
    public function show()// 操作
        if($this->color){
            echo '現(xiàn)在是'$this->color, '色', PHP_EOL;
        }else{
            echo '還沒有定義顏色';
        }
    }
}

$c = new Color(); // 實例化
// $c 就是對象
$c->color = '紅'// 為 $c 對象的屬性賦值
$c->show(); // 調(diào)用 $c 的方法
// 輸出結(jié)果為:現(xiàn)在是紅色

class BlueColor extends Color// 繼承自 color 類
    public $color = '藍';
}

$b = new BlueColor;
$b->show();
// 現(xiàn)在是藍色

上面這一段是 PHP 的代碼。如果你學(xué)習(xí)過 C 語言的話應(yīng)該還是很容易看懂的,不過純 C 語言不是面向?qū)ο蟮模宰詈檬怯?C++ 或者 Java 的基礎(chǔ)。

在這段代碼中 Color 是一個  ,也就是一個模板,我們可以將它看成是對 顏色 的抽象。在這個類模板中,有一個 屬性 $color 用于記錄表明當(dāng)前這個類應(yīng)該是什么顏色,這個屬性其實是一個變量,變量是保存在內(nèi)存中的一段數(shù)據(jù)。然后 show() 是一個 操作 方法,也可以叫做函數(shù),主要是執(zhí)行一段代碼段的。在這個方法中,我們使用條件判斷語句 if 來輸出不同的內(nèi)容。

在類的外部,我們通過 new 關(guān)鍵字來 實例化 一個類模板,獲得的結(jié)果放到 $c 變量中,現(xiàn)在這個 $c 就是一個 對象 。其實從這里我們就可以看出,類作為模板定義了基本的屬性方法,然后在對象使用的時候是可以靈活調(diào)用這些屬性方法的,我們也可以再實例化一個類,然后設(shè)置它的 $color 屬性為別的顏色??闯雒嫦?qū)ο?span> 復(fù)用性 的特點了吧!

接下來我們定義了一個 子類 BlueColor 繼承自 Color 類,然后我們 重寫 了父類的 $color 屬性,同時它也繼承了父類的 show() 方法。這時我們直接實例化這個 BlueColor 獲得一個對象,直接調(diào)用對象的 show() 方法就可以輸出內(nèi)容。至于為什么這里不用再去給 $color 賦值了,相信大家也已經(jīng)看出來了,通過重寫父類的屬性,當(dāng)前子類中的這個 $color 不是空的,已經(jīng)被設(shè)置為 藍 這個字符了,所以我們的 show() 是可以正常輸出的。

如果你確實對代碼沒有任何概念的話,可以去 w3school 這個網(wǎng)站學(xué)習(xí)一下基礎(chǔ)的幾個語言,比較推薦的是 Python、PHP 這類相對來說比較容易上手的語言。然后只要了解基礎(chǔ)的語法和對應(yīng)語言的面向?qū)ο笙嚓P(guān)的內(nèi)容就可以了。

總結(jié)

今天我們學(xué)習(xí)的內(nèi)容還是理論為主,不過已經(jīng)有一些技術(shù)范了吧,接下來,我們就要正式開始學(xué)習(xí)一大堆純技術(shù)方面的東西了。做好準(zhǔn)備了嗎?千萬不要怕,雖然東西多,但都只是點到為止,并沒有很深入的研究。因此,如果你只是想通過考試的話,了解一下,然后硬背一下,能達到通過考試的水平就夠了。即使你是硬背的,但是將來你在和程序員們交流的時候,有這些知識墊底,也一定會讓他們對你刮目相看。

參考資料:

《信息系統(tǒng)項目管理師教程》

《某機構(gòu)培訓(xùn)資料》

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服