A002-186-2612-曾泽宇

计算机科学与工程学院作业报告(首页)
课程名称 软件需求分析与建模 班级 18软件工程6班
日期 2020/12/16 教导教师 董瑞生
姓名 曾泽宇 学号 1814080902612

目录
计算机科学与工程学院作业报告(首页) 1
Requirements baseline需求基线 2
abstract class 抽象类 3
active object 活动对象 5
activity graph 行为图 7
analysis time 分析时间 17
deployment diagram 配置图 21
containment hierarchy 容器分层结构 27
composite state 复合状态 28
compile time 编译时间 30
metaobject 元对象 31
start state machine 启动状态机 31
start state machine with triggers 带触发器的启动状态机 34
start state machine with triggers and guards and effects 用触发器、保护和效果启动状态机 35
start state machine with entry do and exit ections 用入口和出口部分启动状态机 37
start state machine with entry actions 用入口操作启动状态机 38
Meta-matamodel(元建模) 39
cardinality(基数) 40
Object Persistence(持久性对象) 41
Object Persistence(上下文图) 43
Published model(发布模型) 44
模型化语言(modeling language) 45
collaboration diagram(协作图) 47
Program activities(程序活动) 48
Waterfall model (瀑布型模型) 49
Incremental development (增量式开发) 50
Reuse oriented software engineering (再利用导向式软件工程) 50
Rational Unified Process (Rational统一过程) 51
Spiral development (螺旋式开发) 52
Incremental delivery (增量式交付) 54
Visual model software (可视化的模型软件) 54
Software requirements (软件需求) 55
Software requirements documentation (软件需求文件) 55
总结 56

Requirements baseline需求基线
A requirements baseline is a snapshot in time that represents an agreed-upon, reviewed, and approved set of requirements that have been committed to a specific product release.
That “release” could be a complete delivered product or any interim development increment of the product. When stakeholders “sign off” on requirements, what they’re really doing is agreeing and committing to a specific requirements baseline (whether they think of it in those terms or not).
Once the project team establishes a requirements baseline, the team should follow a pragmatic change control process to make good business and technical decisions about adding newly-requested functionality and altering or deleting existing requirements.
A change control process is not about stifling change; it’s about providing decision-makers with the information that will let them make timely and appropriate decisions to modify the planned functionality. That planned functionality is the baseline.
Typically, a baseline is also given a unique name so that all the project participants can refer to it unambiguously. And good configuration management practices allow the team to reconstruct accurately any previous baseline and all its components.

需求基线是一个及时的快照,它代表了一组已被承诺到特定产品发布的已商定的、评审的和批准的需求。
这个“发布”可以是一个完整交付的产品,也可以是产品的任何中间开发增量。
当涉众在需求上“签字”时,他们真正要做的是同意并承诺一个特定的需求基线(不管他们是否以这些术语来考虑它)。
一旦项目团队建立了需求基线,团队就应该遵循一个实用的变更控制过程,以做出关于添加新请求的功能和更改或删除现有需求的良好业务和技术决策。
变更控制过程并不是要扼杀变更;
它向决策者提供信息,使他们能够做出及时和适当的决定,以修改计划的功能。
计划的功能就是基线。
通常,基线也被赋予唯一的名称,以便所有项目参与者都能清楚地引用它。
良好的配置管理实践允许团队精确地重建任何以前的基线及其所有组件。
https://www.jamasoftware.com/blog/defining-requirement-baseline/
abstract class 抽象类
Definition - What does Abstract Class mean?
In programming languages, an abstract class is a generic class (or type of object) used as a basis for creating specific objects that conform to its protocol, or the set of operations it supports. Abstract classes are not instantiated directly.

Abstract classes are useful when creating hierarchies of classes that model reality because they make it possible to specify an invariant level of functionality in some methods, but leave the implementation of other methods until a specific implementation of that class (a derived class) is needed.

Techopedia explains Abstract Class
In object-oriented programming (OOP) languages, classes represent objects in the domain of the problem the software is intended to solve. Classes include collections of attributes (properties) and behaviors (methods), which can be based on previously-defined classes. Programmers use inheritance to derive the specific implementation of abstract classes. Classes that are derived from abstract classes are called derived classes. When this principle is applied many times in succession, it results in a hierarchy of classes. In this context, abstract classes are at the root of this hierarchy, and is used to enforce methods that need to be overridden in the derived classes, thus avoiding potential runtime errors.

An abstract class has at least one abstract method. An abstract method will not have any code in the base class; the code will be added in its derived classes. The abstract method in the derived class should be implemented with the same access modifier, number and type of argument, and with the same return type as that of the base class. Objects of abstract class type cannot be created, because the code to instantiate an object of the abstract class type will result in a compilation error.

定义——抽象类是什么意思?
在编程语言中,抽象类是一种通用类(或对象类型),用作创建符合其协议或其支持的操作集的特定对象的基础。
抽象类不是直接实例化的。
当创建模拟现实的类的层次结构时,抽象类是有用的,因为它们使在某些方法中指定不变的功能级别成为可能,而将其他方法的实现留到需要该类(派生类)的特定实现时。
Techopedia解释了抽象类
在面向对象编程语言(OOP)中,类代表软件要解决的问题领域中的对象。
类包括属性(属性)和行为(方法)的集合,它们可以基于以前定义的类。
程序员使用继承来派生抽象类的特定实现。
派生自抽象类的类称为派生类。
当这个原则被连续多次应用时,它会产生一个类的层次结构。
在此上下文中,抽象类位于此层次结构的根,用于强制需要在派生类中重写的方法,从而避免潜在的运行时错误。
一个抽象类至少有一个抽象方法。
抽象方法在基类中没有任何代码;
代码将被添加到它的派生类中。
派生类中的抽象方法应使用与基类相同的访问修饰符、参数的数量和类型以及返回类型实现。
无法创建抽象类类型的对象,因为实例化抽象类类型对象的代码将导致编译错误。

https://www.techopedia.com/definition/17408/abstract-class

active object 活动对象
In computer programming and engineering, an active object is a type of design pattern that can be used to help ensure that some service is always available in a multi-threaded or concurrent system. An active object is an object that implements a mechanism so it can receive and process input from external objects without forcing the external objects to wait for execution to complete. This mechanism also allows many objects that might all be running concurrently to use active objects without the possibility for long blocking times in which the concurrent processes must stop and wait for access. This most often is achieved by wrapping the active objects in a publicly accessible interface, called a proxy, and then implementing a type of queue system inside the objects so messages are stored for later processing. This creates a design pattern in which objects send messages to active objects and then continue their processing until the active object processes the message and later informs the calling objects of the results so they can update their states accordingly.
Outside an active object design pattern, a normal object might be called a passive object. In a simple program example, a passive object might be acting as a chat server relay, in which remote objects contact the passive object to transmit a message to everyone else on the server. Whenever the passive server object receives a chat message from a remote object, it must handle the request immediately and then immediately send output, all while the remote object halts its own execution until the process is done, an effect known as blocking. Creating different threads within the program can solve the problem of execution blocking but then initiates problems with synchronization.
In an active object design pattern, the same server object in the above example would be running in its own thread separate from the other objects. It also would be wrapped in some type of interface known as a proxy that also is running in a separate thread, sometimes the main program execution thread. When a remote object wants to have the server object send out a chat message, it contacts the proxy object, passes to it all of the information required, and then returns to its normal execution state instead of waiting.
The proxy interface then converts the information from the remote object into a message that it passes to a queue for the active object to process. At this point, both the proxy interface and the remote object are free to continue executing and are not blocked. Meanwhile, the active object works to keep the queue empty, processing each incoming message. If the calling object requires some information to be returned by the active object, then a callback structure can be used to inform the remote object of any changes in state.
在计算机编程和工程中,活动对象是一种设计模式,可用于确保多线程或并发系统中某些服务始终可用。
活动对象是实现一种机制的对象,这样它就可以接收和处理来自外部对象的输入,而不必强制外部对象等待执行完成。
这种机制还允许许多并发运行的对象使用活动对象,而不存在并发进程必须停止并等待访问的长阻塞时间。
这通常是通过将活动对象包装在一个公开可访问的接口(称为代理)中来实现的,然后在对象内部实现一种类型的队列系统,以便将消息存储起来供以后处理。
这创建了一种设计模式,在这种模式中,对象向活动对象发送消息,然后继续它们的处理,直到活动对象处理消息并稍后将结果通知调用对象,以便它们相应地更新它们的状态。
在活动对象设计模式之外,普通对象可能被称为被动对象。
在一个简单的程序示例中,被动对象可能充当聊天服务器中继,其中远程对象与被动对象联系,将消息发送给服务器上的所有其他人。
当被动服务器对象从远程对象接收到聊天消息时,它必须立即处理请求,然后立即发送输出,在此期间,远程对象暂停自己的执行,直到处理完成,这种效果称为阻塞。
在程序中创建不同的线程可以解决执行阻塞的问题,但随后会引发同步问题。
在活动对象设计模式中,上面示例中的同一个服务器对象将运行在自己的线程中,与其他对象分开。
它还将被包装在称为代理的某种类型的接口中,代理也在单独的线程中运行,有时是主程序执行线程。
当远程对象希望让服务器对象发送聊天消息时,它联系代理对象,将所需的所有信息传递给它,然后返回正常的执行状态,而不是等待。
代理接口然后将来自远程对象的信息转换为消息,并将其传递给活动对象要处理的队列。
此时,代理接口和远程对象都可以继续执行,不会被阻塞。
同时,活动对象将保持队列为空,处理每个传入消息。
如果调用对象需要活动对象返回一些信息,则可以使用回调结构将状态的任何变化通知远程对象。

https://www.wisegeek.com/what-is-an-active-object.htm

activity graph 行为图

Graph Data Structure
A graph is a data structure for storing connected data like a network of people on a social media platform.
A graph consists of vertices and edges. A vertex represents the entity (for example, people) and an edge represents the relationship between entities (for example, a person’s friendships).
Let’s define a simple Graph to understand this better:

Here, we’ve defined a simple graph with five vertices and six edges. The circles are vertices representing people and the lines connecting two vertices are edges representing friends on an online portal.
There are a few variations of this simple graph depending on the properties of the edges. Let’s briefly go through them in the next sections.
However, we’ll only focus on the simple graph presented here for the Java examples in this tutorial.
2.1. Directed Graph
The graph we’ve defined so far has edges without any direction. If these edges feature a direction in them, the resulting graph is known as a directed graph.
An example of this can be representing who send the friend request in a friendship on the online portal:

Here, we can see that the edges have a fixed direction. The edges can be bi-directional as well.
2.2. Weighted Graph
Again, our simple graph has edges which are unbiased or unweighted. If instead these edges carry relative weight, this graph is known as a weighted graph.
An example of a practical application of this can be representing how relatively old is a friendship on the online portal:

Here, we can see that the edges have weights associated with them. This provides a relative meaning to these edges.

图的数据结构
图是一种存储连接数据的数据结构,就像社交媒体平台上的人际网络一样。
图由顶点和边组成。
顶点表示实体(例如,人),边表示实体之间的关系(例如,一个人的友谊)。
让我们定义一个简单的图来更好地理解这一点:
这里,我们定义了一个包含5个顶点和6条边的简单图。
圆圈是表示人的顶点,连接两个顶点的线是表示在线门户上的朋友的边。
根据边的性质,这个简单的图会有一些变化。
让我们在接下来的部分简要介绍它们。
但是,我们将只关注本教程中为Java示例提供的简单图。
2.1。
有向图
到目前为止我们定义的图都有没有方向的边。
如果这些边中有一个方向,得到的图称为有向图。
例如,谁在在线门户网站上发送好友请求:
在这里,我们可以看到边缘有一个固定的方向。
边缘也可以是双向的。
2.2。
加权图
同样,我们的简单图也有无偏或无加权的边。
如果这些边具有相对权值,则此图称为加权图。
这方面的实际应用可以体现在线门户网站上的友谊有多古老:
这里,我们可以看到这些边都有相应的权值。
这为这些边提供了相对意义。

UML九图中,行为图包含了其中4种图如下。行为图用来描述系统的动态模型和对那个之间的交互关系

状态图Statechart Diagram
【概念】通过建立类对象的生存周期模型来描述 对象随时间变化的动态行为。系统分析员对某对象建模时,最自然的方法并不是着眼于从活动到活动的控制流,而是从状态到状态的控制流。
换言之:用来描述类的对象所有可能的状态以及时间发生时状态的专业条件。
【描述例子】你的手机开机后(黑点)在不用的时候处在空闲的状态(idle),当你给A打电话的时候处在拨号状态(dialing)。当A接通后,处在通话状态(working),如果没有接通后继续处在空闲状态(idle)。 另外一种,如果别人给你打电话,你的手机处在响铃状态(ringing),如果接听了就在通话状态,如果没有接通就继续又处在空闲状态。

【机房收费系统例子】
机房软件登录前初始状态,输入信息后,验证状态 如果验证通过那么进入工作状态,如果没有通过则返回到初始状态;工作状态时如果一直有人员操作上下机等则一直工作状态;点击下机又回到初始状态。

活动图 Activity Diagram
【概念】用来描述满足用例要求所要进行的活动以及活动间的约束关系,使用活动图有利于识别系统的并行活动。
另一种说法:活动图是某件事情正在进行的状态,既可以实现生活中正在进行的某一项工作也可以是软件系统找那个某个类对象的一个操作。
【描述例子】一个建房子的过程:开始后 1.选择地址2.设计3、计划详细4、竞价5、分支判断(如果竞价不能被接受,那么继续判断;如果竞价接受了接下来是一个并发的活动)6、并行活动(do site work ,do trade work )之后完成并行结束7、完成建造 最后活动终止。

【机房收费系统例子】
操作人员登录后,给新用户进行注册的过程;初态;查找,确定此人没有注册过(判断:注册过则返回提示已经注册,没有注册过则进行注册);注册;并发分叉(信息录入、充值);充值这里有一个判断,是否低于最小上机额度(低于返回继续充值,如果高于则继续执行);并发回合;注册完成;终态

序列图 (时序图)Sequence Diagram
【概念】描述对象之间的交互顺序,着重体现对象间信息传递的时间顺序,强调对象之间消息的发送顺序,同时也显示对象之间的交互过程。
【描述例子】客户在汽车租赁系统中取车的时序图:这里有5个对象Customer(客户)、CommonWorker(工作人员)、RequestOrder(预定请求)WorkRecord(工作记录)Car(车)客户先提出取车请求并出示清单、工作人员检查客户的,确定后让客户付款、工作人员填写工作记录,同时登记车的状态、最后客户取走车。

【机房收费系统例子】
如上相似:临时用户需要下机退款,有如上5个对象:临时用户、下机请求、操作人员、工作记录、ID
用户要下机,要先说出身份证号,操作人员核实,核实通过后,操作员多退少补,然后更新工作记录、更新卡的状态

协同图(协作图)Collaboration Diagtam
【概念】描述对象之间的合作关系,侧重于说明哪些对象之间有消息传递。这里的额顺序图和协同图是可以相互转换的。
【描述例子】和上面的例子一样,客户在汽车租赁系统中取车的协同图

【机房收费系统的例子】内容同上,把时序图转换成协同图

https://www.baeldung.com/java-graphs

analysis time 分析时间
What Is Time Series Analysis?

Time series analysis is the process of analyzing a time series. It is chiefly concerned with identifying three different aspects of the time series, which can be used to better clean, understand, and forecast the data. To do so, it may use a range of models which can process the time series.
Factors in Time Series Analysis

When analyzing a time series, this form of data analysis involves identifying at least three insightful aspects of the data. These factors are autocorrelation, seasonality, and stationarity.
Autocorrelation

In a time series, autocorrelation is the tendency of data observations and patterns to repeat themselves. If these observations and patterns repeat themselves at regular individuals, the result may also be known as seasonality.
Seasonality

As touched on above, seasonality is when observations and patterns repeat themselves at regular intervals. The best example of seasonality would be a graph of temperatures across multiple years. During the summer, temperatures are high; during the winter, temperatures are low.
Stationarity

Stationarity is a measure of how little a time series’ mean and variance changes over time. For example, if the temperatures measured across a period of ten years are of similar magnitude and variance — after accounting for the seasonality of the dataset — then the time series would be said to have high stationarity.

As a more illustrative example of stationarity, consider the effect of global warming on temperatures measured every month. Although the dataset may continue to show signs of autocorrelation and seasonality, the stationarity of the dataset would decrease due to a higher mean temperature and greater variance in temperatures (due to lower and higher extremes).
Benefits of Time Series Analysis

Time series analysis has various benefits for the data analyst. From cleaning data to understanding it — and helping to forecast future data points — this is all achieved through the application of various time series models, which we’ll touch on later.
Cleaning data

The first benefit of time series analysis is that it can help to clean data. This makes it possible to find the true “signal” in a data set, by filtering out the noise. This can mean removing outliers, or applying various averages so as to gain an overall perspective of the meaning of the data.

Of course, cleaning data is a prominent part of almost any kind of data analysis. The true benefit of time series analysis is that it is accomplished with little extra effort.
Understanding data

Another benefit of time series analysis is that it can help an analyst to better understand a data set. This is because of the models used in time series analysis help to interpret the true meaning of the data, as touched on previously.
Forecasting data

Last but not least, a major benefit of time series analysis is that it can be the basis to forecast data. This is because time series analysis — by its very nature — uncovers patterns in data, which can then be used to predict future data points.

For example, autocorrelation patterns and seasonality measures can be used to predict when a certain data point can be expected. Further, stationarity measures can be used to estimate what the value of that data point will be.

Really, it’s the forecasting aspect of time series analysis that makes it so popular in business applications. Analyzing and understanding past data is all good and well, but it’s being able to predict the future that helps to make optimal business decisions.
Models for Time Series Analysis

There are a number of models that can be used to describe and predict data points in a time series. In this section, we’ll look at two of the most basic models: moving averages and exponential smoothing.
time-series-analysis-charts-finance
Moving averages

A moving average model suggests that an upcoming data point will be equal to the average of past data points. This rudimentary model is powerful in smoothing out data sets so as to observe their overall trend, with little regard for outlying data points. However, it may smooth out the seasonality of some time series.
Exponential smoothing

Exponential smoothing is another model where upcoming data points are predicted based on an exponentially decreasing average of past data points. It’s said to be preferable to a moving average model in time series where there is no clear trend or pattern.
什么是时间序列分析?

时间序列分析是分析时间序列的过程。
它主要涉及识别时间序列的三个不同方面,这可以用来更好地清理、理解和预测数据。
要做到这一点,它可以使用一系列可以处理时间序列的模型。
时间序列分析中的因素

当分析时间序列时,这种形式的数据分析包括识别数据的至少三个有洞察力的方面。
这些因素是自相关性、季节性和平稳性。
自相关

在时间序列中,自相关是数据观察和模式重复自身的趋势。
如果这些观察和模式在正常个体中重复发生,其结果也可能被称为季节性。
季节性

正如上面提到的,季节性是指观察结果和模式在有规律的间隔内重复出现。
季节性最好的例子是多年气温曲线图。
在夏季,温度很高;
在冬天,气温很低。
平稳性

平稳性衡量的是时间序列的均值和方差随时间变化的程度。
例如,如果在考虑数据集的季节性之后,十年期间测得的温度具有相似的量级和方差,那么时间序列就可以认为具有高度的平稳性。

作为一个更能说明稳定性的例子,考虑全球变暖对每个月测量的温度的影响。
虽然数据集可能继续表现出自相关和季节性的迹象,但数据集的平稳性将由于较高的平均温度和较大的温度差异(由于较低和较高的极端)而降低。
时间序列分析的好处

时间序列分析对数据分析师有各种好处。
从清理数据到理解数据,并帮助预测未来的数据点,这些都是通过应用各种时间序列模型来实现的,我们将在后面讨论。
清理数据

时间序列分析的第一个好处是它可以帮助清理数据。
这使得通过过滤掉噪声,在数据集中找到真正的“信号”成为可能。
这可能意味着删除异常值,或应用各种平均值,以获得对数据意义的总体看法。

当然,清理数据是几乎所有类型的数据分析的一个重要部分。
时间序列分析的真正好处是它只需要很少的额外工作就可以完成。
理解数据

时间序列分析的另一个好处是,它可以帮助分析师更好地理解数据集。这是因为在时间序列分析中使用的模型有助于解释数据的真正含义,正如前面提到的。
预测数据

最后但并非最不重要的是,时间序列分析的一个主要好处是,它可以作为预测数据的基础。
这是因为时间序列分析——就其本质而言——揭示了数据中的模式,然后可以用来预测未来的数据点。

例如,自相关模式和季节性度量可以用来预测何时可以预测某个数据点。
此外,可以使用平稳性度量来估计该数据点的价值。

实际上,正是时间序列分析的预测方面使它在商业应用中如此受欢迎。
分析和理解过去的数据固然很好,但能够预测未来有助于做出最佳业务决策。
时间序列分析模型

有许多模型可以用来描述和预测时间序列中的数据点。
在这一节,我们将看两个最基本的模型:移动平均线和指数平滑。
time-series-analysis-charts-finance
移动平均线

移动平均模型表明,未来的数据点将等于过去数据点的平均值。
这个基本模型在平滑数据集以便观察其总体趋势方面非常强大,几乎不考虑外围数据点。
然而,它可以平滑一些时间序列的季节性。
指数平滑法

指数平滑是另一种模型,即将到来的数据点是根据过去数据点的指数下降的平均值来预测的。
据说在没有明显趋势或模式的时间序列中,它比移动平均模型更可取。

https://pestleanalysis.com/time-series-analysis/

deployment diagram 配置图

A UML deployment diagram is a diagram that shows the configuration of run time processing nodes and the components that live on them. Deployment diagrams is a kind of structure diagram used in modeling the physical aspects of an object-oriented system. They are often be used to model the static deployment view of a system (topology of the hardware).
Deployment Diagram in UML Diagram Hierarchy
Learn UML Faster, Better and Easier

Are you looking for a Free UML tool for learning UML faster, easier and quicker? Visual Paradigm Community Edition is a UML software that supports all UML diagram types. It is an international award-winning UML modeler, and yet it is easy-to-use, intuitive & completely free.
Free Download

When to Use Deployment Diagram

What existing systems will the newly added system need to interact or integrate with?
    How robust does system need to be (e.g., redundant hardware in case of a system failure)?
    What and who will connect to or interact with system, and how will they do it
    What middleware, including the operating system and communications approaches and protocols, will system use?
    What hardware and software will users directly interact with (PCs, network computers, browsers, etc.)?
    How will you monitor the system once deployed?
    How secure does the system needs to be (needs a firewall, physically secure hardware, etc.)?

Purpose of Deployment Diagrams

They show the structure of the run-time system
    They capture the hardware that will be used to implement the system and the links between different items of hardware.
    They model physical hardware elements and the communication paths between them
    They can be used to plan the architecture of a system.
    They are also useful for Document the deployment of software components or nodes

Deployment Diagram at a Glance

Deployment diagrams are important for visualizing, specifying, and documenting embedded, client/server, and distributed systems and also for managing executable systems through forward and reverse engineering.

A deployment diagram is just a special kind of class diagram, which focuses on a system’s nodes. Graphically, a deployment diagram is a collection of vertices and arcs. Deployment diagrams commonly contain:
Nodes

3-D box represents a node, either software or hardware
    HW node can be signified with <>
    Connections between nodes are represented with a line, with optional <>
    Nodes can reside within a node

Other Notations

Dependency
    Association relationships.
    May also contain notes and constraints.

Deployment Diagram Notations
Steps for Modeling an Embedded System

Identify the devices and nodes that are unique to your system.
    Provide visual cues, especially for unusual devices, by using the UML’s extensibility mechanisms to define system-specific stereotypes with appropriate icons. At the very least, you’ll want to distinguish processors (which contain software components) and devices (which, at that level of abstraction, don’t directly contain software).
    Model the relationships among these processors and devices in a deployment diagram. Similarly, specify the relationship between the components in your system’s implementation view and the nodes in your system’s deployment view.
    As necessary, expand on any intelligent devices by modeling their structure with a more detailed deployment diagram.

Deployment Diagram for Embedded System
Steps for Modeling a Client/Server System

Identify the nodes that represent your system’s client and server processors.
    Highlight those devices that are germane to the behavior of your system. For example, you’ll want to model special devices, such as credit card readers, badge readers, and display devices other than monitors, because their placement in the system’s hardware topology are likely to be architecturally significant.
    Provide visual cues for these processors and devices via stereotyping.
    Model the topology of these nodes in a deployment diagram. Similarly, specify the relationship between the components in your system’s implementation view and the nodes in your system’s deployment view.

The example shows the topology of a human resources system, which follows a classical client/server architecture.
Deployment Diagram for Humna Resources System
TCP/IP Client / Server Example
Deployment Diagram TCP/IP Example
Deployment Diagram Example - Modeling a Distributed System

Identify the system’s devices and processors as for simpler client/server systems.
    If you need to reason about the performance of the system’s network or the impact of changes to the network, be sure to model these communication devices to the level of detail sufficient to make these assessments.
    Pay close attention to logical groupings of nodes, which you can specify by using packages.

UML部署图是显示运行时处理节点及其上的组件配置的图。
部署图是用于为面向对象系统的物理方面建模的一种结构图。
它们通常用于建模系统的静态部署视图(硬件的拓扑结构)。
UML图层次结构中的部署图
更快、更好、更容易地学习UML

您正在寻找一个免费的UML工具来更快、更容易、更快地学习UML吗?
Visual Paradigm Community Edition是一个支持所有UML图类型的UML软件。
它是一个屡获国际奖项的UML建模工具,而且它易于使用、直观且完全免费。
免费下载
何时使用部署图

新添加的系统需要与哪些现有系统交互或集成?
系统需要多健壮(例如,系统故障时的冗余硬件)?
什么和谁将连接到系统或与系统交互,以及他们将如何做
系统将使用哪些中间件(包括操作系统和通信方法和协议)?
用户将直接与哪些硬件和软件(pc、网络计算机、浏览器等)进行交互?
部署后如何监控系统?
系统需要多安全(需要防火墙、物理安全硬件等)?

部署图的用途

它们显示了运行时系统的结构
它们捕获将用于实现系统的硬件以及不同硬件项目之间的链接。
它们对物理硬件元素和它们之间的通信路径进行建模
它们可以用来规划系统的架构。
它们对于记录软件组件或节点的部署也很有用

部署图一目了然
部署图对于可视化、指定和记录嵌入式、客户机/服务器和分布式系统,以及通过正向和逆向工程管理可执行系统都很重要。

部署图只是一种特殊类型的类图,它主要关注系统的节点。
在图形化上,部署图是顶点和弧的集合。
部署图通常包含:
节点
3-D盒子代表一个节点,无论是软件还是硬件
HW节点可以用立体表示<<
节点之间的连接用一条线表示,它带有可选的立体类型。
节点可以驻留在节点中

其他符号

依赖
协会的关系。
也可能包含注释和约束。

部署图符号
嵌入式系统建模的步骤

识别您的系统所特有的设备和节点。
通过使用UML的可扩展性机制,用适当的图标定义特定于系统的原型,提供视觉提示,特别是对于不寻常的设备。
至少,您需要区分处理器(包含软件组件)和设备(在抽象层次上,它们不直接包含软件)。
在部署图中为这些处理器和设备之间的关系建模。
类似地,指定系统的实现视图中的组件与系统的部署视图中的节点之间的关系。
如有必要,可以使用更详细的部署图对任何智能设备的结构进行建模,从而对其进行扩展。

嵌入式系统的部署图
客户端/服务器系统建模的步骤

标识表示系统的客户机和服务器处理器的节点。
突出显示那些与系统行为密切相关的设备。
例如,您将希望对特殊设备建模,例如信用卡阅读器、徽章阅读器和监视器以外的显示设备,因为它们在系统硬件拓扑中的位置可能在体系结构上具有重要意义。
通过刻板印象为这些处理器和设备提供视觉线索。
在部署图中为这些节点的拓扑建模。
类似地,指定系统的实现视图中的组件与系统的部署视图中的节点之间的关系。

该示例显示了一个人力资源系统的拓扑结构,它遵循一个经典的客户机/服务器体系结构。
Humna资源系统的部署图
TCP/IP客户端/服务器示例
部署图TCP/IP示例
部署图示例—为分布式系统建模

将系统的设备和处理器标识为更简单的客户机/服务器系统。
如果您需要考虑系统网络的性能或网络更改的影响,请确保对这些通信设备进行足够详细的建模,以进行这些评估。
请密切关注节点的逻辑分组,您可以使用包来指定这些分组。

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-deployment-diagram/

containment hierarchy 容器分层结构
Containment Hierarchy

CMarkup maintains a hierarchy of elements that contain other elements (see Navigating Levels in CMarkup). In well-formed XML this is an unambiguous logical representation of the markup because all elements are correctly ended and nested. Even in a document that is not well-formed, a containment hierarchy can still be useful. This article describes the way the containment hierarchy is determined in this case as part of the support for Generic Markup In CMarkup as of release 8.0.

A lot of non-XML markup uses tags without corresponding end tags. Examples in HTML are 
indicating a line break and  describing an image to be displayed.

The CMarkup parser uses a simple algorithm to create the containment hierarchy of elements. All non-ended elements in a subdocument are closed when the end tag of the subdocument container element is encountered. The CMarkup object provides these non-ended elements with all the normal navigation methods and they do not contain any child elements. In the following example, when the closing tag of the P element is encountered, the BR tags are marked as non-ended elements and both are linked in as immediate child elements of the P element.

容器层次结构

CMarkup维护包含其他元素的元素层次结构(请参阅CMarkup中的导航级别)。
在格式良好的XML中,这是标记的明确逻辑表示,因为所有元素都正确地结束和嵌套。
即使在格式不良好的文档中,包含层次结构也仍然有用。
本文描述了在这种情况下,作为8.0版CMarkup中对通用标记支持的一部分,包含层次结构是如何确定的。

许多非xml标记使用没有相应结束标记的标记。
HTML中的例子有
表示换行,描述要显示的图像。

CMarkup解析器使用一个简单的算法来创建元素的包含层次结构。
当遇到子文档容器元素的结束标记时,将关闭子文档中的所有非结束元素。
CMarkup对象为这些非结束元素提供了所有常规导航方法,它们不包含任何子元素。
在下面的示例中,当遇到P元素的结束标记时,BR标记被标记为非结束元素,并且两者都作为P元素的直接子元素链接进来。

http://www.firstobject.com/dn_markhierarchy.htm

composite state 复合状态
 Description

Composite States are composed within the StateMachine diagram by expanding a State element, adding Regions if applicable, and dragging further State elements, related elements and connectors within its boundaries. The internal State elements are then referred to as Substates.

(You can also define a State element, as with many other types of element, as a composite element; this then has a hyperlink to a child diagram that can be another StateMachine diagram or other type of diagram elsewhere in the model.)

Composite States can be orthogonal, if Regions are created. If a Composite State is orthogonal, its entry denotes that a single Substate is concurrently active in each Region. The hierarchical nesting of Composite States, coupled with Region use, generates a situation of multiple States concurrently active; this situation is referred to as the active State configuration.

描述

复合状态在StateMachine图中组成,方法是展开状态元素、添加区域(如果适用的话),并将进一步的状态元素、相关元素和连接器拖到其边界内。
然后,内部状态元素被称为子状态。

(你也可以定义一个状态元素,像许多其他类型的元素一样,作为一个复合元素;
然后,它有一个到子图的超链接,子图可以是模型中其他位置的另一个状态机图或其他类型的图。)

如果创建了区域,复合状态可以是正交的。
如果复合状态是正交的,则其条目表示每个区域中有一个子状态同时活动。
复合状态的分层嵌套,再加上区域使用,产生了多个状态同时活动的情况;
这种情况被称为活动状态配置。

https://sparxsystems.com/enterprise_architect_user_guide/15.0/model_domains/compositestate.html

compile time 编译时间
    Compile time
    In computer science, compile time refers to either the operations performed by a compiler, programming language requirements that must be met by source code for it to be successfully compiled, or properties of the program that can be reasoned about at compile time. The operations performed at compile time usually include syntax analysis, various kinds of semantic analysis and code generation. Programming language definitions usually specify compile time requirements that source code must meet to be successfully compiled. For example, that the amount of storage required by types and variable can be deduced. Properties of a program that can be reasoned about at compile time include range-checks, deadlock freedom in concurrent languages, or timings. Compile time occurs before link time and runtime. In some programming languages it may be necessary for some compilation and linking to occur at runtime. There is a trade-off between compile-time and link-time in that many compile time operations can be deferred to link-time without incurring extra run-time.

编译时

在计算机科学中,编译时间是指编译器执行的操作,源代码必须满足的编程语言要求,或者在编译时可以推理的程序属性。
编译时执行的操作通常包括语法分析、各种语义分析和代码生成。
编程语言定义通常指定源代码成功编译时必须满足的编译时间要求。
例如,可以推断类型和变量所需的存储容量。
在编译时可以考虑的程序属性包括范围检查、并发语言中的死锁自由或计时。
编译时间发生在链接时间和运行时之前。
在某些编程语言中,可能需要在运行时进行某些编译和链接。
在编译时和链接时之间有一个权衡,因为许多编译时操作可以延迟到链接时,而不会产生额外的运行时。

https://www.definitions.net/definition/compile%20time

metaobject 元对象
In computer science, a metaobject or meta-object is any entity that manipulates, creates, describes, or implements other objects. The object that the metaobject is about is called the base object. Some information that a metaobject might store is the base object’s type, interface, class, methods, attributes, variables, functions, control structures, etc.

在计算机科学中,元对象或元对象是操作、创建、描述或实现其他对象的任何实体。
元对象所涉及的对象称为基对象。
元对象可能存储的一些信息是基对象的类型、接口、类、方法、属性、变量、函数、控制结构等。

https://www.definitions.net/definition/metaobject#:~:text=In%20computer%20science%2C%20a%20metaobject%20or%20meta-object%20is,class%2C%20methods%2C%20attributes%2C%20variables%2C%20functions%2C%20control%20structures%2C%20etc.

start state machine 启动状态机

Definition - What does State Machine mean?

A state machine is a concept used in designing computer programs or digital logic. There are two types of state machines: finite and infinite state machines. The former is comprised of a finite number of states, transitions, and actions that can be modeled with flow graphs, where the path of logic can be detected when conditions are met. The latter is not practically used.

A state machine is any device storing the status of something at a given time. The status changes based on inputs, providing the resulting output for the implemented changes. A finite state machine has finite internal memory. Input symbols are read in a sequence producing an output feature in the form of a user interface.

State machines are represented using state diagrams. The output of a state machine is a function of the input and the current state. State machines play a significant role in areas such as electrical engineering, linguistics, computer science, philosophy, biology, mathematics, and logic. They are best used in the modeling of application behavior, software engineering, design of hardware digital systems, network protocols, compilers, and the study of computation and languages.
Techopedia explains State Machine

The operation of a state machine begins from a start state. On a successful transition it ends up in an accept state. The transition takes place based on the inputs provided. The current state depends on the past state of the system. The number of states formed depends on the available states of memory. A transition is enabled based on certain conditions and indicates a state change. An action describes an activity performed at the given moment. The different types of actions are transition action, input action, entry action, and exit action.

Deterministic automata have exactly one transition in every state for each possible input. In non-deterministic automata, a state input leads to one, many, or no transitions. A state machine with only one state is called a combinatorial state machine and uses only input actions.

The two different groups of state machines are acceptors and transducers. Acceptors produce a binary output, based on whether the input is accepted or rejected by the machine. While processing the input, if the current state is accepting, the input is accepted. Otherwise it is rejected. Languages accepted by state machines are called regular languages. Start states are represented by an arrow pointing on it from anywhere, while accepted states are represented using double circles. Transducers cater output based on a given input, using actions. Moore and Mealy machines are examples of transducers.

Unmodified modeling language state machines are also widely used as they have both the Moore and Mealy machine characteristics within them. They include additional concepts such as orthogonal regions and hierarchically-nested states.

定义——状态机是什么意思?

状态机是一个用于设计计算机程序或数字逻辑的概念。
有两种类型的状态机:有限状态机和无限状态机。
前者由有限数量的状态、转换和动作组成,可以用流图建模,在满足条件时可以检测逻辑路径。
后者并没有实际应用。

状态机是在给定时间存储某物状态的任何设备。
状态根据输入更改,为实现的更改提供结果输出。
有限状态机的内部内存是有限的。
输入符号按顺序读取,以用户界面的形式产生输出特性。

状态机使用状态图表示。
状态机的输出是输入和当前状态的函数。
状态机在电气工程、语言学、计算机科学、哲学、生物学、数学和逻辑学等领域发挥着重要作用。
它们最适合用于应用程序行为的建模、软件工程、硬件数字系统的设计、网络协议、编译器以及计算和语言的研究。
Techopedia解释了状态机

状态机的操作从启动状态开始。
在成功的转换中,它将以接受状态结束。
转换将基于所提供的输入进行。
当前状态取决于系统的过去状态。
形成的状态的数量取决于内存的可用状态。
转换是基于某些条件启用的,并指示状态更改。
动作描述在给定时刻执行的活动。
不同类型的动作是转换动作、输入动作、进入动作和退出动作。

确定性自动机在每种状态下对每种可能的输入都有一个精确的转换。
在非确定性自动机中,一个状态输入导致一个、多个或没有转换。
只有一种状态的状态机称为组合状态机,它只使用输入动作。

两组不同的状态机是接受器和转换器。
根据输入是否被机器接受或拒绝,接受器产生二进制输出。
在处理输入时,如果当前状态是可接受的,则输入是可接受的。
否则将被拒绝。
状态机接受的语言称为常规语言。
起始状态由一个从任意位置指向它的箭头表示,而可接受的状态则使用双圆圈表示。
传感器使用动作来处理基于给定输入的输出。
Moore和Mealy machines就是换能器的例子。

未修改的建模语言状态机也得到了广泛的应用,因为它们同时具有Moore和Mealy机器的特性。
它们还包括其他概念,如正交区域和层次嵌套状态。

https://www.techopedia.com/definition/16447/state-machine#:~:text=The%20operation%20of%20a%20state%20machine%20begins%20from,depends%20on%20the%20past%20state%20of%20the%20system.

start state machine with triggers 带触发器的启动状态机
Starting state machines is best done with Trigger Ins. To use a trigger to initiate an event, check for the trigger in a block synchronized with the clock on which the trigger is operating. The triggers in okTriggerxx are active high. You do not need to instantiate a new okTriggerxx for each trigger bit, since each bit can be triggered separately using its unique FrontPanel endpoint address. In the following example, reset and start are dependent on two separate trigger endpoints, but you can also use a single trigger endpoint and pass different values to it using ActivateTriggerIn. You can then base the values of start and reset on the value sent to the trigger endpoint.
When initializing a state machine, it is recommended but not required that you define a reset signal. In this example, the reset is attached to a trigger, but it can also be attached to a wire.
The pauses in the example are included to make the LEDs readable and are not required for the triggers to operate properly.

启动状态机最好使用触发器Ins。
若要使用触发器来发起事件,请检查与触发器所操作的时钟同步的块中的触发器。
okTriggerxx中的触发器是高活跃的。
您不需要为每个触发器位实例化一个新的okTriggerxx,因为每个位都可以使用其唯一的前面板端点地址分别触发。
在下面的示例中,重置和启动依赖于两个独立的触发器端点,但您也可以使用单个触发器端点并使用ActivateTriggerIn将不同的值传递给它。
然后,可以将start和reset的值作为发送到触发器端点的值的基础。

在初始化状态机时,建议(但不是必须)定义一个重置信号。
在本例中,复位连接到触发器上,但它也可以连接到导线上。

本例中的暂停是为了使led可读,而不是触发器正常操作所必需的。

https://opalkelly.com/examples/start-a-state-machine/#

start state machine with triggers and guards and effects 用触发器、保护和效果启动状态机

State machine diagram is a behavior diagram which shows discrete behavior of a part of designed system through finite state transitions. State machine diagrams can also be used to express the usage protocol of part of a system. 
 The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature. A state machine without a context classifier may use triggers that are independent of receptions or operations of a classifier, i.e., either just signal triggers or call triggers based upon operation template parameters of the (parameterized) statemachine.

The association between a state machine and its context classifier or behavioral feature does not have a special notation.

State machine could be rendered in the frame labeled as state machine or stm in abbreviated form. (Note, that for whatever reason all examples of state machine frames in Chapter 15 of UML 2.4 spec do not have this frame type specified.) The content area of the frame is usually state machine itself but in general it could contain other kinds of UML diagrams.

状态机图是一种行为图,它通过有限的状态转换来显示被设计系统的某一部分的离散行为。
状态机图也可以用来表示系统部分的使用协议。
行为特征的方法状态机的上下文分类器必须是拥有该行为特征的分类器。
没有上下文分类器的状态机可以使用独立于分类器的接收或操作的触发器,即仅信号触发器或基于(参数化)状态机的操作模板参数的调用触发器。
状态机与其上下文分类器或行为特征之间的关联没有特殊的符号。
状态机可以在标记为状态机或stm的框架中以缩写形式呈现。
(注意,不管出于什么原因,UML 2.4规范第15章中所有的状态机框架示例都没有指定该框架类型。)
框架的内容区域通常是状态机本身,但通常它可以包含其他类型的UML图。

https://www.uml-diagrams.org/state-machine-diagrams.html

start state machine with entry do and exit ections 用入口和出口部分启动状态机
A state machine is a type of automation that uses a finite number of states in its execution. It can go into a state when it is triggered by an activity, and it exits that state when another activity is triggered.

Another important aspect of state machines are transitions, as they also enable you to add conditions based on which to jump from one state to another. These are represented by arrows or branches between states.
There are two activities that are specific to state machines, namely State and Final State, found under Workflow > State Machine.
    Note:
    You can only create one initial state, yet it is possible to have more than one Final State.

The State activity contains three sections, Entry, Exit and Transition(s), while the Final State only contains one section, Entry. Both of these activities can be expanded by double-clicking them, to view more information and edit them.

The Entry and Exit sections enable you to add entry and exit triggers for the selected state, while the Transition(s) section displays all the transitions linked to the selected state.

状态机是一种自动化,它在执行过程中使用有限数量的状态。
当一个活动触发它时,它可以进入一种状态,当另一个活动触发时,它也会退出该状态。

状态机的另一个重要方面是转换,因为它们还允许您添加条件,根据这些条件可以从一个状态跳转到另一个状态。
它们由州与州之间的箭头或分支表示。

有两个特定于状态机的活动,即状态和最终状态,可以在工作流>下找到;
状态机。
注意:
您只能创建一个初始状态,但有可能有多个最终状态。

状态活动包含三个部分:进入、退出和转换,而最终状态只包含一个部分:进入。
这两个活动都可以通过双击展开,以查看和编辑更多信息。

进入和退出部分允许您为所选状态添加进入和退出触发器,而转换部分显示与所选状态链接的所有转换。

https://docs.uipath.com/studio/docs/state-machines

start state machine with entry actions 用入口操作启动状态机

I created a State Machine, added a State from the Toolbar and added an Entry-Action via Features & Properties > Operations to the State. I’d now like this Entry-Action to show up in the visualization of my state, e.g.:

  • entry / someEntryAction();
  • exit / someExitAction();

like it does for example in the Resource of the State Machine Diagram here: Sparx Systems: State Machine Diagram. I followed the resources on how to add entry /exit actions, but my State stays empty except it’s name as a header.

我创建了一个状态机,从工具栏添加了一个状态,并通过Features & Properties >添加了一个入口动作。
操作到州。
我现在想让这个入口动作显示在我的状态的可视化中,例如:

someEntryAction(); / / someEntryAction();

  • exit / someExitAction();

就像它所做的,例如在这里的状态机图的资源:Sparx Systems:状态机图。
我参考了参考资料中关于如何添加进入/退出操作的内容,但是我的状态保持为空,除了它的名称作为头文件。

https://stackoverflow.com/questions/51076951/how-to-make-entry-exit-actions-show-up-in-state-machine-diagram

Meta-matamodel(元建模)
https://www.sciencedirect.com/topics/computer-science/metamodeling
Metamodeling is the name commonly given to the practice of using a model to describe another model as an instance. One feature of metamodeling is that it must be possible to assign properties to classes in the model. This practice causes a problem in OWL 1.0, since OWL 1.0 disallowed treating classes as if they were individuals in this way.

理解:元模型化是使用一个模型将另一个模型描述为实例的实践的通常名称。元模型化的一个特性是必须能够将属性分配给模型中的类

https://www.uml-diagrams.org/uml-meta-models.html
Model which describes Metamodels. Learn more in: DSL TUNNOS Commerce: Model-Driven Architecture Applied to E-Commerce Platforms。

理解:描述元模型的模型。DSL TUNNOS商业:应用于电子商务平台的模型驱动架构

A model that defines the language for expressing a metamodel. Learn more in: Foundations for MDA Case Tools。

理解:定义用于表示元模型的语言的模型。在:MDA用例工具基础中了解更多信息。
cardinality(基数)
https://whatis.techtarget.com/definition/cardinality
The term cardinality refers to the number of cardinal (basic) members in a set. Cardinality can be finite (a non-negative integer) or infinite. For example, the cardinality of the set of people in the United States is approximately 270,000,000; the cardinality of the set of integers is denumerably infinite.

理解:基数指的是一个集合中基数(基本)成员的数量。基数可以是有限的(非负整数)或无限的。例如,美国的人口基数约为2.7亿;整数集的基数是可数无穷大的。

https://orangematter.solarwinds.com/2020/01/05/what-is-cardinality-in-a-database/
The definition of cardinality that matters a lot for query performance is data cardinality. This is all about how many distinct values are in a column.The first meaning of cardinality is when you’re designing the database—what’s called data modeling. In this sense, cardinality means whether a relationship is one-to-one, many-to-one, or many-to-many. So you’re really talking about the relationship cardinality.

理解:对查询性能影响很大的基数的定义是数据基数。这是关于一列中有多少不同的值。基数的第一个含义是在设计数据库时—即所谓的数据建模。在这个意义上,基数意味着关系是一对一、多对一还是多对多。所以你实际上是在讨论关系的基数。

https://www.techopedia.com/definition/18/cardinality-databases

The term “cardinality” in database design has to do with counting tables and values. With that said, cardinality has three main definitions. It can relate to counting the number of elements in a set, identifying the relationships between tables, or describing how database tables contain a number of values, and what those tables look like in general.

理解:数据库设计中的术语“基数”与表和值的计数有关。尽管如此,基数有三个主要定义。它可以涉及到计算集合中元素的数量,确定表之间的关系,或者描述数据库表如何包含许多值,以及这些表通常是什么样子的。
Object Persistence(持久性对象)
https://www.douban.com/note/337128141/
A persistent store is a repository in which managed objects may be stored. You can think of a persistent store as a database data file where individual records each hold the last-saved values of a managed object. Core Data offers three native file types for a persistent store: binary, XML, and SQLite. You can implement your own store type if you want Core Data to interoperate with a custom file format or server. Core Data also provides an in-memory store that lasts no longer than the lifetime of a process

A persistent object store maps between objects in your application and records in a persistent store. There are different classes of persistent object store for the different file types that Core Data supports. You can also implement your own if you want to support a custom file type.

理解:持久性存储是一个存储库,其中可以存储托管对象。您可以将持久存储视为数据库数据文件,其中每个记录保存管理对象的最后保存值。Core Data为持久存储提供了三种本机文件类型:二进制、XML和SQLite。如果您想要Core Data与自定义文件格式或服务器互操作,您可以实现自己的存储类型。Core Data还提供了一个内存存储,其持续时间不会超过进程的生命周期
持久性对象存储在应用程序中的对象和pe中的记录之间的映射

https://study.com/academy/lesson/object-persistence-definition-overview.html
A persistent database stores persistent data in the form of objects, or records that are durable when changing devices and software. Persistent data is stable and recoverable. Traditional relational database management systems (RDBMS) store persistent data in the form of records and tables. However, they cannot store objects and their relationships. Objects have necessary features (like encapsulation, inheritance, persistence, and polymorphism) that do not translate well into records and tables. Thus, certain special databases like object-oriented database management systems (OODBMS) and object relational database management systems (ORDBMS) are needed for storing objects and preserving object persistence.

理解:持久性数据库以对象或记录的形式存储持久性数据,这些记录在更改设备和软件时是持久的。持久数据是稳定的和可恢复的。传统的关系数据库管理系统(RDBMS)以记录和表的形式存储持久数据。但是,它们不能存储对象及其关系。对象具有不能很好地转换为记录和表的必要特性(如封装、继承、持久性和多态性)。因此,需要某些特定的数据库,如面向对象数据库管理系统(OODBMS)和对象关系数据库管理系统(ORDBMS)来存储对象和保持对象持久性。
https://docs.devexpress.com/XPO/3264/create-a-data-model/basics-of-creating-persistent-objects-for-existing-data-tables
To access an existing data table in a database and work with it using the functionality provided by eXpress Persistent Objects(XPO), you need to create a persistent object that describes this table. The persistent object should identify the target table’s name and required data fields. If you want to work with two or more tables linked by relationships, you need to create objects for each table, and then define relationships between objects using specific attributes.

理解:要访问数据库中现有的数据表并使用eXpress Persistent Objects(XPO)提供的功能来使用它,您需要创建一个描述此表的持久对象。持久对象应该标识目标表的名称和所需的数据字段。如果希望使用由关系链接的两个或多个表,则需要为每个表创建对象,然后使用特定属性定义对象之间的关系。
Object Persistence(上下文图)
https://www.edrawmax.com/context-diagram/
Definition
Also referred to as the Level O Data Flow Diagram, the Context diagram is the highest level in a Data Flow Diagram. It is a tool popular among Business Analysts who use it to understand the details and boundaries of the system to be designed in a project. It points out the flow of information between the system and external components.

理解:
也称为O级数据流图,上下文图是数据流图中的最高级别。它是一种流行于业务分析人员中的工具,他们使用它来了解要在项目中设计的系统的细节和边界。它指出了系统和外部组件之间的信息流。

https://www.cs.uct.ac.za/mit_notes/software/htmls/ch06s06.html
Definition- What is a context diagram?
The context diagram is used to establish the context and boundaries of the system to be modelled: which things are inside and outside of the system being modelled, and what is the relationship of the system with these external entities. A context diagram, sometimes called a level 0 data-flow diagram, is drawn in order to define and clarify the boundaries of the software system. It identifies the flows of information between the system and external entities. The entire software system is shown as a single process.
理解:
上下文图被用来建立要建模的系统的上下文和边界:哪些东西在被建模的系统内部和外部,以及系统与这些外部实体的关系是什么。为了定义和阐明软件系统的边界,绘制了一个上下文图,有时称为0级数据流图。它标识系统和外部实体之间的信息流。整个软件系统显示为一个单一的过程。

Published model(发布模型)
https://docs.microsoft.com/en-us/ai-builder/publish-model

Definition
After you successfully train your model, you have to publish it to make it available. All users in your current environment will be able to use your published model when you publish it.
理解:
成功训练模型之后,必须发布它以使其可用。当您发布已发布的模型时,当前环境中的所有用户都能够使用它。

https://docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/validate-app

Validate an app to check for asset dependencies that are required for the app to work, but haven’t yet been added to the app. After a successful validation, you publish the app.

验证应用程序,以检查应用程序工作所必需的,但尚未添加到应用程序的资产依赖项。成功验证后,您发布应用程序。

https://www.bmj.com/about-bmj/publishing-model

Definition
Publishing model The BMJ is published by BMJ, a wholly owned subsidiary of the British Medical Association. The BMA grants editorial freedom to the editor of The BMJ (currently Dr. Fiona Godlee). The views expressed in the journal are those of the authors and do not necessarily reflect the view of the BMA. The BMJ follows guidelines on editorial independence produced by the World Association of Medical Editors and the code on good publication practice produced by the Committee on Publication Ethics, the recommendations of the International Committee of Medical Journal Editors, and checklists and advice for good research reporting of the EQUATOR network.
出版模式BMJ由BMJ出版,英国医学协会的一个完全拥有的子公司。BMA授予编辑自由的BMJ的编辑(目前的菲奥娜·戈德利医生)。在杂志中表达的观点只是作者的观点,并不一定反映BMA的观点。BMJ遵循指南编辑独立性产生的世界医学协会的编辑和生成的代码在良好的出版实践委员会出版伦理、国际医学期刊编辑委员会的建议,和检查列表和建议赤道网络的研究报告
模型化语言(modeling language)

https://searchenterpriseai.techtarget.com/definition/language-modeling
Definition
Language modeling (LM) is the use of various statistical and probabilistic techniques to determine the probability of a given sequence of words occurring in a sentence. Language models analyze bodies of text data to provide a basis for their word predictions. They are used in natural language processing (NLP) applications, particularly ones that generate text as an output. Some of these applications include , machine translation and question answering.
理解:语言模型分析文本数据体,为它们的词预测提供基础。它们用于自然语言处理(NLP)应用程序,特别是生成文本作为输出的应用程序。这些应用包括机器翻译和问答。
How language modeling works
Language models determine word probability by analyzing text data. They interpret this data by feeding it through an algorithm that establishes rules for context in natural language. Then, the model applies these rules in language tasks to accurately predict or produce new sentences. The model essentially learns the features and characteristics of basic language and uses those features to understand new phrases.
理解:通过一种算法来解释这些数据,这种算法以自然语言为上下文建立规则。然后,该模型将这些规则应用于语言任务,以准确预测或生成新的句子。该模型从本质上学习基本语言的特征和特征,并使用这些特征来理解新短语。
Importance of language modeling
Language modeling is crucial in modern NLP applications. It is the reason that machines can understand qualitative information. Each language model type, in one way or another, turns qualitative information into quantitative information. This allows people to communicate with machines as they do with each other to a limited extent.
理解:这就是机器能够理解定性信息的原因。每种语言模型类型都以某种方式将定性信息转化为定量信息。这使得人们可以在有限的范围内与机器进行交流,就像他们彼此之间的交流一样。

https://www.techopedia.com/definition/20810/modeling-language
Definition - What does Modeling Language mean?
Modeling language is any graphical or textual computer language that
provisions the design and construction of structures and models following a systematic set of rules and frameworks.
Modeling language is part of and similar to artificial language.
建模语言是任何图形化或文本化的计算机语言,它按照一套系统的规则和框架规定结构和模型的设计和构造。建模语言是人工语言的一部分,与人工语言有着相似之处。

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml/
What is Unified Modeling Language (UML)?
UML, short for Unified Modeling Language, is a standardized modeling language consisting of an integrated set of diagrams, developed to help system and software developers for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing object oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software. In this article, we will give you detailed ideas about what is UML, the history of UML and a description of each UML diagram type, along with UML examples.
理解:UML是统一建模语言的缩写,是一种标准化的建模语言,由一组集成的图组成,开发用于帮助系统和软件开发人员指定、可视化、构造和记录软件系统的工件,以及用于业务建模和其他非软件系统。UML代表了在大型和复杂系统的建模中被证明成功的最佳工程实践的集合。UML是面向对象软件开发和软件开发过程中非常重要的一部分。UML主要使用图形符号来表达软件项目的设计。使用UML可以帮助项目团队进行交流,探索潜在的设计,并验证软件的架构设计。在本文中,我们将详细介绍什么是UML, UML的历史和每种UML图类型的描述,以及UML示例。
collaboration diagram(协作图)
https://www.javatpoint.com/uml-collaboration-diagram
The collaboration diagram is used to show the relationship between the objects in a system. Both the sequence and the collaboration diagrams represent the same information but differently. Instead of showing the flow of messages, it depicts the architecture of the object residing in the system as it is based on object-oriented programming. An object consists of several features. Multiple objects present in the system are connected to each other. The collaboration diagram, which is also known as a communication diagram, is used to portray the object’s architecture in the system.

理解:协作图用于显示系统中对象之间的关系。序列图和协作图都表示相同但不同的信息。它没有显示消息流,而是描述驻留在系统中的对象的体系结构,因为它是基于面向对象编程的。一个对象由几个特征组成。系统中存在的多个对象相互连接。协作图,也称为通信图,用于描述系统中对象的体系结构。

https://searchsoftwarequality.techtarget.com/definition/collaboration-diagram
A collaboration diagram, also known as a communication diagram, is an illustration of the relationships and interactions among software objects in the Unified Modeling Language (UML). These diagrams can be used to portray the dynamic behavior of a particular use case and define the role of each object.
Collaboration diagrams are created by first identifying the structural elements required to carry out the functionality of an interaction. A model is then built using the relationships between those elements. Several vendors offer software for creating and editing collaboration diagrams.

理解:协作图,也称为通信图,是统一建模语言(UML)中软件对象之间的关系和交互的图示。这些图可以用来描述特定用例的动态行为,并定义每个对象的角色。
协作图是通过首先确定执行交互功能所需的结构元素来创建的。然后使用这些元素之间的关系构建一个模型。一些供应商提供了用于创建和编辑协作图的软件。

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml-collaboration-diagram/

Program activities(程序活动)
https://www.examples.com/business/program-outline.html

指电脑软件运行程序,通常包括系统进程、软件工具等。

Waterfall model (瀑布型模型)
https://airbrake.io/blog/sdlc/waterfall-model

First introduced by Dr. Winston W. Royce in a paper published in 1970, the waterfall model is a software development process. The waterfall model emphasizes that a logical progression of steps be taken throughout the software development life cycle (SDLC), much like the cascading steps down an incremental waterfall. While the popularity of the waterfall model has waned over recent years in favor of more agile methodologies, the logical nature of the sequential process used in the waterfall method cannot be denied, and it remains a common design process in the industry.

瀑布模型最初是由Winston W.Royce博士在1970年发表的一篇论文中介绍的,它是一个软件开发过程。瀑布模型强调了在整个软件开发生命周期(SDLC)中所采取的步骤的逻辑顺序,很像是沿着增量瀑布的级联步骤。虽然瀑布模型的流行在最近几年已经减弱,取而代之的是更加敏捷的方法论,但是瀑布方法中使用的顺序过程的逻辑性质是不可否认的,它仍然是业界常见的设计过程。

Incremental development (增量式开发)
https://www.technipages.com/definition/incremental-development

Incremental development in software engineering is a process methodology that emphasizes the virtue of taking small steps toward the goal. In contrast to the waterfall model of software development, in which a working system becomes available only in the later phases of the project, incremental development begins with a small, working system that is improved and expanded step by step.

软件工程中的增量开发是一种过程方法论,强调朝着目标迈出一小步的优点。与软件开发的瀑布模型(其中一个工作系统只在项目的后期可用)不同,增量开发是从一个逐步改进和扩展的小型工作系统开始的。

Reuse oriented software engineering (再利用导向式软件工程)
https://pdfs.semanticscholar.org/1169/55862820be5e1f46d3a4bce4b30db09b70cd.pdf

面向重用的软件工程通过重用现有的经验来覆盖软件系统的开发和演化过程(即,产品、过程和知识)。软件重用的主要问题之一是缺乏理解可重用经验的知识和技能。

Rational Unified Process (Rational统一过程)
https://techterms.com/definition/rup

RUP is a software development process from Rational, a division of IBM. It divides the development process into four distinct phases that each involve business modeling, analysis and design, implementation, testing, and deployment. The four phases are:

Inception - The idea for the project is stated. The development team determines if the project is worth pursuing and what resources will be needed.
Elaboration - The project’s architecture and required resources are further evaluated. Developers consider possible applications of the software and costs associated with the development.
Construction - The project is developed and completed. The software is designed, written, and tested.
Transition - The software is released to the public. Final adjustments or updates are made based on feedback from end users.

RUP是IBM的一个分支Rational的软件开发过程。它将开发过程分为四个不同的阶段,每个阶段都涉及业务建模、分析和设计、实现、测试和部署。这四个阶段是:

立项-该项目的想法是明确的。开发团队决定项目是否值得追求,以及需要什么资源。
精化-进一步评估项目的架构和所需的资源。开发人员考虑软件的可能应用程序和与开发相关的成本。
建设-项目开发和完成。软件经过设计、编写和测试。
过渡-软件向公众发布。根据最终用户的反馈进行最终调整或更新。

Spiral development (螺旋式开发)
https://xbsoftware.com/blog/software-development-life-cycle-spiral-model/

Spiral Model consists of four main software development life cycle phases. The whole development process repeatedly passes through these stages. Each iteration is called Spiral.

Four main phases are:

1.Determine Objectives
2.Alternatives
3.Constraints
4.Planning Phase

This is where everything starts. Team members try to gather the product objectives, requirements (e.g. Business Requirement Specifications or BRS, System Requirement Specifications or SRS), alternatives in design, etc. In the subsequent spirals, all requirements are generated according to the customer’s feedback. Thus, permanent communication between the customer and project management is crucial.

Evaluate Alternatives, Identify, Resolve Risks, or Risk Analysis Phase is probably the most significant development stage.

螺旋模型由四个主要的软件开发生命周期阶段组成。整个开发过程反复经过这些阶段。每次迭代称为螺旋。

四个主要阶段是:

1.确定目标
2.选择
3.约束条件
4.规划阶段

一切都是从这里开始的。团队成员试图收集产品目标、需求(如业务需求规范或BRS、系统需求规范或SRS)、设计方案等。在随后的螺旋中,所有需求都是根据客户的反馈生成的。因此,客户和项目管理之间的永久沟通至关重要。

评估备选方案、识别、解决风险或风险分析阶段可能是最重要的开发阶段。

Incremental delivery (增量式交付)
http://softwaredevelopmenttoday.com/2015/09/how-to-explain-agile-and-incremental-delivery-to-anyone/

增量交付(incremental delivery)是多次将一个系统交付为产品(或者投放市场)的实践,这需要一系列的扩展能力。IID和敏捷方法提倡这种实践。增量交付周期通常为3~12个月。

Visual model software (可视化的模型软件)
https://www.mendix.com/visual-modeling/

使用可视化建模功能,可以提高开发效率。正确的可视化建模平台利用预先构建的组件和业务逻辑工作流以人类可读的形式以图形方式表示应用程序。随着用户体验到构建web和移动应用程序的方便性和速度,对可视化建模的兴趣继续增加。

Software requirements (软件需求)
https://www.tutorialspoint.com/software_engineering/software_requirements.htm

The software requirements are description of features and functionalities of the target system. Requirements convey the expectations of users from the software product. The requirements can be obvious or hidden, known or unknown, expected or unexpected from client’s point of view.

软件需求是对目标系统的特性和功能的描述。需求传达了用户对软件产品的期望。从客户的角度来看,需求可以是明显的或隐藏的、已知的或未知的、预期的或意外的。

Software requirements documentation (软件需求文件)
https://dzone.com/articles/software-requirement-document-1
When a System or an application needs to be developed there will be an objective what that system is going to serve. Requirement document is written in order to make sure that the application is developed and tested in such a way that the application will serve the same objective once it’s released.

当一个系统或一个应用程序需要开发时,将有一个目标,即该系统将为什么服务。需求文档的编写是为了确保应用程序的开发和测试方式能够使应用程序在发布后服务于相同的目标。

总结
通过学习需求工程我初步了解到了一些关于他的阶段以及各阶段的功能与重要性
需求工程活动主要分为:需求获取、需求分析、需求规格说明、需求验证、需求管理。
需求获取阶段要确定项目的前景和范围,确定问题域、目标、涉众等,进行问题分析、目标分析、涉众分析、业务分析等获取到具体的需求。
需求分析阶段将获取到的需求进行分析,将需求进行细化、确定需求的优先级等,同时进行过程建模、数据建模等建立系统的各种模型。
在课堂上老师教会了我们使用EA软件,学习了如何对软件的体系结构、功能对象等进行建模,这可以让我们在未来的工作中更快的,更高效率的进行编程工作,让我意识到了需求分析的重要性。

你可能感兴趣的:(作业,windows)