changing world, fourth edition · 2007-05-15 · (object management group) initiative built on the...
TRANSCRIPT
16Systems Analysis and Design in a Changing World, Fourth Edition
16
Systems Analysis and Design in a Changing World, 4th Edition 2
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
16
Systems Analysis and Design in a Changing World, 4th Edition 3
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
16
Systems Analysis and Design in a Changing World, 4th Edition 4
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
16
Systems Analysis and Design in a Changing World, 4th Edition 5
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
16
Systems Analysis and Design in a Changing World, 4th Edition 6
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
16
Systems Analysis and Design in a Changing World, 4th Edition 7
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
16
Systems Analysis and Design in a Changing World, 4th Edition 8
Adaptive Approaches to Development
� Opposite end of spectrum from predictive approaches (recall Chapter 2)
� Allow for uncertainty
� Use empirical controls, not predictive controls
� Describe processes that are variable and unpredictable
� Monitor progress and make corrections on the fly
16
Systems Analysis and Design in a Changing World, 4th Edition 9
Adaptive Approaches to Development—Characteristics
� 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 self-organizing
16
Systems Analysis and Design in a Changing World, 4th Edition 10
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
16
Systems Analysis and Design in a Changing World, 4th Edition 11
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
� Elaboration – define requirements and design and implement core architecture
� Construction – continue design and implementation of routine, less risky parts
� Transition – move the system into operational mode
16
Systems Analysis and Design in a Changing World, 4th Edition 12
The Unified Process Life Cycle (Figure 16-1)
16
Systems Analysis and Design in a Changing World, 4th Edition 13
UP Phases and Objectives (Figure 16-2)
16
Systems Analysis and Design in a Changing World, 4th Edition 14
The UP Disciplines
� UP defines disciplines used within each phase
� Discipline – set of functionally related development activities
� Each iteration includes activities from all disciplines
� Activities in each discipline produce artifacts –models, documents, source code, and executables
� Learning CIS/MIS means learning techniques from these disciplines
16
Systems Analysis and Design in a Changing World, 4th Edition 15
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
16
Systems Analysis and Design in a Changing World, 4th Edition 16
UP Disciplines Used in Varying Amounts in Each Iteration (Figure 16-3)
16
Systems Analysis and Design in a Changing World, 4th Edition 17
UP Life Cycle Model Showing Phases, Iterations, and Disciplines (Figure 16-4)
16
Systems Analysis and Design in a Changing World, 4th Edition 18
The Agile Development Philosophy and Modeling
� Agile Development
� A philosophy and set of guidelines for developing software in an unknown, rapidly changing environment
�Requires agility – being able to change direction rapidly, even in the middle of a project
� Agile Modeling
� A philosophy about how to build models, some of which are formal and detailed and others are sketchy and minimal
16
Systems Analysis and Design in a Changing World, 4th Edition 19
The Agile Development Philosophy and Values
� Responding 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
16
Systems Analysis and Design in a Changing World, 4th Edition 20
Adaptive Methodologies Using Agile Modeling (Figure 16-5)
16
Systems Analysis and Design in a Changing World, 4th Edition 21
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
16
Systems Analysis and Design in a Changing World, 4th Edition 22
Agile Modeling Principles (Figure 16-6)
16
Systems Analysis and Design in a Changing World, 4th Edition 23
Agile Modeling Practices (Figure 16-7)
16
Systems Analysis and Design in a Changing World, 4th Edition 24
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
16
Systems Analysis and Design in a Changing World, 4th Edition 25
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
16
Systems Analysis and Design in a Changing World, 4th Edition 26
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
16
Systems Analysis and Design in a Changing World, 4th Edition 27
Some XP Practices (continued)
� Refactoring
� Improving code without changing what it does
� Owning the code collectively
� Anyone can modify any piece of code
� Continuous integration
� Small pieces of code are integrated into the system daily or more often
� System metaphor
� Guides members towards a vision of the system
16
Systems Analysis and Design in a Changing World, 4th Edition 28
Some XP Practices (continued)
� On-site customer
� Intensive user/customer interaction required
� Small releases
� Produce small and frequent releases to user/customer
� Forty-hour work week
� Project should be managed to avoid burnout
� Coding standards
� Follow coding standards to ensure flexibility
16
Systems Analysis and Design in a Changing World, 4th Edition 29
XP Core Values and Practices (Figure 16-8)
16
Systems Analysis and Design in a Changing World, 4th Edition 30
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
16
Systems Analysis and Design in a Changing World, 4th Edition 31
XP Development
Approach(Figure 16-9)
16
Systems Analysis and Design in a Changing World, 4th Edition 32
Scrum
� A quick, adaptive, and self-organizing development methodology
� Named after rugby’s system for getting an out-of-play ball into play
� Responds to a current situation as rapidly and positively as possible
� A truly empirical process control approach to developing software
16
Systems Analysis and Design in a Changing World, 4th Edition 33
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
16
Systems Analysis and Design in a Changing World, 4th Edition 34
Scrum Organization
� Product 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
16
Systems Analysis and Design in a Changing World, 4th Edition 35
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
16
Systems Analysis and Design in a Changing World, 4th Edition 36
Scrum Software Development Process (Figure 16-10)
16
Systems Analysis and Design in a Changing World, 4th Edition 37
Project Management and Adaptive Methodologies
� Project time management
� Smaller scope and focused on each iteration
� Realistic work schedules
� Project 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
16
Systems Analysis and Design in a Changing World, 4th Edition 38
Project Management and Adaptive Methodologies (continued)
� Project communication management
� Critical because of open verbal communication and collaborative work
� Project quality management
� Continual testing and refactoring must be scheduled
� Project risk management
� High-risk aspects addressed in early iterations
16
Systems Analysis and Design in a Changing World, 4th Edition 39
Project Management and Adaptive Methodologies (continued)
� Project human resource management
� Teams organize themselves
� Project procurement management
� Integrating purchased elements into the overall project
� Verifying quality of components
� Satisfying contractual commitments
16
Systems Analysis and Design in a Changing World, 4th Edition 40
Model-Driven Architecture—Generalizing Solutions
� 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)
16
Systems Analysis and Design in a Changing World, 4th Edition 41
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
16
Systems Analysis and Design in a Changing World, 4th Edition 42
Software Development
and MDA (Figure 16-11)
16
Systems Analysis and Design in a Changing World, 4th Edition 43
Metamodels and Transitions between PIM, PSM, and Code (Figure 16-12)
16
Systems Analysis and Design in a Changing World, 4th Edition 44
Partial Metamodel of UML Class Diagram (Figure 16-13)
16
Systems Analysis and Design in a Changing World, 4th Edition 45
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
16
Systems Analysis and Design in a Changing World, 4th Edition 46
Object Framework Types
� User-interface classes
� 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 specific to an application area
� For use in a specific industry or application type
16
Systems Analysis and Design in a Changing World, 4th Edition 47
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
16
Systems Analysis and Design in a Changing World, 4th Edition 48
Components
� Software modules that are fully assembled and ready to use
� Reusable packages of executable code
� Have well-defined interfaces to connect them to clients or other components
� Public interfaces and encapsulated implementation
� Standardized and interchangeable
� Updating a single component does not require relinking, recompiling, and redistributing an entire application
16
Systems Analysis and Design in a Changing World, 4th Edition 49
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
16
Systems Analysis and Design in a Changing World, 4th Edition 50
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
16
Systems Analysis and Design in a Changing World, 4th Edition 51
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
16
Systems Analysis and Design in a Changing World, 4th Edition 52
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
16
Systems Analysis and Design in a Changing World, 4th Edition 53
Using Purchased Components—Implications
� 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
16
Systems Analysis and Design in a Changing World, 4th Edition 54
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
16
Systems Analysis and Design in a Changing World, 4th Edition 55
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
16
Systems Analysis and Design in a Changing World, 4th Edition 56
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
16
Systems Analysis and Design in a Changing World, 4th Edition 57
Component Communication Using SOAP (Figure 16-14)
16
Systems Analysis and Design in a Changing World, 4th Edition 58
Summary
� Adaptive development methodologies
� Unified Process (UP)
� Agile Modeling and Agile Development
�Flexibility in an unpredictable business world
� Extreme Programming (XP)
�Tests are written first; programmers work in pairs
� Scrum
�Defines a specific goal that can be completed within four weeks
16
Systems Analysis and Design in a Changing World, 4th Edition 59
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