tag:blogger.com,1999:blog-85093432725621956872024-03-16T11:52:27.706-07:00IEEE Software BlogMei Nagappanhttp://www.blogger.com/profile/03225600742361609176noreply@blogger.comBlogger122125tag:blogger.com,1999:blog-8509343272562195687.post-45270600831995148142021-09-12T08:02:00.003-07:002021-09-12T08:02:33.174-07:00
<h1 style="text-align: left;"><span style="font-family: CMR17; font-size: 17pt;"><b>Information Loss Leads to Robustness</b></span> </h1>
<div class="page" title="Page 1">
<div class="layoutArea">
<div class="column">
<p>
</p><div class="page" title="Page 1">
<div class="layoutArea">
<div class="column">
<h2 style="text-align: left;"><span style="font-family: 'CMR12'; font-size: 12.000000pt;">W.B. Langdon, J. Petke, D. Clark<br /></span><span style="font-family: 'CMR12'; font-size: 12.000000pt;">
CREST, Department of Computer Science, University College, London </span></h2>
</div>
</div>
</div><p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">It is tacitly accepted that real software is far from perfect. That everyday
computer systems deliver real economic advantage to their users even
though they contain both documented and undocumented bugs. Often
computer scientists are embarrassed by this imperfection and teach
students that programs should be free from errors. Yet software quality
managers know the fastest way to bankrupt their company is to prevent it
shipping code until all its errors have been corrected. We turn to
information theory to explain why software is resilient to both source code
and run time errors and often yields a usable answer despite its flaws [1].
</span></p>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">During the second world war Claude Shannon of Bell Labs, New Jersey,
formalised the notion of information, defining the amount of information
using entropy. The information content of a message defines the minimum
number of bits needed to code it (e.g. in order to send it via a telephony
link).
</span></p>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Pretty much every operation in a digital computer is irreversible. Meaning
that its inputs cannot be determined from its output. From an information
theory point of view, every irreversible operation loses information.<br />
Figure 1 shows computer operations as information funnels, with more
information going into their wide mouths than leaves via their output.
</span></p>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Figure 1 shows two numbers being added together (addition is
irreversible). To make the example more concrete, we assume the two
inputs are independent single digits (1–9, using Benford’s law), and
therefore their sum lies in the range 2–18. The red bar graphs show the
probabilities of the two inputs and of the output. We also show their
entropies. Entropy is defined on probability distributions. The more evenly
spread the distribution, the more information it contains and the higher </span><span style="font-family: CMR10; font-size: 11pt;">the entropy. The output (2–18) being more uniformly spread, has a higher
entropy (3.69 bits) than either input, but it is still less than the entropy of
the combined inputs together. That is, in this case, the addition
information funnel has lost 2.06 bits of information.</span></p>
<div class="page" title="Page 3">
<div class="layoutArea">
<div class="column">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Not only is this information loss inevitable, but it is cumulative. That is,
once information is lost, it cannot be restored.
</span></p>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Secondly although pretty much everything, bar simple assignment
statements, losses information, some operations loose more than others.
For example, testing if a value is greater than a threshold outputs a single
bit, containing (at most) 1 bit of information, even if the variable being
tested could contain 32 bits of information. Similarly a common technique
to increase resilience to errors is to use wrappers. E.g. to prevent run-time
exceptions by forcing a module’s input to lie in an expected range. Thus
the module may have a float input, but in reality expects values to be
three digit integers. Hence the developer may design a wrapper to return a
default value for negative numbers and numbers greater than 999.0 and
round other inputs to the nearest integer. Assuming it is sometimes
necessary (e.g. the input is sometimes 5.01), such a robustness increasing
wrapper will destroy information. </span></p><p>
<span style="font-family: 'CMR10'; font-size: 11.000000pt;"></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifx05cJcGq8ZTyREYBOAQUlLBLZgKQEhDPVwvchpwMiI3Sd8BJS0jLoFApGAeOqgTo60q4yCFPtGEkM0qYmUu3LvF8Yh2I6b1ZZqXrxwLM5sYXNNW7eRzi-h_O6xjrThThfg7LtaSp0wQ/s724/information_funnel_graphs.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="724" data-original-width="397" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifx05cJcGq8ZTyREYBOAQUlLBLZgKQEhDPVwvchpwMiI3Sd8BJS0jLoFApGAeOqgTo60q4yCFPtGEkM0qYmUu3LvF8Yh2I6b1ZZqXrxwLM5sYXNNW7eRzi-h_O6xjrThThfg7LtaSp0wQ/w219-h400/information_funnel_graphs.png" width="219" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><i style="font-family: CMR10; text-align: left;"><span style="font-size: xx-small;">Figure 1: An information funnel. All computer operations lose information. Even something as fundamental as addition outputs less information than it took in. Example (see red bar charts): addition of two independent numbers (drawn using Benford’s Law from 1 to 9, each contain 2.88 bits of information, total 5.75 bits). The result, 2 to 18, contains only 3.69 bits. </span></i></td></tr></tbody></table><p></p><div class="page" title="Page 2">
</div><p>
</p><div class="page" title="Page 3">
<div class="layoutArea">
<div class="column">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Figure 2 shows a large nested function composed of floating point
arithmetic operations (+, -, </span><span style="font-family: 'CMSY10'; font-size: 11.000000pt;">× </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">and </span><span style="font-family: 'CMSY10'; font-size: 11.000000pt;">÷</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">). Each function acts as a two input
information funnel and loses information. The red subtree at the base of
Figure 2 is a bug and the coloured chain shows the execution of nested
functions which call the bug. The whole function is executed on 48 test
cases and the size of the coloured nodes represents the number of tests
when the error and the correct code are not identical at that point in the
execution. The colour of these nodes represents the average difference. In
this example, the error is visible on all the tests at the function
immediately after it. However the number of test cases where the
evaluation is not identical relentlessly falls as we move up the chain of
coloured nodes towards the outer most function. Indeed, in this example,
it falls to zero before we reach the end of the expression. Meaning none of
the test cases are able to detect the error.</span></p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5jDlVbC1Z-zttLBmY_wRpoGWFQBnWL8oCReEYdEzJsTLz4XOjkWMwEi1oUoxF3YIJvst8-HBZHHFsPZiGZuLrd0e102nLkRJrTLsEusaFAOQPl76K7rMLAtf0hV9wWi-RdUxRp3-SoRM/s2615/david2_colour.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1203" data-original-width="2615" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5jDlVbC1Z-zttLBmY_wRpoGWFQBnWL8oCReEYdEzJsTLz4XOjkWMwEi1oUoxF3YIJvst8-HBZHHFsPZiGZuLrd0e102nLkRJrTLsEusaFAOQPl76K7rMLAtf0hV9wWi-RdUxRp3-SoRM/w400-h184/david2_colour.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><i style="text-align: left;"><span style="font-size: xx-small;"><span style="font-family: CMR10;">Figure 2: Impact of error (red subtree) dissipates the further away we measure its change on test values. Size of functional nodes shows number of disrupted test cases. The colour shows, on a log scale, the average difference in evaluation on the remaining disrupted nodes. Brightest yellow shows smallest non-zero difference (RMS 3</span><span style="font-family: CMMI10;">.</span><span style="font-family: CMR10;">1 10</span><span style="font-family: CMSY8; vertical-align: 4pt;">−</span><span style="font-family: CMR8; vertical-align: 4pt;">10</span><span style="font-family: CMR10;">). Eventually this large change has no impact at all [2] [3]. </span></span></i></td></tr></tbody></table></p><p></p>
<div class="page" title="Page 4">
<div class="layoutArea">
<div class="column">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Obviously the loss of information and details of error hiding will depend on
the details of the expression and test suite. Nonetheless in functional parts
of the code, the monotonic fall in the effectiveness of testing with distance
from the error is always true and holds regardless of whether the error is
caused by a bug in the source code or a runtime induced fault. Preliminary
results hint that the effectiveness of test suites increases only slowly with
the number of tests (in proportion to log of the number of tests) and
suggests that independent tests are more effective at uncovering faults.
</span></p>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">In traditional imperative code the data flow need not follow the execution
flow. In particular, the effect of an error may be stored in a variable which
is used later. Nonetheless when it is used (computed on) the information it
contains about the error may be (partially) lost, particularly if the impact
of the error passes through a long chain of operations.
</span></p>
</div>
</div>
</div><p><span style="font-family: CMR10; font-size: 11pt;">The information funnel view is entirely consistent with Voas’ PIE
(propagation, infection, and execution) framework [4] for explaining
software errors. Voas says to have any observable effect the error must be
</span><span style="font-family: CMTI10; font-size: 11pt;">executed</span><span style="font-family: CMR10; font-size: 11pt;">, that execution must make a difference, i.e. </span><span style="font-family: CMTI10; font-size: 11pt;">infect </span><span style="font-family: CMR10; font-size: 11pt;">the state of the </span><span style="font-family: CMR10; font-size: 11pt;">computation, and crucially that state change must </span><span style="font-family: CMTI10; font-size: 11pt;">propagate </span><span style="font-family: CMR10; font-size: 11pt;">to the
program’s output. What we see is where the change of state passes
through a chain of operations (each of which loses information)
information about the error may disappear on one or more test cases.
That is, information theory backs up the intuition that deeply nested
errors will be more difficult to find using testing but also they may have no
impact on many test cases. It also justifies the use of unit testing, as not
only may the bug be easier to locate, but also, as the code is less heavily
nested, bugs may manifest themselves more readily.</span></p>
<p><span style="font-family: CMR10; font-size: 11pt;">The fact that software is </span><span style="font-family: CMTI10; font-size: 11pt;">not fragile </span><span style="font-family: CMR10; font-size: 11pt;">[5] is only tacitly recognised, is perhaps
partially explained by the large number of software engineering phenomena
which express it using a range of terminology from different research silos:</span></p>
<div class="page" title="Page 5">
<div class="layoutArea">
<div class="column">
<ul>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">In mutation testing the problem of </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">equivalent mutants </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">is wide spread.
And yet, an equivalent mutant is simply a code change which can not
be separated from the original code by testing.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Schulte et al. [6] described </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">software mutational robustness </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">when they
showed in examples of production C and assembler code that more
than 30% of random code changes made no difference under testing.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Similarly Harrand et al. [7] found </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">neutral program variants </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">when
they mutated Java code.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Members of the same Stockholm team [8] use the term </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">correctness
attraction </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">to describe the imperturbability of ordinary software to
injection of minimal changes. That is, the Java program gives the
same output (assumed to be correct) even though a value set by
executed code has been changed by a small amount at run time.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">We [1] suggest the phrase </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">disruption propagation failure </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">as a
generalisation of </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">failed error propagation </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[9], to recognise that the
change in program state need not be an error or traditional source
code bug and instead she includes all manner of errors, mutations
and run-time perturbations.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">Coincidental correctness </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">and </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">fault masking </span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">can be placed in Voas’
PIE framework in that an error is said to have occurred but that it
did not manifest (e.g. due to not infecting the state in the first place
or failing to propagate). </span></p>
</li>
</ul>
</div>
</div>
</div>
<div class="page" title="Page 6">
<div class="layoutArea">
<div class="column">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">In future we will see software systems of increasing complexity. Such
systems have long past the point of being comprehensible by any one
person and indeed any team of people. Any yet globally we depend on the
reliability of software.
</span></p>
</div>
</div>
</div><p><span style="font-family: CMR10; font-size: 11pt;">In a world addicted to software, managing its quality will become ever
more important. Information theory and entropy loss analysis offers a
unified view of bugs, faults, transient errors, hardening code to resist
tampering and attack, defect resilience and can offer insights into software
verification and validation (V&V), particularly testing.</span></p><p><span style="font-family: 'CMR10'; font-size: 11.000000pt;"><br /></span></p>
<div class="page" title="Page 6">
<div class="layoutArea">
<div class="column">
<p><span style="font-family: 'CMBX12'; font-size: 14.000000pt;">You might also enjoy reading
</span></p>
<ul>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Wikipedia article on information theory and Shannon entropy.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Correctness Attraction: A Study of Stability of Software Behavior
Under Runtime Perturbation, 12 November 2018. Martin Monperrus
and his co-authors discuss results on 10 Java programs where
injection of minimal run time changes made no difference in most
(68%) cases.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Bit-Rot: Computer Software Degrades over Time. IEEE Software
blog, 11 March 2020.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Genetic Improvement. How search is being used to improve existing
programs. IEEE Software blog, 2 February 2016.
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Automated bug fixing. An interview with Westley Weimer and
Martin Monperrus (published in Ubiquity, 2015, March, pp 1–11).
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Automated bug fixing in Facebook. Mark Harman and his
coauthors describe genetic improvement at a global scale [10].
</span></p>
</li>
<li style="font-family: 'CMSY10'; font-size: 11.000000pt;">
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">Benford’s law of anomalous numbers. Wikipedia article on why
leading digits are often small.</span><span style="font-family: CMR10; font-size: 11pt;"> </span></p></li>
</ul>
</div>
</div>
</div><p><span style="font-family: 'CMR10'; font-size: 11.000000pt;"> </span></p><p>
</p><div class="page" title="Page 7">
<div class="layoutArea">
<div class="column">
<p><span style="font-family: 'CMBX12'; font-size: 14.000000pt;">References
</span></p>
<ol style="list-style-type: none;">
<li>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[1] Justyna Petke, William B. Langdon, and David Clark. Software
robustness: A survey, a theory, and some prospects. In Paris Avgeriou
and Dongmei Zhang, editors, </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">ESEC/FSE 2021, Ideas, Visions and
Reflections</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">, Athens, Greece, 23-28 August 2021. ACM.
</span></p>
</li>
<li>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[2] William B. Langdon. Fitness first. In Wolfgang Banzhaf, Leonardo
Trujillo, Stephan Winkler, and Bill Worzel, editors, </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">Genetic
Programming Theory and Practice XVIII</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">, East Lansing, MI, USA,
19-21 May 2021. Springer. Forthcoming.
</span></p>
</li>
<li>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[3] William B. Langdon, Justyna Petke, and David Clark. Dissipative
polynomials. In Nadarajen Veerapen, Katherine Malan, Arnaud
Liefooghe, Sebastien Verel, and Gabriela Ochoa, editors, </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">5th
Workshop on Landscape-Aware Heuristic Search</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">, GECCO 2021
Companion, Internet, 10-14 July 2021. ACM.
</span></p>
</li>
<li>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[4] Jeffrey M. Voas. PIE: a dynamic failure-based technique. </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">IEEE
Transactions on Software Engineering</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">, 18(8):717–727, Aug 1992.
</span></p>
</li>
<li>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[5] William B. Langdon and Justyna Petke. Software is not fragile. In
Pierre Parrend, Paul Bourgine, and Pierre Collet, editors, </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">Complex
Systems Digital Campus E-conference, CS-DC’15</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">, Proceedings in
Complexity, pages 203–211. Springer, September 30-October 1 2015.
Invited talk.
</span></p>
</li>
<li>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[6] Eric Schulte, Zachary P. Fry, Ethan Fast, Westley Weimer, and
Stephanie Forrest. Software mutational robustness. </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">Genetic
Programming and Evolvable Machines</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">, 15(3):281–312, September
2014.
</span></p>
</li>
<li>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[7] Nicolas Harrand, Simon Allier, Marcelino Rodriguez-Cancio, Martin
Monperrus, and Benoit Baudry. A journey among Java neutral
program variants. </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">Genetic Programming and Evolvable Machines</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">,
20(4):531–580, December 2019.
</span></p>
</li>
<li>
<p><span style="font-family: 'CMR10'; font-size: 11.000000pt;">[8] Benjamin Danglot, Philippe Preux, Benoit Baudry, and Martin
Monperrus. Correctness attraction: a study of stability of software
behavior under runtime perturbation. </span><span style="font-family: 'CMTI10'; font-size: 11.000000pt;">Empirical Software
Engineering</span><span style="font-family: 'CMR10'; font-size: 11.000000pt;">, 23(4):2086–2119, 1 August 2018.</span></p></li><li><p><span style="font-family: CMR10; font-size: 11pt;">[9] Gunel Jahangirova, David Clark, Mark Harman, and Paolo Tonella.
An empirical study on failed error propagation in Java programs with
real faults. ArXiv, 24 Nov 2020. abs/2011.10787.</span></p></li><li><p><span style="font-family: CMR10; font-size: 11pt;">[10] John Ahlgren, Maria Eugenia Berezin, Kinga Bojarczuk, Elena
Dulskyte, Inna Dvortsova, Johann George, Natalija Gucevska, Mark
Harman, Ralf Laemmel, Erik Meijer, Silvia Sapora, and Justin
Spahr-Summers. WES: Agent-based user interaction simulation on
real infrastructure. In Shin Yoo, Justyna Petke, Westley Weimer, and
Bobby R. Bruce, editors, </span><span style="font-family: CMTI10; font-size: 11pt;">GI @ ICSE 2020</span><span style="font-family: CMR10; font-size: 11pt;">, pages 276–284, internet, 3
July 2020. ACM. Invited Keynote. </span></p></li><li><p><span style="font-family: 'CMR10'; font-size: 11.000000pt;"> </span></p></li>
</ol>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>Federica Sarrohttp://www.blogger.com/profile/14388907334162319988noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-45081888959239620952020-10-24T04:32:00.000-07:002020-10-24T04:32:48.213-07:00What went wrong with Covid-19 Contact Tracing Apps - PART III<h1 style="text-align: center;">The Ups and Downs of Immuni</h1><h2 style="text-align: center;">A Brief History of the Italian Contact Tracing App</h2><div style="text-align: left;">Author: <span style="background-color: white;"><a href="https://www.linkedin.com/in/alessio-ferrari-19134aa/" target="_blank">Alessio Ferrari</a> (<span style="font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif; white-space: nowrap;"><a href="https://twitter.com/alessferra" target="_blank">@alessferra</a>)</span></span></div><div style="text-align: left;">In collaboration with: <a href="https://www.linkedin.com/in/muneera-bano-71b27aa/" style="background-color: white; font-family: arial; text-align: justify; text-decoration-line: none;" target="_blank">Muneera Bano</a><span style="background-color: white; font-family: arial; text-align: justify;"> (</span><a href="https://twitter.com/DrMuneeraBano" style="background-color: white; font-family: arial; text-align: justify; text-decoration-line: none;" target="_blank">@DrMuneeraBano</a><span style="background-color: white; font-family: arial; text-align: justify;">), </span><a href="https://www.linkedin.com/in/chetan-arora/" style="background-color: white; font-family: arial; text-align: justify; text-decoration-line: none;" target="_blank">Chetan Arora</a><span style="background-color: white; font-family: arial; text-align: justify;"> (</span><a href="https://twitter.com/chetan_arora" style="background-color: white; font-family: arial; text-align: justify; text-decoration-line: none;" target="_blank">@chetan_arora</a><span style="background-color: white; font-family: arial; text-align: justify;">), </span><a href="https://www.linkedin.com/in/didar-zowghi/" style="background-color: white; font-family: arial; text-align: justify; text-decoration-line: none;" target="_blank">Didar Zowghi</a><span style="background-color: white; font-family: arial; text-align: justify;"> (</span><a href="https://twitter.com/DidarZowghi" style="background-color: white; font-family: arial; text-align: justify; text-decoration-line: none;" target="_blank">@DidarZowghi</a><span style="background-color: white; font-family: arial; text-align: justify;">)</span></div><div style="text-align: left;"><span style="background-color: white; font-family: arial; text-align: justify;"><br /></span></div><div style="text-align: left;"><span style="background-color: white; font-family: arial; text-align: justify;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwuRWgGe3J6sbZQLQP0ISdHM7zDvw7xpIwWB0sWrXZ1NqCPa1Y-q5yCRk7V4Ax18-nRNOlmnRWPlwRUxDf7JWzyloVw9eGehoHNnjrcJl4j9Nr4cYFOiz7CNZ2lF2So4H-TzfeN8Kw6QX0/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1000" data-original-width="1500" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwuRWgGe3J6sbZQLQP0ISdHM7zDvw7xpIwWB0sWrXZ1NqCPa1Y-q5yCRk7V4Ax18-nRNOlmnRWPlwRUxDf7JWzyloVw9eGehoHNnjrcJl4j9Nr4cYFOiz7CNZ2lF2So4H-TzfeN8Kw6QX0/" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><span style="color: #222222; font-family: helvetica; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;"><div style="text-align: left;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">Italy was the first nation in Europe to be heavily hit by the COVID-19 wave. In mid February, the virus was silently circulating in the northern regions, and the </span><a href="https://medium.com/@codecodekoen/covid-19-superspreading-events-database-4c0a7aa2342b" style="background-color: transparent; text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">superspreading event</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> of the Atalanta-Valencia Champions League football match, now known as </span><a href="https://www.cbssports.com/soccer/news/coronavirus-how-a-champions-league-match-contributed-to-italys-covid-19-outbreak/" style="background-color: transparent; text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">“Game Zero”</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">, accelerated its diffusion in the nation and later in the rest of the continent. </span></div></span></div></div></span></div><div style="text-align: left;"><p><span style="font-family: helvetica;"><span><span style="background-color: white; color: #222222; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Since the early days of the pandemic, researchers, technicians, journalists, and common people started flooding the media with discussions on the possibility of an app to support contact tracing and contain the virus. The solution, called Immuni, was announced on April 16, and was released on June 15, without any financial cost for the Italian governmen</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">t. In mid October, it has been downloaded more than 9 million times (24% percent of Italian smartphones). In almost 5 months from its release, about 1.000 positive users shared their status, out of almost 500.000 positive cases identified. It is not clear how many new cases have been discovered through Immuni at today---the number of notifications is increasing rapidly---but at the beginning of September the total number of people who discovered to be positive thanks to the app </span><a href="https://www.ilsole24ore.com/art/immuni-e-efficace-ultimi-numeri-luci-e-ombre-app-il-covid-19-ADESe1n?refresh_ce=1" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">was only 7</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and one month later </span><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.agendadigitale.eu/cultura-digitale/immuni-come-funziona-lapp-italiana-contro-il-coronavirus/" style="text-decoration-line: none;">increased to 13.</a></span></span></span></p></div><div style="text-align: center;"><span id="docs-internal-guid-06f44751-7fff-2a78-6b20-d1195967bb26"><span style="font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 179px; overflow: hidden; width: 624px;"><img height="115" src="https://lh5.googleusercontent.com/qPVysaKjffC7oG1iYQ438GXzWrn38wZIQDDzFrHbWjLssa-rmITT6LkHnQRuR-1V4xsvj3lOC5rWXigEc_PVlMXfYisqx2yQieKyRnlHvmZPafRk8s7oyu8Ha9d1O89zk79jtqto=w400-h115" style="margin-left: 0px; margin-top: 0px;" width="400" /></span></span></span></div><div><span style="background-color: white; color: #222222; font-family: Arial; font-weight: 700; white-space: pre-wrap;">A free, privacy-preserving, transparent app</span></div><div><span id="docs-internal-guid-b58c8979-7fff-667c-e042-5e874aa47500"><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Immuni only uses public infrastructures located within the national borders, and it is managed by a public company, Sogei S.p.A. The source code has been developed by a private company, </span><a href="https://bendingspoons.com" style="text-decoration-line: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Bending Spoons S.p.A</span></a><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. without any financial cost for the government, it is released under a GNU Affero General Public License version 3, and can be downloaded from </span><a href="https://github.com/immuni-app/immuni-documentation" style="text-decoration-line: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">GitHub</span></a><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">It was developed to fulfill </span><span style="background-color: white; color: #24292e; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">utility</span><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: white; color: #24292e; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">accessibility</span><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: white; color: #24292e; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">accuracy</span><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: white; color: #24292e; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">privacy</span><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: white; color: #24292e; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">scalability</span><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="background-color: white; color: #24292e; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">transparency</span><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> principles, as stated in its </span><a href="https://github.com/immuni-app/immuni-documentation" style="text-decoration-line: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">documentation</span></a><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. On October 22, it had 4.1 stars in the App Store, and 3.5 in the Play Store, with highly polarised reviews. One of the most common titles of its negative reviews is “inutile”, which means </span><span style="background-color: white; color: #24292e; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">useless</span><span style="background-color: white; color: #24292e; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. But let’s start from the beginning. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 160px; overflow: hidden; width: 624px;"><img height="103" src="https://lh6.googleusercontent.com/zXPaHYeoTzhP2mOU25qmKkU0rtOEITZpqOc9kP7DTf2u-7p_xNVSuUi1a6HiPCR5hfcQViOGvx27eakxpCfI4qeBL8zlrtT-ZsZIdllkJ7ZiiykTBY8EzNlT9DAGcJxXZKyHIz4V=w400-h103" style="margin-left: 0px; margin-top: 0px;" width="400" /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Immuni in the Play Store has highly polarized ratings.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><a href="https://github.com/immuni-app/immuni-documentation" style="text-decoration-line: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">How does it work?</span></a><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Immuni uses the distributed DP-3T protocol, and the Google and Apple Exposure Notification framework, which is also adopted by the German Corona Warn-App. The app stores the identifiers of the smartphones of other Immuni users who come into close contact with you for more than 15 minutes, by exchanging information through Bluetooth Low Energy. The identifier of each user is generated locally, and changes frequently. If you are tested positive, a healthcare operator asks you if you want to report your case by sharing your recent list of generated identifiers. If you decide to share, the healthcare operator enables your app to load your list of identifiers on a central server. Each day, Immuni downloads the lists of identifiers of positive cases from the server, and looks for a match in the list of recently met people. This way, the users who came into contact with a positive case can be warned by their app and can go get tested. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Debated Incubation</span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Italy started its nationwide lockdown on March 9, and less than ten days after, the contact tracing app was announced as </span><a href="https://www.corriere.it/tecnologia/20_marzo_18/coronavirus-pronta-app-italiana-tracciare-contagi-cosi-possiamo-fermare-l-epidemia-c6c31218-6919-11ea-913c-55c2df06d574.shtml" style="text-decoration-line: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">“already developed”</span></a><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The app was expected to use the GPS to track movements, and also to identify crowds and dangerous behaviours. This was of course regarded as a privacy threat by the population and a long debate followed in the news and social media. On 16 April 2020 the solution from Bending Spoon S.p.A. was selected, but many aspects of the working principles of the app (e.g., centralised vs decentralised model), were still unknown, and on April 20 an </span><a href="https://nexa.polito.it/lettera-aperta-app-COVID19" style="text-decoration-line: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">open letter</span></a><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> was issued by Italian researchers encouraging the government to go for a transparent solution and a decentralised model. The public debate led to abandoning the initial option of the GPS, and led to an open-source, privacy preserving, and decentralised app based on Bluetooth. </span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Somehow, the public opinion acted as a (self-involved) user that ended up changing the system specification.</span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Late-spring birth </span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">After a pilot study in four specific regions that led to the discovery of three cases, Immuni was released on June 16. Italians saluted with excitement, with half a million downloads in the first 24 hours, and two millions in the first week.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Summer hibernation </span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> The initial buzz ended quite early, and the final number of downloads stagnated between 4 and 5 millions for the whole summer, with around 100-200.000 downloads per week. The virus felt less dangerous as the cases were decreasing, and people almost forgot that an app existed for contact tracing. Although the key idea of a contact tracing app is to identify cases of casual contacts, as the family contacts can be traced more easily, the app was not used in the period in which casual contacts were more frequent: summer time, which in Iitaly means seaside crowds, discos, and loud aperitivos in small roads. In Sardinia---a typical holiday region, almost untouched by the virus until June---the number of local outbreaks passed from 3 to 80 during summer.</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Autumn awakening</span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">With the increasing number of cases that followed the summer (2.000 at the beginning of October and 15.000 today) people started downloading Immuni more and more, with </span><a href="https://altems.unicatt.it/altems-covid-19" style="text-decoration-line: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">one million downloads per week</span></a><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, somehow looking at it as a vaccine, as also its name suggests. More users means also that more problems are emerging, especially concerning the integration of the app with the regional healthcare system, and, also to avoid the refusal of the app by some of the regions, the Government Decree of October 18 obliges the healthcare operators to enable the loading of the codes for the users who are tested positive. </span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Problems and Users’ Opinions</span></p><br /><ul style="margin-bottom: 0; margin-top: 0;"><li dir="ltr" style="color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I need it! When will they release it? </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">During the incubation of Immuni, from March to June 2020, news and social media were filled with discussions about the imminent release of the digital medicine for COVID-19. Both enthusiasts and skeptics seemed to think that people are as fast in developing apps as the computers are quick in running them, and thought that a novel, privacy-aware software with national impact, and (nice-to-have) able to interact with apps from other nations, could be developed in a weekend of mad programming. This was of course a false hope, but it is true that when the app came out it was almost summer, the pandemic appeared less dangerous (around 100 daily cases in mid-July), and you don’t carry your phone when you’re playing volleyball on the shore. </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Therefore, Immuni was released too late to be considered </span><span style="background-color: white; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">useful </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">as initially planned.</span></p></li></ul><br /><ul style="margin-bottom: 0; margin-top: 0;"><li dir="ltr" style="color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Wait, is it working? </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">The majority of the app reviews</span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">state that the Immuni is useless and they wonder if it’s working. Similarly to the australian app, Immuni was conceived to be as discreet and privacy-preserving as possible, but this implies that it does not clearly report the contacts, and their duration, so that you can have an idea if it is correctly doing what it’s supposed to do. The only moment in which you know that Immuni is working is when you get notified that you had a contact with a positive case. For some users, the possibility of this notification is too scary to keep the app installed. In conclusion, </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">although the app was developed around the pillar of </span><span style="background-color: white; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">transparency</span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, with open source code, it should also be somewhat transparent at runtime, with clear information about what it has been doing</span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">. </span></p></li></ul><br /><ul style="margin-bottom: 0; margin-top: 0;"><li dir="ltr" style="color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Shall I buy a new phone? </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">The app was designed to be </span><span style="background-color: white; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">accessible</span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, so that everyone could use it. However, some older versions of Android and iPhone could not run it. Furthermore, with some iPhone versions users complained of having problems when moving to certain provinces, as the app notifies them that their area is not covered. This is also a weird notification, as the app should not be aware of the position of the user. </span></p></li></ul><br /><ul style="margin-bottom: 0; margin-top: 0;"><li dir="ltr" style="color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Oh, I am COVID-19 positive, what to do now? </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">One of the problems noticed by some users is the lack of information on what to do when you are tested positive and you are an Immuni user. You receive the test results at home, and the healthcare operators should provide you information, but this did not happen and a special Government Decree was needed in October to oblige the healthcare operators to take Immuni into account. Still, some users complain that after receiving the results, they did not get any call from the healthcare operators, did not know what to do, and their casual contacts remained unaware of the possibility of being positive. </span></p></li></ul><br /><ul style="margin-bottom: 0; margin-top: 0;"><li dir="ltr" style="color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Oh, I had a contact with a COVID-19 positive, what to do now? </span><span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">Users complained that, after receiving the scary notification that they had a contact with a positive case, they did not know what to do. Were they supposed to self-isolate? Go for a test at their own cost? Many healthcare operators who were called in these cases did not have an answer for that. </span></p></li></ul><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Overall, </span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Immuni in itself appears to do its job, but it is still not well connected with the socio-technical ecosystem for contact tracing</span><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, and the healthcare practitioners involved in the contact tracing loop are not sufficiently trained on their role in the usage of the app. </span></p><br /><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">All is lost?</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">No, and we do not have to thank only the doctors this time, but also the software practitioners. I will report a personal fact. In my gym there was a positive case. As soon as my coach knew that, he notified us athletes through our Whatsapp group, and told us that we would be called by the healthcare operator to fix a test. The coach also sent the phone number of all the people present during the last training to the healthcare operator. How could he know who was present? Everytime we go, we register through a specific app, so we can be traced. The day after I received a call, I fixed the test, and I received an official email stating that I should self-isolate. After the test, I could check if I was positive from a very simple web portal, set-up just to release COVID-19 analysis (I was negative). This whole loop did not involve Immuni, but was supported by apps and software, that, together with the platforms entertaining me during the self-isolation, made me clear how much software practitioners have done to set-up the infrastructure to fight the pandemic, even before knowing there would be one. </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: white; color: #222222; font-family: Arial; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-------------------------------------------------------------------------------------------------------------------</span></p><div><span style="background-color: white; color: #222222; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div></span></div><div><span><b>Previous Articles on Contact Tracing Apps</b></span></div><div><span><b><br /></b></span></div><div>1- <a href="http://blog.ieeesoftware.org/2020/08/what-went-wrong-with-covid-19-contact.html" target="_blank">Australia's CovidSafe App</a></div><div>2. <a href="http://blog.ieeesoftware.org/2020/09/what-went-wrong-with-covid-19-contact.html" target="_blank">German's Corona-Warn-App</a></div><div><br /></div><h1 style="text-align: left;"><br /></h1>Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-3361483902582470522020-09-23T09:23:00.002-07:002020-09-28T16:36:01.107-07:00What went wrong with Covid-19 Contact Tracing Apps - PART II<p> </p><span id="docs-internal-guid-e467a61c-7fff-c65b-55a3-0ec8c11cdadb"><h1 dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 20pt;"><span style="font-family: Arial; font-size: 20pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Germany’s Corona-Warn-App</span></h1><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><a href="https://www.blogger.com/blog/post/edit/8509343272562195687/253144981854593759#" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Chetan Arora</span></a><span style="color: #131413; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (</span><a href="https://www.blogger.com/blog/post/edit/8509343272562195687/253144981854593759#" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">@chetan_arora</span></a><span style="color: #131413; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">), </span><a href="https://www.blogger.com/blog/post/edit/8509343272562195687/253144981854593759#" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Muneera Bano</span></a><span style="color: #131413; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (</span><a href="https://www.blogger.com/blog/post/edit/8509343272562195687/253144981854593759#" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">@DrMuneeraBano</span></a><span style="color: #131413; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">), </span><a href="https://www.blogger.com/blog/post/edit/8509343272562195687/253144981854593759#" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Didar Zowghi</span></a><span style="color: #131413; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (</span><a href="https://www.blogger.com/blog/post/edit/8509343272562195687/253144981854593759#" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">@DidarZowghi</span></a><span style="color: #131413; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">)</span></p><br /><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;"><a href="http://blog.ieeesoftware.org/2020/08/what-went-wrong-with-covid-19-contact.html" style="text-decoration-line: none;">Previous Part I: Australia's CovidSafe App</a></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /></p><div class="separator" style="clear: both; text-align: center;"><img height="320" src="https://lh3.googleusercontent.com/E5WPtV1GCzdfNyHzfQ43ObBnZy-mRNhackTsmTNQh0toGHuGO-T4hfvVhTjnE4X09WN62AoUKLo5rlPUD6iSVkIiZ5GFtIl9KMRwzKZoFBpJRcY7fH_gg7VxKmA8rTf037r0HJFk=w245-h320" style="margin-left: 0px; margin-top: 0px; text-align: left;" width="245" /></div><div class="separator" style="clear: both; text-align: left;"><span style="color: #131413; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">Over the past eight months, the novel coronavirus has impacted each and every aspect of our lives. What would’ve seemed like a narration of a sci-fi movie until 2019 is our bitter reality today. An integral part of this new reality are contact-tracing apps. We covered the factor leading to the widespread rejection of Australia’s CovidSafe app and how it failed to deliver on its promises in the </span><a href="http://blog.ieeesoftware.org/2020/08/what-went-wrong-with-covid-19-contact.html" style="text-align: justify; text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">first blog</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"> of this series. This entry explores the factors surrounding Germany’s national contract tracing application -- </span><a href="https://www.coronawarn.app/en/" style="text-align: justify; text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Corona-Warn-App</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">. Corona-Warn-App notifies the users if they’ve been in contact with someone who tested positive for COVID-19. The app further allows users to receive their test results from the testing labs on the app. </span></span></div><span id="docs-internal-guid-ef627c8b-7fff-ec36-2370-d7bb0475e45d"><h2 dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-top: 18pt; text-align: center;"><span style="font-size: 16pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;">The “German” Engineering and Transparency</span></span></h2><div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Engineering Practice and Implementation</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Corona-Warn-App first launched on June 16, 2020 and has been updated several times after the fact. The app has been developed using Google and Apple’s </span><a href="https://www.google.com/covid19/exposurenotifications/" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Exposure Notification framework</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and works with </span><a href="https://developer.android.com/guide/topics/connectivity/bluetooth-le" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Bluetooth low energy</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, and stores locally the randomized identifiers of the other phones it comes in contact with. The unique identifiers of each phone are valid only for 10-20 minutes, and are updated thereafter. Among the global contact tracing apps split over </span><a href="https://www.bbc.com/news/technology-52355028" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">centralized vs decentralized</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> mode, the german app took the more secure decentralized path. The randomized identifiers of a user’s contacts are stored locally on the phone, and only voluntarily stored on a central server, when the users test positive. No personal data is stored by the app. The app was launched in two languages -- German and English, and has since been updated to include Turkish, Bulgarian, Polish and Romanian, with plans to further extend it to Arabic and Russian.</span></span></div><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Democratic Practices</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Germany’s Corona-Warn-App, vis-à-vis numerous contact tracing apps from other countries, stood out on several levels. The app development was based on democratic principles, wherein the federal health institute - </span><a href="https://www.rki.de/EN/Home/homepage_node.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Robert Koch Institute (RKI)</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (i) involved reputed public and private partners for developing and supporting this app -- such as SAP, </span><a href="http://www.fraunhofer.de/en" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Fraunhofer research institute</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://www.telekom.com/en" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Deutsche Telekom</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, and </span><a href="https://cispa.de/en" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Centre for Information Security</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, (ii) maintained transparency in the source code management by making it open source from the very outset of its launch, and (iii) designing the app based on GDPR principles to alleviate any issues related to data privacy. </span><span style="color: #0e101a; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The app was fully backed by the government as support to the manual contact tracing system and for spreading awareness in public on coronavirus, and even termed it as the “</span><a href="https://www.dw.com/en/germany-launches-best-coronavirus-tracing-app/a-53825213" style="text-decoration-line: none;"><span style="color: #4a6ee0; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">best app</span></a><span style="color: #0e101a; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” globally for this purpose.</span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="color: #131413; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 280px; overflow: hidden; width: 510px;"><span style="font-family: arial;"><img height="280" src="https://lh6.googleusercontent.com/--_w4_cZP8R3y-N5Zgpg5jMS-DkOS5rTX1ctRaA4FAd74d9bH1ag8w3XRhFURmGFY8lMCo2GutWdKn8-TkGBUTpwbLNyo1SqKLWQJUOpicy6xjER1viNfK7bvy9vCZG5vIZlpwhR" style="margin-left: 0px; margin-top: 0px;" width="510" /></span></span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Engagement with the Users</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. As we noted in our first blog, our previous research</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> established that the dissatisfaction of users can result in software project failures even if it is delivered on time, on budget and is of high quality. In particular, in countries like Germany with a low-trust index of the citizens in their government, an indication of non-democratic or non-inclusive practice could lead to dissatisfied users. Given the low trust in government, the app had slim chances of success and adoption, especially given the </span><a href="https://www.spiegel.de/netzwelt/apps/corona-warn-app-wie-erklaeren-sich-die-gesamtkosten-von-68-millionen-euro-a-56b5abe1-e0a6-4b1c-9177-9066df3d9b14" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">exorbitant 68 million Euros estimated cost of the app</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> by the end of 2021. RKI’s democratic practices outlined above improved these chances. The developers gained and maintained the trust of the users by staying in contact with the users. The developer-user communication contributed significantly to the adoption of the app.</span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 195px; overflow: hidden; width: 451px;"><span style="font-family: arial;"><img height="195" src="https://lh3.googleusercontent.com/Hd22RS_O8FWTVndQRAqYxbuGFksI2sh2gGEikNw1ER0hFy1oXmDulZ6Q8qJxu_V6lBSG77DPwvR75hYX24JkeWAycsWnn1taufcdnWUbjEZ0L1z5LfkjoARUlTUBU-AFPzF1PjS6" style="margin-left: 0px; margin-top: 0px;" width="451" /></span></span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">As per the </span><a href="https://www.reuters.com/article/us-health-coronavirus-contact-tracing/tracing-apps-may-stem-covid-19-spread-even-when-only-a-few-use-them-study-idUSKBN25U2YM?il=0" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">statistical forecasting by Oxford University’s Nuffield Department of Medicine and Alphabet Inc (Google)</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, a contact tracing app, such as, Corona-Warn-App if regularly used by 15% of the population alongside a well-staffed contact-tracing workforce can potentially lead to a 15% drop in overall infection rates and an approximate 11% drop in COVID-19 deaths. With 18.4 million downloads recorded as of 23</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">rd</span></span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> September 2020, more than 20% of the population in Germany has already downloaded the contact-tracing app. </span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">While the number of downloads, in proportion to the population, is encouraging to compare with other countries such as Australia, the number is still low. In a country of more than 83 million inhabitants with approximately 57 million of them owning smartphones, the contact tracing app can not be simply termed as “success” or the “best” contact-tracing app. While the German app, against some odds, seems to have more than 18 million downloads, the number of downloads is still less than one-third of the maximum number. The app completed 100 days in operation on September 23</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">rd</span></span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> 2020. The officials reported only 5000 of 277376 people (that tested positive for COVID-19 in Germany) voluntarily shared their result as positive and their contact results on the app. Despite such results, the app was termed as the “</span><a href="https://www.zdf.de/nachrichten/politik/coronavirus-100-tage-warn-app-100.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">best app</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. In the next section, we discuss the possible grounds for low adoption rates and what went wrong for the German app. </span></span></p><h2 dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-left: 72pt; margin-top: 18pt; text-align: left;"><span style="font-size: 16pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;">What went “schief” for the Corona-Warn-App</span></span></h2><h2 dir="ltr" style="line-height: 1.38; margin-bottom: 6pt; margin-left: 72pt; margin-top: 18pt; text-align: center;"><span style="border: none; display: inline-block; height: 433px; overflow: hidden; width: 360px;"><span style="font-family: arial;"><img height="456" src="https://lh5.googleusercontent.com/ugbnRPVIoN5J_LSHNMc5MjEkRskfH8wdB7KNe4GVxsTas0JBfjbjC6WUy4dUhu0WwKBG3rR3NyDSOdHPXCwHqkQEkSZEH3TJJCkIDfCZjvq0RYF2BmzD_ZYZFzvcpmnnS6OHQd0M=w233-h456" style="margin-left: 0px; margin-top: -35.1237px;" width="233" /></span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;">We collected all the user reviews from both the Apple store and the Google store for the iOS and Android versions of the app, respectively, from the onset of the app to September 15th, 2020. We base our analysis on the reviews collected.</span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Technical Issues</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Based on the user reviews of the app on Google Play store and the App store from Apple, more than a quarter of the reviews complained about bugs in different versions of the app. While developers of the app, to their credit, maintained a chain of communication with the reviewers on both the App stores, the app and its adaptability has been definitely affected by glitches and bugs throughout its lifespan so far. </span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The second most prevalent issue in the app (according to the user reviews) is related to the platform and devices. Corona-warn-app has </span><a href="https://www.tagesschau.de/investigativ/corona-warn-app-113.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">major issues with iPhones</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://www.dw.com/en/germanys-coronavirus-tracing-app-criticized-over-warning-failures/a-54305099" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">did not work with Android phones </span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">either for up to five weeks due to issues in the operating systems. The app further does not work with older OS versions in both iOS and Android phones. For instance, for iOS devices one would require a phone with iOS version 13.5 or later, and similar technical restrictions exist for Android devices. According to an estimate by experts, Corona-Warn-App wouldn’t work for 10-20% of devices in Germany, i.e., this section of the population is divested of the benefits offered by digital contact tracing.</span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Lack of Cultural Considerations.</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> While the app was available in English and German from the beginning, and Turkish (given a large fraction of Turkish speakers in Germany), the app does not yet include Arabic and Italian languages. As inferred by the following review on the app in the Google store - “Die App muss mindestens auf italienisch, spanisch und arabisch verfügbar sein :) halbe Million Italiener, 2 Millionen arabisch sprechende wohnen in Deutschland.” translated as “</span><span style="color: #131413; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The app must be at the very least available in Italian, Spanish and Arabic. There are 0.5 million Italian and 2 million Arabic speakers living in Germany</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. With the influx of Arabic (and Kurdish)-speaking asylum seekers and migrants in Germany in the past few years, it was naturally expected for the Corona-Warn-App to be available in Arabic, which unfortunately has not been the case. In fact, in a recent turn of events, the government claimed that translation of the app in </span><a href="https://www.br.de/nachrichten/netzwelt/vier-dinge-die-bei-der-corona-warn-app-besser-werden-muessen,SBK08Yo" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Kurdish will cost a sum of 250,000 Euros</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. </span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Privacy and Effectiveness Concerns</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. </span><span style="color: #0e101a; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Many users, from the 18 million that downloaded the app, claimed that they would uninstall the app or will discontinue using it. As per the experts, only </span><a href="https://www.rheinpfalz.de/politik_artikel,-100-tage-corona-warn-app-die-wirkung-k%C3%B6nnte-h%C3%B6her-sein-_arid,5113566.html" style="text-decoration-line: none;"><span style="color: #4a6ee0; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">15 million are active users</span></a><span style="color: #0e101a; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which is a major blow to the effectiveness, in addition to and not discounting the fact that a large fraction of potential users did not install the app in the first place.</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> Germans still do not fully trust the privacy and data protection of the app, and the concerns remain over the period as suggested by a survey </span><a href="https://initiatived21.de/app/uploads/2020/09/ergebnisse-befragung-corona-warn-app-egovernment-monitor-2020.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">conducted by TU München</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The survey reflects that around 9% more people (from July’2020 to August’2020) feel that they will not use the app in any case. More than half of the respondents also mentioned that they do not believe that the app can be effective or can have any impact.</span></span></p><span style="font-family: arial;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="color: #131413; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 230px; overflow: hidden; width: 477px;"><span style="font-family: arial;"><img height="234" src="https://lh6.googleusercontent.com/6ltezFGrAZZEDWec6D4BRW2N9Urc3URHVO0VrEjxHmTCTsKX6lMqzykrLLvXMIWIdRoGQEp9x9aONn2byH01CutDbrxefjOhpg6Och3zEUs_3DKqwXl6TPY1St7UGWjQ5ISm0OVJ=w485-h234" style="margin-left: 0px; margin-top: 0px;" width="485" /></span></span></span></p><span style="font-family: arial;"><br /></span><div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;">In conclusion, the German app trumps several contact tracing apps across the world in terms of democratic practices, number of downloads, and user-development engagement. However, the overall effectiveness of the contact tracing app is yet to be determined. With the rise in the cases, in what is deemed as the second wave in Germany (illustrated in the chart above), the doubts around the effectiveness of the app are increasing.</span></span></div><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #131413; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #131413; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #131413; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #131413; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="font-family: arial;"><img height="400" src="https://lh3.googleusercontent.com/0mYhiLvnwf18yzcrNl3zDNVdl3hPj_fA3j3XEaPJyGhtooBm01RrF6VnWgZptMAmNrBnfDTBDB5iNZL3pFGWSBd8tKdM91XU2e6RAAo4A9fAIztD6yJAER4CDl_4RJmkRU-Ai-g8=w217-h400" style="margin-left: 0px; margin-top: -57.5842px;" width="217" /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><br /></span></p><div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="color: #131413; white-space: pre-wrap;"><span style="font-family: arial;">In addition, the voluntary model of downloading the app (in countries with the low-trust index on government like Germany), and voluntary sharing of the contact list by the infected people has a huge impact on the adoption and effectiveness of the app. User dissatisfaction and lack of confidence in the app are apparent. In our opinion, the app needs to be further improved, and the developers and the government have an uphill task of (re-)gaining the trust of citizens before reiterating their rhetoric of Corona-Warn-App being the “best” app in the world. </span></span></div></span><div class="separator" style="clear: both; text-align: center;"><br /></div></span>Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-2531449818545937592020-08-14T02:03:00.005-07:002020-09-28T16:32:44.857-07:00What went wrong with Covid-19 Contact Tracing Apps - PART I<h1 style="text-align: left;"><span style="color: #131413; font-family: arial; text-align: justify;">Australia's CovidSafe App</span></h1><div><span style="color: #131413; font-family: arial; text-align: justify;"><a href="https://www.linkedin.com/in/muneera-bano-71b27aa/" target="_blank">Muneera Bano</a> (<a href="https://twitter.com/DrMuneeraBano" target="_blank">@DrMuneeraBano</a>), <a href="https://www.linkedin.com/in/chetan-arora/" target="_blank">Chetan Arora</a> (<a href="https://twitter.com/chetan_arora" target="_blank">@chetan_arora</a>), <a href="https://www.linkedin.com/in/didar-zowghi/" target="_blank">Didar Zowghi</a> (<a href="https://twitter.com/DidarZowghi" target="_blank">@DidarZowghi</a>)</span></div><div style="text-align: center;"><span style="color: #131413; font-family: arial; text-align: justify;"><img alt="ACS members back COVIDSafe app | Information Age | ACS" height="184" src="https://ia.acs.org.au/content/dam/ia/article/images/covid%20safe%20users%20tracing.jpg" width="328" /></span></div><h3 style="text-align: center;"><span style="font-family: arial;"><span style="color: #131413; text-align: justify;">The new world of Covid-19</span></span></h3><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="background-color: transparent; color: #131413; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;">Last year this time, the majority of us were not even familiar with the term Covid-19. Everything that seemed ordinary back then is extraordinary today - walking outside without a mask, standing next to strangers on public transport, teaching a class of over 200 students in a seminar room, joining crowds in sporting and entertainment events. All these instances seem in another world and ages ago! Covid-19 has shaken every fabric of the society in every country around the world.In our current reality, social distancing is the new expression of love and care, masks have become a controversial sign of obedience or defiance, Zoom has taken over the new forms of social connections whether its education, meeting family and friends or online dating, and contact tracing apps seem to be the new global trend.</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; white-space: pre-wrap;"><span style="font-family: arial;">The Covid-19 has hit the world harder and faster than anticipated and not many countries were prepared for such level of global pandemic. To handle the situation, we have seen the measures introduced in different countries related to: social distancing, lock-downs, and contact tracing. The speed of the spread of this infection highlighted the limitations of manual contact tracing. Contact tracing is a critical part of dealing with this pandemic in order to quarantine the infected and slow down or curb the spread of the virus. </span></span></p><h3 style="text-align: center;"><span style="color: #131413; line-height: 107%;"><span style="font-family: arial;"><span style="mso-spacerun: yes;">There is always an app!</span></span></span></h3>
<p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="font-family: arial;"><span style="background-color: transparent; color: #131413; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The numerous challenges presented by Covid-19, such as the incubation period and the asymptomatic super spreaders, have exacerbated the challenges of manual contact tracing. This pushed the governments around the world to look for alternative solutions to aid and expedite the process with technology and we saw a </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.technologyreview.com/2020/05/07/1000961/launching-mittr-covid-tracing-tracker/" target="_blank">flood of corona-virus related apps</a></span><span style="background-color: transparent; color: #131413; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.technologyreview.com/2020/05/07/1000961/launching-mittr-covid-tracing-tracker/" target="_blank"> </a>launched in the first half of 2020.</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><img alt="Corona, Covid-19, Covid, Corona App, App, Program" height="342" src="https://cdn.pixabay.com/photo/2020/05/31/16/40/corona-5243202_960_720.jpg" title="(https://pixabay.com/photos/corona-covid-19-covid-corona-app-5243202/)" width="512" /> </p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The idea is that an app will make use of Bluetooth and/or GPS technologies on mobile phones and will provide a low cost, low energy solution by interacting with other mobile phones in order to record community interactions for a period of time that may pose the danger of infection transmission. This digital solution offers great benefits in terms of instant recording of interactions and alleviates the limitations and biases of patients’ memory, and </span><a href="https://www.medrxiv.org/content/10.1101/2020.05.05.20091587v1" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">in theory it has been considered a very effective solution</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> for the scale and level of Covid-19 pandemic.</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="color: #131413; white-space: pre-wrap;"><span style="font-family: arial;">However, the promised benefits of these contact tracing apps failed to materialise, to a large extent. No matter how technologically sound, these apps have not been able to provide successful outcomes. While there are several confounding causes for the failure of the contact-tracing apps, one important factor is related to the involvement of the users and whether the users’ requirements are considered and addressed by these apps.</span></span></p><h3 style="color: #131413; text-align: center;"><span style="font-family: arial;">Developed by the
People, for the People?</span></h3><p align="center" class="MsoNormal" style="color: #131413; text-align: center;"><span style="font-family: arial;"><o:p></o:p></span></p>
<p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="background-color: transparent; color: #131413; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;">Inspired by our previous research on the correlations between user involvement and system success, we were interested to explore the factors that limited the success and adoption of the Covid-19 apps. Among technical issues with the apps, these factors, include, the distrust of users, as well as disregard for the technological demographics of citizens during inception, design, and launch of the apps.</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="font-family: arial;"><a href="https://ieeexplore.ieee.org/abstract/document/8552628" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Our previous research</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> established that the dissatisfaction of users can result in software project failures even if it is delivered on time, on budget and is of high quality. For societies with democratic values, the non-democratic and non-inclusive approaches adopted for any software development project could lead to </span><a href="https://link.springer.com/article/10.1007/s10664-016-9465-1" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">dissatisfied users</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> who would eventually distrust and reject the final product. The user dissatisfaction in many cases with Covid-19 apps is in line with our previous findings.</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In Australia, the government launched a contact tracing app called </span><a href="https://www.health.gov.au/resources/apps-and-tools/covidsafe-app" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">CovidSafe</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> on 26th April 2020, and there was a </span><a href="https://www.afr.com/politics/federal/false-sense-of-security-risk-from-covidsafe-app-rex-patrick-20200509-p54rew" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">significant level of mistrust</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> on the app since its launch due to several reasons, including among others, privacy concerns, technical issues, lack of transparency and no end-user involvement. As of 28th June after 6 million downloads, </span><a href="https://www.smh.com.au/politics/federal/dishonest-covidsafe-app-has-not-detected-a-case-despite-6-million-downloads-20200627-p556s7.html" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">it was reported</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> that the app has not been able to detect any new cases. Furthermore, publicly available </span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">information on the app’s contribution to pandemic control and the usage of the app is scarce.</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="color: #131413; white-space: pre-wrap;"><span style="font-family: arial;">Our Australian case motivated us to study other contact-tracing apps launched around the world and explore their acceptance by the target community. We were interested to see the responses of the users of these apps to understand what social, economical, cultural, political and technological factors contributed to the successes or failures of contact tracing apps.</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="color: #131413; white-space: pre-wrap;"><span style="font-family: arial;">We have studied 21 countries in our research and downloaded the user reviews from both Apple and Google app stores in order to analyse the voices of the users for these apps. In this blog series we will be presenting our analysis of the various social dimensions around user satisfaction/dissatisfaction, staring with the case of Australia.</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt; text-align: justify;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">We collected all the reviews for the apps listed below in the table (for the duration of 1</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">st</span></span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> January 2020 – 30</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">th</span></span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> July 2020) from Google Play and Apple’s App Store.</span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="color: #131413; line-height: 107%;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf66YaFoxMnW3M7mSMAZYrGuKXdLd6UjlrdO52KzjS6en2_JIcZpyDTiT25ZuBqPoFMLmJjgqLrO321asI5wkYADvfzLaCAE0RDqvDrTIwoiBnmh9qwm-ATt6EDd-9nOjVCxq4hDuS8nOf/s1652/list+of+apps.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1623" data-original-width="1652" height="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf66YaFoxMnW3M7mSMAZYrGuKXdLd6UjlrdO52KzjS6en2_JIcZpyDTiT25ZuBqPoFMLmJjgqLrO321asI5wkYADvfzLaCAE0RDqvDrTIwoiBnmh9qwm-ATt6EDd-9nOjVCxq4hDuS8nOf/w410-h402/list+of+apps.png" width="410" /></a></span></div><div class="separator" style="clear: both;"><span id="docs-internal-guid-361dca58-7fff-bf5c-24f6-080ddc8e4c47"><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; white-space: pre-wrap;"><span style="font-family: arial;">Looking at the comments of users for CovidSafe app, and comparing them to the reviews coming from apps launched by others countries, we observed the following issues:</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; font-family: Arial; font-size: 12pt; font-weight: 700; white-space: pre-wrap;">Lack of Citizen Involvement</span></p><ul style="margin-bottom: 0px; margin-top: 0px;"><li dir="ltr" style="font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="font-family: arial;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CovidSafe app was inspired by the Singapore model of </span><a href="https://www.tracetogether.gov.sg/" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">TraceTogether</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> app. Replicating the same model in Australia without considering the social context would not yield the same results. In Singapore the people have a high</span><a href="https://www.edelman.com/sites/g/files/aatuss191/files/2019-02/2019_Edelman_Trust_Barometer_Global_Report_2.pdf" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;"> level of trust in their government</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> whereas </span><a href="https://www.edelman.com/sites/g/files/aatuss191/files/2019-02/2019_Edelman_Trust_Barometer_Global_Report_2.pdf" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Australia scores low on the trust index</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. For a democratic society, that leans highly towards individualism, lack of citizens involvement in projects that involve data privacy issues would have lower chances of success. </span></span></p></li><li dir="ltr" style="font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="font-family: arial;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In Germany, </span><a href="https://www.edelman.com/sites/g/files/aatuss191/files/2019-02/2019_Edelman_Trust_Barometer_Global_Report_2.pdf" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the trust index of people in their government is also low</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, however, their app, </span><a href="https://www.coronawarn.app/" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Corona-Warn-App</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> is positively received by the people, due to the democratic approaches in the development process. The app was open source from the beginning, and the development involved 13 </span><a href="https://www.coronawarn.app/en/" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">reputable non-government and research organisations</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: white; color: #3a3d3e; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">together with the involvement of the global open source community.</span></span></p></li></ul><div style="text-align: center;"><img height="375" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABxsAAAU2CAYAAABN5diZAAAgAElEQVR4Aezdibc0VXkv4Pt33bWuKzcxMSuuRK8G5wEJDgiKijPGIUZFcABDnBAUVBxAjFFxwiHODFFRCSiKikAiMxdUdIF116/je+7+6quhu88533fO6afWOqv6dNfetfezd1V17ber6n90JgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECKwh8D/WSCMJAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEOsFGnYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBtQQEG9dik4gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAcFGfYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEBBvXYpOIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAHBRn2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG1BAQb12KTiAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABwUZ9gAABAgQIECBAgMABF3jwwQe7n/38591HLrqoO+VFL+4e/ZjHdv/zfz1k6+/xT3zS4v18fsstt3RZ3kSAAAECBAgQIECAAAECBAgQWEZAsHEZJcsQIECAAAECBAgQ2IcCv/3tb7uPf+IT3SMf/bdbgcU2yDj2+slPPbb73Oc/391///37sNaKTIAAAQIECBAgQIAAAQIECBxJAcHGI6ltXQQIECBAgAABAgSOgMAf/vCH7tuXX9495nGPXynI2A8+Jv13v/e9LvmZCBAgQIAAAQIECBAgQIAAAQJDAoKNQyreI0CAAAECBAgQILBPBX7/+99355733u4h//tPtxVorMBj8vnghz7UPfDAA/tURLH3q0Bu/fuoY44Z7cff+e5392vVlJsAAQIECBAgQIAAAQIHSkCw8UA1p8oQIECAAAECBAhsskBue3r2298xGpypAOI683POPVfAcZM711Gou2DjUUC3SgIECBAgQIAAAQIECKwhINi4BpokBAgQIECAAAECBPaaQK48TEBwnUDiMmlyheOnPn2pW6rutYY/wOURbDzAjatqBAgQIECAAAECBAgcKAHBxgPVnCpDgAABAgQIECCwqQJ5RuNDH/aXs8HGP/mzh3YvednLF4HJBCffdc453fNecEqX9+eCjg/7q4d3V1511aYSq/cRFhBsPMLgVkeAAAECBAgQIECAAIE1BQQb14STjAABAgQIECBAgMBeEbjtttu6Zz37xMlgYYKJ51/w/u7e++4bLHbez+dzQccEJu+5557BPLxJYCcFBBt3UlNeBAgQIECAAAECBAgQ2D0Bwcbds5UzAQIECBAgQIAAgV0X+MMf/tBddPHHJgONuSIxVz5m2akpn3/1a1/rsvzUVY6f/NSnp7LxGYEdERBs3BFGmRAgQIAAAQIECBAgQGDXBQQbd53YCggQIECAAAECBAjsnkCuajzu6U8fDQ6u+qzFBBzzbMakGws4Pufk57m6cfeaVM5/FBBs1BUIECBAgAABAgQIECCwPwQEG/dHOyklAQIECBAgQIAAgUGBL1x22WhQMMHCV7/mH7rf/va3g2nH3swtVV/68lNH800g8lvfvnwwedaVdY4FKt/+zncOpmvfXDePqeDU8c98Vnf33XcvVvPggw9237v66u7vX/Xq7q8f8chFWXM1Z8r2+9//vi3KWq+Tz1j9v/HNb27lefsddywCu6e86MVb5Ui6Rz/msd1rX/e6Lsvef//9W8uv++KBBx7ofvLTn3YXvP/93UnPPXmRf1u+xz/xSd3LTn1Fd+lnPtsleD13BWxbjpjGts2vXj/qmGO6tEmm5PnTG27o3njGGVvrzy17X/0Pr926te93vvvdwXwqv2XmyaOdptqivUI35bv55psXRs8+6TmHXN2b9ojPTrVH1hXniy+5pEvbJ/+qW0yOPe7vureceWZ3xZVXrtz+qVPl1Z+32162sfyo4IQTT9q6dXLK8fVvfKPlG3ydbeT7P/hB9453vqt75gnPPsQq+4YnP/XYRf9Nf0ofNxEgQIAAAQIECBAgcPAFBBsPfhurIQECBAgQIECAwAEVyKD/aaefPhpcmAoKzpEkmDh1dWOCIQli9ad1A4VtPuvmsUyw8b777uve/NYzB83WCcy25a7XcwGu1G+Z52MmWPTIR/9tl4ByAqSrTlnPxz/xiUUe/cDT1P8vfPFLuut+9KOlgo7LBBvTTz/wwQsH+1MbBD5awcYEGaeC663VYx73+KVuSTzUVgkyxjW+bZ5TrxMET19JWy4zLRNsvOGGG7rjn/HMwTK0Adj++tKOn7700pX6U/YhsV22P/XX6X8CBAgQIECAAAECBPaHgGDj/mgnpSRAgAABAgQIECBwmMCtt97WPfW44waDBglgPONZJ3R33XXXYemWeWPdvNcNFLZlWjePqWDjMY97XHfttdctrrgaC+4ciWDjmWe9rXveC04ZbbOxsp399nesdJXbf1x7bffEpzx15fXU+nOF3Yc/8pHBgHLbVlPBxgSa/v073+nOOffc0XIczWDjP7/jHYtA7twzSsuk5qlXrgpM8HDZKVeovvf88wcDrpXv1DzBweuuu252dVPBxlwtm37x2Cc8cbQ9xoKNt9xyS5fbJ0+VceqzmCXgnICliQABAgQIECBAgACBgycg2Hjw2lSNCBAgQIAAAQIENkTg6qu/Pxm8GLv6cBmeuasmH/qwv+yuueaaw7JaN1DYZrRuHlPBxlwhmFt2TgVEjkSwcWr9c58laDd0NWlrlwDYV7/2tUNubTmX79jnCRCd9973Ta5zKtiYfE8/402TffRoBhv/9M//YrJsYy55/2/+z6MWV+u19mOvf/Ob30wGuafW036W29Lm9r9T01SwMbfQzS1i2zz7r4eCjbkScipA2c9j6v+3nnVWFw8TAQIECBAgQIAAAQIHS0Cw8WC1p9oQIECAAAECBAhskMBUYCED/p/4109uS+MjF100GZj40pe/fFj+6wYK24zWzWMq2DgVAKnP9nqwMcG/L37pcPPWLrerTCCs6rTdedbZPmeyXVdezwUb59Z/NIONc2Wb+zyB1Lkr9dKX//H1b9ix9kjQ7+e/+EW/Gbb+n9snzNWpH2y88847t3VF49D6Lrr4YytdFbpVOS8IECBAgAABAgQIENizAoKNe7ZpFIwAAQIECBAgQIDAtMDUswEzyH/lVVdNZzDzaYJMQ8GCei/PkutP6wYK23zWzeOgBxvjnivTbr/jjpZr63WuGHvZqa+YbLMED3N73fSds972T91Tjn3a5PJZZ277es8992ytp32xk8HGX/ziF4tbruYKzvy96S1v6XIFbfW3/jxBvFq25smjnea2kX6eq/yfKw3T58amXGWa263GfJV855adCnLudLDxY5d8fLLsuWL47H9+e/eVf/vqIij9nvPO65781GMn08y5jXl6nwABAgQIECBAgACBvSsg2Lh320bJCBAgQIAAAQIECIwKrHub09EMBz74zne/Oxk0SCCnP60bKGzzWTeP/RRs/OtHPLJLsDa3qEzA7vbbb+9ypWiu9JsLNn3hsstarq3X3//BDyaDc8969ondjb/85dbyeZGA2A9++MPJ22QmWJa+MDTtZLCxn/9ce46Vqc1nmWBjntmY5a7/yU+22iKB9he++CWzbTF0dW+t/6abbp59buYJJ57Ufe3rX1+0fyzTH9Iv0j/G+kECsGnroWkng4333ntvd/LzXzBajle++jXd3QNB6Oyb3n3Oe0bTpV5DP1QYqo/3CBAgQIAAAQIECBDYHwKCjfujnZSSAAECBAgQIECAwCECcwG5nbh6aC7Y89rXva773e9+t1K5hgKUh2TQdd1c3cbymCtvBW8SPMvz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v3DZZLo8w68/7XawcdVbke7FYGPMEgj+9KWXDj6Dse3/U6/z/Mavf/0bk9vjTgcbU/a0wU7sT/Kc1rsHbgHc71P+J0CAAAECBAgQIEBg/wkINu6/NlNiAgQIECBAgAABAksJ5Iqqz33+84tn9E0FMfqfPfLRf9t9/BOf2JFbHd58883dS19+6mjgsF33CSee1F133XWLuk0FTfZzsDHPs/vtb3+7COIuEwxeJ+D74IMPdt/61reXCjbn2XrnX/D+xdV3eRbkc05+3mhbnfz8F3T33nvvIX1vt4ONWVmCXXkWYIJtbX8Zer1Xg42Fdsedd3bveNe7V7pSMAH4955/fhfruWlquxl77uZcnvV5+m36SsozZD/2XvrUd77z3S790kSAAAECBAgQIECAwMEUEGw8mO2qVgQIECBAgAABAgS2BDLIf8sttyyef3fKi17cPfoxjz0kWJD/836ej/ezn/98x4MCWf/111/fveOd7+qedvzTt66eyxV7T37qsd1Z/3T24vODEoxIMHQs8FLBxjROgsHf+OY3u5ed+opDAmlpj9efdlp3xZVXrXz72q1G77pF2uSRvB7/xCdtlSnBouef8sLu4ksu6W6/4442yZ5+fe999y1u6Zm+2gYe8/qk557cXfD+93e/vOmmPV2HKtxvfvOb7oorr+zO/ue3d8884dmHBPDSPnkv20ue0bnss1Ir792e5+rZ7//gB4vy9cte2/RrX/e6RVvldsrrXhm92/WQPwECBAgQIECAAAECOycg2LhzlnIiQIAAAQIECBAgQIBAt2ywERUBAgQIECBAgAABAgQIEDgIAoKNB6EV1YEAAQIECBAgQIAAgT0jINi4Z5pCQQgQIECAAAECBAgQIEDgCAgINh4BZKsgQIAAAQIECBAgQGBzBAQbN6et1ZQAAQIECBAgQIAAAQIEuk6wUS8gQIAAAQIECBAgQIDADgoINu4gpqwIECBAgAABAgQIECBAYM8LCDbu+SZSQAIECBAgQIAAAQIE9pOAYON+ai1lJUCAAAECBAgQIECAAIHtCgg2bldQegIECBAgQIAAAQIECDQCgo0NhpcECBAgQIAAAQIECBAgcOAFBBsPfBOrIAECBAgQIECAAAECR1JAsPFIalsXAQIECBAgQIAAAQIECBxtAcHGo90C1k+AAAECBAgQIECAwIESEGw8UM2pMgQIECBAgAABAgQIECAwIyDYOAPkYwIECBAgQIAAAQIECKwiINi4ipZlCRAgQIAAAQIECBAgQGC/Cwg27vcWVH4CBAgQIECAAAECBPaUgGDjnmoOhSFAgAABAgQIECBAgACBXRYQbNxlYNkTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQOKgCgo0HtWXViwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMAuCwg27jKw7AkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgcVAHBxoPasupFgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYJcFBBt3GVj2BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBA6qgGDjQW1Z9SJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCwywKCjbsMLHsCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECB1VAsPGgtqx6ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIENhlAcHGXQaWPQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGDKiDYeFBbVr0IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI7LKAYOMuA8ueAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwEEVEGw8qC2rXgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgR2WUCwcZeBZU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQIEDgoAoINh7UllUvAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABArssINi4y8CyJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIHBQBQQbD2rLqhcBAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBXRYQbNxlYNkTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQOKgCgo0HtWXViwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMAuCwg27jKw7AkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgcVAHBxoPasupFgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYJcFBBt3GVj2BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBA6qgGDjQW1Z9SJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCwywKCjbsMLHsCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECB1VAsPGgtqx6ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIENhlAcHGXQaWPQECBAgQIECAAAECmynw6n+/vfN39Aw2s9epNQECBAgQIECAAAECBI68gGDjkTe3RgIECBAgQIAAAQIENkBAoPHoBRpjbyJAgAABAgQIECBAgACBIyMg2HhknK2FAAECBAgQIECAAIENExBsFGzcsC6vugQIECBAgAABAgQIbKiAYOOGNrxqEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIENiugGDjdgWlJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQILChAoKNG9rwqk2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBguwKCjdsVlJ4AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAhgoINm5ow6s2AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAge0KCDZuV1B6AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAhsqINi4oQ2v2gQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgS2KyDYuF1B6QkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhsqIBg44Y2vGoTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ2K6AYON2BaUnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgsKECgo0b2vCqTYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGC7AoKN2xWUngABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCGCgg2bmjDqzYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB7QoINm5XUHoCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECGyog2LihDa/aBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBLYrINi4XUHpCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGyogGDjhja8ahMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDYroBg43YFpSdAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCwoQKCjRva8KpNgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYLsCgo3bFZSeAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwIYKCDZuaMOrNgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHtCgg2bldQegIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIbKiDYuKENr9oECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEtisg2LhdQekJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIbKiAYOOGNrxqEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIENiugGDjdgWlJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQILChAoKNG9rwqk2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBguwKCjdsVlJ4AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAhgoINm5ow6s2AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAge0KCDZuV1B6AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAhsqINi4oQ2v2gQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgS2KyDYuF1B6QkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhsqIBg44Y2vGoTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ2K6AYON2BaUnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgsKECgo0b2vCqTYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGC7AoKN2xWUngABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCGCgg2bmjDqzYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB7QoINm5XUHoCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECGyog2LihDa/aBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBLYrINi4XUHpCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGyogGDjhja8ahMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDYroBg43YFpSdAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCwoQKCjRva8KpNgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYLsCgo3bFZSeAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwIYKCDZuaMOrNgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHtCgg2bldQegIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIbKiDYuKENr9oECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEtisg2LhdQekJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIbKiAYOOGNrxqEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIENiugGDjdgWlJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQILChAoKNG9rwqk2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBguwKCjdsVlJ4AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAhgoINm5ow6s2AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAge0KCDZuV1B6AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAhsqINi4oQ2v2gQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgS2KyDYuF1B6QkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhsqIBg44Y2vGoTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ2K6AYON2BaUnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgsKECgo0b2vCqTYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGC7AoKN2xWUngABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCGCgg2bmjDqzYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB7QoINm5XUHoCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECGyog2LihDa/aBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBLYrINi4XUHpCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGyogGDjhja8ahMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDYroBg43YFpSdAgACBHRO4++67u+Of+azuf/6vh3Tf+e53dyxfGREYE3j7O9+56G+ZmwgQIEDg4Ar4jrG329bx+Mi1z89+/vPuUcccs/jL602Ydnr7z3lKzldy3pK8TdsT2C/b/yZu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w6ocUuT8yjlXsuXXszlhNB0uUFeLrPOszsNz8w6BQwXyq/Cf/PSnh775x//y3M1nn/ScxdUzfuU9SOTNIywg2HiEwa2OAAECBAjsQQHnkHuwURSJAAECGywg2LjBja/qBAgQ2C8Cud1aTqQSaMzzphKQy/Oe9vuU21DlL7e1O+9971vUK7fsSVDNdLhAPePr9DPedNgtkQ5f2jsElhf43e9+t3hGaG71lVtp5tZsmXI1bW6h+opXvnIRaMyzu3KbNROBoy0g2Hi0W8D6CRAgQIDA0RFwDnl03K2VAAECBOYFBBvnjSxBgAABAkdZoJ7jUc/kyXPrDsJVjTVYXPVKoCPP2TIdLpCgT55j+Lo3vKG7/fbbD1/AOwS2KZBtr54vVNtkO89zHK+55pptrkVyAjsjUMeP/nOjdiZ3uRAgQIAAAQJ7VaC+A9T3VOeQe7WllIsAAQKbJyDYuHltrsYECBDYdwIXvP/93Z/82UMXgYD3f+CD3f3337/v6jBU4F/edFN33NOfvnVF43XXXTe0mPcIEDhCArmi8eJLLume8awTFttlBnGecuzTug9eeGF39913H6FSWA2BeYEaaBRsnLeyBAECBAgQOEgCziEPUmuqCwECBA6WgGDjwWpPtSFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBwxAQEG48YtRURIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQOFgCgo0Hqz3VhgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMARExBsPGLUVkSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEDgYAkINh6s9lQbAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkdMQLDxiFFbEQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGDJSDYeLDaU20IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIHDEBwcYjRm1FBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBA6WgGDjwWpPtSFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBwxAQEG48YtRURIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQOFgCgo0Hqz3VhgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMARExBsPGLUVkSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEDgYAkINh6s9lQbAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkdMQLDxiFFbEQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGDJSDYeLDaU20IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIHDEBwcYjRm1FBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBA6WgGDjwWpPtSFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBwxAQEG48YtRURIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQOFgCgo0Hqz3VhgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMARExBsPGLUVkSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEDgYAkINh6s9lQbAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkdMQLDxiFFbEQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGDJSDYeLDaU20IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIHDEBwcYjRm1FBAgQIEBgswXuvvvu7vhnPqv7n//rId13vvvdbWN88lOfXuT16tf8Q/fb3/522/nthwx+9vOfd4865pjFX17v9+nHP76+e8UrX9U97K8evmjL09/05u53v/vdoloPPvhgd/kVV3TPe8Ep3Z/82UMXnz/+iU/qzvqns7v/uPba7g9/+MOeq/5O9/E9V0EFIrBHBX51663dW886q/vrRzxysa/IfuOee+7Zo6VVrL0ukO8o+a6S7yzZr2/a9PZ3vnNR/8xNBAjsDYGDdg6wN1SVggABAgR2WkCwcadF5UeAAIENEshg/09vuKF74xlndI9+zGMXAxMP+d9/2j3t+Kd3H7zwwu72O+7YIA1VnRPY6UDMWLDxN7/5TfexSz6++MvrgzQdpIGGK6+6aivImEHd/FXg+IEHHujOOffcxXv1WTs/+5/fviPBxqznM5/9XPeBD17Y3XnnndvuKtvt43P71E0c9N5uo9xyyy3dE5705C7HpqkfOXzpy18+pA8OrffWW2/rnnrccYvlvvHNbw4tsu/eyzbwljPPXNQp8/y/36af/+IX3WOf8MRD9hd7KUiU7fajF13cPeNZJyz64f9j782/tanKO+8/6v2t1+pe/XanO/12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75793L9a9c3bjjmmu/E73znou3hu/KP95D3p5JNXukc/tHRPvDDy/+pXv+r178VHvrSvk1fUvv3Yd1T7ZWp/064nf/3rTXrGt/7QcXR96BWcHLv8iiu617/xTf3rculDdPXsc8/tx2DJTL/5buD1N9ywKR8cNXaVTrHrl8YEzKiPMQFLHxPKtxWxdHius3FI51pyqW0+3tH11rgry3E9K8cTv2lLGR555JGeu/QYnaI/6Z/a9x2lV+X49HlIc846dV12+eV9/7acW+qXf/roxw6ak5gnTv/HD/f5zzn3E/3xlnzODLnVb+LB3PfB009v6rPmJMYh7ODM+GTsMF6Rn30tJs6olGXOPKFy5sxL5NHYOvcTn+zH0DvfdXzfjle95rXdvffe16H3NV3yNkknSPuLX/yiem7lfDM0l9S4v+eUU6rjWnPi697wxu6hhx/uPnHeef05Cv633HqrUPT6W5tn0JmfPfjgKt3UjbnznbiMnXOpf077x+RFztp1yqfOP79jHHhwnavND6QV73IOlO6QT/L7NUNrPhcXynv88cf7uebVr31dfy3CuYft1vwj2efOW2pDS2c0n9R03ecgpfN9zoj9//qv/7rp/Kbz6bXXXledU8k/xE91ltdXYqFYbay1wftO/Ps5/K67+vFam79a41Vz3tzrMMlZxugg1z+1c7raXvJWGeLm83Vt3vjcxZ/v57FWOZTHHAi78tXjc9s7JjPfT77u+usnX//4GKWP55wXpBO0W9ePun/RWOOalTbW2glX5ldkaIWpfUB+l2fKOPHzdk2vKW9qmHOd68xr9dLHraD+r+Vz/ROLpfNgeR2teWbsur0lN23+7MUXr+5vVR77av0v+V235tybLG13S/7sD4EQCIEQCIEagTgba1SyLwRCIARCoEngnnvu6Y582curhlCMFtxQc7NXGmi40f/Upz+9chaWN4SUSdllePTRR3vjQJlev1/xt6/qfvazn23KtqQuGfA+8rGPNeujfT/96U/7uvgW2TuOe1fPQgYXHDAveelL+3233357n04Gpj/5sz/vXvv6N2ziphtn5D3r7HNWbDDePud5z1ul5felX/nqQcZ9yVyy1k137QZb3Fox9d57770rnktYknmpnqwqLjYwyMBAjgVuyJGVmLYQwxB5FdxwgYOS/qm1GycPeuZBN/Qce/PRR1fz1fplSn9T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G6f2HLvncUaheN784A06RgzYm8b2fLvnzSzelOHmlHtsl786eU1S1kEJafvCGyzOdjpv+rjdsLLXce/rhk8o7fEnfJx1e3tu181if93SwTlvRPGmKaM8PMvydQOMEaeMrHNu9iZYJG7mebaFP/uab77aymt9tYnzjTcCKcW9bZxzTMvn1i7nMW9zwVf99np7g9NTXNnX2U6bvs9XWjqez3bYm9NufeL1TLfHMm353Pube5FsA99vlC68Acq6g2EUrGwMhEk47XEbM1+fKU7mns/9fWZ4+9xkOf7eB551OX+uzff0J6sPChy3+UjhQynhbI+355wv69Oqf147y6SM4fx2foazLF9swn2/UKhZQeVsC5/zOKN4nf1hhL3n56e9juPL6CLbB+faxb764Czf+TyQz7c9+UA3j98Bti7+HvbWN7aVGQrse9jWG0idnp+pwfyedf6dYet021OSOCWfZWz3bP/i1Jqfg/7mK8eOkYqedTolq63D7smQfebmbH8gn3usx9ecYZlubfL3WcLr3P4e8uyX/ZnSk3PT28Y+MgLSns99IHPB1/zzfB/bsgPh5janArnO/i4O5fcM5xPnldvGuWijW51/u9r3WiB9tX9nkYO3vzcsd/uFP9sWt99Tzt/pHD+3v3Ps3wX8gpIdX1um9iIgAiIgAiIgAiIQCAHJxkAo6RwREAEREAERiFEC9mYP91PWHLyBxpuS8z3WWaRInLoO4PqBVh7yJiojCPmNfGdZzue8AfLRSiCz8OCNG6YDXZBcFelhbyA6b9jY61knbxY662Td/Jlt8ZSbvI43S1fsPCgxWde4RVXtc7thZevi3tcNH74ebHvsjR3nTSVnfYE85w0j3jjydvOIZTCiiJu3dcP83QBjhBJFJW+s8ZGQXsUrEjfzvPXR23zz19ZA2sQoBKbQs5E+7BOjrSjEGe3qrU3O497mQiD12xucbjcEbR02SoTceePXHnfbM5KBEpU3oe3NT/aNfWQkits1gcy9YNrA99WsTdXbYN//TK/K97ltRzCMQrkJzHpqqz1uY+brM8X22ds+1M9Nf+8Db/XZ47X5nmak2drdACPh7cbnvCHO941tQyB78qEsp1i0nz98zmMTllZ9jnveuPfHJpz3C9+7fE85Pz84z3291/iZ4uRhf0fx954z5aYz0shfH3yxGzm/6ss/zs83fjaQmdvvRGddE5f//FniwtvtWtuOYD5Tg/k965R1ti5ve3LmZzg/y52fg0zv6+tvEM5Jzk07X+3vA/4NwrnirT6ycv7d4vzMtZ+vzvYH8rln62K9rN/2JZA2cXyC/XvI1ue2P/Dec/xeISPOZV+/J8OZf5yLnm0JhJvbnArkOvu7OJTfM/ydxlT/9rOJn3WWD6MIWSY359+uzveav746/y709veGZcW/EfhlAPu3NyNg3ZYmYHYBbm5ZMFgWX+fnWW4x8MycqrGoukL/FwEREAEREAEREIHACEg2BsZJZ4mACIiACIhATBKwNzLqa29FGm+gBBoNU19tVb01bxKKiZhoDmgO1NYcsDLc1xctaqvuQ6lcfwLkUOqr+qLPo1idA3ZdXYpru65sICxi8h8/6rQIiIAIiIAIiEDIBCQbQ0anC0VABERABETg0CcQyI2IcM7hN8N5w9hb5Jb91jm/3c9viodTl64VP80BzQHNgYYzBxgxynVIufccN944ZzQhN29RSZ7X6OeaHMlEstGdi+aLuBxKc+DVhVXZHJjNw64xGUj/Dv1/6aiHIiACIiACIiACkSQg2RhJmipLBERABERABA4xAoHciAjnnC/WVaV9Ysqn95cfTPHG9YcWphxMCRW/vXoaxnDq1LW6gag5oDmgORD9c4C/AxiFY1Nx21S8TNO6bk/Va4x6/3pj9PclmuebZKPmTzTPT7Ut9PnJL2XwyxpvLQH4dzY3pgy2n6WBsD3E/lmj7oiACIiACIiACNQyAcnGWgas4kVABERABESgIRMI5EZEOOcwonF3nm9CSVkA5WM49eha8dMc0BzQHGhYc+C5eVVrgHr7DUERuXKne+SjxjrwsZZsDJyV5pVYNaQ5YLOD2M/Q/BKAn6vB9MFeq70IiIAIiIAIiIAIBEJAsjEQSjpHBERABERABGKUQDA3JEI9t/N44JPVVdKxorIKNKNV9u4Dpq47GO0Yavm6LrgbS+IlXpoDmgPRMgcYlTNzI5BVeDDSnb8nGO34TnxwETrR0qdoa4dko97v0TYn1Z7IzMn5SVWfm/ybOjUHGDg7+HJj9J8/6rYIiIAIiIAIiECIBCQbQwSny0RABERABEQgFgjohk/wN2bETMw0BzQHNAc0BzQHNAc0BzQHGvociIV/66iPIiACIiACIiACkSMg2Rg5lipJBERABERABA45Ag39Jonarxt9mgOaA5oDmgOaA5oDmgOaA5oDwc+BQ+4fNuqQCIiACIiACIhArRKQbKxVvCpcBERABERABBo2Ad2YCf7GjJiJmeaA5oDmgOaA5oDmgOaA5kBDnwMN+18xar0IiIAIiIAIiEBdE5BsrGviqk8EREAEREAEGhCBhn6TRO3XjT7NAc0BzQHNAc0BzQHNAc0BzYHg50AD+ieLmioCIiACIiACIhAFBCQbo2AQ1AQREAEREAERiFYCujET/I0ZMRMzzQHNAc0BzQHNAc0BzQHNgYY+B6L13ydqlwiIgAiIgAiIQHQSkGyMznFRq0RABERABEQgKgg09Jskar9u9GkOaA5oDmgOaA5oDmgOaA5oDgQ/B6LiHyNqhAiIgAiIgAiIQIMhINnYYIZKDRUBERABERCBuiegGzPB35gRMzHTHNAc0BzQHNAc0BzQHNAcaOhzoO7/5aEaRUAEREAEREAEGjIBycaGPHpquwiIgAiIgAjUMoGGfpNE7deNPs0BzQHNAc0BzQHNAc0BzQHNgeDnQC3/M0PFi4AIiIAIiIAIHGIEJBsPsQFVd0RABERABEQgkgR0Yyb4GzNiJmaaA5oDmgOaA5oDmgOaA5oDDX0ORPLfFCpLBERABERABETg0Ccg2Xjoj7F6KAIiIAIiIAIhE2joN0nUft3o0xzQHNAc0BzQHNAc0BzQHNAcCH4OhPwPCF0oAiIgAiIgAiIQkwQkG2Ny2NVpERABERABERABERABERABERABERABERABERABERABERABERABEQifgGRj+AxVggiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjEJAHJxpgcdnVaBERABERABERABERABERABERABERABERABERABERABERABERABMInINkYPkOVIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIxSUCyMSaHXZ0WAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQgfAJSDaGz1AliIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEBMEpBsjMlhV6dFQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREIHwCko3hM1QJIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIhCTBCQbY3LY1WkREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERCJ+AZGP4DFWCCIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACMQkAcnGmBx2dVoEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEwicg2Rg+Q5UgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjFJQLIxJoddnRYBERABERABERABERABERABERABERABERABERABERABERABERCB8AlINobPUCWIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQEwSkGyMyWFXp0VABERABERABERABERABERABERABERABERABERABERABERABEQgfAKSjeEzVAkiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEJMEJBtjctjVaREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREIn4BkY/gMVYIIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIxCQBycaYHHZ1WgREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQATCJyDZGD5DlSACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACMUlAsjEmh12dFgEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREIHwCUg2hs9QJYiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIhATBKQbIzJYVenRUAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERCB8ApKN4TNUCSIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQkwQkG2Ny2NVpERABERABERABERABERABERABERABERABERABERABERABERABEQifgGRj+AxVggiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjEJAHJxpgcdnVaBERABERABERABERABERABERABERABERABERABERABERABERABMInINkYPkOVIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIxSUCyMSaHXZ0WAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQgfAJSDaGz1AliIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEBMEpBsjMlhV6dFQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREIHwCko3hM1QJIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIhCTBCQbY3LY1WkREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERCJ+AZGP4DFWCCIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACMQkAcnGmBx2dVoEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEwicg2Rg+Q5UgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjFJQLIxJoddnRYBERABERABERABERABERABERABERABERABERABERABERABERCB8AlINobPUCWIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQEwSkGyMyWFXp0VABERABERABERABERABERABERABERABERABERABERABERABEQgfAKSjeEzVAkiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEJMEJBtjctjVaREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREIn4BkY/gMVYIIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIxCQBycaYHHZ1WgREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQATCJyDZGD5DlSACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACMUlAsjEmh12dFgEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREIHwCUg2hs9QJYiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIhATBKQbIzJYVenRUAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERCB8ApKN4TNUCSIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQkwQkG2Ny2NVpERABERABERABERABERABERABERABERABERABERABERABERABEQifgGRj+AxVggiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjEJAHJxpgcdnVaBERABERABERABERABERABERABERABERABERABERABERABERABMInINkYPkOVIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIxSUCyMSaHXZ0WAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQgfAJSDaGz1AliIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEBMEpBsjMlhV6dFQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREIHwCko3hM1QJIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIhCTBCQbY3LY1WkREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERCJ+AZGP4DFWCCIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACMQkAcnGmBx2dVoEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEwicg2Rg+Q5UgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAjFJQLIxJoddnRYBERABERABERABERABERABERABERABERABERABERABERABERCB8AlINobPUCWIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQEwSkGyMyWFXp0VABERABBo6gR07d+Of9/4P5/yuFZ7uPwx5+QUNvUtqvwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQAMkINnYAAdNTRYBERABEYhdApSKQ4aPMpKRotE+LmnZESPGjY9dMOq5CIiACIiACIiACIiACIiACIiACIiACIiACIhAvRCQbKwX7KpUQnaYDAAAIABJREFUBERABERABIInMP6DyaBUtILRbd+yU1csil8RfOG6QgREQAREQAREQAREQAREQAREQAREQAREQAREQARCICDZGAI0XSICIiACIiACdUmA8pAS0U0uejvGFKtMtapNBERABERABERABERABERABERABERABERABERABGqTgGRjbdJV2SIgAiIgAiIQBgHKwvuf6B2UZPSUj0ytqvUcwxgEXSoCIiACIiACIiACIiACIiACIiACIhC1BCoq9+O7pFxszixC5f6obaYaJgKHPAHJxkN+iNVBERABERCBhkaAcpCS0FMchvozU69O+XJmQ8Og9oqACIiACIiACIiACIiACIiACIiACIiATwLllfvR7/tdeGTOHmzKLEZxeaXP8/WiCIhA7RCQbKwdripVBERABERABEIiQCnob13GUKUjU6uu37glpHbpIhEQAREQAREQAREQAREQAREQAREQARGINgKlFfvx1LzdOOetJDw0azuSc0pMhOP+/QpzjLaxUnsObQKSjYf2+Kp3IiACIiACDYQA12W8+pa7IxbN6EtIPt1/mFKrNpB5oWaKgAiIgAiIgAiIgAiIgAiIgAiIgAh4J2Bk47e7cPzIDThx1AbcPS0Zu/JLUaacqt6h6RURqAUCko21AFVFioAIiIAIiECgBLguI+WfLzlYG68xenL8B5MDbabOEwEREAEREAEREAERqGcCefuKsT0tB1u2Z4T82LYjE8m7s7Brbx6y8gpRVFKGisraSTdXWlaBPZn5SNqVFXJ7w+kr603PzgfbYbfK/ftRWFyGVMNxb720y/Zp64694CMnvwjO4BtG4uQWFCNlTza2bq/7NrLO1D3ZKCgqQSSigsrKK5GRU4BVW3bh0+/Wov+b3+CmXu/h4ltfRPMO/dG4VQ8c1rI7jr+iLy7853Bc2+0d9Br3NT6asxIrN+80c6i8ojIibbHzIJA9+873RlpWPtZs3Y3PvluLQW/PQdc+E/GHO1/GSR0HovFlVW0/9vI+uKDrc+jwxFt4ctQ0TJi+DPEJ27EjI9e8xwKpL5BzyCE7v9C8h7ds34vNqRmuj00p6WZu8f1XUloeSNE1zikrr0Bmrq3L+2cO53Dizswa1+uACNQlASMb5+7E0S+vw2HD4tF81AbcMz3FRDiWVCi6sS7HQnXFNgHJxtgef/VeBERABESgngjYdRlrK2VqoIKyZaeuYFSlNhEQAREQAREQAREQgegmsHrLLtwT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DAIBBBBAAIHUBLQX49OvVHN7OrIvY2p2nI0AAggggAACCCCAAAIIIIAAAggggAAC0QkQNkZnSUsIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpJUAYWNa3W4miwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEB0AoSN0VnSEgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpJUDYmFa3m8kigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEJ0AYWN0lrSEAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFoJEDam1e1msggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghEJ0DYGJ0lLSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQVgKEjWl1u5ksAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAtEJEDZGZ0lLCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCKSVAGFjWt1uJosAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAdAKEjdFZ0hICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACaSVA2JhWt5vJIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBCdAGFjdJa0hAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBaCRA2ptXtZrIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIRCdA2BidJS0hgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkFYChI1pdbuZLAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALRCRA2RmdJSwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgiklQBhY1rdbiaLAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQHQChI3RWdISAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAmklQNiYVrebySKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQnQBhY3SWtIQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAWgkQNqbV7WayCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCEQnQNgYnSUtIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJBWAoSNaXW7mSwCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC0QkQNkZnSUsIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpJUAYWNa3W4miwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEB0AoSN0VnSEgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpJUDYmFa3m8kigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEJ0AYWN0lrSEAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFoJEDam1e1msggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghEJ0DYGJ0lLSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQVgKEjWl1u5ksAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAtEJEDZGZ0lLCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCKSVAGFjWt1uJosAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAdAKEjdFZ0hICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACaSVA2JhWt5vJIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBCdAGFjdJa0hAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBaCRA2ptXtZrIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIRCdA2BidJS0hgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkFYChI1pdbuZLAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALRCRA2RmdJSwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgiklQBhY1rdbiaLAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQHQChI3RWdISAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAmklQNiYVrebySKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQnQBhY3SWtIQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAWgkQNqbV7WayCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCEQnQNgYnSUtIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJBWAoSNaXW7mSwCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC0QkQNkZnSUsIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpJUAYWNa3W4miwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEB0AoSN0VnSEgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpJUDYmFa3m8kigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEJ0AYWN0lrSEAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFoJEDam1e1msggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghEJ0DYGJ0lLSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQVgKEjWl1u5ksAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAtEJEDZGZ0lLCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCKSVAGFjWt1uJosAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAdAKEjdFZ0hICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACaSVA2JhWt5vJIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBCdAGFjdJa0hAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBaCRA2ptXtZrIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIRCdA2BidJS0hgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkFYChI1pdbuZLAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALRCRA2RmdJSwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgiklQBhY1rdbiaLAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQHQChI3RWdISAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAmklQNiYVrebySKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQnQBhY3SWtIQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAWgkQNqbV7WayCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCEQnQNgYnSUtIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJBWAoSNaXW7mSwCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC0QkQNkZnSUsIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpJUAYWNa3W4miwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEB0AoSN0VnSEgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpJUDYmFa3m8kigAACCCCAAAIIIIAAAggggAACCCCAAALpIfD1119bdna2DRgwwKpWrWqvvfaavfrqqzxSMJBZnTp17J133nGOU6dOtbVr11pOTo4dOXKkyH5IR48etb1799rGjRttzpw5NmLECOvcubM1adLEqlWrdtLfw5o1a7o5HTp0yPQ7Lcyh6+V18OBB2717t61bt87mzZtnEydOtMGDBzu3li1bWsOGDa1GjRon7T8HhTHi2qIXIGwsemN6QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEChmAcLGaILV119/3apUqWIZGRn2xhtvWJcuXWzMmDG2bNkyF+ZGGTqqLYWMq1atsgkTJlj37t2tefPmVqtWLTeGypUru7DsZA+Oowgb9fuW1549e2z16tX21Vdf2ZAhQ9z9adGihdWtW9fdMwXtctN9PJndivmPD7pLUYCwMUUwTkcAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAo+QKEjdGEjbHVoAqtateube3atbNJkybZjh07Cl2dp1+T7tfOnTtdaPb+++9bZmamVapU6aQOyGLt/PvCho0+aNy6dauNHz/eOnToYPXr1z8lqj69Uexzyf8TJ71HSNiY3vef2SOAAAIIIIAAAggggAACCCCAAAIIIIAAAqekAGFj0YSNqo5T4Fi9enVX6ahqus2bN9vhw4cLHDqqQm/btm02dOhQt1Sq2j7ZK/Fiw7Lg+8KGjQcOHLClS5da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" style="color: #3a3d3e; font-family: roboto, sans-serif; font-size: 12pt; white-space: pre-wrap;" width="512" /></div><div style="text-align: center;"><span style="font-size: x-small;">(<a href="https://www.coronawarn.app/en/" style="text-align: left;">https://www.coronawarn.app/en/</a>)</span></div><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Non- Responsiveness to concerns </span></p><ul style="margin-bottom: 0px; margin-top: 0px;"><li dir="ltr" style="font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;">There were numerous issues reported on CovidSafe app related to Bluetooth, Battery and Data Consumption, however there was no engagement shown by the development team to respond to the authors of the reviews. Whereas there was effective developer-user communication seen in app reviews from New Zealand, Germany and India that helped in building people’s trust for the app. </span></span></p></li></ul><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Lack of understanding technological context of Australian people</span></p><ul style="margin-bottom: 0px; margin-top: 0px;"><li dir="ltr" style="font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="font-family: arial;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The Australian society’s technology orientation was not considered properly during the planning phase of the app development. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">A significant number of Australians are iOS users</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, whereas in general contact tracing apps seem to work better on Android platforms. CovidSafe app was reported in early stages after launch to have </span><a href="https://www.abc.net.au/news/science/2020-06-17/covidsafe-contact-tracing-app-test-documents-rated-poor-iphone/12359250" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">issues with iOS platforms</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Similar observation was made </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">in the case of India’s national app ‘</span><a href="https://www.mygov.in/aarogya-Setu-app/" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Aarogya Setu</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">’ and its popularity on Google store, as the </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">majority of the population use Android platform</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Almost all the contact tracing apps around the world had dominant negative sentiments towards iOS versions.</span></span></p></li></ul><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Ambitious technical assumptions without cultural considerations</span></p><ul style="margin-bottom: 0px; margin-top: 0px;"><li dir="ltr" style="font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: arial;">The success of CovidSafe app was dependent heavily on the significant proportion of the population downloading and keeping the app active while in public spaces. This worked in countries like China, Singapore and India where people seem to have high levels of trust in governments and the national culture is heavily leaning towards collectivism. The voluntary download model in a democratic society such as Australia with much lower trust index in government, lack of transparency in the process, concerns of data privacy and the national culture leaning towards individualism is not ideal. The success of this app was based on a great deal of ambitious assumptions.</span></span></p></li></ul><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">No End-User Experience</span></p><ul style="margin-bottom: 0px; margin-top: 0px;"><li dir="ltr" style="font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CovidSafe app works in the background. The users do not see any immediate results and/or any functionality and hence there is no user experience. All they see is a simple green screen to tell them the app is active and no further actions required. What's happening in the background is invisible to the users. In contrast, the Indian app </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Aarogya Setu</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> shows updates to the people on the number of positive cases in their vicinity. Similarly, </span><a href="https://www.health.govt.nz/our-work/diseases-and-conditions/covid-19-novel-coronavirus/covid-19-novel-coronavirus-resources-and-tools/nz-covid-tracer-app" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">New Zealand offered a different solution</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, wherein people can create a digital diary of the places they have visited by scanning the official QR codes. Such features in Indian and New Zealand apps, unlike in the Australian app, gives an impression to the users that they are in control and hence an integral part of the process. For CovidSafe app, once the app is installed the only possible way to control it is to turn-off the Bluetooth which will stop the functions of the app.</span></span></p></li></ul><img src="https://lh3.googleusercontent.com/PZ2NPvpwRv4V_WuN0nzVjklWxx4ntHse3CpajcfeQoJtMcI7M31LpG6PwV5Vcp96PFtAbVhPUekF9l5DYh8lKartvxqJWFVzlByw99b2rJJ7W2EUqUh7fz3h8eqsEw=w379-h215" /> <span style="font-family: arial; font-size: x-small;">Interface of CovidSafe App</span><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><img src="https://lh6.googleusercontent.com/sf2OIpXov0WzrlaYVddZLb0JvadMlTClII4BUg5ryslW4A8uk9Fzs5joyRB2rg7hwqX1SUmbAzoEzGmgfPv9Lcw12rTv-KZNjKRHeUnMb1rdRZAoqQeE1U0Zt1pWoA=w213-h269" /> <span style="color: #131413; font-family: arial; font-size: x-small; white-space: pre-wrap;">Interface of NZ Covid Tracer App</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><img alt="Aarogya Setu App | NPCI - National Payments Corporation of India ..." height="354" src="https://www.npci.org.in/sites/default/files/Aarogya-Setu.png" width="354" /> <span style="font-family: arial; font-size: x-small;">India's Covid-19 Tracker App <span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Aarogya Setu</span></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #131413; font-family: arial; font-size: 12pt; font-weight: 700; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #131413; font-family: arial; font-size: 12pt; font-weight: 700; white-space: pre-wrap;">Waiting for successful outcomes</span></p><ul style="margin-bottom: 0px; margin-top: 0px;"><li dir="ltr" style="font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Australians are still waiting to hear any successful outcome from this multi-million Dollar app.</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> This has further depreciated any motivation or trust that 6 million downloads showed since its launch. In Germany, </span><a href="https://www.abc.net.au/news/science/2020-07-27/how-does-covidsafe-compare-contact-tracing-apps-apple-google/12488188" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">it is reported </span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">that 660 people who tested positive for Covid-19 had the opportunity to warn other people via Corona-Warn-App. A significant number of Australian users commented that they uninstalled the CovidSafe app after it caused Bluetooth and battery issues and</span><a href="https://www.smh.com.au/politics/federal/dishonest-covidsafe-app-has-not-detected-a-case-despite-6-million-downloads-20200627-p556s7.html" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;"> they do not see any positive contribution </span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">of the app in helping to stop the spread of the virus. </span></span></p></li><li dir="ltr" style="font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="font-family: arial;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The inability to fulfil the purpose for which the app was launched has also been observed in the UK Government’s </span><a href="https://covid19.nhs.uk/" style="text-decoration-line: none;" target="_blank"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">NHS-Covid19</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> that was </span><a href="https://www.theguardian.com/world/2020/jun/18/uk-poised-to-abandon-coronavirus-app-in-favour-of-apple-and-google-models" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">taken off the app stores</span></a><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (until recently when the UK government announced its second phase with Google/Apple Framework).</span></span></p></li><li dir="ltr" style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="font-family: arial;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">While currently Melbourne is going through the second wave of Covid-19, </span><a href="https://www.abc.net.au/news/science/2020-07-27/how-does-covidsafe-compare-contact-tracing-apps-apple-google/12488188" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the state government in Victoria has accessed the data collected through the app around 400 times</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, but it is reported to not have revealed any single case that wasn’t known through manual tracing. Hence, Australian citizens are yet to witness any tangible benefits of the multi-million dollar CovidSafe application, at the time of writing this article.</span></span></p></li></ul><p dir="ltr" style="line-height: 1.2; margin-bottom: 14pt; margin-top: 14pt;"><span style="color: #131413; font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">In conclusion: </span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Every country has their own unique struggle with the COVID-19 virus. For a successful technological solution in form of contact tracing app, the political and cultural context of the country cannot be ignored. Following or replicating the app framework of Singapore seems to have not worked in Australia. According to the </span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.hofstede-insights.com/product/compare-countries/" target="_blank">Cultural Compass of Hofstede</a>,</span><span style="color: #131413; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> Australia resembles closely to Germany when it comes to power structures and individualism in citizens, and hence could have taken similar steps to build public trust. In conclusion, and as established in our previous research, lack of user involvement and user dissatisfaction can lead to software project failure, despite meeting the time and budget goals. This was the case for CovidSafe, and in our opinion if the CovidSafe app was meant for Australians, then Australians should have been involved in the design, implementation and launch of it.</span></span></p><div><span style="color: #131413; font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div></span></div><p></p>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-29880071338854539872020-03-11T08:10:00.003-07:002020-03-19T08:48:40.192-07:00Bit-Rot: Computer Software Degrades over Time<h2>
Bit-Rot: Computer Software Degrades over Time</h2>
<div>
<br /></div>
<div>
<div>
<b>By: </b>W.B. Langdon, Earl T. Barr, Justyna Petke</div>
<div>
<b>Associate Editor: </b>Federica Sarro (@f_sarro)</div>
</div>
<div>
<br /></div>
<div>
<div>
<div style="text-align: justify;">
At first sight it seems surprising that computer software should degrade. We are used to the idea that mechanical devices wear out with use and sooner or later they fail. Similarly, performance of electrical devices, particularly batteries, falls with time and they too eventually fail. But software? That’s just a pattern of bits. Sure the device holding the bits may fail, but we can restore from backup, we have error correcting codes. Surely as long as the bits are ok, the software will continue to be ok?</div>
</div>
<div>
<div style="text-align: justify;">
Wrong! Software too degrades over time. (Part of Figure 1 shows a fragment of a program which worked fine 20+ years ago, but which now does not even compile.) Like the fact that there are many reasons for hardware to fail, there are many reasons why untouched software may no longer work. It is so common for legacy software to fail [1], that the term software “bit rot” has been coined to cover, not just the problem of reading bits from old hardware [2], but also the general tendency for old programs to cease to perform their original task.</div>
</div>
</div>
<div>
<br /></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinhwFbxS9R0t8ZeAfCCKQYu6M7kXf6jh9aUp3p1IIJvuvnidqfJ6xtIiZKFAr3iYnwM3rY8-ANO1NmW1ERO2Ewv7IkMh7awKkSOdhNL_oGJS_cS83caIIa1E-qBFg16Qoi84ynpsI4lHQ/s1600/bit_rot_xfig.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinhwFbxS9R0t8ZeAfCCKQYu6M7kXf6jh9aUp3p1IIJvuvnidqfJ6xtIiZKFAr3iYnwM3rY8-ANO1NmW1ERO2Ewv7IkMh7awKkSOdhNL_oGJS_cS83caIIa1E-qBFg16Qoi84ynpsI4lHQ/s400/bit_rot_xfig.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"> Figure 1: Over time software fails</td></tr>
</tbody></table>
</div>
<div>
<div>
<div style="text-align: justify;">
Today, and in the foreseeable future, the dominant cost of computing is software, i.e. people’s time, not hardware. Further the dominant cost of software is the cost of software maintenance. (Wiederhold [3, p66] says “Maintenance costs over time typically exceed the original software develop- ment cost by factors of 2 to 10.”) Bit rot increases the maintenance burden. We cannot simply leave software in the state it was in when it was first sold. Firstly we will need to bugfix. Arguably, if the defect was known in the original code, this is not bit rot. But even excluding this special case, bit rot can cover items such as the need to update for: new computer hardware, e.g. laptop, smartphone, new software libraries, new versions of computer programming languages and their support tools (the GNU C++ compiler has been through 113 releases since the code in Figure 1 was writ- ten), new computer operating systems, such as Microsoft Windows 10, and new versions of existing operating systems, etc.</div>
</div>
<div>
<div style="text-align: justify;">
In other words, if left untouched software suffers bit rot. Even in the absence of hostile actors and evolving computer viruses, we must keep soft- ware up-to-date, e.g. we cannot keep running windowsXP forever. This is a problem for everyone, not just major corporations with dedicated software maintenance teams. Unless hardware failure, fire or theft, comes first, even home computer uses, laptops, and phones will eventually suffer from bit rot.</div>
</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div class="page" title="Page 2">
<div class="layoutArea">
<div class="column">
<h3 style="text-align: justify;">
<span style="font-family: "cmbx12"; font-size: 14pt;">You might also enjoy reading</span></h3>
<ul>
<li style="font-family: cmsy10; font-size: 11pt; text-align: justify;"><span style="font-family: "cmr10"; font-size: 11pt;"><a href="https://geoff.greer.fm/2017/02/28/software-rot/" target="_blank">Software Rot</a> 28 February 2017. Geoff Greer discusses Mozilla tak- ing ten years to upgrade firefox in response to software rot. He also mentioned being unable to disprove the existence of software rot.</span></li>
<li style="font-family: cmsy10; font-size: 11pt; text-align: justify;"><span style="font-family: "cmr10"; font-size: 11pt;"><a href="https://blog.tidelift.com/bit-rot-the-silent-killer" target="_blank">Bit Rot: the silent killer </a>30 January 2018. Andrew Nesbitt advocates Containers to solve bit rot, and fives ways to slow it.</span></li>
<li style="text-align: justify;"><a href="http://www.jdgleaver.co.uk/blog/2016/02/12/bit_rot_a_reminder_to_check_your_files.html" style="font-family: CMR10; font-size: 11pt;" target="_blank">Bit Rot: A Reminder To Check Your Files...</a><span style="font-family: "cmr10"; font-size: 11pt;"> 12 February 2016. J.D.G. Leaver discusses a data loss and recovery incident with modern high density disks.</span></li>
<li style="text-align: justify;"><a href="https://en.wikipedia.org/wiki/Software_rot" style="font-family: CMR10; font-size: 11pt;" target="_blank">Software rot Wikipedia.</a></li>
</ul>
<h3 style="text-align: justify;">
References</h3>
<div>
<div style="text-align: justify;">
[1] Andreas Zeller. Yesterday, my program worked. today, it does not. why? In Oscar Nierstrasz and Michel Lemoine, editors, ESEC/FSE ’99, vol-</div>
</div>
<div>
<div style="text-align: justify;">
ume 1687 of LNCS, pages 253–267, Toulouse, France, September 6–10 1999. Springer.</div>
</div>
<div>
<div style="text-align: justify;">
[2] Brian Hayes. Computing science: Bit rot. American Scientist, 86(5):410– 415, 1998.</div>
</div>
<div>
<div style="text-align: justify;">
[3] Gio Wiederhold. What is your software worth? Communications of the ACM, 49(9):65–75, September 2006.</div>
</div>
</div>
</div>
</div>
</div>
Federica Sarrohttp://www.blogger.com/profile/14388907334162319988noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-12071719181867932682020-03-10T04:51:00.000-07:002020-03-10T04:51:13.511-07:00What is your remedy to cognitive overload?<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: center;">
What is your remedy to cognitive overload?</h2>
<div style="text-align: justify;">
<b style="text-align: left;">By: <a href="https://www.linkedin.com/in/birgit-penzenstadler/" target="_blank">Birgit Penzenstadler</a> (<span style="background-color: white; color: #657786; font-family: , , "blinkmacsystemfont" , "segoe ui" , "roboto" , "ubuntu" , "helvetica neue" , sans-serif; font-size: 15px; white-space: nowrap;">@twinkleflip)</span></b></div>
<div style="text-align: justify;">
<b style="text-align: left;">Associate Editor: <a href="https://www.linkedin.com/in/muneera-bano-71b27aa/" target="_blank">Muneera Bano</a> (<span style="background-color: white; color: #657786; font-family: , , "blinkmacsystemfont" , "segoe ui" , "roboto" , "ubuntu" , "helvetica neue" , sans-serif; font-size: 15px; white-space: nowrap;">@DrMuneeraBano)</span></b></div>
<div style="text-align: justify;">
<b style="text-align: left;"><span style="background-color: white; color: #657786; font-family: , , "blinkmacsystemfont" , "segoe ui" , "roboto" , "ubuntu" , "helvetica neue" , sans-serif; font-size: 15px; white-space: nowrap;"><br /></span></b></div>
<div style="text-align: justify;">
<b style="text-align: left;"><span style="background-color: white; color: #657786; font-family: , , "blinkmacsystemfont" , "segoe ui" , "roboto" , "ubuntu" , "helvetica neue" , sans-serif; font-size: 15px; white-space: nowrap;"><br /></span></b></div>
<div>
<div style="text-align: justify;">
<span style="background-color: white; font-family: "georgia" , "times new roman" , serif; white-space: pre-wrap;">Software engineers that I meet tell me about their hectic schedule, their back to back meetings, and that they constantly feel like there is too much on their to do list to ever get done. Research shows that computer workers are the second highest risk working group of developing depression and anxiety over time. We know a lot about productivity, time management, and efficient software development - the problem is not that software engineers are not good at what they are doing. So the question is whether maybe not everything that is going wrong is outside of us? Maybe we need to look internally, from a completely new perspective? </span></div>
</div>
<div style="text-align: justify;">
<b id="docs-internal-guid-8b0666df-7fff-32fd-2af9-2e8d4debbe38" style="font-weight: normal;"><br /></b>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"><span style="font-family: "georgia" , "times new roman" , serif;"><span style="white-space: pre-wrap;">Have you heard of the concept of mindfulness in the sense of “clear awareness”? Our minds are so full all the time... Clear awareness points towards being super present with what is happening in the current moment, without continuously getting distracted by what may or may not happen later on. Creativity theory talks about the whitespace necessary for being creative, and software engineering is certainly a job that requires creativity for problem solving, designing, etc. So clearing our awareness from distractions and focusing on what is happening in the moment helps us to get into a flow state, where effort meets ease and we feel like we are ‘in the zone’ of ‘deep work’. </span></span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"><span style="font-family: "georgia" , "times new roman" , serif;"><span style="white-space: pre-wrap;">Now it is easy to argue that people need to figure that out in their own free time because the job does not contain the regeneration from working. I disagree - if our current way of working relies on unhealthy practices, leading to cognitive overload and suppressed emotions, that leads to significantly increased health risks, more sick days, increased burnout rates, and low-quality software systems. Moreover, we propagate the values that we live by into the software systems we develop, reciprocal to how organisations tend to resemble the product that they are building (<a href="https://en.wikipedia.org/wiki/Conway%27s_law" target="_blank">Conway’s law</a>). Last but not least, if we are not satisfied by the status quo but don’t challenge it, we still endorse it.</span></span></span></div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
<b style="font-weight: normal;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></b></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mark Zuckerberg and Larry Bryan, just as two well known examples in the IT domain, practice according to old Eastern philosophy - so what's behind that? Whether you choose walks in nature, meditation, Yoga poses, breathing exercises, Tai Chi, any practice that quiets the mind and brings body, mind, and spirit (in the widest sense, call it soul if you like that better - the part of you that is left when you take away all the labels, roles, and characteristics that you seem to possess) back into union or alignment. If you are curious on whether you might benefit from such interventions, you can for example use the </span><a href="https://ggsc.berkeley.edu/images/uploads/The_Mindful_Attention_Awareness_Scale_-_Trait_(1).pdf" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Mindful Attention Awareness Scale</span></a><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> by [Brown et al. 2003].</span></span></div>
</div>
<div style="text-align: justify;">
<b style="font-weight: normal;"><br /></b>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif;">In my research, I investigate the use of healthy practices in the context of software engineering, and I am highly interested in learning whether you use any, whether you (would) consider this beneficial, or if you think this is distracting and irrelevant. </span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif;"><i>What helps you deal with stress, or maintain your overall physical, mental, and emotional health?</i></span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif;"><i><br /></i></span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I’d be most grateful to get your comments and feedback on these questions in this </span><a href="https://forms.gle/Xi2jLiMdhntABYGD9" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">5-item survey</span></a><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif;">In more detail, my research is centered around exploring how the concept of mindfulness or clear awareness can support flow in software design. This means, I look into how regular practices like meditation, yoga poses and breathing exercises can support software engineers in counteracting cognitive overload and feel more in balance. I am interested both in how to teach this to future software engineers at university, to practitioners in industry, and how to offer this in the least invasive way to practitioners on a continuous basis. </span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As software engineers are a quite diverse group, I am curious to find out which modes are most beneficial to which people - and in which situations. For example, if I am really stressed out before a meeting with a challenging client or manager, then the advice to sit down and meditate for ten minutes may freak me out instead of helping, because my mind would go even more crazy having to sit down quietly and try to not think about the upcoming meeting. Instead, in this situation, it is probably a better suggestion for me to do a round of box breathing (for instruction, see my </span><a href="https://youtu.be/VWbGYe_eUdM" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">YouTube video</span></a><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">) to calm down, because this form of deep breathing will activate my vegetative nervous system and lower my blood pressure. </span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif;">I am collaborating with various researchers from different disciplines on this to get all perspective into the picture: There is a Professor from the Department of Yoga at the University of Patanjali in India, Dr. Rudra Bhandari; there is a Professor of Communication Studies who is also a yoga teacher, Dr. Ebony Utley; there is a Professor in Software Engineering who has already investigated the use of meditation in conceptual modeling, Dr. Bea Bernardez; and there are several candidates from medicine and psychology I am currently in conversation with to further investigate brain plasticity and other physiologically measurable impacts. </span></span></div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
<b style="font-weight: normal;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></b></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Thank you for taking the time to read this post, and please consider donating two minutes more to reply to my </span><a href="https://forms.gle/Xi2jLiMdhntABYGD9" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">survey</span></a><span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-family: "calibri" , sans-serif; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b><span style="font-family: "georgia" , "times new roman" , serif; font-size: x-small;">REFERENCES:</span></b></span></div>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
<b style="font-weight: normal;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: x-small;"><br /></span></b></div>
</div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: x-small;">[Newport 2016] Newport, Cal. Deep work: Rules for focused success in a distracted world. Hachette UK, 2016.</span></span></div>
</div>
<div style="text-align: left;">
</div>
<div style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: left;">
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: x-small;">[Brown 2003] Brown, K.W. & Ryan, R.M. (2003). The benefits of being present: Mindfulness and its role in psychological well-being. Journal of Personality and Social Psychology, 84, 822-848.</span></span></div>
</div>
<div>
<div style="text-align: justify;">
<span style="background-color: white; color: black; font-family: "calibri" , sans-serif; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
</div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-30474009290243675522019-12-02T04:31:00.000-08:002019-12-03T02:23:11.045-08:00<br />
<h2 style="text-align: center;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">Gender Equality in Software Engineering</span></span></h2>
<h3 style="text-align: center;">
<span style="background-color: white; font-family: "verdana" , "arial" , "helvetica" , sans-serif; font-size: 13.28px; font-weight: 400; text-align: left;">three extracts from an international workshop </span></h3>
<h4 style="text-align: left;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">By: <a href="https://www.linkedin.com/in/jeff-carver/" target="_blank"> </a></span></span><a href="https://www.linkedin.com/in/jeff-carver/" target="_blank">Jeffrey Carver </a>(<a href="https://twitter.com/JeffCarver32" target="_blank">@JeffCarver32</a>) and <a href="https://www.linkedin.com/in/alexanderserebrenik/" target="_blank">Alexander Serebrenik </a>(<a href="https://twitter.com/aserebrenik" target="_blank">@aserebrenik</a>)</h4>
<br />
<div class="MsoNormal">
</div>
<br />
<h4 style="-webkit-text-stroke-width: 0px; color: black; font-family: "Times New Roman"; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<span style="font-family: "times" , "times new roman" , serif;"><span lang="EN-US">Associate Editor: </span><b><span lang="DE" style="mso-ansi-language: DE;"><a href="https://www.linkedin.com/in/xabierlarrucea/" target="_blank">Xabier Larrucea</a> </span></b><span lang="DE" style="mso-ansi-language: DE; mso-bidi-font-weight: bold;">(</span><span lang="DE" style="mso-ansi-language: DE; mso-bidi-font-weight: bold;"><a href="https://twitter.com/xlarrucea" target="_blank">@xlarrucea</a>)<b><o:p></o:p></b></span></span></h4>
<br />
<div class="MsoNormal" style="background-color: white;">
<div style="color: #222222; text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif; font-size: x-small;">This post diverges from the standard way of publishing because it links to the current issue of the IEEE Software magazine (<a href="https://www.computer.org/csdl/magazine/so/2019/06/08880051/1ekTayi7kt2" target="_blank">here</a>). This approach helps readers to compliment magazine issues with related posts.</span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif; font-size: x-small;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: #222222; font-family: "arial" , "helvetica" , sans-serif; font-size: x-small;"><br /></span></div>
<div style="color: #222222; text-align: justify;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: x-small;">In fact, the following summaries are stemming from the </span><span style="color: black; font-family: "arial" , "helvetica" , sans-serif; font-size: x-small; text-align: left;">2nd International Workshop on Gender Equality in Software Engineering</span></div>
<div style="color: #222222; text-align: justify;">
<span style="color: black; text-align: left;"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: x-small;"><br /></span></span></div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small; text-align: justify;">
<span style="font-family: "arial" , sans-serif; font-size: 10pt;"><br /></span></div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small; text-align: justify;">
<span style="font-family: "arial" , sans-serif; font-size: 10pt;"><br /></span></div>
<div style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: small; text-align: justify;">
<span style="font-family: "arial" , sans-serif; font-size: 10pt;">“Characterizing Women (Not) Contributing to Open-Source” by Wurzelová and colleagues studies factors related to women’s under-representation in open-source software development. Using the results from the 2018 Stack Overflow survey of software developers (100,000 respondents, 3,436 women), the authors compare the characteristics of women who reported contributions to open-source software development with the characteristics of women who did not report contributions to open-source software. The characteristics the authors analyzed include: experience, age, education, perceived competence, feelings of kinship and competition, and self-education activities. Surprisingly, the authors did not identify any marked differences in any of these characteristics. This result suggests, among the survey respondents, the population of women who reported contributions to open-source software development is similar to the population of women who do not report contributions to open-source development. Especially surprising is that the authors did not identify any difference in the respondents’ perception of their own competence, even though underestimating one’s own competence is widely considered a reason for why women contribute less in open-source environments. This result hints at the presence of other reasons, not analyzed in this study, why the participation of women is lower in open-source software. This paper appears in the 2019 GE workshop. Access it at <a data-saferedirecturl="https://www.google.com/url?q=http://bit.ly/PD-2019-Blog-01&source=gmail&ust=1575374749544000&usg=AFQjCNEKfi-vsmkkr3EflGem2u6I3Mx9Iw" href="http://bit.ly/PD-2019-Blog-01" style="color: #1155cc;" target="_blank">http://bit.ly/PD-2019-Blog-01</a>.<wbr></wbr> <u></u><u></u></span></div>
</div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<div style="text-align: justify;">
<br /></div>
</div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<div style="text-align: justify;">
<span style="font-family: "arial" , sans-serif; font-size: 10pt;">“Women-only Spaces of Open Source”, by Singh studies the phenomenon that several open-source projects have designated women-centered spaces to facilitate the interactions of women, increase their participation, and empower them. The author observed that among 355 established open-source projects listed on Wikipedia, only 16 had such spaces. The type of space varied from Facebook/Twitter entities to individual blog posts to entire websites dedicated to supporting women involved in the project. The oldest women-centered space, LinuxChix, is almost twenty years old. The most recent one, Women in Bitcoin, goes back to 2013. All the spaces implement strategies to encourage the involvement of women by showcasing their achievements, pairing more and less experienced participants, and support the participants in revealing their identity if they desire to do so. The research suggests that these women-centered spaces fill a gap in the infrastructure of open source projects and have implications for improving the overall underrepresentation of women in technology. However, further research is required to understand why some of these spaces become inactive or cease to exist while other flourish. This paper appears in the 2019 GE workshop. Access it at <a data-saferedirecturl="https://www.google.com/url?q=http://bit.ly/PD-2019-Blog-02&source=gmail&ust=1575374749544000&usg=AFQjCNG1FkBsSrsNP3zfM6RTB1CIGwlj0g" href="http://bit.ly/PD-2019-Blog-02" style="color: #1155cc;" target="_blank">http://bit.ly/PD-2019-Blog-02</a>.<wbr></wbr> <u></u><u></u></span></div>
</div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<div style="text-align: justify;">
<br /></div>
</div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<div style="text-align: justify;">
<span style="font-family: "arial" , sans-serif; font-size: 10pt;">“How Remote Work can Foster a More Inclusive Environment for Transgender Developers” by Ford and colleagues studies the experience of transgender software developers. By talking to several transgender software developers the authors identified three themes that resonate across the trans experience and intersect with the advantages to working in software development remotely: identity disclosure, high-impact technical work, and the autonomy to disengage and re-engage. Based on these interviews and survey of the literature, the authors hypothesize that remote work technologies can increase the sense of empowerment transgender people have to be authentic and effective in their work. This paper appears in the 2019 GE workshop. Access it at <a data-saferedirecturl="https://www.google.com/url?q=http://bit.ly/PD-2019-Blog-03&source=gmail&ust=1575374749544000&usg=AFQjCNGJKPE0FlRAxOlkOoWxGe0avStNGA" href="http://bit.ly/PD-2019-Blog-03" style="color: #1155cc;" target="_blank">http://bit.ly/PD-2019-Blog-03</a>.<wbr></wbr> <u></u><u></u></span></div>
</div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">
<div style="text-align: justify;">
<br /></div>
</div>
Xabier Larruceahttp://www.blogger.com/profile/13576740070860217764noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-520980614522343962019-10-07T01:46:00.001-07:002019-10-07T01:46:02.282-07:00Communicating Stakeholders’ needs with Vision Videos <div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<h2 style="text-align: center;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">Communicating
Stakeholders’ needs </span></span></h2>
<h3 style="text-align: center;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">Vision Videos to Disclose,
Discuss, and Align Mental Models for Shared Understanding</span></span></h3>
<h4 style="text-align: left;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">By: <a href="https://www.oliver-karras.de/">Oliver
Karras</a> (<a href="https://twitter.com/KarrasOliver">@KarrasOliver</a>)</span></span></h4>
<h4 style="text-align: left;">
<span style="font-family: "times" , "times new roman" , serif;"><span lang="EN-US">Associate Editor: <a href="https://www.linkedin.com/in/muneera-bano-71b27aa/" target="_blank"><span lang="DE" style="mso-ansi-language: DE; mso-bidi-font-weight: bold;">Muneera<b> </b>Bano</span></a></span><b><span lang="DE" style="mso-ansi-language: DE;"> </span></b><span lang="DE" style="mso-ansi-language: DE; mso-bidi-font-weight: bold;">(</span><span lang="EN-US"><a href="https://twitter.com/DrMuneeraBano" target="_blank"><span lang="DE" style="mso-ansi-language: DE; mso-bidi-font-weight: bold;">@DrMuneeraBano</span></a></span><span lang="DE" style="mso-ansi-language: DE; mso-bidi-font-weight: bold;">)<b><o:p></o:p></b></span></span></h4>
<div class="MsoNormal">
<span lang="DE" style="mso-ansi-language: DE; mso-bidi-font-weight: bold;"><span style="font-family: "times" , "times new roman" , serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "times" , "times new roman" , serif;"><span lang="EN-US">One central task in
requirements engineering (RE) is to understand, document, and convey the needs
of diverse stakeholders among all parties involved. The process of coordinating
and communicating these needs so that the development team can implement a
solution that the stakeholders accept is called </span><span lang="EN-US"><a href="https://dl.acm.org/citation.cfm?id=1822885">requirements communication</a></span><span lang="EN-US">. Requirements
communication involves </span><span lang="EN-US"><a href="https://dl.acm.org/citation.cfm?id=2125694">developing and negotiating a shared
understanding</a></span><span lang="EN-US">
of the goals, plans, status, and context of a project among all project partners,
which requires disclosing, discussing, and aligning their mental models of the future
system, i.e. their visions. A mental model is a conceptual idea in the mind of
a person that represents the person’s individual understanding of how a system
will work. Shared understanding leads to a common vision that summarizes the
essence of the mental models of all stakeholders of the ultimate system that
satisfies their needs. This common vision, in turn, describes the boundary of
the system and thus its scope. Therefore, </span><span lang="EN-US"><a href="https://link.springer.com/chapter/10.1007/978-3-319-09798-5_2">shared understanding is
one of the most important objectives in RE</a></span><span lang="EN-US"> since it enables the
stakeholders and development team to assess and agree on what the relevant
requirements are and what the meaning of these requirements is regarding the
future system.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;"><br /></span></span></div>
<h3 style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">The
Challenge of Establishing a Common Vision</span></span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "times" , "times new roman" , serif;"><span lang="EN-US">Stakeholders and the development team can achieve shared understanding more easily if they use
practices that </span><span lang="EN-US"><a href="https://dl.acm.org/citation.cfm?id=2125694">support proactive information exchange among
them</a></span><span lang="EN-US">.
However, current RE practices mainly describe a vision as text. This
representation is less suited for communication with a proactive information
exchange due to two main reasons. First, the inherent restrictions of natural
language such as ambiguity and abstraction increase the likelihood of
undetected misunderstandings that limit shared understanding. Second, textual
documentation cannot capture all information that is relevant to stakeholders
and the development team. Mental models are difficult to capture since they are
intangible due to their tacit representations in the persons’ minds. Thus,
mental models require other communication mechanisms that are more suited for proactive
information exchange to disclose, discuss, and align them to establish a common
vision and thus shared understanding.<span style="color: red;"><o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;"><br /></span></span></div>
<h3 style="text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">Vision
Videos for Shared Understanding</span></span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "times" , "times new roman" , serif;"><span lang="EN-US">In contrast to text, </span><span lang="EN-US"><a href="http://pi.informatik.uni-siegen.de/gi/stt/38_1/01_Fachgruppenberichte/FGRE/10_paper_3.pdf">video is a more promising
communication mechanism for shared understanding</a></span><span lang="EN-US"> when
representing a vision. Such a video, so-called vision video, visualize a vision
of a future system, i.e., the video producer’s mental model. This visualization
discloses the mental model by externalizing the model and thus making it
tangible. However, even this external representation does not encapsulate
shared understanding but merely </span><span lang="EN-US"><a href="http://pi.informatik.uni-siegen.de/gi/stt/38_1/01_Fachgruppenberichte/FGRE/10_paper_3.pdf">aids to develop shared
understanding</a></span><span lang="EN-US">.
The explicit representation provides a reference point for the active
discussion among the parties involved to align their mental models. The desired
result of a common vision can be more easily achieved since critical issues of
the mental models are identified, discussed, understood, and, at best resolved
by making them explicit and obvious. The established common vision, in turn,
reduces the risk of misunderstandings due to false assumptions.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;"><br /></span></span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0pt 5.4pt 0pt 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;">
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0pt 5.4pt 0pt 5.4pt; width: 453.1pt;" valign="top" width="471"><h4 style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0pt; text-align: center;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="font-size: 12pt;"><span style="font-family: "times" , "times new roman" , serif;">Vision video</span></span></b></h4>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 6.0pt; margin-left: 0pt; margin-right: 0pt; margin-top: 6.0pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">A vision
video is a video that represents a vision or parts of it for achieving shared
understanding among all parties involved by disclosing, discussing, and
aligning their mental models of the future system.<o:p></o:p></span></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="margin-top: 8.0pt; text-align: justify;">
<br /></div>
<span style="font-family: "times" , "times new roman" , serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="font-size: 11pt; line-height: 107%;"><br clear="all" style="page-break-before: always;" />
</span></b>
</span><br />
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;">Current Research on
Vision Videos</span></span></b></h3>
<div class="MsoNormal" style="margin-top: 8.0pt; text-align: justify;">
<span style="font-family: "times" , "times new roman" , serif;"><span lang="EN-US">Vision videos
are no new practice. One well-known example of a vision video is Apple’s </span><span lang="EN-US"><a href="https://www.youtube.com/watch?v=umJsITGzXd0">Knowledge Navigator</a></span><span lang="EN-US"> (1987). Since
2017, the YouTube channel “</span><span lang="EN-US"><a href="https://www.youtube.com/user/InnovationUnion/featured">EU Science and Innovation</a></span><span lang="EN-US">” provides a </span><span lang="EN-US"><a href="https://www.youtube.com/playlist?list=PLvpwIjZTs-LjHDvRTqlyjfLeflXDak5er">playlist</a></span><span lang="EN-US"> of vision videos
of research and innovation projects funded by the European Union. These videos
highlight the future impact of the projects on the life of Europe’s citizens
and society as a whole.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-top: 8.0pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "times" , "times new roman" , serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "times" , "times new roman" , serif;"><span lang="EN-US">Despite the benefits of
vision videos, </span><span lang="EN-US"><a href="https://ieeexplore.ieee.org/abstract/document/8595129">videos are not an
established communication mechanism for shared understanding</a></span><span lang="EN-US">. In a </span><span lang="EN-US"><a href="https://link.springer.com/chapter/10.1007/978-3-030-03673-7_11">survey</a></span><span lang="EN-US">, I
investigated the obstacles that prevent software professional from producing
and using videos in RE. In particular, I found that software professionals (1)
perceive the effort of producing and using videos in RE as too high; and (2)
lack knowledge about how to produce good videos. Based on these findings, I
currently work on an </span><span lang="EN-US"><a href="https://link.springer.com/chapter/10.1007/978-3-030-15538-4_10">affordable video approach</a></span><span lang="EN-US"> that enables
software professionals to produce and use vision videos for shared
understanding at moderate costs and sufficient quality. This approach consists
of two concepts. First, I work on including </span><span lang="EN-US"><a href="https://ieeexplore.ieee.org/abstract/document/8054839">videos as a by-product</a></span><span lang="EN-US"> of established
RE practices and techniques, such as </span><span lang="EN-US"><a href="https://ieeexplore.ieee.org/abstract/document/8054839">prototyping</a></span><span lang="EN-US"> and </span><span lang="EN-US"><a href="https://ieeexplore.ieee.org/abstract/document/7765520">workshops</a></span><span lang="EN-US">, to reduce
the production effort. Second, I am working on a </span><span lang="EN-US"><a href="https://ieeexplore.ieee.org/abstract/document/8595129">quality model</a></span><span lang="EN-US"> for vision
videos to guide video production by software professionals. This quality model will
offer a basis for software professionals to estimate the consequent effort and
activities to produce a good vision video. I believe that these two concepts
can help to integrate vision videos in RE to support effective requirements
communication with a proactive information exchange for establishing a shared
understanding among all parties involved.<o:p></o:p></span></span></div>
<br /></div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-75902712227716889212019-09-17T01:07:00.000-07:002019-09-17T01:07:31.974-07:00Female Farmers' Values-Based Apps<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Can a Software Reflect Values of Under-represented Users?</span></h2>
<span id="docs-internal-guid-77d81a12-7fff-4162-449c-f94cf0e3e159"><br /></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Author: </span><a href="http://www.linkedin.com/in/rifat-ara-shams" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: underline; vertical-align: baseline; white-space: pre;">Rifat Ara Shams</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;"> (</span><a href="https://twitter.com/swarna601" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: "roboto" , sans-serif; font-size: 11.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: underline; vertical-align: baseline; white-space: pre;">@swarna601</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; font-weight: 700; white-space: pre-wrap;">Associate Editor: </span><a href="https://www.linkedin.com/in/muneera-bano-71b27aa/" style="font-family: Arial; font-size: 11pt; font-weight: 700; white-space: pre-wrap;" target="_blank">Muneera Bano</a><span style="font-family: "arial"; font-size: 11pt; font-weight: 700; white-space: pre-wrap;"> (</span><a href="https://twitter.com/DrMuneeraBano" style="font-family: Arial; font-size: 11pt; font-weight: 700; white-space: pre-wrap;" target="_blank">@DrMuneeraBano</a><span style="font-family: "arial"; font-size: 11pt; font-weight: 700; white-space: pre-wrap;">)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; font-weight: 700; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span id="docs-internal-guid-df3e196d-7fff-d8fb-1dc3-ddaff43d8dcc"><span style="font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">Software is ubiquitous in all aspects of daily life, therefore it gives rise to the need to account for human values in software. However, existing Software Engineering (SE) techniques have paid less attention to deal with the human values which are reflected frequently in incidents of value breaches. A recent example of the value breach of software was the news, “</span><a href="https://www.bbc.com/news/technology-49277889" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">Instagram removes ad company after data grab</span></a><span style="font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">” that got huge media coverage. Similarly, there are various other examples such as the </span><a href="https://www.theguardian.com/technology/2018/jul/26/facebook-market-cap-falls-109bn-dollars-after-growth-shock" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">collapse of Facebook's share price due to Cambridge Analytica scandal</span></a><span style="font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://www.theguardian.com/business/2016/may/31/vw-volkswagen-profits-down-20-diesel-emissions-scandal" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">resignation of Volkswagen CEO, a 30% drop in the company’s stock price and a 25% drop in sales within a year for the recent issue of installing a deceptively designed software to fool fuel emission tests in Volkswagen emissions fiasco</span></a><span style="font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">. There are also a few incidents reported about value breaches in mobile apps. For example, </span><a href="https://www.thedailystar.net/bytes/ride-sharing-company-pathao-under-pressure-1659331" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">a ride-sharing app in Bangladesh named Pathao accessed its users’ contact lists and SMS without taking their permission for a business purpose.</span></a><span style="font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;"> As a result, Pathao had to face humiliation and loss of profit which resulted in </span><a href="https://www.dhakatribune.com/business/2019/06/26/pathao-sacks-300-employees" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">sacking 300 employees within a day</span></a><span style="font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;"> without any prior notice. These value breaches cause users’ dissatisfaction and contribute to negative socio-economic impacts. </span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span id="docs-internal-guid-e333be27-7fff-acc2-7ac8-f13fed07e1e7"><span style="font-family: "arial"; vertical-align: baseline; white-space: pre-wrap;">Human values are getting less attention from the software engineering research community. In our research, we classified 1350 papers at four top-tier SE journals and conferences (<a href="http://www.icse-conferences.org/" target="_blank">ICSE</a>, <a href="https://t.co/mu97UMckgg" target="_blank">FSE</a>, <a href="https://tosem.acm.org/" target="_blank">TOSEM</a> and <a href="https://www.computer.org/csdl/journal/ts" target="_blank">TSE</a>) from 2015-2018 to investigate the prevalence of human values in SE and found that only 16% (216) of the papers are directly relevant to human values [1]. There is a need to understand what human values are and how they can be incorporated into the software. </span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">What are </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Human Values</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">?</span></h3>
<div style="text-align: left;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: x-small;"><br /></span></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-size: x-small;"><span id="docs-internal-guid-9c497d20-7fff-cc92-261c-f9f0bfcb1644"></span></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">According to literature, values have “importance to you, as guiding principles in your life”. Values are the reflection of people’s personal and social preferences [2]. Social scientists have been researching basic human values to conceptualize those since 1950 [3].</span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; white-space: pre-wrap;">In our research, we used Schwartz theory, which is the highly cited and widely applied classification, not just in the social sciences but also in other disciplines. In 1992, Schwartz divided values into ten main categories based on their motivational goals and 58 value items by which the main values are measured as shown in Figure 1. Values located close to each other are congruent and further apart are opposite in nature [4]. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span id="docs-internal-guid-ed2f1e93-7fff-c829-0223-e211bcd5f44c"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; height: 452px; overflow: hidden; width: 602px;"><img height="452" src="https://lh6.googleusercontent.com/ivsi2t8W_bLKOjCr1riHzcFLZzoM4gOpYPY8BgqvE3fQElpX9NDXQ7k6V09vEPO9il2WPy41Z7TEfFG9IWlaCx6dAtY2LlaRRG6UqBm5VNuPUMwe1lx5-_U6gvNcAc6BIOkNE5QY" style="margin-left: 0px; margin-top: 0px;" width="602" /></span></span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
<h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">How to Consider Values in Software?</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span id="docs-internal-guid-0743c2e0-7fff-73a6-6bcc-cf4e8ff0ba1d"></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The first step to consider human values in software is awareness. Though the importance of including human values in software is significant, it is largely ignored in software engineering due to the lack of a clear definition [5]. This necessitates a concrete definition of human values in SE. Furthermore, there is a need for proper guidelines, tools, and techniques for integrating human values in SE.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
<h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Case Study in Bangladesh</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><span id="docs-internal-guid-57102060-7fff-5658-1da7-f0a243b0c1e9"></span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">We are conducting a case study with the marginalized people in rural Bangladesh with the aim to ensure sustainable use of technology. We are currently exploring the values of female farmers in rural Bangladesh and to what extent the existing agriculture apps reflect their values. </span><span style="font-family: "arial"; white-space: pre-wrap;">To discover their values, we will utilise a well-known value measurement instrument proposed by Schwartz, Portrait Values Questionnaire (PVQ) [4]. In this method, short text portraits of different people, gender-matched with the respondents, are created. Each portrait describes a person’s goals, aspirations and wishes that implicitly reflect the importance of value for that person. We believe, there is a potential in this research to create awareness in SE researcher to consider human values and to provide a reference point to replicate or repeat similar relevant research in collaboration with practitioners and other community stakeholders.</span></div>
<h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"><br /></span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">References:</span></h3>
<div>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-size: x-small;"><span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[1] </span><span style="background-color: white; color: #222222; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Perera, H., Nurwidyantoro, A., Hussain, W., Mougouei, D., Whittle, J., Shams, R. A., & Oliver, G. (2019). A Study on the Prevalence of Human Values in Software Engineering Publications, 2015-2018. </span><span style="background-color: white; color: #222222; font-family: "arial"; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">arXiv preprint arXiv:1907.07874</span><span style="background-color: white; color: #222222; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: x-small;">[2] Milton Rokeach. The nature of human values. Free press, 1973.</span></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: white; color: #222222; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: x-small;">[3] Shalom H Schwartz. Basic human values: Theory, methods, and application. Risorsa Uomo, 2007.</span></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: x-small;">[4] Shalom H Schwartz. An overview of the schwartz theory of basic values. Online readings in Psychology and Culture, 2(1):11, 2012.</span></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: x-small;"><span id="docs-internal-guid-e246acef-7fff-889d-3b36-cc908a132830"></span></span></span></div>
<div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: x-small;">[5] Davoud Mougouei, Harsha Perera, Waqar Hussain, Rifat Shams, and Jon Whittle. Operationalizing human values in software: a research roadmap. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pages 780–784. ACM, 2018.</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-12259238227620224792019-08-26T04:35:00.000-07:002019-08-26T04:35:01.644-07:00Where to deploy my API? From Server-Centric to Client-Centric Architectural Styles.<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 8pt;">
<b><span lang="EN-GB" style="font-family: "helvetica neue"; font-size: 11pt;">Authors:</span></b><span lang="EN-GB" style="font-family: "helvetica neue"; font-size: 11pt;"> </span><span lang="ES" style="font-family: "helvetica neue"; font-size: 11pt;">Javier Berrocal (<a href="https://twitter.com/jberolm"><span style="color: blue;">@jberolm</span></a>), Jose Garcia-Alonso (<a href="https://twitter.com/jmgaralo"><span style="color: blue;">@jmgaralo</span></a>), Juan Manuel Murillo (<a href="https://twitter.com/juanmamuro"><span style="color: blue;">@juanmamuro</span></a>)</span><span style="font-family: , serif; font-size: 11pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 8pt;">
<span lang="ES" style="font-family: "helvetica neue"; font-size: 11pt;"> </span><b><span style="background-color: white; font-family: "helvetica neue"; font-size: 11pt;">Associate Editor:</span></b><span style="background-color: white; font-family: "helvetica neue"; font-size: 11pt;">Niko Mäkitalo (<a href="https://twitter.com/nikkis"><span style="color: blue;">@nikkis</span></a>)</span><span style="font-family: , serif; font-size: 11pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 8pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 8pt;">
<span style="font-family: "helvetica neue";">The increase in the capabilities of near-to-the-edge and end devices has allowed developers to take these devices as a possible destination for the deployment architecture of any API. They can better satisfy the essential requirements of some APIs, such as responsiveness, location-awareness, etc., but they also present some restrictions regarding resource consumption (battery, data traffic, and so on). Currently, developers have to analyze every architectural style carefully and available device to meet the system requirements better. Different tools and proposals are available to facilitate both the decision-making process and the application of the selected architecture.</span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 13.9pt; margin: 2pt 0cm 0.0001pt;">
<span lang="EN-GB" style="color: #2f5496; font-family: "helvetica neue"; font-size: 13pt;">Increase in the capabilities of near-to-the-end devices</span><span style="color: #2f5496; font-family: , serif; font-size: 13pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 8pt;">
<span style="font-family: "helvetica neue";">During the last few years, the predominant architectural style for the deployment of APIs has been the Server-Centric or Cloud-Centric style. In these styles, the most demanding features, like storing or computing of the managed data, are offloaded to cloud environments. These styles provide improved scalability, fault tolerance, and greater control of the operational costs. They allowed developers to implement applications with an excellent response time that can be visualized and used from end devices, that until a few years ago had very limited capabilities.</span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 8pt;">
<span style="font-family: "helvetica neue";">In the last few years, end devices and near-to-the-edge devices capabilities have increased tremendously. Their storage and computational capabilities have increased in order to be able to execute more complex tasks. This allowed researchers to develop new paradigms, such as Fog, Mist or Edge Computing, in which the whole or part of an application or API is loaded in end devices or near-to-the-edge devices, reducing the network load and the dependency of the cloud environment and improving response time. For instance, by using data closer to, or even inside, the targeted device.</span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 8pt;">
<span style="font-family: "helvetica neue";">Therefore, developers not only have to make decisions about how to develop a specific API but also what architectural style to apply and where each microservice should be deployed to meet the system requirements better. Initially, one may think that the behaviors implemented with one style, cannot be achieved with others. Our experience, however, has shown us that similar behaviors can be obtained with any of them.</span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 8pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 13.9pt; margin: 2pt 0cm 0.0001pt;">
<span lang="EN-GB" style="color: #2f5496; font-family: "helvetica neue"; font-size: 13pt;">Trade-off among capabilities and limitations</span><span style="color: #2f5496; font-family: , serif; font-size: 13pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span style="color: #1c1e29; font-family: "helvetica neue";">Therefore, just at the moment in which the developer has to select what architectural and deployment style to use, s/he has to do a complex trade-off among the system requirements, and the capabilities and limitations of the different devices in the environment. Deploying an API following a server-centric style could increase the system scalability or the fault tolerance, but could also negatively affect the operational cost, location-awareness, and responsiveness. Deploying an API in near-to-the edge devices </span><span style="font-family: "helvetica neue";"><a href="https://doi.org/10.1016/j.pmcj.2018.12.007" target="_blank"><span style="color: #4a6ee0;">could positively impact these requirements</span></a></span><span style="color: #1c1e29; font-family: "helvetica neue";">, but they also present some significant limitations. For instance, a constraining factor of these devices is the resource consumption (battery, data traffic, etc.). Many of these devices, such as mobile phones, smart speakers, etc. are battery-powered. Likewise, some of them have to interact using the mobile network, either because they are mobile or because of their specific situation, which entails the consumption of the data plan. In the deployment of any API, the correct management of these resources is crucial for user satisfaction. </span><span style="font-family: "helvetica neue";"><a href="https://dl.acm.org/citation.cfm?id=2825079" target="_blank"><span style="color: #4a6ee0;">It is well known that resource consumption, is a factor determining the application success</span></a></span><span style="color: #1c1e29; font-family: "helvetica neue";">.</span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 8pt;">
<span style="font-family: "helvetica neue";">Therefore, all these dimensions have to be taken into account to select the architectural style that best fit the system requirements, doing a trade-off among the capabilities and limitations of every connected device and the system requirements. </span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 8pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 13.9pt; margin: 2pt 0cm 0.0001pt;">
<span lang="EN-GB" style="color: #2f5496; font-family: "helvetica neue"; font-size: 13pt;">Tools helping in the decision-making process</span><span style="color: #2f5496; font-family: , serif; font-size: 13pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 8pt;">
<span style="font-family: "helvetica neue";">During the last few years, researchers have been working on defining methods for measuring whether the requirements are met, from those directly related to the system behavior to those that impact on other non-functional dimensions such as the resource consumption. </span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-GB" style="color: #1c1e29; font-family: "helvetica neue";">Some works both in the academia and in the industry domains are focused on analyzing the final developed and deployed an application for identifying if those requirements are met. For instance, </span><span lang="EN-GB" style="font-family: "helvetica neue";"><a href="https://doi.org/10.1145/2747470.2747474" target="_blank"><span style="color: #4a6ee0;">Giovani et al</span></a></span><span lang="EN-GB" style="color: #1c1e29; font-family: "helvetica neue";">. presented some years ago, a monitoring framework able to adjust the resources assigned to the deployed application or to face transient failures replicating and restarting components to provide resiliency. </span><span lang="EN-GB" style="font-family: "helvetica neue";"><a href="https://doi.org/10.1145/2996890.2996901" target="_blank"><span style="color: #4a6ee0;">Leitner et al.</span></a></span><span lang="EN-GB" style="color: #1c1e29; font-family: "helvetica neue";"> proposed a tool to re-evaluate the cost of an application in the background continually. Alternatively, for end Android devices, </span><span lang="EN-GB" style="font-family: "helvetica neue";"><a href="https://developer.android.com/studio/profile/battery-historian" target="_blank"><span style="color: #4a6ee0;">Batterystats</span></a></span><span lang="EN-GB" style="color: #1c1e29; font-family: "helvetica neue";">could be used to collects battery data about the consumption of a specific application.</span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span style="color: #1c1e29; font-family: "helvetica neue";">Another proposal, however, is focused on evaluating during the early stages of the development process how these requirements can be met, helping in the decision-making process of which architectural design are the most suitable. For instance, </span><span style="font-family: "helvetica neue";"><a href="https://doi.org/10.1109/CCGRID.2017.28" target="_blank"><span style="color: #4a6ee0;">some works</span></a></span><span style="color: #1c1e29; font-family: "helvetica neue";"> propose a different heuristic to identify where the microservices should be deployed to meet some requirements such as responsiveness better. Likewise, the authors of this post have been working on defining a </span><span style="font-family: "helvetica neue";"><a href="https://doi.org/10.1016/j.pmcj.2016.06.011" target="_blank"><span style="color: #4a6ee0;">conceptual framework</span></a></span><span style="color: #1c1e29; font-family: "helvetica neue";"> to identify in early development stages what architectural style is the most appropriate to achieve a reduction in terms of resource consumption.</span><span style="font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 8pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 13.9pt; margin: 2pt 0cm 0.0001pt;">
<span lang="EN-GB" style="color: #2f5496; font-family: "helvetica neue"; font-size: 13pt;">Generating microservices for different architectures</span><span style="color: #2f5496; font-family: , serif; font-size: 13pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span style="color: #1c1e29; font-family: "helvetica neue";">Once identified the most appropriate style for achieving the system requirements, the API has to be developed and deployed.</span><span style="color: #1c1e29; font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span style="color: #1c1e29; font-family: "helvetica neue";">Currently, the specification and development of microservices are supported by a large number of tools that facilitate the work of the developer. Specifications such as <a href="https://www.openapis.org/" target="_blank"><span style="color: #4a6ee0;">OpenAPI</span></a>, are widely used to detail an API, generate the documentation, perform tests and, even, generate the API skeleton. This <a href="https://editor.swagger.io/" target="_blank"><span style="color: #4a6ee0;">type of tools</span></a> can even generate the source code for different technologies such as Node.JS, Kotlin, JAX-RS,etc., but they are focused on deploying the API in a server or a cloud environment. </span><span style="color: #1c1e29; font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span style="color: #1c1e29; font-family: "helvetica neue";">Fewer commercial tools are supporting other architectural styles, such as client-centric or others architectures based on fog or mist computing. However, at the research level, more and more proposals are presented detailing how to use these specifications to generate the skeleton and to deploy microservices in other elements of the network. For instance, <a href="https://doi.org/10.1007/s11036-018-1089-9" target="_blank"><span style="color: #4a6ee0;">Noura et al.</span></a> propose WoTDL2API tool, that automatically generates a running RESTful API based on the OpenAPI specification and its code generation toolchain to control different IoT devices. The generated source code can be deployed in near-to-the-edge devices, such as gateways, routers, and so on. </span><span style="color: #1c1e29; font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span style="color: #1c1e29; font-family: "helvetica neue";">Likewise, the authors of this post have recently proposed <a href="https://doi.org/10.1007/978-3-030-19274-7_48" target="_blank"><span style="color: #4a6ee0;">a set of tools</span></a> to generate and deploy a running RESTful API based on the OpenAPI standard on end devices such as smartphones, IoT devices, etc., providing support to client-centric architectures. </span><span style="color: #1c1e29; font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 8pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 13.9pt; margin: 2pt 0cm 0.0001pt;">
<span lang="EN-GB" style="color: #2f5496; font-family: "helvetica neue"; font-size: 13pt;">Summarizing</span><span style="color: #2f5496; font-family: , serif; font-size: 13pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span style="color: #1c1e29; font-family: "helvetica neue";">APIs and microservices until now have been designed and developed to be deployed on a cloud environment because of its computing capabilities, fault tolerance, responsiveness, etc. Nevertheless, the ever-increasing capabilities of other elements in the networks have fostered the deployment of these APIs in these devices to better meet some requirements <a href="https://doi.org/10.1016/j.pmcj.2018.12.007" target="_blank"><span style="color: #4a6ee0;">such as scalability, interoperability, real-time responsiveness, security, or location-awareness</span></a>.</span><span style="color: #1c1e29; font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<span style="color: #1c1e29; font-family: "helvetica neue";">Nevertheless, for developers to apply the best architectural style, first, they need tools helping in the decision making process by providing information for each style on the degree of compliance of the requirements; and, secondly, tools supporting and reducing the effort required to develop and deploy the microservices for each architectural style are needed. If these tools are not provided developer, tend to use only known architectures and those with greater support.</span><span style="color: #1c1e29; font-family: , serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
Niko Mäkitalohttp://www.blogger.com/profile/03707120761172781413noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-17930729293933359682019-08-19T11:59:00.000-07:002019-08-27T06:45:17.441-07:00Studying human values in software engineering<b>Authors</b>: <a href="https://www.lancaster.ac.uk/people-profiles/emily-winter">Emily Winter</a> and <a href="https://www.lancaster.ac.uk/people-profiles/maria-angela-ferrario">Maria Angela Ferrario</a><br />
<b>Associate Editor</b>: <a href="https://jhcheng.me/">Jinghui Cheng</a> (<a href="https://twitter.com/jinghuicheng">@JinghuiCheng</a>)<br />
<br />
The <b>Values in Computing (ViC)</b> project: <a href="http://www.valuesincomputing.org/">http://www.valuesincomputing.org</a><br />
<br />
<div>
Why do human values matter for software engineering? Recent years have seen high profile software scandals and malpractices, in which individual privacy and social democracy have been undermined, as in the case of <a href="https://www.theguardian.com/news/series/cambridge-analytica-files">Cambridge Analytica’s use of Facebook data</a> [1] and even human lives lost, as in <a href="https://www.theguardian.com/business/2019/jun/17/boeing-737-max-ethiopian-airlines-crash">the case of Boeing 737</a> [2]. As <a href="http://blog.ieeesoftware.org/2019/07/values-debt-is-eating-software.html">another recent IEEE Software post</a> puts it, we are heading into an age of considerable ‘values debt’ [3], as the negative societal consequences, both intended and unintended, of our software systems mount up.<br />
<br /></div>
<div>
There is a pressing need then to understand how human values operate, to develop methods and tools to study them in a software engineering context, and to build on this understanding to consider how SE research might contribute to a more socially responsible software industry.<br />
<br /></div>
<div>
<b>How do values operate?</b><br />
<b><br /></b> We use values research from social psychology as our framework. In particularly, we draw on Schwartz’s values model, based on extensive empirical research spanning the last three decades. Schwartz’s work has identified, through survey research, a range of values that are recognised across cultures and that operate relationally. Schwartz’s values model operates across two key oppositional axes: self-enhancement vs. self-transcendence; and openness vs. conservation [4].<br />
<br /></div>
<div>
We also use Maio’s work, which considers values as mental constructs that can be studied at three different levels: the system level (the relationships outlined by Schwartz); the personal level (the different interpretations of values held by individuals); and the instantiation level (how values are expressed through behaviours) [5]. At the system level, for example, a software engineer who is highly concerned about their personal career development (achievement) is – according to Schwartz’s model – less likely to be concerned about the environmental sustainability (universalism) of the systems they are building. At the personal level, software engineers may have different interpretations of high quality code (achievement) - e.g. ‘code that does the job’ vs. ‘elegant code’. At the instantiation level, a concern with privacy may manifest in a development decision not to track user queries.<br />
<br /></div>
<div>
<b>Understanding values in software engineering</b><br />
<b><br /></b> In order to study human values in a software engineering context, we required methods that were relatable and relevant to the software engineering community. We used Q-methodology as our starting point [6]. Q-methodology is a well-established method designed to systematically study subjectivity. It involves participants taking part in a card ranking exercise; they are interviewed about their decisions and multiple participants’ ‘sorts’ can be statistically analysed. The structured nature of the sorting helped with the systematic articulation and analysis of the qualitative data elicited from participant’s narratives; it was also important that the card statements were specific to the software engineering community. We used the newly revised ACM Code of Ethics [7] as a basis, choosing principles that corresponded with Schwartz’s values types and filling in any gaps by creating statements in accordance with the missing values. It was important, in order to gain a full understanding of the software engineering context, to consider a wide range of values, not just those considered ethical, in order to understand fully values trade-offs within complex industry contexts. <i>Power and profit were as important for our study as honesty and the social good.</i>
<br />
<i><br /></i>
</div>
<div>
<b>The role of the researcher in promoting a socially responsible software industry</b><br />
<b><br /></b> One of our key findings is that <i>people interpret and act out values in very different ways</i>. Two of our study participants, for example, who both placed the statement ‘it is important for me that the public good is the central concern of all professional computing work’ in their ‘top 3’, showed almost opposite understandings of this value. For Laura, for example, the public good was about optimising the user experience: she explained they would ‘analyse the data once the user hits our website; we would then optimise off that behaviour’. By contrast, Stuart didn’t want to overly ‘structure’ the experience of users. He explained that an e-commerce site could ask users ‘do you want us to try and automate your offers? Yes or no’. He viewed an overly structured web experience as being oppositional to users’ freedom of choice.<br />
<br /></div>
<div>
By simply introducing the Q-Sort to software engineers, we have already encouraged articulation of these differences of interpretation, things that are often taken for granted and rarely explained. Maio and Olson, for example, argue that values often act as truisms, ‘widely shared, rarely questioned, and, therefore, relatively bereft of cognitive support’ [8]. Carrying out this kind of research may be the first step in encouraging a more values-aware and values-reflective technology industry – in which the taken-for granted may begin to be reflected upon and articulated. Avenues for future work include identifying opportunities for light-weight interventions that enable values reflection as an integral part of the agile process, for example.</div>
<div>
<br />
As well as encouraging discussion of values within industry, we (SE researchers and academics) need to foster reflective, critical skills within our students. For example, we used the <i>Q-Sort as a teaching tool </i>in our Software Studio, a 20-week long module for second year Software Engineering undergraduate students. Within this module, students work in small teams to ideate, design and develop a software application. We introduced the Q-Sort to teams early on in the process as a way of encouraging values articulation and prioritisation that would underpin the entire software engineering decision making process. As well as generating discussion, reflection and critical thinking, this led to concrete future design decisions. One team, for example, went on to adopt a ‘most-vulnerable-first’ approach to system design and development for their train journey planning app, prioritizing search needs for people with disabilities, people with young children, and the elderly. In contrast to standalone ethics courses, the Software Studio embedded values and ethical considerations into the module; they were integrated with technical skills, not an optional add-on.<br />
<br /></div>
<div>
This is one example of teaching practice that supports the Values in Computing mission: that the <i>next generation of computing professionals </i>will be equipped with the technical tools, foundational knowledge, and critical skills necessary to distinguish responsible software engineering decisions from those that are potentially harmful to self and society.<br />
<br />
<b>References</b>
<br />
<ol>
<li>The Guardian, Cambridge Analytica Files. Retrieved on 12 August 2019 from <a href="https://www.theguardian.com/news/series/cambridge-analytica-files" style="color: #954f72;">https://www.theguardian.com/news/series/cambridge-analytica-files</a></li>
<li>Helmore, E. (2019) ‘Profit over safety? Boeing under fire over 737 Max crashes as families demand answers’, The Guardian. Retrieved on 12 August 2019 from <a href="https://www.theguardian.com/business/2019/jun/17/boeing-737-max-ethiopian-airlines-crash" style="color: #954f72;">https://www.theguardian.com/business/2019/jun/17/boeing-737-max-ethiopian-airlines-crash</a></li>
<li>Hussain, W. (2019) ‘Values debt is eating software’, IEEE Software blog. Retrieved on 12 August 2019 from <a href="http://blog.ieeesoftware.org/2019/07/values-debt-is-eating-software.html" style="color: #954f72;">http://blog.ieeesoftware.org/2019/07/values-debt-is-eating-software.html</a></li>
<li>Schwartz, S. H. et al. (2012) ‘Refining the theory of basic individual values’. Journal of personality and social psychology 103(4): 663-688</li>
<li>Maio, G. R. (2010) ‘Mental representations of social values’. in Advances in Experimental Social Psychology (Vol 42). Academic Press, pp. 1–43.</li>
<li>Winter, E. et al. (2019) ‘Advancing the study of human values in software engineering’. In Proceedings of the 12<sup>th</sup>International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE '19). IEEE Press, pp. 19-26. </li>
<li>ACM (2019) Code of Ethics and Professional Conduct. Retrieved on 12 August 2019 from <a href="https://www.acm.org/code-of-ethics" style="color: #954f72;"><span style="color: blue;">https://www.acm.org/code-of-ethics</span></a></li>
<li>Maio, G. R. and J. M. Olson (1998) ‘Values as truisms: Evidence and implications’. Journal of Personality and Social Psychology, 74(2): 294-311.</li>
</ol>
</div>
Jinghui Chenghttp://www.blogger.com/profile/17327235334052263943noreply@blogger.com1tag:blogger.com,1999:blog-8509343272562195687.post-81357512240143147572019-08-07T10:01:00.002-07:002019-08-12T07:44:32.226-07:00Design and Evolution of C-Reduce (Part 2)<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Author: <a href="http://john.regehr.org/" target="_blank">John Regehr</a> (<a href="https://twitter.com/johnregehr" target="_blank">@johnregehr</a>)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Associate Editor: <a href="https://karimali.ca/" target="_blank">Karim Ali</a> (<a href="https://twitter.com/karimhamdanali" target="_blank">@karimhamdanali</a>)</span><br />
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 14.666666984558105px; vertical-align: baseline; white-space: pre-wrap;">Part 1 of this series introduced C-Reduce and showed how it combines a domain-independent core with a large collection of domain-specific passes in order to create a highly effective test-case reducer for C and C++ code. This part tells the rest of the story and concludes.</span><br />
<div>
<h2>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Parallel Test-Case Reduction</span></span></span></h2>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;">
</span></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">C-Reduce's second research contribution is to perform test-case reduction in parallel using multiple cores. The parallelization strategy, based on the observation that most variants are</span></span></span></div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;">
</span></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">uninteresting, is to speculate along the uninteresting branch of the search tree. Whenever C-Reduce discovers an interesting variant, all outstanding interestingness tests are killed and a new line of speculation is launched. This is the same approach that was subsequently rediscovered by the creator of </span><a href="https://github.com/googleprojectzero/halfempty" style="text-decoration: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">halfempty</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">.</span></span></span></div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;">
</span></span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">C-Reduce has a policy choice between taking the first interesting variant returned by any CPU, which provides a bit of extra speedup but makes parallel reduction non-deterministic, or only taking an interesting variant when all interestingness tests earlier in the search tree have reported that their variants are uninteresting. We tested both alternatives and found that the speedup due to non-deterministic choice of variants was minor. Therefore, C-Reduce currently employs the second option, which always follows the same path through the search tree that non-parallel C-Reduce would take. The observed speedup due to parallel C-Reduce is variable, and is highest when the interestingness test is relatively slow. Speedups of 2–3x vs. sequential reduction are common in practice.</span></span></span></div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;">
</span></span>
<h2>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Applicability and Moving Towards Domain-Independence</span></span></span></h2>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-de893d8a-7fff-5ec8-8f70-5846a41c99c1" style="font-family: -webkit-standard; white-space: normal;">
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Something that surprised us is how broadly applicable C-Reduce is to test cases in languages other than C and C++. Our users have found it effective in reducing Java, Rust, Julia, Haskell, Racket, Python, SMT-LIB, and a number of other languages. When used in this mode, the highly C/C++-specific C-Reduce passes provide no benefit, but since they fail quickly they don't do much harm. (C-Reduce also has a </span><span style="font-family: "courier new"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">--not-c</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> command line option that avoids running these passes in the first place.) One might ask why C-Reduce is able to produce good results for languages other than C and C++; the answer appears to be based on the common structural elements found across programming languages in the Algol and Lisp families. In contrast, in our limited experience, C-Reduce does a very poor job reducing test cases in binary formats such as PDF and JPEG. Other reducers, such as the afl-tmin tool that ships with afl-fuzz, work well for binary test cases.</span></div>
</span></span></div>
<div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-909db628-7fff-b059-e9c7-07aaeccc72f4" style="font-family: -webkit-standard; white-space: normal;"></span></span><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-909db628-7fff-b059-e9c7-07aaeccc72f4" style="font-family: -webkit-standard; white-space: normal;"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">A consequence of the modular structure of C-Reduce is that while its transformation passes are aimed at reducing C and C++ code, the C-Reduce core is completely domain-independent. C-Reduce has been forked to create </span><a href="https://github.com/mpflanzer/clreduce" style="text-decoration: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">a highly effective reducer for OpenCL programs</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. We believe it would be relatively straightforward to do something similar for almost any other programming language simply by tailoring the passes that C-Reduce uses.</span></span></span></div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-909db628-7fff-b059-e9c7-07aaeccc72f4" style="font-family: -webkit-standard; white-space: normal;">
</span></span></div>
<div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-125e52f0-7fff-e98d-3b45-e989adf32d39" style="font-family: -webkit-standard; white-space: normal;"></span></span><br />
<h2>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-125e52f0-7fff-e98d-3b45-e989adf32d39" style="font-family: -webkit-standard; white-space: normal;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Limitations</span></span></span></h2>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-125e52f0-7fff-e98d-3b45-e989adf32d39" style="font-family: -webkit-standard; white-space: normal;">
</span></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-125e52f0-7fff-e98d-3b45-e989adf32d39" style="font-family: -webkit-standard; white-space: normal;"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">When used for its intended purpose, when does C-Reduce work badly? We have seen two main classes of failure. First, C-Reduce can be annoyingly slow. This typically happens when the passes early in the phase ordering, which are intended to remove a lot of code quickly, fail to do this. Second, highly templated C++ sometimes forces C-Reduce to terminate with an unacceptably large (say, >1 KB) final result. Of course this is better than nothing, and subsequent manual reduction is usually not too difficult, but it is frustrating to have written 69 different Clang-based passes and to still find effectively irreducible elements in test cases. The only solution—as far as we know—is to strengthen our existing transformation passes and to create more such passes.</span></span></span></div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-125e52f0-7fff-e98d-3b45-e989adf32d39" style="font-family: -webkit-standard; white-space: normal;">
</span></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-125e52f0-7fff-e98d-3b45-e989adf32d39" style="font-family: -webkit-standard; white-space: normal;"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">A small minority of compiler bugs appears to be impossible to trigger using small test cases. These bugs are exceptions to the </span><a href="http://projects.csail.mit.edu/mulsaw/papers/SSH.ps" style="text-decoration: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">small scope hypothesis</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. They typically stem from resource-full bugs in the compiler. For example, a bug in register spilling code requires the test case to use enough registers that spilling is triggered; a bug in logic for emitting long-offset jumps requires the test case to contain enough code that a long offset is required; etc. These test cases are just difficult to work with, and it is not clear to us that there's anything we can do to make it easier to debug the issues that they trigger.</span></span></span></div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-125e52f0-7fff-e98d-3b45-e989adf32d39" style="font-family: -webkit-standard; white-space: normal;">
</span></span></div>
<div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;"></span></span><br />
<h2 style="white-space: normal;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">C-Reduce Design Principles</span></span></span></h2>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;">
</span></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; white-space: normal;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">In summary, C-Reduce was designed and implemented according to the following principles:</span></span></span></div>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;">
</span></span>
<br />
<ol style="margin-bottom: 0pt; margin-top: 0pt;"><span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;">
<li dir="ltr" style="font-family: arial; font-size: 11pt; list-style-type: decimal; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">Be aggressive: make the final reduced test case as small as possible.</span></div>
</li>
<li dir="ltr" style="font-family: arial; font-size: 11pt; list-style-type: decimal; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">Make the reducer fast, for example using parallelism, careful phase ordering of passes, and avoiding unnecessary I/O traffic, when this can be done without compromising the quality of the final output.</span></div>
</li>
</span></span>
<li dir="ltr" style="list-style-type: decimal; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;"><span style="font-family: arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Make it as easy as possible to implement new passes, so that many domain-specific passes can be created.</span></span></span><br />
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;"><br /></span></span></div>
</li>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;">
<li dir="ltr" style="font-family: arial; font-size: 11pt; list-style-type: decimal; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">Keep the C-Reduce core domain-independent.</span></div>
</li>
<li dir="ltr" style="font-family: arial; font-size: 11pt; list-style-type: decimal; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; white-space: pre;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">Focus only on producing potentially-interesting variants, delegating all other criteria to the user-supplied interestingness test.</span></div>
</li>
</span></span></ol>
<span style="color: black; font-family: "arial"; font-size: 11pt; vertical-align: baseline;"><span id="docs-internal-guid-42e267e2-7fff-1df1-4d27-4eda686d4043" style="font-family: -webkit-standard;">
</span></span></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Directions for Future Test-Case Reduction Research</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Although perhaps a few dozen papers have been written about test-case reduction since Hildebrandt and Zeller's initial paper 19 years ago, I believe that this area is under-studied relative to its practical importance. I'll wrap up this article with a collection of research questions suggested by our experience in over a decade of work on creating a highly aggressive reducer for C and C++.</span></div>
<b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What is the role of domain-specificity in test case reduction?</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Researchers who cite C-Reduce appear to enjoy pointing out that it is highly domain-specific (nobody seems to notice that the C-Reduce core is domain-independent, and that the pass schedule is easy to modify). The implication is that domain-specific hacks are undesirable and, of course, an argument against such hacks would be forceful if backed up by a test-case reducer that produced smaller final C and C++ code than C-Reduce does, without using domain knowledge. So far, such an argument has not been made.</span></div>
<b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Is domain knowledge necessary, or can a domain-independent test-case reducer beat C-Reduce at its own game? The most impressive such effort that we are aware of is David MacIver's </span><a href="https://github.com/DRMacIver/structureshrink" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">structureshrink</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, which uses relatively expensive search techniques to infer structural elements of test cases that can be used to create variants. Anecdotally, we have seen structureshrink produce reduced versions of C++ files that are smaller than we would have guessed was possible without using domain knowledge. Even so, some useful transformations such as function inlining and partial template instantiation seem likely to remain out-of-reach of domain-independent reduction techniques.</span></div>
<b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What is the role of non-greedy search in test-case reduction?</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> In many cases, the order in which C-Reduce runs its passes has little or no effect on the final, reduced test case. In other words, the search is often diamond-shaped, terminating at the same point regardless of the path taken through the search space. On the other hand, this is not always the case, and when the search is not diamond-shaped, a greedy algorithm like C-Reduce's risks getting stopped at a local minimum that is worse than some other, reachable minimum. The research question is how to get the benefit of non-greedy search algorithms without making test-case reduction too much slower.</span></div>
<b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What other parallelization methods are there?</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> C-Reduce's parallelization strategy is simple, gives a modest speedup in practice, and always returns the same result as sequential reduction. There must be other parallel test-case reduction strategies that hit other useful points in the design space. This is, of course, related to the previous research question. That is, if certain branches in the search tree can be identified as being worth exploring in both directions, this could be done in parallel.</span></div>
<b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What is the role of canonicalization in test-case reduction?</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> A perfectly canonicalizing reducer would reduce every program triggering a given bug to the same final test case. This is a very difficult goal, but there are many relatively simple strategies that can be employed to increase the degree of canonicalization, such as putting arithmetic expressions into a canonical form, assigning canonical names to identifiers, etc. C-Reduce has a number of transformations that are aimed at canonicalization rather than reduction. For example, the reduced test case at the top of Part 1 of this piece has four variables a, b, c, and d, which first appear in that order. I believe that more work in this direction would be useful.</span></div>
<br />
<span style="font-family: "arial"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Can we avoid bug hijacking?</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> Test reduction sometimes goes awry when the bug targeted by the reduction is "hijacked" by a different bug. In other words, the reduced test case triggers a different bug than the one triggered by the original. During a compiler fuzzing campaign this may not matter since one fuzzer-generated bug is as good as another, but hijacking can be a problem when the original bug is, for example, blocking compilation of an application of interest. Hijacking is particularly common when the interestingness test looks for a non-specific behavior such as a null pointer dereference. C-Reduce pushes the problem of avoiding hijacking onto the user who can, for example, add code to the interestingness test looking for specific elements in a stack trace. The research question here is whether there are better, more automated ways to prevent bug hijacking.</span><br />
<h2>
<span style="font-family: "arial"; font-size: 11pt; white-space: pre-wrap;">Obtaining C-Reduce</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Binary C-Reduce packages are available as part of many software distributions including Ubuntu, Fedora, FreeBSD, OpenBSD, MacPorts, and Homebrew. Source code can be found at:</span></div>
<blockquote class="tr_bq">
<span style="font-family: "arial"; font-size: 11pt; white-space: pre-wrap;">https://github.com/csmith-project/creduce</span></blockquote>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Acknowledgments: C-Reduce was initially my own project, but by lines of code the largest contributor by a factor of two is my former student Yang Chen, now a software engineer at Microsoft. Yang wrote effectively all of the Clang-based source-to-source transformation code, more than 50,000 lines in total. Eric Eide, a research professor in computer science at the University of Utah, is the other major C-Reduce contributor. Our colleagues Pascal Cuoq, Chucky Ellison, and Xuejun Yang also contributed to the project, and we have gratefully received patches from a number of external contributors. Someone created a <a href="https://www.youtube.com/watch?v=2NSX5Gr_bYo" target="_blank">fun visualization</a> of the part of C-Reduce's history that happened on Github:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/2NSX5Gr_bYo/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/2NSX5Gr_bYo?feature=player_embedded" width="320"></iframe></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Finally, I’d like to thank Eric Eide and Yang Chen for reviewing and suggesting improvements to this piece.</span></div>
</div>
Karim Alihttp://www.blogger.com/profile/16665625707184915143noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-23316227352502154732019-07-23T04:11:00.000-07:002019-07-29T02:06:17.991-07:00Values Debt is Eating Software<div dir="ltr" style="text-align: left;" trbidi="on">
<h4 style="text-align: left;">
By: <a href="https://www.linkedin.com/in/waqar-hussain/">Waqar Hussain</a> (<a href="https://twitter.com/infinity4upk">@infinity4upk </a>)<br /> Associate Editor: <a href="https://www.linkedin.com/in/muneera-bano-71b27aa/">Muneera Bano</a> (<a href="https://twitter.com/DrMuneeraBano">@DrMuneeraBano</a>)</h4>
<div>
<br /></div>
The growing diffusion of software into human societies and its profound impact on individuals calls for a reflective and responsible attitude from its creators. Software engineers often do well when it comes to delivering software functionality thus creating economic or business value. However, an aspect that hasn’t received sufficient attention is human values – which we all would claim to care about. On the positive side, the shift from value-neutral towards value-based software engineering is a sign of growing maturity for software engineering as a discipline [1]. <br />
<br />
Values such as fairness, sustainability and pleasure are ideals and aspirations that are important to humans. Values transcend situations, guide human decision making and influence their evaluation of worldly things [2]. When values are not designed for and delivered in software, there are ramifications. I call value deficiencies or omissions in software, Values Debt (VD). Unlike other forms of software debt often remedied by spending additional cost or effort, high VD renders software unsalvageable. It poses an existential threat to the ‘owner’ organization - something that happened to Volkswagen and Facebook [3]. <br />
<br />
VD is present in all kinds of software. For example, the mundane software like flight reservation systems has an inherent VD as they are built on economic drivers of supply and demand rather than on the values of empathy and compassion. Delta airline’s reservation system manifested its VS when it started price gouging people trying to escape from the devastation of Hurricane Irma [4]. <br />
<br />
More alarmingly, VD in also present in Machine Learning (ML) and Artificial Intelligence (AI) based systems that can easily scale and impact masses of people. These ‘intelligent’ ML/AI based systems are often trained on biased data hence spew out biased results such as longer sentencing for criminals of a particular skin type, denial of loans and jobs based on certain ethnicity or gender and so on. With the prevalence of VD in all software, the point of emphasis is, while software may be eating the world, VD is dining on software! <br />
<br />
Contrary to the common (practitioners’) belief, not all ills of software can be put to rest by adding ‘more’ code. For example, the tech giant Facebook had to undergo social audit rather than technical overhauls of its platform to fix privacy, discrimination and other human rights issues. <br />
<br />
But why is it so hard to embed even a small subset of human values in software? Firstly, it is due to the subjective nature of values and their imprecise definitions. Software engineers, especially those with little or no background in social sciences, can hardly relate values to their ‘day to day’ work. Secondly, the interconnected of values. Implementing one needs to address the willful implementation of its interconnected set. <br />
<br />
Poor implementation of one e.g. privacy might impact other connected values such as perceived autonomy and freedom. Thirdly, prioritizing stakeholder values (individual vs. corporate vs. societal) and aligning them in software delivery is extremely challenging. <br />
<br />
<div>
But how do software engineers deal with values in practice? Our research shows that there is a general lack of awareness in the creators of software about human values and how they relate to their work [4]. Some avoid dealing with the murky and philosophical area of values and divorce themselves from taking up any responsibility. Others get deterred by the cost and effort required to achieve the desired level of maturity in implementing values and are content with covering enough regulatory requirements just to be compliant. Yet others consider the delivery of software itself takes care of human values - and the attitude is like ‘after all we are solving people’s problems and keeping ourselves from doing any harm ’. <br />
<br />
What can be done to address this? Besides providing awareness of the importance of human values in SE and providing practitioners with the right tools and techniques, more accountability is needed. While codes of professional conduct for software practitioners and standards to support the development of ethical AI and ML-like IEEE P7000 suite are useful. Appealing merely to the good conscience of people alone, however, will not achieve the desired results. Regulations like General Data Protection Regulation (GDPR) and others are helpful [5]. Regulations deter technological advancements from deliberately breaching societal values and hold organizations accountable (and even individuals) when software negatively impacts people or the environment. <br />
<br />
Where to now? Values Debt metaphor is an ice breaker to discuss, understand and thereby avoid the implications of human-values-deficient software. Imagine how does the world start to look like if we could engineer in values from the get-go? Do we move to avoid human rights deficiencies in software? Can we solve failures like Delta Air ticketing system labelled as one with “no built-in ethical values”; can we ‘educate’ and restrain intelligent algorithms in-time from sending pictures of self-harm to children and avoid future suicides? [6] I believe we can if we reduce software Values Debt.<br />
<br />
<b>References </b><br />
<br />
[1] Boehm, B. Value-based software engineering, ACM SIGSOFT Software Engineering Notes, 28(2), 4., 2003 <br />
[2] Schwartz, S.H., et al., Refining the theory of basic individual values. Journal of personality and social psychology, 2012. 103(4): p. 663. <br />
[3 ] Smith D. Mark Zuckerberg vows to fight election meddling in marathon Senate grilling. The Guardian. 2018 Apr;11. <br />
[4] Justin Sablich. 2017. ’Price Gouging’ and Hurricane Irma: What Happened and What to Do. https://www.nytimes.com/2017/09/17/travel/price-gouginghurricane-irma-airlines.html. <br />
[5] Voigt, P. and A. Von dem Bussche, The EU General Data Protection Regulation (GDPR). A Practical Guide, 1st Ed., Cham: Springer International Publishing, 2017. <br />
[6] Crawford, A. Instagram 'helped kill my daughter'. BBC News. Retrieved on 24 July 2019 from<a href="https://www.bbc.com/news/av/uk-46966009/instagram-helped-kill-my-daughter"> </a><a href="https://www.bbc.com/news/av/uk-46966009/instagram-helped-kill-my-daughter">https://www.bbc.com/news/av/uk-46966009/instagram-helped-kill-my-daughter</a>, 2019</div>
<div>
<br /></div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-55998509746688088612019-07-09T02:26:00.000-07:002019-07-18T05:19:32.155-07:00Design and Evolution of C-Reduce (Part 1)<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Author: <a href="http://john.regehr.org/" target="_blank">John Regehr</a> (<a href="https://twitter.com/johnregehr" target="_blank">@johnregehr</a>)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Associate Editor: <a href="https://karimali.ca/" target="_blank">Karim Ali</a> (<a href="https://twitter.com/karimhamdanali" target="_blank">@karimhamdanali</a>)</span></div>
<span id="docs-internal-guid-34be04d9-7fff-d8f3-1fd8-c06d7dc0baf2"></span><br class="Apple-interchange-newline" />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Since 2008, my colleagues and I have developed and maintained </span><a href="https://github.com/csmith-project/creduce" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">C-Reduce,</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> a tool for programmatically reducing the size of C and C++ files that trigger compiler bugs. C-Reduce also usually does a credible job reducing test cases in languages other than C and C++; we'll return to that topic in Part 2.</span></div>
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Why Reduce Test Cases?</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Here's a typical C-Reduce output, </span><a href="https://bugs.llvm.org/show_bug.cgi?id=39199" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">as found in the LLVM bug database</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">int a[1];</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">int b;</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">void c() {</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> void *d = b = 0;</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> for (;; b++)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> a[b] = (int) d++;</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span></div>
<span id="docs-internal-guid-62faf82a-7fff-7fce-8b91-0d183d1d12a9"></span><span id="docs-internal-guid-ab5a17ea-7fff-cb62-5038-d224213d5a70"></span><span id="docs-internal-guid-654b21cc-7fff-53ef-55f5-01273003f554"></span><br class="Apple-interchange-newline" />
<span id="docs-internal-guid-cca87f69-7fff-8a25-437b-29f0ede9cd71"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">LLVM crashes when compiling this code at the -O2 optimization level. The bug report does not contain the original, unreduced test case, but most likely it was larger.</span></span><br />
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">A reduced test case is preferable because:</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">it usually gets the compiler to misbehave quickly, reducing the number of function calls, memory allocations, etc. that the compiler developer has to step through and reason about while debugging</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">the reduced file contains little code not directly related to triggering the bug, making it less likely that compiler developers will be distracted by extraneous features of the test case</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">reduced test cases for the same bug often look similar to each other, whereas this is not normally true for unreduced files that trigger the same bug</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">there is often little or no discernible similarity between an unreduced source file and its reduced version, making it easier for compiler bugs triggered by proprietary code to be reported externally</span></div>
</li>
</ul>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The minimum-sized input triggering any particular compiler bug can be found using a trivial algorithm: exhaustive search of text strings of increasing size. This method is, of course, almost always intractable. In practice, test case reduction proceeds in the other direction: starting with a large, failure-inducing test case, incrementally making it smaller until a local minimum is reached.</span></div>
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b>A Bit of Background</b></span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The history of automated test case reduction does not seem to be well documented, but several examples can be found in software testing papers from the 1990s such as </span><a href="https://www.cs.dartmouth.edu/~mckeeman/references/DifferentialTestingForSoftware.pdf" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Differential Testing for Software</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://www.microsoft.com/en-us/research/publication/massive-stochastic-testing-of-sql/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Massive Stochastic Testing of SQL</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Test-case reduction was first studied in its own right in 2000 when </span><a href="https://www.st.cs.uni-saarland.de/publications/files/hildebrandt-issta-2000.pdf" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Hildebrandt and Zeller introduced Delta Debugging</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: a general-purpose technique for test case reduction. Their algorithm uses a greedy search where a series of </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: italic; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">variants</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (our term, not theirs, for partially-reduced test case candidates) is produced by removing chunks of the test case. As reduction progresses, the chunk size is reduced, until it reaches some minimum-sized unit, such as a single line, token, or character. When no minimum-sized chunk can be removed from the test case without breaking the property that it triggers the bug, the Delta Debugger terminates. Almost all subsequent test-case reduction work, including ours, builds upon this work.</span></div>
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Towards C-Reduce</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I became interested in test case reduction when my colleagues and I began to find a lot of bugs in C compilers using random testing. We found so many bugs that reporting them became bottlenecked on reducing the bug-triggering programs. Since I was the one reporting the bugs we found, I was the one who felt the pain of manual test-case reduction, and it quickly got old. I eventually reported around 500 compiler bugs and I could not have done this without first creating C-Reduce.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b id="docs-internal-guid-452005f6-7fff-b465-570c-43235b80c811" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">At the time, the best </span><a href="http://delta.tigris.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">open-source implementation of Delta Debugging, from UC Berkeley</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, was line-based and contained a significant innovation over the original algorithm: it could reorganize a file in such a way that all nested curly braces deeper than a configurable level would appear on a single line. Thus, at level zero, entire functions would be placed on the same line, enabling the line-based reducer to remove an entire function at once. At higher nesting levels, functions would be split across lines, enabling finer-grained reduction. This method worked well but the tool ended up being inadequate for my needs: it got stuck at local minima that were often orders of magnitude larger than what could be achieved when reducing by hand.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The limiting factor in the Berkeley Delta tool ("Delta" from now on) was obvious: it was not able to exploit enough of the structure of the file being reduced. For example, it could usually not do much to simplify arithmetic expressions. These sorts of simplifications tend to have a cascading effect: eliminating the last use of a variable allows its definition to be eliminated, etc. The obvious path forward was to write a new tool that solved a reduction problem that Delta could not solve, and then to alternate running this tool and Delta until a global fixpoint was reached. I did this, adding more and more reduction techniques over time. I eventually wrote a line-elimination pass in my new reducer, at which point Delta was subsumed and could be dropped.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: -webkit-standard; white-space: normal;"></span><br class="Apple-interchange-newline" style="font-family: -webkit-standard; white-space: normal;" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">We ended up keeping two elements of Delta's design. First, the configurable hierarchical reformatting of a test case based on curly brace nesting. This technique, followed by removing contiguous lines of code, is still one of C-Reduce's most useful first lines of attack on a test case. Second, Delta's mechanism for determining whether a given variant is "interesting." An </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: italic; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">interesting</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> variant is used as the basis for further reduction steps; an uninteresting variant is a dead end, and is discarded. Delta determined interestingness by invoking a user-supplied program—typically a shell script—whose process exit code determines the interestingness of the current variant. The flexibility afforded by this small element of user extensibility ends up being extremely useful. For example, the interestingness test can discard test cases that trigger certain compiler warnings, it can attempt to disambiguate different crash bugs, etc.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b id="docs-internal-guid-2143731e-7fff-e694-0b1e-2bf84967ee90" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">It is more challenging to reduce test cases that cause the compiler to emit incorrect object code than it is to reduce test cases that merely cause the compiler to crash. C-Reduce itself is agnostic about the character of the bug of interest: we push all of the difficulties in reducing miscompilation triggers into the interestingness test, which should try to answer questions such as:</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">is the variant well-defined by the C or C++ standard?</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">does the variant avoid depending on behaviors that are unspecified by the C or C++ standard?</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">does the buggy compiler turn the variant into an executable?</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">does this executable terminate within a specified time?</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">does the reference compiler (assumed to not contain the bug of interest) turn the variant into an executable?</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">does this executable also terminate within a specified time?</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">does the behavior of the two executables differ in a way that indicates that a miscompilation occurred?</span></div>
</li>
</ul>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The variant is interesting if the answer to all of these questions is "yes."</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: -webkit-standard; white-space: normal;"></span><br class="Apple-interchange-newline" style="font-family: -webkit-standard; white-space: normal;" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The hardest part of reducing programs that trigger miscompilation bugs is ensuring that variants avoid undefined behaviors (such as invalid pointer operations) and do not rely on unspecified behaviors (such as the order of evaluation of function arguments). A test case doing one of these things is ill-formed and can accomplish nothing beyond annoying compiler developers. Empirically, if undefined behavior is not actively avoided during test-case reduction, C-Reduce will almost certainly introduce it. The practical solution is to use suitable static and dynamic analysis tools to rule out ill-formed variants. Since no single tool that detects all undefined and unspecified behaviors in C and C++ programs exists, a hybrid approach involving multiple tools is typically used in practice. This approach is not completely satisfying, but it works well enough that C-Reduce can reliably produce useful reduced test cases for miscompilation bugs in C and C++ compilers.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b id="docs-internal-guid-0b875c05-7fff-4b17-b182-a1f57177d2c9" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Writing good interestingness tests for miscompilations takes a bit of practice. First, when there are many criteria that must be satisfied for a variant to be interesting, it is useful to minimize the test’s expected-case runtime by asking the quickest and most-likely-to-fail questions first. Second, it is easy to write buggy tests. More than one user has described C-Reduce as being something like the sorcerer's apprentice: it does an excellent job reducing according to the criteria it is given, but if these criteria contain any kind of loophole, C-Reduce is likely to find it. For example, it is easy to accidentally write a test that claims that the empty file is interesting.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: -webkit-standard; white-space: normal;"><br /><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">From the start, C-Reduce’s main goal was to produce a very small final reduced test case, even when this would take longer than we liked. This is based on the premise that we should burn cycles instead of human time, and that reporting a compiler bug is not usually on the critical path; we can often afford to wait for a better result. The consequences of this decision can be seen in </span><a href="https://people.inf.ethz.ch/suz/publications/perses.pdf" style="text-decoration: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Tables 1 and 2 of this paper</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> that evaluates several test-case reduction methods: C-Reduce produces the smallest final output, but takes more time to do so.</span></span></span></div>
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">A Modular, Domain-Independent Reducer Core</span></h2>
<div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Although C-Reduce started out as a pet project solving a specific problem, it evolved into a research project involving a number of my colleagues, whose top-level goal was to produce an effective and usable reducer for C and C++ code as found in the wild. The first research contribution to come out of this effort was a way to achieve a clean mechanism/policy separation in a test case reducer. Previous reduction techniques had all baked specific transformations into the overall search strategy. That approach impedes extensibility, which we found to be crucial. The structure that we ended up with is a small core that invokes a collection of pluggable transformation passes until a global fixpoint is reached.</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The API for C-Reduce passes is simple but—like many simple things—required a lot of iterations before it felt finished. It is based on the ideas that transformation passes should be stateless and that every pass should implement a linear sequence of transformations, each of which results in a variant that may or may not be interesting. The interface is as follows:</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "courier new"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "courier new"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">state new(filename, option)</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Return a fresh state object. Each pass uses this state to keep track of where it is in the sequence of transformations that it is capable of performing. These states may contain arbitrary data items; the C-Reduce core treats them as opaque. A typical pass stores some kind of cursor—usually a byte offset, token offset, line number, or position in a tree traversal—in the state object.</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The file referred to by filename is logically part of the state object even though it resides in the filesystem instead of memory. Of course it would not be difficult to pass the contents of the file around as a memory object but this approach would be slow when these objects are large: C-Reduce is frequently invoked on multi-megabyte preprocessed C++ files.</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The "option" is used to select among different behaviors implemented by a composite pass.</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "courier new"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">state advance(filename, option, state)</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Return a new state object referring to the next transformation opportunity following the one referenced by the state object passed as a parameter.</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "courier new"; font-size: 11pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">result transform(filename, option, state)</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
</span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Modify the file in-place, selecting the transformation instance referred to by the state object. The result takes one of three values:</span></span></div>
<span id="docs-internal-guid-c2650d5b-7fff-f8d2-896c-85c42ea7b62c">
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">OK : the transformation succeeded</span></div>
</li>
<li dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">STOP : no more transformation instances remain for this pass</span></div>
</li>
<li dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: 11pt; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;">ERROR : something went wrong; for example, an external tool crashed, a working file or directory could not be created, etc.</span></div>
</li>
</ul>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">(The API contains one additional method, which checks whether a pass's external dependencies are satisfied, that doesn't matter here.)</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Our experience has been that every transformation pass that we wanted has been easy to implement behind this API.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The C-Reduce core implements this algorithm:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><b id="docs-internal-guid-940e875c-7fff-841d-268a-f303620b887a" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">current = original_test_case</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">do</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> size_at_start = size(current)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> foreach (p, option) in pass_list</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = p::new(current, option)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> do</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> variant = current // this is a file copy operation</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> result = p::transform(variant, option, state)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> if result == ERROR</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> report_problem_in_pass(p, option)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> if result == OK</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> if is_interesting(variant)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> current = variant // also a file copy</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> else</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = p::advance(current, option, state)</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> while result == OK</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 11pt; font-style: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">while size(current) < size_at_start</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: -webkit-standard; white-space: normal;"></span><br class="Apple-interchange-newline" style="font-family: -webkit-standard; white-space: normal;" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The termination argument for C-Reduce is:</span></div>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Since the outermost loop requires the size of the test case to decrease monotonically, it can only execute as many times as the size (in bytes) of the unreduced test case. In practice, it executes many fewer times than this.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The loop over passes terminates because the pass list is immutable after C-Reduce’s initialization phase.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Each iteration of the innermost loop either advances the state object or else (by selecting an interesting variant) removes one transformation opportunity. Either way, the number of transformations remaining in the current pass is decreased by one.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The interestingness test is, at worst, terminated (using OS support for killing a process group) after a configurable timeout.</span></div>
</li>
</ol>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">In practice, the weak link in this argument is the third item, which is vulnerable to bugs in passes. C-Reduce terminates robustly by abandoning passes when they appear to be behaving unreasonably.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><b id="docs-internal-guid-a4ff7c71-7fff-63d7-5967-15c457492a70" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The C-Reduce core does not insist that transformations make the test case smaller, and in fact quite a few of its passes potentially increase the size of the test case, with the goal of eliminating sources of coupling within the test case, unblocking progress in other passes.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The sequence of transformation passes is carefully orchestrated such that passes that are likely to give the biggest wins—such as those that remove entire functions—run first; otherwise the tool would end up spending days or weeks doing silly things such as trying to shrink numeric constants in a huge source file. Shrinking numbers is useful, and it should be done, but only after many other reduction mechanisms have run to completion.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">C-Reduce's collection of cooperating passes, with heavy phase-ordering constraints, is highly reminiscent of how a modern optimizing compiler works. However, only a small proportion of the transformation passes is intended to be semantics-preserving in the sense that a compiler's optimization passes must be. In this domain, we only want to preserve enough semantics that we can probabilistically avoid breaking whatever property makes a test case interesting.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><b style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"><br /></b></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">A consequence of writing a modular reducer is that once we came up with the right API for writing passes, we were free to write a lot of passes. My colleagues and I spent several years doing this and we ended up with:</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">35 passes, implemented in Perl, that include heuristics such as removing lines, removing various kinds of matched delimiters (and perhaps also the text between them), and shrinking integer values</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6 passes that invoke external utilities such as </span><a href="https://dotat.at/prog/unifdef/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">unifdef</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, a partial evaluator for the C preprocessor language, a lexer for C and C++ that supports various token-level reduction transformations, and pretty-printing utilities that make the reduced test case more pleasant to look at</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-position: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline; white-space: pre;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">69 passes, implemented in C++, that use LLVM's Clang front end as a library for source-to-source transformation of C and C++ code; these include function inlining, partial template instantiation, scalar replacement of aggregates, copy propagation, and eliminating levels of a class hierarchy.</span></div>
</li>
</ul>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The actual number of dynamic passes is larger than the total of these numbers since some passes can be invoked in different modes using the "option" parameter mentioned above.</span><br />
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="background-color: transparent; font-family: "arial"; font-size: 14.666666984558105px; vertical-align: baseline; white-space: pre-wrap;">In this piece, we looked at why we had to create C-Reduce and at the modular structure that was key to making it solve the problems that we wanted to solve. In Part 2, I'll describe how C-Reduce improves reduction times using multiple cores and why C-Reduce usually does a good job reducing test cases in languages other than C and C++; finally, I'll discuss a few open research problems in test case reduction.</span></div>
</span></div>
Karim Alihttp://www.blogger.com/profile/16665625707184915143noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-60647516476800710222019-07-02T01:14:00.000-07:002019-07-02T01:14:22.061-07:00Autonomous Computing Systems: The Convergence of Control Theory and Computing Systems<div style="margin: 0px; text-align: center;">
<span style="font-family: inherit;"><b>Authors: </b> <a href="http://www.idt.mdh.se/~aps01/" target="_blank">Alessandro Vittorio Papadopoulos</a> (</span><span style="background-color: white; color: #222222; font-family: "calibri" , sans-serif; font-size: 11pt;"><a href="https://twitter.com/AVPapadopoulos" target="_blank">@AVPapadopoulos</a></span><span style="font-family: inherit;">) and <a href="http://www.martinamaggio.com/main/" target="_blank">Martina Maggio</a> (</span><span style="background-color: white; color: #222222; font-family: "calibri" , sans-serif; font-size: 11pt;"><a href="https://twitter.com/mggmrtn" target="_blank">@mggmrtn</a>)</span></div>
<div style="margin: 0px; text-align: center;">
<span style="font-family: inherit;"><b>Associate editor: </b>Danilo Pianini (<a href="https://twitter.com/DanySK86" target="_blank">@DanySK86</a>)</span><br />
<span style="font-family: inherit;"><br /></span></div>
<div style="text-align: justify;">
Computing systems are becoming increasingly complex both in terms of scale, and in terms of functionality. Applications need to process large amounts of data with time requirements that are becoming smaller and smaller. The distribution of computation has an unprecedented growth. It is sufficient to think about the number of Internet of Things (IoT) devices that is increasing exponentially, and it is expected to reach <a href="https://www.ericsson.com/assets/local/mobility-report/documents/2018/ericsson-mobility-report-june-2018.pdf" target="_blank">31.4 billion by 2023</a>.<br />
Such an increasing complexity needs cannot be handled with static policies or with human operators, and <b>sound mathematical approaches are needed</b>, as also highlighted in the seminal paper by <a href="https://doi.org/10.1038/nphys162" target="_blank">A.-L. Barabási, 2005</a>. In particular, novel applications like smart houses, smart grids and cities, Industry 4.0, and robotics, pose a number of challenges for the <b>efficient management of the computational resources</b>, and for the <b>design of scalable and efficient autonomous solutions</b>.</div>
<div style="text-align: justify;">
<h3 style="text-align: center;">
<span style="font-family: inherit;"><br /></span></h3>
<h3 style="text-align: center;">
<span style="font-family: inherit;">The need for self-adaptation</span></h3>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: inherit;">The design of decision-making strategies for computing systems is known in the literature as <b>self-adaptation</b>, i.e., computing systems dynamically adapt to changes. Several disciplines have been identified as potential contributors. Among these, <b>machine learning</b> provides additional knowledge of the system; see for example the work by <a href="https://doi.org/10.1109/TSE.2013.37" target="_blank">Esfahani et al., 2013</a>, and <b>control theory</b> provides a vast array of tools for designing robust adaptive physical systems with formally assured behavior; see for example <a href="https://doi.org/10.1007/978-3-642-02161-9_1" target="_blank">Cheng et al., 2009</a> or <a href="https://doi.org/10.1145/3024188" target="_blank">Filieri et al., 2017</a>. The combination of knowledge, robustness and formal guarantees has led to increased interest in developing control-based approaches in various computing system problems, as highlighted in the surveys by <a href="https://doi.org/10.1109/SEAMS.2012.6224389" target="_blank">Patikirikorala et al., 2012</a> and by <a href="https://doi.org/10.1109/TSE.2017.2704579" target="_blank">Shevtsov et al., 2018</a>.</span></div>
<h3 style="text-align: center;">
</h3>
<h3 style="text-align: center;">
</h3>
<h3 style="text-align: center;">
Modeling computing systems</h3>
<div style="text-align: justify;">
In almost every field of science, there is an attempt of building mathematical representations of the physical world. On the other hand, Computer Science seems to be a bit different. Linus Tolvalds wrote:<br />
<br />
<blockquote class="tr_bq">
I'm personally convinced that <b>computer science has a lot in common with physics</b>. Both are about how the world works at a rather fundamental level.<br />
The difference, of course, is that while in physics you're supposed to figure out how the world is made up, <b>in computer science you create the world</b>.<br />
Within the confines of the computer, you're the creator. You get to ultimately control everything that happens. If you're good enough, you can be God. On a small scale. </blockquote>
<blockquote class="tr_bq" style="text-align: right;">
<i>Linus Torvalds</i>, <a href="http://archive.fo/s1DA6" target="_blank">Just for Fun</a></blockquote>
<br />
Even though we are the ones creating our computing systems, it seems that we have a little understanding on how to model their runtime behavior. This may be due to the fact that the way we conceive algorithms is fundamentally different with respect to the way we describe dynamic models. The gap in the two approaches is very difficult to fill, and several attempts has been made. Techniques ranging from Markov Decision Processes to Neural Networks, have been widely explored in the scientific literature in different fields.</div>
<h3 style="text-align: justify;">
<div style="text-align: center;">
<br />
One model to rule them all?</div>
</h3>
<div style="text-align: justify;">
A very important distinction should be made on the nature of models in science. There are (at least) three types of models:<br />
<br />
<ul>
<li><b>Simulation models</b>, where the objective is to represent in the most accurate way the behavior of the modeled system, and to simulate it completely <i>in silico</i>, i.e., in a computer simulation. They are the most common models in almost every field of science, including physics, chemistry, and computer science.</li>
<li><b>Prediction models</b>, where the objective is to provide forecasts on the future behavior of a system, based on its <b>known past behavior</b>. The main difference with respect to simulation models is that at every time step the model is fed with the most updated values of its behavior. This is a very common model in statistics, finance, or even weather forecast, where we try to make our best guesses on the future behavior of some financial indexes or what will the weather look like in the next few days, based on the current knowledge of the system.</li>
<li><b>Control models</b>, where the objective is to describe the main dynamics of the system with simple models, in order to capture basic properties, i.e., how the system responds to external <i>stimuli</i> in terms of timing properties during transients.</li>
</ul>
</div>
<h3 style="text-align: center;">
<span style="font-family: inherit;"><br /></span></h3>
<h3 style="text-align: center;">
<span style="font-family: inherit;">The need for control models</span></h3>
<div style="text-align: justify;">
A famous quote says:<br />
<blockquote class="tr_bq">
<div style="text-align: justify;">
<i>All models are wrong but some are useful</i></div>
<div style="text-align: right;">
<i>G.E.P. Box</i>, <a href="https://doi.org/10.1016/B978-0-12-438150-6.50018-2" target="_blank">Robustness in the Strategy of Scientific Model Building</a></div>
</blockquote>
In fact, all the types of <b>models are approximations</b> of the reality, and they are <b>meant for a specific purpose</b>. Using a prediction model to simulate the behavior of a complex system is not a good idea.<br />
<br />
As a simple example, <a href="https://doi.org/10.1145/3093742.3093923" target="_blank">Gulisano et al., 2018</a> provided a very accurate, yet complex, mathematical description of how to model performance in a join operator in data streaming applications. The results show that it is possible to model the latency and throughput of the operator even in presence of overload, and obtain an error in the order of fractions of milliseconds. However, adopting such a model for designing a control strategy is extremely challenging.<br />
<br />
More in general, <i>several</i> <span style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px;">–</span> <b>not all</b> <span style="background-color: white; color: #222222; font-family: sans-serif; font-size: 14px;">–</span> of the models proposed in computer science get closer to simulation models rather than control models. They are extremely accurate but they fall short when it comes to model-based self-adaptation design. To make a physics parallel, most of the time, the proposed models are focusing on describing the motion of single particles to infer what is the temperature in a room: The model itself becomes extremely complicated, but it is of little use when a controller needs to be designed for controlling the temperature in a room. The concept of a higher level of abstraction is key to enable <b>control models for computing systems</b>.<br />
<h3 style="text-align: center;">
<span style="font-family: inherit;"><br /></span></h3>
<h3 style="text-align: center;">
<span style="font-family: inherit;">Control-based Computing System Design</span></h3>
<div style="text-align: justify;">
The importance of scalable methods for analysis and synthesis of large-scale inter-connected systems is widely recognized. Resource efficient solutions will not be possible without a firm mathematical foundation. Being able to program and manage computing systems in an efficient way is of fundamental importance. By combining feedback-based computing with suitable programming models, it is possible to design predictable applications with guarantees on response time, resource allocation, and power consumption.<br />
<br />
Control theory seems to be the most promising approach to tame such complexity. Other machine learning approaches represent a valid alternative, with the disadvantage of limiting the capabilities of formally assess properties of the controlled system, as well as the generality of the proposed solutions. Such limitations generated the new trend of <b>explainable Artificial Intelligence (AI)</b>, in order to describe the way several machine learning strategies take their decisions.<br />
On the other hand, control-based approaches are typically designed according to well understood policies, with deterministic algorithms. Model-based design is in fact the most common approach, since it allows the control engineer to provide formal guarantees on the robustness and on the performance that can be obtained with the designed solutions.</div>
</div>
<div align="justify">
<h3 style="text-align: center;">
<span style="font-family: inherit;"><br /></span></h3>
<h3 style="text-align: center;">
<span style="font-family: inherit;">Wrapping up</span></h3>
<div style="text-align: justify;">
The main challenge in applying control theory to computing systems lies in the modeling step. Nonetheless, there have been in the past several works control-based solutions, trying to combine model-free or black-box modeling approaches to compensate for the lack of suitable control models. Even in such cases, control-based solutions have proven to be a more effective approach with respect to classical machine learning approaches, e.g., see <a href="https://doi.org/10.1145/2382570.2382572" target="_blank">Maggio et al., 2012</a>, as well as other heuristic approaches, e.g., see <a href="https://doi.org/10.1109/RTSS.2014.14" target="_blank">Terraneo et al., 2014</a>.<br />
<br />
The area of the design of autonomous computing systems is extremely broad, and with a lot of opportunities to advance science and engineering. The innovation of the next generation computing systems lies in between different scientific communities, including software engineering, computer engineering, computer science, control theory, statistics, and mathematics.</div>
</div>
</div>
Danilo Pianinihttp://www.blogger.com/profile/00391049379246151632noreply@blogger.com1tag:blogger.com,1999:blog-8509343272562195687.post-91678146005953423402019-06-24T06:57:00.000-07:002019-06-24T07:35:18.327-07:00Can AI be Decolonial?<div dir="ltr" style="text-align: left;" trbidi="on">
<h4 style="text-align: left;">
By: <a href="https://twitter.com/asmaarwen" target="_blank">Asma Mansoor</a></h4>
<h4>
Associate Editor: <a href="https://www.linkedin.com/in/muneera-bano-71b27aa/" target="_blank">Muneera Bano</a> (<a href="https://twitter.com/DrMuneeraBano" target="_blank">@DrMuneeraBano</a>)</h4>
<div>
<br /></div>
<h3 style="text-align: left;">
<i>In a world marked by economic, racial and gender-based hierarchies, can
AI be decolonial?</i></h3>
<h3 style="text-align: left;">
<i>If not, can it become decolonial? </i></h3>
<div>
<i><br /></i></div>
<div style="text-align: justify;">
<span lang="EN-US">These questions might elicit criticism since computing and its associated
fields are generally assumed to be </span><span lang="EN-GB"><a href="https://en.wikipedia.org/wiki/E-democracy"><span lang="EN-US">democratic in flavour</span></a></span><span lang="EN-US">, working in a realm where
constructs such as race and gender are thought to be reduced to irrelevant
abstractions. But it is precisely this reduction that I find problematic
specifically in a world in which many regions are still experiencing a colonial
hangover in the form of </span><span lang="EN-GB"><a href="https://www.britannica.com/topic/neocolonialism"><span lang="EN-US">neocolonial exploitation</span></a></span><span lang="EN-US">. This exploitation, galvanized by various
Capitalist corporate structures, manifests itself via technological
interventions, such as surveillance and drone technology, biotechnology and the
abuse and degradation of indigenous environments in the garb of progress. Since
the fifteenth century onwards, European colonization has been supplemented by
technological advancements which have helped consolidate the various </span><span lang="EN-GB"><a href="http://www.yiannisgabriel.com/2012/09/the-other-and-othering-short.html#!/2012/09/the-other-and-othering-short.html"><span lang="EN-US">Others</span></a></span><span lang="EN-US"> of the West. As cyberspace expands
and AI becomes more autonomous, what is gradually becoming a matter
of concern for numerous people living in the </span><span lang="EN-GB"><a href="https://journals.sagepub.com/doi/pdf/10.1177/1536504212436479"><span lang="EN-US">Global South</span></a></span><span lang="EN-US"> like myself, are the possible
colonial implications of these advancements. Our fears are not unfounded. The
CIA’s </span><span lang="EN-GB"><span lang="EN-US"><a href="https://www.cnet.com/news/weeping-angel-hack-samsung-smart-tv-cia-wikileaks/" target="_blank">Weeping Angel program</a></span></span><span lang="EN-US">, that permitted the installation of
<a href="https://billmoyers.com/story/dont-say-werent-warned-smart-tv-spying/" target="_blank">spying software on smart TVs</a>, was sanctioned for devices headed to countries
suspected of harbouring and supporting terrorism. This reflects how surveillance
technologies are operating as tools of Othering in the hands of Euro-American
power structures, inferiorizing peoples and countries. Technology in all its
forms is helping supra-national Capitalist conglomerates to become increasingly
colonial as they impose their sovereign rights to regulate and manipulate the
technology that they ration out to states and groups as we saw </span><span lang="EN-GB"><a href="https://www.cbsnews.com/news/millions-facebook-user-records-exposed-amazon-cloud-server/"><span lang="EN-US">in the case of Facebook</span></a></span><span lang="EN-US">. So to question whether AI, as a
component of this technological colonization, can be decolonial becomes a
rather loaded question which cannot be answered in a simple manner.</span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">What I imply by decoloniality is not an end of colonization, <i style="mso-bidi-font-style: normal;">per se</i>. I take it in the connotations of
</span><span lang="EN-GB"><a href="https://www.dukeupress.edu/the-darker-side-of-western-modernity"><span lang="EN-US" style="mso-ansi-language: EN-US;">Walter Mignolo</span></a></span><span lang="EN-US" style="mso-ansi-language: EN-US;"> who defines decoloniality as a
non-hierarchical inter-epistemological exchange that encourages epistemic
disobedience and delinking from its colonial epistemologies in order to build a world where many worlds can
exist in a state of non-hierarchical epistemic osmosis. However, our world is
also an age of the Empire, where the Empire, according to </span><span lang="EN-GB"><a href="https://en.wikipedia.org/wiki/Empire_(Hardt_and_Negri_book)"><span lang="EN-US" style="mso-ansi-language: EN-US;">Michael Hardt and Antonio Negri</span></a></span><span lang="EN-US" style="mso-ansi-language: EN-US;">, is the sovereign power that
regulates global exchanges. As opposed to the decolonial ethos which advocates
a cross-cultural exchange of knowledge without centralizing any mode of
thinking, this Empire also encourages this decentered osmosis, at least in
theory if not in practice. What makes the operations of this global Empire
different from decolonial politics is that the Empire upholds its epistemic
sovereignty and cannot afford to decentralize its economic, technological and
intellectual supremacy. Computing and AI are vital components in this global
regulatory apparatus. <span style="mso-spacerun: yes;"> </span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"><br /></span></span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Therefore, I believe that at the present moment in time, AI is not decolonial
unless the formerly colonized appropriate it for their interests, a task which
I am convinced is fraught with obstacles. AI responds to the master because it
is programmed by the master who needs to uphold global hierarchies and
inequalities. It operates as the Golem in the hands of the Global Capitalist
masters, ensuring on their part who is to be excluded and who is to be included
and the extent to which they are to be included. </span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><a href="https://www.kcl.ac.uk/news/artificial-intelligence-is-demonstrating-gender-bias-and-its-our-fault" target="_blank">Biases</a> are encoded within its
very algorithmic genes as the works of </span><span lang="EN-GB"><a href="https://psycnet.apa.org/record/2018-08016-000"><span lang="EN-US" style="mso-ansi-language: EN-US;">Safiya Umoja Noble</span></a></span><span lang="EN-US" style="mso-ansi-language: EN-US;"> and </span><span lang="EN-GB"><a href="http://dx.doi.org/10.1080/1369118X.2016.1216147"><span lang="EN-US" style="mso-ansi-language: EN-US;">David Beer</span></a></span><span lang="EN-US" style="mso-ansi-language: EN-US;"> indicate. It inherits the <a href="https://www.kcl.ac.uk/news/harmless-sexist-jokes-are-as-insidious-in-ai-as-in-real-life" target="_blank">aesthetic biases</a> of
its makers, including those governing the perceptions of race and gender. An </span><span lang="EN-GB"><a href="https://www.theguardian.com/technology/2016/sep/08/artificial-intelligence-beauty-contest-doesnt-like-black-people"><span lang="EN-US" style="mso-ansi-language: EN-US;">international beauty contest judged
by AI machines in 2016</span></a></span><span lang="EN-US" style="mso-ansi-language: EN-US;"> revealed that these machines did not consider dark skin as beautiful. The <a href="https://futurism.com/the-byte/biased-self-driving-cars-darker-skin" target="_blank">driverless cars</a> are more likely to hit people with darker skin. <a href="https://www.newscientist.com/article/2202071-voice-assistants-seem-to-be-worse-at-understanding-commands-from-women/" target="_blank">AI-based voice assistants</a> have been reported to respond less to different accents or the voices of women.</span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">Like </span><span lang="EN-GB"><a href="http://www.columbia.edu/itc/mealac/pritchett/00generallinks/macaulay/txt_minute_education_1835.html"><span lang="EN-US" style="mso-ansi-language: EN-US;">Macaulay’s Minute Men</span></a></span><span lang="EN-US" style="mso-ansi-language: EN-US;">, AI is also a product of colonial
mentality. It does not only absorb the colonisers’ ways of knowing but also the
prescriptions of bodily aesthetics. However, at the current moment in time, AI
is better than Macaulay’s Minute Men who experienced </span><span lang="EN-GB"><a href="https://www.jstor.org/stable/10.5749/j.ctt1pwt6n3"><span lang="EN-US" style="mso-ansi-language: EN-US;">displaced and schismatic identities</span></a></span><span lang="EN-US" style="mso-ansi-language: EN-US;"> in their effort to become like the
Masters. The AI, at present, is not aware of these complexes. Perhaps, in a few
years, as it gains sentience, AI would develop similar complexes in its efforts
to become more human. At the moment, it is fully complicit with the neocolonial
agenda wherein all Others are equal but some Others are more Other than Others.
It keeps an eye on rogue elements, further marginalizing those who are already
marginalized. It is not decolonial precisely because it is supplementing the
hierarchies that decoloniality sets out to dismantle. </span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><i>So what needs to be
done?</i><span style="mso-spacerun: yes;"> </span>Perhaps, a more acute awareness of
what goes into its programing needs to be rethought and that can be done by
taking on board, social, philosophical and literary theorists. Perhaps then can
the decolonization of AI truly begin. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 150%;">
<br /></div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com1tag:blogger.com,1999:blog-8509343272562195687.post-31086180955593048772019-06-09T01:17:00.000-07:002019-06-09T01:17:05.496-07:00Self-awareness and autonomy in pervasive computing systems<style type="text/css">
@page { size: 21.59cm 27.94cm; margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 115%; text-align: left; orphans: 2; widows: 2; background: transparent }
</style>
<br />
<div style="margin: 0px; text-align: center;">
<span style="font-family: inherit;"><b>Authors: </b> <a href="http://www.lukasesterle.com/" target="_blank">Lukas Esterle</a>, <a href="https://sites.google.com/site/jnabrown/home" target="_blank">John NA Brown</a></span></div>
<div style="margin: 0px; text-align: center;">
<span style="font-family: inherit;"><b>Associate editor: </b>Danilo Pianini (<a href="https://twitter.com/DanySK86" target="_blank">@DanySK86</a>)</span><br />
<span style="font-family: inherit;"><br /></span>
</div>
<div style="text-align: justify;">
<span style="font-family: inherit;">The
number of computing systems in our environment is constantly
increasing, and it’s not just the obvious individual devices we
have all added to our lives. This trend is accelerating even further
due to unseen advances in the areas of pervasive computing,
cyber-physical systems, the Internet-of-Things, Industry 4.0, as they
manifest in smart cities, smart homes, smart offices, and smart
transport. The numbers alone make centralized control problematic
from an engineering point of view, even without considering the speed
of dissemination and adoption. The vast and unmeasured diversity of
interfaces and interactional requirements are imposing an
as-yet-unmeasured increase in cognitive and physiological demands on
all of us. One way to lessen the impacts of these human and
technological demands is by offloading some control to some of the
individual devices. This not only relieves demands on
miniaturization, control systems, and server infrastructures, but
also relieves cognitive and physiological demands on the users, and
allows the devices to react more quickly to new situations, and even
to known or anticipated situations that unfold more rapidly than
current hierarchical control systems can accommodate.</span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;">One
approach to imbuing individual devices with more autonomy is to
design them to be self-aware. <a href="https://doi.org/10.1007/978-3-319-47474-8_1">This would enable devices to learnabout themselves and their environment, to develop and refine thesemodels during runtime, and to reason about them in order to makeprofound decisions</a>. Different levels of self-awareness have been
proposed, addressing the various degrees to which a computational
system can be aware. It has been demonstrated that this <a href="https://doi.org/10.1145/2764460">can improvesystem performance</a>, even <a href="https://doi.org/10.1109/SASO.2018.00020">when collaborating with others</a>.
</span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;">We
offer an outline of three important factors that have the potential
to challenge the success of collaborating self-aware systems.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<br />
<h3 style="text-align: center;">
<span style="font-family: inherit;">Situatedness</span></h3>
</div>
<div style="display: inline !important; text-align: justify;">
<div style="display: inline !important;">
<span style="font-family: inherit;">Systems distributed in a real-world environment
will perceive that environment differently, even when their
abilities to perceive it are equal and they are in close proximity
to one another. The following figure depicts a network of 3 smart-cameras, able
to perceive their environment and process this information locally.</span></div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: inherit;"><br /></span></div>
<div style="text-align: center;">
<div class="separator" style="clear: both;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ZMNtnXyNJ_Jl8tRLZ3IqsNrwCKBMqW6-jic9SnQJ0inPfhg-yeJjJYlYqEkEJI18z0Ihatk4s6JdDDpETgZmYcC7GEsaY1oXu8N3YQdfIqmaE4O37GgEROIG-Eis1TrWQPFnKHjjJR0/s1600/aoBM98.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img border="0" data-original-height="419" data-original-width="965" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9ZMNtnXyNJ_Jl8tRLZ3IqsNrwCKBMqW6-jic9SnQJ0inPfhg-yeJjJYlYqEkEJI18z0Ihatk4s6JdDDpETgZmYcC7GEsaY1oXu8N3YQdfIqmaE4O37GgEROIG-Eis1TrWQPFnKHjjJR0/s400/aoBM98.png" width="400" /></span></a></div>
<span style="font-family: inherit;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;">This network illustrates two problems with respect to situatedness
of individual devices. Camera A and B are physically very close,
mounted on a common pole. However, due to their constrained
perception of the world, they cannot perceive the same objects at
the same time. On the other hand, cameras C is mounted on a house
and observes the same area as camera B but from a different
perspective, which means that their individual perceptions of a
simultaneously viewed object can be different. Figure 1 shows us
that, while camera B sees a smooth round object that is mostly
green, camera C observes an object of non-uniform shape, that is
mostly red. Even if they share their information, they would need to
also share an understanding of their differing perspectives in order
to combine their perceptions and recognize that they are seeing the
same object.</span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;"><br /></span></div>
<h3 style="text-align: center;">
<b><span style="font-family: inherit;">Heterogeneity</span></b></h3>
<div style="text-align: justify;">
<span style="font-family: inherit;">When operating alongside or in collaboration
with others, a system might not be able to simply make assumptions
about the abilities and behavior of another system. As an example,
please consider two digital cameras that both perceive their
environment. Even though these two cameras may observe the same
object in the same way, their perceptual tools may differ, and this
could conceivably result in completely different perceptions of the
same object. One might imagine a black-and-white sensor and a
standard color sensor in the two cameras. Here the cameras cannot
simply exchange color information about objects as this would not
result in a common understanding. In a similar case, different zooms
can lead to different resolutions permitting a camera to perceive
details another camera might not be able to see.</span><br />
<span style="font-family: inherit;"><br /></span></div>
<h3 style="text-align: justify;">
<b><div style="text-align: center;">
<b><span style="font-family: inherit;">Individuality</span></b></div>
</b></h3>
<div style="text-align: justify;">
<span style="font-family: inherit;">Systems are often designed to perform very
specific tasks. If they are intended to collaborate with others,
this collaboration is usually clearly defined at the time of their
design. If we want future systems to be able to establish
collaboration autonomously, without a priori knowledge of their
potential collaborators, we will have to build them with the ability
to model the potential collaborators that they encounter. In
addition, they have to be able to model the behavior of those new
collaborators and adapt their own behavior according to larger
collaborative models that were developed on the fly.</span><br />
<span style="font-family: inherit;"><br /></span></div>
<h3 style="text-align: center;">
<span style="font-family: inherit;">Conclusion</span></h3>
<div style="text-align: justify;">
<span style="font-family: inherit;">Current
work on self-aware systems focusses on the individual computing
systems, rather than on defining, designing, and developing features
that would enable and improve heterogenous collaboration during
runtime. In order to facilitate collaboration among systems, we have
proposed additional <a href="https://doi.org/10.1109/FAS-W.2018.00054">levels of networked self-awareness</a> [1].
Implementing these additional levels of networked self-awareness will
enable systems to develop adaptable models of their environment, of
other systems, and of themselves, as well as the ways in which those
models interact and impact one another. Such models should be able
to meet the challenges outlined above, and collaborate with other
systems in achieving their shared and unshared goals.</span><br />
<span style="font-family: inherit;"><br /></span></div>
<div align="justify">
<h3 style="text-align: center;">
<b><span style="font-family: inherit;">References</span></b></h3>
<ol>
<li><span style="font-family: inherit;">L. Esterle and J. N. Brown, "I Think Therefore You Are: Models for Interaction in Collectives of Self-Aware Cyber-physical Systems," Transactions on Cyber-physical Systems, under review, p. 24, 2019.</span></li>
</ol>
</div>
</div>
Danilo Pianinihttp://www.blogger.com/profile/00391049379246151632noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-55102494429587891242019-05-20T08:09:00.000-07:002019-05-20T08:09:16.476-07:00Architectural Security for Embedded Control Systems<div style="text-align: center;">
<b>Authors: </b>
Jan Tobias Mühlberg
(<a href="https://twitter.com/jtmuehlberg">@jtmuehlberg</a>),
Jo Van Bulck (<a href="https://twitter.com/jovanbulck">@jovanbulck</a>),
Pieter Maene (<a href="https://twitter.com/pmaene">@pmaene</a>),
Job Noorman,
Bart Preneel,
Ingrid Verbauwhede,
Frank Piessens
</div>
<div style="text-align: center;">
<b>Associate editor: </b>Danilo Pianini (<a href="https://twitter.com/DanySK86">@DanySK86</a>)</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
Security issues in computer systems are pervasive and embedded control systems – from smart home appliances, the Internet of Things, to critical infrastructure in factories or power plants – are no different. This blog post summarises a line of research on architectural support for security features in embedded processors, with the potential to substantially raise the bar for attackers.</div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
Security in Embedded Control Systems</h3>
<div>
<div>
<div style="text-align: justify;">
Sensing, actuation and network connectivity are the basic building blocks for smart infrastructure. In a smart building, sensors detect human presence, measure air quality or room temperature, and communicate these measurements to control systems that operate lighting, air conditioning or other appliances. In Industrial Control Systems (ICSs) and smart factories, similar sensing setups may detect delays, production faults or hazardous situations, and determine the need for human intervention. Supply chain optimisations or alerts may be triggered in response. A smart car can detect dangerous objects on the road and raise the attention of the driver while triggering similar alerts in nearby cars. A smart city may combine all these scenarios and accumulate, aggregate and evaluate sensor inputs at an un-preceded scale to optimise traffic flow, air quality, noise, power consumption, and many other parameters with the overall aim to facilitate sustainable use of resources and to increase the quality of life for the city’s inhabitants.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
With the continuation of the trend to augment appliances and infrastructure
with computerised sensing, actuation and remote connectivity, "smart
environments" imply a range of threats to our security and privacy, and ultimately to our safety. The key amplifier for these threats is connectivity. The use of publicly accessible long-range communications – such as the internet or wireless communication technology – where data in transit may be subject to manipulation by adversaries, lead to an extended attack surface and to the exposure of sensing and control systems to attackers.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
Of course, smart environments are insecure. Typicall sensing and control networks are even less secure than our personal computers: Many of these systems were not designed with security in mind, just because they were never meant to be connected to a global communications infrastructure and thereby exposed to attacks. A substantial role is played by legacy systems that were developed and deployed in a time when the idea of making these systems "smart" by permanently connecting them to, e.g., supply-chain management, was technically infeasible and not anticipated. <a href="http://blog.ieeesoftware.org/2019/01/architectural-security-weaknesses-in.html">Gonzalez et al. argue that two thirds of ICS vulnerability disclosures had an architectural root cause, while about one third of the vulnerabilities were due to coding defects.</a> The problem is pervasive and control systems across critical domains suffer from vulnerabilities resulting in exploits: Since <a href="https://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_stuxnet_dossier.pdf">the Stuxnet</a> incident we understand that industrial equipment can be physically damaged through cyber attacks.</div>
<div style="text-align: justify;">
<div style="text-align: center;">
<br /></div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/wTEMSBXtkAc" width="560"></iframe>
</div>
</div>
<div style="text-align: justify;">
<br />
At DEF CON 22, Scott Erven and Shawn Merdinger discussed the problem for medical devices and hospital equipment, and <a href="http://archive.fo/wVN1m">in 2017 UK hospitals are amongst the institutions that were hit hard by the WannaCry ransomware attacks</a> against PCs, which encrypted and denied access to critical data until a ransom is paid. In the same year, the <a href="http://archive.fo/rPt0F">NotPetya ransomware ravaged Maersk's world-wide network, taking down harbour
infrastructure and shipping routes and caused substantial real-world damage.</a><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7tCHHei_7MMDKHiUZBtreGUgPMZ6AMplbrHkr1AcQFLNOVZIy8xAnJVEm6ShbiojbKo-GMnAogxCorEXkv1l98gAfM4qREm4fi5JqP5NwnbiMEUlHJ5XeUe_LMzhb-xPDd61Req-bC6M/s1600/wannacry.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="712" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7tCHHei_7MMDKHiUZBtreGUgPMZ6AMplbrHkr1AcQFLNOVZIy8xAnJVEm6ShbiojbKo-GMnAogxCorEXkv1l98gAfM4qREm4fi5JqP5NwnbiMEUlHJ5XeUe_LMzhb-xPDd61Req-bC6M/s400/wannacry.png" width="400" /></a></div>
</td></tr>
<tr><td class="tr-caption" style="text-align: center;">Screenshot of the WannaCry ransomware that infected PCs at a global
scale in 2017, leaving mission-critical data in institutions such as many British
NHS hospitals inaccessible.</td></tr>
</tbody></table>
<br />
With the advent of complex infotainment systems and remote connectivity in automotive vehicles, researchers discovered vulnerabilities that allow attackers to remotely control critical functionality of cars (e.g. <a href="http://archive.fo/iaiAV">Checkoway et al</a>., and <a href="http://archive.fo/sAUHR">Miller and Valasek</a>). And <a href="http://archive.fo/BYRN6">attacks against the Ukrainian power grid</a>, led to pervasive and lasting blackouts during the Russian military intervention around Crimea.<br />
<br /></div>
</div>
</div>
<h3 style="text-align: justify;">
Architectural Threat Mitigations</h3>
<div>
<div>
<div style="text-align: justify;">
Our approach to architectural support for security leverages light-weight Trusted Execution Environments (TEEs). Intuitively, we enable the development of secure software by providing hardware extensions that guarantee that a computer will consistently behave in expected ways. Modern Trusted Computing systems provide some form of "enclaved execution" in a TEE, that protects a software, the <i>enclave</i>, from malicious interactions with other software. Ultimately, TEEs
relies on cryptography and provides mechanisms to securely manage and use cryptography in distributed software systems. To date, a range of implementations of this idea exist, which are aimed at different application domains. <a href="https://doi.org/10.1109/TC.2017.2647955">Maene et. al provide a comprehensive overview of the available technology and its capabilities</a>.</div>
<div style="text-align: justify;">
<br /></div>
</div>
</div>
<div>
<div>
<div style="text-align: justify;">
Since 2012 we have been working on <a href="https://doi.org/10.1145/3079763">Sancus, an open-source TEE solution for embedded systems security</a>. The current incarnation, <a href="https://doi.org/10.1145/3079763">Sancus 2.0, features strong software isolation, efficient built-in cryptography and key management, software attestation, and confidential loading of enclaves</a>. While we can currently not guarantee that our processor design is free of architectural
vulnerabilities, we developed Sancus as an <i>open</i> security architecture, for which we can collectively develop a clear understanding of execution semantics and the resulting security implications. We advocate and aim for formal approaches to reason about the security guarantees that these architectures can provide, including the absence of micro-architectural bugs and side-channels. We consider such a principled approach essential in an age where society increasingly relies on interconnected and dependable control systems. Closed commercial products in this domain are certainly responsible for important achievements, e.g., secure virtualisation extensions, TPM co-processors, and enclaved execution environments such as Intel SGX, ARM TrustZone, and AMD SEV. However, <a href="https://www.usenix.org/publications/login/fall-2018-vol-43-no-2/muhlberg">we strongly believe, that it is close to impossible for the vendors of these products to comprehensively guarantee the absence of certain classes of critical vulnerabilities</a> in their <a href="https://doi.org/10.1145/3102980.3103002">highly complex products</a>.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Sancus builds upon the <a href="http://archive.fo/fod1x">openMSP430</a>, an open-source implementation of Texas Instruments’ MSP430 processor core. The MSP430 and openMSP430 are designed for the Internet of Things and embedded control systems: they are relatively inexpensive low-end devices that feature a very low power consumption. Natively, the device provides little security, which is very common for processors in this domain. <a href="https://doi.org/10.1145/3079763">Sancus</a> guarantees strong <i>isolation</i> of software modules, which we refer to as Protected Modules (PMs), through low-cost hardware extensions.
Moreover, Sancus provides the means for remote parties to <i>attest</i> the state of, or <i>communicate</i> with, the isolated software modules. Importantly, our implementation of these security features is designed to be small and configurable: Sancus-secured openMSP430 processor cores can be synthesised for a varying number of PMs. The configuration necessarily affects chip size (in gates) and power consumption. Yet, even the biggest (sensible) configuration will still result in a moderately cheap processor (probably below USD 1 per unit) and less than 6% increase in power consumption in active cycles. The <a href="https://doi.org/10.1145/2818000.2856129">Soteria extension</a> of Sancus even allows for offline software protection in low-end embedded devices.<br />
<br /></div>
</div>
</div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
Authentic Execution</h4>
<div>
<div>
<div style="text-align: justify;">
Based on TEE primitives in commodity processors and in Sancus, we have developed approaches that provide strong assurance of the secure execution of distributed applications on shared infrastructures, while relying on a small Trusted Computing Base (TCB). Here, "secure execution" means that <a href="https://doi.org/10.1007/978-3-319-68063-7_4">application modules are protected against a range of attacks that aim to steal secrets from the application, modify the application or tamper with the application’s control flow</a> (notions of confidentiality can easily be implemented on top of authentic execution). These guarantees hold even in the presence of other applications, malware or an untrusted operating system executing on the same (shared) processor. A cryptographic process called <i>remote attestation</i> guarantees that components of a distributed application are mutually assured of the authenticity and integrity of other components of this application, regardless of whether these components execute on the same processor or on a remote site, or even on systems controlled by third parties such as cloud providers.</div>
<div style="text-align: justify;">
<br /></div>
</div>
</div>
<div>
<div>
<div style="text-align: justify;">
We build upon and extend security primitives provided by a TEE to guarantee authenticity and integrity properties of applications, and to secure control of input and output devices used by these applications. More specifically, we can guarantee that <i>if</i> such an application produces an output, then this output can always be explained in terms of the application’s source code and the inputs it received. This is fundamentally different from how these applications were built in the past: traditionally, the security of a distributed application would rely on the security of the hardware and an enormous stack of software, including e.g., operating systems, communication stacks, and system libraries, all of which can be seen as attack surface. Authentic execution on TEEs mitigates this by isolating application components, at least with respect to their security properties, from the overall software stack that is required to operate a device and to facilitate communication. This is what we refer to with our claim of containing functionality in a small TCB: The security properties of an application depend on trusting a substantially reduced volume of software. Ideally, this TCB can be reduced to the processing hardware and the core application software. Experiments (see <a href="https://doi.org/10.1007/978-3-319-68063-7_4">Noorman et al.</a>, <a href="https://doi.org/10.1145/3134600.3134623">Van Bulck et al.</a>, <a href="https://doi.org/10.1007/978-3-319-24174-6_26">Mühlberg et al.</a>) show that we are often able to rely on only 1% to 10% of the software volume to implement critical functionality securely.<br />
<br /></div>
</div>
</div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
Applications and Demonstrators</h4>
<div>
<div>
<div style="text-align: justify;">
In "<a href="https://doi.org/10.1145/3079763">Sancus 2.0: A Low-Cost Security Architecture for IoT Devices</a>" we outline a number of possible applications for Sancus-like technology.
In the last years we have built a range of demonstrators and conducted feasibility studies to illustrate these use cases. We have conducted extensive evaluation of the security and performance aspects of our approach; the prototypes show that Protected Module Architectures (PMAs) together with our programming model form a basis for powerful security architectures for dependable systems in domains such as Industrial Control Systems, the Internet of Things or Wireless Sensor Networks. Amongst our demonstrators are, for example, ideas to implement <a href="https://doi.org/10.1007/978-3-319-24174-6_26">periodic inspection and trust assessment functionality for legacy IoT applications</a> and <a href="https://doi.org/10.1007/978-3-319-24174-6_26">proof-of-concept components for a secure smart metering infrastructure</a>.<br />
<br /></div>
</div>
<div>
<div style="text-align: justify;">
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><div class="separator" style="clear: both; text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/gzxwiWfkl9g" width="560"></iframe>
</div>
</td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;">Demo setup for the VulCAN approach to secure automotive CAN
networks. This demo has two dashboards, illustrating the integration of legacy
car components in a secure environment. One side of the demo will react to
attacks as a conventional, insecure car would do, the other side uses Sancus based software protection and attestation.</td></tr>
</tbody></table>
<br />
The video above shows our most comprehensive demonstrator, <a href="https://doi.org/10.1145/3134600.3134623">a secured vehicular control network</a>. Specifically, we provide a generic design for efficient and standard compliant vehicular message authentication and software component attestation, named VulCAN. This demonstrator is based on the understanding that vehicular control networks, in particular the pervasive (beyond the automotive sector) CAN bus, provide no security mechanisms. Our approach advances the state-of-the-art by not only protecting against network attackers, but also against substantially stronger adversaries capable of arbitrary code execution on participating Electronic Control Units (ECUs). We demonstrate the feasibility and practicality of VulCAN by implementing and evaluating two previously proposed, industry standard-compliant message authentication protocols on top of Sancus. Our results show that strong, hardware-enforced security guarantees can be met with a minimal TCB without violating stringent real-time deadlines under benign conditions.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
In our experience, practitioners have
difficulties in understanding how enclaved execution can be
leveraged, in particular in heterogeneous distributed
networks. Over the past six years, our research group has gained significant experience with applications of Sancus and TEEs. To cover gaps in the understanding of these domains amongst software developers "in the wild", we have developed <a href="https://github.com/sancus-pma/tutorial-dsn18">extensive tutorial material</a> that explains how to build secure distributed applications along the lines of the authentic execution idea.<br />
<div style="text-align: center;">
<br /></div>
</div>
</div>
<div style="text-align: center;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/5soMsk8JYN0" width="560"></iframe>
<br />
<br /></div>
</div>
<h3 style="text-align: justify;">
</h3>
<h3 style="text-align: justify;">
</h3>
<h3 style="text-align: center;">
</h3>
<h3 style="text-align: justify;">
Wrapping Up</h3>
<div>
<div>
<div style="text-align: justify;">
Security issues in computer systems are pervasive. So pervasive that media attention, even for attacks that affect millions of users, fades away within a few days. Up till now, most of these attacks have caused little more than financial damage and the compromise of personal data. Yet, recent incidents have shown that with the advent of connected cyber-physical systems, cyber attacks will, to an increasing extent, have physical consequences and can put the population at large at the risk of suffering physical harm, in particular when critical infrastructure is affected. To counter these risks, we must pervasively embrace security in our engineering efforts.</div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
There are technological solutions to provide security for distributed applications such as control systems. In this blog post we summarise our work on open-source TEEs and the <a href="https://doi.org/10.1145/3079763">Sancus</a> processor, which addresses security in low-end systems. The <a href="https://github.com/sancus-pma">current incarnation of Sancus, version 2.1</a>, is available on GitHub. We developed <a href="https://www.usenix.org/publications/login/fall-2018-vol-43-no-2/muhlberg">a research agenda for security extensions in processors</a>, which leverage open-source concepts for the community to collectively develop a clear understanding of execution semantics and the resulting security implications. Here we envision Sancus to serve as an
open-source research vehicle with limited complexity, which allows to
address micro-architectural vulnerabilities in processors in a principled and step-by-step way. We argue that without such an understanding, regulatory and legal requirements regarding safety and security, but also privacy-related regulations such as the GDPR are hard to satisfy.
Our ongoing research in this field focuses, e.g., on extending Sancus with provably resistant against side-channel attacks such as <a href="https://doi.org/10.1145/3243734.3243822">Nemesis</a>. In a second line of research, we are exploring novel application domains for Trusted Computing technology in the context of distributed mixed-criticality systems with stringent real-time constraints. An up-to-date overview of our research activities and publications is available on the <a href="https://distrinet.cs.kuleuven.be/software/sancus/research.php">Sancus website</a>.
</div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
Importantly, TEEs alone will not solve security: Any secure development process must embrace requirements analysis and threat modelling early to be effective and to advise the choice of appropriate technologies. Moreover, implementing security requires engineers at all levels of a system stack to understand the security implications of their choices of technology, to develop effective communication strategies to inform other levels of their assumptions, requirements and guarantees, and to be ready to adapt to change.</div>
<div style="text-align: justify;">
<br /></div>
</div>
</div>
<div>
<div>
<div style="text-align: justify;">
Beyond understanding and using the right technological basis for building secure systems, we believe that there is need for a proactive legislative approach, that combines a careful assessment
of state of the art of protective technologies with a gradual increase of liability for software and
hardware vendors for security and privacy incidents.</div>
</div>
</div>
Danilo Pianinihttp://www.blogger.com/profile/00391049379246151632noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-19697654354106014162019-05-19T04:02:00.002-07:002019-05-28T21:06:17.538-07:00Motivational Modelling<div dir="ltr" style="text-align: left;" trbidi="on">
<h4 style="text-align: left;">
<span style="font-family: "georgia" , "times new roman" , serif;">By: <a href="https://www.linkedin.com/in/leon-sterling-1324a4/" target="_blank">Leon Sterling</a> <span class="MsoFootnoteReference"><a href="file:///C:/Users/mbano/AppData/Local/Microsoft/Windows/INetCache/Content.Outlook/BED1GI03/IEEE%20Blog%20Motivational%20Modelling_RB.docx#_ftn1" title=""><span class="MsoFootnoteReference"><span lang="EN-US">[1]</span></span></a> (</span><span class="username u-dir" dir="ltr" style="background: rgb(230 , 236 , 240); color: #657786; direction: ltr; outline: 0px; unicode-bidi: embed;"><a class="ProfileHeaderCard-screennameLink u-linkComplex js-nav" href="https://twitter.com/swinfict" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #657786; outline: 0px; text-decoration-line: none !important;">@<span class="u-linkComplex-target" style="font-weight: normal; text-decoration-line: underline !important;">swinfict</span></a></span>), <a href="https://www.linkedin.com/in/raburrows/" target="_blank">Rachel Burrows</a> <span class="MsoFootnoteReference"><span class="MsoFootnoteReference"><span lang="EN-US"><a href="file:///C:/Users/mbano/AppData/Local/Microsoft/Windows/INetCache/Content.Outlook/BED1GI03/IEEE%20Blog%20Motivational%20Modelling_RB.docx#_ftn2" title="">[2]</a> </span></span></span></span></h4>
<h4>
<span style="font-family: "georgia" , "times new roman" , serif;"><span class="MsoFootnoteReference"><span class="MsoFootnoteReference"><span lang="EN-US"><b>Associate Editor: <a href="https://www.linkedin.com/in/muneera-bano-71b27aa/" target="_blank">Muneera Bano</a> (</b></span></span></span><span class="username u-dir" dir="ltr" style="background: rgb(230 , 236 , 240); color: #657786; direction: ltr; font-weight: 700; unicode-bidi: embed;"><a class="ProfileHeaderCard-screennameLink u-linkComplex js-nav" href="https://twitter.com/DrMuneeraBano" style="background: rgb(230, 236, 240); color: #657786; font-weight: 700; text-decoration-line: none !important;">@<span class="u-linkComplex-target" style="font-weight: normal;">DrMuneeraBano</span></a></span><b>)</b></span></h4>
<div>
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US" style="font-size: 12pt;"><b><br /></b></span></span></span></div>
<div>
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US" style="font-size: 12pt;"></span></span></span><br />
<div class="MsoNormal">
<span style="font-size: large;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US"><i><span lang="EN-US">We must give as much weight to the
arousal of the emotions and to the expression of moral and esthetic values as
we now give to science, to invention, to practical organization. One without
the other is impotent. </span></i><span lang="EN-US">- </span></span></span></span><span style="font-family: "times" , serif;">Lewis Mumford, Values for Survival,
1946</span></span></div>
<span style="font-size: large;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US">
</span></span></span>
</span><br />
<div class="MsoNormal">
</div>
<span style="font-size: large;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US">
</span></span></span>
</span><br />
<div class="MsoNormal">
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US"><span lang="EN-US" style="font-size: large;">Now more than ever we are seeing a
blurring of the lines between social sciences and software engineering.
Software developed today incorporates and adapts to our values, attitudes,
emotions, behaviours, amongst others. We need to improve our techniques for
empirically reasoning about these concepts, and then ensure they are
effectively addressed in the design.<o:p></o:p></span></span></span></span></div>
<span style="font-size: large;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US">
</span></span></span>
</span><br />
<div class="MsoNormal">
<span style="font-family: "times" , serif; font-size: large;">Let us consider emotions. People tend
to reject software that does not adequately support the way they wish to feel
while interacting with it. Do existing software engineering techniques
effectively translate emotional goals and requirements into design? We contend
that requirements relating to emotions differ from traditional functional and
non-functional requirements. Emotional goals, such as the goal of feeling
empowered while interacting with software, is a property of a person and not of
software. </span><br />
<br />
<span style="font-family: "times" , serif; font-size: large;">Emotional goals are inherently ambiguous, subjective, difficult to
elicit, difficult to represent, difficult to address in design, and difficult
to evaluate. Existing artefacts that
capture soft goals include use cases, personas, scenarios or cultural probes.
However, these alone are still insufficient when designing for technology
embedded within complex social situations.</span></div>
<span style="font-size: large;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US">
</span></span></span>
</span><br />
<div class="MsoNormal">
<span style="font-family: "times" , serif; font-size: large;">For instance, our work in using
electronic health records for self-managing health has shown that patients
wanted to feel empowered, in control and resilient, while maintaining
meaningful connections with family and carers. Current solutions fail to
adequately address these emotional goals; citizens have been confronted with a
platform which they refuse to trust with their personal data.</span></div>
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference"><span lang="EN-US" style="font-size: large;">
</span></span></span>
<br />
<h3 style="text-align: left;">
<b style="font-family: times, serif;"><span lang="EN-US" style="font-size: large;">Emotions and Design</span></b></h3>
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span lang="EN-US">
</span></span></span>
<br />
<div class="MsoNormal">
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span lang="EN-US"><span style="font-size: large;">Great designers articulate emotional
goals as higher-level objectives and try to align with the desires, needs and
emotions of users. They are conveyed in brand values, marketing material and
used to inform key design decisions. Hitting the right emotional tone is part
of empathising with the customer and user --- a key step in design thinking.</span></span></span></span></div>
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span lang="EN-US">
</span></span></span>
<br />
<div class="MsoNormal">
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span lang="EN-US"><span style="font-size: large;">Referring to emotions happens despite
the lack of consensus in exactly what emotions are. Some believe in a hierarchy
of emotions, building from basic emotions such as fear, anger or joy. Others
believe that emotions are constructed concepts developed through life
experience. We advocate for being able to address emotions as software
requirements.</span></span></span></span></div>
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span lang="EN-US">
</span></span></span>
<h4 style="text-align: left;">
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span lang="EN-US">
<b><span lang="EN-US" style="font-size: large;">Motivational Modelling</span></b></span></span></span></h4>
<span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span class="MsoFootnoteReference" style="font-family: "times" , serif;"><span lang="EN-US">
<div class="MsoNormal">
<span lang="EN-US"><span style="font-size: large;">Motivational modelling is a lightweight
technique that has emerged from our research for expressing emotional
requirements of technology engagement related to the goals to be achieved.
Motivational modelling has now been successfully used in several industry
projects including <a href="http://dx.doi.org/10.18420/ecscw2019_ep17" target="_blank">homelessness</a>,
<a href="https://doi.org/10.1109/REET.2018.00010" target="_blank">teaching</a>,
<a href="https://doi.org/10.1016/j.jss.2015.03.044" target="_blank">healthcare</a> and
<a href="https://www.igi-global.com/gateway/chapter/220309" target="_blank">teleaudiology</a>.</span><span style="font-size: 12pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="font-size: 12pt;">
<br /></div>
<div class="MsoNormal" style="font-size: 12pt;">
<br /></div>
<div class="separator" style="clear: both; font-size: 12pt; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB-09b_JVrAYalcE-mrsHLv5OnUWkcdNciG8XFVUKzAGd9w92VZySDhatqNiqVewv3wk3DPML43Vuj1tts-7myuouhTPeeUCXuZvhG9PosZTDcBkpZxdHclNPiX7ZjNHwHfUOJRkuKZGay/s1600/Figure+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="763" data-original-width="1600" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB-09b_JVrAYalcE-mrsHLv5OnUWkcdNciG8XFVUKzAGd9w92VZySDhatqNiqVewv3wk3DPML43Vuj1tts-7myuouhTPeeUCXuZvhG9PosZTDcBkpZxdHclNPiX7ZjNHwHfUOJRkuKZGay/s400/Figure+1.png" width="400" /></a></div>
</span><br />
<div align="center" class="MsoNormal" style="text-align: center;">
<span lang="EN-US">Figure
1: Photo of a goal elicitation workshop<o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO6DfIE15hnqfQoPHg_T59Ub9Kl7Z1pV4pzSi2yjwslwOx657J4ie2aynvbz_WsFEonckzL9uREqFESfCJQ7oUGbH9MZfAtDsT3eUvRW9Q9p91VbOItnBwnHG8yo4q3HPiG06eO5kHfr65/s1600/Figure+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="259" data-original-width="1600" height="99" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO6DfIE15hnqfQoPHg_T59Ub9Kl7Z1pV4pzSi2yjwslwOx657J4ie2aynvbz_WsFEonckzL9uREqFESfCJQ7oUGbH9MZfAtDsT3eUvRW9Q9p91VbOItnBwnHG8yo4q3HPiG06eO5kHfr65/s640/Figure+2.png" width="640" /></a></div>
</span><br />
<div align="center" class="MsoNormal" style="font-family: times, serif; text-align: center;">
<br /></div>
<div align="center" class="MsoNormal" style="font-family: times, serif; text-align: center;">
<span lang="EN-US">Figure
2: Core icons used in motivational models. <o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="font-family: times, serif; text-align: center;">
<i><span lang="EN-US">Image credit: James George Marshall<o:p></o:p></span></i></div>
<div class="MsoNormal" style="font-family: times, serif; text-align: left;">
<br /></div>
<div class="MsoNormal" style="font-family: times, serif; text-align: left;">
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "times" , serif;"><span style="font-size: large;">In
motivational modelling, three kinds of goals – <i>do</i>, <i>be</i>,
and <i>feel</i> goals – are elicited alongside stakeholders and
possible concerns. The image is from one of these goal elicitation
workshops. <i>Do</i> goals describe what the system to be designed
should do, <i>be</i> goals describe how the system should be,
and <i>feel</i> goals or emotional goals describe how using the
system should feel. The results of the requirements elicitation session(s) are
converted into a hierarchically structured motivational goal model, which contributes
a practical way of communicating visually and verbally the functional, quality
and emotional goals that need to be addressed in the design of new technology
for adoption. A tool for the conversion can be found at <a href="https://www.motivationalmodelling.com/">motivationalmodelling.com</a><o:p></o:p></span></span></div>
<div style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<span style="font-family: "times" , serif;"><span style="font-size: large;">Motivational
models can subsequently be used throughout the design process to steer
exploration, experimentation and evaluation strategies. The models created can
be used as shared artefacts amongst software teams and non-technical
stakeholders to ensure that the functional, quality and emotional goals of
users are identified, upheld and advocated for throughout the software
engineering process.<o:p></o:p></span></span></div>
<div style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<span style="font-family: "times" , serif;"><span style="font-size: large;">Key benefits of
motivational modelling are:<o:p></o:p></span></span></div>
<h4 style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<span style="font-size: large;"><b><span style="font-family: "times" , serif;">Modelling the
goals, desires and needs of stakeholders</span></b><span style="font-family: "times" , serif;"> <o:p></o:p></span></span></h4>
<div style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<span style="font-family: "times" , serif;"><span style="font-size: large;">Technical and
non-technical individuals can empathise with the end user and visualise their
differences and dependencies. The model represents emotional goals intuitively.
In our experience, that means the whole team buys into making the software
emotionally relevant rather than just leaving it a responsibility of the UX
team.<o:p></o:p></span></span></div>
<h4 style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<span style="font-size: large;"><b><span style="font-family: "times" , serif;">Sparking a
conversation that leads to creative solutions</span></b><span style="font-family: "times" , serif;"> <o:p></o:p></span></span></h4>
<div>
<span style="font-family: "times" , serif; font-size: large; text-align: justify;">New ideas are
triggered through improved communication, collaboration and joint
problem-solving. Possessing design artefacts alone are not enough. The
activities and deliberations that happen leading up to the finished artefact
are equally important to build understanding and meaning.</span></div>
<div style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
</div>
<span style="font-family: "times" , serif;"><span style="font-size: large;"><b>Supporting teams to navigate and resolve the ambiguity in emotional goals</b> </span></span><br />
<span style="font-size: large;">Emotional goals
are inherently ambiguous. It is instinctual to resolve this ambiguity early to
reduce uncertainty in the project. In the case of emotional goals, it is
important to maintain the abstract nature of the goal for longer, in order to
progress towards a solution.</span><br />
<br />
<div style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<span style="font-family: "times" , serif; font-size: large;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0pt; text-align: justify;">
<span style="font-family: "times" , serif; font-size: large;">Motivational
models are part of a longer-term agenda towards improving our ability to
address socially-oriented requirements in software, and more generally to
examine how we represent these concepts throughout the entire software
development process. More information online [<a href="https://www.researchgate.net/project/Motivational-Models" target="_blank">link</a>]</span><br />
<span style="font-family: "times" , serif; font-size: large;"><br /></span></div>
</div>
</span><br />
<div style="text-align: left;">
</div>
</div>
<div style="mso-element: footnote-list;">
<hr align="left" size="1" width="33%" />
<!--[endif]-->
<br />
<div id="ftn1" style="mso-element: footnote;">
<div class="MsoFootnoteText">
<span style="font-size: xx-small;"><a href="file:///C:/Users/mbano/AppData/Local/Microsoft/Windows/INetCache/Content.Outlook/BED1GI03/IEEE%20Blog%20Motivational%20Modelling_RB.docx#_ftnref1" name="_ftn1" style="mso-footnote-id: ftn1;" title=""><span class="MsoFootnoteReference"><span style="mso-special-character: footnote;"><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-family: "calibri" , sans-serif;">[1]</span></span><!--[endif]--></span></span></a>
Centre for Design Innovation, Swinburne University of Technology, Australia<o:p></o:p></span></div>
</div>
<div id="ftn2" style="mso-element: footnote;">
<div class="MsoFootnoteText">
<span style="font-size: xx-small;"><a href="file:///C:/Users/mbano/AppData/Local/Microsoft/Windows/INetCache/Content.Outlook/BED1GI03/IEEE%20Blog%20Motivational%20Modelling_RB.docx#_ftnref2" name="_ftn2" style="mso-footnote-id: ftn2;" title=""><span class="MsoFootnoteReference"><span style="mso-special-character: footnote;"><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-family: "calibri" , sans-serif;">[2]</span></span><!--[endif]--></span></span></a>
PsyLab, The Bradfield Centre, Cambridge Science Park, Cambridge, UK</span><o:p></o:p></div>
</div>
</div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-42769011851679306612019-05-07T01:31:00.000-07:002019-05-07T01:31:53.761-07:00Towards Holistic Smart Cities<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<h4 style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="DE-AT" style="mso-ansi-language: DE-AT; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Authors: <a href="https://www.linkedin.com/in/schahramdustdar/" target="_blank">Schahram Dustdar</a> (<a href="https://twitter.com/dustdar" target="_blank">@dustdar</a>)</span>, <a href="https://www.linkedin.com/in/stefan-nastic/" target="_blank">Stefan Nastić</a>, <a href="https://www.linkedin.com/in/ognjenscekic/" target="_blank">Ognjen Šćekić</a></span></span></h4>
<h4 style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Associate Editor: <a href="https://www.linkedin.com/in/muneera-bano-71b27aa/" target="_blank">Muneera Bano</a> (<a href="https://twitter.com/DrMuneeraBano" target="_blank">@DrMuneeraBano</a>)</span></span></h4>
<div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br />
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">Today’s Smart City
developments can be summarized as ‘representatives smart’, as opposed to
‘collective-smart’ – one of the terms we propose for describing the future
vision of cyber-human smart cities involving a rich and active interplay of
different stakeholders (primarily citizens, local businesses and authorities),
effectively transforming the currently passive stakeholders into active
ecosystem actors.<o:p></o:p></span></div>
<br />
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<br /></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">Realizing such complex
interplay requires a paradigm shift in how the physical infrastructure and
people will be integrated and how they will interact. At the heart of this
paradigm shift lies the merging of two technology and research domains –
Cyber-physical Systems and Socio-technical Systems – into the value-driven
context of a Smart City. The presented Smart City vision diverges from the
traditional, hierarchical relationship between the society and ICT, in which
the stakeholders are seen as passive users who exclusively capitalize on the
technological advancements. Rather, the architecture we propose puts value
generation at the top of the pyramid and relies on “city capital” to fuel the
generation of novel values and enhancement of traditional ones. This
effectively transforms the role and broadens the involvement and opportunities
of citizen-stakeholders, but also promotes the ICT from passive infrastructure
to an active participant shaping the ecosystem.<o:p></o:p></span></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<br /></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">Architecture of Values</span></b><span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">: The fundamental idea
behind a collective-smart city is the inclusion of all its stakeholders
(authorities, businesses, citizens and organizations) in the active management
of the city. This includes not only the management of the city’s
infrastructure, but additionally the management of different societal and
business aspects of everyday life. The scale and complexity of managing
diverging individual stakeholder interests in the past was the principal reason
for adopting a centralized city management model where elected representatives
manage all aspects of the city’s life and development.<o:p></o:p></span></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<br /></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">However, we believe
that recent technological advances will enable us to share the so-far
centralized decision-making and planning responsibilities directly with various
stakeholders, allowing faster and better-tailored responses of the city to
various stakeholder needs.<o:p></o:p></span></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<br /></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">The key technological
enabler for this process is the active and wide-scale use and interleaving of
technologies and principles from the IoT and Social Computing domains in the
urban city domain. These technologies form the basic level of the proposed
architecture of values. They allow the city to interact bidirectionally with
the citizens in their everyday living, working and transport environments using
various IoT edge devices and sensors, but also to actively engage citizens and
other stakeholders to perform concrete tasks in the physical world, express
opinions and preferences, and make decisions. The “city” does not need to be an
active part in this interaction. It can serve as a trustworthy mediator
providing the physical and digital infrastructure and accepted coordination
mechanisms facilitating self-organization of citizens into transient, ad hoc
teams with common goals. This synergy, in turn, enables the creation of novel
societal and business values.<o:p></o:p></span></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<br /></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<i><span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">Infrastructural values </span></i><span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">– This category
includes and extends the benefits conventionally associated with the existing
notion of Smart City – those related to the optimized management of shared
(city-wide) infrastructure and resources. Traditionally, the management of such
resources (e.g., transportation network and signalization, internet
infrastructure, electricity grid) has been static and highly centralized. The
new vision of a Smart City relies on the interplay of humans and the
IoT-enabled infrastructure, enabling additional, dynamic, locally scoped
infrastructural optimizations and interventions, e.g., optimization of physical
and IT/digital infrastructure in domains such as computational resources,
traffic or building management. Apart from existing static/planned optimizations
(e.g., static synchronization of traffic lights), the dynamic optimizations of
the infrastructure might include temporary traffic light regime changes when a
car accident is detected.<o:p></o:p></span></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<br /></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<i><span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">Societal values </span></i><span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">– This novel value
category arises through the direct inclusion and empowerment of citizens as key
stakeholders of the city. The fact that through the use of incentivized/paid to
perform specific tasks in both the digital and physical environments is a
powerful concept bringing along a plethora of socially significant changes.<o:p></o:p></span></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<br /></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<span style="font-family: "calibri" , sans-serif; font-size: 14pt; line-height: 115%;">For example, while
most cities function as representative democracies, significant local changes
are often decided upon through direct democracy (referendums, initiatives).
While undeniably fair in principle, one of the biggest obstacles to more
frequent use of direct democracy is the under-informedness of voters. It has
been shown that informing the citizens enables them to make more judicial and
responsible decisions. The pervasiveness of IoT devices enables interaction
with citizens directly and opens up the possibility of informing the citizens
better, or even simulating in practice the outcomes of different election
choices.<o:p></o:p></span></div>
<div style="line-height: 115%; margin: 0pt 0pt 0.0001pt;">
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
</div>
<div class="MsoNormal" style="line-height: 115%;">
<br /></div>
<br />
<div class="MsoNormal" style="line-height: 115%;">
<br /></div>
<br /></div>
</div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-54108923117672745572019-04-30T00:55:00.000-07:002019-04-30T00:55:10.382-07:00Citizen Engagement in Smart Cities: Theoretical Dreams vs Practical Reality<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<h4 style="text-align: left;">
<b>By: Muneera Bano (<a href="https://twitter.com/DrMuneeraBano" target="_blank">@DrMuneeraBano</a>) </b><b>and D</b><b>idar Zowghi <a href="https://twitter.com/DidarZowghi" target="_blank">(@DidarZowghi)</a> </b></h4>
<div>
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039"></span><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039"><span style="font-family: "arial"; font-size: 11pt; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></div>
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039"><span style="font-family: "arial"; font-size: 11pt; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">It has </span><a href="https://www.triple-c.at/index.php/tripleC/article/view/718" style="text-align: justify; text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">been predicted</span></a><span style="font-family: "arial"; font-size: 11pt; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"> that by 2050, around two-thirds of the world’s population might be living in urban settlements. To make the cities ready for population expansion and growth, ICT is playing a critical role in the future of urbanisation referred to as ‘</span><a href="https://www.sciencedirect.com/science/article/pii/S026427511630378X" style="text-align: justify; text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Smart City</span></a><span style="font-family: "arial"; font-size: 11pt; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">’. It has recently become the hot topic of research as the tech giants such as <a href="http://fortune.com/2019/02/21/google-smart-city-sidewalk-labs/" target="_blank">Google</a> and <a href="https://www.microsoft.com/en-au/enterprise/citynext" target="_blank">Microsoft</a> entering the race of real state. </span></span><br />
<span style="font-family: "arial"; font-size: 11pt; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">There is </span><a href="https://www.sciencedirect.com/science/article/pii/S0264275116308812" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">no consensus</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> on the exact definition of smart cities, however, any definition would refer to the core concepts of advanced technological infrastructure for urban society with collaborative and interactive human-centred design. An </span><a href="https://www.sciencedirect.com/science/article/pii/S0264275117312283" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">emerging view</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> is that smart cities aim to increase efficiency, sustainability, and improve quality of life for citizen by utilizing technologies to connect every layer of a city, from the air to the streets to underground, to capture and analyse data from various independently-managed and operating infrastructures, utilities and service providers. </span></span></div>
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></div>
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039">
</span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The buzz words used by researchers to propose architectural solutions for smart cities include Artificial Intelligence (AI), Internet of Things (IoT), Smart Phones, Cloud-based Services and Big Data. In essence, a smart city is a large-scale cyber-physical complex socio-technical system for an urban population that is comprised of many interconnected subsystems. Examples of these subsystems include transportation, power and water supply, waste management, pollution monitoring, crime detection, video surveillance, emergency response system and other smart community initiatives for e-governance. Typical examples of smart city are </span><a href="https://www.smartnation.sg/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Singapore</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://interestingengineering.com/smart-city-dubai-the-happiest-city-of-the-future" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Duba</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">i, </span><a href="https://amsterdamsmartcity.com/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Amsterdam</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="http://www.urban-hub.com/cities/smart-city-3-0-ask-barcelona-about-the-next-generation-of-smart-cities/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Barcelona</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://international.stockholm.se/governance/smart-and-connected-city/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Stockholm</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, and </span><a href="https://www.ny-engineers.com/blog/how-new-york-is-becoming-a-smart-city" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">New York.</span></a></span></div>
<span id="docs-internal-guid-246e3a63-7fff-f651-8539-3871b5076039">
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The three </span><a href="https://pdfs.semanticscholar.org/0a89/1c1b3e9642d730e717629032071e6b4997de.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">core components of a smart city</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> are People, Processes and Technology. Regardless of the type of technology used for smart city implementation, the most emphasised factor is </span><a href="http://www.ippapublicpolicy.org/file/paper/1433973333.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">‘Citizen Engagement’</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. As pointed out by <a href="https://www.gartner.com/en/newsroom/press-releases/2018-03-07-gartner-says-citizen-engagement-is-critical-to-the-success-of-smart-cities" target="_blank">Bettina Tratz-Ryan</a>, research vice president at Gartner, </span><span style="font-family: "arial"; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">"The way forward today is a community-driven, bottom-up approach where citizens are an integral part of designing and developing smart cities and not a top-down policy with city leaders focusing on technology platforms alone”.</span><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div>
<span style="font-weight: normal;"><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Smart city design should not only allow the community of citizens to interact directly with the technology but increase their participation in the governance of the cities. However, </span><a href="https://academic.oup.com/cjres/article-abstract/8/1/131/304592" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">relatively little research</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> has focused on the complexities and pragmatics of citizen engagement leading to their participation in governance.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">There are various stakeholders in the smart city and citizens are only one group of stakeholder. The intention for involving citizens in </span><a href="http://www.ippapublicpolicy.org/file/paper/1433973333.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">co-production and the evolution</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> of the smart city is to turn them into a technologically intelligent community where collective human intelligence works in parallel to AI for maximum effectiveness. However, in practice, such form of citizen engagement (to the level of co-governance by society) has yet to be observed in real life examples. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The democratic concept of stakeholder involvement in system design is quite old and well established. Without careful consideration and management, </span><a href="https://ieeexplore.ieee.org/abstract/document/8552628" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">involving stakeholders can cause issues</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> rather than provide benefits. Smart city, being a complex, large-scale, cyber-physical, multi-faceted, multi-layered and socio-technical system, presents new challenges on how to involve and engage the right stakeholder (citizens).</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">The critical aspect of any smart city project is derived from the political, social and cultural values of the society. The design and infrastructure of a smart city, type of citizen engagement and its evolution will reflect the political system. Examples of such differences can be seen in the citizen engagement by </span><a href="https://content.iospress.com/articles/information-polity/ip367" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Japan</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, in the </span><a href="https://en.wikipedia.org/wiki/Social_Credit_System" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Social Credit System</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> by China, or the </span><a href="https://www.businessinsider.com.au/swedish-people-embed-microchips-under-skin-to-replace-id-cards-2018-5?r=US&IR=T" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">bio-microchip implementation</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> by Sweden.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Whether citizen engagement is a democratic initiative (</span><a href="https://dl.acm.org/citation.cfm?id=67937" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">neo-humanist</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">), where the technology is utilised to improve the life and environment of a city, or is it a step towards an increase in controlling the behavioural patterns of the citizens on politically acceptable values inherent in the governance layer of society (</span><a href="https://dl.acm.org/citation.cfm?id=67937" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">functionalist approach</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">) or as simply phrased mass surveillance, the questions regarding citizen engagement such as </span><a href="https://ieeexplore.ieee.org/abstract/document/8552628" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">who will be involved, why, when, how and how much</span></a><span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, would all be answered within the political context and the paradigm of governance of a country.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">There is a need for further research on various dimensions of citizen engagement not just from purely technological perspectives but also from a social perspective such as political, cultural, and ethical. It is one of the important aspects of smart city and lack of proper citizen engagement and fair representation of citizens from all walks of life can have serious repercussions. Lack of diverse representation can lead to <a href="https://medium.com/@tinnaCnielsen/how-to-develop-inclusive-cities-by-mitigating-unconscious-bias-df62a72e0d94" target="_blank">biases in design</a>, that can disadvantage the under-represented or underprivileged groups of citizens. Also, there is a possibility of increasing the digital divide that will impact the less technologically savvy population of cities.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;">
<span style="font-family: "arial"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Another crucial issue that requires attention is data protection and privacy. Smart cities capture and manage large amounts of data that is extremely important for their operations. Any data loss will disrupt city operations and will impact citizen’s trust and confidence. Data collected and manipulated by Smart Cities solutions are critically sensitive for citizens, businesses, governmental, and emergency services, etc. To ensure compliance with data protection regulations such as <a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation" target="_blank">GDPR</a>, smart city architecture must include data protection as a critical requirement and must embed privacy protection in all stages of the data lifecycle. </span></div>
</span></div>
<div>
<b><br /></b></div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-67806203830929929272019-04-16T00:59:00.000-07:002019-04-16T00:59:00.374-07:00Microservice API Patterns - How to Structure Data Transfer Representations and Endpoints<div class="MsoNormal" style="font-family: Cambria, serif; margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US" style="font-family: "times"; font-size: 10pt;"></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt;">
<span style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><b>Authors:</b> Olaf Zimmermann, Uwe Zdun (<a href="https://twitter.com/uwe_zdun"><span style="color: blue;">@uwe_zdun</span></a>), Mirko Stocker (<a href="https://twitter.com/m_st"><span style="color: blue;">@m_st</span></a>), Cesare Pautasso (<a href="https://twitter.com/pautasso"><span style="color: blue;">@pautasso</span></a>), Daniel Lübke (<a href="https://twitter.com/dluebke"><span style="color: blue;">@dluebke</span></a>)</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt;"><b>Associate Editor:</b> </span><span style="font-size: 13.333333015441895px;">Niko Mäkitalo (<a href="http://twitter.com/nikkis"><span style="color: blue;">@nikkis</span></a>)</span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black; font-size: 10pt;">The Microservice API Patterns at </span><span lang="EN-US"><span style="font-size: 10pt;"><a href="https://microservice-api-patterns.org/"><span style="color: blue;">www.microservice-api-patterns.org</span></a><span style="color: blue;"> </span></span></span><span lang="EN-US" style="color: black; font-size: 10pt;">distill proven solutions to recurring service interface design and specification problems such as finding well-fitting service granularities, promoting independence among services, or managing the evolution of a microservice API.</span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<b><span lang="EN-US" style="font-size: 18pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">Motivation</span></span></b></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black; font-size: 10pt;">It is hard to escape the term <i>microservices </i>these days. Much has been said about this rather advanced approach to system decomposition since James Lewis’ and Martin Fowler’s </span><span lang="EN-US"><a href="https://martinfowler.com/articles/microservices.html"><span style="font-size: 10pt;"><span style="color: blue;">Microservices Blog Post</span></span><span style="color: blue; font-size: 10pt;"> </span></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">from April 2014. For instance, IEEE Software devoted a </span><span lang="EN-US"><a href="https://ieeexplore.ieee.org/abstract/document/7436659"><span style="font-size: 10pt;"><span style="color: blue;">magazine article</span></span></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">, a two-part Insights interview (</span><span lang="EN-US"><a href="http://ieeexplore.ieee.org/document/7819415/"><span style="font-size: 10pt;"><span style="color: blue;">part 1</span></span></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">, </span><span lang="EN-US"><a href="http://ieeexplore.ieee.org/document/7888407/"><span style="font-size: 10pt;"><span style="color: blue;">part 2</span></span></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">) and even an entire </span><span lang="EN-US"><a href="https://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=8354413"><span style="font-size: 10pt;"><span style="color: blue;">special theme issue</span></span><span style="color: blue; font-size: 10pt;"> </span></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">to the topic.</span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">Early adopters’ experiences suggest that service design requires particular attention if microservices are supposed to deliver on their promises:</span></span></div>
<ul style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin-bottom: 0cm; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" type="disc">
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">How many service interfaces should be exposed?</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">Which service cuts let services and their clients deliver user value jointly, but couple them loosely?</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">How often do services and their clients interact to exchange data? How much and which data should be exchanged?</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">What are suitable message representation structures, and how do they change throughout service lifecycles?</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">How to agree on the meaning of message representations – and stick to these contracts in the long run?</span></span></li>
</ul>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US" style="font-size: 10pt;"><style class="WebKit-mso-list-quirks-style"><font face="Helvetica Neue, Arial, Helvetica, sans-serif"> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Cambria",serif; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS Mincho"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:"Cambria",serif; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS Mincho"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 2.0cm 70.85pt 2.0cm; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1218592069; mso-list-template-ids:1562831944;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l0:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l0:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level5 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level8 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} --> </font></style></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt;">The Microservice API Patterns (MAP) at </span><span lang="EN-US"><span style="font-size: 10pt;"><a href="https://microservice-api-patterns.org/"><span style="color: blue;">www.microservice-api-patterns.org</span></a><span style="color: blue;"> </span></span></span><span lang="EN-US" style="font-size: 10pt;">cover and organize this design space providing valuable guidance distilled from the experience of API design experts.</span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<b><span lang="EN-US" style="font-size: 13.5pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">What makes service design hard (and interesting)?</span></span></b></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">An initial microservice API design and implementation for systems with a few API clients often seem easy at first glance. But a lot of interesting problems surface as systems grow larger, evolve, and get new or more clients:</span></span></div>
<ul style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin-bottom: 0cm; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" type="disc">
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><i><span lang="EN-US" style="font-size: 10pt;">Requirements diversity</span></i><span lang="EN-US" style="font-size: 10pt;">: The wants and needs of API clients differ from one another, and keep on changing. Providers have to decide whether they offer good-enough compromises or try to satisfy all clients’ requirements individually.</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><i><span lang="EN-US" style="font-size: 10pt;">Design mismatches</span></i><span lang="EN-US" style="font-size: 10pt;">: What backend systems can do and how they are structured, might be different from what clients expect. These differences have to be dealt with during the API design.</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><i><span lang="EN-US" style="font-size: 10pt;">Freedom to innovate</span></i><span lang="EN-US" style="font-size: 10pt;">: The desire to innovate and market dynamics such as competing API providers trying to catch up on each other lead to the need to change and evolve the API. However, publishing an API means giving up some control and thus limiting the freedom to change it.</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><i><span lang="EN-US" style="font-size: 10pt;">Risk of change</span></i><span lang="EN-US" style="font-size: 10pt;">: Introducing changes may result in possibly incompatible evolution strategies going beyond what clients expect and are willing to accept.</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><i><span lang="EN-US" style="font-size: 10pt;">Information hiding</span></i><span lang="EN-US" style="font-size: 10pt;">: Any data exposed in an API can be used by the clients, sometimes in unexpected ways. Poorly designed APIs leak service implementation secrets and let the provider lose its information advantage.</span></span></li>
</ul>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">Such conflicting requirements and stakeholder concerns must be balanced at the API design level; here, many <i>design trade-offs </i>can be observed. For instance, data can be transferred in a few calls that carry lots of data back and forth, or alternatively, many chatty, fine-grained interactions can be used. Which choice is better in terms of performance, scalability, bandwidth consumption and evolvability? Should the API design focus on stable and standardized interfaces or rather focus on fast-changing and more specialized interfaces? Should state changes be reported via API calls or event streaming? Should commands and queries be separated?<o:p></o:p></span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><style class="WebKit-mso-list-quirks-style"><font face="Helvetica Neue, Arial, Helvetica, sans-serif"> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Cambria",serif; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS Mincho"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:"Cambria",serif; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS Mincho"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 2.0cm 70.85pt 2.0cm; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:136074066; mso-list-template-ids:1346293178;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l0:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l0:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level5 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level8 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} --> </font></style></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">All of these – and many related – design issues are hard to get right. It is also hard to oversee all relevant consequences of a design decision, for instance regarding trade-offs and interdependencies of different decisions.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<b><span lang="EN-US" style="font-size: 18pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<b><span lang="EN-US" style="font-size: 18pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">Enter Microservice API Patterns (MAP)</span></span></b></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black; font-size: 10pt;">Our </span><span lang="EN-US"><span style="font-size: 10pt;"><a href="https://microservice-api-patterns.org/"><span style="color: blue;">Microservice API Patterns (MAP)</span></a><span style="color: blue;"> </span></span></span><span lang="EN-US" style="color: black; font-size: 10pt;">focus – in contrast to existing design heuristics and patterns related to microservices – solely on microservice API design and evolution. The patterns have been mined from numerous public Web APIs as well as many application development and software integration projects the authors and their industry partners have been involved in.</span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0cm 0cm 0.0001pt; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">MAP addresses the following questions, which also define several <i>pattern categories</i>:</span></span></div>
<ul style="-webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin-bottom: 0cm; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" type="disc">
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black; font-size: 10pt;">The </span><span lang="EN-US"><a href="https://www.microservice-api-patterns.org/patterns/structure/"><i><span style="font-size: 10pt;"><span style="color: blue;">structure</span></span><span style="color: blue; font-size: 10pt;"> </span></i></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">of messages and the message elements that play critical roles in the design of APIs. What is an adequate number of representation elements for request and response messages? How are these elements structured? How can they be grouped and annotated with supplemental usage information (metadata)?</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black; font-size: 10pt;">The impact of message content on the </span><span lang="EN-US"><a href="https://www.microservice-api-patterns.org/patterns/quality/"><i><span style="font-size: 10pt;"><span style="color: blue;">quality</span></span><span style="color: blue; font-size: 10pt;"> </span></i></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">of the API. How can an API provider achieve a certain level of quality of the offered API, while at the same time using its available resources in a cost-effective way? How can the quality tradeoffs be communicated and accounted for?</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black; font-size: 10pt;">The </span><span lang="EN-US"><a href="https://www.microservice-api-patterns.org/patterns/responsibility/"><i><span style="font-size: 10pt;"><span style="color: blue;">responsibilities</span></span><span style="color: blue; font-size: 10pt;"> </span></i></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">of API operations. Which is the architectural role played by each API endpoint and its operations? How do these roles and the resulting </span><span lang="EN-US"><a href="http://www.wirfs-brock.com/PDFs/A_Brief-Tour-of-RDD.pdf"><span style="font-size: 10pt;"><span style="color: blue;">responsibilities</span></span><span style="color: blue; font-size: 10pt;"> </span></a></span><span lang="EN-US" style="color: black; font-size: 10pt;">impact microservice size and granularity?</span></span></li>
<li class="MsoNormal" style="font-size: 12pt; margin: 0cm 0cm 0.0001pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black; font-size: 10pt;">API descriptions as a means for API governance and </span><span lang="EN-US"><i><span style="font-size: 10pt;"><a href="https://www.microservice-api-patterns.org/patterns/evolution/"><span style="color: blue;">evolution</span></a><span style="color: blue;"> </span></span></i></span><span lang="EN-US" style="color: black; font-size: 10pt;">over time. How to deal with lifecycle management concerns such as support periods and versioning? How to promote backward compatibility and communicate breaking changes? </span></span></li>
</ul>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><style class="WebKit-mso-list-quirks-style"><font face="Helvetica Neue, Arial, Helvetica, sans-serif"> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Cambria",serif; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS Mincho"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:"Cambria",serif; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS Mincho"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 2.0cm 70.85pt 2.0cm; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1780636982; mso-list-template-ids:1502778664;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l0:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l0:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level5 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level8 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} --> </font></style></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt;">So far, we have presented ten patterns at </span><span lang="EN-US"><span style="font-size: 10pt;"><a href="http://europlop.net/content/europlop-2017"><span style="color: blue;">EuroPLoP 2017</span></a><span style="color: blue;"> </span></span></span><span lang="EN-US" style="font-size: 10pt;">and </span><span lang="EN-US"><a href="http://europlop.net/content/europlop-2018"><span style="font-size: 10pt;"><span style="color: blue;">EuroPLoP 2018</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">; about 35 more candidate patterns are currently being worked on. The published patterns and supporting material are available on the </span><span lang="EN-US"><span style="font-size: 10pt;"><a href="https://microservice-api-patterns.org/"><span style="color: blue;">MAP website</span></a><span style="color: blue;"> </span></span></span><span lang="EN-US" style="font-size: 10pt;">that went live recently. The papers are available via </span><span lang="EN-US"><a href="https://microservice-api-patterns.org/publications"><span style="font-size: 10pt;"><span style="color: blue;">this page</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">.</span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<b><span lang="EN-US" style="font-size: 13.5pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">Sample Patterns for Communicating and Improving Interface Quality</span></span></b></div>
<div class="MsoNormal" style="font-size: medium;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt;"></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">To illustrate MAP a bit further, we summarize five patterns on communicating and improving API qualities below. We also outline their main relationships.</span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWUMUvLCT4Qpf2OS6be-YeldUK7I797wYCUKRWR73wtIi5GqMcKtHXXsu-eguOiGljk7dIhPVXSsI0QpnbSwuh7ikWxAhpw0OvQI5hfr3cOxKofqHiaiCYbvTyLt2s17lLjg4pZ8_-CZLF/s1600/europlop2018-pattern-relationships-icons.png" style="margin-left: auto; margin-right: auto;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWUMUvLCT4Qpf2OS6be-YeldUK7I797wYCUKRWR73wtIi5GqMcKtHXXsu-eguOiGljk7dIhPVXSsI0QpnbSwuh7ikWxAhpw0OvQI5hfr3cOxKofqHiaiCYbvTyLt2s17lLjg4pZ8_-CZLF/s400/europlop2018-pattern-relationships-icons.png" width="400" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt; text-align: start;">Figure: Relationships between Selected Patterns for Communicating and Improving Interface Quality.</span><span style="font-size: small; text-align: start;"></span></span></td></tr>
</tbody></table>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><style class="WebKit-mso-list-quirks-style"><font face="Helvetica Neue, Arial, Helvetica, sans-serif"> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Cambria",serif; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS Mincho"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:"Cambria",serif; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS Mincho"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 2.0cm 70.85pt 2.0cm; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1619292634; mso-list-template-ids:264819270;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l0:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l0:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level5 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level8 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} --> </font></style></span></div>
<ul style="margin-bottom: 0cm;" type="disc">
<li class="MsoNormal"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US"><a href="https://microservice-api-patterns.org/patterns/quality/qualityManagementAndGovernance/APIKey"><span style="font-size: 10pt;"><span style="color: blue;">API Key</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">: An API provider needs to identify the communication participant it receives a message from to decide if that message actually originates from a registered, valid customer or some unknown client. A unique, provider-allocated <i>API Key</i>per client to be included in each request allows the provider to identify and authenticate its clients. This pattern is mainly concerned with the quality attribute <i>security</i>.</span></span></li>
<li class="MsoNormal"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US"><a href="https://www.microservice-api-patterns.org/patterns/quality/dataTransferParsimony/WishList"><span style="font-size: 10pt;"><span style="color: blue;">Wish List</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">: Performance requirements and bandwidth limitations might dictate a parsimonious conversation between the provider and the client. Providers may offer rather rich data sets in their response messages, but not all clients might need all of this information all the time. A <i>Wish List </i>allows the client to request only the attributes in a response data set that it is interested in. This pattern addresses qualities such as <i>accuracy </i>of the information needed by the consumer, <i>response time</i>, and <i>performance</i>, i.e., the processing power required to answer a request.</span></span></li>
<li class="MsoNormal"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US"><a href="https://www.microservice-api-patterns.org/patterns/quality/qualityManagementAndGovernance/RateLimit"><span style="font-size: 10pt;"><span style="color: blue;">Rate Limit</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">: Having identified its clients, an authenticated client could use excessively many resources, thus negatively impacting the service for other clients. To limit such abuse, a <i>Rate Limit </i>can be employed to restrain certain clients. The client can stick to its <i>Rate Limit </i>by avoiding unnecessary calls to the API. This pattern is concerned with the quality attributes of <i>reliability</i>, <i>performance</i>, and <i>economic viability</i>.</span></span></li>
<li class="MsoNormal"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US"><span style="font-size: 10pt;"><a href="https://www.microservice-api-patterns.org/patterns/quality/qualityManagementAndGovernance/RatePlan"><span style="color: blue;">Rate Plan</span></a><span style="color: blue;">: </span></span></span><span lang="EN-US" style="font-size: 10pt;">If the service is paid for or follows a freemium model, the provider needs to come up with one or more pricing schemes. The most common variations are a simple flat-rate subscription or a more elaborate consumption-based pricing scheme, explored in the <i>Rate Plan </i>pattern. This pattern mainly addresses the <i>commercialization </i>aspect of an API.</span></span></li>
<li class="MsoNormal"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US"><a href="https://www.microservice-api-patterns.org/patterns/quality/qualityManagementAndGovernance/ServiceLevelAgreement"><span style="font-size: 10pt;"><span style="color: blue;">Service Level Agreement</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">: API providers want to deliver high-quality services while at the same time using their available resources economically. The resulting compromise is expressed in a provider’s <i>Service Level Agreement</i>(SLA) by the targeted service level objectives and associated penalties (including reporting procedures). This pattern is concerned with the communication of any quality attribute between API providers and clients. Availability is an example of a quality that is often expressed in such an SLA.</span></span></li>
</ul>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt;"></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt;">More patterns and pattern relationships can be explored at </span><span lang="EN-US"><a href="https://microservice-api-patterns.org/"><span style="font-size: 10pt;"><span style="color: blue;">www.microservice-api-patterns.org</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">. In addition to the patterns, you find there additional entry points such as a </span><span lang="EN-US"><span style="font-size: 10pt;"><a href="https://microservice-api-patterns.org/cheatsheet"><span style="color: blue;">cheat sheet</span></a><span style="color: blue;"> </span></span></span><span lang="EN-US" style="font-size: 10pt;">and various pattern filters such as </span><span lang="EN-US"><a href="https://microservice-api-patterns.org/patterns/byforce"><span style="font-size: 10pt;"><span style="color: blue;">patterns by force</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">, and </span><span lang="EN-US"><a href="https://microservice-api-patterns.org/patterns/byscope"><span style="font-size: 10pt;"><span style="color: blue;">patterns by scope (phase/role)</span></span></a></span><span lang="EN-US" style="font-size: 10pt;">.</span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<b><span lang="EN-US" style="font-size: 18pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="font-size: medium;">
<b><span lang="EN-US" style="font-size: 18pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">Wrapping Up</span></span></b></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt;">Microservice API Patterns (MAP) is a volunteer project focused on the design and evolution of Microservice APIs. We hope you find the intermediate results of our ongoing efforts useful. They are available at </span><span lang="EN-US"><span style="font-size: 10pt;"><a href="https://microservice-api-patterns.org/"><span style="color: blue;">www.microservice-api-patterns.org</span></a><span style="color: blue;"> </span></span></span><span lang="EN-US" style="font-size: 10pt;">– we will be glad to hear about your feedback and constructive criticism. We also welcome contributions such as pointers to known uses or war stories in which you have seen some of the patterns in action.</span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="font-size: 10pt;"></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">The patterns in MAP aim at sharing timeless knowledge on distributed system APIs. While trends like microservices come and go, the fundamental design problems of exposing remote APIs will not go out of fashion any time soon!<o:p></o:p></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US" style="font-size: 10pt;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="font-size: medium;">
<br /></div>
Niko Mäkitalohttp://www.blogger.com/profile/03707120761172781413noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-25738998470517208292019-04-09T09:49:00.000-07:002019-04-09T09:49:05.830-07:00A Survey of Sustainability in the Workplace of ICT Professionals using the Transtheoretical Model of Behavior Change<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 17.1pt; margin: 12pt 0cm 0.0001pt;">
<b><span style="font-size: 11pt;">By</span></b><span style="font-family: "arial" , sans-serif; font-size: 11pt;">: Juan M. Carrillo de Gea, José Alberto Garcia-Berna, José L. Fernández-Alemán, Joaquín Nicolás, Begoña Moros, Ambrosio Toval, Ali Idri</span><span style="font-family: "calibri light" , sans-serif; font-size: 16pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<b><span style="font-size: 11pt;">Associate Editor</span></b><span style="font-size: 11pt;">: Sofia Ouhbi<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<span style="font-size: 11pt;"><br /></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;">We live in a finite world, with limited resources. The idea of sustainable development arises to counteract the overexploitation of natural and environmental resources. The World Commission on Environment and Development (a.k.a. the Brundtland’s Commission), defined sustainable development as <i>development that meets the needs of the present without compromising the ability of future generations to meet their own needs </i>(World Commission on Environment and Development, 1987). At the same time, the Information and Communication Technologies (ICT) represent an important driver of innovation, competitiveness and sustained long-term growth for modern knowledge-based societies (Cardona, Kretschmer, & Strobel, 2013). ICT are also recognized catalysts of sustainable development and they can boost the impact of sustainable development efforts (Zelenika & Pearce, 2013). However, positive and negative impacts of ICT on sustainability tend to cancel each other out, and it is crucial to actively design policies that encourage ICT applications that result on a positive outcome for the environment (Hilty et al., 2006).<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;"><br /></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;">In an organizational context, behavior change is an important tool to improve compliance with business processes and policies (Gelles, 2016). There are many theories of behavior change: diffusion of innovations, hierarchy of effects, steps to behavior change, stages of change or transtheoretical model (TTM), social learning theory and social cognitive theory, theory of reasoned action and theory of planned behavior, health belief model, operant conditioning, value-belief-norm theory, Fogg behavior model, and DO IT process, just to name a few. In particular, the TTM of behavior change includes five stages, ranging from no intention to change, to maintain behavior: <i>precontemplation</i>, <i>contemplation</i>, <i>preparation</i>, <i>action</i>, and <i>maintenance</i>. Behavior change takes place when people progress—or move back—towards a desired behavior. While the TTM of behavior change has been mostly applied in health research, there are similarities between health behavior and environmental behavior (Nisbet & Gick, 2008).<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;"><br /></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;">In this work, we specifically address the <i>stage </i>construct of the TTM with the purpose of characterizing behavior change among ICT professionals about four key sustainability areas: (1) <i>electric consumption</i>, (2) <i>waste treatment</i>, (3) <i>water consumption</i>, and (4) <i>transport and mobility</i>. A total of 141 participants from ICT companies participated in an industry survey in the Region of Murcia (Spain) through an on-line questionnaire. We gathered information from all the respondents about their individual behavior at the workplace regarding the four sustainability areas. There were 26 individual behavior questions designed to be rated on a 3-point unipolar Likert-type scale (i.e. <i>No</i>, <i>In some cases</i>, <i>Yes</i>), and we also included a <i>Not applicable </i>(N/A) response option. An additional question was included at the end of each block of questions that depends on the previous answers (i.e. a filter or contingency question) to assign the respondents to the specific stage of change in each sustainability dimension under study.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;"><br /></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;">Figures 1-4 show the results for each sustainability dimension under study. Our findings suggest that the ICT professionals are generally respectful with the environment, especially in relation to <i>electric consumption</i>, <i>waste treatment</i>, and <i>water consumption</i>. With regard to <i>transport and mobility</i>, the situation is not so good. All this is more evident if we move on to Figure 5, where we show the percentage of respondents in each stage of the TTM for each sustainability dimension. <o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: center;">
<i><span style="font-size: 9pt;"><br /></span></i></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCLgzTpNlDQ-icRcrkbQi2-fH2ZyQfx0cm-bSVteT4IC4LXhl5XqpSaE6OGBaAe_3q4YIQAWG79uYRFeqOYi-L3mv0eaa7ak9HyrGkL_q4k4vuOhzRRH8hoT2tPOHQAVLNRBbJoP2xlKQ/s1600/Fig1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="762" data-original-width="885" height="343" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCLgzTpNlDQ-icRcrkbQi2-fH2ZyQfx0cm-bSVteT4IC4LXhl5XqpSaE6OGBaAe_3q4YIQAWG79uYRFeqOYi-L3mv0eaa7ak9HyrGkL_q4k4vuOhzRRH8hoT2tPOHQAVLNRBbJoP2xlKQ/s400/Fig1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "calibri" , sans-serif;"><span style="font-size: 9pt;">Figure 1. What sustainable habits do you have at work in relation to electric consumption?</span></span></td></tr>
</tbody></table>
<div align="center" class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: center;">
<i><span style="font-size: 9pt;"><br /></span></i></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfRkf0wr3OjIxP81W2uzaSLZc3SslaIUVee5u-UbAvHUTntAL7ZmwBTcjR3H679xQgPuzD9r1e0hYHzKTmJUYs4EN8j7PGoLNCagaZbikBAvLCPJf2i-UPmHwNcOuPnTvj3HuIIJ992vA/s1600/Fig2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="762" data-original-width="885" height="343" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfRkf0wr3OjIxP81W2uzaSLZc3SslaIUVee5u-UbAvHUTntAL7ZmwBTcjR3H679xQgPuzD9r1e0hYHzKTmJUYs4EN8j7PGoLNCagaZbikBAvLCPJf2i-UPmHwNcOuPnTvj3HuIIJ992vA/s400/Fig2.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "calibri" , sans-serif;"><span style="font-size: 9pt;">Figure 2. What sustainable habits do you have at work regarding waste treatment?</span></span></td></tr>
</tbody></table>
<div align="center" class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: center;">
<i><span style="font-size: 9pt;"><br /></span></i></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyZowYUAEmnswfoFx4O9IMaqcYycqc0okH3i2AZHCLluIHUVR9TCg95oqLXbM6ITmkBcZXtK_cq6nm3AItFWg5COATmm2iNZLYBlQsBrk-kC6OTahCDV322m01zbeKjXOg4cYy2PhLVjg/s1600/Fig3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="762" data-original-width="885" height="343" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyZowYUAEmnswfoFx4O9IMaqcYycqc0okH3i2AZHCLluIHUVR9TCg95oqLXbM6ITmkBcZXtK_cq6nm3AItFWg5COATmm2iNZLYBlQsBrk-kC6OTahCDV322m01zbeKjXOg4cYy2PhLVjg/s400/Fig3.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "calibri" , sans-serif;"><span style="font-size: 9pt;">Figure 3. What sustainable habits do you have at work with respect to water consumption?</span></span></td></tr>
</tbody></table>
<div align="center" class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsfjyRrdVj3jq7DrF_N8tcnz_5YTT90G7h6gBCW_crYjUewinTXPApHhXSP7xGnbAnDZk83BPTMVPsNL4Qbkc-OzYIcPGwBXTzcCjLHMfW4yCAGeWMrLn901iRhtmp3eCeqYexLY9Ap7E/s1600/Fig4.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="762" data-original-width="885" height="343" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsfjyRrdVj3jq7DrF_N8tcnz_5YTT90G7h6gBCW_crYjUewinTXPApHhXSP7xGnbAnDZk83BPTMVPsNL4Qbkc-OzYIcPGwBXTzcCjLHMfW4yCAGeWMrLn901iRhtmp3eCeqYexLY9Ap7E/s400/Fig4.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "calibri" , sans-serif;"><span style="font-size: 9pt;">Figure 4. What sustainable habits do you have at work in terms of transport and mobility?</span></span></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuWFD0jJePvuwNENmg79pVoOoeVL-4xp67l9mG9djyKkeTgcq6F3PpDVo8f1Q9l1arCCU2m0a3gQXAI6FKQwknk7GMZxt0jduet4TQufT34OCQgGArp5OoEVSTmfAnm6li6U1g61KiaRQ/s1600/Fig5.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="449" data-original-width="750" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuWFD0jJePvuwNENmg79pVoOoeVL-4xp67l9mG9djyKkeTgcq6F3PpDVo8f1Q9l1arCCU2m0a3gQXAI6FKQwknk7GMZxt0jduet4TQufT34OCQgGArp5OoEVSTmfAnm6li6U1g61KiaRQ/s400/Fig5.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "calibri" , sans-serif;"><span style="font-size: 9pt;">Figure 5. Percentage of respondents in each stage of the TTM</span></span></td></tr>
</tbody></table>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;"><br /></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-size: 11pt;">Our study is still under development and we are currently working on expanding the results posted here. All in all, we hope that the information obtained will help ICT professionals to become aware that it is also possible to contribute to sustainable development through our behaviors in the workplace.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<b><span style="font-size: 11pt;"><br /></span></b></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<b><span style="font-size: 11pt;">References</span></b><span style="font-size: 11pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<span style="font-size: 11pt;">Cardona, M., Kretschmer, T., & Strobel, T. (2013). ICT and productivity: conclusions from the empirical literature. </span><i style="font-size: 11pt;">Information Economics and Policy, 25</i><span style="font-size: 11pt;">(3), 109-125.</span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<span style="font-size: 11pt;">Gelles, M. G. (2016). Chapter 2 - common challenges to maturing an insider threat program. In M. G. Gelles (Ed.), <i>Insider threat</i>(pp. 19-37). Boston: Butterworth-Heinemann.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<span style="font-size: 11pt;">Hilty, L. M., Arnfalk, P., Erdmann, L., Goodman, J., Lehmann, M., & Wäger, P. A. (2006). The relevance of information and communication technologies for environmental sustainability - a prospective simulation study. <i>Environmental Modelling and Software, 21</i>(11), 1618-1629.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<span style="font-size: 11pt;">Nisbet, E. K. L., & Gick, M. L. (2008). Can health psychology help the planet? applying theory and models of health behaviour to environmental actions. <i>Canadian Psychology/Psychologie canadienne, 49</i>(4), 296-303.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<span style="font-size: 11pt;">World Commission on Environment and Development. (1987). <i>Our common future</i>. Oxford, UK: Oxford University Press.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; line-height: 11.75pt; margin: 0cm 0cm 0.0001pt;">
<span style="font-size: 11pt;">Zelenika, I., & Pearce, J. M. (2013). The internet and other ICTs as tools and catalysts for sustainable development: innovation for 21st century. <i>Information Development, 29</i>(3), 217-232.<o:p></o:p></span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; margin: 0cm 0cm 0.0001pt;">
<br /></div>
</div>
Sofia Ouhbihttp://www.blogger.com/profile/08193182574260178988noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-17823726001007025262019-04-01T03:18:00.000-07:002019-04-01T03:18:38.603-07:00Designing for E-commerce User-Experience in Complex Scenarios<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<div style="text-align: left;">
<span style="font-family: "georgia" , "times new roman" , serif;"><b>By:</b> </span><span style="font-family: "georgia" , "times new roman" , serif;">Catherine Hills </span><span style="font-family: "georgia" , "times new roman" , serif;"><span style="background: white;"><i>(<span style="color: blue;"><a href="https://twitter.com/daughterofbev" target="_blank">@daughterofbev</a></span>) </i></span></span></div>
<div style="text-align: left;">
<span style="font-family: "georgia" , "times new roman" , serif;"><b>Associate Editor:</b></span><span style="font-family: "georgia" , "times new roman" , serif;"> Muneera Bano </span><i><span style="font-family: "georgia" , "times new roman" , serif;"><span style="background: white;">(</span></span><span style="font-family: "georgia" , "times new roman" , serif;"><u><span style="background: white;"><span style="color: blue;"><a href="https://twitter.com/DrMuneeraBano" target="_blank">@DrMuneeraBano</a></span><span id="goog_1166373174"></span><a href="https://www.blogger.com/"></a><span id="goog_1166373175"></span></span></u></span><span style="font-family: "georgia" , "times new roman" , serif;"><span style="background: white;">)</span></span></i></div>
</div>
<div class="MsoNormal">
<br />
Designing ‘good’ e-commerce and m-commerce usability and user-experience is even more important than before. Issues such as trust, security, service quality, as well as website and mobile application quality continue to be critical and have an impact on how consumers feel about purchasing in digital, non-physical settings.<br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
E-commerce purchases and online shopping transactions are increasingly becoming the norm in consumer shopping behaviour. In mature economies, like Australia and the US, this might seem unsurprising, however, worldwide, 50% internet adoption still means, statistically, <a href="https://www.itu.int/en/ITU-D/Statistics/Pages/stat/default.aspx" target="_blank">half the world’s population does not have access to these technologies</a>. Estimated e-commerce sales are expected to rise substantially worldwide, year on year with increased projected growth <a href="https://www.statista.com/statistics/288487/forecast-of-global-b2c-e-commerce-growt/" target="_blank">predicted beyond 2021</a>. While mobile device usage for e-commerce purchasing is ever more popular, the desktop computer still presents as the most popular device type used for e-commerce transactions and browsing. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Furthermore, if we consider the early adoption of technologies like Alexa or Google Home, voice commands, control and artificial intelligence integrate with visual and non-visual interactions, e-commerce ecosystems and services are further affecting consumers. The way consumers interact with these e-commerce ecosystems will continue to diversify, become more ubiquitous and provide <a href="https://www.gartner.com/en/newsroom/press-releases/2017-02-07-gartner-says-8-billion-connected-things-will-be-in-use-in-2017-up-31-percent-from-2016" target="_blank">persistent challenges for the designers of these user experiences.</a> As the user-experience and engineering communities understand more about e-commerce ecosystems and how they might co-exist with service delivery fulfilment and logistical service strategies further influenced by increased technology adoption and device ubiquity, the terrain for both user-experience designers and consumers will become more complex and unique. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In recent research, the perceptions of designers of e-commerce user experiences were tested for their perceptions of e-commerce experiences in comparison to consumers who were tested with the same questions and responses to these same experiences. The research demonstrated that the differences between what is perceived to be good or bad e-commerce user-experience design between designer-consumers and consumer-consumers have been shown to be quite complementary, when the user role, as the consumer is considered as a primary focus. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This research also demonstrated that there is a little dissimilarity in the expectations of designers in their perception of ‘good’ user-experience of e-commerce user-experiences to those of consumers conveniently sampled in a qualitative study. Most participants regardless of their designer or non-designer background agreed that factors such as error-free flows, low advertising, security, clear information design and representative information of products and services for purchase were highly important in their experience of a ‘good’ e-commerce website. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Key differences between the views of designer-consumers and consumer end-users, who are not involved in the design of e-commerce user-experiences, were demonstrated to be caused by the domain and technical knowledge of individuals in the designer-consumer versus the consumer-end-user groups. These differences were manifested by expressed language in their observations of designers regarding their perceptions and ideas of good and bad e-commerce experiences. In addition to the domain and professional knowledge of the people we spoke to, domain-specific biases expressed by designer-consumers in their responses to e-commerce user-experiences were detected via their increased technical knowledge, informing the researchers that they had more cutting-edge and technology-specific expectations of functionality than the needs and opinions expressed by the consumer-end-user participants. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In addition to these aforementioned considerations, the research also considered that as user-experience designers and researchers, the design of the user-experience must be accessible and inclusive. As the globalisation of e-commerce continues, how might issues such as diversity, gender and culture be addressed in the way we design these shopping interfaces? Moreover, as designers and engineers of e-commerce user-experiences, how might we provide user-experiences that cater for users of diverse backgrounds, networked access as well as devices that are broadly reliant on the socio-economic circumstances of our users? <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Given website and service quality frameworks were considered important in the collection of data in this research and the analysis of the findings, it was of curiosity to the researchers as to how gender, culture and personality might be considered in relation to these quality dimensions. Given we had a limited sample size with a small population of participants located in Melbourne, Australia, we were still able to consider data collected from a broad range of ages, ethnicities and both male and female participants. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A limitation to the data collection was the binary sampling of participant genders and to be truly representative, a wider diversity of gender participation would be required. Additionally, in order to fully analyse the differences between countries, a wider data collection is required. Responses relating to gender in this research were broadly stereotyped occasionally amusing and sometimes biased, but not significant enough to draw conclusions and would require a further, focused phase of inquiry. Overarchingly this research indicated that e-commerce is still a widening terrain and as users adapt further to new technologies, we must consider service and user-experience conditions with fresh eyes and attention to the basic needs of consumer end-users.</div>
<span style="font-family: inherit;"> </span> <span style="font-family: inherit;"><i><span style="background: white;"><br /></span></i></span> <span style="font-family: inherit;"></span><br />
<div class="MsoNormal">
<span style="font-family: inherit;"><br /></span></div>
<span style="font-family: inherit;"><i style="font-family: inherit;"><span style="background: white;"></span></i></span></div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0tag:blogger.com,1999:blog-8509343272562195687.post-61474897470478055102019-03-05T05:27:00.000-08:002019-03-28T01:27:05.101-07:00What should practitioners know about user involvement in software development?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: left;">
<div class="MsoNormal">
<div style="text-align: left;">
<span style="font-family: inherit;"><b><span style="font-size: 13.5pt;">By:</span></b><span style="font-size: 13.5pt;"> Didar Zowghi</span><i><span style="background: white; font-size: 13.5pt;">, </span></i><span style="font-size: 13.5pt;">Muneera Bano <i><span style="background: white; font-weight: normal;">(</span></i></span></span><span style="font-weight: normal;"><span style="background: white; font-size: 13.5pt;"><span style="color: blue;"><a href="https://twitter.com/DidarZowghi" style="font-style: italic;"><span style="color: blue;">@DidarZowghi</span></a> </span></span><i style="font-family: inherit;"><u><span style="background: white; font-size: 13.5pt;"><a href="https://twitter.com/DrMuneeraBano"><span style="color: blue;">@DrMuneeraBano</span></a></span></u></i><i style="font-family: inherit;"><span style="background: white; font-size: 13.5pt;">) </span></i></span><br />
<span style="font-family: inherit;"><b><span style="font-size: 13.5pt;">Associate Editor:</span></b><span style="font-size: 13.5pt;"> Muneera Bano <i><span style="background: white; font-weight: normal;">(</span></i></span><span style="font-weight: normal;"><i><u><span style="background: white; font-size: 13.5pt;"><a href="https://twitter.com/DrMuneeraBano"><span style="color: blue;">@DrMuneeraBano</span></a></span></u></i><i><span style="background: white; font-size: 13.5pt;">)</span></i></span></span></div>
</div>
<div class="MsoNormal">
<span style="font-size: 13.5pt;"><span style="font-family: inherit;"><br /></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="background: rgb(252 , 252 , 252); color: #333333; font-size: 13.5pt; letter-spacing: 0.1pt;">In the </span><u><span style="background: rgb(252, 252, 252); font-size: 13.5pt; letter-spacing: 0.1pt;"><a href="https://dl.acm.org/citation.cfm?id=67937" target="_blank"><span style="color: blue;">neo-humanist approach</span></a></span></u><span style="background: rgb(252 , 252 , 252); color: #333333; font-size: 13.5pt; letter-spacing: 0.1pt;">, software is designed to support and improve the working environment of its intended users. </span><span style="font-size: 13.5pt;">In practice, this means involving them in the development process and not to treat them as mere </span><u><span style="font-size: 13.5pt;"><a href="https://ieeexplore.ieee.org/document/6118890" target="_blank"><span style="color: blue;">consumers of the software</span></a></span></u><span style="font-size: 13.5pt;">. <u1:p></u1:p><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: 13.5pt;"><span style="font-family: inherit;">But is it really important to involve users in software development? To what extent, and at what stages of software development, should they participate? How much power should the users be given in software development decision making? These questions have been asked by researchers and practitioners for decades and together with many related subjects, they have been the topic of a great deal of research. <u1:p></u1:p><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span lang="EN-US" style="font-size: 13.5pt;">Users’ involvement (UI) during software development has been claimed to link to users’ satisfaction with the resulting system, that in turn leads to the assertion of system success. However, much of the empirical evidence to date shows that this connection between UI and system success is not ubiquitous. </span><span style="font-size: 13.5pt;">Although </span><span lang="EN-US" style="font-size: 13.5pt;">much of research in this area has revealed that involving users in software development contributes positively to system success, it is also been observed that UI is indeed a double-edged sword and can equally </span><u><span lang="EN-US" style="font-size: 13.5pt;"><a href="https://www.sciencedirect.com/science/article/pii/S0950584914001505" target="_blank"><span style="color: blue;">create problems rather than benefits</span></a></span></u><span lang="EN-US" style="font-size: 13.5pt;">.</span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span lang="EN-US" style="font-size: 13.5pt;">In theory, <i><u>User</u></i><u>s’</u> <i><u>involvement</u></i> in <i><u>software development</u></i> and <i><u>system success</u></i>’ is a complex combination of four different concepts that have been studied and analyzed separately and in combination. Over five decades of this investigation enormous amount of debate and disagreement has been published both in software engineering and information systems research literature. </span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span lang="EN-US" style="font-size: 13.5pt;">Like others, we have been curious about so much interest and conflicting results on the topic of users’ involvement in software development. In the last 6 years, we have conducted empirical longitudinal studies to explore: what has been reported in </span><u><span lang="EN-US" style="font-size: 13.5pt;"><a href="https://www.sciencedirect.com/science/article/pii/S0950584914001505" target="_blank"><span style="color: blue;">research literature</span></a></span></u><span lang="EN-US" style="font-size: 13.5pt;">? what are the problems and </span><u><span lang="EN-US" style="font-size: 13.5pt;"><a href="https://dl.acm.org/citation.cfm?id=2745810" target="_blank"><span style="color: blue;">challenges of UI</span></a></span></u><span lang="EN-US" style="font-size: 13.5pt;">? how does </span><u><span lang="EN-US" style="font-size: 13.5pt;"><a href="https://link.springer.com/article/10.1007/s10664-016-9465-1" target="_blank"><span style="color: blue;">users’ satisfaction with their involvement</span></a></span></u><span lang="EN-US" style="font-size: 13.5pt;"> evolve? and what useful theories could be developed about the link between </span><u><span lang="EN-US" style="font-size: 13.5pt;"><a href="https://link.springer.com/article/10.1007/s10664-016-9465-1" target="_blank"><span style="color: blue;">UI and system success</span></a></span></u><span lang="EN-US" style="font-size: 13.5pt;">?. Furthermore, we have been wondering about what impact has Agile software development had on addressing the problems and challenges of UI. So, we also explored the </span><u><span lang="EN-US" style="font-size: 13.5pt;"><a href="https://dl.acm.org/citation.cfm?id=3084251" target="_blank"><span style="color: blue;">alignment of stakeholder Expectations</span></a></span></u><span lang="EN-US" style="font-size: 13.5pt;"><span style="color: blue;"> </span>about UI in agile development. Finally, being convinced that UI is clearly a multi-faceted and communication rich phenomenon, we conducted a case study of organizational </span><u><span lang="EN-US" style="font-size: 13.5pt;"><a href="https://dl.acm.org/citation.cfm?id=3210477" target="_blank"><span style="color: blue;">power and politics</span></a></span></u><span lang="EN-US" style="font-size: 13.5pt;"> in the context of UI in software development.</span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span lang="EN-US" style="font-size: 13.5pt;">The overall findings from our longitudinal study have resulted in several key observations and the development of a theory. First, we observed that system success is achievable even when there are problems and challenges in involving users. User satisfaction significantly contributes to the system success even when schedule and budget goals are not met. Second, there are additional factors that contribute to the evolution of user satisfaction throughout the project. Users’ satisfaction with their involvement and the resulting system are mutually constituted while the level of user satisfaction evolves throughout the stages of the development process. Third, organizational and project politics are significant factors often used to exert power and influence in decision-making processes. Communication channels are frequently exploited for political purposes. These contribute to the users’ dissatisfaction with their involvement thus impacting on the project outcome. Fourth, varying degrees of expectation misalignments exist between the development team and users in Agile software development projects.</span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-size: 13.5pt;"><span style="font-family: inherit;">Our findings enabled us to provide <a href="https://ieeexplore.ieee.org/abstract/document/8552628" target="_blank"><span style="color: blue;">useful hints for practitioners</span></a>. Understanding the nature of the problems related to UI helps the project managers to develop appropriate strategies for increasing the effectiveness of user involvement. These management strategies and appropriate level and extent of user representation are essential elements of maintaining an acceptable level of user satisfaction throughout the software development process. When there are multiple teams of stakeholders with different levels of power in decision-making, politics is inevitable and inescapable. Without careful attention, the political aspect of user involvement in software development can contribute to an unsuccessful project.</span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
</div>
</div>
Dr Muneera Banohttp://www.blogger.com/profile/03410364061038611588noreply@blogger.com0