程序代写 Software Design and Modelling

Software Design and Modelling
Case Study: Chauffeured Cars
“I’ve yet to see any problem, however complicated, which when you looked at it the right way didn’t become still more complicated.”

Copyright By PowCoder代写 加微信 powcoder

Introduction
• A new case study: Chauffeured Car Company
• Provide illustrative examples for architecture analysis and improvement

Client: Chauffeured Car Company which has about 30 drivers
• Bookings and Dispatch System
– Business Critical
– Bookings phone and email
– 1 – 4 Operators concurrently
• Uber-style operations encroaching on business
– Different business model
– Need to highlight differences to Customers

Client Problem Perspective
Issues with the current system
• Slow/hung, especially when customer on the phone
• When the system is unavailable, operators requiring paper/pen
• Missing functionality, e.g.
– Invoicing and reporting
– Customer Portal (Online booking, Profile, …)
• Unhelpful IT provider: Developer A
• Cost: significant overhead for status quo

Current Architecture

Investigation of Issues
Responsiveness
• Remote Desktop over internet to remote server
• Sharing of limited bandwidth: UI freezes Reliability
• Connection down → no system → paper/pen Functionality (→ Modifiability)
• Two versions of system: Version 3 (old) is written in Visual Basic 6 and Version 5 (current) is written in C# for the .Net 4 framework.
• Both versions are needed, e.g. old version is for bookings; current version is for customers management
• System not accessible to modify in current setup

Technical Issues
Technology for version 3 is dated
• need to remove dependency Database is V3 vintage
• SQL Sever is recent; but the database (schema including types, use of indexing, use of built-in validation, etc) is based on very old version
• Doesn’t use recent features for performance, reliability, …
Design of V3 and V5 elements
• Generally poor
• In particular, highly coupled

Option 1: Use Commercial Off-The-Shelf (COTS) instead • Pros: Software up & running quickly; low (starting) cost • Cons: Business differences; control of software
Option 2: Rebuild a whole new system
• Pros: built-for-purpose to meet current needs and business of the client • Cons: high cost; long delay until available
Option 3: Modify Existing (the current system)
• Pros: business transition easier; control of software • Cons: Need to find a willing developer; cost?; delay?

Planned Approach: “Take Control”
Selected Option: Modify existing → Developer identified
Issues in the current system Solution Approach
Responsiveness • Reduce the communication over the internet
• Remote Desktop over internet to remote server • Host the system locally instead
• Sharing of limited bandwidth: UI freezes
Reliability • Update networking setup • Connection down → no system → paper/pen
Modifiability • Eliminate V3 by implementing (V3-V5) in V5 • Two versions of system: V3 and V5 and V3 uses an • Make V5 accessible for updates
old technology (VB 6), but V5 is highly dependent.
Functionality • Add high priority low complexity functionality • Missing functionality, e.g., Invoicing and reporting (e.g., invoicing & reporting)
Customer Portal (Online booking, Profile, …)

Improved System: Stage 1
deployment Stage 1 Deployment
Bookings and Dispatch
+ B&D System V3 + B&D System V5
Developer A’s :Server
«executionEnvironment»
B&D :Virtual Machine
B&D DB : SQLServer
«executionEnvironment»
:Login Session
:B&D System V5
«executionEnvironment»
:Login Session
:B&D System V5

Stage 1 Summary
• Add the functionalities that were only in V3 to V5
• Modify the local environment to support running the V5 Thick Client (the system runs
locally at the client side)
• No more Visual Basic (used by V3)
• No more running two apps (Reduce coupling, increasing maintainability)
• Running locally eliminates Client lag

Improved System: Stage 1 (Remaining issue)
deployment Stage 1 Deployment
Bookings and Dispatch
+ B&D System V3 + B&D System V5
Developer A’s :Server
«executionEnvironment»
B&D :Virtual Machine
Server is deployed in Developer A’s server (& Developer A is unhelpful)
«executionEnvironment»
:Login Session
:B&D System V5
«executionEnvironment»
:Login Session
:B&D System V5
B&D DB : SQLServer

Improved System: Stage 2
deployment Stage 2 Deployment
Bookings and Dispatch
+ B&D System V3 + B&D System V5
«executionEnvironment»
Amazon Web Services
Host the server on Amazon instead
B&D DB :SQLServer
«executionEnvironment»
:Login Session
:B&D System V5
«executionEnvironment»
:Login Session
:B&D System V5

Stage 2 Summary
• Migrate SQL Server from Developer A’s server to Amazon Benefits:
• No further dependence on Developer A
• Increased reliability
• Easy options for increasing backend performance
• Options for increasing redundancy
• Reduced maintenance cost

Stage 2: Remaining Issues
Client Problem Perspective
Slow/hung, especially when customer on the phone Addressed in Stage 1
When the system is unavailable, operators requiring paper/pen Addressed in Stage 1
Missing functionality, e.g.
– Invoicing and reporting Addressed in Stage 1
– Customer Portal (Online booking, Profile, …)
• Unhelpful IT provider: Developer A Addressed in Stage 2
• Cost: significant overhead for status quo Addressed in Stage 2

deployment Stage 3 Deployment
Add a new component for centralized pricing service
Add a new component for customer portal
Bookings and Dispatch
+ B&D System V3 + B&D System V5
«executionEnvironment»
Amazon Web Services
«executionEnvironment»
:Virtual Machine
Pricing Service
B&D DB :SQLServer
«executionEnvironment»
:Login Session
:B&D System V5
«executionEnvironment»
:Login Session
:B&D System V5

Stage 3 Summary
• Introduce pricing service
• Replace pricing in existing system with service
• Make pricing available to customers via web site Benefits:
• Introduction of a service-based architecture
• Shared single location for services
• Improved transparency for customers
• Opportunities for server optimisation
Remaining issue:
Missing online booking functionality

deployment Stage 4 Deployment
Bookings and Dispatch
+ B&D System V3 + B&D System V5
«executionEnvironment»
:Login Session
:B&D System V5
«executionEnvironment»
:Virtual Machine
Booking Portal
Pricing Service
Add a new component for centralized booking service
Booking Service
«executionEnvironment»
:Login Session
B&D DB :SQLServer
:B&D System V5
V3 Balance
«executionEnvironment»
Amazon Web Services

Stage 4 Summary
• Introduce booking service
• Replace booking in existing system with service
• Make booking portal available to customers via web site
• Partition database to separate out bookings Benefits:
• Customers can now make their own bookings (critical)
• Further develop service based architecture
• Start migration from V3 DB schema and configuration

Case Study Lessons
• Client’s perspective is critical, however
– Analysis is required to get the full picture
• Understanding of business requirements is critical
– Missing key elements (e.g. workflow, interface requirements) can make the system
• Knowing where you want to get to is the easy part
– Planning and executing an acceptable path there is often the real challenge
– Design helps by providing options

Lecture Identification
Semester 1, 2022
© University of Melbourne 2022
These slides include materials from:
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition, by , Inc., 2005.

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com