inf 111 cse 121 software tools and methods
play

INF 111 / CSE 121: Software Tools and Methods Lecture Notes for - PDF document

INF 111 / CSE 121: Software Tools and Methods Lecture Notes for Fall Quarter, 2007 Michele Rousseau Lecture Notes Set 3 Previous Lecture Software Tools Methods & Notations Process Modeling The Agile Process Model Started


  1. INF 111 / CSE 121: Software Tools and Methods Lecture Notes for Fall Quarter, 2007 Michele Rousseau Lecture Notes Set 3 Previous Lecture � Software Tools � Methods & Notations � Process Modeling � The Agile Process Model � Started on XP Lecture Notes 3 2 Today’s Lecture � Continue with XP � Testing � No Silver Bullet Lecture Notes 3 3 1

  2. Extreme Programming (XP) � Invented by Kent Beck in 1996 ● “Seat of the pants” fix to Chrysler project ● To fix problems caused by long development cycles of traditional process models � Beck Published in 1999 “Extreme Programming Explained: Embrace Change” “E t P i E l i d E b Ch ” ● Current hot topic in S/W Process ● Loved and Hated ● Tries to associate s/w process with eXtreme sports � Idea: Take a good programming practice and push it to the extreme ● Eg. Testing ● Testing is good so… do it all the time 4 Lecture Notes 3 Premise of XP � The Four Values Communication Simplicity Feedback Courage Hmmm.. But aren’t these standard “Best Practices”? What’s new here? Lecture Notes 3 5 6 Phases Of Development � Exploration � Planning � Iterations to Release � Productionizing � Maintenance � Death Lecture Notes 3 6 2

  3. Exploration Phase � Customers ● Story Cards – 1 feature per card ◘ Customer wish list for first release � Developers ● Get familiar with ◘ Tools ◘ Technology ◘ Practices … to be used ● Architecture possibilities explored – Prototype ● Tailor process to the project � A few weeks to months ● How familiar is tech to programmers 7 Lecture Notes 3 Planning Phase � Prioritize Stories ● First Small release agreement � Effort Estimate for each story ● Schedule Agreement ◘ Usually < 2 months Usually < 2 months � Takes a few days Lecture Notes 3 8 Iterations to Release Phase � Several Iterations before 1 st Release � # of Iterations determined in planning phase � Each iteration takes 1-4 wks to implement � Select stories wisely ● these enforce system architecture for the entire system ● Customer chooses stories for each iteration � Functional tests created by Customer ● Run at the end of each iteration At the end of last iteration � Production Lecture Notes 3 9 3

  4. Productionizing Phase � End testing before release � New changes may be found ● Decide whether to include in current release ● Documented for later implementation � Maintenance Phase � Maintenance Phase � Iterations shortened 10 Lecture Notes 3 Maintenance and Death Phases � Maintenance ● May need more people ◘ Maintain current production ◘ Produce new Iterations ◘ Change team structure ● Development slows � Death Phase Either… ● All stories complete & quality is satisfactory ● Not delivering expected outcomes ● Too expensive to continue Lecture Notes 3 11 XP Lifecycle Model Lecture Notes 3 12 4

  5. 14 Key Practices of XP Simple Design Programmer Test-driven development Practices Refactoring Pair programming Continuous integration Collective code ownership Coding standards Just Rules Planning Game Management Small releases Practices 40-hour week Open Workspace On-site customer Customer Practices 13 Metaphor Programmer Practices � Simple Design ● Simple solutions � no complex or extra code ● Do the simplest thing that will get you thru milestone ● Eliminate duplication in the design ● Don't over engineer, solve problems only when they occur � Test-driven development ● Unit test implemented before code and are run continuously (White Box Testing) ◘ Write a simple, automated test before coding ● Customers write functional tests (Black box testing) Communication Simplicity Feedback Courage Lecture Notes 3 14 Programmer Practices (2) � Refactoring ● Improving code without changing features � A change to the system that leaves its behavior unchanged, but enhances some nonfunctional quality-simplicity, flexibility, understandability, performance. ● Automated tests catch any errors that are introduced � Pair Programming � 2 people + 1 computer ● One codes, one thinks about the design and catches errors � Continuous Integration ● Many times / day ● All tests must pass for changes to be accepted Communication Simplicity Feedback Courage Lecture Notes 3 15 5

  6. Programmer Practices (3) � Collective Ownership ● Any developer can change any code any time ● But, “ you break it, you fix it ” � Coding Standards ● Everyone codes to the same style standards ● Corollary to “collective code ownership” C ll “ ll i d hi ” ● “No one can recognize who wrote what” � Just Rules ● Team defined – can change ◘ all must agree & impact assessed Communication Simplicity Feedback Courage 16 Lecture Notes 3 Pair Programming Programming is not just “typing”, this is why pair programming does not reduce productivity (Fowler) Benefits: ● All design decisions involve at least two brains. ● At least two people are familiar with every part of the system. f th t ● There is less chance of both people neglecting tests or other tasks. ● Changing pairs spreads knowledge throughout the team. ● Code is always being reviewed by at least one person. Lecture Notes 3 17 Management Practices � Planning Game ● Dev estimates effort ● Cust decides what they want and when � Small Short Releases < 2-3 months ● Then less � 40-hour work week 40 h k k ● No 2 overtime wks in a row � Open Workspace ● 1 Large Room � Small Cubicles ● Pair Programmers in the Center Communication Simplicity Feedback Courage Lecture Notes 3 18 6

  7. Customer Practices � On-site customer ● Need customer/user around to answer questions ● Builds a bond, working relationship � Metaphors ● “Shared Story” guides development ● Describes how system should work Communication Simplicity Feedback Courage 19 Lecture Notes 3 User Story / User Card http://www.scissor.com/resources/teamroom/ Lecture Notes 3 20 The XP Team Room Lecture Notes 3 21 7

  8. XP Concepts � XP is a set of key practices that suggest a software development process. � Key concept: Embrace change . ● Rather than avoid changes, try to reduce the cost of making changes. � Key concept: Defer costs . ● Rather than face every problem up front, try to start with a small subset and incrementally plan and carry out improvements. 22 Lecture Notes 3 XP Proponents Responses to Criticisms � Just a fancy form of build-and-fix . ● False. ● XP is actually a disciplined software process. ● Has the some of the same challenges and adoption problems as traditional phased processes. � Doesn’t work for large systems. ● False. ● False ● Chrysler Comprehensive Compensation system was a large system ● Other XP users include Google and John Deere � Doesn’t work for large teams. ● False. ● Large teams are normally broken up into sub-projects ● Same can be applied to large teams using XP Lecture Notes 3 23 XP Proponents Resp. to Criticisms (2) � Doesn’t work for geographically distributed teams. ● False. ● Technology is both the cause and the solution ● Planning tools, Skype, IM, revision control � User stories are no substitute for requirements. ● True. ● User stories work, because they depend on the other practices U t i k b th d d th th ti such as On-site Customer � Doesn’t work with safety-critical software . ● False. ● Same challenges apply here as with phased processes ● Can add checks and balances, documentation, and formal design as needed Lecture Notes 3 24 8

  9. XP Proponents Resp. to Criticisms (3) � Doesn’t produce documentation. ● Maybe. XP only produces as much documentation as is needed, when it is needed (simplicity). � It is wasteful, because you’re doing constantly doing re design. doing re-design. ● False. ● Planning everything up front is wasteful, because things are going to change anyways. � Not suitable for all projects ● True. ● User functionality is simple, algorithms hard ● Example: scientific applications 25 Lecture Notes 3 Productivity Gains � For a Web Dev Project ● 66% increase in new lines of code produced p ● 302% inc in new methods developed ● 283% inc in # of new classes implemented Maruer & Martel 2002b Lecture Notes 3 26 Cons � Corp Culture must support XP ● Any resistance can lead to failure � Best for teams < 20 � Best if teams are collocated ● On the same floor � Technology that does not support “graceful change” � may not be suitable Lecture Notes 3 27 9

  10. More Reading if you are interested � Agile ● Abrahamsson, P, et al. (2002). Agile software development methods: Review and analysis. VTT Publications 478. y ● http://www.vtt.fi/inf/pdf/publications/2002/P 478.pdf � XP ● Beck, K. (1999). Extreme programming explained: Embrace change. Reading Mass., Addison-Wesley 28 Lecture Notes 3 Take a break! � Stretch, Relax � Get some water, Use the restroom � Get to know your classmates… � Etc….. When we return… � No Silver Bullet � Testing Lecture Notes 3 29 Moving on.. � No Silver Bullet � Testing Lecture Notes 3 30 10

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend