agile - Session 1 A New Way to Program - or Not? 810:188...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
Session 1 A New Way to Program -- or Not? 810:188 Agile Software Development Opening Question Does anybody what this course is about? Good. At least I'm not alone. :-) Opening Exercise Consider the MemoPad application from Session 1 of 810:062. Run through the typical use cases of this simple key/value database program. Look at the MemoDatabase interface and the MemoAssociation class. Exercise : Write a list of one-liner requirements for the DefaultMemoDatabase class. For example: "If you insert a key with a value, you can retrieve the value by giving the key." ... Here is a partial list culled from in-class discussion: 1. If you insert a key with a value, you can retrieve the value by giving the key. 2. If you insert a pair with a key that's already been used, then the database doesn't accept the new pair. 3. The value can be a empty string. 4. The key can be an empty string. 5. If you try to remove a non-existent key, the database says no. 6. If you remove an existing pair, then the key won't be found on a future look-up. 7. The key can be any length. 8. How many of these are ordinary cases? Special cases? Clearly, we are missing some of both. Can you fill in the blanks?
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
A Little Demonstration We did a little demonstration of test-first "gang programming" building DefaultMemoDatabase from the first couple of requirements. We used JUnit, a simple testing framework, to help us implement and run tests. The file TestTemplate.java served as our starting point for writing tests. (We will go into much greater detail on JUnit and tests soon!) We did the simplest thing that could possibly work in our code, but some of you were justifiably concerned with how brittle our code is. Does that mean this style of programming can't really work? I don't think so. Think about the duplication we have in our tests and program. If we refactor to make this duplication go away -- a natural 810:062-level activity -- what will our code look like? Background of the Course All of the questions that I've been asked in that last few weeks tell me that (many of) you don't know. Whenever I was asked, "What is this course about?", I told the questioner to google on "agile software development" to find out a little about what the term means. Did any of you do it? (... lots of heads shaking, and lots of sheepish grins. ..) I did it. Here, let me save you the trouble: google on "agile software development" How many documents does Google serve for that phrase (08/24/04)? Results 1 - 10 of about 336,000. Search took 0.25 seconds. Then I googled and pressed the "I Feel Lucky" button, to receive only the top-ranked page for my query. It gave me The Agile Manifesto : Manifesto for Agile Software Development We are uncovering better ways of developing
Background image of page 2
software by doing it and helping others do it. Through this work we have come to value:
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 04/27/2010 for the course CSE SEM5201 taught by Professor Abjones during the Spring '10 term at University of East London.

Page1 / 94

agile - Session 1 A New Way to Program - or Not? 810:188...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online