Top Banner
Software Engineering for Digital Home 單單 4 單單單單單單 單單單單單單 :體 Chapter 4-2 – 單單單 單單 1
24

Software Engineering for Digital Home 單元 4 :數位家庭軟體開發與再利用 Chapter 4-2 – 快速軟體開發 1.

Dec 27, 2015

Download

Documents

Prosper Lane
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Slide 1
  • Software Engineering for Digital Home 4 Chapter 4-2 1
  • Slide 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
  • Slide 3
  • Software Engineering for Digital Home Rapid software development Rapid software development are designed to produce useful software quickly ( SE ) 3
  • Slide 4
  • Software Engineering for Digital Home Original Flow R1 R2 R3 R4 4 time
  • Slide 5
  • Software Engineering for Digital Home Rapid Flow 5 time T1T2T3T4T5T6T7 R1 R2 R3 R4
  • Slide 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
  • Slide 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
  • Slide 8
  • Software Engineering for Digital Home Problems with incremental development Management problems ( ) Contractual problems ( ) Validation problems ( ) Maintenance problems ( ) 8
  • Slide 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
  • Slide 10
  • Software Engineering for Digital Home Principles of agile methods 10 1. 2. 3. 4. 5.
  • Slide 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
  • Slide 12
  • Software Engineering for Digital Home Extreme programming Perhaps the best-known and most widely used agile method. 12
  • Slide 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
  • Slide 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 ( )
  • Slide 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
  • Slide 16
  • Software Engineering for Digital Home Story card for document downloading 16 -------------------------------------------------------------------------------------- ( )
  • Slide 17
  • Software Engineering for Digital Home Task cards for document downloading 17 Task1 Task2 ------------------------------------------------------------------------- 1. 2. 3.
  • Slide 18
  • Software Engineering for Digital Home Test case description 18 Test4 ----------------------------------------------------------------------------------- Input & Test 1. 2. Output
  • Slide 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
  • Slide 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
  • Slide 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
  • Slide 22
  • Software Engineering for Digital Home Back to back testing 22 difference report test data system prototype application system result comparator
  • Slide 23
  • Software Engineering for Digital Home Benefits of prototyping Improved system usability.( ) A closer match to users real needs.( ) Improved design quality.( ) 23
  • Slide 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
  • Slide 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