system thinking and problem solving for IT solutions
1
1
2
3
4
5
Learning Module Outline
Today’s Reference
Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition) Upper Saddle River, NJ: Addison-Wesley.
Lesson 3.2
Introduction to System Context Diagrams (SCD)
Lesson 3.3
Notation and Styles for UML System Context Diagrams
Lesson 3.1
System Thinking – A Context Viewpoint
1
2
This is our first (or several) tool modules. In this chapter we will learn a “scoping” tool called SYSTEM CONTEXT DIAGRAMS (SCDs). There are other scoping tools that we will cover in other learning modules.
System Concept Diagrams
DIFFERENCES BETWEEN CNIT 380, 385, and this course
2
List of References
Rozanski, N. and Woods, E. (2009). The system context architectural viewpoint. Proceedings of 2009 IEEE/IFIP WICSA/ECSA (pp. 333-336). Retrieved from http://s3.amazonaws.com/academia.edu.documents/41186086/The_System_Context_Architectural_Viewpoi20160115-16229-1s08s8z.pdf?AWSAccessKeyId=AKIAJ56TQJRTWSMTNPEA&Expires=1476358091&Signature=mFYznNtNd%2BVk20D0udBdIaoNAMI%3D&response-content-disposition=inline%3B%20filename%3DThe_system_Context_architectural_viewpoi.pdf
---------- assigned readings above; additional references below ----------
DeMarco, T. (1978). Structured systems analysis and specification.
Gane, C. P., & Sarson, T. (1979). Structured systems analysis: tools and techniques. Prentice Hall Professional Technical Reference.
Gorton, I. (2006) Essential software architecture. Springer Science & Business Media, 2006.
Rozanski, N. and Woods, E. (2012) Software systems architecture: Working with stakeholders using viewpoints and perspectives (2nd edition). Upper Saddle Ridge, NJ, USA: Pearson Education.
Whitten, J. L.; Bentley, L.; and Dittman K. (2012). Systems analysis and design methods (7th Edition). Burr Ridge, IL, USA: Irwin/McGraw-Hill.
3
3
4
1
2
3
4
5
Learning Module Outline
Today’s Reference
Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition) Upper Saddle River, NJ: Addison-Wesley.
Lesson 3.2
Introduction to System Context Diagrams (SCD)
Lesson 3.3
Notation and Styles for UML System Context Diagrams
Lesson 3.1
System Thinking – A Context Viewpoint
This slide serves as a roadmap through a learning module or course unit that has been divided into multiple lessons. Copy this slide as needed to precede each lesson included in the learning module.
The design is intended to highlight the “current” lesson in gold. To change the current lesson, do the following:
Left-click on the far right-hand side of the current gold bar.
Left-click on the format painter icon (the paintbrush)
Left-click on the far right-hand side of the new current lesson. You should now have two gold bars. We still need to make the old lesson gray.
Left-click on the far right-hand side of any remaining gray bar
Left-click on the format painter icon.
Left-click on the far right-hand side of the gold bar that is no longer the current lesson. We now should have a gold bar only for the new current lesson.
Delete or replace the image with the primary reference for the current lesson (usually a textbook). Replace APA citation with that of the primary reference.
4
Systems Thinking Context
5
REF: ISO Software Architecture Standard as described by Rozanski and Woods
CONTEXT Views
FUNCTIONAL View
INFORMATION View
TIMING View
DEVELOPMENT View
DELPOYMENT View
OPERATIONAL View
Not a new idea in systems design
Other architectural standards
Kruchten’s 4 + 1 architecture (IBM)
IEEE Standard 1471 that is the basis for your textbook
Zachman’s Framework for Information Systems Architecture
5
ENVIRONMENT
System Concepts for Context Views of a System
6
YOUR SYSTEM
THING
THING
THING
THING
THING
THING
THING
THING
6
What are the context views of a system?
| Characteristics | Explanation |
| Definition | The context view describes the relationships, dependencies, and interactions between YOUR system and its environment (which may include people, groups, other systems, and machinery). |
| Concerns | YOUR system’s scope and responsibilities, identification of external entities in YOUR system’s environment, data and services YOUR system needs from the environment (net inputs), information and services YOUR system provides to the environment (net outputs), implementation of said inputs and outputs (interfaces), and impact of your system on its environment |
| Architectural Descriptions | Context diagrams Lists of black box characteristics |
| Possible Problems | Missing or incorrect external entities, missing interactions or dependencies, loose or imprecise interface details or constraints, implicit or assumed scope, scope creep, jargon or details that are inappropriate to specific classes of stakeholders |
| Applicable Stakeholders | Systems owners, system users, technology providers/acquirers, system designers, system builders (in other words, all stakeholder classes) |
| Applicability | All systems of all types |
7
REF: Adapted from Rozanski and Woods (2012)
7
Systems Concepts for Context Views of a System
Black box thinking and information hiding
Every system of interest (YOUR system) must interact with its environment
Net Inputs it must receive from its environment
Net outputs it must send to its environment
Every system (and its environment) consists of things of interest (that we need to identify) = SCOPE
Every system’s interactions with its environment need to be designed = INTERFACES
8
THING
Systems Thinking for Context Views
9
YOUR SYSTEM
THING
THING
THING
THING
Irrelevant
THING
External Environment
Internal Environment
SOME THINGS ARE ARE RELEVANT; OTHER THINGS ARE NOT
9
Multiple Context Views in Systems Thinking
| Stakeholders | Value | Project Activities |
| System Owners | Used to communicate and manage high-level scope as a pseudo-contract | System Planning |
| System Users | Used to refine and communicate detailed scope as a pseudo contract | System Analysis |
| System Designers | Used to communicate technical details about user, system, and machine interfaces | System Design |
| System Builders | Used to communicate technical details about user, system, and machine interfaces | System Implementation |
10
Row for our course is boldfaced
10
System SCOPE
Scope defines the boundaries of your system
What is “in” scope?
What is “out” of scope?
Scope drives several things for system owners
Goals and objectives … how will we know when we succeed?
Budget … to develop the system, and to sustain the system
Timetable … to develop the system by the time it is needed
Scope is defined during system planning, BUT …
Scope is subject to constant change, and that’s not always bad
The level of detail we use to document scope increases as we progress
Scope can be reduced
Scope can be increased … at a cost
11
11
Best Way to Communicate SCOPE and INTERFACES?
As always, depends on which stakeholder groups that comprise your audience
System owners high-level SCOPE words; simple diagrams management jargon
System users detailed SCOPE words; detailed diagrams; business jargon
System designers INTERFACES diagrams; detailed specifications technical jargon
System builders same as system designers
12
System Context Diagrams (SCD)
13
Scope of the Inner Workings of the Black Box
Use the framework columns:
MOTIVATIONS
DATA/INFORMATION
PEOPLE
FUNCTIONALITY/ SERVICES
TIMING/ BEHAVIOR
GEOGRAPHY
SECURITY? Suggested by last year’s class
14
Will use an accordion style to expand and contract these bullets in the next several slides
Scope of the Inner Workings of the Black Box
MOTIVATIONS
List of strengths, weaknesses, opportunities, threats (SWOT)
List of perceived problems, opportunities, and/or directives (PIECES) (notice we said “list”; not “analysis of”)
List of goals and objectives (word using SMART sentences) (SMART = Specific, Measurable, Attainable, Reasonable, and Time-delimited)
List of applicable business policies ... if known
DATA/INFORMATION
PEOPLE
FUNCTIONALITY AND SERVICES
TIMING/BEHAVIOR
GEOGRAPHY
SECURITY?
15
Scope of the Inner Workings of the Black Box
MOTIVATIONS
DATA/INFORMATION
List of things about which the system must capture and use data? (typically, nouns = persons, organizations, places, objects, abstractions, analog properties)
List of information or actions desired by management?
PEOPLE
FUNCTIONALITY AND SERVICES
TIMING/BEHAVIORS
GEOGRAPHY
SECURITY
16
Scope of the Inner Workings of the Black Box
MOTIVATIONS
DATA/INFORMATION
PEOPLE
List of direct users of the system
List of indirect users of the system (people who may be impacted by the system)
Quick assessment of organizational readiness and potential resistance (useful framework = Prosci’s ADKAR model)
FUNCTIONALITY AND SERVICES
TIMING/BEHAVIOR
GEOGRAPHY
SECURITY
17
Scope of the Inner Workings of the Black Box
MOTIVATIONS
DATA/INFORMATION
PEOPLE
FUNCTIONALITY AND SERVICES
List of functionality and services to be provided by the system
List of impacted business processes (if applicable) (almost always applicable in “information” systems)
TIMING/BEHAVIOR
GEOGRAPHY
SECURITY
18
Scope of the Inner Workings of the Black Box
MOTIVATIONS
DATA/INFORMATION
PEOPLE
FUNCTIONALITY AND SERVICES
TIMING/BEHAVIOR
List of events for which the system must provide a response? (owners may not fully know all of the desired responses)
Is there a cyclical or recurring calendar for this system? If so list those events. (owners may not fully know all of the calendar events)
GEOGRAPHY
SECURITY
19
Scope of the Inner Workings of the Black Box
MOTIVATIONS
DATA/INFORMATION
PEOPLE
FUNCTIONALITY AND SERVICES
TIMING
GEOGRAPHY
List of internal locations and, if known, mappings to users.
List of external locations, if known, and partners
SECURITY
20
Scope of the Inner Workings of the Black Box
MOTIVATIONS
DATA/INFORMATION
PEOPLE
FUNCTIONALITY AND SERVICES
TIMING
GEOGRAPHY
SECURITY
List of privacy concerns
List of internal security concerns
List of external security concerns
21
22
System owners, by the very nature of their jobs, have a somewhat ‘summary’ perspective on scope. They are usually more removed from the problem space than the system users.
EXPECT to have to refine, and perhaps expand these lists as a project progresses. But when the lists change, always validate backwards to prior audiences.
to make sure everyone is still in agreement
to make sure the budget and schedule are still OK
Final words of caution about these scoping “lists”
PLANNING ESTBALISHES THE initial LISTS
ANALYSIS starts by reviewing and updating the lists … validate afterwards with owners
DESIGN starts by reviewing the lists … and validate afterwards with users and owners
IMPLEMENTATION starts by reviewing the lists … BUT REALLY SHOULD NOT BE CHANGING AT THAT POINT
22
23
Complete the reading assignment posted to Blackboard
Web search “context diagram” and study the sample“ images” returned. Bring samples to class and answers to these questions:
What notations and formats did you discover?
What did you like or dislike about the different notations you researched?
What did possible issues could result from multiple?
Class prep for next class
24
1
2
3
4
5
Learning Module Outline
Today’s Reference
Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition) Upper Saddle River, NJ: Addison-Wesley.
Lesson 3.2
Introduction to System Context Diagrams (SCD)
Lesson 3.3
Notation and Styles for UML System Context Diagrams
Lesson 3.1
System Thinking – A Context Viewpoint
This slide serves as a roadmap through a learning module or course unit that has been divided into multiple lessons. Copy this slide as needed to precede each lesson included in the learning module.
The design is intended to highlight the “current” lesson in gold. To change the current lesson, do the following:
Left-click on the far right-hand side of the current gold bar.
Left-click on the format painter icon (the paintbrush)
Left-click on the far right-hand side of the new current lesson. You should now have two gold bars. We still need to make the old lesson gray.
Left-click on the far right-hand side of any remaining gray bar
Left-click on the format painter icon.
Left-click on the far right-hand side of the gold bar that is no longer the current lesson. We now should have a gold bar only for the new current lesson.
Delete or replace the image with the primary reference for the current lesson (usually a textbook). Replace APA citation with that of the primary reference.
24
25
What notations and formats did you discover?
What did you like or dislike about the samples you researched?
What did you learn from that?
Let’s discuss YOUR research into Context Diagrams
Historically, where did context diagrams originate?
False credit goes to the “Object-Oriented Analysis & Design” methodology, and the UML
Context diagrams are NOT a part of the OMG’s UML standard
But many UML authors recommend them to add address scope before starting to draw any standard UML diagrams
True credit goes to the “Structured Analysis and Design” methodology (≈1978)
Inventors were Chris Gane, Trish Sarson, and Tom DeMarco
Context diagrams were invented in the methodology to visualize scope
Context diagrams were considered a simple type of data flow diagram (DFD)
26
REF: Gane, C. and Sarson, T. (1978). Structured systems analysis. REF: DeMarco, T. (1978). Structured analysis and system specification.
26
And they looked something like this …
27
Gane and Sarson Notation
This is the most common SCD notation
… or this …
28
Demarco Notation
Also Ward Notation
This is the 2nd most common SCD notation
… or this …
29
A UML-like Notation
… or this …
30
Another UML-like Notation
… or this …
31
Yet another UML-like
Notation
… or this …
32
An
Artistic
STYLE
… have a tendency to start looking like this … or worse
33
A Common Problem with Context Diagrams
In all but the smallest systems, the diagrams can become quite cluttered, thus detracting from the primary purpose of drawing ANY diagramming … COMMUNICATION with stakeholders
This diagram is an example of the problem – and they can get much, much worse.
We need to come up with ways of dealing with such complexity
So what do context diagrams communicate?
Focus on the world outside of your system – your system is just a “black box”
In other words, focus is on your system’s environment, NOT what’s going on INSIDE your system
Your system gets depicted as a black box (center of page) that intentionally hides details of how your system works
Interactions shown include net inputs, outputs exchanged with your system’s environment
Thus, context diagram illustrates scope
But context diagram also explicitly identifies INTERFACES that will need to be DESIGNED and built for your system
34
34
Conclusions
Too many notations between authors and analysts
Confuses stakeholders who see different looking context diagrams from one project to the next
Easily gets TOO busy to communicate, even for relatively simple systems
Violates RULE #1 of diagramming; failure to communicate
As originally conceived, only attempts to communicate scope; doesn’t carry over to add value to system design
35
In-class exercise
Present the retailer’s catalog to the user, including pictures and product specifications
Provide a flexible search facility (search on product name, type, keyword, size, and so on)
Accept orders for goods
Accept payment by credit card (with asynchronous approval and notification to the customer)
Provide automated interfaces into back-end systems for fulfillment
To be developed using agile software development; therefore, the scope exclusions for the first version of such the system will be:
The ability to amend or cancel orders (this will need to be done over the telephone but is planned to be automated in a subsequent release)
The ability to make payments by means other than credit card (e.g., PayPal, EFT, etc.)
Display of live stock levels and the ability to reserve out-of-stock items
36
Adapted from Rozanski, N. and Woods, E. (2011). Software systems architecture: Working with stakeholders using viewpoints and perspectives (2nd Edition) Pearson Education (USA). Kindle Edition.
Rozanski, Nick; Woods, E?in (2011-10-25). Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives (2nd Edition) (Kindle Locations 4732-4738). Pearson Education (USA). Kindle Edition.
36
37
1
2
3
4
5
Learning Module Outline
Today’s Reference
Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition) Upper Saddle River, NJ: Addison-Wesley.
Lesson 3.2
Introduction to System Context Diagrams (SCD)
Lesson 3.3
Notation and Styles for UML System Context Diagrams
Lesson 3.1
System Thinking – A Context Viewpoint
This slide serves as a roadmap through a learning module or course unit that has been divided into multiple lessons. Copy this slide as needed to precede each lesson included in the learning module.
The design is intended to highlight the “current” lesson in gold. To change the current lesson, do the following:
Left-click on the far right-hand side of the current gold bar.
Left-click on the format painter icon (the paintbrush)
Left-click on the far right-hand side of the new current lesson. You should now have two gold bars. We still need to make the old lesson gray.
Left-click on the far right-hand side of any remaining gray bar
Left-click on the format painter icon.
Left-click on the far right-hand side of the gold bar that is no longer the current lesson. We now should have a gold bar only for the new current lesson.
Delete or replace the image with the primary reference for the current lesson (usually a textbook). Replace APA citation with that of the primary reference.
37
PROBLEM: Lack of standardized notation for SCDs
SOLUTION
Build our own standard notation (which explains why we saw so many different notations earlier)
Develop an standard using an existing notation
We will adapt the UML standard notation for use as system concept diagrams (SCDs).
How? The UML standard provides for developing new tool profiles using the standard notations. Therefore, what we are doing here is not a violation or compromise of the UML.
38
39
In this course, we will standardize on a UML-style context diagram.
This instructor is NOT saying that the context diagrams you learned in other courses and books are wrong!
He IS suggesting that there is a way to bring greater consistency and communication clarity to context diagrams that will produce more meaningful communications with stakeholders.
About context diagrams as taught in your other courses
39
But first, we need to review some UML notations
In our UML context diagrams, we will use two UML notations available for use in all UML diagrams of any type
Stereotypes
Tags
40
UML Stereotypes
In UML, stereotypes allow designers to extend the vocabulary of UML to communicate specific properties about shapes or connections.
Should be standardized across all projects, or managed by someone (e.g., a project office).
Scott Ambler’s book, Elements of UML Style, provides a nice starting set, but it is intended that each organization maintain their own approved set.
Format is usually lowercase, no bold only
<< stereotype name >> as written inside any UML shape, or on a connection
One example that might be used in context diagrams includes:
<< internal >> or <<external >>
We will adopt the convention of placing << stereotypes >> above the name of the shape of connection to which they apply
A shape or connection can have more than one << stereotype >>. Should be listed on separate lines. Each should be bracketed.
41
41
UML Tags
In UML, tags allow designers to extend the vocabulary of UML to communicate specific properties or specifications
Not intended to be standardized within any organization
Highly used on technical context diagrams to communicate technology decisions or constraints that are intended for technologists
Format is usually mixed lower/uppercase
{ Tag Name } as written inside any UML shape, or on a connection
Examples include (notice
{ XML } or { RPC } or {C++} or {Oracle} or {Oracle SQL 9.3} or {Safari ≥ 8.1) or {MS C# V > 3}
We will adopt the convention of placing { tags } below the name of the shape of connection to which they apply
A shape or connection can have more than one { tag }. If so, they should be listed on separate lines. Each should be bracketed.
42
42
Quick example from Rozanski and Woods, but …
43
NOTICE THT THIS SAMPLE ONLY USED STEROTYPES, NOT TAGS
THING
Reminder - Systems Thinking for Context Diagrams
44
YOUR SYSTEM
Interrnal Entity
External Entity
External Entity
Internal Entity
Internal Entity
External Environment
Internal Environment
SOME THINGS ARE ARE RELEVANT; OTHER THINGS ARE NOT
44
Your System = The System of Interest in YOUR Project
Should be drawn in the center of the page as a rectangle.
45
If your drawing tool supports it, consider shading it BLACK to emphasize that this is YOUR system; and to reinforce BLACK BOX thinking!
<< project name >>
SYSTEM NAME
SYSTEM NAME could be descriptive or codename or
acronym
If project name is same as system name, stereotype can be omitted
External Entities
”Things” in your system’s environment with which YOUR system must interact (= communicate)
A user, a class of user, or some other person or role, such as operational or support staff – may be inside or outside our organization
An existing system that runs inside or outside our organization
A data store that is external to our system (for example, a shared database or data warehouse)
What about internal data stores?
A machine or other physical device that is external to the system (such as a sensor, appliance or robot, smart appliance or enterprise search engine)
46
REF: Rozanski, N. and Woods, E. (2012)
External Entities Vocabulary and Notations
People, groups (e.g. departments, teams, or external organizations with whom your system directly interacts (inputs and outputs)
Existing systems, internal or external with which your new system must exchange data (input and/or output)
Existing external data stores with which your system must use or update data (w/o structural changes) – what about internal database?
Machines, sensors, devices, appliances, etc. with which your system must interact.
47
47
Connections = INTERFACES that are in scope and must be designed
Human Computer Interfaces (HCI)
Internal HCI = used by employees inside your company
External HCI = used by customers or others outside of your company
System Interfaces (with existing systems or databases)
Internal System Interfaces = used to exchange data between your new system and other existing systems and databases inside your company
Permanent = will be used for the lifetime of your system
Temporary = will be used for some transitional period of your system = crosswalks
External System Interfaces = used to exchange data between your new system and other existing systems and databases outside your company
Permanent = will be used for the lifetime of your system
Temporary = will be used for some transitional period of your system = crosswalks
Real-time Machine Interfaces
Sensors = bring analog data into system (temperature, speed, altitude, air pressure, heart rate, fluid levels, time, moisture, etc.
Instructions = send commands and instructions to a device, machine, or appliance
48
TAKE A MOMENT TO EXPLAIN TEMPORARY INTERFACES
48
Interface Notations and Vocabulary
Data flows should the net data flow to or from “your system”
For HCI and system interfaces, names of data flows (inputs or outputs) to and from your actors or systems
For external DBs, names of data flow and parenthetical (data operations) where data operations are:
C = create records or rows
R = read records or rows
U = update or modify records or rows
D = delete (deactivate) records or rows
I = import batches of data
E = export batches of data
Control flows show either analog data monitored by your system, or instructions sent to your system
49
NO DOUBLE ENDED ARROWS ALLOWED
49
Summary of UML Context Diagram Notation and Styles
50
UML shape name is ACTOR or USER
UML shape name is COMPONENT
UML shape name is DATA STORE
UML shape name is DEVICE NODE
UML shape name is SYSTEM BOUNDARY
Summary of UML Context Diagram Notation and Styles
51
In UML, dashed arrows are called CONTROL FLOWS
In UML, solid arrows are called DATA FLOWS or MESSAGE (FLOWS)
Suggested Stereotypes (if no approved list)
| NOTATION | SUGGESTED STEREOTYPE NAMES |
| YOUR SYSTEM | project name, our system, our project, system of interest |
| ACTOR or USER | internal, external |
| Existing INTERFACING SYSTEM | internal, external |
| EXISTING DATA STORE (out of scope for structural changes) | internal, external |
| MACHINE or DEVICE | device, sensor, machine, appliance, robot |
| DATA FLOW | batch, transaction, on demand create, read, update, delete, import, export, batch |
| CONTROL FLOW | real-time |
52
Blank cells mean there are no suggestions
POSSIBLE Tags (list is not exhaustive or to be approved)
| NOTATION | SAMPLE TAGS (nowhere near exhaustive) |
| YOUR SYSTEM | |
| ACTOR or USER | |
| Existing INTERFACING SYSTEM | operating system name, programming language name, file system type, interface protocol name – all possibly inclusive of version |
| EXISTING DATA STORE | database management system name – possibly with version |
| MACHINE or DEVICE | technology name, protocol name |
| DATA FLOWS | user interface standard, communication protocol, database format – all possibly inclusive of existing version, or expected minimum version -- tbd |
| CONTROL FLOWS | communications protocol -- tbd |
53
Blank cells indicate not generally applicable – but also NOT forbidden
Data Flow Properties of Interfaces to be Described in Detail
Notice that these address quality properties of your interfaces. Not all are applicable to all systems. Instructor likes to describe these properties in Excel or Word tables that get “linked” to the arrows on the context diagram (if your tool permits that).
Performance Expectations – number of requests or transfers, amount of data, seasonal fluctuations, expected growth
Performance Expectations – response time, latency, scalability, availability, etc.
Timing – whether interactions are scheduled (occurring at pre-defined times), occur in response to events, or are ad hoc;
Timing – whether interactions must be processed as a batch, or are message based (one-at-a-time)
Timing – meaning must be completed fully, or not at all
Security – authentication, authorization, confidentiality, etc.
Formats – of data and files
54
Some address quality properties
54
VERY Oversimplified Table
55
REF: Tayntor, C. (2006). Successful packaged software implementation. Boca Raton, FL: CRC Press.
Instructor would rename first column to “Interface Name” and then greatly expand to columns to include the types of properties listed in the previous slide. Let’s see how many of you create one or more standard tables to connect to your diagrams.
UML Context Diagram Template
56
Enlarged on next slide
Three templates have been added to your Blackboard course web site. Equivalent templates for other drawing tools can be submitted to the instructor.
56
57
NEW AND IMPROVED TEMPLATE POSTED TO BLACKBOARD
57
Recommendations for using the template
Not all entity/agent/actor “types” apply to all systems … delete those not used; and copy those for which you have multiple instances
Not all flow “types” apply to all systems … delete those not used; and copy those for which you need multiple instances
There is no limit to the number of data or control flows between your system (center) and any given external entity or actor
Which means we WILL still need to deal with the potential for “clutter”
Use UML <<stereotypes>> to communicate categories for context diagram shapes and flows
Use UML {tags} to communicate other relevant technology or business constraints
58
Recommendations for using the template (continued)
Recommend legal size “paper” and landscape orientation
Add a title block to lower right (or other consistent location)
Provide a “Legend” for all shapes and connections (separate page)
Use UML NOTE shape to add other useful comments
Try not to overuse jargon when diagram is intended for communicating to system owners and users
Add technical jargon when diagram is intended for communicating to system designers and builders
59
EVERYTHING IS A SYSTEM
SCOPE CHANGES
59
60
COMMON MYTH
Systems analysts / architects should only draw ONE context diagram for their project
THIS IS JUST NOT TRUE! Leads to communication overload!
We still need to deal with potential clutter
This causes clutter and degrades readability.
It also assumes that all stakeholders will be able understand the vocabulary used in a single context diagram
60
We want to avoid clutter that starts looking like this or worse
61
Dealing with clutter in context diagrams
RECOMMENDATION #1
For larger systems and projects, draw separate context diagrams for major functional subsystems. Each will be intended for a different subgroups of our major stakeholder categories.
RECOMMENDATION #2 (a Whitten favorite)
Draw separate diagrams for different types of interfaces
One (or few) context diagrams for human computer interfaces
Perhaps separate diagrams for internal versus external user interfaces
Perhaps a separate diagram for standard reports
One (or few) diagrams for internal and external system interfaces
One (or few) diagrams for existing data store interfaces
One (or few) diagrams for device interfaces (if you even have any)
Combine RECOMMENDATION #1 and #2
RECOMMENDATION #3 (a Demarco suggestion from back in 1976)
Consolidate data flows into composites (groups)
62
62
63
If your drawing tool allows it, create multiple tabs (pages) in a single file to keep all your context diagrams together.
(This also makes it easy to find and edit; to maintain consistency)
IDEA TO PACKAGE MULTIPLE CONTEXT DIAGRAMS
This causes clutter and degrades readability.
It also assumes that all stakeholders will be able understand the vocabulary used in a single context diagram
63
Here’s our first context diagram using our UML profile
64
65
MISTAKES!
65
66
Now, Let’s DRAW a set of Context Diagrams
(for a system that includes BOTH information system and real-time system characteristics)
67
1
2
3
4
5
Learning Module Outline
Today’s Reference
Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition) Upper Saddle River, NJ: Addison-Wesley.
Lesson 3.2
Introduction to System Context Diagrams (SCD)
Lesson 3.3
Notation and Styles for UML System Context Diagrams
Lesson 3.1
System Thinking – A Context Viewpoint
ADDENDUM
Sample System Concept Diagrams Using the UML Notation
This slide serves as a roadmap through a learning module or course unit that has been divided into multiple lessons. Copy this slide as needed to precede each lesson included in the learning module.
The design is intended to highlight the “current” lesson in gold. To change the current lesson, do the following:
Left-click on the far right-hand side of the current gold bar.
Left-click on the format painter icon (the paintbrush)
Left-click on the far right-hand side of the new current lesson. You should now have two gold bars. We still need to make the old lesson gray.
Left-click on the far right-hand side of any remaining gray bar
Left-click on the format painter icon.
Left-click on the far right-hand side of the gold bar that is no longer the current lesson. We now should have a gold bar only for the new current lesson.
Delete or replace the image with the primary reference for the current lesson (usually a textbook). Replace APA citation with that of the primary reference.
67
68
Our Case Study Example
69
INSTRUCTOR REMINDER TO SELF: START CONCEPTDRAW TO SHOW USE OF TABS; AND TO DO ANY EDITS THAT COME UP IN CLASS
70
Procedure to draw Context Diagrams
This is a general procedure to drawing system context diagrams. The best systems analysts and architects will learn how to adapt this procedure to their needs and culture.
First draw all direct users (as UML actors = stick figures).
Add stereotypes to distinguish between types of users (e.g., internal vs. external vs. other reasonable stereotypes that might be used to categorize your end users)
For each user, draw data flows for all human computer interfaces to and from your system
Remember, only one way arrows are allowed – use the concept of “net data flow”, but draw the flows as requested to communicate with your audience.
If too many data flows leads to clutter, consider consolidating “like” flows into composite data flows.
Add any indirect users, and attach to the appropriate direct user. Attach UML notes/comments to further describe the downstream impact.
71
72
This context diagram shows human-computer interfaces
Procedure to draw Context Diagrams (continued)
At this point, recommend drawing separate context diagrams for existing database interfaces (meaning, “DIRECT interfaces to existing out-of-scope databases”). Why?
The diagram may already be getting cluttered
Database interfaces require different designers and builders anyway
Next, add any external data stores that must be used by your system.
Add stereotypes to indicate if the databases are internal versus external to your business.
Add notes IF any of these databases are subject to structural change because of your system (meaning, new tables or attributes – very common with data warehouses) THEY DO NOT BELONG ON THE SYSTEM CONTEXT DIAGRAM
Next, for each existing database, add data flows for any data interactions with your system.
FYI, database interactions = CRUD = create, read, update, delete
Flows to a database indicate data changes to be recorded in the DB (create, update, delete)
Flows from a database indicate data usage (read)
Two-way arrows are permitted for database interactions (to reduce clutter)
73
74
This context diagram shows database interfaces
Procedure to draw Context Diagrams (continued)
At this point, recommend drawing separate context diagrams for system-to-system interfaces (meaning, “interfaces to other systems”). Why? Same reasons.
Next, add any existing systems that must be used by your system.
Add stereotypes to indicate if the databases are internal versus external to your business.
Use notes to indicate any existing systems to be retired – the data flows for such systems are temporary “crosswalks”
Next, for each existing system, add data flows for any data exchanges with your system.
Add stereotypes or tags as needed to clarify the types or nature of the data exchanges (e.g., {batch}, {import}, {export}, {real-time})
Name all data flows
To reduce clutter, you can consolidate “like” data flows into composite data flows, if that does not confuse your audience
75
76
NOTE: This system-to-systems context diagram was unusually SIMPLE. Sometimes you have so many system interfaces that you need multiple diagrams (e.g., internal vs. external)
This context diagram shows system interfaces
Procedure to draw Context Diagrams (continued)
RECOMMENDED – document characteristics of data flows into tables
IF YOUR SYSTEM HAS A REAL-TIME CHARACTERISTIC, DO THE NEXT STEP – Probably as a separate context diagram
77
Procedure to draw Context Diagrams (continued)
Next, add any sensors to be monitored, or devices to be controlled by your system.
Add stereotypes as needed
Next, add control flows between your system and the sensors and devices
Flows into your system are typically “sensed conditions in the environment” (e.g., temperature, altitude, location, or other sensed state)
Flows from your system are typically “instructions” to the receiving device
FINAL COMMENT:
All system context diagrams should be validated, edited, and regularly reviewed with their intended audiences (owners, users, designers, and builders) at the appropriate times (planning, analysis, design, implementation)
78
79
This context diagram shows real-time device interfaces
Summary – Context Diagram
Uses for context diagrams
During system analysis, context diagrams describe project scope and INTERFACE requirements and constraints
During system design, context diagrams describe INTERFACES implementation (technology constraints and decisions)
What interfaces get described during analysis an design?
User interfaces (a.k.a. “human computer interfaces” (HCI) or “user experience” (XU), typically screens and dialogs
System interfaces, between your system and legacy systems
Database interfaces, between your system and legacy databases that have been deemed ‘out of scope’ for structural changes
Control interfaces, between your system and analog sensors, machines, devices, or appliances
You need to develop one or more separate diagrams for each type of interface
Because different technologists will be charged with designing, constructing, testing, and implementing each type of interface
80
Summary – Final template for Context Diagrams
81
82
YOUR TURN!
From one of your project (preferred) or course (backup) projects, draw a set of UML-style context diagrams.
The set must include AT LEAST two of the four types of interfaces covered in class.