1 Object-Oriented Analysis and Design with the Unified Process Deployment Activities to make a new...
-
Upload
wilfrid-cunningham -
Category
Documents
-
view
217 -
download
0
Transcript of 1 Object-Oriented Analysis and Design with the Unified Process Deployment Activities to make a new...
1Object-Oriented Analysis and Design with the Unified Process
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
2Object-Oriented Analysis and Design with the Unified Process
Figure 13-13Deployment discipline activities
3Object-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
4Object-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
5Object-Oriented Analysis and Design with the Unified Process
Figure 13-15Automated component deployment with Oracle Developer
6Object-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
7Object-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
9Object-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
10Object-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
11Object-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
12Object-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
13Object-Oriented Analysis and Design with the Unified Process
Figure 9-6Pattern descriptionfor the controller pattern
14Object-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
15Object-Oriented Analysis and Design with the Unified Process
Figure 9-7 Classification of design patterns
16Object-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
18Object-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
20Object-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
22Object-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
23Object-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
24Object-Oriented Analysis and Design with the Unified Process
Figure 14-1Adaptive methodologies using Agile Modeling
26Object-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
27Object-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
28Object-Oriented Analysis and Design with the Unified Process
Figure 14-4XP core values and practices
29Object-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
30Object-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
31Object-Oriented Analysis and Design with the Unified Process
Figure 14-5The XP development approach
32Object-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)
33Object-Oriented Analysis and Design with the Unified Process
Figure 14-7Software development and MDA
34Object-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
35Object-Oriented Analysis and Design with the Unified Process
Figure 14-8Metamodels and transitions between PIM, PSM, and code
36Object-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
37Object-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
38Object-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
39Object-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
40Object-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
41Object-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
42Object-Oriented Analysis and Design with the Unified Process
Figure 14-10Component communication using SOAP
43Object-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