
ef8c54ba0e27b51ae4d5d98ddf0de739.ppt
- Количество слайдов: 49
Introduction to Computer Science
Objectives ¥ Explain the Agile Development philosophy ¥ List and describe the features of Agile Modeling ¥ 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 Object-Oriented Analysis and Design with the Unified Process 2
Overview ¥ The IS discipline is dynamic and ever changing ¥ More complex system requirements have necessitated a whole new set of tools ¤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 Object-Oriented Analysis and Design with the Unified Process 3
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 in processes use five important principles Object-Oriented Analysis and Design with the Unified Process 4
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 Object-Oriented Analysis and Design with the Unified Process 5
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 Object-Oriented Analysis and Design with the Unified Process 6
Adaptive Approaches to Development ¥ Allow for uncertainty ¥ Use empirical controls ¤Describe processes that are variable and unpredictable ¤Monitor progress and make corrections on the fly ¥ Share the following characteristics ¤Less emphasis on up-front analysis, design, and documentation Object-Oriented Analysis and Design with the Unified Process 7
Adaptive Approaches to Development (continued) ¤More focus on incremental development ¤More user involvement in project teams ¤Reduced detailed planning ◘ Used for near-term work phases only ¤Tightly controlled schedules by fitting work into discrete time boxes ¤More use of small work teams that are selforganizing Object-Oriented Analysis and Design with the Unified Process 8
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 sketchy and minimal Object-Oriented Analysis and Design with the Unified Process 9
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 Object-Oriented Analysis and Design with the Unified Process 10
Figure 14 -1 Adaptive methodologies using Agile Modeling Object-Oriented Analysis and Design with the Unified Process 11
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 attitude that developers should have as they develop software (Figure 14 -2) Object-Oriented Analysis and Design with the Unified Process 12
Figure 14 -2 Agile Modeling principles Object-Oriented Analysis and Design with the Unified Process 13
The heart of AM is in its modeling practices, which give the practitioner specific modeling techniques Figure 14 -3 Agile Modeling practices Object-Oriented Analysis and Design with the Unified Process 14
Extreme Programming ¥ An adaptive, agile development methodology created in the mid-1990 s ¥ Extreme programming ¤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 Object-Oriented Analysis and Design with the Unified Process 15
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 Object-Oriented Analysis and Design with the Unified Process 16
Figure 14 -4 XP core values and practices Object-Oriented Analysis and Design with the Unified Process 17
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 Object-Oriented Analysis and Design with the Unified Process 18
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 Object-Oriented Analysis and Design with the Unified Process 19
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 Object-Oriented Analysis and Design with the Unified Process 20
Figure 14 -5 The XP development approach Object-Oriented Analysis and Design with the Unified Process 21
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 Object-Oriented Analysis and Design with the Unified Process 22
Figure 14 -6 Scrum software development process Object-Oriented Analysis and Design with the Unified Process 23
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 Object-Oriented Analysis and Design with the Unified Process 24
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 Object-Oriented Analysis and Design with the Unified Process 25
Scrum Practices ¥ Sprint ¤The basic work process in Scrum ¤A time-controlled miniproject ¤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 Object-Oriented Analysis and Design with the Unified Process 26
Project Management and 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 Object-Oriented Analysis and Design with the Unified Process 27
Project Management and 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 addresses in early iterations Object-Oriented Analysis and Design with the Unified Process 28
Project Management and Methodologies (continued) ¥ Project human resource management ¤Teams organize themselves ¥ Project procurement management ¤Integrating purchased elements into the overall project ¤Verifying quality or components ¤Satisfying contractual commitments Object-Oriented Analysis and Design with the Unified Process 29
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) Object-Oriented Analysis and Design with the Unified Process 30
Figure 14 -7 Software development and MDA Object-Oriented Analysis and Design with the Unified Process 31
Model-driven Architecture (continued) ¥ Platform-independent model (PIM) ¤Describes system characteristics 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 Object-Oriented Analysis and Design with the Unified Process 32
Figure 14 -8 Metamodels and transitions between PIM, PSM, and code Object-Oriented Analysis and Design with the Unified Process 33
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 Object-Oriented Analysis and Design with the Unified Process 34
Object Framework Types ¥ User-interface classes ¤Commonly used objects within a GUI ¥ Generic data structure classes ¤Linked lists, binary trees, etc. , 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 Object-Oriented Analysis and Design with the Unified Process 35
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 may be required, necessitating early compatibility and integration testing Object-Oriented Analysis and Design with the Unified Process 36
Components ¥ Software modules that are fully assembled and ready to use ¤Reusable packages of executable code ¥ Has well-defined interfaces to connect it to clients or other components ¤Public interface and encapsulated implementation ¥ Standardized and interchangeable ¤Updating a single component does not require relinking, recompiling, and redistributing an entire application Object-Oriented Analysis and Design with the Unified Process 37
Component Standards and Infrastructure ¥ Interoperability of components requires standards to be developed and readily available ¥ Components may 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 Object-Oriented Analysis and Design with the Unified Process 38
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 Object-Oriented Analysis and Design with the Unified Process 39
Enterprise Java. Beans ¥ Part of the Java programming language’s extensive object framework (JDK) ¥ A Java. Bean that can execute on a server and communicate with clients and other components using CORBA ¤A Java. Bean implements the required component methods and follows the required naming conventions of the Java. Bean standard ¥ Platform independent Object-Oriented Analysis and Design with the Unified Process 40
SOAP and. NET ¥ Simple Object Access Protocol (SOAP) is a standard for component communication over the Internet using HTTP and XML ¤An open standard ¤Does not have the infrastructure requirements or proprietary technology of CORBA and COM+ ¤Adopted by Microsoft as the basis of its. NET distributed software platform ¤Used for Web services Object-Oriented Analysis and Design with the Unified Process 41
Figure 14 -10 Component communication using SOAP Object-Oriented Analysis and Design with the Unified Process 42
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 reimplemented system ¤Components can be designed in-house and deployed in a newly developed or reimplemented system Object-Oriented Analysis and Design with the Unified Process 43
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 Object-Oriented Analysis and Design with the Unified Process 44
Using Purchased Components Implications (continued) ¥ Hardware and system software providing component services must be acquired, installed, and configured before testing begins ¥ Components and their support infrastructure must be maintained after system deployment Object-Oriented Analysis and Design with the Unified Process 45
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 Object-Oriented Analysis and Design with the Unified Process 46
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 Object-Oriented Analysis and Design with the Unified Process 47
Summary ¥ Adaptive development methodologies ¤Agile Modeling and Agile Development ◘ Flexibility in an unpredictable business world ¤Extreme Programming ◘ Tests are written first ◘ Programmers work in pairs ¤Scrum ◘ Defines a specific goal that can be completed within four weeks Object-Oriented Analysis and Design with the Unified Process 48
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 Object-Oriented Analysis and Design with the Unified Process 49