Upload
cuthbert-holt
View
225
Download
2
Embed Size (px)
Citation preview
CM602: Effective CM602: Effective Systems DevelopmentSystems Development
Principles of ImplementationPrinciples of Implementation
ComponentsComponents
Component and Deployment DiagramsComponent 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.
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.
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
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
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)
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
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
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
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
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
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
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
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
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
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.
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
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?
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.
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
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.
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)
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.
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
Component DiagramComponent Diagram
Productionscheduler
Staff planner
PlanningScheduling
Productionscheduler
Staff planner
PlanningScheduling
Required interface Provided interface
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
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
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
Notation ofNotation ofDeployment DiagramsDeployment Diagrams
swift:PC aardvark:DECAlpha«TCP/IP»
© Bennett, McRobb and Farmer 2005
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
Deployment DiagramDeployment Diagram
PC Client
«RMI»
Server
AgateServer.jarAgateClient.jar «RMI»
© Bennett, McRobb and Farmer 2005
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
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
Activity 2Activity 2
© Bennett, McRobb and Farmer 2005
PC Client Database Server
HR.jar«JDBC»
jdbc.jar
HRDB
SummarySummary
Strategies for implementationStrategies for implementation Implementation considerations & tasksImplementation considerations & tasks ReviewReview UML support for implementationUML support for implementation
Component DiagramsComponent DiagramsDeployment DiagramsDeployment 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
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.