<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A Tool to Edit and Verify IoT System Architecture Model</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Shinpei</forename><surname>Ogata</surname></persName>
							<email>ogata@cs.shinshu-u.ac.jp</email>
							<affiliation key="aff0">
								<orgName type="institution">Shinshu University</orgName>
								<address>
									<settlement>Nagano</settlement>
									<country key="JP">Japan</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Hiroyuki</forename><surname>Nakagawa</surname></persName>
							<email>nakagawa@ist.osaka-u.ac.jp</email>
							<affiliation key="aff1">
								<orgName type="institution">Osaka University</orgName>
								<address>
									<settlement>Osaka</settlement>
									<country key="JP">Japan</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Yoshitaka</forename><surname>Aoki</surname></persName>
							<affiliation key="aff2">
								<orgName type="institution">Nihon Unisys, Ltd</orgName>
								<address>
									<settlement>Tokyo</settlement>
									<country key="JP">Japan</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Kazuki</forename><surname>Kobayashi</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Shinshu University</orgName>
								<address>
									<settlement>Nagano</settlement>
									<country key="JP">Japan</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Yuko</forename><surname>Fukushima</surname></persName>
							<email>yuko.fukushima@unisys.co.jp</email>
							<affiliation key="aff2">
								<orgName type="institution">Nihon Unisys, Ltd</orgName>
								<address>
									<settlement>Tokyo</settlement>
									<country key="JP">Japan</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Tool to Edit and Verify IoT System Architecture Model</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">0DAA3E7008B4C0AF25D6D7A08607C00F</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T01:14+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>IoT</term>
					<term>Architectural Model</term>
					<term>Logic Programming</term>
					<term>Verification</term>
					<term>Twin Peaks Model</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The spread of IoT (Internet of Things) categorized into a type of cyber-physical system makes future systems larger and more complex than ever. Various components such as cloud services, edges, devices and energy suppliers play important roles when constructing an IoT system. Moreover, components in such systems have various relationships to other components. Hence, a simple and extendable specification notation for grasping such relationships is sought for architectural design of IoT systems. When we design such IoT Systems, effective verification also should be provided so that we can identify critical system faults. We present a tool to edit and verify IoT system architecture models. The tool extends a UML editor to enable easy editing of architectural models, and verifies them using the logic programming language Prolog.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>IoT systems are often developed as large-scale systems because they have to deal with not only cyberspaces but also physical spaces. Cyberspaces contain cloud services storing and utilizing big data, whereas physical spaces contain devices interacting with things outside of the system and equipment supplying energy to other pieces of physical equipment. Therefore, system faults occur frequently in such IoT systems than ones in traditional software centric systems. Developers should comprehend target IoT systems that contain various components and their mixed and complicated relationships.</p><p>The twin peaks model <ref type="bibr" target="#b0">[1]</ref>, <ref type="bibr" target="#b1">[2]</ref> describes a method to develop software requirements and architectures concurrently but separately using incremental development. This model is still efficient when we construct an IoT system. Goal models <ref type="bibr" target="#b2">[3]</ref>, <ref type="bibr" target="#b3">[4]</ref> and use case models <ref type="bibr" target="#b4">[5]</ref> are representative models for requirements analysis. The goal models, such as i* <ref type="bibr" target="#b5">[6]</ref>, can represent actor relationships; the use case models, on the other hand, mainly represent use-case-centric relationships instead of actor relationships. We can analyze intentions and features using goal models and use case models; however, when we design a system architecture, it is difficult to comprehend various relationships between cyber objects and physical objects. In this paper, architectural objects are defined as a super concept of components and actors.. We propose TORTE, which is a method of modeling IoT system architectures. In TORTE, architectural objects, their relationships and their properties are captured in order to model an IoT system architecture. TORTE maps each relationship into a corresponding single layer, and widely captures such intra-and inter-relationships between objects. Each type of relationship has a respective description space called a layer so that the complexity can be mitigated even if many relationships which may be different from each other are defined. A layer is also placed in an architectural view at an early stage of the development conforming to the twin peaks model. We present a novel tool which provides two main features for supporting TORTE:</p><p>• An editor for creating a layered model of an IoT system architecture using six types of architectural objects and relationships. • A verifier for checking the consistency of the model using logic programming. In this paper, we experimentally model an existing farm monitoring system, which is an IoT system, using the tool. The monitoring system has various physical objects such as a camera, solar panel, and battery, and cyber objects such as an original monitoring service and some SNSs (Social Network Services). We demonstrate our tool by applying it to the model of the monitoring system.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. DESIGN MODEL FOR IOT SYSTEM ARCHITECTURES</head><p>Our architectural model consists of a set of six structural diagrams in a variant UML class diagram notation. The model also provides six types of architectural objects (hereafter simply called objects) shown in Table <ref type="table">I</ref> and directed relationships (hereafter simply called relationships) shown in Table <ref type="table">II</ref>.</p><p>Among these objects, energy suppliers do not often appear in general software design, but play an important role when we consider the sustainability and dependability of IoT systems. In particular, when we design an IoT system under unreliable energy suppliers, the amount of energy consumption and the lack of energy should be considered. Therefore, we have captured energy suppliers as energy objects. Figure <ref type="figure" target="#fig_1">1</ref> shows a model example and the tool. The tool is introduced in detail in Section IV. Figure <ref type="figure" target="#fig_1">1</ref>(a) shows an example of layers regarding transmit-data and transmit-energy in the farm monitoring system. A rectangle, i.e. class, represents an object and an arrow, i.e. association, represents a relationship. A string between &lt;&lt; and &gt;&gt;, i.e. stereotype, represents the type of object or relationship.</p><p>An object is defined as an actor or a component of a system under development (SUD). The UML 2.5 specification <ref type="bibr" target="#b4">[5]</ref>   </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>transmit-data</head><p>An object transmits data to another object.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>transmit-energy</head><p>An object transmits energy to another object.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>(a) (b)</head><p>Fig. <ref type="figure" target="#fig_1">1</ref>. A model example and the tool defines an actor as follows: "an actor specifies a role played by a user or any other system that interacts with the subject." That is, actors interact with a SUD from the outside and their capability cannot be changed by the developers of the SUD.</p><p>Meanwhile, components behave as a part of a SUD and their capability can be changed by the developers of the SUD. When use cases and their relationships are given to models, the models have the aspect of a use case diagram <ref type="bibr" target="#b4">[5]</ref>. Hence, the models have an architectural view in the twin peaks model <ref type="bibr" target="#b1">[2]</ref>, <ref type="bibr" target="#b0">[1]</ref> when use case models are assumed to be a requirements view.</p><p>According to existing research <ref type="bibr" target="#b6">[7]</ref>, <ref type="bibr" target="#b7">[8]</ref>, <ref type="bibr" target="#b8">[9]</ref>  This research assumes that architectural elements, i.e. objects and relationships, have common behaviors for each type of element. For instance, the behaviors include interaction protocols when controlling, monitoring or transmitting something. The combinations of such behaviors across different objects should be verified at an early stage of the design phase. Hence, our method employs the logic programming language Prolog for the verification.</p><p>According to the ISO/IEC standard of Prolog <ref type="bibr" target="#b9">[10]</ref>, A program in Prolog consists of many clauses. Each clause is categorized into either a fact or a rule. Fact clauses can be completely generated from model elements in TORTE. Table <ref type="table">III</ref> shows the correspondences between model elements and the resulting fact clauses. Bracketed strings, e.g. [name], represent variables which are replaced with model elements or their properties in the generation. For instance, a camera object categorized as device is transformed into object(camera, device).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Rule clauses in</head><p>Meanwhile, rule clauses pre-defined by TORTE represent common behaviors using model elements and their properties. Listing 1 shows the rule clauses excerpted. For instance, the clause notEnergySupplied(X, Ls) aims to discover whether there is a path in which an edge, device or energy supplier cannot receive energy from any power source. When such a path existed, the objects and relationships in the path are highlighted with red on the transmit-energy layer. In this demonstration, we assume that only these types of objects cannot work without the energy generated in the system. The clause checkDataTransmission(X) aims to discover the edges and devices that cannot transmit any data because of lack of energy. This clause is defined by slightly extending the clause notEnergySupplied(X, Ls). Thus, various clauses can be easily created by reusing existing clauses in accordance with the relationship between layers in order to easily and variously verify the model. Currently, if users want to extend rule clauses, knowledge of Prolog is necessary. Therefore, in future work we plan to establish a method to create a number of beneficial rule clauses in line with an architectural model.</p><p>A complete program can be generated by combining the rule and fact clauses mentioned above. The rule clauses are used for checking whether a certain object can be reached from another object along the relationships between them on the basis of their behaviors. The editor part of the tool provides the following features: (1) matrix-based input forms to the set of architectural objects and to each layer are provided in order to edit object types and to create relationships including their respective types; (2) six class diagrams representing their respective layers can be automatically generated in order to intuitively confirm the result of inputs; (3) a round trip-engineering function is implemented in order to guarantee the consistency between inputs to the editor and the corresponding class diagrams. For instance, an association and its stereotype represent a relationship and its type, which correspond to a cell in a matrix-based input form. When such an association is removed, the corresponding cell is unchecked automatically.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. A TOOL TO EDIT AND VERIFY MODELS</head><p>The verifier part of the tool provides the following features: (1) fact clauses in Prolog can be automatically generated from a model in TORTE in order to verify the model; (2) an input form is provided in order to give a query to the program; (3) the program is executed by using JIProlog <ref type="bibr" target="#b10">[12]</ref>, a Prolog implementation in Java, as a checker component; (4) the execution result can be highlighted on the model in order to give feedback to the developer.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. PRELIMINARY EVALUATION</head><p>As a preliminary evaluation, we applied TORTE to an architectural model of an existing farm monitoring system <ref type="bibr" target="#b11">[13]</ref>, <ref type="bibr" target="#b12">[14]</ref>. As a result, we confirmed that the tool can output expected results in some cases. Fig <ref type="figure">3</ref> shows an example of the model highlighted. A problem with this model is that the charge controller is not connected to the two DC-DC converters on the transmit-data layer. Elements colored in red in Fig <ref type="figure">3</ref> show the edges, devices and energy suppliers whose energy cannot be supplied from any power sources, and the edges and devices that cannot transmit any data because of lack of energy.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VI. CONCLUSION</head><p>This paper presented TORTE, a method of modeling an IoT system architecture on the abstraction level of a use case model, and verifying the model with a logic programming language. A support tool provides an editor part by extending an existing UML editor for constructing architectural models, which describe various relationships and relevant objects in IoT systems. The tool also provides a verifier part by using Prolog. As future work, we plan to add beneficial rules to check on the basis of the failure histories of IoT systems. We subsequently evaluate TORTE by applying it to various largescale systems.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>on IoT system development, relationships have been variously categorized but are different from each other. Thus, an architectural design model should have the flexibility to easily accept new viewpoints, i.e. relationship types. TORTE can easily accept new viewpoints by adding corresponding layers without affecting existing layers. III. MODEL VERIFICATION Fig 2 shows the overview of the model verification process.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig 1 (</head><label>1</label><figDesc>Fig 1(b) shows a tool to edit and verify models created in TORTE. The tool is implemented in Java and as a software plug-in for the UML modeling editor Astah* [11]. Astah* provides a basic editor for UML diagrams, but adding stereotypes to each element is laborious and error-prone work.The editor part of the tool provides the following features: (1) matrix-based input forms to the set of architectural objects and to each layer are provided in order to edit object types and</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>1 / ** 2 *Listing 1 .Fig. 3 .</head><label>213</label><figDesc>Fig. 3. Highlight of an execution result</figDesc><graphic coords="4,55.49,546.60,506.65,149.59" type="bitmap" /></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>ACKNOWLEDGMENT</head><p>This work was supported by JSPS KAKENHI Grant Number JP15K00097 and JP17KT0043, and the Telecommunications Advancement Foundation.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Weaving together requirements and architectures</title>
		<author>
			<persName><forename type="first">B</forename><surname>Nuseibeh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computer</title>
		<imprint>
			<biblScope unit="volume">34</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="115" to="117" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">The twin peaks of requirements and architecture</title>
		<author>
			<persName><forename type="first">J</forename><surname>Cleland-Huang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">S</forename><surname>Hanmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Supakkul</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Mirakhorli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">30</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="24" to="29" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Modeling Strategic Relationships for Process Reengineering</title>
		<author>
			<persName><forename type="first">E</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Giorgini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Maiden</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mylopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Fickas</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011">2011</date>
			<publisher>MIT Press</publisher>
			<biblScope unit="page" from="11" to="152" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Inferring declarative requirements specifications from operational scenarios</title>
		<author>
			<persName><forename type="first">A</forename><surname>Van Lamsweerde</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Willemet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">24</biblScope>
			<biblScope unit="issue">12</biblScope>
			<biblScope unit="page" from="1089" to="1114" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<ptr target="http://www.omg.org/spec/UML/2.5/" />
		<title level="m">Unified modeling language</title>
				<imprint>
			<date type="published" when="2015">2015. 2016-10-04</date>
		</imprint>
		<respStmt>
			<orgName>Object Management Group</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Towards modeling and reasoning support for early-phase requirements engineering</title>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">S K</forename><surname>Yu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 3rd IEEE International Symposium on Requirements Engineering, ser. RE &apos;97</title>
				<meeting>the 3rd IEEE International Symposium on Requirements Engineering, ser. RE &apos;97</meeting>
		<imprint>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page" from="226" to="235" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<ptr target="http://www.iiconsortium.org/IIRA-1-7-ajs.pdf" />
		<title level="m">Industrial internet reference architecture version 1</title>
				<imprint>
			<date type="published" when="2015">2015. 2016-07-27</date>
			<biblScope unit="volume">7</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">The internet of things: A survey</title>
		<author>
			<persName><forename type="first">L</forename><surname>Atzori</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Iera</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Morabito</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computer Networks</title>
		<imprint>
			<biblScope unit="volume">54</biblScope>
			<biblScope unit="issue">15</biblScope>
			<biblScope unit="page" from="2787" to="2805" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">A model-driven development framework for developing sense-compute-control applications</title>
		<author>
			<persName><forename type="first">P</forename><surname>Patel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Morin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Chaudhary</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 1st International Workshop on Modern Software Engineering Methods for Industrial Automation</title>
				<meeting>the 1st International Workshop on Modern Software Engineering Methods for Industrial Automation</meeting>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="52" to="61" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Information technology -Programming languages -Prolog -Part 1: General core</title>
	</analytic>
	<monogr>
		<title level="m">International Organization for Standardization</title>
				<imprint>
			<publisher>Standard</publisher>
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">JIProlog</title>
		<author>
			<persName><forename type="first">U</forename><surname>Chirico</surname></persName>
		</author>
		<ptr target="http://www.jiprolog.com/" />
		<imprint>
			<date type="published" when="2016-11-18">2016-11-18</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Development of hand framing camera for field monitoring</title>
		<author>
			<persName><forename type="first">K</forename><surname>Kobayashi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Saito</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of EFITA-WCCA-CIGR Conference</title>
				<meeting>of EFITA-WCCA-CIGR Conference</meeting>
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Monorail-based monitoring system for multipoint field observation</title>
		<author>
			<persName><forename type="first">K</forename><surname>Kobayashi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Fujikawa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Saito</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2014 International Workshop on Web Intelligence and Smart Sensing</title>
				<meeting>the 2014 International Workshop on Web Intelligence and Smart Sensing</meeting>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page">2</biblScope>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
