## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|ELE2303

statistics-lab™ 为您的留学生涯保驾护航 在代写嵌入式系统工程设计Embedded System Engineering Design方面已经树立了自己的口碑, 保证靠谱, 高质且原创的统计Statistics代写服务。我们的专家在代写嵌入式系统工程设计Embedded System Engineering Design代写方面经验极为丰富，各种代写嵌入式系统工程设计Embedded System Engineering Design相关的作业也就用不着说。

• Statistical Inference 统计推断
• Statistical Computing 统计计算
• Advanced Probability Theory 高等概率论
• Advanced Mathematical Statistics 高等数理统计学
• (Generalized) Linear Models 广义线性模型
• Statistical Machine Learning 统计机器学习
• Longitudinal Data Analysis 纵向数据分析
• Foundations of Data Science 数据科学基础

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Architecture of a Possible Solution

Due to their extension, it is not possible to show in a single figure all the components plus the timed automata that model their behavior. Therefore, we will first show the complete application architecture (see Fig. 7), while the rest of the timed automata will be progressively introduced.

As shown in Fig. 7, the cruise control is configured as a centralized application, comprising five components. Four of them encapsulate hardware access (Brake_Senson:Velocity_Sensor:_Control_Level, Throttle_Actuator), while the fifth one (Cruise_Control) models the whole control system and orchestrates the rest of the components.

The Cruise_Control component periodically receives messages from the sensor components, and, based on the data they provide and on the system state, calculates the action command and sends it to the Throttle_Actuator component. All the messages exchanged among components are always sent through the appropriate ports, as shown in Fig. 7. The Cruise_Control timed automata comprises three orthogonal regions: Brake_Region,_Control_Level_Region, and Cruise_Control_Region, as shown in Figs. 8 and 9, respectively. This last region comprises the following states:
Initial state. When the driver turns the engine on, the region enters the initial state. The component remains in this state as long as no attempt is made to engage cruise control. In initial state, unlike Crusing_Off state, there is no previously stored cruising speed.
Crusing_Off state. When the driver either engages the level in the Off position (Off_E event) or presses the brake (Brake_On_E event), the cruise control is deactivated.
Accelerating state. When the driver engages the cruise control level in the ACCEL position (Accel_E event), the component enters into the Accelerating state and accelerates automatically, provided that the brake is not pressed (guard Brake_Off state).
Cruising state. When the driver releases the level (Cruise_E event), the current speed is saved as the cruising speed and the component enters the Cruising state, the car speed is automatically maintained at the cruising speed.
Resuming State. When the driver engages the level in the Resume position (Resume_E event), and providing the brake is not pressed, the car automatically accelerates or decelerates to the cruising speed. When the car reaches the desired speed, the region enters Cruising state (Reached_Crusing_E event).

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Conclusions and Future Work

The work described in this chapter is part of a more general approach for the development of component-based application supported by MDA technologies. The described MDA tool-chain hinders the complexity of the development process and automates the generation of both the final application and the analysis models. From our experience with the use of MDA technologies, model transformations are perhaps the most complex MDA artifacts, both in their design and maintenance. The higher the conceptual gap between the source and target abstraction levels, the higher the complexity of the transformation. Therefore, we decided to use a component framework as the target of the model transformations that generate the application code. This way, transformations have only to specialize its hot-spots, not to generate the whole code.

The development approach and tool-chain presented in this paper allow developers to use components as design units and threads an synchronization primitives as analysis units. FraCC is flexible enough to deal with changes in the application concurrency properties without changing the architectural design. By allowing developers to control the number of threads, their timing properties and computational load, he or she can analyze very different configurations before having to redesign the application. As a side effect, the separation between architecture and deployment enables the easy generation and analysis of different deployment strategies, without modifying the application architecture. It also facilitates component reuse, since the same functionality can be executed in different concurrency schemes.

It is also remarkable the way in which FraCC has been developed. The adoption of a pattern-driven approach has greatly facilitated the design of such framework. In addition, the selected patterns have been described like a pattern sequence. The design was iterative, and most of the patterns had to be revisited, leading to many design modifications.

Regarding future work, we are currently working on porting MinFr to non x86based platforms, mainly 32-bits micro-controllers, and developing a reporting tool that presents the user with different deployment alternatives that optimize certain parameters, like number of threads, shared resources, communication bandwidth, etc. In the long term, we would like to integrate more complex analysis tools, like Uppal and Mast, as well as to use a third party component-based framework, being Robocop the most suitable alternative for our necessities. We are also working on generating input models for analysis tools compliant with the UML MARTE profile from instances of the framework.

# 嵌入式系统工程设计代考

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Architecture of a Possible Solution

Cruise_Control 组件定期接收来自传感器组件的消息，并根据它们提供的数据和系统状态，计算动作命令并将其发送到 Throttle_Actuator 组件。组件之间交换的所有消息总是通过适当的端口发送，如图 7 所示。Cruise_Control 时间自动机包括三个正交区域：Brake_Region、_Control_Level_Region 和 Cruise_Control_Region，如图 7 和 7 所示。分别为 8 和 9。最后一个区域包括以下状态：

Crusing_Off 状态。当驾驶员将水平仪置于关闭位置（Off_E 事件）或踩下制动器（Brake_On_E 事件）时，巡航控制将停用。

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Conclusions and Future Work

FraCC 的开发方式也很引人注目。采用模式驱动的方法极大地促进了此类框架的设计。此外，所选模式已被描述为模式序列。设计是迭代的，大多数模式必须重新审视，导致许多设计修改。

## 有限元方法代写

tatistics-lab作为专业的留学生服务机构，多年来已为美国、英国、加拿大、澳洲等留学热门地的学生提供专业的学术服务，包括但不限于Essay代写，Assignment代写，Dissertation代写，Report代写，小组作业代写，Proposal代写，Paper代写，Presentation代写，计算机作业代写，论文修改和润色，网课代做，exam代考等等。写作范围涵盖高中，本科，研究生等海外留学全阶段，辐射金融，经济学，会计学，审计学，管理学等全球99%专业科目。写作团队既有专业英语母语作者，也有海外名校硕博留学生，每位写作老师都拥有过硬的语言能力，专业的学科背景和学术写作经验。我们承诺100%原创，100%专业，100%准时，100%满意。

## MATLAB代写

MATLAB 是一种用于技术计算的高性能语言。它将计算、可视化和编程集成在一个易于使用的环境中，其中问题和解决方案以熟悉的数学符号表示。典型用途包括：数学和计算算法开发建模、仿真和原型制作数据分析、探索和可视化科学和工程图形应用程序开发，包括图形用户界面构建MATLAB 是一个交互式系统，其基本数据元素是一个不需要维度的数组。这使您可以解决许多技术计算问题，尤其是那些具有矩阵和向量公式的问题，而只需用 C 或 Fortran 等标量非交互式语言编写程序所需的时间的一小部分。MATLAB 名称代表矩阵实验室。MATLAB 最初的编写目的是提供对由 LINPACK 和 EISPACK 项目开发的矩阵软件的轻松访问，这两个项目共同代表了矩阵计算软件的最新技术。MATLAB 经过多年的发展，得到了许多用户的投入。在大学环境中，它是数学、工程和科学入门和高级课程的标准教学工具。在工业领域，MATLAB 是高效研究、开发和分析的首选工具。MATLAB 具有一系列称为工具箱的特定于应用程序的解决方案。对于大多数 MATLAB 用户来说非常重要，工具箱允许您学习应用专业技术。工具箱是 MATLAB 函数（M 文件）的综合集合，可扩展 MATLAB 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|ECE4534

statistics-lab™ 为您的留学生涯保驾护航 在代写嵌入式系统工程设计Embedded System Engineering Design方面已经树立了自己的口碑, 保证靠谱, 高质且原创的统计Statistics代写服务。我们的专家在代写嵌入式系统工程设计Embedded System Engineering Design代写方面经验极为丰富，各种代写嵌入式系统工程设计Embedded System Engineering Design相关的作业也就用不着说。

• Statistical Inference 统计推断
• Statistical Computing 统计计算
• Advanced Probability Theory 高等概率论
• Advanced Mathematical Statistics 高等数理统计学
• (Generalized) Linear Models 广义线性模型
• Statistical Machine Learning 统计机器学习
• Longitudinal Data Analysis 纵向数据分析
• Foundations of Data Science 数据科学基础

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Modeling Primitives for Real-Time Component-Based

Modeling component-based applications with real-time requirements require the definition of several modeling concepts, at different levels of abstractions, as shown in Fig. 1. Firstly, it is necessary to model the building blocks with which to make applications, the components, in such a way that real-time constraints can also be modeled. Secondly, new applications should be built by reusing and composing already defined components. And finally, it is necessary that the supporting run-time platform enables the user to select the number of processes and threads in which the components should be executed. All these concepts are present in the developed modeling language, organized in the following packages:

Component modeling: We adopt the classical definition, where components are units that encapsulate their state and behavior, and which communicate only through their ports. The messages components can exchange are defined and typed by interfaces, which define the services the component requires/provides from/to the rest of the application components. In our approach we model component behavior by means of timed automata. Timed automata, which can be thought of as being finite state-machines with timed events and timed conditions, is a very suited formalism for modeling reactive systems with timing constraints. Component activities, that is, the code executed by a component depending on its current active state, are defined in terms of the services contained in the interfaces. Interface definition, component modeling, timed automata modeling, and activity definition are all performed in isolated models in order to maximize model reuse. We define a final binding model, where activities are linked to timed automata’s states, timed automata are linked to components, and then timed automata’s events and activities are linked to required and provided interfaces, respectively.
Application modeling: An application is a set of components (instances) that are connected through their ports, based on the compatibility of the interfaces required/provided in each end.
Deployment modeling: Components can be executed by different processes, that can assigned to different computational nodes. It is also possible to define the number of threads of every process. This part of the language enables users to decide the number of threads that will execute the component code, as well as the allocation of the computational load to each thread. The deployment model provides great flexibility to the approach, since different concurrency models (number of processes and threads, as well as the allocated computational load) can be defined for the same application without needing to change its architecture. This model is also the input model for generating the analysis file for Cheddar, as explained in Sect. 5.

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Design Drivers and Pattern Language

Considering the previously described modeling elements, it is necessary to provide an execution environment that is consistent with the behavior described in the models. We have designed a component-based framework for which the main architectural drivers are:

AD1 Control over concurrency policy: number of processes and threads, thread spawning (static vs. dynamic policies), scheduling policy (fixed priority schedulers vs. dynamic priority scheduler), etc. Unlike most frameworks, these concurrency issues are very important in order to be later able to perform real-time analysis, and thus the framework should allow users to define them.
AD2 Control over the allocation of activities to threads, that is, control over the computational load assigned to each thread, since we consider the activity associated to a state as the minimum computational unit. The framework allows allocating all the activities to a single thread, allocating every activity to its own thread, or any combination. In any case, the framework ensures that only the activities belonging to active states are executed.
AD3 To avoid “hidden” code, that is, code which execution is outside the developer’s control. The code that manages the framework is treated as “normal” user code, and therefore he can assign it to any thread.
AD4 Control over the communication mechanisms between components (synchronous or asynchronous).
AD5 Control over component distribution in different nodes.
The design and documentation of the framework was carried out using design patterns, which is a common practice in Software Engineering [11]. In order to describe the framework we will use Figs. 2 and 3 . Figure 2 shows the pattern sequence that has been followed in order to meet the architectural drivers mentioned above, while Fig. 3 show the classes that fulfill the roles defined by the selected patterns. At this point, it is worth highlighting that the same patterns applied in a different order would have led to a very different design.

Among the aforementioned drivers, the main one is the ability to define any number of threads and control their computational load (architectural drivers AD1 and AD2). This computational load is mainly determined by the activities associated to the states of the timed automata. In order to achieve this goal, the COMMAND PROCESSOR architectural pattern [10] and its highly coupled COMMAND pattern [18] have been selected, and they were the firsts to be applied in the framework design, as shown in Fig. 2. The COMMAND PROCESSOR pattern separates service requests from their execution by defining a thread (the command processor) where the requests are managed as independent objects (the commands).

# 嵌入式系统工程设计代考

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Design Drivers and Pattern Language

AD1 对并发策略的控制：进程和线程的数量、线程生成（静态与动态策略）、调度策略（固定优先级调度程序与动态优先级调度程序）等。与大多数框架不同，这些并发问题非常重要，以便稍后能够执行实时分析，因此框架应该允许用户定义它们。
AD2 控制活动分配给线程，即控制分配给每个线程的计算负载，因为我们将与状态关联的活动视为最小计算单元。该框架允许将所有活动分配给一个线程，将每个活动分配给它自己的线程，或任何组合。在任何情况下，框架都会确保只有属于活动状态的活动才会被执行。
AD3 避免“隐藏”代码，即执行不受开发人员控制的代码。管理框架的代码被视为“普通”用户代码，因此他可以将其分配给任何线程。
AD4 控制组件之间的通信机制（同步或异步）。
AD5 控制不同节点中的组件分布。

## 有限元方法代写

tatistics-lab作为专业的留学生服务机构，多年来已为美国、英国、加拿大、澳洲等留学热门地的学生提供专业的学术服务，包括但不限于Essay代写，Assignment代写，Dissertation代写，Report代写，小组作业代写，Proposal代写，Paper代写，Presentation代写，计算机作业代写，论文修改和润色，网课代做，exam代考等等。写作范围涵盖高中，本科，研究生等海外留学全阶段，辐射金融，经济学，会计学，审计学，管理学等全球99%专业科目。写作团队既有专业英语母语作者，也有海外名校硕博留学生，每位写作老师都拥有过硬的语言能力，专业的学科背景和学术写作经验。我们承诺100%原创，100%专业，100%准时，100%满意。

## MATLAB代写

MATLAB 是一种用于技术计算的高性能语言。它将计算、可视化和编程集成在一个易于使用的环境中，其中问题和解决方案以熟悉的数学符号表示。典型用途包括：数学和计算算法开发建模、仿真和原型制作数据分析、探索和可视化科学和工程图形应用程序开发，包括图形用户界面构建MATLAB 是一个交互式系统，其基本数据元素是一个不需要维度的数组。这使您可以解决许多技术计算问题，尤其是那些具有矩阵和向量公式的问题，而只需用 C 或 Fortran 等标量非交互式语言编写程序所需的时间的一小部分。MATLAB 名称代表矩阵实验室。MATLAB 最初的编写目的是提供对由 LINPACK 和 EISPACK 项目开发的矩阵软件的轻松访问，这两个项目共同代表了矩阵计算软件的最新技术。MATLAB 经过多年的发展，得到了许多用户的投入。在大学环境中，它是数学、工程和科学入门和高级课程的标准教学工具。在工业领域，MATLAB 是高效研究、开发和分析的首选工具。MATLAB 具有一系列称为工具箱的特定于应用程序的解决方案。对于大多数 MATLAB 用户来说非常重要，工具箱允许您学习应用专业技术。工具箱是 MATLAB 函数（M 文件）的综合集合，可扩展 MATLAB 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|ECEN5613

statistics-lab™ 为您的留学生涯保驾护航 在代写嵌入式系统工程设计Embedded System Engineering Design方面已经树立了自己的口碑, 保证靠谱, 高质且原创的统计Statistics代写服务。我们的专家在代写嵌入式系统工程设计Embedded System Engineering Design代写方面经验极为丰富，各种代写嵌入式系统工程设计Embedded System Engineering Design相关的作业也就用不着说。

• Statistical Inference 统计推断
• Statistical Computing 统计计算
• Advanced Probability Theory 高等概率论
• Advanced Mathematical Statistics 高等数理统计学
• (Generalized) Linear Models 广义线性模型
• Statistical Machine Learning 统计机器学习
• Longitudinal Data Analysis 纵向数据分析
• Foundations of Data Science 数据科学基础

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Introduction and Motivation

Developing software for Real-Time (RT) systems is a challenging task for software engineers. Since these systems have to interact with both the environment and human operators, they are subject to operational deadlines. Also, it is essential that they be so designed as to involve no risk to the operators, the environment, or the system itself. Thus, designers have to face two different problems, namely software design and software analysis, complicated by the fact that time plays a central role in RT systems. There are many well-known software disciplines that provide solutions to each of the aforementioned problems in the literature:

Software design: Software Architecture constitutes the backbone for any successful software-intensive system, since it is the primary carrier of a software system’s quality attributes [27]. Component-Based Software Development (CBSD) is a bottom-up approach to software development, in which applications are built from small modular and interchangeable unit, with which the architecture of a system can be designed and analyzed [29]. Frameworks [17] and design patterns [18] are the most successful approaches to maximize software quality and reuse available nowadays.
Software analysis: Software analysis is, perhaps, a broader area than software design, since there are many characteristics that can be analyzed in a piece of software, depending on the needs of each stakeholder. Thus, it is possible to use model checking [4], validation and verification tools $[5,6]$, schedulability analysis tools [21, 28], to mention but just a few.

However, is it very difficult to combine the results from both disciplines, since it implies to reconcile the design and analysis worlds, which are concerned with very different application aspects, and therefore use very different concepts: components the former and threads the latter. To ensure that the analyzed models correspond to the input architectural description, it is necessary to establish univocal correspondences between the concepts of both domains. There are different ways of defining such correspondences, but most of them imply constraining the implementation to just a few alternatives, when it would be desirable to select among various alternatives. Typical examples of this are component models that implement components as processes; or those where all components are passive and invoked sequentially by the run-time; or those that enforce a given architectural style, like pipes \& filters, etc.
This chapter describes a flexible development approach for supporting a component-based development process of real-time applications, and the schedulability analysis of the resulting software. The word “flexible” in the previous sentence is used to emphasize that our work does not impose a rigid implementation but rather provides the user with some implementation options, as described in the rest of the chapter. The approach revolves around the Model-Driven Software Development (MDSD) paradigm [12, 26] and its associated technologies. They provide the theoretical and technological support for defining the most suitable abstraction levels at which applications are designed, analyzed, deployed, etc., as well as the automatic evolution of models through the defined abstractions levels. Thanks to model transformations, models can automatically evolve from design to analysis without the user having to make such transformation manually.

## 计算机代写|嵌入式系统工程设计代写Embedded System Engineering Design代考|Overall Approach of the Proposed Development Process

The three abstraction levels that comprise the proposed development approach are supported, respectively, by a language for modeling component-based applications, a component framework implemented in $\mathrm{C}++$, and the Cheddar analysis tool. All these tools are integrated and supported by a MDSD tool-chain that enables models to smoothly evolve from components to objects and analysis models. The development approach is based on the particular interpretation of the MDSD approach offered by the Model-driven architecture (MDA) [23] standard. In MDA, PlatformIndependent Models are created at the level of abstraction provided by components, and Platform-Specific Models are supported by an object oriented framework, entitled $\mathrm{FraCC}$ (Framework for Concurrent Components) and implemented in $\mathrm{C}++$, which provides platform-specific run-time support. The evolution of the application through the different abstraction levels is automatically performed by means of model transformations. Obviously, this approach can be followed using other framework, providing it fulfills the application requirements. In the field of RTS, there have been very promising results with the MDA approach. Significant examples include the Artist Design Network of Excellence in Embedded System Design [2] and the OpenEmbeDD project [25].

Model transformations enable the automatic evolution of models into other models or into executable code. But transformations are complex software artifacts, difficult to understand, develop and maintain. Moreover, model transformations have a non-modular structure that prevents them from being reused (totally or partially) in systems that may have similar requirements. The use of frameworks reduce the complexity of model transformations, since they have only to specialize their hot-spots, not to generate the whole application, and thus transformation maintenance and evolution is dramatically simplified. As a side effect, MDA can help simplifying the use of frameworks by hiding the complexity of their specialization mechanisms, as stated in [1]. In addition, the use of software frameworks for the PSM level offers additional advantages, namely: (1) they are normally designed for fulfilling the non-functional requirements of the application domain they target; and (2) they can facilitate final application reconfiguration, provided that they have tools for that purpose. On the other side, the framework implementation is a very time-consuming task, making its development only advisable when it can be reused in many similar applications.
In the proposed development approach, we distinguish three roles: that of framework developer, that of MDA supporter, and that of application developer. These roles can be played by the same or different persons or teams. This article focuses on the application developer role, describing the tools and artifacts he/she can use to develop component-based applications and analyze their temporal behavior. Starting from a set of requirements (functional and non-functional), the application developer (1) designs the specific application using an architectural component-oriented modeling language, (2) he/she then executes a model transformations in order to generate the application, and (3) he/she can use the configuration tools provided by FraCC to make further modifications to the generated application, thus configuring its deployment. In addition, models enable early validation and verification of application properties, while other properties cannot be verified until the final implementation is obtained. Our purpose is twofold: to lessen development times and prototype testing, by using a MDA development environment, and, on the other hand, to analyze the application as soon as possible.

# 嵌入式系统工程设计代考

## 有限元方法代写

tatistics-lab作为专业的留学生服务机构，多年来已为美国、英国、加拿大、澳洲等留学热门地的学生提供专业的学术服务，包括但不限于Essay代写，Assignment代写，Dissertation代写，Report代写，小组作业代写，Proposal代写，Paper代写，Presentation代写，计算机作业代写，论文修改和润色，网课代做，exam代考等等。写作范围涵盖高中，本科，研究生等海外留学全阶段，辐射金融，经济学，会计学，审计学，管理学等全球99%专业科目。写作团队既有专业英语母语作者，也有海外名校硕博留学生，每位写作老师都拥有过硬的语言能力，专业的学科背景和学术写作经验。我们承诺100%原创，100%专业，100%准时，100%满意。

## MATLAB代写

MATLAB 是一种用于技术计算的高性能语言。它将计算、可视化和编程集成在一个易于使用的环境中，其中问题和解决方案以熟悉的数学符号表示。典型用途包括：数学和计算算法开发建模、仿真和原型制作数据分析、探索和可视化科学和工程图形应用程序开发，包括图形用户界面构建MATLAB 是一个交互式系统，其基本数据元素是一个不需要维度的数组。这使您可以解决许多技术计算问题，尤其是那些具有矩阵和向量公式的问题，而只需用 C 或 Fortran 等标量非交互式语言编写程序所需的时间的一小部分。MATLAB 名称代表矩阵实验室。MATLAB 最初的编写目的是提供对由 LINPACK 和 EISPACK 项目开发的矩阵软件的轻松访问，这两个项目共同代表了矩阵计算软件的最新技术。MATLAB 经过多年的发展，得到了许多用户的投入。在大学环境中，它是数学、工程和科学入门和高级课程的标准教学工具。在工业领域，MATLAB 是高效研究、开发和分析的首选工具。MATLAB 具有一系列称为工具箱的特定于应用程序的解决方案。对于大多数 MATLAB 用户来说非常重要，工具箱允许您学习应用专业技术。工具箱是 MATLAB 函数（M 文件）的综合集合，可扩展 MATLAB 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。