Page 48 -
P. 48

ChaPter 1  •  SyStemS, roleS, and develoPment methodologieS     15

                     Object-oriented methodologies often focus on small, quick iterations of development, some-
                 times called the spiral model. Analysis is performed on a small part of the system, usually starting
                 with a high-priority item or perhaps the item that has the greatest risk. This is followed by design
                 and implementation. The cycle is repeated with analysis of the next part, design, and some
                 implementation, and this is repeated until the project is complete. Reworking diagrams and the
                 components themselves is normal. UML is a powerful modeling tool that can greatly improve
                 the quality of your systems analysis and design and the final product.

                 Choosing Which Systems Development Method to Use

                 The differences among the three approaches described earlier are not as big as they seem at the
                 outset. In all three approaches, the analyst needs to understand the organization first (Chapter 2).
                 Then the analyst or project team needs to budget time and resources and develop a project proposal
                 (Chapter 3). Next, they need to interview organizational members and gather detailed data by using
                 questionnaires (Chapter 4) and sample data from existing reports and observe how business is cur-
                 rently transacted (Chapter 5). The three approaches have all of these activities in common.
                     Even the methods themselves have similarities. The SDLC and object-oriented approaches both
                 require extensive planning and diagramming. The agile approach and the object-oriented approach
                 both allow subsystems to be built one at a time until the entire system is complete. The agile and
                 SDLC approaches are both concerned about the way data logically moves through the system.
                     So given a choice to develop a system using an SDLC approach, an agile approach, or an
                 object-oriented approach, which would you choose? Figure 1.7 provides a set of guidelines to
                 help you choose which method to use when developing your next system.

                 Developing Open Source Software
                 An alternative to traditional software development in which proprietary code is hidden from the
                 users is called open source software (OSS). With OSS, many users and programmers can study,
                 share, and modify the code, or computer instructions. Rules of this community include the idea
                 that any program modifications must be shared with all the people on the project.
                     Development of open source software has also been characterized as a philosophy rather
                 than simply as the process of creating new software. Often those involved in open source

                                                                                                Figure 1.7
                    Choose                 When
                                                                                                How to decide which development
                    The Systems Development  •   systems have been developed and documented using SDLC  method to use.
                    Life Cycle (SDLC) Approach •   it is important to document each step of the way
                                           •   upper-level management feels more comfortable or safe
                                                using SDLC
                                           •   there are adequate resources and time to complete the full
                                                SDLC
                                           •   communication of how new systems work is important
                    Agile Methodologies    •   there is a project champion of agile methods in the
                                                organization
                                           •   applications need to be developed quickly in response to
                                                a dynamic environment
                                           •   a rescue takes place (the system failed and there is no time
                                                to figure out what went wrong)
                                           •   the customer is satisfied with incremental improvements
                                           •   executives and analysts agree with the principles of agile
                                                methodologies

                    Object-Oriented        •   the problems modeled lend themselves to classes
                    Methodologies          •   an organization supports the UML learning
                                           •   systems can be added gradually, one subsystem at a time
                                           •   reuse of previously written software is a possibility
                                           •   it is acceptable to tackle the difficult problems first
   43   44   45   46   47   48   49   50   51   52   53