37
CM602: Effective CM602: Effective Systems Systems Development Development Principles of Implementation Principles of Implementation Components Components Component and Deployment Component and Deployment Diagrams Diagrams

CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Embed Size (px)

Citation preview

Page 1: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

CM602: Effective CM602: Effective Systems DevelopmentSystems Development

Principles of ImplementationPrinciples of Implementation

ComponentsComponents

Component and Deployment DiagramsComponent and Deployment Diagrams

Page 2: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Learning OutcomesLearning Outcomes This week we look at general principles of This week we look at general principles of

implementation and the specific tools and implementation and the specific tools and techniques that can be used in UML for techniques that can be used in UML for implementationimplementation

At the end you should be able to explain: At the end you should be able to explain: what’s involved in implementation and the what’s involved in implementation and the

various implementation strategies that could be various implementation strategies that could be adopted.adopted.

the role of components in UMLthe role of components in UML the role of UML component and deployment the role of UML component and deployment

diagrams in implementation.diagrams in implementation.

Page 3: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

OutlineOutline

What’s involved in implementation & the What’s involved in implementation & the various implementation strategies that could various implementation strategies that could be adopted.be adopted.

The role of components in UMLThe role of components in UMLThe role of UML component and deployment The role of UML component and deployment

diagrams in implementation.diagrams in implementation.

Page 4: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Why is implementation Why is implementation important?important?

Where all the analysis and design issues Where all the analysis and design issues and ideas come togetherand ideas come together

Integrates analysis and design in codeIntegrates analysis and design in code Links all aspects of system together into a Links all aspects of system together into a

live environmentlive environment

Page 5: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Objectives in ImplementationObjectives in Implementation

Obtain an operational business information Obtain an operational business information systemsystem

Meet all the agreed user requirementsMeet all the agreed user requirements Gain user / client acceptanceGain user / client acceptance

Acceptance Acceptance ==> > PaymentPayment

Provide full documentationProvide full documentation Ensure appropriate support during handoverEnsure appropriate support during handover Train usersTrain users

Page 6: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

UML and implementationUML and implementation In UML the structural and behavioural aspects In UML the structural and behavioural aspects

are represented as they are builtare represented as they are built Specific UML techniquesSpecific UML techniques

component diagramscomponent diagrams deployment diagramsdeployment diagrams

Other UML aspects to consider in implementationOther UML aspects to consider in implementation Software toolsSoftware tools Coding and documentation standardsCoding and documentation standards Software testingSoftware testing Data conversionData conversion User trainingUser training Strategy for implementation (changeover)Strategy for implementation (changeover)

Page 7: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Strategies in implementationStrategies in implementationStrategies in implementationStrategies in implementationPossible strategies to considerPossible strategies to consider

DirectDirectParallelParallelPhasedPhasedPilotPilot

Serious consideration as to which strategy to Serious consideration as to which strategy to choosechoosetechnicaltechnicalOrganisational and Human ResourcesOrganisational and Human Resourcestime constraintstime constraints

Page 8: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Direct implementationDirect implementationDirect implementationDirect implementation

old system old system discontinued and new discontinued and new started immediatelystarted immediately

advantageadvantage cheaper than other strategiescheaper than other strategies users forced to bite the bulletusers forced to bite the bullet

disadvantagesdisadvantages much pressure on testingmuch pressure on testing no old system to fall back onno old system to fall back on can panic userscan panic users Time

OldSystem

NewSystem

Page 9: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Parallel implementationParallel implementationParallel implementationParallel implementationold and new operated old and new operated

concurrently for a period of concurrently for a period of timetime

advantagesadvantagessafesafeold system to fall back onold system to fall back onusers less traumatisedusers less traumatised

disadvantagesdisadvantagesexpensiveexpensivestretch personnel resourcesstretch personnel resourcesusers slow to adopt new users slow to adopt new

systemsystemTime

OldSystem

NewSystem

Page 10: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Phased implementationPhased implementationPhased implementationPhased implementation new system introduced a new system introduced a

module at a time, usually by module at a time, usually by logical groupinglogical grouping

old system is run for all but old system is run for all but the new modulethe new module

advantagesadvantages divide and conquerdivide and conquer users gain confidenceusers gain confidence

disadvantagesdisadvantages build interfaces between old and build interfaces between old and

new modulesnew modules old system might not be group in old system might not be group in

modulesmodules

Time

OldSystem

New System modules, old systemdecreases

Page 11: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Pilot implementationPilot implementationPilot implementationPilot implementation

similar to Phasedsimilar to Phased implementation may implementation may

be undertaken in one be undertaken in one location or geographic location or geographic sitesite

Time

OldSystem

New System modules, old systemdecreases

Page 12: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Use of implementation contractsUse of implementation contractsUse of implementation contractsUse of implementation contracts

performance goalsperformance goalstolerancestolerancesestimated information system lifeestimated information system lifemaintenance expectationsmaintenance expectationsfuture changesfuture changes

Page 13: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Moving to acceptanceMoving to acceptanceMoving to acceptanceMoving to acceptance

plan maintenance and support of new plan maintenance and support of new systemsystem

plan trainingplan trainingcreation of Service Level Agreementcreation of Service Level Agreementensure all documentation is completeensure all documentation is completeproduce details for disaster recovery planproduce details for disaster recovery planagree what agree what isn’tisn’t to be fixed to be fixedfinal acceptance meetingfinal acceptance meeting

Page 14: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Review – The SystemReview – The SystemCost/benefit analysisCost/benefit analysis

Has it delivered?Has it delivered?Tangible, intangibleTangible, intangible

Are functional & non-functional Are functional & non-functional requirements met?requirements met?

Are users satisfied with the system?Are users satisfied with the system?Problems, software and otherProblems, software and otherChange/enhancement requests & plansChange/enhancement requests & plans

Page 15: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Review - The Project / ProcessReview - The Project / Process

Lessons learnedLessons learnedWere targets met?Were targets met?Were estimates accurate?Were estimates accurate?Metrics – record actual experience to help Metrics – record actual experience to help

future estimatingfuture estimating

Page 16: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Activity 1: Problems?Activity 1: Problems?

What can go wrong during What can go wrong during implementation?implementation?

When would you plan a post-When would you plan a post-implementation review, and why? Give implementation review, and why? Give some examples to support your answer.some examples to support your answer.

Page 17: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

What can go wrong during What can go wrong during implementation?implementation?

What can go wrong during What can go wrong during implementation?implementation?

databases become unreliabledatabases become unreliableprograms go live with operational errorsprograms go live with operational errorsuser resistanceuser resistance

avoidanceavoidancehostilityhostilitysabotagesabotage

users find system too complexusers find system too complexall user requirements not metall user requirements not methardware doesn’t perform as specifiedhardware doesn’t perform as specifieduser training is insufficientuser training is insufficient

Page 18: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

When would you plan a post-When would you plan a post-implementation review?implementation review?

Start planning early! Certainly before Start planning early! Certainly before implementation.implementation. You may need to collect comparative data.You may need to collect comparative data. You will need to secure involvement of users etc.You will need to secure involvement of users etc.

For example,For example, Time savings – how long did it take before?Time savings – how long did it take before? Costs – do you have accurate costs for comparison?Costs – do you have accurate costs for comparison? Response improvements – what was response time Response improvements – what was response time

before?before?

Page 19: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

OutlineOutline

What’s involved in implementation & the What’s involved in implementation & the various implementation strategies that could various implementation strategies that could be adopted.be adopted.

The role of components in UMLThe role of components in UMLThe role of UML component and deployment The role of UML component and deployment

diagrams in implementation.diagrams in implementation.

Page 20: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

ComponentsComponents

In general, a piece of software with In general, a piece of software with defined interfaces.defined interfaces.

Internals are hiddenInternals are hiddenComponents are (potentially) reusable and Components are (potentially) reusable and

replaceable replaceable Growing market in component softwareGrowing market in component softwareComponent-driven development Component-driven development

increasingly popularincreasingly popular

Page 21: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Components in UMLComponents in UML

In UML1, components were strictly In UML1, components were strictly physical – units of implementation.physical – units of implementation.

In UML 2, they represent a logical unit, In UML 2, they represent a logical unit, and the concept of an and the concept of an artifactartifact now now represents physical units such as represents physical units such as packages of code. packages of code.

In most non-UML contexts, the physical In most non-UML contexts, the physical view predominates.view predominates.

Page 22: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Component – a UML 2 definition.Component – a UML 2 definition.

“ “A modular part of a system design that A modular part of a system design that hides its implementation behind a set of hides its implementation behind a set of external interfaces. Within a system, external interfaces. Within a system, components satisfying the same interfaces components satisfying the same interfaces may be substituted freely.” may be substituted freely.”

Rumbaugh et al. (2005)Rumbaugh et al. (2005)

Page 23: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

OutlineOutline

What’s involved in implementation & the What’s involved in implementation & the various implementation strategies that could various implementation strategies that could be adopted.be adopted.

The role of components in UMLThe role of components in UMLThe role of UML component and deployment The role of UML component and deployment

diagrams in implementation.diagrams in implementation.

Page 24: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Implementation and UMLImplementation and UML Component diagramsComponent diagrams

show dependencies between software components in show dependencies between software components in systemsystem

can make use of stereotypes to show dependencies that can make use of stereotypes to show dependencies that are specific to particular languagesare specific to particular languages

can show internal structure of componentscan show internal structure of components Deployment diagramsDeployment diagrams

used to show the configuration of run-time processing used to show the configuration of run-time processing elements and the software artifacts that are located on elements and the software artifacts that are located on themthem

Page 25: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Component DiagramComponent Diagram

Productionscheduler

Staff planner

PlanningScheduling

Productionscheduler

Staff planner

PlanningScheduling

Required interface Provided interface

Page 26: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Notation of Notation of Component DiagramsComponent Diagrams

Component with portsComponent with ports Indicates that the component delegates Indicates that the component delegates

responsibility for the behaviour of that responsibility for the behaviour of that interface to a subcomponentinterface to a subcomponent

Spooler

PrinterDriverSpooling

Spooler

PrinterDriverSpooling

© Bennett, McRobb and Farmer 2005

Page 27: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Component with portsComponent with portsShows delegated responsibilityShows delegated responsibility

Notation of Notation of Component DiagramsComponent Diagrams

Spooler

:PrintManager

:File

PrinterDriverSpooling

PrintSpooling

Printing

«delegate»«delegate»

Spooler

:PrintManager

:File

PrinterDriverSpooling

PrintSpooling

Printing

«delegate»«delegate»

© Bennett, McRobb and Farmer 2005

Page 28: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Notation ofNotation ofDeployment DiagramsDeployment Diagrams

NodesNodes rectangular prismsrectangular prisms represent processors, devices or other represent processors, devices or other

resourcesresourcesCommunication AssociationsCommunication Associations

lines between nodeslines between nodes represent communication between nodesrepresent communication between nodescan be stereotypedcan be stereotyped

ArtifactsArtifacts

Page 29: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Notation ofNotation ofDeployment DiagramsDeployment Diagrams

swift:PC aardvark:DECAlpha«TCP/IP»

© Bennett, McRobb and Farmer 2005

Page 30: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

ArtifactsArtifacts

Actual real world elements of the systemActual real world elements of the systemSoftware, databases, files, web pages…Software, databases, files, web pages…

Represented with Represented with «artifact» or«artifact» or

Can manifest components Can manifest components

HR.jar

«manifest»«manifest»Human

Resources

Page 31: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Deployment DiagramDeployment Diagram

PC Client

«RMI»

Server

AgateServer.jarAgateClient.jar «RMI»

© Bennett, McRobb and Farmer 2005

Page 32: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Notation ofNotation ofDeployment DiagramsDeployment Diagrams

Nodes can be Nodes can be stereotypedstereotyped

Execution environments Execution environments represent application represent application containerscontainers

Deployment Deployment specifications describe specifications describe the configuration of the configuration of artefactsartefacts

© Bennett, McRobb and Farmer 2005

«device»:AppServer

«executionenv»:J2EEContainer

AgateServer.war

«deploymentspec»serverconfig.xml

«device»:AppServer

«executionenv»:J2EEContainer

AgateServer.war

«deploymentspec»serverconfig.xml

Page 33: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Activity 2Activity 2 A Human Resource System uses artifacts as A Human Resource System uses artifacts as

shown. Draw a deployment diagram.shown. Draw a deployment diagram.

Communication with the database is via JDBC, Communication with the database is via JDBC, so HR.jar needs to use jdbc.jar – show a so HR.jar needs to use jdbc.jar – show a dependency.dependency.

PC ClientPC Client DB serverDB server

HR.jarHR.jar JDBC.jarJDBC.jar

HR databaseHR database

Page 34: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

Activity 2Activity 2

© Bennett, McRobb and Farmer 2005

PC Client Database Server

HR.jar«JDBC»

jdbc.jar

HRDB

Page 35: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

SummarySummary

Strategies for implementationStrategies for implementation Implementation considerations & tasksImplementation considerations & tasks ReviewReview UML support for implementationUML support for implementation

Component DiagramsComponent DiagramsDeployment DiagramsDeployment Diagrams

Page 36: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

ReadingReading

Bennett et al. (2005), Chapter 19. Bennett et al. (2005), Chapter 19. (Or 2002 edn. for UML 1.4.)(Or 2002 edn. for UML 1.4.)

Covers implementation tasks, Covers implementation tasks, strategies, diagramsstrategies, diagrams

Page 37: CM602: Effective Systems Development Principles of Implementation Components Component and Deployment Diagrams

ReferencesReferences

Bennett, S., McRobb, S. & Farmer, R. Bennett, S., McRobb, S. & Farmer, R. (2005), (2005), Object-Oriented Systems Analysis Object-Oriented Systems Analysis and Design using UMLand Design using UML, , 33rdrd edn. edn., McGraw-, McGraw-Hill.Hill.

Rumbaugh, J., Jacobson, I. & Booch, G. Rumbaugh, J., Jacobson, I. & Booch, G. (2005), (2005), The Unified Modelling Language The Unified Modelling Language Reference Manual, 2Reference Manual, 2ndnd edn. edn., Addison-, Addison-Wesley.Wesley.