Page 46 -
P. 46

ChaPter 1  •  SyStemS, roleS, and develoPment methodologieS     13

                 always easy because the agile process is an unusually demanding role for the customer to play.
                 Customers decide what the development team should tackle first. Their decisions will set priori-
                 ties and check functionalities throughout the process.

                 itErations to thE First rElEasE.  The third stage in the agile development process is composed
                 of iterations to the first release. Typically these are iterations (cycles of testing, feedback, and
                 change) of about three weeks in duration. You will be pushing yourself to sketch out the entire
                 architecture of the system, even though it is just in outline or skeletal form. One goal is to run
                 customer-written functional tests at the end of each iteration. During the iterations stage you
                 should also question whether the schedule needs to be altered or whether you are tackling too
                 many stories. Make small rituals out of each successful iteration, involving customers as well as
                 developers. Always celebrate your progress, even if it is small, because this is part of the culture
                 of motivating everyone to work extremely hard on the project.
                 productionizing.  Several activities occur during the productionizing phase. In this phase the
                 feedback cycle speeds up so that rather than receiving feedback for an iteration every three
                 weeks, software revisions are being turned around in one week. You may institute daily briefings
                 so everyone knows what everyone else is doing. The product is released in this phase, but it may
                 be improved by adding other features. Getting a system into production is an exciting event.
                 Make time to celebrate with your teammates and mark the occasion. One of the keys to the agile
                 approach, which we heartily embrace, is that it is supposed to be fun to develop systems!
                 MaintEnancE.  Once a system has been released, it needs to be kept running smoothly. New
                 features may be added, riskier customer suggestions may be considered, and team members may
                 be rotated on or off the team. The attitude you take at this point in the developmental process is
                 more conservative than at any other time. You are now in a “keeper of the flame” mode rather
                 than the playful one you experienced during exploration.



                 Object-Oriented Systems Analysis and Design

                 Object-oriented (O-O) analysis and design is an approach that is intended to facilitate the devel-
                 opment of systems that must change rapidly in response to dynamic business environments.
                 Chapter 10 helps you understand what object-oriented systems analysis and design is, how it
                 differs from the structured approach of the SDLC, and when it may be appropriate to use an
                 object-oriented approach.
                     Object-oriented techniques often work well in situations in which complicated informa-
                 tion systems are undergoing continuous maintenance, adaptation, and redesign. Object-oriented
                 approaches use the industry standard for modeling object-oriented systems, called Unified
                 Modeling Language (UML), to break down a system into a use case model.
                     Object-oriented programming differs from traditional procedural programming in that it
                 examines objects that are part of a system. Each object is a computer representation of some
                 actual thing or event. Objects may be customers, items, orders, and so on. Objects are repre-
                 sented by and grouped into classes that are optimal for reuse and maintainability. A class defines
                 the set of shared attributes and behaviors found in each object in the class.
                     The phases in UML are similar to those in the SDLC. Since those two methods share rigid
                 and exacting modeling, they happen in a slower, more deliberate pace than the phases of agile
                 modeling. An analyst goes through problem and identification phases, an analysis phase, and a
                 design phase, as shown in Figure 1.6.
                     Although much of the specifics are discussed in Chapters 2 and 10, the following steps give
                 a brief description of the UML process:
                   1. Define the use case model.
                        In this phase the analyst identifies the actors and the major events initiated by the
                     actors. Often the analyst will start by drawing a diagram with stick figures representing
                     the actors and arrows showing how the actors relate. This is called a use case diagram
                     (Chapter 2), and it represents the standard flow of events in the system. Then an analyst
                     typically writes up a use case scenario (Chapter 2), which describes in words the steps that
                     are normally performed.
   41   42   43   44   45   46   47   48   49   50   51