1、軟體開發第一階段分析 定義問題(本質、範圍與目標):選課 發掘機會(解決方案、特色與潛在利益)進行規劃(人力、時間、預算)評估可行性(範例1、範例2)技術上可行(軟硬體技術取得、支援與維護)作業上可行(系統開發完成後能有效被應用)經濟上可行(開發成本、經濟效益、維護成本)蒐集與分析現有的作業流程(軟體)訂定新軟體的需求(系統功能架構圖)分析工具之:資料流程圖(DFD)外部個體資料儲存處理程序資料流向 o工作重點:以模組化(Modularity)為原則,完成新軟體的邏輯設計,包括規格及運作模式,但不涉及程式設計o設計考量:輸出需求、輸入需求檔案與資料庫軟體流程圖(以結構化分析與設計工具為例)資料
2、流程圖(Data Flow Diagram)實體關係圖(Entity Relationship Diagram)資料字典(Data Dictionary)實體關係圖:所有實體扮演角色及相互關係 實體:學生、課程、老師關係:選修、教授關係種類:多對多、一對多、一對一學生選修課程教授老師 資料字典:定義軟體中所有資料的類型 加強使用者與系統分析師之間的溝通 軟體一致性:Name(員工姓名or零件名稱?)型態:文字、數值 範圍:大小、長度 格式、資料儲存於何處、存取限制 以主題式入口網站(遊戲)為例 工作重點:專案排程、撰寫程式、建立實際的檔案與資料庫 軟體文件有下列兩種:使用者文件:操作手冊、線上
3、說明 系統文件:技術手冊(報告)(範例範例)個別測試、整合測試 白箱測試(White box testing):程式設計師角度 巴類圖原理(Pareto principle)針對特定模組進行徹底測試,會比針對所有模組進行同等但不深入的測試,容易發現錯誤 基本路徑測試(Basic path testing)設計一組測試資料,執行所有指令或敘述 黑箱測試(Black box testing):使用者角度 邊界值分析(Boundary value analysis)例如:庫存量的最大值及最小值測試 Beta測試(Beta testing):試用兼評估 系統轉換指的是如何停用現有的系統,改用新系統,常
4、見的方式有下列四種:直接轉換(Direct conversion)引導式轉換(Pilot conversion)一部分人先用階段式轉換(Phased conversion)先使用一部分功能平行轉換(Parallel conversion)同時使用一段時間。最安全但成本最高 瀑布模式(Waterfall model,1970)Classic life cycle,LinearIncremental modell一連串的階段l先提供具有幾個功能的簡單版本給使用者試用評估l然後根據試用結果加以修改並強化功能l重複這個過程直到完成整個系統例如:雛形法(Prototyping)的建置過程 課外延伸由上而下設計 V.S.由下而上設計 Top-down design:化繁為簡Bottom-up design:從子問題的解答中組合出原始問題的解答(利用現成的軟體元件組合出所需要的軟體)開放原始碼發展模式(Open source development model)Linux資工系(http:/140.126.104.167/)自由軟體推廣社群(學生園地)