Transcript Chapter 16
Systems Analysis and Design in a Changing World, Fourth Edition 16 16 Learning Objectives Explain the foundations for the adaptive methodologies to development List and describe the features of the Unified Process system development methodology List and describe the features of Agile Modeling Systems Analysis and Design in a Changing World, 4th Edition 2 16 Learning Objectives (continued) Compare and contrast the features of Extreme Programming and Scrum development Explain the importance of Model-Driven Architecture on enterprise-level development Describe frameworks and components, the process by which they are developed, and their impact on system development Systems Analysis and Design in a Changing World, 4th Edition 3 16 Overview The IS discipline is dynamic and always changing More complex system requirements have necessitated a whole new set of tools The Unified Process (UP) Radical, adaptive approaches, including Agile Development, Extreme Programming, and Scrum Model-Driven Architecture for enterprise-level systems Object frameworks and components to increase productivity and quality Systems Analysis and Design in a Changing World, 4th Edition 4 16 Software Principles and Practices Ubiquitous computing is the current trend in our society Using computer technology in every aspect of our lives The effort to develop current solutions is demanding Current trends in modeling and development processes use five important principles Systems Analysis and Design in a Changing World, 4th Edition 5 16 Software Principles and Practices (continued) Abstraction Process of extracting core principles from a set of facts or statement Example: Metamodels describe the characteristics of another model Models and modeling An abstraction of something in the real world, representing a particular set of properties Systems Analysis and Design in a Changing World, 4th Edition 6 16 Software Principles and Practices (continued) Patterns Standard solutions to a given problem or templates that can be applied to a problem Reuse Building standard solutions and components that can be used over and over again Methodologies A process—including the rules, guidelines, and techniques—that defines how systems are built Systems Analysis and Design in a Changing World, 4th Edition 7 16 Adaptive Approaches to Development Opposite end of spectrum from predictive approaches (recall Chapter 2) Allow Use for uncertainty empirical controls, not predictive controls Describe processes that are variable and unpredictable Monitor progress and make corrections on the fly Systems Analysis and Design in a Changing World, 4th Edition 8 Adaptive Approaches to Development— Characteristics 16 Less emphasis on up-front analysis, design, and documentation More focus on incremental development More user involvement in project teams Reduced detailed planning Used for near-term work phases only Tightly control schedules by fitting work into discrete time boxes More use of small work teams that are selforganizing Systems Analysis and Design in a Changing World, 4th Edition 9 16 The Unified Process (UP) Object-oriented system development methodology (system development process) Offered by Rational/IBM, UP developed by Booch, Rumbaugh, and Jacobson UP should be tailored to organizational and project needs Highly iterative life cycle Project will be use-case driven and modeled using UML Systems Analysis and Design in a Changing World, 4th Edition 10 16 The Unified Process Life Cycle UP life cycle Includes four phases which consist of iterations Iterations are “mini-projects” Inception – develop and refine system vision – define requirements and design and implement core architecture Elaboration – continue design and implementation of routine, less risky parts Construction Transition – move the system into operational mode Systems Analysis and Design in a Changing World, 4th Edition 11 16 The Unified Process Life Cycle (Figure 16-1) Systems Analysis and Design in a Changing World, 4th Edition 12 16 UP Phases and Objectives (Figure 16-2) Systems Analysis and Design in a Changing World, 4th Edition 13 16 The UP Disciplines UP defines disciplines used within each phase – set of functionally related development activities Discipline Each iteration includes activities from all disciplines in each discipline produce artifacts – models, documents, source code, and executables Activities Learning CIS/MIS means learning techniques from these disciplines Systems Analysis and Design in a Changing World, 4th Edition 14 16 The UP Disciplines (continued) Six main UP development disciplines Business modeling, requirements, design, implementation, testing, and deployment Three additional support disciplines Project management, configuration and change management, and environment Systems Analysis and Design in a Changing World, 4th Edition 15 UP Disciplines Used in Varying Amounts in 16 Each Iteration (Figure 16-3) Systems Analysis and Design in a Changing World, 4th Edition 16 UP Life Cycle Model 16 Showing Phases, Iterations, and Disciplines (Figure 16-4) Systems Analysis and Design in a Changing World, 4th Edition 17 The Agile Development Philosophy and Modeling Agile 16 Development A philosophy and set of guidelines for developing software in an unknown, rapidly changing environment agility – being able to change direction rapidly, even in the middle of a project Requires Agile Modeling A philosophy about how to build models, some of which are formal and detailed and others are sketchy and minimal Systems Analysis and Design in a Changing World, 4th Edition 18 The Agile Development Philosophy and Values Responding 16 to change over following a plan An agile project is chaordic – both chaotic and ordered Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Systems Analysis and Design in a Changing World, 4th Edition 19 Adaptive Methodologies Using Agile Modeling (Figure 16-5) Systems Analysis and Design in a Changing World, 4th Edition 16 20 16 Agile Modeling Principles AM is about doing the right kind of modeling at the right level of detail for the right purposes Use models as a means to an end instead of building models as end deliverables Does not dictate which models to build or how formal to make those models Has basic principles to express the attitude that developers should have as they develop software Systems Analysis and Design in a Changing World, 4th Edition 21 Agile Modeling Principles (Figure 16-6) Systems Analysis and Design in a Changing World, 4th Edition 16 22 16 Agile Modeling Practices (Figure 16-7) Systems Analysis and Design in a Changing World, 4th Edition 23 16 Extreme Programming (XP) An adaptive, agile development methodology created in the mid-1990s Takes proven industry best practices and focuses on them intensely Combines those best practices (in their intense form) in a new way to produce a result that is greater than the sum of the parts Systems Analysis and Design in a Changing World, 4th Edition 24 16 XP Core Values Communication In open, frequent verbal discussions Simplicity In designing and implementing solutions Feedback On functionality, requirements, designs, and code Courage In facing choices such as throwing away bad code or standing up to a too-tight schedule Systems Analysis and Design in a Changing World, 4th Edition 25 16 Some XP Practices Planning Users develop a set of stories to describe what the system needs to do Testing Tests are written before solutions are implemented Pair programming Two programmers work together on designing, coding, and testing Simple designs “KISS” and design continuously Systems Analysis and Design in a Changing World, 4th Edition 26 16 Some XP Practices (continued) Refactoring Improving code without changing what it does Owning the code collectively Anyone can modify any piece of code Continuous Small pieces of code are integrated into the system daily or more often System integration metaphor Guides members towards a vision of the system Systems Analysis and Design in a Changing World, 4th Edition 27 16 Some XP Practices (continued) On-site Intensive user/customer interaction required Small customer releases Produce small and frequent releases to user/customer Forty-hour Project should be managed to avoid burnout Coding work week standards Follow coding standards to ensure flexibility Systems Analysis and Design in a Changing World, 4th Edition 28 16 XP Core Values and Practices (Figure 16-8) Systems Analysis and Design in a Changing World, 4th Edition 29 16 XP Project Activities System-level activities Occur once during each development project Involve creating user stories to planning releases Release-level activities Cycle multiple times – once for each release Are developed and tested in a period of no more than a few weeks or months Iteration-level activities Code and test a specific functional subset in a few days or weeks Systems Analysis and Design in a Changing World, 4th Edition 30 16 XP Development Approach (Figure 16-9) Systems Analysis and Design in a Changing World, 4th Edition 31 16 Scrum A quick, adaptive, and self-organizing development methodology Named after rugby’s system for getting an out-ofplay ball into play Responds to a current situation as rapidly and positively as possible A truly empirical process control approach to developing software Systems Analysis and Design in a Changing World, 4th Edition 32 16 Scrum Philosophy Responsive to a highly changing, dynamic environment Focuses primarily on the team level Team exerts total control over its own organization and work processes Uses a product backlog as the basic control mechanism Prioritized list of user requirements used to choose work to be done during a Scrum project Systems Analysis and Design in a Changing World, 4th Edition 33 Scrum Organization Product 16 owner The client stakeholder for whom a system is being built Maintains the product backlog list Scrum master Person in charge of a Scrum project Scrum team or teams Small group of developers Set their own goals and distribute work among themselves Systems Analysis and Design in a Changing World, 4th Edition 34 16 Scrum Practices Sprint The basic work process in Scrum A time-controlled mini-project Firm 30-day time box with a specific goal or deliverable Parts of a sprint Begins with a one-day planning session A short daily Scrum meeting to report progress Ends with a final half-day review Systems Analysis and Design in a Changing World, 4th Edition 35 16 Scrum Software Development Process (Figure 16-10) Systems Analysis and Design in a Changing World, 4th Edition 36 Project Management and Adaptive Methodologies Project time management Smaller scope and focused on each iteration Realistic work schedules Project 16 scope management Users and clients are responsible for the scope Scope control consists of controlling the number of iterations Project cost management More difficult to predict because of unknowns Systems Analysis and Design in a Changing World, 4th Edition 37 Project Management and Adaptive Methodologies (continued) Project quality management Continual testing and refactoring must be scheduled Project communication management Critical because of open verbal communication and collaborative work Project 16 risk management High-risk aspects addressed in early iterations Systems Analysis and Design in a Changing World, 4th Edition 38 Project Management and Adaptive Methodologies (continued) Project 16 human resource management Teams organize themselves Project procurement management Integrating purchased elements into the overall project Verifying quality of components Satisfying contractual commitments Systems Analysis and Design in a Changing World, 4th Edition 39 Model-Driven Architecture—Generalizing Solutions 16 Model-Driven Architecture (MDA) is an OMG (Object Management Group) initiative Built on the principles of abstraction, modeling, reuse, and patterns Provides companies with a framework to identify and classify all system development work being done in an enterprise MDA extracts current systems features and information and combines them into a platform independent model (PIM) Systems Analysis and Design in a Changing World, 4th Edition 40 16 Model-Driven Architecture (continued) Platform-independent model (PIM) Describes system characteristics that are not specific to any deployment diagram Uses UML Platform-specific model (PSM) Describes system characteristics that include deployment platform requirements A set of standard transformations by the OMG move a PSM to a PIM Systems Analysis and Design in a Changing World, 4th Edition 41 16 Software Development and MDA (Figure 16-11) Systems Analysis and Design in a Changing World, 4th Edition 42 Metamodels and Transitions between PIM, PSM, and Code (Figure 16-12) Systems Analysis and Design in a Changing World, 4th Edition 16 43 16 Partial Metamodel of UML Class Diagram (Figure 16-13) Systems Analysis and Design in a Changing World, 4th Edition 44 16 Object Frameworks A set of classes that are designed to be reused in a variety of programs The classes within an object framework are called foundation classes Can be organized into one or more inheritance hierarchies Application-specific classes can be derived from existing foundation classes Systems Analysis and Design in a Changing World, 4th Edition 45 16 Object Framework Types User-interface Commonly used objects within a GUI Generic data structure classes Linked lists, binary trees, and so on, and related processing operations Relational database interface classes Classes to create and perform operations on tables Classes classes specific to an application area For use in a specific industry or application type Systems Analysis and Design in a Changing World, 4th Edition 46 16 Impact on Design and Implementation Frameworks must be chosen early in the project Systems design must conform to specific assumptions about application program structure and operation that the framework imposes Design and development personnel must be trained to use a framework effectively Multiple frameworks might be required, necessitating early compatibility and integration testing Systems Analysis and Design in a Changing World, 4th Edition 47 16 Components Software modules that are fully assembled and ready to use Have well-defined interfaces to connect them to clients or other components Reusable packages of executable code Public interfaces and encapsulated implementation Standardized and interchangeable Updating a single component does not require relinking, recompiling, and redistributing an entire application Systems Analysis and Design in a Changing World, 4th Edition 48 16 Component Standards and Infrastructure Interoperability of components requires standards to be developed and readily available Components might also require standard support infrastructure Software components have more flexibility when they can rely on standard infrastructure services to find other components Networking standards are required for components in different locations Systems Analysis and Design in a Changing World, 4th Edition 49 16 CORBA and COM+ CORBA (Common Object Request Broker Architecture) is a standard for software component connection and interaction developed by the OMG An object request broker (ORB) provides component directory and communication services The Internet Inter-ORB Protocol (IIOP) is used to communicate among objects and ORBs Component Object Model Plus (COM+) is a standard for software component connection and interaction developed by Microsoft Systems Analysis and Design in a Changing World, 4th Edition 50 16 Enterprise JavaBeans Part of the Java programming language’s extensive object framework (JDK) A JavaBean can execute on a server and communicate with clients and other components using CORBA A JavaBean implements the required component methods and follows the required naming conventions of the JavaBean standard Platform independent Systems Analysis and Design in a Changing World, 4th Edition 51 16 Components and the Development Life Cycle Component purchase and reuse is a viable approach to speeding completion of a system Purchased components can form all or part of a newly developed or re-implemented system Components can be designed in-house and deployed in a newly developed or re-implemented system Systems Analysis and Design in a Changing World, 4th Edition 52 Using Purchased Components— Implications 16 Standards and support software of purchased components must become part of the technical requirements definition A component’s technical support requirements restrict the options considered during software architectural design Systems Analysis and Design in a Changing World, 4th Edition 53 16 Monitoring System Performance Examine component-based designs to estimate network traffic patterns and demands on computer hardware Examine existing server capacity and network infrastructure to determine their ability to accommodate communication among components Upgrade network and server capacity prior to development and testing Systems Analysis and Design in a Changing World, 4th Edition 54 16 Monitoring System Performance (continued) Test system performance during development and make any necessary adjustments Continuously monitor system performance after deployment to detect emerging problems Redeploy components, upgrade server capacity, and upgrade network capacity to reflect changing conditions Systems Analysis and Design in a Changing World, 4th Edition 55 16 Services New method of software reuse enabled by Internet—external services identified and used for applications Called Web services and service-oriented architecture (SOA) Microsoft .NET is service standard based on SOAP Java 2 Web Services (J2WS) is service standard for services in Java Systems Analysis and Design in a Changing World, 4th Edition 56 16 Component Communication Using SOAP (Figure 16-14) Systems Analysis and Design in a Changing World, 4th Edition 57 16 Summary Adaptive development methodologies Unified Process (UP) Agile Modeling and Agile Development Flexibility Extreme Programming (XP) Tests in an unpredictable business world are written first; programmers work in pairs Scrum Defines a specific goal that can be completed within four weeks Systems Analysis and Design in a Changing World, 4th Edition 58 16 Summary (continued) Model-Driven Architecture (MDA) Provides techniques for large organizations to integrate all software and all software development across the entire enterprise Software reuse is a fundamental approach to rapid development Object frameworks provide a means of reusing existing software through inheritance Components are units of reusable executable code that behave as distributed objects Systems Analysis and Design in a Changing World, 4th Edition 59