450 likes | 626 Views
Deployment. Activities to make a new system operational Involve many conflicting constraints Costs Need to main positive customer relations Need to support employees Logistical complexity Overall risk to the organization. Figure 13-13 Deployment discipline activities.
E N D
Deployment • Activities to make a new system operational • Involve many conflicting constraints • Costs • Need to main positive customer relations • Need to support employees • Logistical complexity • Overall risk to the organization Object-Oriented Analysis and Design with the Unified Process
Figure 13-13 Deployment discipline activities Object-Oriented Analysis and Design with the Unified Process
Acquiring Hardware and System Hardware • Application software must have a supporting infrastructure (which may already be in place) • Acquisition of an entirely new infrastructure includes • Planning • Developing a request for proposal • Evaluating results • Choosing one or more vendors • Installation and configuration Object-Oriented Analysis and Design with the Unified Process
Packaging and Installing Components • Components must be • Installed on a host server • Added to a component registry • Assigned one or more network addresses • May include XML files to store registration and access information • Developers can package and install components using development tools and utilities Object-Oriented Analysis and Design with the Unified Process
Figure 13-15 Automated component deployment with Oracle Developer Object-Oriented Analysis and Design with the Unified Process
Training Users • End users and system operators need training • End user training • Hands-on training and tutorials • Group tutorials • System operator training • Less formal • Self-study • Training materials are developed as soon as the interfaces are reasonably stable Object-Oriented Analysis and Design with the Unified Process
Converting and Initializing Data • Data needed at system startup can be obtained from • Files or databases of a system being replaced • Manual records • Files or databases of other systems in the organizations • User feedback during normal system operation • Existing databases are commonly modified for reuse in new or upgraded systems Object-Oriented Analysis and Design with the Unified Process
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
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
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
Importance of Design Patterns • Standard design templates can speed OO design • Patterns can exist at different levels of abstraction • At the most concrete level, a class definition with code • At the most abstract level, an approach to a problem • Patterns should contain five main elements • Pattern name, problem, solution, example, benefits and consequences Object-Oriented Analysis and Design with the Unified Process
Figure 9-6 Pattern description for the controller pattern Object-Oriented Analysis and Design with the Unified Process
Basic Design Patterns • The authors of Elements of Reusable Object-Oriented Software (referred to as the Gang of Four) developed a basic classification scheme for patterns (Figure 9-7) • The 23 GoF patterns are some of the most fundamental and important patterns in use • Scores of other patterns have been defined • For example, both Java and .NET have sets of enterprise patterns Object-Oriented Analysis and Design with the Unified Process
Figure 9-7 Classification of design patterns Object-Oriented Analysis and Design with the Unified Process
Singleton Pattern • For classes that must have only one instance, but need to be invoked from several classes and locations within the system • The class itself controls the creation of only one instance • A static variable of the class refers to the object that is created • A class method instantiates the object on the first call, and returns a reference to the object on subsequent calls Object-Oriented Analysis and Design with the Unified Process
Figure 9-8 Singleton pattern template Object-Oriented Analysis and Design with the Unified Process
Adaptor Pattern • Plugs an external class into a system • Converts the method calls from within the system to match the method names in the external class • A standard solution for protection from variations • Insulates the system from frequently changing classes • An interface is frequently used to specify and enforce the use of correct method names Object-Oriented Analysis and Design with the Unified Process
Figure 9-10 Adapter pattern template Object-Oriented Analysis and Design with the Unified Process
Observer pattern • Used to handle event-processing and reduce coupling • The domain class • Allows other classes to “subscribe” as listeners • “Publishes” the changes to the listeners • The windows class • Sends a reference of itself to subscribe as a listener • Implements the method to be invoked when notified • Inherits the method from the listener interface Object-Oriented Analysis and Design with the Unified Process
Figure 9-13 Observer pattern template Object-Oriented Analysis and Design with the Unified Process
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
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
Figure 14-1 Adaptive methodologies using Agile Modeling Object-Oriented Analysis and Design with the Unified Process
Figure 14-2 Agile Modeling principles Object-Oriented Analysis and Design with the Unified Process
Extreme Programming • An adaptive, agile development methodology created in the mid-1990s • 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
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
Figure 14-4 XP core values and practices Object-Oriented Analysis and Design with the Unified Process
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
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 Object-Oriented Analysis and Design with the Unified Process
Figure 14-5 The XP development approach Object-Oriented Analysis and Design with the Unified Process
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
Figure 14-7 Software development and MDA Object-Oriented Analysis and Design with the Unified Process
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
Figure 14-8 Metamodels and transitions between PIM, PSM, and code Object-Oriented Analysis and Design with the Unified Process
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
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
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
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
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
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
Figure 14-10 Component communication using SOAP Object-Oriented Analysis and Design with the Unified Process
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