《軟件開發(fā)流程》由會員分享,可在線閱讀,更多相關《軟件開發(fā)流程(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、軟件開發(fā)流程 軟件開發(fā)流程概述n 項目:l 需求來自某個別用戶,定制性能l 政府、企業(yè)、基金項目l 金土資源、myPKIn 產(chǎn)品: l 需求來自某類用戶,不單獨定制l Windows 1、可行性分析做不做?n 目的:為決策提供依據(jù)n 要求:真實、全面與重點兼顧n 內(nèi)容:l 市場可行性:成熟?對手?用戶? l 政策可行性:盜版軟件?l 技術(shù)可行性:核心技術(shù)?時間?l 成本收益分析:辦公、工資、培訓、維護l SWOT分析: - Strengths, Weaknesses, Opportunities, Threats SWOT分析n Strengthsl 技術(shù)技能優(yōu)勢:l 資產(chǎn)優(yōu)勢:有形(先進設施
2、)、無形(品牌)l 人力資源優(yōu)勢:l 組織體系優(yōu)勢l 競爭能力:開發(fā)周期,營銷網(wǎng)絡n Weaknesses l 缺乏核心技能技術(shù)?l 缺乏有競爭力的資產(chǎn)資源(包括人力)l n Opportunities 確認評價每個重要機會l 客戶群的擴展l 市場壁壘l 并購競爭對手?l 向其他地理區(qū)域擴張?n Threatsl 市場內(nèi)的競爭對手l 市場增值率l 匯率和外貿(mào)政策l 市場需求減少l 經(jīng)濟危機,國家調(diào)控政策 2、需求分析有所為有所不為n 重要性:n 難點:l 用戶需求不斷改變、交流理解有誤差n 內(nèi)容: l 功能需求l 性能指標l 環(huán)境需求:軟、硬件環(huán)境l 界面需求:人機交互方式n 使用工具:Rat
3、ional Rose、Visio 3、系統(tǒng)設計架構(gòu)師n 軟件體系結(jié)構(gòu)屬于系統(tǒng)設計n 可分兩個階段:總體設計和詳細設計n 總體設計:l 需求分析的結(jié)果軟件體系構(gòu)架、結(jié)構(gòu)l 復雜系統(tǒng)模塊進行功能劃分、建立層次結(jié)構(gòu)n 詳細設計: l 各個模塊的功能設計 3、系統(tǒng)設計流程 3、系統(tǒng)設計內(nèi)容 系統(tǒng)設計用戶界面設計n 用戶界面類型l 對話框:計算器l 文檔:officel 瀏覽器:outlookl 其他,如游戲界面n 界面設計 l 人機界面就是系統(tǒng)本身 3、系統(tǒng)設計界面設計原則n 實用、直觀、簡潔、生動n 對用戶友好:符合習慣、及時反饋信息n 風格一致:Word Powerpointn 錯誤處理:提示、撤
4、銷等n 幫助:n 盡量減少非必要信息 3、系統(tǒng)設計數(shù)據(jù)庫設計n 目的:設計表結(jié)構(gòu)存儲、操作數(shù)據(jù)n 步驟,分兩步:l 抽象:客觀對象抽象出 實體和聯(lián)系 模型- Entity-Relationshipl 將 (概念)模型轉(zhuǎn)化為實際數(shù)據(jù)庫系統(tǒng)支持的數(shù)據(jù)模型(物理模型)n 數(shù)據(jù)庫設計范式 l 1NF、2NF、3NF、BCNFl 使得添加、更新、刪除時少發(fā)生錯誤n 工具:l PowerDesigner 4、模塊設計n 模塊指系統(tǒng)的各功能部件n 模塊化降低開發(fā)、測試、維護的代價n 如何劃分模塊:沒有標準答案n 模塊設計的原則l 接口公開、內(nèi)部實現(xiàn)隱藏 l 高內(nèi)聚:模塊內(nèi)部關聯(lián)度高。如果不高?l 低耦合:模
5、塊之間依賴程度應該低。高?n 模塊設計內(nèi)容l 接口(外)、數(shù)據(jù)結(jié)構(gòu)+算法(內(nèi)) 4、模塊設計OOP設計n 類的抽象n 類的結(jié)構(gòu)層次:繼承、依賴n 類的屬性、定義n 類的實現(xiàn) 5、模塊設計數(shù)據(jù)結(jié)構(gòu)和算法n 設計理念l 為那種應用服務?l 時間優(yōu)先還是空間優(yōu)先?l 熟悉哪些算法或數(shù)據(jù)結(jié)構(gòu)n 一般過程 l 先設計全局數(shù)據(jù)結(jié)構(gòu)、再局部數(shù)據(jù)結(jié)構(gòu)l 優(yōu)先使用已有、成熟、合適的,再考慮自行設計l 滿足性能即可,不滿足,再優(yōu)化 6、編碼n 語言l Java:面向?qū)ο?、分布式、解釋型、可移植、多線程,- J2SE, J2EE,J2MEl .Net: 健壯、安全、統(tǒng)一、開發(fā)簡單- CLR(Common Langu
6、age Runtime): 核心,類似虛擬機,負責代碼執(zhí)行、內(nèi)存管理、安全等- Framework:平臺基礎 - C#, C+,l Unix/Linux 6、編碼編碼規(guī)范 n 目標:l 易讀、風格統(tǒng)一、安全,可維護移植n 內(nèi)容:l 命名l 代碼書寫格式 l 其他如函數(shù)、變量等的設置要求 6、編碼開發(fā)方法n 一種軟件開發(fā)方法:極限編程XP (eXtreme Programming)l Kent Beck:1996l 理念:交流、樸素、反饋、勇氣、尊重l 將復雜的開發(fā)過程分解為 許多相對簡單的小周期。積極交流反饋,讓涉眾清楚開發(fā)進度、問題、困難,并及時調(diào)整。相互尊重! l 極限:把所有強調(diào)的思想、
7、方法做到最好,其他忽略;n RUPn Agilen Scrum 6、編碼源代碼控制n 版本管理l 人員離開變動?如何記錄重要更新?多個版本出現(xiàn),管理版本的變化?對各個小組的子模塊管理?保留修改軌跡,便于撤銷錯誤的改動?n 常用工具:l VSS, Microsoft Visual SouceSafe l CVS, Concurrent Versions System, - Open source 7、軟件測試n 定義(Myers,軟件測試藝術(shù)):l 為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程n 目的:保證軟件質(zhì)量n 時機:在軟件交付用戶或投入運行之前n 經(jīng)驗:錯誤越遲被發(fā)現(xiàn),調(diào)試難度越大。n 階段: l 單元
8、測試、集成測試、系統(tǒng)測試、用戶測試 7、軟件測試n 單元測試l 由開發(fā)者編寫一段代碼,檢驗程序基本功能是否正確。l 測試的單元:類、函數(shù)。- 例如裝配電腦,先測試顯卡、硬盤、光驅(qū)等 7、軟件測試n 集成測試:自頂向下l 樁模塊:模擬真模塊,提供數(shù)據(jù)l 建立測試驅(qū)動模塊:以程序真正的主模塊為驅(qū)動模塊,替換某樁模塊,輸入數(shù)據(jù),檢測輸出是否正確 l 回歸測試:做一定修改后,再次由測試部門進行測試 7、軟件測試n 集成測試:自底向上l 組織模塊群:將部分底層模塊組裝成實現(xiàn)某個功能的模塊群l 建立測試驅(qū)動模塊:對上一步組裝的模塊群開發(fā)一個測試程序,輸入數(shù)據(jù),測試輸出是否正確 7、軟件測試系統(tǒng)測試n 概念
9、:將完整的軟件及其所依賴的軟硬件環(huán)境整合,進行測試n 內(nèi)容:l 性能、負載l 黑盒測試:不關心內(nèi)部,只看結(jié)果是否正確 l 白盒測試:結(jié)構(gòu)或邏輯測試,檢驗內(nèi)部功能是否按規(guī)定正確工作。l 單元測試通常是白盒測試,而集成測試和系統(tǒng)測試往往是黑盒測試 7、軟件測試測試工具 n 單元測試:xUnit(CppUnit, Junit, Nunit)n 黑盒:l 功能測試:Rational SQA Robotl 性能測試: Rational SQA Loadn 白盒測試: l 內(nèi)存泄露:Rational Purifyl 代碼覆蓋率:Rational Purecoveragel 代碼性能:Rational Qu
10、antifyn 測試管理:Rational Test Manager 8、結(jié)項n 安裝盤的制作l InstallShield, Acresso公司,事實標準l VisioStudio.Net 發(fā)布程序n 版權(quán)保護l 加密:序列號n 說明書幫助文檔制作 l HLP,早期,Microsoft Help Workshopl CHM, 1998年推出, Microsoft Html Help Workshop 8、軟件維護n 未發(fā)現(xiàn)的Bugn 需求改變n 版本升級兼容n 售后培訓n Dimensions of software complexityHigher technical complexity
11、 - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance Higher management complexity - Large scale - Contractual - Many
12、 stake holders - “Projects”Lower management complexity - Small scale - Informal - Single stakeholder - “Products” Defense MIS SystemDefense Weapon SystemTelecom SwitchCASE Tool National Air TrafficControl SystemEnterprise IS(Family of ISApplications)CommercialCompilerBusinessSpreadsheet IS Applicati
13、onDistributed Objects (Order Entry)Small ScientificSimulation Large-ScaleOrganization/EntitySimulation An average software project: - 5-10 people - 10-15 month duration - 3-5 external interfaces - Some unknowns it will be a question of complexity.Bill Raduchel, Chief Strategy Officer, Sun Microsystems