Unformatted text preview:

Slide 1CS 602 Java and the WebIterative DevelopmentA Working ProductSlide 5TimeboxingMotivation for Timeboxing an IterationEnforcing PrioritiesHappy TeamsMaintaining SupportManaging RiskThe Greatest RiskCritical TasksRisk Case StudyThe Critical TaskCase StudyM.A.I.N. Search PageExamplePartial results from searchProcessKept ListDead EndActual ProcessBook PagePlace Hold ScreenThe Final InsultRisk Driven DevelopmentThree Main Risks in Software DevelopmentValue DeliveredImportance of FeedbackRefactoringFactory Design PatternFactory Pattern (Gang Of Four)Advantages of Factory ObjectsA Simple Factory PatternMicrosoft Class FactoriesDrawing Pad ApplicationThese are useful tools!BibliographyGeorge BlankUniversity LecturerCS 602Java and the WebObject Oriented Software Development Using JavaChapter 9Iterative Development•This chapter of the text is an introduction to iterative development with a case study to illustrate it.•Grady Booch of Rational Software has stated that the critical idea in the Rational Unified Process is Iterative Development.A Working Product•The output of every iteration is working code. The first iteration may not do much, but it is complete, testable, executable, and deliverable.Iterative Development•Iterative Development is successively enlarging and refining a system through multiple iterations, using feedback and adaptation.•Each iteration will include requirements, analysis, design, and implementation.•Iterations are timeboxed.Timeboxing•Timeboxing is a best practice in which the deadline is not flexible. If the team cannot finish within the scheduled time, features are eliminated in order to produce some working code by the deadline.•There are several good reasons for timeboxing.Motivation for Timeboxing an Iteration•Parkinson’s Law “Work expands so as to fill the time available for its completion.” The team has to focus, make decisions to make available executable and tested system on a given date. Otherwise resources are wasted and little is accomplished.Enforcing Priorities•Prioritization and Decisiveness Short timeboxed iterations force a development team to make decisions regarding the priority of work and risks, identify what is of the highest business or technical values.Happy Teams•Team Satisfaction The team should finish a set target everyday which gives a psychological advantage for individual and team satisfaction. This is better than lingering on things for months.Maintaining Support•Stakeholder Confidence Completing the system in a set time span which gives confidence to the stakeholder of the system for future projects. Projects that lose the support of the stakeholders are frequently cancelled.Managing Risk•A key purpose of iterative development is managing risk. Usually the riskiest part of development is done first, so that if a disastrous risk event occurs, time has not been wasted on activities that have no remaining value.The Greatest Risk•The greatest risk in any software is almost always that it will not fulfill its main purpose. For example, most people use an ATM to withdraw money. Since that is the main function, if it does not work, the whole system must be considered a failure.•Therefore, to develop an ATM, work on cash withdrawal first. (The highest risk) After that, worry about less used functionality such as making deposits and balance inquiries.Critical Tasks•Since the greatest risk is always a quality risk, that the system will not accomplish its main purpose or critical task, it is important for team members to know what aspect of the delivered product is critical for customer satisfaction.•For example, most people only pay attention to a bridge when it is washed away or closed for repairs. They are usually more interested getting across the river than admiring the bridge.Risk Case Study•To illustrate the importance of risk driven development focused on critical tasks, I want to give an example based on one of the most incompetent software designs I have ever encountered.•It is not an accident that this program was developed for government use, as government tends to have lower quality standards than commercial users. It is a public library Internet catalog developed by SirsiDynix, a company that makes a good living selling bad software to government users.The Critical Task•For the critical task, we should consider the main reason that someone would want to use an Internet library catalog. That task would be to request a book. While there are enough flaws in this program to be analyzed for a full semester course, we will look only at the process of requesting a book.Case Study•The case study is the automated on-line catalog of the Morris County, New Jersey library system, called the Morris Automated Information Network, and available at http://catalog.mainlib.org/ .•Actually, the search screen, the main entry point for the system, is quite good, suffering mainly from being too busy, as shown on the next page.M.A.I.N. Search PageExample•To illustrate a search, imagine that you are looking for a book by Tom Clancy, but do not remember the name of the book. So you do an “author” search on Tom Clancy.•The next screen shows the result. Note that the results are listed by publication date (which is neither announced nor selectable by the program) and there are 233 entries, or 12 pages of material to look through at 20 items per page.Partial results from searchProcess•Note that there are two options listed beside each book, “Details” and “Keep.” While neither indicates that you can reserve the book (the critical task), “Keep” seems close.•After laboriously paging through 12 pages and finding three books you are interested in, marking them “Keep,” you try to figure out what to do next. You see an option for “Kept” at the top of the page, so you select that.Kept ListDead End•Now what do you do?•The answer is “Start Over.” There is absolutely no way to reserve a book on your kept list! The best you can do is print out the list and take it to the library and ask the librarian to reserve it for you.Actual Process•If instead of selecting “Keep” you had selected “Details,” you would have come to a separate page for each book. While you still do not have an option to reserve a book, if you look closely at the small print, you will see that you can “place hold” on this book. This is actually the way to reserve the


View Full Document

NJIT CS 602 - Java and the Web

Download Java and the Web
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Java and the Web and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Java and the Web 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?