Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > Memory/Storage

Designing domain-driven device clouds using Monte Carlo methods

Posted: 10 Nov 2011 ?? ?Print Version ?Bookmark and Share

Keywords:domain-driven design? Monte Carlo method? cloud computing?

Although the proliferation of connected devices may seem like a phenomenon that is confined to the consumer market, it's important to realize that the users of non-consumer embedded systems are themselves also casual users of consumer smartphones and tablets. Because of this, nurses, soldiers, refinery plant engineers, utility services personnel, factory floor workers and users of ambulatory medical equipment have expectations that user interfaces, features, performance, size, display, touch-screen technology and connectivity to cloud services are just as good as the smartphone in their pocket.

Although device clouds provide many benefits (shifts processing and storage costs away from the device, reduced need for in-field repair labor, better diagnostic mechanisms), important questions remain to be answered:
???What are the key design challenges for device clouds and how do we overcome them?
???What types of features are possible with device clouds that were not previously conceivable?
???What do designers, developers, and users ultimately want from a device cloud system?

In this report
??Device clouds
??Domain-driven design
??Monte Carlo methods
??Data visualization

To help answer these questions, let's explore two problem-solving formalisms: domain-driven design and Monte Carlo methods.

Domain-driven design
What are the key design challenges for device clouds and how do we overcome them?

When we think about design challenges for device clouds, a bright engineer might start with mechanics:
???How should we get data off the device and into the cloud?
???How do we do interesting things with the data in the cloud?
???How do we provide rich views of the data across multiple devices?

These are great questions to ask. However, we should be asking ourselves many other classes of questions that explore deeper into the heart of the problem space, putting ourselves into the mind of the user:
???Who is using the device?
???What tasks does the user need to perform?
???When is the user performing the tasks?
???Where is the user when they are using the device?
???Why is the user using the device?
???How does the device help the user in a way they would not otherwise have?

These questions only scratch the surface of designing for high usability, but they get us started in thinking empathetically about how system design decisions affect the experience of the user.

Domain-driven design was first introduced by Eric Evans in his 2003 book Domain-Driven Design: Tackling Complexity in the Heart of Software. DDD is a set of techniques and terms that provide a framework for making design decisions about software systems in complex domains. DDD techniques are:
???Domain. A description of the environment in which the user will use the system. The domain includes the people, the processes, and the tools that users use to accomplish a set of tasks.
???Model. A set of related abstractions that represent the architectural solution to the problem domain. The model will ideally contain objects, behaviors, attributes, relationships, use cases, and both static and dynamic views of each.
???Ubiquitous language. A common language that is developed that helps all stakeholders, including developers and domain experts, connect software to the domain in which it operates. This is a key part of DDD since some domains have slightly different meanings for common words, or have entirely new words. Defining and using an ubiquitous language helps design the system more empathetically and increases the rate of user adoption since the system features and interfaces will closely match the language that is common in their domain.
???Context. The environment in which a term or phrase in the ubiquitous language is used. The context is important to communicate ? to system designers and software engineers how certain terms are used within the context of a task flow.

?First Page?Previous Page 1???2???3???4?Next Page?Last Page

Article Comments - Designing domain-driven device cloud...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top