1 object-oriented analysis and design with the unified process deployment activities to make a new...

43
1 Object-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

Upload: wilfrid-cunningham

Post on 26-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

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

17Object-Oriented Analysis and Design with the Unified Process

Figure 9-8Singleton pattern template

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

19Object-Oriented Analysis and Design with the Unified Process

Figure 9-10Adapter pattern template

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

21Object-Oriented Analysis and Design with the Unified Process

Figure 9-13Observer pattern template

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

25Object-Oriented Analysis and Design with the Unified Process

Figure 14-2Agile Modeling principles

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