CISQ軟體開發品質指標:促進原始碼品質提升的實踐方法─資策會 FIND科技報─智邦公益電子報
enews.url.com.tw · November 14,2024CISQ軟體開發品質指標:促進原始碼品質提升的實踐方法
FIND研究員:李啟榮 由超過750個全球2,000大企業組成的軟體品質策略聯盟「資訊軟體品質聯盟(Consortium for Information & Software Quality,下文簡稱CISQ)」,針對軟體開發品質的議題,探討軟體安全性、可靠度、性能效率和可維護性,除了可以在開發階段減少錯誤和增進效率,並可在上線營運後方便改版維護並確保穩定順暢運作。 【CISQ探討的四大原始碼品質指標】 CISQ依據美國聯邦非營利組織MITRE(亦為CVE通用漏洞披露之管理機構)的「通用弱點列舉(Common Weakness Enumeration,CWE)」指標,分別彙整安全性、可靠度、性能效率、可維護性四種軟體原始碼品質(Code quality)指標,藉此提升軟體品質自動化檢測的正確性。 1.安全性(Security):找出原始碼中最常見的安全威脅,如OWASP Top 10、CWE/SANS Top 25
2.可靠度(Reliability):衡量原始碼中影響軟體可靠度的弱點,如可用性、容錯、還原性
3.性能效率(Performance and Efficiency):衡量原始碼中影響軟體性能及效率的弱點,如CPU/裝置/記憶體之使用率和回應時間
4.可維護性(Maintainability):衡量原始碼中影響維護性的弱點,如認知程度、可變動性、可測試性和可延展性 【CISQ四大指標在原始碼品質評估之應用】 CISQ除依據CWE通用弱點列舉指標外,CISQ也引用了ISO 25010 SQuaRE(System and Software Quality Requirements and Evaluation,系統和軟體品質需求暨評估),且依照前述四大指標,針對軟體品質的單元層次(Unit level,偏向單一模組或功能)、系統層次(System level,偏向整體系統框架)進行涵蓋率(Coverage)指標彙整,希望強化開發過程和產出後原始碼維護之品質。 CISQ藉由參考CWE/SANS Top 25、OWASP Top 10等國際安全標準,探討原始碼品質中的可靠度、安全性、性能效率、可維護性四大議題,並進一步歸納為可供評估之191條項目,並被CWE所採納為原始碼安全需求指引;CISQ也將其整理過的原始碼品質檢測指標,提交到ISO並參與ISO 25023標準制定討論,補充ISO 25023在原始碼品質檢測面的實施方法和項目,以期獲得業界採用和依循,提升應用程式原始碼在上線生命週期的安全性和維護便利性。 【小結】 CISQ軟體品質開發指標除依據美國CWE通用弱點披露,針對可靠度、安全性、可維護性、系統效能四項原始碼品質議題,進行軟體開發過程中單元面、系統面的常見錯誤改善建議;若能將CISQ軟體開發品質指標,從四大原始碼品質議題,協助國內SI業者減少資安和系統效能等缺失、把關SI業者軟體開發過程之品質需求,以符合SLA基本要求和國內外資安相關法規、保障產出軟體整體品質、提供更安全穩定的服務。 資料來源:
1.(2020). Code Quality Standards. Retrieved March 9, 2020, from Consortium for Information & Software Quality (CISQ): https://www.it-cisq.org/standards/code-quality-standards/
2.Jones, M. (2018, December 18). Introduction to CISQ. Retrieved March 10, 2020, from National Institute of Standards and Technology (NIST): https://csrc.nist.gov/CSRC/media/Projects/cyber-supply-chain-risk-management/documents/SSCA/Winter_2018/TueAM2.3-SSCA_CISQ.pdf
MAHD改良式敏捷硬體開發:驅動硬體開發專案的加速器
FIND研究員:李啟榮 改良式敏捷硬體開發(Modified Agile Hardware Development,MAHD),其概念衍生自軟軟體敏捷開發(Agile development),藉由硬體開發流程中各項機能團隊不斷衝刺和整合,以達到跟軟體敏捷開發類似的用途;但硬體敏捷開發受到先天的資源、規格、架構等影響,比軟體敏捷開發較難與時俱進擴充功能和效能,故硬體敏捷開發需考量產品各項功能的一次到位,以減少後續開發維護過程中的負擔。 【硬體敏捷開發之步驟】 硬體敏捷開發跟軟體敏捷開發一樣有Iteration(迭代、任務循環),也有各機能團隊內部的Sprint衝刺活動,但硬體開發得要做好產品功能和框架的基礎,即「起步(Ramp-up)」階段,從使用者的產品需求角度探討產品需要具備何種功能和框架,除了符合使用者期待外,也能讓日後進入產品開發階段時更快速流暢。MAHD改良型硬體敏捷開發共有如後五個起步階段: 1.用戶故事(User Stories):以使用者為角度確立產品定位和任務目標
2.產品需求:包含結構性、機能性、規格等需求指標,以回應用戶對產品的期待
3.聚焦矩陣:將不同的用戶故事情境結合在一起,藉此了解產品開發最需要、最多用戶關注的功能和需求
4.任務循環規劃(Iteration Plan):決定每個任務循環需要實施的長度(通常1~4週不等)與產出成果,以完成硬體敏捷開發流程中不同功能和任務的環節
5.建立待辦清單(Backlog):在每個Iteration中,建立循序階層式的Backlog,依照不同功能和任務的優先層級讓工作順暢進行 在完成五階段起步流程後,就進入各項功能和框架的Iteration,每個Iteration執行為期2~8週,包含整合、驗證、展示和下期Iteration規劃的循環,提升產出速率,促使各項功能和框架能迅速一次到位。 【軟硬體敏捷開發之差異】 MAHD改良式敏捷硬體開發,雖同樣沿用了Scrum軟體敏捷開發的敏捷要素,但因為硬體敏捷開發需要講求框架和功能的一步到位,並未如軟體能與時俱進新增功能或改變框架,因此硬體敏捷開發往往比軟體敏捷開發更久,以產出具有完整功能和框架的雛型產品為目標,並進行使用者實際驗證,使硬體產品在起步階段完成規劃後,藉由使用者反饋與需求,逐步改善功能和框架的完整性。 硬體開發完成及產出後,由於難以跟軟體開發一樣,對整體架構做出「重構(Refactoring)」,因此功能更動或追加的成本,也比軟體敏捷開發來得高;若藉由謹慎規劃硬體產品的機能和擴充需求,除了可以減少開發的時間和資源成本,也能與軟體敏捷開發流程整合,來提升交付和改版效率。 【小結】 經由硬體敏捷開發,可讓開發團隊更能從使用者需求角度,了解使用者最關注和最迫切的需求,並在起步階段時決定好硬體產品的各項功能及框架;另一方面,硬體敏捷開發專案通常也配合各項功能的配套軟體協同作業,在開發專案起步後,經由介面設計、低中高機能模擬、完整機能雛型,並在雛型產出前與軟體敏捷團隊進行最終整合,進行硬體敏捷專案的評估和驗證,除能解決在雛型開發中遇到的問題外,也更有利於日後產品釋出後的維護,減少產品故障、功能異常和性能瓶頸,增進軟硬整合效率、為雙軌並行的軟硬體敏捷開發團隊締造雙贏。 資料來源: 1.Simpson, D., & Hinkle, G. (2018, September). MAHD Modified Agile for Hardware Development - Intro and Toolkit. Retrieved March 11, 2020, from Agile for Hardware: https://agileforhardware.org/wp-content/uploads/2018/09/An-Intro-to-MAHD-Ebook-Complete-with-Templates-Final.pdf
2.Simpson, D., & Hinkle, G. (2020). Modified Agile for Hardware Development. Retrieved March 11, 2020, from Agile for Hardware: https://agileforhardware.org/about_mahd/
訊連科技推出「U校園防疫專案」這學期免費無限使用
為了因應新型冠狀病毒(武漢肺炎、COVID-19)疫情延燒,各大專院校已將開學日延後至3月初後,儘管延後但仍然有許多國際學生或居家隔離的學生受到疫情影響,無法如期地回到校園上課,有鑑於此多媒體廠商訊連科技17日宣布,將免費提供各大專院校「U會議」與「U簡報」系統,有需求的學校單位可至U官方網站免費申請「U校園防疫專案」這項服務,於防疫期間協助各大專院校快速打造遠距教學平臺。>
AI社群電商利器Shoplus 讓商家做更少、賣更多!
Shoplus的AI Chatbot獲得廣大東南亞賣家的好評,讓泰國跟越南的賣家們能夠一邊直播,一邊輕鬆、快速、方便的賣出商品,以AI為核心能力,提升獲客能力及增加顧客終身價值,Shoplus團隊在這過程中點滴累積對東南亞社群電商生態的學習和認識,運用AI和團隊智慧繼續將這項服務推向全世界。>