A software architecture description is a work product that reveals software architecture. An architecture view manifests the system architecture from a specific perspective. In publications presenting original software, it is crucial to introduce the functions implemented by the software and identify its users. The structure and operation of the software should also be depicted. However, many publications contain drawings that often combine content from several views. Therefore, the paper introduces a method for describing software architecture in Use Cases and Logical views of the 1+5 model. The method expresses the architecture of a new software package for real estate sales.
The paper describes an updated and expanded version of the SmarTS package. Testing now additionally encompasses smart contracts that enable the processing of related transaction types. The SmarTSv2 package implements the k+1 test pattern and retains previous functionality. The updated software generates and runs a minimal set of test cases, including smart contracts with multiple verification rule configurations. The use of an abstraction layer in the package structure allows for testing smart contracts from any business field. In the current version, the class structure in the abstraction layer has been simplified, which shortens the method call path during test execution. Additionally, a consistent test execution mechanism has been provided for both types of smart contracts.
Smart contracts control the execution of transactions in blockchain networks. The design mechanisms that ensure the efficient and secure operation of smart contracts and facilitate their reuse are becoming crucial. The package provides an implementation of the CongruenT smart contract pattern for checking multiple transaction types. An explicit declaration of verification rules ensures their reuse in various smart contracts. The package delivers a standard method for verifying transactions in a smart contract. The verification function is implemented in the abstract layer. This way, the software exposes a uniform interface while hiding the business logic of actual smart contracts.
Unmanned platforms are becoming more and more widely used in both civilian and military applications. The flight safety of such aircraft is crucial. Therefore, it becomes necessary to formally model and rigorously test their software. Commencement of an unmanned air vehicle’s (UAV) operation requires it undergoing a certification process, which further heightens the quality requirements. The validation process of the designed system is presented on the example of verifying the correctness of the operational scenario involving the transfer of control over a UAV between two ground control stations (GCSs). The paper introduces the method of designing unmanned aerial vehicles and testing their functionality based on finite-state machines. The architecture description of the system encompasses the use cases view and logical view of the 1+5 architectural views model. The paper concentrates on system requirements and their transformation into unified modeling language (UML) state machine diagrams. The authors present a method of mapping requirements to functions related to flight safety and system dynamics models expressed as communicating extended finite-state machines (CEFSMs). Moreover, the paper shows the rules for testing the correctness of state machine models using methods based on determining flows in directed graphs. It should be emphasized that the paper considers the certification of UAV software components from the system safety viewpoint, which directly affects the airworthiness of the air platform.
The widespread use of smart contracts results in high repeatability of their source code. The solution seems to lay in reusing the verification rules that check the feasibility of logically related transactions. The software allows for developing a smart contract that may process various transaction types. Besides, employing the package in implementing a smart contract eliminates the redundancy of verification rules. The package structure ensures the ability to handle actual smart contracts and transactions at the abstract level. Moreover, the article presents a proposal to standardize the way of designing the transaction verification function in a smart contract.
Recent research shows that the source code of smart contracts is often cloned. The processing of related types of transactions in blockchain networks results in the implementation of many similar smart contracts. The rules verifying transactions are therefore duplicated many times. The article introduces the AdapT v2.0 smart contract design pattern. The design pattern employs a distinct configuration for each transaction type, and verification rule objects are shared among configurations. The redundancy of logical conditions was eliminated at two levels. Firstly, it is possible to combine similar smart contracts into one. Secondly, a configuration in a smart contract reuses verification rule objects at runtime. As a result, only one object is instantiated for each verification rule. It allows for the effective use of operating memory by the smart contract. The article presents the implementation of the pattern using object-oriented and functional programming mechanisms. Applying the pattern ensures the self-adaptability of a smart contract to any number of transaction types. The performance tests were carried out for various numbers of verification rules in a smart contract and a different number of checked transactions. The obtained evaluation time of 10,000,000 transactions is less than 0.25 s.
Test suite reduction methods are a current research topic. In particular, continuous practices and regression testing demand minimizing the number of test cases. Recently, many smart contracts have been deployed in blockchain implementations. Due to their immutability, tests play an even more important role in smart contract development. The SmarTS package implements the k+1 test suite reduction method. The developed software generates and runs a minimal set of test cases for the smart contract. The layered construction of the package ensures the ability to test any smart contract whose implementation follows a specific design pattern.
The study of Japanese fencing and German Longsword Mastercuts based on exact motion measurements in specialist labs is summarized in this work. Based on a streamlined measuring technique, the need for a more thorough study has been suggested that might apply to the observation and evaluation of movement during training in a real-world setting. The requisite data sets and domain knowledge must be available to create motion analysis methods of human sword combat. Such information helps compare several algorithms and techniques, and develop and test new computational methods. In 2020, we created one of the world's first reference databases of fencing actions, which included five master long sword strikes with kinetic, kinematic, and video modalities. We were able to assess these movements and suggest potential study directions thanks to the created methods and algorithms. This paper proposes to extend the presented registration technologies for long swords and swordsmanship to similar combat, such as Japanese Kendo sword fencing.
In an increasing number of software applications, the execution of their functions depends on communication with external systems. Messaging enables the integration of information technology (IT) systems in a loosely-coupled manner. The paper aims to show the Integrated services architectural view and two methods of modeling messaging flows at the service and business levels. Service flows allow for modeling the communication between systems/services at the level of sending messages. In contrast, business flows model the entire course of interaction among cooperating applications. The methods employ an Integration flows diagram, which is a specialized version of the Unified Modeling Language (UML) Activity diagram. In addition, the business process task from the Integrated Processes view defines the context for the business flow. Moreover, the Use Cases view identifies the integration scope within requirements. All those views belong to the 1+5 architectural views model. The paper exerts extensibility mechanisms declared in the UML Profile for Messaging Patterns. Besides, the profile has been augmented with stereotypes for messaging patterns for the Apache Camel framework, stakeholders involved in communication, and up-to-date stereotypes for structural components. The methods were used in the integration design of sending orders and confirmations between the business applications of the brokerage house and the stock exchange.
A smart contract is a pivotal notion in blockchain technology. Distributed applications contain smart contracts verifying the fulfillment of the conditions, which determine the execution of transactions between the blockchain network nodes. Those software-controlled logical conditions are called verification rules. As the number of conditions increases, the complexity of smart contract testing rapidly grows. This paper aims to propose a smart contract testing pattern that significantly limits the needed number of test cases. For evaluation expression with four verification rules, the pattern usage reduces the number of test cases by 68.75% in relation to the full coverage of logical value combinations. With the increase in the number of logical conditions, not only the number of test cases but also their percentage decreases. Starting from seven verification rules in the evaluation expression, the percentage reduction of test cases exceeds 90%. As a result, the cost of preparing and maintaining test case suites may be substantially cut. It should be emphasized that test execution time can be reduced even by 3 orders of magnitude (from seconds to milliseconds). Such an approach is highly important for regression testing, especially when used in continuous software integration, delivery, and deployment approaches.
Ensuring a production-ready state of the application under development is the imminent feature of the Continuous Delivery (CD) approach. In a blockchain network, nodes communicate and store data in a distributed manner. Each node executes the same business application but operates in a distinct execution environment. The literature lacks research focusing on continuous practices for blockchain and Distributed Ledger Technology (DLT). Specifically, it lacks such works with support for both design and deployment. The author has proposed a solution that takes into account the continuous delivery of a business application to diverse deployment environments in the DLT network. As a result, two continuous delivery pipelines have been implemented using the Jenkins automation server. The first pipeline prepares a business application whereas the second one generates complete node deployment packages. As a result, the framework ensures the deployment package in the actual version of the business application with the node-specific up-to-date version of deployment configuration files. The Smart Contract Design Pattern has been used when building a business application. The modeling aspect of blockchain network installation has required using Unified Modeling Language (UML) and the UML Profile for Distributed Ledger Deployment. The refined model-to-code transformation generates deployment configurations for nodes. Both the business application and deployment configurations are stored in the GitHub repositories. For the sake of verification, tests have been conducted for the electricity consumption and supply management system designed for prosumers of renewable energy.
Smart contracts constitute the foundation for blockchain distributed applications. These constructs enable transactions in trustless environments using consensus algorithms and software-controlled verification rules. In the current state of the art, there is a shortage of works on the adaptability of smart contracts, and the re-use of their source code is limited mainly to cloning. The paper discusses the pattern of smart contract design and implementation with the overt declaration of verification rules. The author introduces two advantages of the pattern: Firstly, run-time reconfigurability of the list of smart contract verification rules to adjust for various transaction types. Secondly, the re-use of verification rules between different configurations of the smart contract, and among diverse smart contracts. The paper uses blockchain platform-independent stereotypes from a dedicated Unified Modeling Language (UML) profile for designing smart contracts and verification rules. The implementation of the pattern is developed in object-oriented Java language. The pattern exploits polymorphism and controls inheritance by using sealed classes with permission for specialization only for selected final ones. Thus, the pattern ensures two recently highly desired properties in smart contract design and development: re-use and security. Moreover, the declared verification rules list facilitates test automation and reduces test preparation effort due to the re-use of test classes among smart contract configurations. The pattern usage is illustrated in the example of renewable energy exchange within the prosumers community and amid various communities.
The exchange of information among information technology (IT) systems is inevitable. Service fulfillment often involves sending and receiving messages. The article presents a set of messaging patterns for service-oriented architecture, microservices, and messaging protocols for the Internet of Things. The paper describes selected patterns that are the result of current research work. In addition, patterns introduced in open-source frameworks such as ZeroMQ have also been included. Moreover, the set includes Enterprise Integration Patterns. All considered messaging patterns have been described using the stereotype extensibility mechanism of the Unified Modeling Language (UML), and their complete set has been included in the new UML Profile for Messaging Patterns. The paper also shows the manner of integration flow modeling. In the illustrative examples, both the integration flow modeling diagram and the profile have been used to describe the communication in the context of the Integrated services view of the 1+5 architectural views model. The profile has been designed in the visual paradigm tool and revealed in a public repository for the community.
Service fulfillment for clients increasingly involves cooperation between information technology (IT) systems. Designing such solutions requires an architectural approach that ensures symmetry between the communicating parties. For the design of such systems, the author introduces the 1+5 architectural views model. The model contains three new architectural views. For business process modeling, it ensures the integrated processes view. Integration aspects cover two additional views: integrated services, and contracts. Moreover, new stereotypes and tagged values have been added to the unified modeling language (UML). The author has introduced two profiles: UML profile for integration flows, and UML profile for distributed ledger deployment. Communication between systems requires flows that arrange mediation mechanisms. The paper describes an integration flow diagram that extends a UML activity diagram. In the case of blockchain, the author has proposed the smart contract design pattern. The paper describes three case studies that have employed the model to design various solutions. The 1+5 model has proven to be well suited for designing both centralized integration environments with enterprise service bus (ESB) and distributed blockchain solutions with peer-to-peer (P2P) connections.
This paper discusses an application of motion capture in longsword fencing, a discipline experiencing rising popularity since the 1990s. Historical European Martial Arts alliance focuses on re-enacting the Late Middle Ages and Renaissance fighting styles. To popularize this art, novel research to automatically distinguish selected sword cutting techniques has been conducted. The fencing knowledge required for conducting this research was based on publications and consultation with experts in the field, and recordings. For this research, different movements from Masterstrikes such as Zornhau (Strike of Wrath), Schielhau (Squinting Strike), Zwerchhau (Cross Strike), Krumphau (Crooked Strike), Scheitelhau (Crown Strike) were selected. Motions performed by an adept fencer (acting expert) were used as patterns of correct strikes and compared with the movements of fencing amateurs. The main goal of this research was to measure the precision of movement while performing five different fencing strokes. Each movement was recorded with 39 unique full-body plug-in gait configurations initially designed for medical applications. During the exercise, 16 EMG electrodes configuration was used for the measurement of muscle activity.
Ensuring a production-ready state of the application under development is the immanent feature of the continuous delivery approach. In a blockchain network, nodes communicate, storing data in a decentralized manner. Each node executes the same business application but operates in a distinct execution environment. The literature lacks research, focusing on continuous practices for blockchain and distributed ledger technology. In particular, such works with support for both software development disciplines of design and deployment. Artifacts from considered disciplines have been placed in the 1 + 5 architectural views model. The approach aims to ensure the continuous deployment of containerized blockchain distributed applications. The solution has been divided into two independent components: Delivery and deployment. They interact through Git distributed version control. Dedicated GitHub repositories should store the business application and deployment configurations for nodes. The delivery component has to ensure the deployment package in the actual version of the business application with the node-specific up-to-date version of deployment configuration files. The deployment component is responsible for providing running distributed applications in containers for all blockchain nodes. The approach uses Jenkins and Kubernetes frameworks. For the sake of verification, preliminary tests have been conducted for the Electricity Consumption and Supply Management blockchain-based system for prosumers of renewable energy.
Web services have become a standard way to provide functions of information systems. The number of web services grows rapidly with the increasing popularity of microservices architecture. In consequence, many business processes are executed entirely through web services. Therefore, optimizing the performance of business process execution may bring many benefits. There are many optimization methods in this area. Our systematic literature review aims to introduce available methods to researchers interested in the optimization of business process execution. We queried four databases: ACM, IEEE Xplore, Science Direct, and Springer. Out of 12150 initially found papers, we have selected 128 for the review. We have grouped methods presented in those papers into three stages of business process optimization: Resource Allocation, Service Composition, and Service Scheduling. Service Composition attracts the largest group of researchers with a vast majority of 119 articles in it. Moreover, the most popular are genetic algorithms. In general, researchers mainly propose heuristic methods that optimize business processes during run-time. We see the potential for further exploration at both Resource Allocation and Service Scheduling stages.
The paper presents architectural views model 1+5 which has been proposed for designing integration solutions of collaborating software systems. The author has introduced modeling extensions of Unified Modeling Language (UML) in form of UML profiles. The author has proposed an Integration flow diagram which is special form of UML activity diagram. The diagram arranges mediation mechanisms from UML Profile for Integration Flows into an integration flow. The paper presents transformations of model-to-model and model-to-code types which automate design of integration platform. The 1+5 was successfully applied in Service-Oriented Architecture. The approach reveals its potential in Domain-Driven Design, Micro-services and blockchain solutions.
The Distributed Ledger Technology (DLT) is a peer-to-peer model of sharing data among collaborating parties in a decentralized manner. An example of DLT is a blockchain where data form blocks in an append-only chain. Software architecture description usually comprises multiple views. The paper concentrates on the Deployment view of the DLT solution within the 1+5 architectural views model. The authors have proposed Unified Modeling Language (UML) extensibility mechanisms to describe the needed additional semantic notation to model deployment details. The paper covers both the network and node levels. The proposed stereotypes and tagged values have enriched UML Deployment diagram. We have gathered those modeling elements in dedicated UML Profile for Distributed Ledger Deployment. We have applied the profile to model Deployment view of a renewable energy management system that uses R3 Corda framework. The system records information about inbound and outbound energy to/from renewable energy grid.
Distributed Ledger Technology (DLT) enables data storage in a decentralized manner among collaborating parties. The software architecture of such solutions encompasses models placed in the relevant architectural views. A lot of research is devoted to smart contracts and consensus algorithms, which are realized by distributed applications and can be positioned within the Logical view. However, we see the need to provide modeling support for the Deployment view of distributed ledger solutions. Especially since the chosen DLT framework has a significant impact on implementation and deployment. Besides, consistency between models and configuration deployment scripts should be ensured. So, we have applied Model-Driven Engineering (MDE) that allows on the transformation of models into more detailed models, source code, or tests. We have proposed Unified Modeling Language (UML) stereotypes and tagged values for distributed ledger deployment modeling and placed them in the UML Profile for Distributed Ledger Deployment. We have also designed the UML2Deployment model-to-code transformation for the R3 Corda DLT framework. A UML Deployment model is the source whereas a Gradle Groovy deployment script is the target of the transformation. We have provided the complete solution by incorporating the transformation into the Visual Paradigm modeling tool. Furthermore, we have designed a dedicated plug-in to validate generated deployment scripts. In the paper, we have shown how to design transformation for generating deployment scripts for the R3 Corda DLT framework with the ability to switch to another one.