This was a view from the conference’s break area — that’s the Mediterranean and Sicily in the distance.
I recently went to Reggio Di Calabria, a city in southern Italy, to present to present a paper I wrote at a workshop / conference. The trip was good, and (predictably, for Southern Italy in August) quite hot.
I spent an afternoon and evening in Rome before taking a train south to Reggio Calabria. While in Rome, I did a little bit of sightseeing and visited the National Gallery of Ancient Art, ate at some local cafes, and tried to nap away the jetlag. Once in Reggio Calabria, I:
Tried, without success, to figure out if I actually could drink the tapwater: no one would say it was unsafe, but also everyone recommended just buying bottled water;
Then tried, with some success, to figure out the meanings of the different types of bottled water, or at least “oligomineral” water;
Visited the National Museum of Magna Graecia, which was way more impressive than I had even hoped for; and
Was totally blown away by the horizon every time I looked at it. The Mediterranean with Sicily in the background consistently looked like a postcard.
The conference I was at also had an organized outing to the town of Scilla, where we walked through the fishing village / district Chianalea and climbed to the top of the ancient Castello Ruffo.
The only other notable event was getting my debit card skimmed at an ATM in Rome on my return trip, although I wouldn’t find out about that for a couple of weeks. Despite that, it was a great trip — I watched a number of really interesting talks, met great people, and of course the food (especially the gelato!) and scenery were just incredible.
Outdoors in Rome
One of Rome's famous "nasoni" or "big noses" -- public fountains that run all the time
The famous Trevi fountain, finished in 1762
The 'Obelisco del Quirinale,' near the Trevi Fountain
A side view of the Colosseum
The Colosseum.
The Fontana dell'Acqua Felice. Wikipedia notes that this is the end of one of the aqueducts that enters Rome.
A stairway in the National Gallery of Ancient Art in Barberini Palace.
National Gallery of Ancient Art
Raphael's 'La Fornarina'
El Greco's 'The Adoration of Shepherds'
Garofalo's 'The Vestal Virgin Claudia Quinta Pulling a Boat with the Statue of Cibele'
A marble bust in the national museum.
Madonna and Child by Bartolo di Fredi
Episodes from the Passion of Christ, by Giovanni Baronzio
A ceiling mural.
Painted Cross, by an unknown Lucchese Painter
Gaul.
Caravaggio's 'Narcissus.' This is one of the few paintings I knew before reading the plaque.
Reggio Di Calabria
This was a view from the conference's break area -- that's the Mediterranean and Sicily in the distance.
Some of the city of Reggio Calabria, viewed from the university.
A panoramic view of the Mediterranean and Sicily, showing why Reggio Calabria is a vacation destination.
Scilla, Italy
A view north from the top of Scilla's Castello Ruffo
The hike up to Castle Ruffo went past many buildings that were built quite close to each other with great views of the Tyrrhenian sea
Looking southwest, immediately below the castle, was a popular beach.
The path to the castle was narrow and steep. It was a hot day, but after sitting inside all week, it was a great hike.
Scilla has a very popular, scenic beach.
Walking up the path, on the opposite side of the sea, were these mountain springs / streams.
National Museum of Magna Graecia
An ancient depiction of (I believe) an Aurochs. Unfortunately, I didn't write down just how ancient,
Ancient pottery, weapons, and jewelry from the burial ground of Grotteria, ca. 730-630 BC.
Being on the Mediterranean, there is a long history of trade and coinage in Reggio Calabria. These are coins from 530-520 BC.
A "Colossal terracotta antefix in the shape of Gorgon's head." from 500-450 BC.
Part of the roof from the Sanctuary of Marasà at the settlement Lokroi Epizephyrioi
This is a "true to life" terracotta model of the Grotta Caruso sanctuary that was found inside the sanctuary.
Pots for a funeral feast from the 300s BC
One of the Riace Bronzes, bronze statues from 450-460.
The other Riace Bronze.
Though the full size bronze statues are the most famous, there are other, smaller bronzes in the same room.
A sign directing travelers in Rome’s Leonardo da Vinci to the international check-in
As computers become more powerful and ubiquitous, software and software-based systems are increasingly relied on for business, governmental, and even personal tasks. While many of these devices and apps simply increase the convenience of our lives, some—known as critical systems—perform business- or life-preserving functionality. As they become more prevalent, securing critical systems from accidental and malicious threats has become both more important and more difficult. In addition to classic safety problems, such as ensuring hardware reliability, protection from natural phenomena, etc., modern critical systems are so interconnected that security threats from malicious adversaries must also be considered. This blog post is adapted from a new paper two colleagues (Eugene Vasserman and John Hatcliff, both at Kansas State University) and I wrote that proposes a theoretical basis for simultaneously analyzing both the safety and security of a critical system.
Why is this an issue now?
One common way of determining the safety of a critical system is to perform what’s called a hazard analysis. There are a number of traditional hazard-analysis techniques; two of the most popular are failure modes and effects analysis (FMEA) and fault tree analysis (FTA). The development of these traditional techniques predates modern levels of interconnectivity, so most versions of the techniques do not explicitly address security concerns. This omission has been a problem in a number of domains ranging from industrial control systems, attacked by Stuxnet; to the smart power grid, which faces a number of challenges; to even personal medical devices that face attacks now that they expose functionality over wireless radios and the Internet.
What’s being done about it?
This rise in security threats has led some researchers to adapt traditional hazard-analysis techniques to include or focus on security-related issues. Christoph Schmittner and his colleagues showed how FMEA can be used for security analysis and Philip Brooke and Richard Paige have demonstrated the use of FTA for secure system design.
But the field of hazard analysis research is moving in other directions as well. In addition to the inclusion or exclusion of security concerns, a second dimension of hazard analysis is the incorporation of systems theory.
Systems-Theoretic Accident Model and Processes (STAMP) – A new causality model (initially presented here) that incorporates systems theory and shifts the focus from preventing safety problems to enforcing safety constraints.
Systems Theoretic Process Analysis (STPA) – A new hazard analysis technique based on STAMP. Note that while STPA did not address directly security concerns in its initial version, Leveson’s student William Young has begun work on a security derivative known as STPA-Sec.
Others are working in this area as well: Friedberg et al. developed their own security-and-safety derivative of Leveson’s technique called STPA-SafeSec. And, as part of my Ph.D. research before I joined the SEI, I created a refinement of STPA that’s focused on hardware- and software-based subsystems called the Systematic Analysis of Faults and Errors (SAFE).
For this paper, our approach differed from previous efforts in that we were not attempting to prescribe an exact series of steps for analysts to follow when analyzing their systems. Rather, we examined the basis of one of the key elements shared by most analysis techniques: their use of guidewords. Guidewords are high-level concepts or terms that guide analysts to consider particular ways that a system can fail. These exist in both safety-analysis techniques—STPA has its Step 1 and Step 2 terms, FMEA has failure modes, and HAZOP is based around finding deviations from design intent using terms like Late and More—and security-analysis techniques (STRIDE is centered around the terms that make up its eponymous acronym). When most techniques were created, though, the guidewords were also created in an ad hoc manner, rather than being directly traceable to existing literature.
Our work showed how SAFE, which is a guideword-agnostic analysis technique, could be used with a set of terms derived from one of the classic adversary models used in security. That is, guidewords can be supplied to SAFE at runtime as parameters (a concept we refer to in the paper as parametricity), rather than being ad hoc and essentially inseparable. The classic security model we used is the one proposed in 1983 by Danny Dolev and Andrew C. Yao that describes the actions an adversary could potentially take if the analyzed system communicates over a non-trusted network. For many systems, even those that do not use the Internet, this is a reasonable assumption: keeping an entire network perfectly secure is often prohibitively hard. What’s more, the attack types that arise from the Dolev-Yao model are so foundational that they can map cleanly (if informally, in this work) to concepts from both system safety and network security. Table 2 shows this mapping:
Table 2: Mapping between system safety, Dolev-Yao, and network security concepts
Table 2: Mapping between system safety, Dolev-Yao, and network security concepts
System Safety
Dolev-Yao
Network Security
None
Read
Violate Privacy
Corrupt Value
Modify Existing
Craft Arbitrary Packets
Late/Dropped Message
Delay/Drop
Increased Latency/Packet Loss
Early Message
Craft and Send
Impersonate, Deny Service
The adversary described by Dolev and Yao’s model controls a compromised component on a network. It can read any message, modify messages before they are received by their intended recipient, delay those messages (possibly indefinitely, effectively dropping the message), and craft/send custom messages to impersonate legitimate users of the network.
Payoffs
We believe that there are a number of benefits to a guideword-based, safety- and security-aware component-focused analysis like SAFE.
Figure 1: Compressing the input space
Merging safety and security—Perhaps most obviously, a safety and security co-analysis like STPA-SafeSec or SAFE benefits from simultaneously considering both aspects in a couple of key ways:
Reduced overhead—Rather than perform separate analyses for safety and security, performing a single co-analysis means less rework. Many basic problems should be discovered by both analysis techniques, and that duplicated effort can mean less time is spent finding more subtle problems.
Fewer problems get missed—As Friedberg et al. discuss, a system’s safety and security properties often depend on and interact with one another; considering them separately can mean these interactions get missed.
Analysis space reduction—A SAFE analysis moves backwards through a system, starting with actuation points (i.e., the components a system uses to affect its environment), and then considers the sources of the inputs to those actuation points. As there are myriad ways inputs to a component can fail, considering them all can be prohibitively hard. Instead, we advocate and explain how classifying inputs—using an effects-focused guideword set like the one derived from Dolev and Yao’s model—can reduce the number of errors to analyze, effectively compressing the analysis space. Figure 1 shows this graphically for a time- and value-sensitive input: either or both the input value and time can be wrong. Rather than focusing on the precise magnitude of the delay or value error, however, simply classifying the input as “too late” or “too high” produces a manageable number of failure cases.
Independence of effects-based analyses—Note that the input failure classifications from Figure 1 say nothing about the cause of the failure. That is, if an input message is delayed by a network failure, or active adversary, or even a problem in a component’s hardware, the result—delayed input—is the same. This means a component can, to some degree, be analyzed independently of the components that produce its input. In other words, regardless of what causes a failure, we can typically guarantee that its effects will manifest in one of the ways contained in our guideword set.
System safety and formal methods—There is an exciting connection between our work and similar work by John Rushby taking place in pure software systems using bounded model checking. At a high level, both techniques allow designers to derive the assumptions that their systems/components rely on for safe operation.
Explicit incorporation of security model—Explicitly incorporating an adversary model has two benefits:
Knowing what to expect—Most obviously, it guides system designers to consider the behaviors that the adversary is allowed to do. That is, since the Dolev-Yao model says an adversary can snoop on messages sent on the network, the need for encryption immediately becomes clear.
Knowing what not to expect—Less obvious, but just as important, is what an adversary model rules out. The Dolev-Yao model, for example, describes a network-based adversary with no direct access to components themselves. Making this explicit means it can be discharged as a formal environmental requirement (i.e., an assumption) such as “physical security for the component must be provided.”
Evaluation
Figure 2: An integrated medical application
In the initial presentation of SAFE, the evaluation was based on an analysis of hazards in a system of interconnected medical devices and governing software. The motivation and details of the distributed medical application aren’t germane to this blog post, but a high-level overview is provided in Figure 2. For this work, we adapted the previous analysis from my dissertation: we selected a single element of the system and repeatedly re-analyzed it using SAFE with different guideword sets derived from a range of sources. These included the following:
Our evaluation was based on the likelihood that an analyst, following the process of SAFE, would detect hazards leading to various design improvements. These possible improvements include
Alarming—The system should be able to issue an alarm to notify a clinician of a problem it cannot independently resolve.
Timeouts—The critical part of the system should stop to enforce minimum message inter-arrival times to prevent message overload.
Timestamps—Messages are time sensitive, so they should be timestamped to prevent late (or early) messages from being acted upon.
Hashed/Signed Messages—Messages should be cryptographically signed and hashed to prevent forgery or modification.
Encrypted Messages—Messages should be encrypted to prevent snooping on potentially sensitive message values.
Of course, none of these design improvements are particularly novel, but this exercise wasn’t intended to come up with clever or unintuitive solutions to subtle problems in the medical system’s design. Rather, we were interested in finding a set of guidewords that would consistently suggest the broadest set of improvements.
Guidewords aren’t used in a vacuum, and hazard analysis isn’t a computerized process. Our evaluation was thus necessarily somewhat subjective—see Table 3 for the full result. We rated whether an analysis would be likely to suggest an improvement (denoted with a “✓”), might suggest the improvement (denoted with a “?”), or would likely not suggest the improvement (denoted with a “✗”). Of course, a particularly skilled or experienced system designer/analyst might come up with the design improvements regardless of the guideword set used; the terms are used only to guide analysts to think about particular classes of errors.
In the next few months, we’ll explore how some of the foundational ideas from this work can integrate with ongoing projects here at the SEI. One promising direction is the integration of hazard/security analysis and semiformal architecture models such as those built in the SEI’s popular Architecture Analysis and Design Language (AADL). Not only does SAFE have an AADL-based implementation, but the SEI has the Architecture-Led Safety Analysis (ALSA) technique. David Gluch, a fellow SEI researcher, and I are looking at how this technique might be adapted to also address security concerns; we expect to produce a technical note here in a few months that describes what we’ve learned so far.
I’m also particularly interested in automating analyses, so that domain experts can most efficiently leverage their personal expertise and not have to learn a lot of computer science/hazard-analysis theory. To that end, I think the links between this SAFE’s style of backwards-chaining analysis and Rushby’s assumption synthesis are particularly promising, and I want to continue exploring overlaps in that area as well.
“This post (“Material”) was originally published as part of the SEI Blog series and is owned by Carnegie Mellon University and used with permission. This Material is provided on an “as-is” “as available” basis without any warranties and solely for your personal viewing and use. By viewing, downloading and/or using this video and related materials, you agree that you have read and agree to CMU’s terms of use (http://www.sei.cmu.edu/legal/index.cfm) for use of this Material.”
After finishing my PhD, I got a job working at the Software Engineering Institute as an “Architecture Researcher.” I’m on the Architecture Led Modeling and Analysis team, where I’m privileged to work with people like Peter Feiler and others on — as the name implies — (software) architecture-centric modeling tools/techniques and analyses.
In some ways, the work will be very similar to what I did in graduate school — safety assurance and hazard analysis techniques are a huge part of the work that the group does, so I’ve been able to hit the ground running. I’m working on other projects as well, of course, but nothing too far from the topics I studied at K-State. As the various projects that I work on become more mature, I’ll post more about them both here and on my research page.
Now that I’ve been here for a year (though it’s gone quickly!) I’ve found that there’s a lot to like about this job:
We’re part of Carnegie Mellon, which is a world-class university with a particularly strong computer science program. Being near that — attending talks, having the opportunity to take classes, etc — is a great opportunity.
There are no teaching responsibilities. I enjoyed the course that I helped teach, and I am definitely interested in teaching more in the future, but really being able to dig into research full time is wonderful.
I’ve grown to really like living in Pittsburgh! I have a walking commute, which is pretty great, and it’s a fun town with a lot going on but it’s not so huge that I feel totally lost. I could say a lot more about Pittsburgh — and I hope to in a future post — but the upshot is that I initially wasn’t sure what to expect, but I’ve come to like it a lot.
One of my dissertation‘s main contributions was a new hazard analysis technique called the “Systematic Analysis of Faults and Errors” or SAFE. Hazard analysis techniques are, as I wrote about in 2014, structured ways of reasoning about and (typically) documenting the ways that things can go wrong in a given system. While traditionally these techniques have focused on safety problems — eg, a part breaking down, or a communication link becoming overloaded — there is a growing recognition that security should be considered as well.
That’s not to say that developers of safety-critical systems hadn’t previously considered security important (although in some frightening cases that was true) but rather that the degree to which safety and security problems can be discovered by the same analysis technique is an active area of investigation. I referenced the idea that this overlap could potentially be addressed by SAFE in the ‘Future Work’ section of my dissertation, and it fit in nicely with some work that was being done at the SEI. As a result, my PhD advisor, one of my committee members and I turned the results of that idea into a new paper that was recently accepted at the 4th International Workshop on Software Assurance (SAW).
The paper has three main ideas:
It introduces a foundational, unified set of error/effect concepts based on Dolev and Yao’s seminal attacker model. These concepts are mapped to both the (network) security domain and the system safety domain, so we believe they can serve as the basis of any analysis technique that addresses the overlap of security and safety concerns.
Their use is demonstrated in SAFE’s Activity 1, which considers how — irrespective of cause — a core set of error/effect concepts can be used to guide analysis of a component’s behavior when things go wrong.
Attacker models (like Dolev and Yao’s) explicitly specify attacker capabilities. We demonstrate how SAFE’s Activity 2, which considers the effects of faults not caused by network-based stimuli, can use these attacker models to parameterize the analysis — making explicit assumptions about attacker/environmental actions that were previously implicit.
The workshop is in Reggio Calabria, Italy, so I’m headed over there at the end of August. I’m really looking forward to the trip, and the chance to talk about this work with other people working in the area.
My dissertation defense (thanks to Dr. Bill Hsu for the photo)
On June 17, I successfully defended my doctoral research. Last week, I received final approval of my dissertation. It feels pretty weird to say it, but I now have a PhD, and am “Dr. Procter.”
I’m finding it hard to summarize the entirety of my grad school experience, so I won’t try. Rather, I’ll say that it was on the whole a very positive, enriching time and what I will miss the most are the people I met and spent time with while I was in Manhattan. I imagine that sounds sort of cheesy, but it’s true: most of the time I spent in my office reading papers or hammering out code or revising a draft has already started to blur together. Conversations with people — in the graduate school or at conferences or just out and about in Manhattan (or Lawrence or Kansas City, where I frequently found myself) remain quite vivid, though.
Another view of the defense (thanks to Dr. Bill Hsu for the photo)
In the big scheme of things, it of course hasn’t been very long: only a couple of months have passed since I was in front of everybody trying to explain what I’ve spent the last 4.5 years doing. I’ll write another post soon about what I’m up to now (preview: I got a job and moved east!), but for now, I’ll just say that while I’m happy to be done, I already finding myself missing a number of things about Manhattan (like Varsity Donuts!)
Delft and the Oude Kerk (Old Church) as viewed from Nieuwe Kerk (New Church)
In July I wrote about a recent paper covering my lab’s recent work with a concept called “Error Type Refinement.” Then, in late September, I got to travel to the city of Delft in the Netherlands and present the work. I presented at the ASSURE workshop, which was co-located with this year’s SAFECOMP conference. The workshop and conference were great — the presentations were really interesting, and I got to meet a lot of people working in the field (many of whom I knew previously as names on papers that I had read!)
I also had a lot of fun exploring Delft — the city is very old, and has a lot of really cool history, including a couple of neat churches — the Nieuwe Kerk (or New Church, though construction actually started in 1396) and the Oude Kerk (or Old Church, which dates to 1246). I also got to see more modern buildings (like the University library, which is a giant cone built into a hillside) as well as very small ones at Madurodam, which is a theme park that has 1:25 scale replicas of famous Dutch buildings, roads, ships and trains.
It was really nice to have nearly everything in the city easily accessible by foot, though I felt like I was always at risk of getting run over by people on bicycles, which was quite a change coming from the US. The canals (and accompanying ducks and geese) around which the sidewalks and streets were laid out were also a very pleasant change from the more mundane Kansas.
All in all, it was a great trip, and I learned a lot — both about safety critical computing, and about the history of the Netherlands. You can check out the photos I took below!
Delft and its University
The Aula Congrescentrum, where my conference was held. It's a pretty impressive looking building, very much in the brutalist style.
The "Senaatszaal" where the actual conference was held.
Delft's university library is a striking modern structure built into a hill. The cone section contains 5 concentric rings of study areas, and the top is a skylight.
The university library, this shows the base of the cone which extends up through the lawn.
A view of the university library from inside -- this shot is "inside" the hill looking out.
Delft's town hall, viewed from the ground.
The Nieuwe Kerk, viewed from the ground (with tents being set up for a cheese festival)
Some of the apartments in Delft are over 500 years old.
A street in Delft's old town
The Nieuwe Kerk at night
Swans, judging me for not giving them food (except the one in the back, who is a bit more pragmatic)
A statue of Hugo Grotius, in front of the Nieuwe Kerk
Where there are canals, there are ducks.
This is the "parking lot" of the Delft train station. There are a number of rows just like this, it's a pretty breathtaking number of bicycles.
This 18th century painting by Johanne Huibert Prins shows Delft's market square, which has had a market every Thursday since 1246.
A map of the world, with considerable unexplored portions in America and Australia
These holes were from the gun of Balthasar Gérard, who assassinated William of Orange at this spot in his house (now known as the Prinsenhof) on July 10, 1584. It was the first assassination where a handgun was used.
This is the Oostpoort, or Eastern Gate, in Delft. It was built near 1400, and is now a private residence.
Nieuwe Kerk — Exterior
A view of the Delft town hall from the highest level of the Nieuwe Kerk's (New Church's) belltower.
Another view of the Delft town hall from the Nieuwe Kerk's belltower, showing more of the city (looking southwest)
Looking North from the belltower of the Nieuwe Kerk (The Hague is shown in the distance)
Delft, as viewed from the Nieuwe Kerk's belltower, while looking Northwest (note the Oude Kerk, or Old Church on the right side)
The Oude Kerk (Old Church) and Delft, as seen from the Nieuwe Kerk's (New Church's) belltower
The Oude Kerk, viewed through one of the extremely narrow arches on the Nieuwe Kerk's belltower
Maria van Jessekerk, as seen from the Nieuwe Kerk's belltower (looking south)
Delft, sky, and the Nieuwe Kerk
The Nieuwe Kerk itself, viewed from its belltower's highest level.
Looking over the Maria van Jessekerk over Delft. TU Delft (Delft University of Technology) is in the background, and Rotterdam is barely visible on the horizon
Stonework showing masonry tools. I found myself greatly appreciative of all the workers and their tools, as the wind gusted and I glanced down at the ground...
Stonework showing masonry tools. I found myself greatly appreciative of all the workers and their tools, as the wind gusted and I glanced down at the ground...
The very steep, very tightly spiraling stairs used to access the belltower. There are 376 steps from ground level to the top (nearly 300 feet!)
Some ironwork, with the Oude Kerk in the background. All the points had (what I assume to be) lightning cabling running off of them.
Some of the larger bells in the Nieuwe Kerk's carillon
Delft's town hall, viewed from one of the Nieuwe Kerk's lower balconies on its belltower
Maria van Jessekerk, viewed from the middle balcony on the Nieuwe Kerk's belltower
One of the large clocks on the tower of the Nieuwe Kerk
Some of the machinery operating the belltower's clock.
Delft and the Oude Kerk (Old Church) as viewed from Nieuwe Kerk (New Church)
Squeezing through these arches was pretty tough at times -- they weren't built for super tall people.
Everything was very narrow -- including the steps, doorways, and balconies themselves
Sky, Delft, and the main portion of the Nieuwe Kerk
A gargoyle overlooking some Delft apartments
Through the towers of the Maria van Jessekerk
A gargoyle overlooking Delft
Delft's town hall, through the stonework of one of the lower balconies on the belltower of the Nieuwe Kerk
The Oude Kerk through stonework on the Nieuwe Kerk's belltower
A nearly full view of Maria van Jessekerk from the belltower of the Nieuwe Kerk
The heavy shutters in front of the Nieuwe Kerk's carillon windows
Roof access in the Nieuwe Kerk. This picture was taken through the window of a door that was (understandably) heavily locked
Nieuwe Kerk — Interior
A view of the church lengthwise, with the tomb of William of Orange in the distance.
The tomb of William of Orange.
The tomb of William of Orange.
The tomb of Hugo Grotius.
The church's large pipe organ.
One of the stained-glass windows in the church
The church had a number of old bibles, like this one from 1730.
Some of the machinery that makes the clock in the Nieuwe Kerk run. It dates to 1662 (when it was probably the first new pendulum-driven tower clock), but was dismantled in 1938 and then restored in 2004.
Some of the machinery operating the belltower's clock.
Artifacts of the church, and a chromed Jesus fish for your car.
Madurodam
Madurodam's river and a number of its structures.
Madurodam is a children's theme park in the Hague that has 1:25 scale replicas of a number of the Netherland's most famous structures.
We even got a tour of their workshop, where they custom build pretty much everything (like that train engine in front of our guide)
Even at 1:25 scale, the size of some of the models is really impressive.
There are also activities for the children (or other guests!) to do. Shown here is the green shipping container a friend and I managed to maneuver mostly onto the cargo ship using a large pneumatic grabber.
They have lots of 1:25 scale models of people walking around as well -- and a 3D scanner that, together with a 3D printer, can make a customized model of yourself. The scanner, shown here, is called the "Fantasitron."
At night the lights of all the structures turn on -- most get harder to photograph, but this train station turned out pretty well.
Oude Kerk
The organ in the Oude Kerk
The grave of Antonie van Leeuwenhoek, the "Father of Microbiology"
A memorial to Antonie van Leeuwenhoek
The grave of the famous painter Johanne Vermeer
The memorial to Maarten Tromp, former supreme commander of the Dutch navy and popular hero.
The tomb of Piet Hein, a Dutch naval officer and privateer
Stained glass in the Oude Kerk
A view of the Oude Kerk from the back of the church (under the organ) looking forward.
Nieuwe Meer in Amsterdam
The ferry coming to pick us up.
The ferry on Nieuwe Meer
The Bosbaan, a rowing lake located in Amsterdamse Bos (Amsterdam Forest)
A view of the Nieuwe Meer lake from the ferry.
The Nieuwe Meer is a small lake in Amsterdam, and when I was there (a Sunday afternoon) there were lots of people out enjoying the beautiful weather.
The fault type hierarchy for timing related errors, extended first for MAP Apps in general, and then for the PCA Interlock App
Last time I wrote about my work, I mentioned that we were using the architectural modeling language AADL to describe a particular type of distributed, compositional medical applications called Medical Application Platform (MAP) apps. One neat aspect of AADL is that the core language — which describes hardware and software architectures — can be extended by language annexes to cover other, related aspects of a system like its behavior (via the creatively-named “Behavior Annex”) or failure-related aspects (via the “Error Modeling” annex or “EM”). The EM has a number of neat features, not the least of which is its error type system.
Briefly, the idea behind the EM is that you can describe problems with your system, like a sensor failing and producing values that are wrong, or a communications channel delaying or dropping a message. These problems, termed “errors” in the EM, are made machine-readable by being described in a type system. The EM allows errors to be related to one another by three refinement mechanisms: extension, renaming, and aggregation — so you can actually create a full type lattice, if you’d like. The EM even comes with a standard set of errors, called the error library.
In a new paper, we looked at using the refinement mechanisms in the context of MAPs to specialize these fault types first by a component’s architectural category — the idea being that there are a finite number of categories in a MAP system: things like software application, network controller, medical device, etc. — and then by a component’s actual implementation. Component implementations, of course, have very concrete faults, because we know the actual message types various components will be sending and receiving. The list of errors produced by this refinement can then help a developer when it comes time to perform a hazard analysis (like FTA, FMEA, or STPA), regardless of which analysis / style (ie, top-down or bottom-up) is being performed.
The paper was accepted to the upcoming ASSURE workshop in Delft, The Netherlands, (collocated with SAFECOMP) so I’ll be headed out there in September to give a talk on it. Hopefully we’ll get some good discussion from the other workshop attendees, plus it’ll be fun to check out the presentations at the main conference, not to mention the city of Delft itself.
My work with medical devices took me to Lausanne, Switzerland last month, and since I was already halfway around the world my advisor and I decided a trip up north to Lübeck, Germany to visit medical device manufacturer Dräger made sense. The work I did there was really cool — in contrast to the conference in Lausanne, where I was the only person talking about medical devices, the Dräger work focused on nothing else. Also, I had a little over an hour for my presentation instead of 12 minutes.
I really enjoyed meeting some people who work in medical device connectivity research at Dräger, and I hope that we can continue to interact in the future. I also really enjoyed exploring Lübeck, which, like Lausanne, had a number of neat historic buildings. Communicating with people was definitely easier in Germany than it was in Switzerland (with the exception of one very insistent fellow in a train station) so while there were still challenges — mostly related to getting around: the mass transit is impressive, but it’s also sort of difficult to understand at first — it was all in all pretty smooth.
I managed to grab another geocache in a really scenic downtown park, eat a ton of marzipan, and get (briefly) addicted to currywurst. I also went to a number of very cool churches, saw the famous city gate (“Holstentor”) and even walk through a puppet museum. You can see some photos of the churches and outdoor areas below!
Lübeck’s Churches
The organ in Lubeck's St. Mary's church
The stages of the construction of St. Mary's Church
A crucifix in a Lubeck church
A marble crucifix in the St. Mary's Church
A triptych from a Lubeck church
A large (~20ft) astronomical clock in Lubeck's St. Mary's Church
Part of a huge astronomical clock in the St. Mary's church
One of a number of sculptures that adorned many of the main columns in Lubeck churches
One of a number of sculptures that adorned many of the main columns in Lubeck churches
A high-relief from St. Mary's church in Lubeck
An incredibly detailed triptych in Lubeck's St. Mary's church
Choir stalls in a Lubeck church
A stained glass window in the macabre chapel section of the St. Mary's Church
A section of a photograph of the St. Mary's "Lübecker Totentanz" (Dance of Death)
A replica of the Gutenberg press, from Lubeck's St. Mary's Church
Some of the churches are still under heavy renovation
A large sculpture at the front of one of Lubeck's churches
A small version of the one of the churches in Lubeck, viewed as you descend from its belltower
A renovated church that is now used as an art gallery / concert hall
Some art on display in a renovated Lubeck Church
Some sort of frightening artwork on display in one of Lubeck's churches
A poster showing the church on fire during the night of March 28, 1942
A poster showing the church after the 1942 bombing
The St. Mary's Church bells, which fell as the church burned after being bombed in WWII. They have been left where they fell as a memorial.
Lübeck’s Old Town
The Lubeck town hall
The Lubeck town hall
A view of Holstentor, the gate to Lubeck
A hastily-taken (people were staring) photograph of a giant Marzipan version of Holstentor
A model of Lubeck in the late middle ages
A model of Lubeck in the late middle ages
Elaborate ship models, shown in the interior of the Holstentor
A view of Holstentor and the Salzspeicher, (or salt storehouses) where Nosferatu was filmed
A statue of Kaiser Wilhelm I, first emperor of Germany
More of the water bordering lubeck's old town, and some fishermen
A view of the Stadtgraben as you enter into the old town section of Lubeck
A section of a footbridge with a large number of locks placed by couples
A (nearly?) life-size statue of Johanne Brahms
A quote from Brahms, and a pretty brutal font choice.
I recently mentioned that a paper I wrote got accepted to MEMOCODE, a conference in Lausanne, Switzerland. Having never been out of the country before, a trip to Europe was really exciting. It was also a little imposing — I would be traveling alone to a place with no knowledge of the local language (in this case, French). Unlike my trip to DC, where I was most anxious about my presentation, for this trip I was actually more anxious about the typically unimportant details — getting from one place to another, ordering food, etc.
I won’t say that those anxieties didn’t turn out to be at least somewhat warranted, the trip was at times quite challenging. At different times, I…
Accidentally ordered a dish served with a raw egg on top
Had to sprint through airports to make connections (in both Heathrow and O’Hare)
Had conversations entirely in French (thanks entirely to a phrasebook app on my phone)
But the benefits definitely outweighed the negatives. The trip was an amazing experience, and the conference went really well — my presentation was unfortunately quite short (I was given only 12 minutes), but it went well and I got some good questions / discussion. I also really enjoyed seeing the sights in the area — the cathedral is amazing, as is the nearby Sauvabelin tower / park / forest (where I even found a geocache!). On top of that, the food (particularly the fondue and the pasta) was delicious, and the local wines were also really good.
All that said, though, I’m happy to be home for a while, and back to business-as-usual. You can check out the pictures I took below!
Montbenon
Lake Geneva, viewed from Montbenon
Lake Geneva, viewed from Montbenon
Lake Geneva, viewed from Montbenon
Lausanne and Lake Geneva, with the Alps
Montbenon greenspace with the Alps in the background
The Montbenon greenspace
The front of the Casino de Montbenon
The Casino de Montbenon
A fountain behind the Casino de Montbenon
The "Palais de Justice de Montbenon"
A WWI memorial at Montbenon
Lausanne Cathedral
The bell tower of the Lausanne Cathedral, viewed from a small adjacent greenspace.
The main entrance to the Lausanne Cathedral
A view of the Lausanne Cathedral from just behind the nave
The main chamber of the Lausanne Cathedral, viewed from the back
A view of the Lausanne Cathedral from one of the seats.
The Lausanne Cathedral's organ
The ambulatory of the Lausanne Cathedral
Stained glass in the Lausanne Cathedral
A stained glass window in the Lausanne Cathedral
Stained glass depicting the flagellation of Christ
Stained glass depicting the tenth station of the cross, the Crucifixion
Stained glass depicting the ninth station of the cross, "Jesus meets the women of Jerusalem"
Stained glass depicting the first station of the cross, Jesus in the Garden of Gethsemane.
Original (1275 AD) choir stalls
Original (1275 AD) choir stalls
Going up the narrow spiral staircase to the top of the belltower...
Looking west over Lausanne and Lake Geneva from the Cathedral bell tower
Looking west over Lausanne and Lake Geneva from the Cathedral bell tower
Looking west over Lausanne and Lake Geneva from the Cathedral bell tower
Lake Geneva and the Alps as seen from Lausanne's Cathedral
Lake Geneva, seen from Lausanne's Cathedral
Lake Geneva and the Alps as seen from Lausanne's Cathedral
Lake Geneva and the Alps as seen from Lausanne's Cathedral
Looking south-east from the Lausanne Cathedral's bell tower over Lake Geneva and the Alps
A view of Lausanne from the top of the Cathedral
A view of Lausanne from the top of the Cathedral
A view of Lausanne from the top of the Cathedral
Looking east from the Lausanne Cathedral's bell tower over Lake Geneva and the Alps
The other end of the cathedral (over the altar) viewed from the bell tower (which is over the back / main entrance of the church.
A detail of the shingling and top of the center spire of the bell tower
One of four towers on the corner of the bell tower.
An angry (or at least upset) monkey chimera from the top of the Lausanne Cathedral
The heart of Lausanne, viewed from the cathedral's bell tower
The heart of Lausanne, viewed from the cathedral's bell tower
A view of Lausanne from the top of the Cathedral
Looking north from Lausanne Cathedral's bell tower
Lausanne and the Alps, viewed from one of the intermediate levels between the ground floor and the top of the belltower
Lausanne viewed from one of the intermediate levels between the ground floor and the top of the belltower
Bells in the Lausanne Cathedral
A bell in the Lausanne Cathedral
The Ancienne Académie, as viewed from the Lausanne Cathedral's bell tower
And the steep walk back down begins...
The steep, low-ceilinged spiral staircase leading to / from the cathedral's bell tower
One of two maps used to build the Lausanne diorama
A model of Lausanne in the 1700s
Domestic cats, a vital part of kitchen history. This was taken in a history museum which traced the area's history back to when it was a northern Roman outpost.
A statue of Jean Daniel Abraham Davel ("Major Davel"), a local patriot
Ouchy
Lake Geneva and the Alps
Lake Geneva and the Alps
Lake Geneva and the Alps
Lake Geneva and the Alps
Lake Geneva and the Alps
Lake Geneva and the Alps
The Musée de l'Élysée, a photography museum
A clock counting down to the 2016 olympics
A clock counting down to the 2018 olympics
The olympic torch
The olympic museum's park, Lake Geneva, and the Alps
An example STPA-style control loop, annotated with the subset of EMV2 and AADL properties from the paper
A few months ago, I wrote about my recent work on defining a subset of the language AADL to specify the architecture of bits of software (apps) that would run on medical application platforms (MAPs). Since then, I’ve been working on how developers can use these semi-formal architectural descriptions to do useful things. The first “useful thing” is integrating hazard analysis annotations with these architectural descriptions — that is, specifying how things could go wrong in the app.
Structured hazard analyses have been performed for over half a century now (some dating back to the late 1940s!) but in some ways are still the same as they were back then, in that they are still unintegrated with the system under analysis — that is, any analysis performed would live in a separate document (often a Word file). In programming terms, this would be like having a system’s documentation be separate from the implementation, which isn’t nearly as useful as techniques like Doxygen or Javadoc, where everything is more tightly integrated.
So, after looking at a number of hazard analysis techniques, I (and others my research lab) settled on the relatively new, systems-focused Systems Theoretic Process Analysis (STPA). From there, we looked at tailoring it to the medical application development process, and how that tailored process could be integrated with the architecture specifications from our previous work. The result of this effort was a paper, which was recently accepted to the 2014 ACM-IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE) in Lausanne, Switzerland. I’m really excited to go and present.
My advisor has described the paper as “incredibly dense” (I blame page limits.) so in the next few months I’ll be expanding it into a whitepaper that will hopefully be much clearer, and will be of use to our research partners in regulatory agencies.