-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathSystems_Analysis_and_Design.Rpres
337 lines (230 loc) · 18.7 KB
/
Systems_Analysis_and_Design.Rpres
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
Data Management
========================================================
For Scientific Research
[//]: # (author: Brian High, UW DEOHS)
[//]: # (date: 2014-04-17)
[//]: # (license: CC0 1.0 Universal, linked-content/images)
[//]: # (note: License does not apply to external content such as quoted material, linked web pages, images, or videos. These are licensed separately by their authors, publishers or other copyright holders. See attribution links for details.)
[//]: # (note: Any of the trademarks, service marks, collective marks, design rights, personality rights, or similar rights that are mentioned, used, or cited in the presentations and wiki of the Data Management For Scientific Research workshop/course are the property of their respective owners.)
[//]: # (homepage: https://github.com/brianhigh/data-workshop)
<p style="width: 600px; float: right; clear: right; margin-bottom: 5px; margin-left: 10px; text-align: right; font-weight: bold; font-size: 14pt;"><img src="http://www.stanza.co.uk/body/stanza_+BODY-copy.jpg" alt="stanza body copy" style="padding-bottom:0.5em;" />Photo: © <a href="http://www.stanza.co.uk/body/index.html">Stanza</a>. Used with permission.</p>
Session 3: Systems Analysis and Design
========================================================
![systems analysis and design](images/analysis_and_design.png)
Systems Development Life Cycle (SDLC)
==================================
One of several approaches to systems development is the [SDLC](http://en.wikipedia.org/wiki/Systems_development_life_cycle), also called the "Waterfall" model.
<p style="width: 500px; float: left; clear: right; margin-bottom: 5px; margin-left: 10px; text-align: right; font-weight: bold; font-size: 14pt;"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Waterfall_model.svg/500px-Waterfall_model.svg.png" alt="waterfall model" style="padding-bottom:0.5em;" />Image: <a href="http://commons.wikimedia.org/wiki/File:Waterfall_model.svg">Peter Kemp / Paul Smith / Wikimedia</a></p>
SDLC Activities and Artifacts
==================================
| Phase | Activities | Artifacts^1 |
| ----- | ---------- | ----- |
| Planning^2 | Define purpose, scope, options, costs^3 | Go/No-Go Decision, Plan |
| Systems Analysis | Process Modeling, Requirements Anal. | Diagrams^4, Requirements |
| Systems Design | Interface & Data Modeling | Diagrams^5, DD^6, Schema |
| Development | Acquisition and/or Coding, Integration | Working System |
| Testing | Testing, Bug Reports & Fixes | Validated System |
| Deployment | Installation, Training, Launch | Production System |
| Maintenance | Backups, Upgrades | Maintained System |
| Evaluation | Effectiveness^7 and Cost Checks | Evaluation Report |
| Disposal | System Removal, Archival, and Surplus | Archived Artifacts |
(See the next slide for notes.)
SDLC Activities and Artifacts
==================================
| | Notes |
| --- | ---- |
| 1 | There are [dozens](http://www.uspto.gov/about/vendor_info/current_acquisitions/sdi_ng/sdlc_activity_artifact_checklist.xls) of potential [artifacts](http://en.wikipedia.org/wiki/Artifact_%28software_development%29) from each phase. |
| 2 | The [planning phase](http://en.wikipedia.org/wiki/Systems_development_life_cycle#System_investigation) may also be called the preliminary investigation, system investigation, feasibility study, or project initiation phase, among other names. |
| 3 | Determination of options and costs (in the [planning phase](http://en.wikipedia.org/wiki/Systems_development_life_cycle#System_investigation)) is often referred to, specifically, as a [feasibility study](http://www.extension.iastate.edu/agdm/wholefarm/html/c5-65.html). |
| 4 | [Systems analysis](http://en.wikipedia.org/wiki/Systems_analysis) may produce [flow charts](http://en.wikipedia.org/wiki/Flow_chart), [swim lanes](http://en.wikipedia.org/wiki/Swim_lane), [data flow diagrams](http://en.wikipedia.org/wiki/Data_flow_diagram) (DFD), and [UML](http://en.wikipedia.org/wiki/Unified_Modeling_Language) diagrams. |
| 5 | [Systems design](http://en.wikipedia.org/wiki/Systems_design) may produce [Entity-relationship](http://en.wikipedia.org/wiki/Entity_relationship) (ER) diagrams and UML diagrams. |
| 6 | As a systems design artifact, DD represents a [Data Dictionary](http://en.wikipedia.org/wiki/Data_dictionary) document. |
| 7 | The [Evaluation phase](http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle#Evaluation) will have numerous measures of [effectiveness](http://ipmexam.wikispaces.com/Systems+Development+Life+Cycle+-+Evaluation+Phase). |
An Example Research Project
==================================
Let's imagine that we are to conduct a research study like this:
* We will sample various surfaces for bacteria.
* Some of those surfaces will be on human subjects.
* We will analyze the bacteria samples in the lab.
* Test results will be entered into a data system.
* We will perform statistical analyses on the test results.
Goals List
===================================
The stakeholder goals for system, in "verb noun" form are:
| Role | Goal |
| ---- | ---- |
| Subject | Sign Consent Form |
| Sampler | Collect Consent Form |
| Subject | Complete Subject Form |
| Sampler | Collect Subject Form |
| Sampler | Collect Sample |
| Sampler | Deliver Sample |
| Lab Tech | Test Sample |
| Lab Tech | Dispose Sample |
| Statistician | Analyze Results |
Structured Narratives
====================================
From this goals list, we can create use case diagrams and a structured narrative. A structured narrative is a description which conforms to some sort of standardized format.
For the purposes of our preliminary investigation, we will just add one-sentence descriptions for each goal in our list. Our description will use terms such as "if", "must" or "may" and phrases like "for each" or "for all".
This simple structure will allow us to develop a process model using various types of diagrams. From our process model, we will develop a data model.
Structured Narrative: Part 1, Subject Data
====================================
| Actor | Use Case | Description |
| ----- | -------- | -------------------- |
| Subject | Sign Consent Form | If a human subject is sampled, the subject must sign a consent form. |
| Sampler | Collect Consent Form | The sampler must collect the consent form before sampling the subject. |
| Subject | Complete Subject Data Form | The subject must complete a subject data form by providing personal information. |
| Sampler | Collect Subject Data Form | The sampler must collect the subject data form before sampling the subject. |
Structured Narrative: Part 2, Sampling
====================================
| Actor | Use Case | Description |
| ----- | -------- | -------------------- |
| Sampler | Enter Subject Data | The sampler must enter subject information into the system for each human subject sampled. |
| Sampler | Collect Sample | The sampler may collect a sample from a human subject or from a non-human surface. |
| Sampler | Record Geo Location | The sampler must record the geographical sampling location for all samples taken. |
| Sampler | Record Body Location | The sampler must record the human body sampling location for all samples taken from human subjects. |
| Sampler | Record Temperature | The sampler must record a temperature reading for all samples taken. |
| Sampler | Record Humidity | The sampler must record a humidity reading for all samples taken. |
| Sampler | Enter Sample Data | The sampler must enter sample information into the system for each sample collected. |
| Sampler | Deliver Sample | The sampler must deliver the sample to the laboratory. |
Structured Narrative: Part 3, Analysis
====================================
| Actor | Use Case | Description |
| ----- | -------- | -------------------- |
| Lab Tech | Receive Sample | The laboratory technician must receive the sample when it is delivered. |
| Lab Tech | Store Sample | The laboratory technician must store the sample in a cooler (refrigerator). |
| Lab Tech | Split Sample | The laboratory technician must split the sample before testing. |
| Lab Tech | Test Sample | The laboratory technician must test the sample before it expires. |
| Lab Tech | Enter Test Result | The laboratory technician must enter the test result into the system. |
| Lab Tech | Dispose Sample | The laboratory technician must dispose of the sample after it is no longer needed. |
| Statistician | Query Results | The statistician may query the system for test results. |
| Statistician | Analyze Results | The statistician may analyze the results using statistical tools. |
Use Case Narratives
====================================
For even more clarity, one can also develop [use case narratives](http://businessanalystmentor.com/2008/12/03/use-cases-the-use-case-narrative/), which go into far greater detail. This level of detail might be useful in later design phases.
<p style="width: 800px; float: left; clear: right; margin-bottom: 5px; margin-left: 10px; text-align: right; font-weight: bold; font-size: 14pt;"><img src="http://www.cigi.illinois.edu/cybergis-project/img/usecaseimg.png" alt="use case narrative" style="padding-bottom:0.5em;" />Image: <a href="http://www.cigi.illinois.edu/cybergis-project/Feb2011Workshop.php">UI CyberGIS Project</a></p>
Use Case Diagrams: Project Overview
====================================
This diagram shows the actors and their project goals.
![Project Overview Use Case Diagram](images/Lab_Data_System_Use_Case_Diagram_uc1_v2.png)
Use Case Diagrams: More Detailed View
====================================
This diagram shows a more detailed view of the actors and their project goals.
![More Detailed Use Case Diagram](images/Lab_Data_System_Use_Case_Diagram_uc2_v2.png)
Flow Charts
====================================
To better elucidate process branching in a system, we can use a flow chart. Here is a closer look at the sampling process.
![Flow Chart](images/Sampling_Data_Entry_Flow_Chart.png)
Swim Lane Diagrams
====================================
This swim lane diagram shows an overview of the system. The lanes not only show actors, but also sequence and outputs.
![Swim Lane Diagram](images/Lab_Data_System_Swim_Lane_Diagram_v2.png)
Data Flow Diagrams
====================================
Context Diagrams (Level 0)
* [Context Diagram with Gane/Sarson Symbols](images/Lab_Data_System_Context_Diagram_Gane.png)
* [Context Diagram with Yourdon/DeMarco Symbols and Curved Lines](images/Lab_Data_System_Context_Diagram_Yourdon_V1.png)
* [Context Diagram with Yourdon/DeMarco Symbols without Subject Entity](images/Lab_Data_System_Context_Diagram_Yourdon_V2.png)
Data Flow Diagrams (Level 1 and higher)
* [Level 1 Data Flow Diagram](images/Lab_Data_System_Level_1_DFD_Yourdon_Angled_Lines.png)
* [Level 1 Data Flow Diagram with Curved Lines](images/Lab_Data_System_Level_1_DFD_v1.png)
* [Level 1 Data Flow Diagram without Subject Entity](images/Lab_Data_System_Level_1_DFD_Yourdon_v2.png)
Context Diagram (Gane/Sarson Symbols)
====================================
![Context Diagram with Gane/Sarson Symbols](images/Lab_Data_System_Context_Diagram_Gane.png)
Context Diagram (Yourdon/DeMarco)
====================================
![Context Diagram with Yourdon/DeMarco Symbols and Curved Lines](images/Lab_Data_System_Context_Diagram_Yourdon_V1.png)
Context Diagram: Without Subject Entity
====================================
![Context Diagram with Yourdon/DeMarco Symbols and Curved Lines without Subject Entity](images/Lab_Data_System_Context_Diagram_Yourdon_V2.png)
Level 1 Data Flow Diagram
====================================
![Level 1 Data Flow Diagram](images/Lab_Data_System_Level_1_DFD_Yourdon_Angled_Lines.png)
Level 1 DFD ... with Curved Lines
====================================
![Level 1 Data Flow Diagram](images/Lab_Data_System_Level_1_DFD_v1.png)
Level 1 DFD ... Without Subject Entity
====================================
![Level 1 Data Flow Diagram without Subject Entity](images/Lab_Data_System_Level_1_DFD_Yourdon_v2.png)
Hands-on Group Exercise
========================================================
Working as a group, with a pen or pencil and paper, make some systems analysis diagrams. Sticky notes, a whiteboard, etc. may be helpful when brainstorming and designing the diagrams.
<p style="width: 650px; float: left; clear: right; margin-bottom: 5px; margin-left: 10px; text-align: right; font-weight: bold; font-size: 14pt;"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Group_visioning_session_-_group_one_-_Stierch.jpg/640px-Group_visioning_session_-_group_one_-_Stierch.jpg" alt="group" style="padding-bottom:0.5em;" />Photo: <a href="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Group_visioning_session_-_group_one_-_Stierch.jpg/640px-Group_visioning_session_-_group_one_-_Stierch.jpg">SarahStierch / Wikimedia</a></p>
Hands-on Group Exercise: Variations
========================================================
Data Flow Diagrams
Transform your use case diagram(s) into a context diagram and level 1 DFD, especially if there are many data processing steps or data sources. Diagram further levels (time permitting).
---
Flow Charts and Swim Lanes
Alternatively, if there are complex decisions, branching, or multiple entities performing various actions, then make a flow chart or swim lane diagram from your use case diagram(s).
Discussion
========================================================
Explain your diagrams to the group as though you were presenting your data system requirements to those who would build the data system. Ask questions that a system implementer might ask, especially where there are ambiguities.
<p style="width: 275px; float: left; clear: right; margin-bottom: 5px; margin-left: 10px; text-align: right; font-weight: bold; font-size: 14pt;"><img src="http://upload.wikimedia.org/wikipedia/commons/e/eb/User_journey_discussion.png" alt="discussion" style="padding-bottom:0.5em;" />Graphic: <a href="http://upload.wikimedia.org/wikipedia/commons/e/eb/User_journey_discussion.png">Jagbirlehl / Wikimedia</a></p>
In the Coming Sessions...
========================================================
* Entity-Relationship Diagrams
* MySQL Workbench
* Building Database Tables
* Database Applications
Action Items (videos, readings, and tasks)
========================================================
<table>
<tr border=0>
<td width="128" valign="middle"><img width="128" height="128" alt="watching" src="images/watching.jpg">
</td>
<td valign="middle">
<ul>
<li><a href="https://www.youtube.com/watch?v=O4PXqpv8TAw">Conceptual Data Modeling</a>
<li><a href="https://www.youtube.com/watch?v=V5DyvUfsboA">Defining table relationships</a>
<li><A href="https://www.youtube.com/watch?v=SVV7HjKmFY4">Databases and SQL</a>
<li><a href="https://www.youtube.com/watch?v=-fQ-bRllhXc">ERD Training</a>
</ul>
</td>
</tr>
<tr>
<td width="128" valign="middle"><img width="128" height="128" alt="readings" src="images/reading.jpg">
</td>
<td valign="middle">
<ul>
<li><A href="http://practicalcomputing.org/about">PCfB</a> textbook: Chapter5. Handling Text in the Shell
<li>Skim: Wikipedia: <a href="http://en.wikipedia.org/wiki/Requirements_analysis">Req. anal.</a>, <a href="http://en.wikipedia.org/wiki/Database_design"</a>DB design, <a href="http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model">E-R model</a>, and <a href="http://en.wikipedia.org/wiki/Database_normalization">normalization</a>
<li>Explore: <A href="http://ciso.uw.edu/privacy/">UW Privacy</a>, <a href="http://yourdon.com/strucanalysis/wiki/index.php/Introduction">SA Wiki</a>, <a href="http://en.wikibooks.org/wiki/Business_Analysis_Guidebook">BA Guidebook</a>
<li>Optional- Skim: <a href="http://www.amazon.com/dp/0123747309">RDDaI3CE</a> textbook: Chapters 3-4
</ul>
</td>
</tr>
<tr>
<td width="128" valign="middle"><img width="128" height="128" alt="tasks" src="images/tasks.jpg"></td>
<td valign="middle">
<ul>
<li> Create enough diagrams to describe your system "unambiguously"
<li> Post your system documents and diagrams in your project wiki
<li> Organize your material into a "Requirements Document" wiki page
<li> Refer to the <a href="https://github.com/brianhigh/data-workshop/wiki/Example-Requirements-Document">example</a> in the "Data Management" project wiki
</ul>
</td>
</tr>
</table>
See Also
========================================================
* [Rapid application development](http://en.wikipedia.org/wiki/Rapid_application_development)
* [Creately - Ultimate Flowchart Guide](http://creately.com/blog/diagrams/flowchart-guide-flowchart-tutorial/)
* [Traditional vs Modern Flowcharts](http://www.smartdraw.com/articles/flowchart/traditional-vs-modern-flowcharts.htm)
* [DFD over Flowcharts PDF](http://ratandon.mysite.syr.edu/cis453/notes/DFD_over_Flowcharts.pdf)
* [DFD Slideshow](http://www.slideshare.net/NidhiSharma78/data-flow-diagram-17909732)
* [Creately DFD](http://creately.com/diagram-community/popular/t/data-flow)
* [DFDs - and follow link to "Article"](http://indianatech2.net/dfd.html)
* [UML Data Modeling Video](https://www.youtube.com/watch?v=OOpiaIcyz30)
* [Graphical Data Flow Programming in LabVIEW Video](https://www.youtube.com/watch?v=PqxStfwjQoQ&list=PLB968815D7BB78F9C)
Questions and Comments
========================================================
<p style="width: 380px; float: right; clear: right; margin-bottom: 5px; margin-left: 10px; text-align: right; font-weight: bold; font-size: 14pt;"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Happy_Question.svg/380px-Happy_Question.svg.png" alt="question" style="padding-bottom:0.5em;" />Image: <a href=http://commons.wikimedia.org/wiki/File:Happy_Question.svg">© Nevit Dilmen</a> / Wikimedia</p>
Some Parting Words
========================================================
> Essentially, all models are wrong, but some are useful.
--*<a href="http://en.wikipedia.org/wiki/George_E._P._Box">George E. P. Box</a>*
Source: *Empirical Model-Building and Response Surfaces* (1987), p. 424. (<a href="http://en.wikiquote.org/wiki/George_E._P._Box">Wikiquote</a>.)
========================================================
<p style="width: 744px; float: right; clear: right; margin-bottom: 5px; margin-left: 10px; text-align: right; font-weight: bold; font-size: 14pt;"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Flammarion_Woodcut_1888_Color_2.jpg/744px-Flammarion_Woodcut_1888_Color_2.jpg" alt="flammarion" style="padding-bottom:0.5em;" />Source: <a href="http://commons.wikimedia.org/wiki/File:Flammarion_Woodcut_1888_Color_2.jpg">Camille Flammarion / Wikimedia</p>