iT邦幫忙

第 11 屆 iThome 鐵人賽

0
Security

資訊系統安全稽核與 CISA 的簡單應用系列 第 27

[Day 27] 系統開發導入(上)

  • 分享至 

  • xImage
  •  

在CISA中業務應用程式開發分成兩類

  • 以組織為中心 - 通常使用SDLC等較詳盡的開發方法
  • 以最終用戶為中心 - 通常為了優化績效,比較不用較複雜的開發方法 EX.DSS決策資源系統

軟體開發

接著需要了解各種開發流程,選擇該流程是否合適

SDLC模型
Systems development life cycle 系統開發生命週期
較大型的專案(標案RFP、招標ITT)需要有產出文件,追蹤開發流程,因此會使用SDLC保障產出

書上說到SDLC可以用瀑布模式、疊代,網路查一下現在有許多變形的應用
https://ithelp.ithome.com.tw/upload/images/20210218/200777527gzFvq79ku.png
圖片來源: https://www.behance.net/gallery/34784121/Agile-project-SDLC-Infographic
https://ithelp.ithome.com.tw/upload/images/20210218/20077752WHi9lXh54Q.png
圖片來源: http://www.karthikconsulting.com/white-papers/kc-enterprise-disciplined-agile-software-development/

CISA中定義為六個階段:可行性分析,需求定義,選擇採購軟體(外部)/設計,配置(外部)/開發,測試與實施,實施後審查。

  • 假設組織想要人臉辨識打卡系統,之後開始可行性分析,分析這系統有用嗎、能帶來什麼好處(swot)、技術可行嗎、成本划算嗎....,並設定階段關卡,未來當執行到各個階段時再做一次評估是否繼續。

稽核如果在專案發起實有參與,就該看一下以上幾點是否有做,提醒不完善的部分;事後的稽核可以從ROI查看是否合乎一開始可行性分析的評估,這階段越成熟之後其他專案成功機率也會大增。

https://ithelp.ithome.com.tw/upload/images/20210220/20077752kjnWe3wAxK.jpg
圖片來源: https://www.managertoday.com.tw/glossary/view/15

  • 在需求定義時開始提需要活體辨識、雙因子驗證等等,我們需要條列需要那些功能,詢問使用者需求,定義該怎麼做。

稽核時需要確認是否有把安全控制納入需求,包含資料輸入輸出的驗證、稽核Log及符合法令法規。

https://ithelp.ithome.com.tw/upload/images/20210220/20077752aEQQ0x2Ba7.png
圖片來源:https://www.jianshu.com/p/f9bcf52f4321

  • 接著開始評估是購買軟體還是自行開發。在選擇自行開發設計時,需評估風險,有沒有能力做、該怎麼設計、用什麼技術,並定下base line,依據時間、成本、風險進行變更管理,需注意設計階段後盡量避免更改Scope,以避免增加時間及成本導致失敗

稽核時要確認變更是否都有經過上層核准,輸入輸出處理的控制是否恰當,系統流程架構是否符合當初設計

https://ithelp.ithome.com.tw/upload/images/20210220/20077752njWn3kMis5.png
圖片來源:http://www.dtc-tpe.com.tw/?q=node/48

  • 購買軟體後要做好設定,要有人會使用,常常發生設定不當導致沒有發揮應有的功用。開發會選擇要什麼開發方式、程式語言等等

軟體開發方法

並沒有哪個方法比較好或比較快

  • Waterfall 瀑布模式,適合有明確流程,變更幅度極小的專案
  • Software prototyping 快速開發一個原型,讓用戶很快能確認是否是他要的,以獲得後續改善方向及資源
  • Iterative and incremental development 該方法的思想是通過重複循環(疊代)並一次以較小的部分(增量)來開發系統
    https://ithelp.ithome.com.tw/upload/images/20210218/20077752eNAwlS1xeE.png
    圖片來源: https://en.wikipedia.org/wiki/Iterative_and_incremental_development
  • Spiral model 螺旋模型,一種風險驅動的軟件開發過程模型,在每個疊代階段構建原型是螺旋模型用以減小風險的途徑。螺旋模型更適合大型的昂貴的系統級的軟體應用
    https://ithelp.ithome.com.tw/upload/images/20210218/20077752Z7joSDZsos.png
    圖片來源: https://zh.wikipedia.org/wiki/%E8%9E%BA%E6%97%8B%E6%A8%A1%E5%9E%8B
  • Rapid application development (RAD) 快速應用程式開發是一種類似Iterative與Software prototyping技術的程式設計方法
    https://ithelp.ithome.com.tw/upload/images/20210218/20077752XHAu4M1AMv.png
    圖片來源 :https://blog.yeeflow.com/rapid-application-development-vs-agile-methodologies
  • Agile 敏捷軟體開發,目前多採用Scrum方式,以iterative與incremental式的方式交付工作,每個迭代稱作 Sprint,快速的將每個成果展現給用戶,避免偏離方向,但整體開發時間不一定比其他方式快,且用戶需要花費許多時間參與。
    https://ithelp.ithome.com.tw/upload/images/20210219/20077752rP9PP1TnyY.png
    圖片來源 :https://s.dou.ua/uploads/nickturunov/animescrumoverviewblue.531dc433db479a4aaf160c94c4ca6b0338c3a77f.png

能力成熟度模型整合
Capability Maturity Model Integration(CMMI)
一種改進過程的方法,其目的是協助提升組織的績效。利用CMMI在一個專案結束做評估時判斷等級,於下一個專案時要求達到下一個等級,評估之間的落差逐步改善

L1 Initial : 混亂或不穩定的環境
L2 Repeatable : 每個專案有各自流程,過程是可被重複實現
L3 Defined : 建立了一組定義的標準流程,每個專案依照此流程執行
L4 Managed : 管理人員可以有效地控制流程(可量化)
L5 Optimizing : 關注過程創新和持續優化
https://ithelp.ithome.com.tw/upload/images/20210219/20077752ZY2HMUjiDb.jpg
圖片來源:https://www.artc.org.tw/chinese/03_service/03_02detail.aspx?pid=2417

參考


上一篇
[Day 26] 專案執行(下)
下一篇
[Day 28] 系統開發導入(下)
系列文
資訊系統安全稽核與 CISA 的簡單應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言