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