A002-186-2639-高艳萍

在这里插入图片描述

1.序列图(sequence diagram)

1.1参考网站

https://creately.com/blog/diagrams/sequence-diagram-tutorial/
https://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html
https://www.smartdraw.com/sequence-diagram/

1.2名词解释

What is a sequence diagram
Sequence diagrams are commonly used by developers to model the interaction between objects in a single use case. They illustrate how different parts of the system interact with each other to perform functions, and the order in which interactions occur when specific use cases are executed. In simpler terms, sequence diagrams show different parts of the system to “sequence” something.
Sequence diagram symbols
The sequence diagram is structured to represent a timeline that starts at the top and descends gradually to mark the interaction sequence. Each object has a column, and the messages exchanged between them are represented by arrows.
什么是序列图:
开发人员常用的序列图对单个用例中对象之间的交互进行建模。它们说明了系统的不同部分如何相互交互以执行函数,以及执行特定用例时交互发生的顺序。用更简单的话说,序列图显示系统的不同部分以"序列"完成某项工作。
序列图符号
序列图的结构方式是表示从顶部开始并逐渐下降以标记交互序列的时间线。每个对象都有一列,它们之间交换的消息由箭头表示。
序列图各个部分的快速概述:
生命线表示法
在这里插入图片描述
序列图由几个生命线符号(这些符号)为两者,这些符号应水平排列在关系图的顶部。任何两个生命线符号都不应相互重叠。它们表示序列中系统中相互交互的不同对象或部件。当特定序列图归用例所有时,使用具有执行组件元素符号的生命线表示法。
在这里插入图片描述
激活栏
激活栏是放置在生命线上的框。它用于指示对象在两个对象之间的交互期间处于活动状态(或实例化)。矩形的长度指示对象保持活动状态的持续时间。在序列图中,当一个对象向另一个对象发送消息时,将发生两个对象之间的交互。在消息调用方(发送消息的对象)和消息接收器(接收消息的对象)的生命线上使用激活栏,表明两者都在消息交换期间处于活动状态/实例化。
在这里插入图片描述

1.3项目联系

在这里插入图片描述
该图为我们组的序列图,我们组的序列图中包含有客户,管理员,房东三个角色,客户需要登录才能使用系统中的预约看房功能,登录后会返回成功或失败的信息。房东发布房源后若有不正常的信息,管理员会调整相关信息并通知房东。用户登陆后预约看房后会返回预约信息,返回预约成功信息后会返回提醒信息给房东。

2.需求基线(requirements baseline)

2.1参考网站

https://www.jamasoftware.com/blog/defining-requirement-baseline/
https://security.georgetown.edu/config-mgt-policy/baseline-config-guidelines/
https://www.ibm.com/support/knowledgecenter/en/SSYQBZ_9.6.1/com.ibm.doors.administering.doc/topics/c_aboutbaselines.html

2.2名词解释

A requirements baseline is a timely snapshot that represents a set of requirements for a specific product release that has been committed, reviewed, and approved.

This “release” may be a complete deliverable or any interim development increment for the product. When stakeholders “sign off” requirements, what they really do is agree and commit to specific requirements Benchmarks (whether or not they are considering them in these terms or not).
需求基准是及时的快照,代表已承诺,已审核和已批准的特定产品版本的一组需求。
该“发布”可能是完整的交付产品,也可能是该产品的任何中期开发增量。当利益相关者“签署”需求时,他们真正在做的就是同意并致力于特定的需求基准(无论他们是否以这些术语考虑)。
一旦项目团队建立了需求基准,团队就应遵循务实的变更控制流程,以就添加新请求的功能以及更改或删除现有需求做出良好的业务和技术决策。
变更控制过程与扼杀变更无关。这是为决策者提供信息,使他们能够及时,适当地做出决定,以修改计划的功能。计划的功能是基准。
通常,还给基线指定了唯一的名称,以便所有项目参与者都可以明确地引用它。良好的配置管理实践使团队可以准确地重建任何先前的基准及其所有组件。
范围定义将内容区分是什么,而需求基线则仅明确标识项目将要实施的那些需求规范。基线不是有形项目,而是已定义的项目列表。一个可能的存储位置是软件需求规范(SRS)文档。
如果该SRS文档仅包含(以及全部)特定产品版本的要求,则SRS构成该版本的要求基线。但是,SRS文档可能包括其他优先级较低的要求,这些要求将在以后的发行版中发布。
相反,一个大型项目可能需要几个软件,硬件和接口要求规范,才能完全定义基线的组件。目的是使项目干系人对即将发布的发行版有确切的了解。
也许您是将需求存储在需求管理解决方案中,而不是文档中。在这种情况下,您可以将基准定义为针对给定发行版计划的数据库中存储的需求的特定子集。

2.3项目联系

在我们小组的开发的租房系统中,我们项目的需求基线要求项目雏形就必须要实现以下的功能。
房屋管理功能:房屋管理这一模块包括房屋信息管理和房屋租赁管理。房屋信息管理中包括了房屋的添加、删除与更新操作。房屋在添加后上传到app后,若长达一年时间无人租用,系统将会自动下架。房屋的添加可以设置两种租金,一种是单租租金,一种是合租租金,合租租金一般大于单租租金。房屋租赁管理模块中实现用户的租房与退房等功能。进行房屋租赁操作时,需要查看当前房源是否处于流通状态(就是有人预约看房的意思)、是否有房以及是否有人预订等。

房屋查询功能:房屋查询提供用户与系统查询房屋的功能,放阔对房屋类型、房屋装修类型、房屋区域、房屋面积、房屋价位的查询等。

用户管理功能:这一功能包括了添加用户、删除用户、查询用户相关信息。

用户个人信息管理:个人信息管理实现用户注册和登录身份验证,查看个人信息,修改个人信息的功能。

房屋租用管理以及合租管理功能:房屋租用管理模块中可以实现当前租赁信息中续租房屋、在房屋预订信息中可以查看当前所预订房屋的状态,并可以取消当前预订的房屋等功能。合租管理功能可以实现在预约合租房屋信息中可以查看当前所预订房屋相关信息,并可以取消当前预订的合租房屋等功能。

用户信息查询功能:用户在点击房屋信息时,会有所属房东的id,点击房东id便会显示房东相关详细信息(用户名,性别,电话号码,信誉度)。房东成功租房后,在已租出房间信息页面中会有租户id,点击租户id便会显示租户相关详细信息(用户名,性别,电话号码,信誉度)。

合租功能:用户看中某间房子后,点击合租按钮,系统会根据信誉度以及用户在交了一定的租金之后决定是否将房屋信息便会存到合租信息表中。房东设置的合租租金大于单人租金,合租人数的设置根据房间人数来设置,租户在付了平分后的合租租金即可入住。

3.性能要求(performance requirement)

3.1参考网站

https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/performance/doc_perf_reqs.html
https://checkpointech.com/what-performance-requirements/
http://agileload.com/agileload/blog/2012/11/16/performance-testing-requirements-gathering—whitepaper

3.2名词解释

For each different type of user computer interaction, the maximum satisfactory response time to be experienced most of the time, and the definition of most time. The response time starts from the time when the user performs the action of saying “go” until the user receives enough feedback from the computer to continue the task. This is the user’s subjective waiting time. It doesn’t go from the entry to the subroutine until the first write statement.
If the user refuses to be interested in the response time and indicates that he is only interested in the results, he can ask if “ten times the current estimate of the independent execution time” is acceptable. If the answer is “yes,” you can continue to discuss throughput. Otherwise, you can continue to discuss response time with the user’s concentration.
在确定和量化性能需求时,重要的是要确定特定需求背后的原因。这是一般能力计划过程的一部分。用户可能将其要求的陈述基于与程序员的假设不符的关于程序逻辑的假设。
至少,一组性能要求应记录以下内容:
对于每种不同类型的用户-计算机交互,大部分时间要经历的最大满意响应时间,以及大多数时间的定义。响应时间是从用户执行说“ Go”的动作的时间开始,直到用户从计算机接收到足够的反馈以继续执行任务为止的时间。这是用户的主观等待时间。直到第一个write语句,它才从入口到子例程。
如果用户拒绝对响应时间感兴趣,并指出仅对结果感兴趣,则可以询问“独立执行时间的当前估计的十倍”是否可以接受。如果答案为“是”,则可以继续讨论吞吐量。否则,您可以在用户的​​全神贯注下继续讨论响应时间。
其余时间最少可接受的响应时间。较长的响应时间可能导致用户认为系统已关闭。您还需要指定其余时间;例如一天的高峰时间,即互动的1%。在一天中的特定时间,响应时间的降低可能会更加昂贵或痛苦。
典型的吞吐量及其所需的时间。这不是一个偶然的考虑。例如,一个程序的要求可能是每天运行两次:上午10:00和下午3:15。如果这是受CPU限制的程序,可以运行15分钟,并计划在多用户系统上运行,需要进行一些谈判。
最大吞吐量周期的大小和时间。
预期的请求混合以及混合随时间的变化。
如果是多用户应用程序,则每台计算机的用户数和用户总数。此描述应包括这些用户登录和注销的时间,以及他们假定的击键率,完成的请求和思考时间。您可能想调查思考时间是否随先前和之后的请求而系统地变化。
用户对将要运行工作负载的计算机的任何假设。如果用户考虑到特定的现有计算机,请确保您早日知道。同样,如果用户假设使用特定的类型,大小,成本,位置,互连或任何其他变量来限制您满足前述要求的能力,则该假设也将成为要求的一部分。在开发,测试或首次安装程序的系统上,可能无法评估满意度。

3.3项目联系

在每一个软件项目中,系统的性能都是必须要考虑的,为此我们需要为性能考虑最低的要求,下面是我们组租房系统的性能要求。性能要求:在95%的情况下,一般时段响应时间不超过1.5秒,高峰时段不超过4秒。定位系统从点击到第一个界面显示出来所需要的时间不得超过300毫秒。在网络畅通时,拨号连接GPRS网络所需时间不得超过5秒。

4.系统边界(system boundary)

4.1参考网站

https://www.sciencedirect.com/topics/agricultural-and-biological-sciences/system-boundary
https://chem.libretexts.org/Bookshelves/Physical_and_Theoretical_Chemistry_Textbook_Maps/DeVoes_Thermodynamics_and_Chemistry/02%3A_Systems_and_Their_Properties/21_The_System%2C_Surroundings%2C_and_Boundary
https://www.answers.com/Q/What_is_a_system_boundary

4.2名词解释

Establishing the system boundary of analysis refers to determining and proving which aspects of the product life cycle should be included in the life cycle assessment study (ISO, 2006). At least the systematic importance of considering a range of variables and their potential impacts on the decision-making should be understood from the perspective of the potential impact of a range of research activities on sustainability.
建立分析的系统边界是指确定和证明产品生命周期的哪些方面应纳入生命周期评估研究(ISO,2006年)。由于具体活动及其相关的资源使用和排放概况对研究报告中可能审议的一系列潜在影响指标具有可变的重要性,系统边界决策至少应部分地从感兴趣的特定可持续性影响中了解。对于侧重于营养考虑与可持续性影响(包括人类健康)之间潜在相互作用的研究,必须确保建立系统边界,以便包括与其中一种或一种关切有关的所有生命周期活动。例如,从资源使用或温室气体排放的角度来看,列入作物农业中某些农药的少量投入可能并不重要,但必须包括用于评估潜在的人类和生态系统毒性影响。在这方面,LCA中的截止标准概念特别重要,它指的是排除边际重要性流动的既定阈值。

4.3项目联系

系统的边界在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,如果边界划定得太窄。一些对系统行为有显著影响的因素未被认真分析和对待,系统就可能产生令你意想不到的行为。就是我们常说的“副作用”。如果边界划分过大。一味地想着“我的模型比你的大”,最后结果堆积了大量的信息,除了浪费了精力,也容易遮掩问题的真实答案。如你需要考虑家门口的河流治理问题,只需要考虑这条河的上游下游,以及河流两岸的土壤和地下水,而就不需要考虑其他河流的影响,或者考虑地球水循环的问题。这显然是浪费精力。

5.异步动作(asynchronous action)

5.1参考网站

https://mobx-state-tree.js.org/concepts/async-actions
https://blog.logrocket.com/managing-asynchronous-actions-in-redux-1bc7d28a00c6/
https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4

5.2名词解释

In web applications, when you see a large number of concurrent requests or load bursts (the concurrency suddenly increases), making web service call asynchronous will increase the response ability of the application. Asynchronous requests take the same time to process as synchronous requests. If a request makes a web service call that takes two seconds to complete, the request takes two seconds, whether synchronous or asynchronous. However, during an asynchronous call, the thread is not prevented from responding to other requests, waiting for the first request to complete. Therefore, when asynchronous requests prevent the growth of the request queue and thread pool, there are many concurrent requests calling long-running operations.
在 Web 应用中,在启动时看到大量并发请求或负载突发(并发性突然增加),使 Web 服务调用异步会增加应用的响应能力。异步请求处理的时间与同步请求相同。如果请求进行需要两秒钟才能完成的 Web 服务调用,则请求需要两秒钟的时间,无论是同步执行还是异步执行。但是,在异步调用期间,线程不会被阻止响应其他请求,而等待第一个请求完成。因此,异步请求阻止请求队列和线程池增长时,有许多并发请求调用长时间运行的操作。
选择同步或异步操作方法
通常,对以下条件使用同步方法:
操作简单或短运行。
简单比效率更重要。
操作主要是 CPU 操作,而不是涉及大量磁盘或网络开销的操作。在 CPU 绑定操作上使用异步操作方法不会带来任何好处,并会导致更多的开销。
通常,对以下条件使用异步方法:
您调用的服务可以通过异步方法使用,并且使用 .NET 4.5 或更高版本。
操作是网络绑定或 I/O 绑定,而不是 CPU 绑定。
并行性比代码的简单性更重要。
您希望提供一种允许用户取消长时间运行的请求的机制。
当切换线程的好处大于上下文切换的成本时。通常,如果同步方法在请求线程上等待,而不执行任何操作,ASP.NET方法是异步的。通过将调用异步化,ASP.NET请求线程不会停止,在等待 Web 服务请求完成时不执行任何工作。
测试表明,阻塞操作是站点性能的瓶颈,IIS 可以通过异步方法为这些阻塞调用提供更多请求。

5.3项目联系

在我们的租房系统中也用到了异步方法,系统的异步进程在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过异步进程这一重要因素可以加快系统页面的加载速度,给用户提供更好的体验。

6.行为特征(behavioral feature)

6.1参考网站

http://courses.cs.vt.edu/cs3604/support/Groups/First.Characteristics.html
https://www.pointillist.com/blog/behavioral-segmentation/
http://web.cs.wpi.edu/~dcb/Papers/KIC5/KIC5-Features.html

6.2名词解释

What is behavioral segmentation?
Traditional segmentation methods focus on who the customer is and the segmentation is based on demographic attributes (such as gender or age) and company attributes (such as company size or industry). However, as I discussed in my last article on customer behavior data, understanding your customers is not enough. Behavior segmentation means not only to understand customers according to their identities, but also to understand customers according to their behaviors, and to use the insights drawn from customers’ behaviors.
什么是行为细分?
传统的细分方法主要关注客户是谁和细分是基于人口统计属性(例如性别或年龄)以及公司属性(例如公司规模或行业)。但是,正如我在上一篇有关客户行为数据的文章中所讨论的那样,仅了解您的客户是不够的。行为细分是指不仅要根据客户的身份来了解客户,而且要根据客户的行为来了解客户,并使用从客户的行为中得出的见解。
行为细分是客户细分的一种形式,它基于客户在与公司/品牌互动或做出购买决定时显示的行为模式。它允许企业根据他们对产品,服务或品牌的了解,态度,使用或响应,将客户分为几类。
目的是确定使客户了解如何满足一组客户的特定需求或愿望,发现机会以优化他们的客户旅程并量化其对您的业务的潜在价值的客户群。
为什么要按行为细分客户?
根据客户的行为将客户分为不同的细分区域有以下四个主要优点:
个性化。了解在最合适的时间通过首选渠道针对不同客户群提供不同优惠的方式,以有效地帮助他们在旅途中取得成功。
可预测的。使用历史行为模式来预测和影响未来的客户行为和结果。
优先级。通过确定具有最大潜在业务影响的高价值客户群和计划,就如何最佳地分配时间,预算和资源做出更明智的决策。
性能。随时间监控增长模式和关键客户群的变化,以评估业务状况并根据目标跟踪绩效。从高层次上讲,这意味着量化客户细分市场的规模和价值,并跟踪“积极”和“消极”细分市场随着时间增长或萎缩的程度。

6.3项目联系

项目的涉众的特征在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,这是我们项目的涉众的行为特征。
租户:有租房需求以及会使用手机软件的用户
房东:拥有多余空闲可用于他人租用的房屋的房东
管理员:可随时修改房东以及租户的使用权限,对租户和房东进行管理

7.二元关联(binary association)

7.1参考网站

https://www.sciencedirect.com/topics/computer-science/binary-association
https://www.dummies.com/business/customers/associations-between-binary-variables/
https://www.uml-diagrams.org/association-reference.html

7.2名词解释

Association is a kind of relationship between classifiers. It is used to indicate that instances of classifiers can be linked to each other or combined into some aggregation logically or physically.Association is usually drawn as a solid line connecting two classifiers or a single classifier to itself. The name of the association can appear somewhere near the middle of the associated row, but not too close to any end of the row. Each end of the line can be decorated with the name of the associated end.
关联是分类器之间的一种关系,用于表明分类器的实例可以彼此链接,也可以在逻辑上或物理上组合为某种聚合。
关联通常绘制为将两个分类器或单个分类器与其自身连接的实线。关联的名称可以显示在关联行中间附近的某处,但不能太靠近该行的任何末端。该行的每个末端都可以用关联末端的名称修饰。

二进制关联关系两个类型的实例。通常将其表示为连接两个分类器的实线,或将单个分类器与其自身连接的实线(两端是不同的)。该线可以由一个或多个相连的线段组成。可以在二进制关联名称的旁边或附近放置一个小实心三角形 (以实线绘制),以显示关联末端的顺序。箭头按照关联结束的顺序沿直线指向最后一端的方向。该表示法还指示将从第一端到最后读取关联。

7.3项目联系

二元关联在我们项目设计中没有体现,学习这个单词是想了解二元关联的定义以及使用的方法。

8.(quality requirement)质量需求

8.1参考网站

https://www.mypmllc.com/project-management-resources/free-project-management-templates/quality-requirements/

8.2名词解释

A quality requirement refers to a condition or a capability that must be present in a requirement. They represent that which is needed to validate the successful completion of a project deliverable.
The easiest of quality requirements to capture are the express ones. Examples include ones written in the contract or charter and ones set forth by code or statute.
Implied quality requirements can be more elusive. Consider a custom web development project where the system is so slow that it’s rendered ineffective. There may be no express quality requirements concerning the size or compression of images; however, proper sizing and compression are required for efficient page loads. The implied quality requirement is that the page should function as expected. Break this down further and the quality requirement might dictate that all pages load in X amount of time. This implied quality requirement, now being verifiable, should be captured.
质量要求是指在需求中必须存在的条件或能力。它们表示验证项目交付结果成功完成所需的服务。最容易捕获的质量要求是快速的。例如,合同或章程中的规定和由法典或法规规定的。
隐含的质量要求可能更加难以捉摸。考虑一个自定义 Web 开发项目,其中系统速度太慢,无法失效。可能对于图像的大小或压缩没有明确的质量要求;但是,对于高效的页面加载,需要适当的大小调整和压缩。隐含的质量要求是页面应如预期的那样运行。进一步分解,质量要求可能要求所有页面在 X 时间加载。这种隐含的质量要求,现在可核查,应捕获。

8.3联系项目

不管我们在做着什么项目,我们对于完成之后的项目都必须要有质量需求,在定义了自己项目的质量需求之后,也需要根据用户去逐步完善自己的质量需求。隐含的质量要求可能更加难以捉摸。考虑一个自定义 Web 开发项目,其中系统速度太慢,无法失效。可能对于图像的大小或压缩没有明确的质量要求;但是,对于高效的页面加载,需要适当的大小调整和压缩。

9.状态图(statechart diagram)

9.1参考网站

https://sourcemaking.com/uml/modeling-it-systems/the-behavioral-view/statechart-diagram
https://www.edrawsoft.com/uml/uml-state-diagram.html
https://www.guru99.com/state-machine-transition-diagram.html

9.2名词解释

State diagrams are used to capture the behavior of software systems. UML state machine diagrams can be used to model the behavior of classes, subsystems, packages, and even the whole system. It is also known as a state diagram or a state transition diagram.
State diagrams provide us with an effective method to model the interaction or communication between external entities and systems. These events are used to model the system. The state of an object is controlled by events.
State diagrams are used to describe various states of entities in an application system.
状态图用于捕获软件系统的行为。UML状态机图可用于对类,子系统,包甚至整个系统的行为进行建模。它也称为状态图或状态转换图。态图为我们提供了一种对外部实体和系统内发生的交互或通信进行建模的有效方法。这些图用于对基于事件的系统进行建模。对象的状态借助于事件来控制。状态图用于描述应用程序系统中实体的各种状态。
UML中共有两种类型的状态机图:
1.行为状态机
它捕获系统中存在的实体的行为。
它用于表示元素的特定实现。
可以使用OOAD中的行为状态机图对系统的行为进行建模。
2.协议状态机
这些图用于捕获协议的行为。
它表示协议状态与事件有关的变化。它还表示系统中的相应更改。
它们不代表元素的特定实现。

9.3项目联系

下图为租房系统的房屋的状态图,空置房屋由房东发布,房东发布空置房屋后,需要让管理员进行审核,若审核成功,房屋的状态即为空置状态,若空置的房屋被租用,房屋的状态即变为已租用状态,在租用到期后,房屋又会变成空置状态。若审核房屋不合格,即不将房屋存入房屋信息表,并让房东重新修改房屋信息上传。
在这里插入图片描述

10.多重分类(multiple classification)

10.1参考网站

https://help.sap.com/saphelp_me60/helpdata/EN/96/d4e4535dd4414de10000000a174cb4/content.htm?no_cache=true
https://docs.microsoft.com/en-us/microsoft-365/compliance/data-classification-overview?view=o365-worldwide
https://machinelearningmastery.com/types-of-classification-in-machine-learning/

10.2名词解释

四种主要的分类任务类型:
二进制分类
多类别分类
多标签分类
分类不平衡
二进制分类
二进制分类是指具有两个类别标签的那些分类任务。
示例包括:
电子邮件垃圾邮件检测(是否为垃圾邮件)。
流失预测(流失与否)。
转化预测(购买或不购买)。
通常,二进制分类任务涉及一个属于正常状态的类和另一个属于异常状态的类。
通常使用预测每个示例的伯努利概率分布的模型来对二进制分类任务进行建模。
伯努利分布是离散的概率分布,它涵盖了事件的二进制结果为0或1的情况。对于分类,这意味着模型预测了示例属于1类或异常状态的概率。 。
可以用于二进制分类的流行算法包括:
逻辑回归
k最近邻居
决策树
支持向量机
朴素贝叶斯
多类别分类
多类别分类是指具有两个以上类别标签的那些分类任务。
示例包括:
人脸分类。
植物种类分类。
光学字符识别。
与二元分类不同,多分类不具有正常和异常结果的概念。相反,示例被分类为属于一系列已知类别中的一个。
在某些问题上,类标签的数量可能非常大。例如,模型可以预测照片属于面部识别系统中的数千个或数万个面部之一。
通常使用预测每个示例的Multinoulli概率分布的模型来对多类分类任务进行建模。
所述Multinoulli分布是覆盖的情况下的事件将有一个明确的结果,例如离散概率分布ķ在{1,2,3,…,ķ }。对于分类,这意味着该模型可以预测示例属于每个类别标签的概率。
用于二进制分类的许多算法可以用于多分类。
可用于多类分类的流行算法包括:
k最近邻居。
决策树。
天真贝叶斯。
随机森林。
渐变增强。
多标签分类
多标签分类是指具有两个或更多类别标签的那些分类任务,其中每个示例可以预测一个或多个类别标签。
通常使用预测多个输出的模型来对多标签分类任务进行建模,而每个输出都将作为伯努利概率分布进行预测。本质上,这是一个为每个示例进行多个二进制分类预测的模型。
用于二进制或多类分类的分类算法不能直接用于多标签分类。可以使用标准分类算法的专用版本,即所谓的算法的多标签版本,包括:
多标签决策树
多标签随机森林
多标签梯度增强
另一种方法是使用单独的分类算法来预测每个类别的标签。
分类不平衡
不平衡分类是指分类任务,其中每个类别中的示例数不均匀分布。
通常,不平衡分类任务是二进制分类任务,其中训练数据集中的大多数示例属于正常类,而少数示例属于异常类。
示例包括:
欺诈识别。
离群值检测。
医学诊断测试。
这些问题被建模为二进制分类任务,尽管可能需要专门的技术。
可以通过减少对多数类别的采样或对少数类别的过度采样来使用专门的技术来更改训练数据集中样本的组成。

10.3项目联系

多重分类在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,像是房屋都有一定的分类,有的房屋与其他的房屋有着一定的关联,若能够把握好分类的度,能够给用户带来更好的体验。分类别的其作用是:条理清晰,层次清晰,一目了然,能更为条理清楚地说明房屋的信息。可以根据房屋的大小,租金区间来对房屋进行分类。

11.正式参数(formal parameter)

11.1参考网站

https://stackoverflow.com/questions/18870156/what-is-a-formal-parameter
https://www.differencebetween.com/difference-between-actual-and-vs-formal-parameters/
http://www.rebellionrider.com/actual-parameters-versus-formal-parameters/

11.2名词解释

In programming, using functions is a useful concept. Functions help reduce code length and complexity. It is also easy to test, debug and improve code maintainability. Some functions may not require input, but some functions require input. You can pass data as input to a function. They are called parameters. Two common terms related to function are “actual parameter” and “formal parameter”. The difference between the actual parameter and the formal parameter is that the actual parameter is the value passed to the function when calling the function. The formal parameter is the variable defined by the function, and the function will receive the value when calling the function.
在编程中,使用函数是一个有用的概念。函数有助于减少代码长度并降低复杂性。它也很容易进行测试,调试和提高代码可维护性。某些功能可能不需要输入,但是某些功能需要输入。可以将数据作为输入传递给功能。它们被称为参数。与功能相关的两个常用术语是“实际参数”和“形式参数”。实际参数和形式参数之间的区别在于,实际参数是调用函数时传递给函数的值,形式参数是函数定义的变量,函数在调用函数时会接收值。
形式参数(参数)
作为函数声明或定义的一部分或在异常处理程序的catch子句中声明的对象或引用,在进入函数或处理程序时获取值;在以逗号分隔的列表中的标识符,该标识符以类似函数的宏定义形式紧跟在宏名称之后的括号内;或模板参数。参数也称为形式参数或形式参数。
实际参数(参数)
在函数调用表达式中以括号分隔的逗号分隔列表中的表达式,在函数式宏调用,throw操作数或表达式中以逗号分隔的逗号分隔列表中的预处理标记序列,模板实例化中以尖括号为边界的逗号分隔列表中的type-id或template-name。也称为实际参数或实际参数

11.3项目联系

参数在需求项目中很难体现出来,这个能在开发阶段时更容易体现出来,找这个词的原因主要是为了学习这个词的含义以及用法。

12.实现继承(implementation inheritance)

12.1参考网站

https://flylib.com/books/en/4.220.1.16/1/
http://whats-in-a-game.com/implementation-inheritance-is-evil/
https://www.careerride.com/Csharp-implementation-interface-inheritance.aspx

12.2名词解释

Inheritance is the concept of “is”. We say “cats are mammals” and “mammals are animals.”. When we say something is an animal, it means that it has animal properties (shared member variables) and does what animals do (shared methods).
什么是继承?
继承是“是”关系的概念。我们说“猫是哺乳动物”和“哺乳动物是动物”。当我们说某物是动物时,它意味着它具有动物的属性(共享成员变量),并且完成了动物所做的事情(共享方法)。
继承有两种类型:
接口继承–这是一个很好的选择– Java将其称为“实现”。派生的类共享该类的公共方法接口,并覆盖其实现。Java / C#通过使用“接口”(接口中的方法没有实现)来使这一点变得清楚。在C ++中,您需要创建一个抽象基类,并强制没有默认实现。接口继承是良好的继承类型,它是多态性所必需的-多态性是在面向对象编程中创建可扩展代码的最终工具。
实现继承– Java将其称为“扩展”。派生类共享基类中的数据和方法的实现。这导致了不灵活的系统,其中派生类与它们的基类紧密耦合。从现在开始,当我说继承时,这就是我称为EVIL的继承类型。EVIL的意思是“如果您对长期需要的内容不了解,可能会引起扩展性和可读性问题。”
实现继承问题:
继承关系降低了可扩展性。派生类与您的基类紧密相关,这使您无法用不同的基类来权衡基类的行为,并要求您制作不同的类来混合和匹配不同的基类。此外,在大多数语言中,这种紧密耦合的关系无法在运行时更改,您可以通过这种组合来进行更改。
从另一个类继承的每个类都会降低可读性。很难知道函数在哪里声明以及哪些类重写某些方法。
您不能将派生类与基类分开进行测试。这种对可测试性的影响是代码紧密耦合的致命伤。请记住,可测试代码是可扩展代码。

12.3项目联系

继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫普通用户,普通用户有以下属性:用户名,密码,性别,住址,联系方式。而又由车这个类派生出房东用户和管理员两个类,为房东和管理员新加一些普通用户没有的权限。

13.元建模(meta-matamodel)

13.1参考网站

https://www.sciencedirect.com/topics/computer-science/metamodeling
https://www.uml-diagrams.org/uml-meta-models.html
https://www.igi-global.com/dictionary/dsl-tunnos-commerce/35891

13.2名词解释

Metamodeling is a generic name for the practice of using a model to describe another model as an instance. A feature of meta modeling is that it must be possible to assign properties to classes in the model. This caused problems in owl 1.0, because owl 1.0 does not allow classes to be treated as individuals in this way.
元模型化是使用模型将另一个模型描述为实例的实践的通用名称。元建模的一个特征是必须可以将属性分配给模型中的类。这种做法在OWL 1.0中引起了问题,因为OWL 1.0不允许以这种方式将类视为个人。
进行元建模的动机是,模型通常需要在应用程序中扮演多个角色:特定概念应被视为一个角色中的类,而应视为另一角色中的实例。如果要对动物建模,我们可能会说BaldEagle是濒临灭绝的物种,因此将BaldEagle称为个体。在另一个应用程序中,我们可以将BaldEagle视为一个类,其成员是动物园中的特定老鹰。同样,葡萄酒鉴赏家从年份的角度来谈论个别葡萄酒。对于他们来说,年份是一个个体,但是对于正在计算他已售出多少瓶的葡萄酒商人来说,这些瓶子本身就是该年份所指示的类的个体成员。
建模语言包括三个部分:
1.抽象语法描述了语言中的概念,概念之间的关系以及有关如何将概念组合在一起的一组规则,有时称为格式规则。使用元模型描述建模语言的抽象语法。SysML基于OMG标准进行建模和元建模。OMG定义了一种元模型化机制,称为元对象工具(MOF)[23],该机制用于定义元模型,例如UML和SysML。
2.符号或具体语法描述了语言概念的可视化方式。对于SysML,在表中将语言概念映射到图形符号的符号表中描述了符号。
3. 语义通过将语言概念映射到语言所代表的领域中的概念(例如系统工程)来描述语言概念的含义。有时,语义是使用诸如数学之类的形式技术来定义的,但是在SysML中,语义大多是使用自然语言来描述的。但是,第9章第9.14.1节中描述的UML的基本UML子集(也是SysML的子集)确实具有形式语义。正在进一步努力为SysML进一步定义形式语义,并将SysML与其他形式语言(例如Modelica [24])集成。
元模型中的各个概念由元类描述,这些元类使用归纳和关联相互关联,其使用方式与模块在块定义图上相互关联的方式类似。每个元类都有一个描述和一组表征其表示的概念的属性,以及一组对这些属性的值施加规则的约束。

13.3项目联系

元模型定义了描述某一模型的规范,具体来说就是组成模型的元素和元素之间的关系。元模型是相对与模型的概念,离开了模型元模型就没有了意义。可以将元模型想象成为某种形式语言,这样模型就是一篇用该语言描述的文章,其中元模型中的元素就是该语言的词汇,元素之间的关系就是该语言的语法。

14.细化可能性模型(model elaboration)

14.1参考网站

https://www.thoughtco.com/elaboration-likelihood-model-4686036
https://jackwestin.com/resources/mcat-content/theories-of-attitude-and-behavior-change/elaboration-likelihood-model
https://oregonstate.edu/instruct/theory/elm.html

14.2名词解释

The refined possibility model claims that there are two paths to persuasion: the central path and the peripheral path. When the receiver is motivated to consider the message and has the ability to consider the message, the central path is most appropriate. If the person is concerned about the issue and is able to access the message with minimal interference, the person will elaborate on the message. If the receiver has ideas or rehearsals for the message, it may produce lasting persuasion. If the subjects practice bad ideas about information, the boomerang effect is likely to occur (away from the claimed position). If the message is ambiguous but extreme (consistent with the recipient’s), it may be persuasive.
细化可能性模型声称说服有两条路径:中心路径和外围路径。当接收者被激励去考虑消息并且具有考虑消息的能力时,最合适地使用中央路径。如果此人关心此问题,并且能够以最小的干扰来访问该消息,则该人将详细说明该消息。如果接收者对消息有想法或排练,则可能会产生持久的说服力。如果受试者对有关信息的不良想法进行了练习,则很可能会发生回旋镖效果(远离主张的位置)。如果信息含糊不清,但态度偏激(与接收者的态度一致),则可能会产生说服力。如果消息是模棱两可的,但在态度上通常是中性的(相对于接收者而言),或者如果接收者无法或不愿意听消息,那么接收者将寻找外围提示。外围提示包括这样的交流策略:尝试将专家主张的立场与接收者已经积极思考的事物(例如食物,金钱,性别)联系起来,使用专家的呼吁,并尝试在其他几位之后提出主张立场的对比效果已经介绍了接收者所期望的位置。如果周围的提示关联被接受,那么可能会有暂时的态度改变,并可能在将来进行阐述。如果外围提示关联不被接受,或者不存在,则该人保持最初的姿势。如果接收者有动力并能够详细说明信息,并且有令人信服的论据可供使用,则应使用主要的说服途径。如果接收者不太可能详细说明该消息,或者可用参数很弱,则应使用外围的说服途径。

14.3项目联系

细化可能性模型在我们项目设计中没有体现,学习这个单词是想了解细化可能性模型的定义以及使用的方法。

15.对象图(object diagram)

15.1参考网站

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-object-https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-object-diagram/
https://www.lucidchart.com/pages/uml-object-diagram
https://www.geeksforgeeks.org/unified-modeling-language-uml-object-diagrams/

15.2名词解释

An object graph can be called a screen shot in an instance system, and the relationship between them exists. Because the object graph describes the behavior of the instantiation object, we can study the behavior of the system at a specific time. Object graph is very important to describe and understand the functional requirements of the system.In other words, “an object diagram in UML is a diagram that shows a complete or partial view of the structure of a modeling system at a particular time.”
一个对象图可被称为实例的系统中的屏幕截图,它们之间存在的关系。由于对象图描述了实例化对象时的行为,因此我们能够研究特定时刻系统的行为。对象图对于描绘和理解系统的功能需求至关重要。
换句话说,“统一建模语言(UML)中的对象图是显示特定时间的建模系统结构的完整或局部视图的图。
对象图和类图之间的区别:
对象图类似于类图,只不过它显示了系统中类的实例。我们利用类图来描述实际的分类器及其关系。另一方面,对象图表示类的特定实例以及它们在某个时间点之间的关系。
什么是分类器?
在UML中,分类器是指一组元素,这些元素具有一些共同的特征,例如方法,属性和操作。可以将分类器视为抽象的元类,它为具有共同的静态和动态特征的一组实例绘制边界。例如,我们将类,对象,组件或部署节点称为UML中的分类器,因为它们定义了一组公共属性。
对象图是一种使用类似于类图的符号的结构图。我们能够通过实例化分类器来设计对象图。

15.3项目联系

对象图描述的是参与交互的各个对象在交互过程中某一时刻的状态。和类图一样,对象图对系统的静态设计或静态进程视图建模,对象图更注重现实或原型实例,这种视图主要支持系统的功能需求,对象图描述了静态的数据结构。对象图可以被看作是类图在某一时刻的实例。下面是我们组的对象图
在这里插入图片描述
功能需求为五个,其中包括发布房源,房屋管理,个人信息修改,支付功能,查询信息。

16.对象生命线(object lifeline)

16.1参考网站

https://support.microsoft.com/en-gb/office/object-lifeline-shape-2cd8ab65-36f6-46f1-ac12-3aeb1bd5534b
https://www.ibm.com/support/knowledgecenter/en/SS8PJ7_9.6.1/com.ibm.xtools.sequence.doc/topics/tcrlifeline.html
https://www.sparxsystems.com/resources/tutorials/uml2/sequence-diagram.html

16.2名词解释

A lifeline is a named element that represents a single participant in an interaction. Although the multiplicity of part and structural features may be greater than 1, the lifeline represents only one interacting entity.If the referenced connectable element is multivalued (that is, multiplicity > 1), the lifeline can have an expression (selector) that specifies which specific part the lifeline represents. If the selector is omitted, any representation of the multivalued connectable element is selected.
生命线是一个 命名元素 ,代表交互中的单个参与者。尽管零件 和结构特征的多重性可能大于1,但生命线仅代表一个 相互作用的实体。
如果引用的可连接元素是多值的(即,多重性> 1),则生命线可以具有一个表达式(选择器),该表达式指定该生命线表示哪个特定部分。如果省略选择器,则表示选择了多值可连接元素的任意代表。
在顺序图中使用的对象生命线 表示在特定时间对象的存在。如果在该图表示的时间段内创建或破坏了对象,则生命线将在适当的点停止或开始。对象的销毁用大X标记。命名对象生命线形状并添加其他属性值双击形状,然后在“ UML 属性”对话框中键入所需的名称。控制哪些属性值显示在“对象生命线”形状上右键单击该形状,单击“形状显示选项”,然后选择或清除选项以显示或隐藏值。显示破坏标记,右键单击“对象生命线”形状,单击“形状显示选项”,然后选择“破坏标记”。

16.3项目联系

对象生命线在我们小组的时序图有体现,下面是我们的时序图
在这里插入图片描述
时序图中包含有客户,管理员,房东三个角色,客户需要登录才能使用系统中的预约看房功能,登录后会返回成功或失败的信息。房东发布房源后若有不正常的信息,管理员会调整相关信息并通知房东。用户登陆后预约看房后会返回预约信息,返回预约成功信息后会返回提醒信息给房东。

17.参数元素(parameterized element)

17.1参考网站

https://docs.microsoft.com/en-us/windows-hardware/drivers/print/parameter
https://docs.oracle.com/javase/7/docs/api/javax/lang/model/element/TypeParameterElement.html
https://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v60/using-parameters-queries

17.2名词解释

以下各节描述了属性,子元素和父元素。
在这里插入图片描述

17.3项目联系

参数,也叫参变量,是一个变量。我们在研究当前问题的时候,关心某几个变量的变化以及它们之间的相互关系,其中有一个或一些叫自变量,另一个或另一些叫因变量。如果我们引入一个或一些另外的变量来描述自变量与因变量的变化,引入的变量本来并不是当前问题必须研究的变量,我们把这样的变量叫做参变量或参数。在我们的项目中,我认为要想体现参数与需求分析是否能够有联系,我认为能够有联系的更多是在开发的过程中写代码的时候才能体现参数与我们项目的联系。

18.复合聚集(composite aggregation)

18.1参考网站

https://techdifferences.com/difference-between-aggregation-and-composition.html
https://www.guru99.com/uml-aggregation-vs-composition.html
https://www.guru99.com/association-aggregation-composition-difference.html

18.2名词解释

Aggregation and composition are associated types. The main difference between aggregation and composition is that aggregation implies a relationship that children can exist independently of their parents. Reconciliation, on the other hand, implies that children cannot be independent of their parents. Object oriented programming is a common example in software development. The object is an instance of a class created by a class. These objects collaborate with each other through links. Links are physical and conceptual connections between objects. A set of links with similar structure and semantics is described as association.
聚合和组合是关联的类型。聚合与合成之间的主要区别在于聚合隐含了一种关系,即子级可以独立于父级而存在。另一方面,和解暗示了孩子不能独立于父母而不存在的关系。面向对象编程是软件开发中常用的范例。该对象是由类创建的类的实例。这些对象通过链接相互协作。链接是对象之间存在的物理和概念连接。具有相似结构和语义的链接的集合被描述为关联。
内容,聚合与构成
1.比较表
2.定义
3.关键差异
4.结论
比较表
在这里插入图片描述

比较依据 聚合 组成
基本的 总的来说,存在一种关系,即孩子可以独立于父母而存在。 在组成上,不能独立于父代而存在。
关系类型 “有个” “部分”
关联类型 弱关联 强大的联想
UML设计符号 在装配类旁边以空心菱形表示。 在装配类旁边以实心菱形表示。
功能 装配体的删除不会影响其零件。 如果删除拥有的类对象,则可能会严重影响包含的类对象。
聚合的定义
聚合可以定义为与组装类到构成类的关系。可以通过在UML(统一建模语言)中绘制线段来表示两个对象之间的关系。
聚合还用于指定多个对象,例如一对一,一对多和多对多。当类X的对象与类Y的单个对象关联时,在这种情况下,存在一对一的关系。类似地,如果一个类的单个对象与一个类的多个对象相关联,则这种关系称为一对多。例如,一辆汽车由车轮,发动机,变速箱,转向系统,主体等组成。一辆汽车是一个组件,其他零件是它的组成部分。汽车到车轮是一个集合,汽车到引擎是另一个集合,依此类推。定义每个单独的配对以指定装配中每个组成部分的多样性,因此也可以描述对象的数量。
聚合是一种关联类型,它描述对象之间的“具有”关系。例如,汽车“具有”变速箱,而汽车“具有”发动机。对于一对多关系,一个例子是一辆汽车“有”许多个轮子。
关键区别
聚合是描述“具有”关系的两个对象之间的关联的一种类型,而组合是暗示所有权的特定类型的聚合。
聚集使用一端带有空箭头的直线表示。另一方面,使用在任一端均具有填充箭头的直线来指示组成。
在聚合关系中,彼此关联的对象可以保持在系统范围内,而不会彼此关联。但是在组成关系中,彼此关联的对象不能在没有彼此的情况下保留在范围内。
在聚合中,链接的对象不依赖于另一个对象,而在组合中,对象彼此高度依赖。
在聚合中,删除单个元素不会影响另一个关联的元素。相反,在合成中,删除单个元素会影响另一个关联的元素。
聚集用实心菱形表示,而组成用空菱形表示。

18.3项目联系

聚合可以定义为与组装类到构成类的关系。可以通过在UML(统一建模语言)中绘制线段来表示两个对象之间的关系。聚合还用于指定多个对象,例如一对一,一对多和多对多。当类X的对象与类Y的单个对象关联时,在这种情况下,存在一对一的关系。类似地,如果一个类的单个对象与一个类的多个对象相关联,则这种关系称为一对多。聚合是一种关联类型,它描述对象之间的“具有”关系。例如,在租房系统中房子“具有”家具,而家具“具有”价格。对于一对多关系,一个例子是一栋房子“有”许多间房间。

19.基本类型(primitive type)

19.1参考网站

https://www.techopedia.com/definition/29494/primitive-data-type
https://en.wikibooks.org/wiki/Java_Programming/Primitive_Types
https://stackoverflow.com/questions/8790809/whats-the-difference-between-primitive-and-reference-types

19.2名词解释

Examples of basic data types include integers, floating-point numbers, and individual characters in text. Each of these raw data types is an example that does not require a large amount of data to represent. Characters correspond only to a single reference point in an ASCII chart. Integers are numbers that do not require complex identifiers, such as exponents and decimal points. Boolean values need only a binary selection between two possible values.
基本数据类型的示例包括整数,浮点数和文本中的各个字符。这些原始数据类型中的每一个都是不需要大量数据进行表示的示例。字符仅对应于ASCII图表中的单个参考点。整数是不需要复杂标识符(例如指数和小数点)的数字。布尔值仅需要在两个可能的值之间进行二进制选择。
其他数据类型可能是原始数据,也可能不是原始数据,具体取决于编程语言或系统的设计。一个常见的例子是字符串。字符串变量是放到单个动态变量中的字符集合。编程语言对字符串进行处理以根据需要对其进行修改。在这种情况下,如果字符串内置在程序中或具有特定种类的支持,则可以将其称为原始数据类型。但是,它不共享上面讨论的原始数据类型的一些基本设计元素。
关于原始数据类型的其他具体说明包括以下想法:原始数据类型不能分解为更简单的数据类型。其他人则通过将原始数据类型与用户定义的类(由用户创建的更复杂的类)进行对比来解释原始数据类型,而原始数据类型已经由程序员或开发人员正在使用的平台或接口创建。这些解释有助于解释为什么一种特定类型的变量可以用一种语言而不是另一种语言视为原始数据类型。其他专家可能会将原始数据类型与使用原始数据类型的集合创建的派生数据类型进行对比。结果,与原始数据类型相比,它们可以分解为更多基本元素。

19.3项目联系

基本数据类型有很多种,其中包括整数,浮点数和文本中的各个字符。在我们对项目进行设计的时候,往往要考虑各个实体的属性,如房子的租金为浮点数类型,房子的大小为浮点数类型,房子的风格以及房子的名称为字符串类型,房子的序号为整数类型。

20.伪状态(pseudo-state)

20.1参考网站

https://stackoverflow.com/questions/52260503/what-is-the-difference-between-terminate-pseudostate-and-final-state-in-the-stat
https://www.sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/pseudo-states.html
https://docs.nomagic.com/display/MD190/Pseudo+States

20.2名词解释

Pseudo states are often used to connect multiple transitions to paths of more complex state transitions. For example, by combining a transition into a bifurcation pseudo state with a set of transitions that exit a bifurcation pseudo state, we obtain a composite transition that results in a set of orthogonal target states.
Pseudo states are UML abstractions of various types of instantaneous vertices used in Statemachine diagrams. Pseudo states are used to represent complex transition paths.
You can create a pseudo state by dragging one of these element icons onto the diagram in enterprise architect.
伪状态通常用于将多个转换连接到更复杂的状态转换的路径。例如,通过将进入分叉伪状态的过渡与退出分叉伪状态的一组过渡进行组合,我们得到了导致一组正交目标状态的复合过渡。
伪状态是StateMachine图中使用的各种类型的瞬时顶点的UML抽象。伪状态用于表示复杂的转换路径。
您可以通过将这些元素图标之一拖到Enterprise Architect中的图上来创建伪状态。
图工具箱图标
在这里插入图片描述

20.3项目联系

伪状态在我们项目设计中没有体现,学习这个单词是想了解伪状态的定义以及使用的方法。

21.单一继承(single inheritance)

21.1参考网站

https://www.educba.com/single-inheritance-in-java/
http://www.trytoprogram.com/cplusplus-programming/single-inheritance/
https://www.techopedia.com/definition/22104/single-inheritance

21.2名词解释

Single inheritance enables derived classes to inherit properties and behaviors from a single parent class. It allows derived classes to inherit the properties and behaviors of the base class to achieve code reusability and add new functionality to existing code. This makes the code more elegant and reduces duplication. Inheritance is one of the key functions of object-oriented programming (OOP).
If you take the right approach, single inheritance is safer than multiple inheritance. If this method is overridden in a derived class or parent class constructor, it also enables the derived class to call the parent class implementation for a particular method.
The concept of inheritance has been used in many programming languages, including C + +, Java, PHP, C and Visual Basic. To implement inheritance, C + + uses the ‘:’ operator, Java and PHP use the ‘extend’ keyword, and visual basic uses the keyword ‘inherits’. Java and C only enable single inheritance, while other languages (such as C + +) support multiple inheritance.
单一继承使派生类可以从单个父类继承属性和行为。它允许派生类继承基类的属性和行为,从而实现代码的可重用性,并为现有代码添加新功能。这使代码更加优雅,并且减少了重复。继承是面向对象编程(OOP)的关键功能之一。
如果采用正确的方法,单继承比多继承更安全。如果此方法在派生类或父类构造函数中被重写,它还使派生类可以为特定方法调用父类实现。
继承概念已在许多编程语言中使用,包括C ++,Java,PHP,C#和Visual Basic。为了实现继承,C ++使用“:”运算符,而Java和PHP使用“ extend”关键字,而Visual Basic使用关键字“ inherits”。Java和C#仅启用单一继承,而其他语言(如C ++)则支持多重继承。

21.3项目联系

继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫普通用户,普通用户有以下属性:用户名,密码,性别,住址,联系方式。而又由车这个类派生出房东用户和管理员两个类,为房东和管理员新加一些普通用户没有的权限。

22.静态类(static classification)

22.1参考网站

https://www.c-sharpcorner.com/article/when-to-use-static-classes-in-c-sharp/
https://www.geeksforgeeks.org/c-sharp-static-class/
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members

22.2名词解释

A static class is basically the same non static class, but there is one difference: static classes cannot be instantiated. In other words, you cannot use the new operator to create variables of class type. Because there are no instance variables, you can use the class name itself to access members of a static class.

A static class can be used as a convenient container to operate only on input parameters without having to get or set the method set of any internal instance fields. For example, in the. Net class library, static System.Math Class contains methods that perform mathematical operations without storing or retrieving data that is unique to a particular instance of the math class. That is, members of a class are applied by specifying the class name and method name
一个静态类是基本相同的非静态类,但有一个区别:静态类不能被实例化。换句话说,您不能使用new运算符来创建类类型的变量。因为没有实例变量,所以您可以使用类名本身来访问静态类的成员。
静态类可以用作方便使用的容器,用于仅对输入参数进行操作而不必获取或设置任何内部实例字段的方法集。例如,在.NET类库中,静态System.Math类包含执行数学运算的方法,而无需存储或检索对于Math类的特定实例唯一的数据。也就是说,通过指定类名和方法名来应用类的成员
与所有类类型一样,在加载引用静态类的程序时,.NET运行时将加载静态类的类型信息。程序无法确切指定何时加载类。但是,保证在第一次在程序中引用该类之前,将其加载并初始化其字段并调用其静态构造函数。静态构造函数仅被调用一次,并且静态类在程序所驻留的应用程序域的生存期内保留在内存中。
下表提供了静态类的主要功能:
仅包含静态成员。
无法实例化。
是密封的。
不能包含实例构造函数。
因此,创建静态类与创建仅包含静态成员和私有构造函数的类基本相同。私有构造函数可防止实例化该类。使用静态类的优点是编译器可以检查以确保没有意外添加任何实例成员。编译器将保证不能创建此类的实例。
静态类是密封的,因此无法继承。它们不能从Object以外的任何类继承。静态类不能包含实例构造函数。但是,它们可以包含静态构造函数。如果非静态类包含需要非平凡初始化的静态成员,则非静态类也应定义一个静态构造函数
非静态类可以包含静态方法,字段,属性或事件。即使没有创建该类的实例,该静态成员也可以在该类上调用。始终通过类名称而不是实例名称访问静态成员。无论创建多少个类实例,静态成员只有一个副本。静态方法和属性无法访问其包含类型的非静态字段和事件,并且除非在方法参数中明确传递了实例变量,否则它们无法访问任何对象的实例变量。
声明具有某些静态成员的非静态类比将整个类声明为静态更为典型。静态字段的两种常见用法是保持已实例化的对象数量的计数,或存储必须在所有实例之间共享的值。
静态方法可以重载但不能覆盖,因为它们属于该类,而不属于该类的任何实例。尽管不能将字段声明为static const,但是const字段的行为本质上是静态的。它属于该类型,而不属于该类型的实例。因此,const可以使用与ClassName.MemberName静态字段相同的符号来访问字段。不需要对象实例。

22.3项目联系

静态类是密封的,因此无法继承。它们不能从Object以外的任何类继承。静态类不能包含实例构造函数。但是,它们可以包含静态构造函数。如果非静态类包含需要非平凡初始化的静态成员,则非静态类也应定义一个静态构造函数。在需求分析项目中很难体现出来静态类的联系,一般在开发阶段更容易看见静态类与项目的联系。

23.视图投影(view projection)

23.1参考网站

http://www.codinglabs.net/article_world_view_projection_matrix.aspx
https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_model_view_projection

https://jsantell.com/model-view-projection/

23.2名词解释

The transformations of points and polygons in webgl are handled by basic transformation matrices (such as translation, scaling and rotation). These matrices can be combined and grouped in special ways to make them useful for rendering complex 3D scenes. These matrices eventually move the original model data into a special coordinate space called clip space. This is a 2-unit-wide cube centered on (0,0,0), and the angles range from (- 1, - 1, - 1) to (1,1,1). The clipping space is compressed into 2D space and rasterized into image orthogonal projection, which is a common method to represent 3D objects. It is usually drawn by three 2D graphics. In each 2D image, the objects are viewed along parallel lines perpendicular to the graphics plane. For example, orthographic projections of a house usually consist of a top view, or plan, and a front view and a side view (front and side view).
WebGL中空间中点和多边形的各个转换由基本转换矩阵(例如平移,缩放和旋转)处理。可以将这些矩阵组合在一起并以特殊方式分组,以使其对渲染复杂的3D场景有用。这些组成的矩阵最终将原始模型数据移动到称为剪辑空间的特殊坐标空间中。这是一个2单位宽的立方体,以(0,0,0)为中心,并且角的范围从(-1,-1,-1)到(1,1,1)。该剪辑空间被压缩为2D空间并栅格化为图像正交投影,是表示三维对象的常用方法,通常是通过三个二维图形来绘制的,在每个二维图中,沿着垂直于图形平面的平行线查看对象。例如,正交投影的房子通常由顶视图,或计划,和前视图和一个侧视图(前部和侧视图)的。

23.3项目联系

视图投影在我们项目设计中没有体现,学习这个单词是想了解视图投影的定义以及使用的方法。

24.标记值(tagged value)

24.1参考网站

https://www.sparxsystems.com/enterprise_architect_user_guide/14.0/modeling_tools/thetaggedvaluestab.html
https://circle.visual-paradigm.com/docs/profile-and-stereotype/stereotype/understanding-tagged-values/
https://uml.gitbook.io/learning-uml-with-visual-paradigm/what-is-stereotypes-and-tagged-values-in-uml

24.2名词解释

标记值是可以分配给UML元素和连接器的其他属性。UML定义了元素和连接器的名称和描述之类的属性,Enterprise Architect添加了许多其他属性,例如status,phase和author,但是Tagged Values提供了一种定义自己的属性(标签)及其值的方法。
例如,需求建模者可能想要记录一组需求的所有者。UML没有指定此属性,但是可以轻松地将其添加为标签。可以创建一个名为Requirement Owner的标记,然后可以为每个Requirement元素分配一个所有者值。该信息也可以在文档中找到。
Enterprise Architect通过其强大的结构化Tagged Value工具丰富了Tagged Values的基本概念。为了帮助您输入数据,可以使用用户界面控件(例如下拉列表,旋转控件,日期选择器等)来限制值。
标记值广泛用于配置文件和技术中,以添加有助于指导元素或元数据表示的代码或模式生成的信息。
具有标记值的模型元素和特征:
这些模型组件可以使用“标记的值”窗口作为快速查看和修改“标记的值”的便捷方法:
元素-显示自己的标签以及所有继承的值
对象实例-显示自己的标签以及从其分类器获得的标签
端口和零件-显示与对象相似的信息,但显示端口/零件的“类型”而不是分类器;所有父级和Ports类型的其他结构均包含标签
属性-显示自己的标签以及从属性类型分类器收到的标签,并包含所有继承的标签
操作-显示自己的标签
连接器-显示自己的标签

24.3项目联系

标记值是用于指定模型元素性质的机制。标记值是属性字符串内的关键字/值对。这些关键字/值对称为性质说明,它们为模型元素的性质指定值。标记值必须有关键字。关键字:称为标记(tag)。标记值是代表关键字/值对所附属元素的性质的字符串。对给定元素而言,关键字必须只出现一次。可以代表模型元素的标记值。这些标记值是为模型元素定义的属性。

25.语义变化点(semantic variation point)

25.1参考网站

https://www.researchgate.net/publication/236237018_Exploiting_UML_Semantic_Variation_Points_to_Generate_Explicit_Component_Interconnections_in_Complex_Systems
https://oxford.universitypressscholarship.com/view/10.1093/acprof:oso/9780198744580.001.0001/acprof-9780198744580-chapter-5
https://www.equinoxpub.com/home/semantic-variation/

25.2名词解释

Modern modeling language provides special functions to support the detailed design of complex systems from different domains. However, in particular, the universal language provides a wide range of syntactic expression capabilities, and in some cases, it may be difficult to match the well-defined semantics. Because of this fact, this is usually inevitable, and in order for a model driven approach to be effective, modeling activities should require less work than code-based methods.
现代建模语言提供了专用功能来支持来自不同领域的复杂系统的详细设计。但是,特别是通用语言提供了广泛的句法表达能力,在某些情况下,可能难以与定义明确的语义相吻合。由于这样的事实,这通常是不可避免的,为了使模型驱动的方法富有成效,建模活动所需的工作应比基于代码的方法所需的工作量少。在UML和基于组件的设计的情况下,提供了组成系统的组件和端口实例的数量的精确语法定义。组件实例如何通过端口显式地彼此连接留为语义变化点,以便建模者自由解释相关的元模型语义。一方面,为了实现模型的可分析性,仿真和目标代码的生成,需要采用有关此语义的临时选择。另一方面,对于复杂的工业系统(由数量众多的组件和连接组成,数量级为10 ^ 4及以上),将任务的负担留给开发人员通常是不可想象的。因此,我们提出了一组用于在组件实例之间建立显式链接的语义规则,并提供了一种通过应用定义的规则自动生成这些链接的解决方案。对于复杂的工业系统(由数量级为10 ^ 4及以上的组件和连接组成),通常难以想象将这项任务的负担留给开发人员。因此,我们提出了一组用于在组件实例之间建立显式链接的语义规则,并提供了一种通过应用定义的规则自动生成这些链接的解决方案。对于复杂的工业系统(由数量级为10 ^ 4及以上的组件和连接组成),通常难以想象将这项任务的负担留给开发人员。因此,我们提出了一套用于在组件实例之间建立显式链接的语义规则,并提供了一种通过应用定义的规则自动生成这些链接的解决方案。

25.3项目联系

组件实例如何通过端口显式地彼此连接留为语义变化点,以便建模者自由解释相关的元模型语义。一方面,为了实现模型的可分析性,仿真和目标代码的生成,需要采用有关此语义的临时选择。另一方面,对于租房系统,将任务的负担留给开发人员通常是不可想象的。系统的语义变化点在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过语义变化点一重要因素可以减轻开发人员的工作。

26.运行时间(run time)

26.1参考网站

https://searchsoftwarequality.techtarget.com/definition/runtime
https://www.techwalla.com/articles/how-to-fix-pc-runtime-errors
https://www.howtogeek.com/268240/what-is-runtime-broker-and-why-is-it-running-on-my-pc/

26.2名词解释

Runtime is the time when a program is running (or executable). That is, when you start a program that runs on your computer, the program is the runtime of the program. In some programming languages, some reusable programs or “routines” are built and packaged as “runtime libraries.”. These routines can be linked to and used by any program at run time. Programmers sometimes distinguish between what is embedded in the compiler and what is embedded or used at run time. The former is sometimes referred to as “compile time.”. For years, technical writers have refused to use the term “runtime,” insisting that something like “program runtime” can avoid the use of special terms. Gradually, the term became popular. Runtime broker is the official core program of Microsoft. It first appears in Windows 8 and continues to run in Windows 10. It is used to determine whether generic applications obtained from the windows store (called Metro applications in Windows 8) declare all permissions, such as access to your location information or microphone. Although it always runs in the background, your activity may increase when you start a generic application. Think of it as a middleman, linking your generic application to configured trust and privacy settings.
运行时是指程序正在运行(或可执行)的时间。也就是说,当您启动在计算机上运行的程序时,该程序就是该程序的运行时。在某些编程语言中,某些可重用程序或“例程”被构建并打包为“运行时库”。这些例程可以在任何程序运行时链接到并由任何程序使用。程序员有时会区分在编译器时嵌入程序的内容与运行时嵌入或使用的内容。前者有时称为“编译时间”。多年来,技术作家一直拒绝使用“运行时”这个术语,坚持认为诸如“程序运行时”之类的东西可以避免使用特殊术语。逐渐地,该术语逐渐普及。Runtime Broker是Microsoft的官方核心程序,它在Windows 8中首次出现并在Windows 10中继续运行。它用于确定从Windows Store获得的通用应用程序(在Windows 8中称为Metro应用程序)是否声明了所有权限,例如可以访问您的位置信息或麦克风。尽管它始终在后台运行,但是启动通用应用程序时,您的活动可能会增加。您可以将其想象为一个中间人,将您的通用应用程序与已配置的信任和隐私设置挂钩。

26.3项目联系

系统的运行时间在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过运行时间一重要因素我们可以严格要求项目在系统中的运行时间,如果超过了规定的时间,这会给用户带来不好的体验。

27.发布模型(published model)

27.1参考网站

https://docs.microsoft.com/en-us/ai-builder/publish-model
https://docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/validate-app
https://www.bmj.com/about-bmj/publishing-model

27.2名词解释

After you have designed the model, you can publish it to a report server running in native mode or SharePoint integrated mode. After publishing a model, individuals with appropriate permissions can use the model to create reports in report builder or report designer. To use a published model, the data sources used in the model must be available on the report server. You can publish the model’s data source from the model designer while publishing the model, or you can create a separate data source on the report server and bind the data source to the published model. Before you start creating a report in report builder or report designer, and before you run a published report from a report server, the report model and its data sources must be available on the report server.
设计好模型后,可以将它发布到以本机模式或 SharePoint 集成模式运行的报表服务器。在发布模型之后,具有相应权限的个人可以在报表生成器或报表设计器中使用该模型来创建报表。若要使用已发布的模型,该模型中所用的数据源必须在报表服务器上可用。您可以在发布模型的同时也从模型设计器发布模型的数据源,也可以在报表服务器上单独创建数据源并将该数据源绑定到已发布的模型。在报表生成器或报表设计器中开始创建报表之前,以及从报表服务器运行已发布的报表之前,报表模型及其数据源必须在报表服务器上可用。

27.3项目联系

在发布模型之后,具有相应权限的个人可以在报表生成器或报表设计器中使用该模型来创建报表。若要使用已发布的模型,该模型中所用的数据源必须在报表服务器上可用。系统的发布模型在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过发布模型一重要因素我们可以减轻开发人员的工作。

28.对象流(object flow state)

28.1参考网站

https://docs.nomagic.com/display/MD190/Object+Flow
https://developer.apple.com/documentation/swiftui/state-and-data-flow
https://www.mathworks.com/help/stateflow/ug/how-chart-constructs-interact-during-execution.html

28.2名词解释

Object flows are used in activity diagrams and Statemachine diagrams. When used in an activity diagram, an object flow models activity transitions by connecting two elements and passing specific data through them. To view a sample activity diagram using object flows, see the topic object flows in activity diagrams.
In the Statemachine diagram, an object flow is the specification of a state flow or transition. It means passing object instances between elements at run time.
In UML, the object flow transformation is shown as a dotted arrow between the action state and the object. Shows the action state using the object as input with an object flow transition arrow from the object to the action state. Shows the action state of the update or generate object as output, with an object flow transition arrow pointing to the object from the action state
对象流用于活动图和StateMachine图中。在活动图中使用时,对象流连接两个元素,并通过它们传递特定数据,从而对活动过渡进行建模。要使用对象流查看示例活动图,请参阅“活动图中的对象流”主题。
在StateMachine图中,对象流是状态流或过渡的规范。它意味着在运行时在元素之间传递Object实例。
在UML中,对象流转换显示为动作状态和对象之间的虚线箭头。显示了使用对象作为输入的动作状态,并带有从对象指向动作状态的对象流转换箭头。显示了更新或产生对象作为输出的动作状态,并带有从动作状态指向该对象的对象流转换箭头。

28.3项目联系

对象流在我们小组的时序图有体现,下面是我们的时序图
在这里插入图片描述
时序图中包含有客户,管理员,房东三个角色,客户需要登录才能使用系统中的预约看房功能,登录后会返回成功或失败的信息。房东发布房源后若有不正常的信息,管理员会调整相关信息并通知房东。用户登陆后预约看房后会返回预约信息,返回预约成功信息后会返回提醒信息给房东。

29.N-Ary协会(n-ary association)

29.1参考网站

https://sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/n-aryassociation.html
https://stackoverflow.com/questions/49513124/how-the-n-ary-association-works-in-class-diagram
https://www.guru99.com/association-aggregation-composition-difference.html

29.2名词解释

We can also create a class with UML association properties. It’s called an association class. N-ary associated elements are usually used to model complex relationships between three or more elements in a class diagram. It’s not a common device, but it works well when there are dependencies between multiple elements. It is usually used with associated connectors, but relationships can include other types of connectors.
它是一种结构关系,表示对象可以与系统内的另一个对象连接或关联。可以将以下约束应用于UML关联关系。
{implicit} –隐式约束指定该关系不是明显的;它基于一个概念。
{ordered} –有序约束指定关联一端的对象集采用特定方式。
{changeable} –可更改约束指定可以根据需要添加,删除和修改系统中各个对象之间的连接。
{addOnly} –它指定可以从位于关联另一端的对象添加新连接。
{frozen} –指定当在两个对象之间插入链接时,如果冻结约束在给定链接或连接上处于活动状态,则无法对其进行修改。
我们还可以创建一个具有UML关联属性的类。它称为关联类。n-Ary关联元素通常用于在类图中对三个或更多元素之间的复杂关系进行建模。它不是常用的设备,但是在多个元素之间存在依赖关系的情况下,可以很好地使用它。它通常与关联连接器一起使用,但是关系可以包括其他类型的连接器。

29.3项目联系

这是租房系统的实体关系图,这其中能够体现其中的关联属性。图中房东拥有用户名,密码,性别,身份证号,联系方式五种属性,房东可以发布房源到房屋信息表中,也可以对自己发布的房源信息进行管理。租客拥有用户名,密码,性别,身份证号,联系方式五种属性,租客可以选择多个心仪的房屋进行租房。房屋有着房屋类型,房屋大小,房屋地址,房屋租金,房屋管理者五种属性。管理员有用户名,密码,联系方式三种属性,管理员负责管理大量存入房屋信息表中的房屋信息。
在这里插入图片描述

30.内部过渡(internal transition)

30.1参考网站

https://www.sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/internal_transition.html
https://www.thebalancecareers.com/changing-jobs-internally-1286829
https://www.smart-words.org/linking-words/transition-words.html

30.2名词解释

If you need to define an internal transition in a state, you can do this by creating an external self transition connector (where source and target are the same state) and then changing the type property of the connector. Then, the self transformation connector is removed from the diagram, and the internal transformation is displayed in the isolation zone inside the state element.
如果需要在一个状态中定义一个内部过渡,则可以通过创建一个外部自我过渡连接器(其中“源”和“目标”是相同的状态)然后更改连接器的种类属性来实现。然后,将自转换连接器从图中移除,内部转换显示在State元素内部的隔离专区中。
定义内部过渡

要查看或编辑内部Transition的属性,请双击State内隔离专区中的条目。
如果您需要多个内部过渡,包括具有相同触发器但保护装置不同的内部过渡,则可以分别创建每个过渡都具有自己的保护装置的过渡。
OMG UML规范:
OMG UML规范(UML上层结构规范,v2.4.1,第583页)指出:内部过渡的执行不会退出或重新进入其定义的状态。即使状态机在此状态下处于嵌套状态,也是如此。

30.3项目联系

下图为租房系统的房屋的状态图,空置房屋由房东发布,房东发布空置房屋后,需要让管理员进行审核,若审核成功,房屋的状态即为空置状态,若空置的房屋被租用,房屋的状态即变为已租用状态,在租用到期后,房屋又会变成空置状态。若审核房屋不合格,即不将房屋存入房屋信息表,并让房东重新修改房屋信息上传。
在这里插入图片描述

31.分析时间(analysis time)

31.1参考网站

https://www.thebalancesmb.com/time-impact-analysis-844407
https://www.publichealth.columbia.edu/research/population-health-methods/time-event-data-analysis
http://www.free-management-ebooks.com/faqps/tools-03.htm

31.2名词解释

Time impact analysis (TIA) is a method used to determine the impact of potential delays in the construction process. This process may be the preferred method to facilitate negotiation and subsequent agreement on late claims. This assessment is conducted using an existing schedule and analyzed by inputting all relevant inputs into the timesheet to demonstrate the cause or possible impact on the timesheet. Time impact analysis is usually performed by the project planning process and can be used in most construction projects. This method involves inserting or adding activities that indicate delays or changes in schedules that represent progress until a delay event occurs. In this way, the impact of these activities can be assessed.
时间影响分析(TIA)是一种用于确定施工过程中潜在延迟的影响程度的方法。此过程可能是促进就延迟索赔进行谈判和以后达成协议的首选方法。这种评估是使用现有的时间表进行的,并通过将所有相关输入输入到时间表中进行分析,以证明对时间表的原因或可能的影响。时间影响分析通常由项目计划程序执行,并且可以用于绝大多数建筑项目。此方法涉及插入或添加活动,这些活动指示延迟或进度表中的更改,这些进度表表示直到发生延迟事件为止的进度。这样就可以评估这些活动的影响。
期望
将进行时间影响分析,以预测施工过程并分析正在进行的过程和结果。它需要一个关键路径方法计划(CPM计划),该计划可以显示不包括延迟的计划与包含对延迟进行建模的活动的计划之间的差异。需要时间影响分析才能以标准方法计算实际项目延迟的结果。
分析不是项目现实模拟。旨在了解由单个事件或一系列事件引起的时间影响,以及它们将如何影响项目进度。对于当前正在进行的项目,它是一个有用的工具,它将实时呈现有关如何调整合同的想法。
时间影响分析的最终结果必须在完成后立即提交给承包商。否则,他可能会提出关于建设性加速的其他时间延长声明。这是确定发生可辩护风险时应授予承包商的延长时间的最佳技术。
遵循的程序
时间影响分析需要执行以下步骤:
1.延误应尽可能简单地描述,以最少的活动数量反映出项目延误。
2.选择要影响的时间表。该时间表应该是项目的最新更新时间表。
3.添加影响活动并对项目进度表进行必要的调整。
4.重新计算CPM,并注意项目完成日期的更改。
5.确定项目延迟量。
6.使用原始时间表确定延迟的实际日期
最终清单:
执行时间影响分析时,请确保:
1.研究并了解定向变更的范围或分析延迟的程度。
2.分析所有可能对预期延迟产生任何影响的合同文件,现场指示,合同条款,工程图,订单,规格和条件。
3.在进行时间影响分析之前,识别并描述遇到的情况。
4.确定所有可能受预期延误影响的施工活动。
5.在对施工进度表进行全面分析之后,为所有受影响的活动确定所有相关的日期-开始,工期和完成。
6.准备一套完整的文档,以定义延迟的开始时间以及当时采取的措施,并演示延迟对更新的时间表的影响,以及在需要时应如何更改其余活动以按时完成项目。
7.突出显示使项目重新按计划进行所需的非常规措施。
8.检查实际的延迟是否是指令更改的结果,而不是非原由造成的。

31.3项目联系

进行时间影响分析,以预测租房系统的项目过程并分析正在进行的过程和结果。它需要一个关键路径方法计划,该计划可以显示不包括延迟的计划与包含对延迟进行建模的活动的计划之间的差异。需要时间影响分析才能以标准方法计算实际项目延迟的结果。分析不是项目现实模拟。旨在了解由单个事件或一系列事件引起的时间影响,以及它们将如何影响项目进度。对于当前正在进行的项目,它是一个有用的工具,它将实时呈现有关如何调整合同的想法。

32.行为模型(behavioral model aspect)

32.1参考网站

https://www.scirp.org/journal/PaperInformation.aspx?PaperID=29504
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/behavior-vs-structural-diagram/
https://nursing-theory.org/theories-and-models/johnson-behavior-system-model.php

32.2名词解释

Unified Modeling Language (UML) is a standardized universal modeling language, which is now managed by the object management group (OMG) as the de facto industry standard. UML was originally created to standardize different symbol systems and software design methods. It was developed by Grady Booch, Ivar Jacobson and James Rumbaugh of rational software in 1994 – 1995, and was further developed in 1996.
统一建模语言是一种标准化的通用建模语言,如今由对象管理组(OMG)作为事实上的行业标准进行 管理。UML的创建最初是出于对不同的符号系统和软件设计方法进行标准化的愿望。它是由Rational Software的Grady Booch,Ivar Jacobson和James Rumbaugh于1994–1995年开发的,并在1996年之前进一步进行了开发。
静态与动态视图:
静态建模用于指定问题域中存在的对象,类或组件的结构。这些使用类,对象或组件表示。动态建模是指在运行时表示对象交互。它由顺序,活动,协作和状态表示。UML图代表系统的两个方面:
结构(或静态)视图:使用对象,属性,操作和关系来强调系统的静态结构。它包括类图和复合结构图。
行为(或动态)视图:通过显示对象之间的协作以及对象内部状态的更改来强调系统的动态行为。该视图包括序列图,活动图和状态机图。
在UML 2.2中,有14种类型的UML图,分为两种:
7种图表类型代表结构信息
另外7个代表行为建模的通用UML图类型,其中4个代表交互的不同方面。
行为图:
UML的五个行为图用于可视化,指定,构造和记录系统的动态方面。它显示了系统如何表现自身以及与其他实体(用户,其他系统)的交互。它们显示了数据如何在系统中移动,对象之间如何通信,时间流逝如何影响系统或哪些事件导致系统更改内部状态。由于行为图说明了系统的行为,因此它们被广泛用于描述软件系统的功能。作为示例,活动图描述了系统中组件的业务和操作逐步活动。
换句话说,行为图显示了系统如何“运动中”工作,即系统如何与外部实体和用户进行交互,如何响应输入或事件以及在什么条件下运行。

32.3项目联系

在传统的数据流模型中,控制和事件流没有被表示出来。在实时系统的分析和设计中,行为模型尤其重要。事实上,大多数商业系统是数据驱动的,所以非常适合数据流模型,相反,实时控制系统很少有数据输入,主要是事件驱动,因此,行为模型是最有效的系统行为描述方式。当然,也有同时存在数据驱动和事件驱动两类模型的系统。系统的行为模型在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过行为模型一重要因素我们可以减轻开发人员的工作。

33.布尔表达式(boolean expression)

33.1参考网站

https://www.tutorialspoint.com/discrete_mathematics/boolean_expressions_functions.htm
https://www.sciencedirect.com/topics/computer-science/boolean-expression
https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/operators-and-expressions/boolean-expressions

33.2名词解释

Boolean algebra is a Boolean algebra. The variables it handles can have two discrete values, 0 (false) and 1 (true); and logical operations. The earliest method of operating symbolic logic was invented by George Boolean, and later called Boolean algebra.
Boolean algebra has become an indispensable tool in computer science because of its wide applicability in the exchange theory, the construction of basic electronic circuits and the design of digital computers.
布尔代数是逻辑代数。它处理的变量可以有两个离散值,0(假)和1(真);和具有逻辑意义的操作。最早的操作符号逻辑的方法是乔治·布尔(George Boole)发明的,后来被称为布尔代数(Boolean Algebra)。
布尔代数因其在交换理论,构建基本电子电路和数字计算机设计方面的广泛适用性,现已成为计算机科学中不可或缺的工具。
布尔函数
布尔函数是一种特殊的数学函数F:Xñ→ Xf:Xn→X n度,其中 X= { 0 ,1 }X={0,1}是一个布尔型域,n是一个非负整数。它描述了如何从布尔输入中导出布尔输出的方法。
示例-让,F(A ,B )=一种′乙′F(A,B)=A′B′。这是从有序布尔变量对集合到集合的2度函数{ 0 ,1 }{0,1} 哪里 F(0 ,0 )= 1 ,˚F(0 ,1 )= 0 ,˚F(1 ,0 )= 0F(0,0)=1,F(0,1)=0,F(1,0)=0 和 F(1 ,1 )= 0F(1,1)=0
布尔表达式:
布尔表达式始终产生布尔值。布尔表达式由布尔常量(True或False),布尔变量和逻辑连接词的组合组成。每个布尔表达式表示一个布尔函数。
规范形式:
对于布尔表达式,有两种规范形式-
最小项和(SOM)形式
maxterms(POM)形式的乘积
最小和(SOM)或产品和(SOP)表格:
最小项是所有直接或补充形式的变量的乘积。任何布尔函数都可以表示为其1分钟项的总和,而该函数的逆可以表示为其0分钟项的总和。

33.3项目联系

在我们的项目中,我认为要想体现布尔表达式与需求分析是否能够有联系,我认为能够有联系的更多是在开发的过程中写代码的时候才能体现布尔表达式与我们项目的联系。

34.基数(cardinality)

34.1参考网站

https://whatis.techtarget.com/definition/cardinality
https://orangematter.solarwinds.com/2020/01/05/what-is-cardinality-in-a-database/
https://www.techopedia.com/definition/18/cardinality-databases

34.2名词解释

The term cardinality refers to the group of members in the quantitative base (basic). Cardinality can be finite (non negative integer) or infinite. In the United States, for example, the cardinality of this group is about 270 million; the cardinality of the set of integers is infinite.

In a table, the number of rows (or tuples) is called cardinality. In fact, the table always has a positive integer cardinality. The reason is simple: there is no table with no rows or negative rows. However, theoretically, there can be a table with an infinite cardinality. An example is a multiplication table of nonnegative integers, in which entries for all possible values are implied:
术语基数指的数量基数(碱性)中的成员组。基数可以是有限的(非负整数)或无限。例如,在美国,这组人的基数约为270,000,000;整数集的基数无穷大。
在表中,行(或元组)的数量称为基数。实际上,表始终具有正整数基数。原因很简单:不存在没有行或行数为负的表。但是,从理论上讲,可以存在具有无数个无限基数的表。一个示例是非负整数的乘法表,其中隐含所有可能值的条目:
在这里插入图片描述
基数的概念对于理论家来说很有趣,因为它已被用来证明某些无限集比另一些更大。实数集的基数大于整数集的基数,即使两个集合都是无限的。整数集的基数称为aleph-null或aleph-nought;实数集的基数称为aleph-one。
数学的一个伟大奥秘在于“几何线上的点集的基数是什么?”这一问题。一般认为它是aleph-one;线上的点集被认为与实数集一对一对应。这绝不是微不足道的假设,已被称为连续谱假说。
数据库有很多行话,而 基数 就是那些有经验的人往往会忘记他们曾经不知道的单词之一。但是,如果您不知道该问题,并且要花一点时间才能真正适应基数,那么当DBA只是将其放到句子中间而不放慢速度时,这将非常令人困惑!不要害怕:正如他们所说,我已经有了你。基数在数据库中意味着两件事。就我们的目的而言,一个比另一个更重要。让我们先做一个简单的示例,然后再深入研究对查询性能至关重要的示例。对查询性能至关重要的基数定义是 数据 基数。这就是一列中有多少个不同的值。基数的第一个含义是当您设计数据库时,即所谓的数据建模。从这个意义上说,基数表示关系是一对一,多对一还是多对多。因此,您实际上是在谈论 关系 基数。基数的官方非数据库字典定义是数学的:集合中值的数量。当应用于数据库时,含义有些不同:相对于table中的行数,它 是表列中不同值的数量。列中的重复值不计算在内。我们通常不谈论基数的 数不过。更简单地谈论“高”和“低”基数。高基数是很多独特的价值。很多重复的值是低基数。

34.3项目联系

基数在我们项目设计中没有体现,学习这个单词是想了解基数的定义以及使用的方法。

35.(data flow diagram)数据流图

35.1参考网站

https://artoftesting.com/data-flow-diagrams-dfd
https://www.lucidchart.com/pages/data-flow-diagram

35.2名词解释

A data flow diagram (DFD) graphically describes business processes and the flow of information that passes among them. DFD also describes inputs and outputs of the process; and where the data will be stored.
The data flow diagram is used to model a perspective of the system that can be easily understood by the non-technical users as the symbols and syntax used in DFD are simple. It is used by the analysts, customers, and developers to understand the requirements more clearly mainly during the requirements gathering and analysis phase of the SDLC. It shows the current system or the new system to be developed visually.
Following are the major details described in a DFD:
External devices or systems that interact with the system by sending and receiving the data
Processes that affect the data
Data flow between the processes
Data storage locations
数据流图 (DFD) 以图形方式描述了业务流程和传递其中的信息流。DFD还介绍了该过程的输入和产出;以及数据的存储位置。
数据流图用于对系统透视进行建模,非技术用户很容易理解,因为 DFD 中使用的符号和语法很简单。在 SDLC 的需求收集和分析阶段,分析师、客户和开发人员主要使用它更清楚地了解需求。它显示了当前系统或要直观开发的新系统。
以下是 DFD 中描述的主要详细信息:
通过发送和接收数据与系统交互的外部设备或系统
影响数据的进程
进程之间的数据流
数据存储位置

35.3联系项目

系统的数据流图在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,这是我们组的数据流图。
在这里插入图片描述
在这里插入图片描述
用户在选择好房屋后,系统会根据房屋名称查到房屋相关信息,在用户选择好看房时间后,就会生成订单,生成订单后用户可以支付相关费用,会生成支付凭证,在生成房屋租用凭证后在返回给用户。

36.总结与建议

36.1读书心得

本学期在这门课上学到了很多东西,学会了使用EA这个画图工具,也了解了做项目时需求分析的要点。虽然在做需求分析的时候遇到了很多问题,但最后都能解决,不管是请教老师还是问同学,都很热情的给我解答。刚开始对需求分析这个概念很模糊,不知道怎么做,很容易做成了系统分析。学完了这门课之后有了全新的了解,这门课非常的有用,对我后续做项目帮助很大!辛苦老师的指导。

36.2我组项目的发展建议

在体验其他租房软件之后,可以感受到这些软件是为了满足用户的需求而开发出来的,在很多方面都是能够让用户有着很好的体验。对于用户的需求,这些系统做了很多的考虑,考虑了用户需求的各种情况,想必是有对市场做过非常多的调研,这是我们组没有做到的地方,这也是我们组的一些问题,所以我们还是需要了解有关市场调研的流程或者教程,但我们在开发租房系统时,常常有的想法就是我要做一个什么系统,而不是用户需要一个什么系统,所以我们还是需要常常换一个角度去看我们自己开发的系统。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值