Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural...

16
University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering Göteborg, Sweden, June 2013 Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications Bachelor of Science Thesis in Software Engineering and Management MOZHAN SOLTANI RETTA SHIFERAW SIYOUM

Transcript of Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural...

Page 1: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

University of Gothenburg

Chalmers University of Technology

Department of Computer Science and Engineering

Göteborg, Sweden, June 2013

Evaluating Domain-Driven Architectural Designs and

Non-Functional Architectural Attributes for Windows

Phone 8 Mobile Applications

Bachelor of Science Thesis in Software Engineering and Management

MOZHAN SOLTANI

RETTA SHIFERAW SIYOUM

Page 2: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

The Author grants to Chalmers University of Technology and University of Gothenburg

the non-exclusive right to publish the Work electronically and in a non-commercial

purpose make it accessible on the Internet.

The Author warrants that he/she is the author to the Work, and warrants that the Work

does not contain text, pictures or other material that violates copyright law.

The Author shall, when transferring the rights of the Work to a third party (for example a

publisher or a company), acknowledge the third party about this agreement. If the Author

has signed a copyright agreement with a third party regarding the Work, the Author

warrants hereby that he/she has obtained any necessary permission from this third party to

let Chalmers University of Technology and University of Gothenburg store the Work

electronically and make it accessible on the Internet.

Evaluating Domain-Driven Architectural Designs and Non-Functional

Architectural Attributes for Windows Phone 8 Mobile Applications

© MOZHAN SOLTANI, June 2013.

© RETTA SHIFERAW SIYOUM, June 2013.

Examiner: MICHEL CHAUDRON

University of Gothenburg

Chalmers University of Technology

Department of Computer Science and Engineering

SE-412 96 Göteborg

Sweden

Telephone + 46 (0)31-772 1000

Department of Computer Science and Engineering

Göteborg, Sweden June 2013

Page 3: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

Evaluating Domain-Driven Architectural Designs∗ andNon-Functional Architectural Attributes for Windows

Phone 8 Mobile Applications

Mozhan SoltaniSoftware Engineering and Management

Dept. of Computer Science and EngineeringChalmers University and University of

[email protected]

Retta Shiferaw SiyoumSoftware Engineering and Management

Dept. of Computer Science and EngineeringChalmers University and University of

[email protected]

ABSTRACTMost IT companies are interested in investigating new mo-bile technologies as mobile devices are noticeably prevalentthese days. In this study, we collaborated with Volvo IT toidentify the extent of conformance to domain-driven archi-tectures when developing Windows Phone 8 (WP8) applica-tions, as well as to find out what non-functional attributescan be applied to these applications.

We took the Action Design Research (ADR) strategy to de-velop a purchasing order system prototype and investigatethe applicability of security, performance, and maintainabil-ity to Windows Phone 8 applications. We found that whilethe Model-View-ViewModel (MVVM) pattern brings highmaintainability to WP8 applications, these applications canstill conform to a domain-driven architecture with, at least,the user interface, domain, communication, and service com-ponents, and fulfill high levels of security as well as perfor-mance.

Due to the limited time frame of the study, we did not con-sider other non-functional attributes, such as integrability,robustness, and simplicity, for WP8 applications. Those at-tributes can be investigated in future research.

Categories and Subject DescriptorsD.2.11 [Software Engineering]: Software Architectures—Domain-specific architectures, Patterns, Model View View-Model pattern

∗Domain-driven architecture is an architectural design thatis focused on the core domain and domain logic. In thisarchutecture, the design is based on a model of a domainand the model is a system of abstractions that describescertain aspects of a domain. We will elaborate on domain-driven architectures in section 3, Architectural Designs.

; D.4.6 [Operating Systems]: Security & Protection; D.4.8 [Operating Systems]: Performance

KeywordsWindows Phone 8, Domain-Driven Architecture, Model ViewView-Model Architecture, MVVM

1. INTRODUCTIONIn recent years, mobile devices have become noticeably ubiq-uitous and the number of mobile operating systems has in-creased. Therefore, mobile devices have become a prevalentplatform for business applications. Many companies adoptmobile technologies in order to increase their responsivenessto meet a wider range of customer demands [13, 18, 20, 21].To adopt the mobile technologies, companies need to inves-tigate certain technical aspects so that the new mobile tech-nologies would conform to their standards and principles.For instance, these companies typically have particular de-velopment standards and architectural principles to conformin their software applications in order to be highly consistentand time efficient.

Similar to other IT companies, Volvo Group IT Governancepromotes a software architectural framework that consistsof two parts:

• A generic domain-driven architectural design calledVolvo Group Target Architecture (VGTA)

• A set of non-functional attributes, including security,performance, and maintainability

Due to the generic structure of this framework all the ap-plications at Volvo Group are supposed to conform to it,regardless of the domain or platform they are intended for.Therefore, it is essential to realize the extent to which newmobile technologies can conform to this framework.

In this study together with Volvo IT, as the industrial part-ner of the research, we intend to find out the extent ofconforming to domain-driven architectural frameworks whiledeveloping Windows Phone 81 applications. We also intend

1Windows Phone 8 (WP8) is the second generation of the

1

Page 4: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

to identify the non-functional attributes that can be appliedto these applications. Therefore, we ask the following re-search questions:

1. To what extent is it feasible to conform to a domain-driven architectural framework, which includes the userinterface, domain, communication, and service compo-nents, while developing a Windows Phone 8 applica-tion?

2. What non-functional attributes can be applied to Win-dows Phone 8 applications?

To answer the questions, we took the action design researchstrategy [4, 16] to develop a Windows Phone 8 application,and evaluate it against VGTA. The application conforms tothe MVVM2 architectural pattern and provides the mainfunctionalities of a typical purchasing order system; create,update, read, and delete order.

Due to the limited time frame of the study, we considered asubset of the architectural attributes that were included inthe architectural framework. We looked into the applicabil-ity of security, performance as well as maintainability, andleft the rest for the future studies.

The report is structured as follows: In section 2, we willexplain why and how we followed the action design researchmethodology to develop the prototype and obtain the in-tended knowledge. In section 3, we will present knowledgeabout domain-driven architectures and the Volvo Group ar-chitectural framework, as well as explain the MVVM ar-chitectural pattern and the architectural advantages that itsupports. Research findings will follow, in which we willexplain the architectural design and attributes of the appli-cation prototype as well as the architectural attributes thatMicrosoft supports for Windows Phone 8 applications. Insection 5, we will answer the research questions, and at theend, in section 6 we will provide our conclusions.

2. RESEARCH METHODOLOGYIn the following sections, we motivate the choice of theAction Design Research (ADR) strategy (Section 2.1) andpresent the research process (Section 2.2) that we used, fol-lowing ADR, to frame the research problem, develop thepurchasing order system prototype, and draw the final con-clusions.

2.1 Motivation for ADRTo perform the qualitative evaluations [14] and answer theresearch questions, we found Action Design Research (ADR)[4, 16] to be a suitable strategy through which we could

Windows Phone mobile operating system from Microsoft.It was released in October 2012, and is among the popularmobile platforms nowadays [24].2MVVM is an architectural pattern used in software engi-neering that originated from Microsoft as a specialization ofthe presentation model design pattern [7, 5]. It facilitatesa clear separation of the development of the graphical userinterface from the development of the business logic or backend logic known as the model. This pattern is recommendedfor developing Windows Phone 8 applications.

conduct iterative developments and evaluations, as well ascontribute to a general knowledge about the Windows Phone8 applications. The following two main incentives formedthe basis for choosing ADR:

• ADR requires the researchers to conduct iterative andinseparable building, intervention, and evaluation dur-ing the second stage of the research process. Thisphase leads to gaining an in-depth understanding oforganizational values, expectations, and assumptions.In addition, the researchers can benefit from the iter-ative reshaping practices to validate their findings andincrease the credibility of the study [16].

• ADR requires the researchers to generalize the out-comes of the study, during the fourth stage of the re-search process, and contribute to the knowledge abouta class of field problems, rather than challenges thatare specific to an organization [16].

Figure 1: Stages and Principles of ADR

2.2 Research ProcessFollowing ADR, we took the following four steps: 1) Prob-lem Formulation, 2) Building, Intervention, and Evaluation,3) Reflection and Learning, and 4) Formalization of Learn-ing. We elaborate on these steps in the following sections.

2.2.1 Problem FormulationTypically IT companies expect a large number of requestsfrom their customers with respect to new technologies. There-fore, they are required to investigate the new technologies inorder to stay responsive and fulfil the customer and marketrequirements. The need for this investigation provided theimpetus for the present research.

2

Page 5: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

At the stage of the problem formulation, we collaboratedwith a mentor from Volvo IT to realize the problem scope,frame the research problem, and identify the solution pos-sibilities. This stage drew on two principles: 1) practice-inspired research, which emphasizes on viewing the fieldproblem when it comes to defining the research problem, and2) theory-ingrained artifact, that emphasizes that ensembleartifacts, created and evaluated using ADR, are informed bytheories [4, 16]. Conforming to these principles, we specifiedthe research aims as well as the research questions (presentedearlier in section 1) and formed the initial design theories.The design theories comprised of the following:

• Using the Windows Phone 8 emulator on which wecould debug and run the prototype

• Conforming to the MVVM architectural pattern fordeveloping the prototype

• Implementing the basic functionalities of create order,read order, update order, and delete order in the pro-totype

2.2.2 Building, Intervention, and EvaluationAt this stage, we perceived the formulated problem as wellas the theoretical premises that were adopted in the formerstage and began implementing the application prototype.We used secondary data sources [1] (books and articles onMVVM) to realize the MVVM architectural pattern andfollow it in the prototype. This stage drew on three prin-ciples of 1) reciprocal shaping, 2) mutually influential rolesand 3) authentic and concurrent evaluation, which togetheremphasize the inseparability of building and evaluation inthis strategy [4, 16]. Following these principles, in orderto develop an in-depth understanding of expectations fromVolvo IT and apply them appropriately, we delivered mul-tiple versions of the prototype iteratively. In each iterationwe, together with our mentor from Volvo IT, evaluated theapplication and planned for further reshaping until all fourfunctionalities of create, read, update, and delete order, aswell as communication with a backend for saving and receiv-ing the orders were implemented properly.

2.2.3 Reflection and LearningAs figure 1 illustrates, this stage occurs in parallel with thefirst two former stages. It moves conceptually from buildinga solution to a particular problem to applying that specificknowledge to a broader range of problems [4, 16]. Reflec-tion and learning draws on the guided emergence principlewhich emphasizes that the ensemble artifact reflects boththe preliminary design and its ongoing reshaping. At thisstage, we used secondary data sources about VGTA (offi-cial documents from Volvo IT) to gain an understandingabout specific architectural qualities that it imposes on theapplications. In addition, we studied the architectural at-tributes that Microsoft supports for WP8 applications. Weensured that the contribution to knowledge is identified byconscious reflection on our research questions and designtheories, in terms of MVVM, VGTA, and the associatedarchitectural principles, as well as evaluating the emergingprototype against the reflected knowledge.

2.2.4 Formalization of LearningAt this stage, we used secondary data sources (mainly arti-cles) to gain knowledge about domain-driven architecturalframeworks. We then generalized the study and contributedto the field knowledge about architectural perspectives ofWindows Phone 8 applications. We conducted the general-ization by casting VGTA to a domain-driven architecturalframework and answering the first research question on theextent of conformance to such frameworks when it comesto developing Windows Phone 8 applications. In addition,we answered the second research question on the applicablenon-functional attributes by identifying the architectural at-tributes that we could address in the application prototypeas well as those that Microsoft supports for WP8 applica-tions.

3. ARCHITECTURAL DESIGNS AND AT-TRIBUTES

This section is divided into two main parts. In the firstpart, we explain domain-driven architectures and the VolvoGroup architectural framework, which consists of VGTA asan instance of a domain-driven architectural design as wellas a number of non-functional attributes. In the secondpart, we explain the MVVM architectural pattern and theadvantages that it brings to Windows Phone 8 applications.

3.1 Domain-Driven ArchitectureDomain-driven architectures are used to develop software forcomplex needs and enhance specific domains. In the processof developing these architectural designs, design and devel-opment work together to create a better solution. Technicaland domain experts collaborate in an iterative manner topromote a conceptual model that addresses particular do-main problems. The primary focus of the technical and do-main experts is on the core domain and domain logic. Gooddesign accelerates the development, while feedback from thedevelopment process enhances the design. In this approach,domain is the subject area to which the user applies a soft-ware program, and model is a system of abstractions thatrepresents the target domain and can be used to solve thedomain-related problems [7, 9].

The model is an essential part of designing a domain-drivenarchitecture to deal with the complexity of the project. Allthinking processes about the domain are synthesized in themodel, therefore the model must be communicated to thetechnical and domain experts precisely and completely sothat the collected knowledge is shared among them. Toexpress the domain model, team members should developubiquitous language around it and use diagrams, pictures,use cases, etc to spread the gathered knowledge in the modelappropriately [7, 9].

For a successful design process, it is important that theproject has access to domain experts, and the project teamhas experience and interest in object-oriented design andprogramming. In addition, communication is paramount forthe success of the project when building a domain model. Acore principle in the process of domain-driven design is touse a language based on the model. Since the model is thecommon ground, it is appropriate to use it as the buildingground for this language. This language is ubiquitous and

3

Page 6: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

appears consistently in all forms of the communication. Itwill create the premise for the design team to function well[7, 9].

In the process of building the model, patterns that are com-monly used are referred to as building blocks of the domain-driven design [7, 9]. These patterns include layered archi-tecture, aggregate, service, repository and factory. More-over, typically domain-driven designs include, at least, userinterface, domain, communication, and service componentswhich have their own responsibilities in the software design.

In what follows (Subsection 3.1.1), we will explain the VolvoGroup architectural framework and elaborate on Volvo GroupTarget Architecture (VGTA), which can serve as a genericdomain-driven architectural design for the applications ofVolvo Group. In addition, we outline the architectural prin-ciples that are associated to the non-functional attributes ofthe framework.

3.1.1 Volvo Group Architectural FrameworkVolvo Group IT Governance promotes a software architec-tural framework that consists of a generic domain-drivenarchitectural design as well as a set of non-functional at-tributes3 that includes security, performance, and maintain-ability. In this section, we will explain the architecturaldesign and the components that it embraces, as well asthe architectural principles that are associated to the non-functional attributes of the framework.

3.1.1.1 Volvo Group Target Architecture. The archi-tectural design is called Volvo Group Target Architecture(VGTA) and is comprised of six types of components. Thecomponents are either technical or business-related logicalconstructs and consist of:

• User interface component

• Workflow component

• Domain component

• Gateway component

• Proxy component

• Utility component

In what follows, we explain the responsibilities and commu-nication rules that are defined in VGTA for these compo-nents.

User Interface Component The user interface (UI) com-ponent contains UI presentation and UI workflow function-ality. It uses services provided by the domain and workflowcomponents. Services to be consumed by the user interfaceshould be specifically designed to meet both performanceand usability requirements of the user interface. Therefore,services provided to the user interface should be tailor-made

3Considering the time frame of the study, we decided tofocus on a subset of these attributes which we found themost addresable.

Figure 2: Volvo Group Target Architecture

for this component to avoid a talkative protocol and makethe development process more efficient.

Workflow Component A workflow component is merelyresponsible to coordinate a sequence of actions that areneeded to move a workflow forward. This component spansover multiple domain components to complete a business ac-tion, however it must not contain any business logic itself.The functionality of a workflow component involves callinga number of different services from domain components. Itcan also call services from other workflow components de-pending on the required action to be performed. To maxi-mize scalability and promote simplicity, it is recommendedto use asynchronous messaging when designing a workflowcomponent.

Domain Component A domain component represents aset of business concepts, such as order and customer. The in-ternal information model of a domain component is detailedin a domain model, e.g. an order domain model. Each do-main component owns it’s data by having separate databasesor separate data schemas. Data schemas contain the tablescorresponding to the domain model entities. The databasesand the domain entities can only be reached through theservice facade of the domain component.

It is important that the business logic within a domain com-ponent can change without affecting it’s users. Therefore,the functionalities of a domain component should only bereachable through a service interface. The service inter-face can simply consist of a class interface that hides theinternal behavior of the domain component. The followingsummarizes the rules to consider when designing a domaincomponent:

4

Page 7: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

• Each domain component can only be accessed throughits service interface which hides the domain’s internalstructure.

• The services of a domain component are accessed throughsynchronous calls.

• Transformation of external information models into in-ternal format should not be done in the domain com-ponent, it is the responsibility of gateway and proxycomponents.

• Only the domain component can change it’s own data.

• A domain model shall not directly operate on anotherapplication’s information model.

• Within the same application, no information modeltransformation is required.

Gateway Component Typically in an application only onegateway component is used which is responsible for receiv-ing service calls and events from external sources, such asexternal applications. A gateway component does the nec-essary transformations between the messages received fromexternal sources and the internal services of domain andworkflow components. The information model of externalsources should be isolated from the information models thatare used internally by the domain and workflow componentsin the application.

Proxy Component A proxy component is responsible foraccessing the external services outside of the application.While this component isolates it’s consumers, workflow anddomain components, from the external information model, itshould not contain any business logic. A proxy componentmakes the necessary transformations between the internalinformation concepts and the information concepts of theconsumed external services. The external data models aredata descriptions, e.g. XML declarations, that provide theinformation of how to interpret data from an external appli-cation.

Utility Component The utility component delivers gen-eral functionalities and application-wide services that do notdirectly belong to any domain component within an ap-plication, e.g. security, and log. It can also contain baseclasses, utilities, constants and exceptions that should beshared application-wide and do not fit into any of the othercomponent types. A utility component is a library of genericfunctionalities and should not contain any business logic.

3.1.1.2 Non-functional attributes. Non-functional at-tributes of the Volvo architectural framework address secu-rity, performance, and maintainability. In what follows, weoutline the architectural principles that are associated tothese attributes.

Security

• The platform to keep the sensitive information mustbe secured from malware attacks.

• Applications must be isolated from each other and cannot access the memory used by other applications.

• It should be possible to develop and distribute the ap-plications within an organization privately.

• Confidentiality and integrity of data must be protectedfrom unauthorized data access or unintended informa-tion disclosure.

Performance

• Applications must have the least talkative communi-cations with each other.

• Applications must have optimized memory usage.

• Applications must respond to the user within an ac-ceptable time.

Maintainability

• Applications must contain autonomous components andsupport continuous functional modifications and im-provements.

• Applications must support unit testing by promotingmodularity.

3.2 MVVM Architectural PatternModel-View-ViewModel (MVVM) is a software architecturalpattern that originated from Microsoft as a specialization ofpresentation model design pattern, and is recommended fordeveloping Windows Phone 8 applications [2, 5]. MVVMhelps cleanly separate the business and presentation logic ofthe application from its user interface (UI). This can makethe application easier to test, maintain, and evolve. It canalso greatly improve code re-use opportunities and allow de-velopers and UI designers to more easily collaborate whendeveloping their respective parts of the application [2, 5, 6].Using the MVVM pattern, the UI of the application and theunderlying presentation and business logic is separated intothree separate classes:

• View encapsulates the UI and UI logic. It is a vi-sual element, such as a window, page, user control,or data template that defines the controls contained inthe view as well as their visual layout and styling. Viewis responsible to define the structure and appearanceof what the user sees on the screen. It references theview model through its DataContext property. Thecontrols in the view are bound to the properties andcommands exposed by the view model. The code be-hind the view can define UI logic to implement visualbehavior that is difficult to express in XAML or thatrequires direct references to the specific UI controlsdefined in the view [2, 5, 6].

• ViewModel encapsulates presentation logic and state,as well as relies on the binding system for communi-cating with the view. The view-model takes care of

5

Page 8: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

moving data from the model to the view and commu-nicating user gestures to the model from the view. Ithas no direct reference to the view or any knowledgeabout the view’s specific implementation or type. Theview model implements properties and commands towhich the view can data bind and notifies the view ofany state changes through change notification events.The properties and commands that the view modelprovides define the functionality to be offered by theUI, but the view determines how that functionalityis to be rendered. Typically, there is a one-to many-relationship between the view model and the modelclasses. The view model may choose to expose modelclasses directly to the view, so that controls in the viewcan bind data directly to these classes. In this case, themodel classes will need to be designed to support databinding and the relevant change notification events.The view model is testable independently of the viewand the model [2, 5, 6].

• Model encapsulates the application’s business logicand data. Business logic is defined as any applicationlogic that is concerned with the retrieval and manage-ment of application data and for making sure that anybusiness rules that ensure data consistency and validityare imposed. To maximize re-use opportunities, mod-els should not contain any user task-specific behavioror application logic. Typically, the model representsthe client-side domain model for the application. Itcan define data structures based on the application’sdata model as well as any supporting business and val-idation logic. The model may also include the codeto support data access and caching, though typicallya separate data repository or service is employed forthis [2, 5, 6].

MVVM is largely based on Model View Controller (MVC)and Model View Presenter (MVP) patterns, which werethe two most common architectural styles before MVVMemerged. This pattern addresses some of the limitations ofMVC and MVP and combines some of their strengths [23].In what follows we elaborate on MVC and MVP architec-tural patterns and explain the advantages of using MVVMover them.

3.2.1 Model View ControllerModel View Controller (MVC) is a software architecturepattern which separates the representation of informationfrom the user’s interaction with it [23]. This pattern con-sists of three components:

• View is responsible for displaying data and collectinguser input. The view gets its data from the model in-cluding notifications that data has been updated andneeds to be refreshed. These notifications are imple-mented using an observer pattern. When the user in-teracts with the view through gestures, the view is re-sponsible for collecting those gestures and forwardingthem along to the controller for processing.

• Model contains business entities and the data thatUI displays. The model is responsible for notifying the

Figure 3: Model-View-View Model ArchitecturalPattern

view of changes in state which is generally done withan observer pattern.

• Controller is responsible for taking user input andcommunicating it to the model for processing. Thecontroller typically implements a use case and altersthe model depending on the user actions.

In this pattern, the view can be synchronized with the modelthrough using observers and subscribing to changes in model[23]. As figure 4 shows, the controller does not know any-thing about the view, however the view can switch betweencontrollers and a single controller can be used by multipleviews. This form of coupled relationship among the com-ponents of MVC brings disadvantages to this architecturalstyle. Following MVC,

• the view logic and the view state are both tightly cou-pled in the view, making them difficult to test or share,

• only the code for the model can be re-usable, and

• memory leaks might occur when using .Net events.This is because in .NET, events only support usingstrong references and not weak references. When anobserver object, view, subscribes to an event on a sub-ject object, model, the subject keeps a reference inthe form of a delegate (or function pointer) to the ob-server. In .NET, memory management is handled bythe garbage collector and the garbage collector willnot collect any object as long as another object has astrong reference to it. This means that the view sub-scribing to the model’s events will cause those modelsto hold strong references to the views. These strong

6

Page 9: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

Figure 4: Model View Controller Architectural Pat-tern

references will prevent the garbage collector from col-lecting the views, causing the views to leak memory.

3.2.2 Model View PresenterThe MVP pattern is a derivative of MVC that was engi-neered to facilitate automated unit testing and improve theseparation of concerns in presentation logic [23]. MVP con-sists of three components:

• View, that is the user interface (UI) of the software.program

• Model, that is the actual data that the presenter willrequest and get displayed in the view. It is responsiblefor obtaining the data so it is the one that reads filesor connects to a database.

• Presenter, which is an entity that can manipulatethe model as well as present the data to the view andupdate it.

The goal of using the MVP design pattern is to separatethe responsibilities of the application in such a manner asto make the application code testable and maintainable [23].Moving view state and view logic to the presenter makes itmuch easier to factor logic and code out of the UI layer formore streamlined, and reusable code that is easier to test.

The main difference between MVC and MVP is that, inMVP the presenter refers back to the view while in MVCthe controller does not do so. It is important to note thatthe presenter has no knowledge of the actual UI layer of theapplication. The presenter knows it can talk to an interface,

Figure 5: Model View Presenter Architectural Pat-tern

but it does not know or care what the implementation of thatinterface is [23]. This promotes reuse of presenters betweendisparate UI technologies and makes it easier to mock theviews and run unit tests. However, two shortcomings ofMVP still remain:

• MVP uses a lot of events, and as we discussed forMVC, events can cause memory leaks.

• A lot of code remains untested in the view.

3.2.3 Advantages of MVVMAs we mentioned earlier, MVVM is largely based on MVCand MVP architectural patterns. In comparison with MVCand MVP, MVVM can have a number of advantages, includ-ing:

• Increased testability: Testability is improved as allview logic is now testable from unit tests [2].

• Less code: The amount of code required to managethe view decreases, as the developer no longer has todeal with boilerplate code behind code. This code in-volves a lot of casting and error checking in productionquality code. Less code means fewer bugs, less code tomaintain, and fewer unit tests to write [2].

• Increased decoupling: When using the pure ap-proach, the developer no longer needs to have the viewand mediator (view model, presenter, or controller) beexplicitly aware of each other. The view does havea reference to the view model, however, under pureMVVM, it is not necessary for the view to be aware ofthe type of the view model [2].

7

Page 10: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

• Allows for streamlined development processes:Developers and designers can work independently onthe same application views. This is because of thedecoupling in this pattern and also because the devel-oper can create a view model that exposes the neededdata points and have the view model properties returndesign-time data. This allows designers to work onthe look of the application while the view model andmodel are being built [2].

4. RESEARCH FINDINGSThis section is divided into two main parts. In the firstpart, we explain the prototype in terms of its architecturaldesign and the architectural attributes that it fulfills. In thesecond part, we explain how Microsoft supports security andperformance attributes for Windows Phone 8 applications.

4.1 Purchasing Order System PrototypeA purchasing order system is designed to help manage thepurchasing and receiving of stock for a business, and alsoprevent unauthorized purchases from taking place. To eval-uate the extent of conformance to a model-driven archi-tectural design and identify the applicable architectural at-tributes to a Windows Phone 8 application, we developed aWindows Phone 8 application called Purchasing Order Sys-tem (POS). The POS application provides the functional-ities of create order, read order, update order, and deleteorder, as well as communication with a backend to save andretrieve the data about the created orders. When the ap-plication starts, it communicates to the backend to retrievethe orders that the user might have already saved. The usercan then see the list of orders, update them, or add a newone. To add a new order, the user should specify order date,delivery date, and order status. In addition, each order canbe associated to multiple parts that the user can specify atthe time of creating or updating the order item. To specifythe parts, the user should provide the part name and partquantity either at the time of creating or updating an order.When the user terminates the application, the list of ordersthat he has made will be sent to the backend to be saved.

4.1.1 Prototype ArchitectureTo develop the application, we used the Visual Studio 2012development environment, from Microsoft, which supportsdifferent programming languages such as C, C++, and C#

[17]. We followed the MVVM architectural pattern, dueto the certain architectural advantages that it supports forWindows Phone 8 applications, and separated the applica-tion UI from application logic. We made the application UIin XAML4, using the Microsoft Blend tool, and wrote theapplication logic in C#. In addition, we used the Windows

4Extensible Application Markup Language (XAML) is adeclarative XML-based language created by Microsoft [3].XAML elements map directly to Common Language Run-time object instances, while XAML attributes map to Com-mon Language Runtime properties and events on those ob-jects. XAML files can be created and edited with visual de-sign tools like Microsoft Expression Blend, Microsoft VisualStudio, and the hostable Windows Workflow Foundation vi-sual designer. They can also be created and edited witha standard text editor, a code editor like XAMLPad, or agraphical editor like Vector Architect.

Phone 8 emulator5 to debug and run the application. Theprototype consists of the following components, from theMVVM perspective:

• View: This component is responsible for the applica-tion presentation and contains the seven pages of theprototype. The pages are xaml files that include UIcontrols and are associated to xaml.cs files. Xaml.csfiles are responsible for UI logic as well as the visualbehavior of the controls, and include the code-behindof the pages. In addition, the controls of these pagesare data bound to the properties that the view modelexposes from the model of the application.

Figure 6: The Order List and Create Order Pagesof the POS Application

• ViewModel: This component is responsible for trans-ferring the order data and part data to the pages of theapplication. Using C# code, it implements the INo-tifyPropertyChanging and INotifyPropertyChanged in-terfaces to update the controls of the pages when thedata is changed in the model component. It also com-municates user actions, for creating, reading, updat-ing, and deleting the orders or their associated parts,to the model of the application. Using interfaces, theview model is loosely coupled to the other componentsof the application, therefore, it is simple to unit test,modify, and re-use the code of this component.

5Windows Phone Emulator is a desktop application thatemulates a Windows Phone device [22]. It provides a virtu-alized environment in which one can debug and test Win-dows Phone applications without a physical device. It alsoprovides an isolated environment for application prototypes.

8

Page 11: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

In addition, the view model of the POS prototype in-cludes a separate component, called Order Service.This component includes the services for communi-cating with the backend and uses the HttpClient6 li-brary to send HTTP requests and receive HTTP re-sponses asynchronously. This library supports porta-bility across the Microsoft platforms, therefore, usingthis library adds to the code re-use possibilities of theapplication.

• Model: This component contains the application data,related to the created orders and parts, and is respon-sible for managing this data, using C# code. It usesthe LINQ to SQL7 framework to map the data objectsto SQL relational tables. The model includes two dataschemas, order and part, that define the properties oforder and part entities. The following code snip showspart of the order data schema in which “orderId“ isdefined as a primary key:

namespace SamplePOS . Model{

[ Table (Name = ”Orders ” ) ]pub l i c c l a s s Order :INotifyPropertyChanged ,INoti fyPropertyChanging{

pub l i c Order ( ){

p a r t t s = new EntitySet<Part>(rev =>{

NotifyPropertyChanging ( ”Partt s ” ) ;rev . Order = t h i s ;} ,rev =>{

NotifyPropertyChanging ( ”Partt s ” ) ;rev . Order = n u l l ;}) ;

}

// Define order idpr i v a t e s t r i n g order Id ;[ Column( IsPrimaryKey = true ,DbType = ”nvarchar (20) ” ,CanBeNull = f a l s e ,AutoSync = AutoSync . OnInsert ) ]

pub l i c s t r i n g OrderId{

get { return order Id ; }6HttpClient is a part of .NET Framework 4.5 and WindowsStore apps that provides developers an extremely easy wayto connect with services across the internet including REST-based services [8].7In LINQ to SQL, the data model of a relational database ismapped to an object model expressed in the programminglanguage of the developer. When the application runs, LINQto SQL translates into SQL the language-integrated queriesin the object model and sends them to the database forexecution. When the database returns the results, LINQ toSQL translates them back to objects that the developer canwork with in his own programming language [15].

s e t{

i f ( order Id != value ){

NotifyPropertyChanging ( ”OrderID ” ) ;o rder Id = value ;NotifyPropertyChanged ( ”OrderID ” ) ;}}}

. . .}}

Figure 7: POS Prototype from the MVVM Perspec-tive

4.1.2 Prototype Architectural Attributes

4.1.2.1 Maintainability. As we explained the architec-tural structure of the POS prototype, the view model com-ponent of the prototype uses interfaces for communicating

9

Page 12: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

with the view and model components, and therefore it isloosely coupled with them in terms of data format and logic.This separation makes it simpler to unit test, modify, andre-use the view model as well as the model components, andleads to a high level of maintainability.

4.1.2.2 Performance. Since the Order Service of theview model uses asynchronous HTTP communication withthe backend, the application becomes loosely coupled withthe backend in terms of time and therefore, the availabilityof the backend can have less influence on the performanceof the prototype. However, during the runtime the appli-cation uses a local database to save and retrieve the ordersas well as their associated parts. This also increases theperformance of the prototype as accessing data through thelocal database takes place faster than accessing it throughcommunication with the backend.

In addition, as Microsoft Developer Center recommends [11],the prototype uses JPG images since the JPG decoder ismuch faster than the PNG decoder8. The prototype usesTap and DoubleTap event handlers, whenever the user se-lects an order to update or see the associated parts, anddisplays the list of orders using LongListSelector control.These event handlers and the list control are recommendedin Windows Phone 8 applications for better performance[11].

4.2 Supported Non-Functional Attributes in Win-dows Phone 8

4.2.1 SecurityWindows Phone 8 is designed with a holistic and defense-in-depth approach to security design to help protect againstmalware, data leakage, and other threats [12, 19]. In whatfollows we bring the approaches and techniques that Mi-crosoft has utilized to support a high level of security inWindows Phone 8:

4.2.1.1 System Integrity. Windows Phone 8 employs asecured boot process and code signing to help assure plat-form integrity. Applying these features, only validated soft-ware products would be allowed to execute, therefore, theoperating system will be protected from malware attacks.Using secure boot technology, all boot components are as-signed to digital signatures so that only authorized code canexecute to load the Windows Phone operating system.

The next layer of defense is provided when a boot managercomponent takes over to complete the boot process. Theboot manager requires all code in the operating system, in-cluding drivers and applications, to be signed by Microsoftbefore the device becomes ready and the user can start usingthe phone [12, 19].

4.2.1.2 Chambers and Capabilities. Windows Phoneintroduces a chambered security model to provide the advan-tages of attack surface reduction, and isolation. The cham-

8Windows Phone supports JPG and PNG image formats.

bered model uses isolation to achieve the principle of leastprivilege. Under this principle, each chamber provides anisolation boundary within which a process can run, as wellas a security policy which defines the operating system ca-pabilities that the running process within the chamber cancall [12, 19]. This technique leads to a number of securityadvantages:

• Each application receives only the needed capabilitiesto perform it’s use cases.

• Applications become isolated from each other and cannot access the used memory or stored data of otherapplications.

4.2.1.3 Enterprise Line-of-Business Applications. Or-ganizations may require the possibility to develop and di-rectly distribute their custom applications to employees. WithWindows Phone 8, organizations can register with Microsoftto obtain the tools to develop, package, sign, and distributeapplications to employees. They can use a validated process,without having to submit their applications to the WindowsPhone Store [12, 19].

4.2.1.4 Data Protection. Windows Phone 8 includesseveral features to help protect against unauthorized dataaccess or unintended disclosure. These features follow:

• Phone PIN: Access to a Windows Phone can be con-trolled through a PIN, that users can set through theLock Screen Settings [12, 19]. In addition, additionalsecurity functionalities can be configured using Ex-change ActiveSync (EAS) policy for password length,password complexity or other parameters.

• Remote Wipe: If a Windows Phone becomes lostor stolen, a remote wipe of the device can be done byusing either the Exchange Server Management Consoleor Outlook Web App [12, 19]. In addition, an EASpolicy can be set to wipe a phone after a configurablenumber of unsuccessful PIN attempts.

• Device Encryption: To help keep everything, suchas documents or passwords, safe, Windows Phone 8can be configured to use Bitlocker technology to en-crypt all internal storage, including operating systemand data partitions. When device encryption is turnedon, any file saved to the phone is also encrypted auto-matically. If a PIN-protected Windows Phone is lostor stolen, the combination of device lock and data en-cryption makes it difficult for an unauthorized party toretrieve sensitive information from the phone [12, 19].

• Data Leak Prevention: Windows Phone 8 offersnative support for Information Rights Management(IRM), which allows content creators to assign rightsto Microsoft Office documents or email messages theysend [12, 19]. When IRM is employed, the data inrights-protected documents or email messages is en-crypted so that it can only be viewed by authorized

10

Page 13: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

users. IRM can also be used to limit other rights toa document or message, such as preventing the docu-ment or message from being copied or printed.

4.2.2 Performance

4.2.2.1 Windows Phone 8 Core. Windows Phone 8 isthe first mobile operating system from Microsoft that usesWindows NT kernel 9, which is the same kernel that runsWindows 8. Using the NT kernel, Windows Phone 8 cannow support multi-core CPUs of up to 64 cores, as well as1280x720 and 1280x768 resolutions, in addition to the base800x480 resolution already available on Windows Phone 7[24]. Developers can take advantage of this feature and cre-ate high performance applications in terms of responsivenessand resource usage.

4.2.2.2 Application Performance Considerations. Itis important to consider performance when creating Win-dows Phone 8 applications since it has a limited central pro-cessing unit and graphics processing unit, compared to adesktop or laptop PC [10, 11]. To optimize performanceof apps on Windows Phone 8, several changes were madeto the way that XAML processes graphics and other ob-jects. In what follows, we explain the techniques to considerand tools to use for developing high performance WindowsPhone 8 applications:

• App Monitoring tool: This tool helps developersidentify issues such as slow startup time, slow responsetime to input, and high battery drain.

• EnableRedrawRegions tool: In the page construc-tion, the EnableRedrawRegions property can be set totrue so that a developer can visually see what regionsof the application are being drawn. Developers canuse this feature to performance tune the applications.Using the EnableRedrawRegions tool, when a region iscompletely drawn, it is shaded with a color. The col-ored regions indicate that the CPU and not the GPU isused to perform the drawing. When the CPU is used todraw, it is called software drawing. Software drawingis normal, because everything must be drawn by soft-ware the first time it is displayed, however, developersshould be careful about excessive software drawing.

• Images: There are several considerations for selectingand including proper images for a better performance.

– There are two supported image formats for Win-dows Phone 8: JPG and PNG. In general, theJPG decoder is much faster than the PNG de-coder and should be used for images that are fullyopaque. Images that use transparency should bestored as PNG because JPG does not supporttransparency.

9Windows NT is a family of operating systems producedby Microsoft, the first version of which was released inJuly 1993. It was a powerful high-level-language-based,processor-independent, multiprocessing, multiuser operat-ing system with features comparable to Unix [24].

– In Expression Design, developers can create com-plex visuals and export these visuals as XAMLor as image files. When the visuals are static, thedevelopers should consider storing them as an im-age instead of XAML. In contrast to decoding andrendering an image, XAML can potentially re-quire more processing. Using XAML for a visualrequires parsing the XAML, creating the objectin the visual tree, and rendering the object.

– Due to the limited screen resolution of WindowsPhone, another way to optimize performance isto limit the image size to 2000x2000 pixels, whichis the size limit of images in the Windows Phoneenvironment.

• User Input: User input in Windows Phone includesmanipulation events, gesture events, mouse events, andtouch events. Unless there is a specific need, manip-ulation events and gesture events, Tap, Double Tap,and Hold, are recommended for better performance.

• Progress Controls: It is recommended to use a progressindicator when performing a time-consuming opera-tion to indicate to the user that the application is work-ing. For this purpose, ProgressIndicator and Progress-Bar are the optimized controls that are recommendedto be used.

4.2.2.3 Performance Requirements. Before WindowsPhone 8 applications are published in the Windows PhoneStore, they must meet certain performance requirements setby Microsoft. These requirements include:

• Application launch time: Applications must renderthe first screen within 5 seconds after launch and thenthey must be responsive to the user input within 20seconds.

• Application responsiveness: If an application per-forms an operation and it is unresponsive for more thanthree seconds, then the application must display a vi-sual progress bar or busy indicator.

5. DISCUSSIONThis section is divided into two main parts. In the first part,we map the POS architecture to VGTA and answer the firstresearch question on the extent of conformance to domain-driven architectures when developing Windows Phone 8 ap-plications. In the second part, we consider the architecturalattributes that POS fulfills as well as those that Microsoftsupports for Windows Phone 8 applications, and answer thesecond research question on the applicable architectural at-tributes to Windows Phone 8 applications.

5.1 Extent of Conformance to a Domain-DrivenArchitecture

From the perspective of a domain-driven architecture, thePOS prototype may consist of the following components:

11

Page 14: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

• Presentation Model: contains the view and view-model components, and can be corresponded to theuser interface component of VGTA.

• Domain Model: contains the model component whichincludes the order domain component. The model canalso include a warehouse part which can hold the infor-mation about the stored items. The domain model canbe corresponded to the domain component of VGTA.

• Order Service Proxy: handles the communicationwith the backend to send and receive the order items.The order service proxy can be mapped to the proxycomponent of VGTA.

• Order Service Gateway: could be responsible forproviding services to other applications. Due to thelimited scope of POS, the order service gateway wasnot implemented in the prototype. However, in casethat it is implemented, it can be mapped to the gate-way component of VGTA.

• Utility: could be responsible for general functionali-ties, e.g. providing username and password. Due tothe limited scope of the prototype, the utility compo-nent was not implemented. However, in case it is im-plemented, it can be corresponded to the utility com-ponent of VGTA.

Figure 8: POS Prototype from the VGTA Perspec-tive

POS Prototype VGTAPresentation Model User Interface ComponentDomain Model Domain ComponentOrder Service Proxy Proxy ComponentOrder Service Gateway Gateway ComponentUtility Utility Component

Table 1: Mapping POS prototype to VGTA

As we explained, domain-driven designs use common archi-tectural patterns, such as the layered pattern, and include,at least, the conceptual components of user interface, do-main, communication, and service. We consider VGTA as

a generic domain-driven architecture, in which the commu-nication components are called gateway, and proxy, and theservice component is referred to as utility.

As we pointed in section 3.2, it is recommended to followthe MVVM architectural pattern for developing WindowsPhone 8 applications due to the architectural advantagesthat it supports. Our study shows that following MVVM,it becomes simple to run unit tests, re-use code, as well asmodify the applications, and therefore, the applications willfulfill maintainability to a high extent.

We argue that while it is a right practice to follow theMVVM architectural pattern for developing Windows Phone8 applications, it is feasible to conform to a domain-drivenarchitectural design that includes the user interface, domain,communication, and service conceptual components.

5.2 Applicable Non-Functional Attributes toWindows Phone 8 Applications

Considering the findings of the study, that we presented inthe previous section, we explain how Windows Phone 8 ap-plications can fulfill security, performance, and maintain-ability:

• Security:

– The secured boot process of Windows Phone 8helps the platform the keep the sensitive infor-mation secured from malware attacks.

– The chambered security model leads to isolatedapplications which can not access the memoryand data of each other.

– It is possible to develop and distribute customapplications in organizations by registering to Mi-crosoft and obtaining the required tools.

– The techniques that Microsoft promotes for phonePIN, remote wipe, data encryption and data leakprevention lead to the possibility of protectingdata from unauthorized data access or unintendeddata disclosure.

• Performance:

– Using local databases in Windows Phone 8 appli-cations can lead to less talkative communicationsamong them.

– Memory usage can be optimized in Windows Phone8 applications as these applications can have de-fault caps on the amount of memory, which variesdepending on the type the mobile device.

– The performance requirements on Windows Phone8 applications from Microsoft, the application launchtime and responsiveness requirements, enforce theapplications to render the first screen within 5seconds, respond to the user input within 20 sec-onds, and in case that an operation takes morethan three second to execute, the applicationsmust display a progress indicator. Therefore, aslong as an application is certified and publishedin Windows Phone Store, it is guaranteed that

12

Page 15: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

the application will have proper interaction withusers.

• Maintainability:

– Following the MVVM architectural pattern, thecomponents of Windows Phone 8 applications willbe loosely coupled and separated from each otherin terms of logic. Therefore, they will be au-tonomous and it is possible to fulfill continuousfunctional modifications.

– Following the MVVM architectural pattern leadsto significant separation of concerns and there-fore, it will be simple to re-use code, and run unittests in Windows Phone 8 applications.

Considering the study results and the aforementioned knowl-edge about the supported architectural attributes, we arguethat Windows Phone 8 applications can fulfill security, per-formance, and maintainability to a high extent.

6. CONCLUSIONSIn this study, we collaborated with Volvo IT to identify theextent to which Windows Phone 8 applications can conformto domain-driven architectures, as well as to realize whatnon-functional attributes can be applied to these applica-tions.

We considered a software architectural framework that VolvoGroup IT Governance promotes. This framework consistedof Volvo Group Target Architecture (VGTA) and a set ofnon-functional attributes from which we chose only security,performance, and maintainability to look into, due to thelimited time frame of the study. We developed a purchasingorder system application prototype in which we followed theModel View View-Model (MVVM) architectural pattern be-cause of the non-functional qualities that it supports for theWindows Phone 8 applications. In addition, we looked intothe non-functional qualities that Microsoft has consideredfor Windows Phone 8 applications.

We realized that while it is a right practice to implement theMVVM pattern for Windows Phone 8 applications, these ap-plications can still conform to a domain-driven architecturaldesign such as VGTA that include, at least, user interface,domain, communication, and service components. More-over, we found out that Windows Phone 8 applications canfulfill high security, performance, and maintainability, dueto the significant support that Microsoft provides in termsof security and performance, as well as the significant sepa-ration of concerns that MVVM supports for these applica-tions.

7. ACKNOWLEDGMENTSWe would like to kindly thank Volvo IT and our industrialsupervisor, Johan Westlund, for providing us with this re-search topic and supporting us during the development ofthe POS prototype with invaluable feedbacks. We wouldalso like to thank our university supervisor, Morgan Erics-son, for his constructive guidances and feedbacks throughoutthe research. We cordially thank Jon Kristensen for provid-ing us with the opportunity to use a communicating backendfor the POS prototype.

References[1] W. C. Booth, G. G. Colomb, and J. M. Williams. The

craft of research. University of Chicago Press, Chicago,2008.

[2] B. Brumfield. Developer’s guide to Microsoft Prism 4: building modular MVVM applications using WindowsPresentation Foundation and Microsoft Silverlight. Mi-crosoft, 2011.

[3] M. Dalal and A. Ghoda. XAML Developer Reference.O’ Reilly Media, Inc., 2011.

[4] A. Debbiche, A. Treptow, and Y. He. Towards a genericreference architecture for mobile applications. Unpub-lished bachelor’s thesis, University of Gothenburg, Swe-den.

[5] A. Ghoda. Windows 8 MVVM Patterns Revealed: cov-ers both C# and JavaScript approaches. Apress, 2012.

[6] J. Gossman. Introduction to model/view/view-model pattern for building wpf apps. http:

//blogs.msdn.com/b/johngossman/archive/2005/

10/08/478683.aspx, 31 May 2013.

[7] K. B. Hoffmann. Domain driven design in action. Un-published master’s thesis, University of Kopenhagen.

[8] I. Landwerth. Portable httpclient for windows phone.http://blogs.msdn.com/b/bclteam, 18 May 2013.

[9] F. Marinescu and A. Avram. Domain-Driven Design:Quickly. LULU Press, 2007.

[10] Microsoft. App memory limits for windows phone8. http://msdn.microsoft.com/en-us/library/

windowsphone/develop/jj681682(v=vs.105).aspx,10 May 2013.

[11] Microsoft. App performance consideration for win-dows phone. http://msdn.microsoft.com/en-us/

library/windowsphone/develop/ff967560(v=vs.

105).aspx, 10 May 2013.

[12] Microsoft. Windows Phone 8 : The Right Choice forBusiness. Microsoft Corporation, 2013.

[13] Y. Natchetoi, V. Kaufman, and Y.Karabulut. Service-oriented architecture for mobile collaboration. Inter-national Conference on Collaborative Computing: Net-working, Applications and Worksharing, pages 371–375,2008.

[14] M. Q. Patton. Qualitative Research Evaluation Meth-ods. SAGE Publications, Inc, 2001.

[15] J. Rattz and A. Freeman. Pro LINQ: Language Inte-grated Query in C# 2010. Apress, 2010.

[16] M. K. Sein, O. Henfridsson, S. Purao, M.Rossi, andR.Lindgren. Action design research. Mis Quarterly,35:37–56, 2011.

[17] M. Snell and L. Powers. Microsoft Visual Studio 2012Unleashed. Sams Publishing, 2012.

[18] C. C. Teng and R. Helps. Mobile application develop-ment: Essential new directions for it. Information Tech-nology: New Generations, pages 471–475, April 2010.

13

Page 16: Evaluating Domain-Driven Architectural Designs and … · Evaluating Domain-Driven Architectural Designs and Non-Functional Architectural Attributes for Windows Phone 8 Mobile Applications

[19] P. Thurrott and R. Rivera. Windows 8 Secrets. JohnWiley & Sons, Inc., 2012.

[20] S. TorkAbadi. Towards a generic reference architecturefor mobile applications. Unpublished bachelor’s thesis,University of Gothenburg, Sweden.

[21] B. Unhelkar and S. Murugesan. The enterprise mobileapplications development framework. IT Professional,12:33–39, 2010.

[22] D. Vaughan. Windows Phone 8 Unleashed. Sams Pub-lishing, 2013.

[23] R. Vice and M. S. Siddiqi. MVVM Survival Guide forEnterprise Architectures in Silverlight and WPF. PacktPublishing, 2012.

[24] A. Whitechapel and S. McKenna. Windows Phone 8Development Internals. Microsoft, 2013.

14