Download presentation
Presentation is loading. Please wait.
Published byProsper Lane Modified over 9 years ago
1
Software Engineering for Digital Home 單元 4 :數位家庭軟體開發與再利用 Chapter 4-2 – 快速軟體開發 1
2
Software Engineering for Digital Home outline Introduce of rapid software development Agile methods ( 敏捷方法 )Agile methods –Extreme programming ( 終極流程 )Extreme programming Software prototyping ( 軟體雛型 )Software prototyping 2
3
Software Engineering for Digital Home Rapid software development Rapid software development are designed to produce useful software quickly ( 簡化過往 SE 的流程加快開發速度 ) 3
4
Software Engineering for Digital Home Original Flow 需求分析實作測試 R1 R2 R3 R4 4 time
5
Software Engineering for Digital Home Rapid Flow 5 time T1T2T3T4T5T6T7 R1 需求分析實作測試 R2 需求分析實作測試 R3 需求分析實作測試 R4 需求分析實作測試
6
Software Engineering for Digital Home Characteristics of RAD Design and implementation are concurrent ( 設計與實做同時 ) No detailed specification and design documentation ( 缺少詳盡規格與文件 ) The system is developed in a series of increments. ( 需求會持續增加 ) Using an interactive development system.( 採取互動系統 ) e.g. web-site 6
7
Software Engineering for Digital Home An iterative development process 7 define system deliverables design system architecture specify system increment build system increment validate increment integrate increment validate system if system complete deliver final system Yes No
8
Software Engineering for Digital Home Problems with incremental development Management problems ( 管理問題 ) Contractual problems ( 契約問題 ) Validation problems ( 驗證問題 ) Maintenance problems ( 維護問題 ) 8
9
Software Engineering for Digital Home Agile methods Are based on an iterative approach to software development( 建構在互動的架構上 ) Agile methods are probably best suited to small/medium-sized business systems or PC products.( 用在中小型的系統 ) 9
10
Software Engineering for Digital Home Principles of agile methods 10 1. 客戶需要與程式開發者相當緊密聯繫 2. 當需求增加時,規格文件盡量要附加 3. 不要使人員為開發流程為一個重要因素 4. 預期變化 5. 簡單地維護
11
Software Engineering for Digital Home Problems with agile methods It can be difficult to keep the interest of customers ( 保持與顧客聯繫困難 ) Team members may not have personalities ( 保持 高 EQ) Prioritising changes can be difficult where there are multiple stakeholders.( 如何要先選擇哪個 stakeholders 的需求更改 ) 11
12
Software Engineering for Digital Home Extreme programming Perhaps the best-known and most widely used agile method. 12
13
Software Engineering for Digital Home The XP release cycle 13 select user stories for this release break down stories to tasks plan release develop, integrate, test software Release software evaluate system
14
Software Engineering for Digital Home Extreme programming practices 14 1.Sustainable pace ( 時間緊迫 ) 2.Incremental planning ( 增加計畫 )Incremental planning 3.on-site customer( 和客戶密切合作 ) 4.Small releases ( 雛型設計 ) & Simple design ( 簡單設計 ) 5.Test first development & Automated test harnesses ( 先行測試發展 與自動測試 )Test first development & Automated test harnesses 6.Pair programming ( 成雙開發 )Pair programming 7.Collective ownership ( 集體所有權 ) 8.Continuous integration ( 持續集成 ) 9.Refactoring ( 重新變更 )
15
Software Engineering for Digital Home Requirements scenarios In XP, user requirements are expressed as scenarios or user stories. The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates. ( 與 user requirement 相 同,只是在此稱為 scenarios or user stories , 紀錄在 Story card 中 ) 15
16
Software Engineering for Digital Home Story card for document downloading 16 下載列印小說 -------------------------------------------------------------------------------------- 先選取想要列印的小說,和你所選用支付費方式 ( 可以是用信用卡 … 等 等 ) 當系統確認你有合法複製的權利後,你可以做下載的動作 下載完後可以開始列印,當列印完成後會告知你已經 ” 成功列印 ” 最後如果你下載的文件為 “ 只准列印 ” 的文件,當你列印之後會從你的電 腦裡刪除
17
Software Engineering for Digital Home Task cards for document downloading 17 Task1 :小說選擇 Task2 :付費方式 ------------------------------------------------------------------------- 1. 先輸入確認驗證碼做核定 2. 輸入對方帳號 3. 輸入信用卡的卡號和到期日期
18
Software Engineering for Digital Home Test case description 18 Test4 :測試信用卡號碼正確與否 ----------------------------------------------------------------------------------- Input :信用卡卡號 & 到期日期 Test : 1. 確認信用卡卡號是否為正確格式 2. 確認到期日期是否為正確格式 …………………………… 等等 Output : 正確或錯誤訊息
19
Software Engineering for Digital Home Test-first development Writing tests before code be implemented. Tests are written as programs rather than data so that they can be executed automatically. 19 自動測試程式 名稱及密碼登入程式結果
20
Software Engineering for Digital Home Pair programming This helps develop common ownership of code and spreads knowledge across the team. ( 用 team 對於程式與知識的交流較有幫助 ) It serves as an informal review process by more than 1 person. ( 多人一起看錯誤 ) It encourages refactoring as the whole team can benefit from this.( 一起 refactor 可以比較 有利益 ) 20
21
Software Engineering for Digital Home Software prototyping A prototype can be used in: –The requirements engineering process to help with requirements elicitation and validation –In design processes to explore options and develop a UI design; –In the testing process to run back-to-back tests.back-to-back 21
22
Software Engineering for Digital Home Back to back testing 22 difference report test data system prototype application system result comparator
23
Software Engineering for Digital Home Benefits of prototyping Improved system usability.( 增加可用性 ) A closer match to users ’ real needs.( 接近使用 者需求 ) Improved design quality.( 增進設計品質 ) 23
24
Software Engineering for Digital Home Key points An iterative approach to software development leads to faster delivery of software. Agile methods are iterative development methods that aim to reduce development overhead and so produce software faster. Extreme programming includes practices such as systematic testing, continuous improvement and customer involvement. The approach to testing in XP is a particular strength where executable tests are developed before the code is written. 24
25
Software Engineering for Digital Home Key points Rapid application development environments include database programming languages, form generation tools and links to office applications. A throw-away prototype is used to explore requirements and design options. When implementing a throw-away prototype, start with the requirements you least understand; in incremental development, start with the best- understood requirements. 25
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.