A002-186-2629-赖海洲

A002-186-2629-赖海洲_第1张图片

1.(activity diagram)活动图

1.1参考网站

https://www.smartdraw.com/activity-diagram/

1.2名词解释

An activity diagram visually presents a series of actions or flow of control in a system similar to a flowchart or a data flow diagram. Activity diagrams are often used in business process modeling. They can also describe the steps in a use case diagram. Activities modeled can be sequential and concurrent. In both cases an activity diagram will have a beginning (an initial state) and an end (a final state).
Initial State or Start Point
A small filled circle followed by an arrow represents the initial action state or the start point for any activity diagram. For activity diagram using swimlanes, make sure the start point is placed in the top left corner of the first column.
Activity or Action State
An action state represents the non-interruptible action of objects. You can draw an action state in SmartDraw using a rectangle with rounded corners.
Action Flow
Action flows, also called edges and paths, illustrate the transitions from one action state to another. They are usually drawn with an arrowed line.
Object Flow
Object flow refers to the creation and modification of objects by activities. An object flow arrow from an action to an object means that the action creates or influences the object. An object flow arrow from an object to an action indicates that the action state uses the object.
Sent and Received Signals
Signals represent how activities can be modified from outside the system. They usually appear in pairs of sent and received signals, because the state can’t change until a response is received, much like synchronous messages in a sequence diagram. For example, an authorization of payment is needed before an order can be completed.
活动图直观地呈现系统中的一系列操作或控制流,类似于流程图或数据流图。活动图通常用于业务流程建模。它们还可以描述用例图中的步骤。建模的活动可以是顺序和并发。在这两种情况下,活动图都将具有开头(初始状态)和结束(最终状态)。
初始状态或起点
填充的小圆圈后跟一个箭头表示任何活动图的初始操作状态或起点。对于使用泳道的活动图,请确保起点位于第一列的左上角。

活动或操作状态
操作状态表示对象的不可中断操作。您可以使用具有圆角的矩形在 SmartDraw 中绘制操作状态。

操作流
操作流(也称为边和路径)说明了从一个操作状态到另一个操作状态的转换。它们通常用箭头线绘制。

对象流
对象流是指按活动创建和修改对象。从操作到对象的对象流箭头意味着该操作创建或影响对象。从对象到操作的对象流箭头指示操作状态使用该对象。

发送和接收信号
信号表示如何从系统外部修改活动。它们通常以发送信号和接收信号对显示,因为状态在收到响应之前无法更改,就像序列图中的同步消息一样。例如,在订单完成之前,需要付款授权。

1.3联系项目

这是租房系统的活动图,用户在进入系统后浏览首页挑选房子,可以选择点击关注房源,以便下次快速浏览关注的房子,若用户选择代理租房,那就需要支付定金,找到合适的房屋后即可支付房租。若用户自行选择房屋,可以选择线下看房或者在线看房,在线看房是以直播看房的形式来进行,线下看房需要支付相关定金进行预约。用户在租房后也可使用在线申请维修功能,支付相关费用即可。
A002-186-2629-赖海洲_第2张图片

2.(state machine)状态机或状态图

2.1参考网站

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

2.2名词解释

The behavior of an entity is not only a direct consequence of its inputs, but it also depends on its preceding state. The past history of an entity can best be modeled by a finite state machine diagram or traditionally called automata. UML State Machine Diagrams (or sometimes referred to as state diagram, state machine or state chart) show the different states of an entity. State machine diagrams can also show how an entity responds to various events by changing from one state to another. State machine diagram is a UML diagram used to model the dynamic nature of a system.

State machine diagram typically are used to describe state-dependent behavior for an object. An object responds differently to the same event depending on what state it is in. State machine diagrams are usually applied to objects but can be applied to any element that has behavior to other entities such as: actors, use cases, methods, subsystems systems and etc. and they are typically used in conjunction with interaction diagrams (usually sequence diagrams).
实体的行为不仅是其输入的直接结果,而且取决于其前一种状态。实体的过去历史记录最好用有限状态机图或传统上称为自动机进行建模。UML状态机图(或有时称为状态图、状态机或状态图)显示实体的不同状态。状态机图还可以显示实体如何通过从一个状态更改到另一个状态来响应各种事件。状态机图是用于建模系统动态性质的 UML 图。
状态机图通常用于描述对象的状态相关行为。对象对同一事件的响应不同,具体取决于它在 中的状态。状态机关系图通常应用于对象,但可以应用于具有行为性的其他实体的任何元素,例如:参与者、用例、方法、子系统等,它们通常与交互关系图(通常是序列图)一起使用。状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。
2.3联系项目
下图为租房系统的房屋的状态图,空置房屋由房东发布,房东发布空置房屋后,需要让管理员进行审核,若审核成功,房屋的状态即为空置状态,若空置的房屋被租用,房屋的状态即变为已租用状态,在租用到期后,房屋又会变成空置状态。若审核房屋不合格,即不将房屋存入房屋信息表,并让房东重新修改房屋信息上传。
A002-186-2629-赖海洲_第3张图片

3.(Entity relationship diagram)实体关系图

3.1参考网站

https://www.sisense.com/glossary/entity-relationship-diagram/

3.2名词解释

An entity relationship diagram describes how entities relate to each other. In simple terms, it’s a picture or a framework of your business or a certain business process. (Learn more about business process modeling). Entities are the things we need to store data about. It’s an aspect of your business that needs to store data, such as a department – or sales, revenues, maybe clients.An entity relationship diagram gives a snapshot of how these entities relate to each other. You could call it the blueprint that underpins your business architecture, offering a visual representation of the relationships between different sets of data (entities). In the diagram, entities are represented by boxes with lines linking them to various attributes, which describe the entity’s qualities or characteristics. Everything links up according to the relationships between the entities – or how they interact with each other. Relationships are sometimes referred to as cardinalities, which describes the interactions numerically – but let’s simply call them relationships.
实体关系图描述实体之间的关系。简单地说,它是您的业务或特定业务流程的图片或框架。(了解有关业务流程建模的详细了解)。实体是我们需要存储数据的东西。这是您的业务的一个方面,需要存储数据,如部门 - 或销售,收入,客户等。实体关系图提供了这些实体之间如何相互关联的快照。您可以称之为支撑业务体系结构的蓝图,提供不同数据集(实体)之间关系的可视化表示。在关系图中,实体由框表示,这些框的线条将它们链接到各种属性,这些属性描述实体的品质或特征。一切都根据实体之间的关系,或者它们彼此之间的交互方式而相互关联。关系有时被称为基数,它用数字描述交互,但让我们简单地将它们称为关系。实体联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”或圆角矩形表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型连接起来,同时在”实心线段“旁标上联系的类型(1:1,1:n或m:n)。
3.3联系项目
这是租房系统的实体关系图,图中房东拥有用户名,密码,性别,身份证号,联系方式五种属性,房东可以发布房源到房屋信息表中,也可以对自己发布的房源信息进行管理。租客拥有用户名,密码,性别,身份证号,联系方式五种属性,租客可以选择多个心仪的房屋进行租房。房屋有着房屋类型,房屋大小,房屋地址,房屋租金,房屋管理者五种属性。管理员有用户名,密码,联系方式三种属性,管理员负责管理大量存入房屋信息表中的房屋信息。
A002-186-2629-赖海洲_第4张图片

4.(requirement baseline)需求基线

4.1参考网站

https://www.jamasoftware.com/blog/defining-requirement-baseline/

4.2名词解释

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.
需求基线是时间快照,表示已提交到特定产品发布的一组已商定的、经过审核的和已批准的要求。该"发布"可能是产品的完整交付产品或产品的任何临时开发增量。当利益相关者"签署"需求时,他们真正所做的是同意并致力于特定的需求基线(无论他们是否从这些术语中考虑)。一旦项目团队建立了需求基线,团队就应遵循务实的变更控制流程,就添加新请求的功能以及更改或删除现有需求做出良好的业务和技术决策。变更控制它意味着向决策者提供信息,让他们及时做出适当的决策来修改计划的功能。计划的功能是基线。通常,基线还具有唯一的名称,以便所有项目参与者都可以明确引用它。良好的配置管理实践使团队能够准确重建任何以前的基线及其所有组件。
4.3联系项目
在我们小组的开发的租房系统中,我们项目的需求基线要求项目雏形就必须要实现以下的功能。
房屋管理功能:房屋管理这一模块包括房屋信息管理和房屋租赁管理。房屋信息管理中包括了房屋的添加、删除与更新操作。房屋在添加后上传到app后,若长达一年时间无人租用,系统将会自动下架。房屋的添加可以设置两种租金,一种是单租租金,一种是合租租金,合租租金一般大于单租租金。房屋租赁管理模块中实现用户的租房与退房等功能。进行房屋租赁操作时,需要查看当前房源是否处于流通状态(就是有人预约看房的意思)、是否有房以及是否有人预订等。

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

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

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

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

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

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

自动推送功能:系统会先定位用户当前所在区域,再根据对应的区域推荐相关的附近房屋。若无法定位用户当前所在区域,则会随机从房屋信息表中抽取几个推荐给用户。

5.(context diagram)上下文图

5.1参考网站

https://www.edrawmax.com/context-diagram/

5.2名词解释

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.
It is made up of a context bubble, first drawn in the middle of the chart. It is usually a circle shape that represents a conceptual boundary that encloses a group of interconnected processes and activities of a project. The nitty-gritty details of the internal structure of a system are masked in a context diagram since it is strictly a high-level view of the system. This process is called information hiding.
A context diagram makes part of the requirements document in a project. Unlike other project diagrams, the Context diagram is not for use by the engineers/technicians but the project stakeholders. It, therefore, should be laid out in simple and understandable language for easy understanding of the items by the stakeholders when they analyze it.
上下文图也称为 O 级数据流图,是数据流图中的最高级别。它是一种深受业务分析师欢迎的工具,他们用它来了解要在项目中设计的系统的细节和边界。指出了系统和外部组件之间的信息流。
它由上下文气泡(首先绘制在图表中间)为背景气泡。它通常是一个圆形,表示一个概念边界,它包含一组相互关联的进程和项目的活动。系统内部结构的细微细节在上下文图中被掩盖,因为它严格来说是系统高级视图。此过程称为信息隐藏。
上下文图使项目中的一部分需求文档。与其他项目图不同,上下文图不是供工程师或技术人员使用,而是供项目利益相关者使用。因此,它应用简单易懂的语言进行,以便利益攸关方在分析项目时能够方便地理解这些项目。

5.3联系项目

系统的上下文图在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过上下文图这一重要因素可以减轻开发人员的工作,它显示了新的系统是如何适合其环境,它定义了所开发的系统和系统外部实体(如使用人员、硬件设备和其它信息系统)之间的边界和接口。

6.(Asynchronous Processes)异步进程

6.1参考网站

https://searchnetworking.techtarget.com/definition/asynchronous

6.2名词解释

asynchronous describes the relationship between two or more events/objects that do interact within the same system but do not occur at predetermined intervals and do not necessarily rely on each other’s existence to function. They are not coordinated with each other, meaning they could occur simultaneously or not because they have their own separate agenda.
Uses
The term itself is broad and has many applications. In information technology (IT) alone, the term has several different applications. In most IT contexts, asynchronous refers to a style of communication that can occur both between people and between technological components. Since the term casts such a wide net, even within IT, it can be difficult to reconcile its general definition when comparing its various applied uses.
异步描述两个或多个事件/对象之间的关系,这些事件/对象确实在同一系统中进行交互,但不以预定的时间间隔发生,并且不一定依赖彼此的存在来运行。它们彼此不协调,这意味着它们可以同时发生,或者不是因为它们有自己的单独的议程。
使用
这个词本身很宽泛,有很多应用。单单在信息技术 (IT) 中,该术语就有几个不同的应用。在大多数 IT 环境中,异步是指一种在人员之间和技术组件之间可能发生的通信方式。由于该术语的网如此宽,即使在 IT 内部,在比较其各种应用用途时,也很难调和其一般定义。
6.3联系项目
在我们的租房系统中也用到了异步方法,系统的异步进程在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过异步进程这一重要因素可以加快系统页面的加载速度,给用户提供更好的体验。

7.(problem domain)问题域

7.1参考网站

http://wiki.c2.com/?ProblemDomain

7.2名词解释

Problem domain (or problem space) is an engineering term referring to all information that defines the problem and constrains the solution (the constraints being part of the problem). It includes the goals that the problem owner wishes to achieve, the context within which the problem exists, and all rules that define essential functions or other aspects of any solution product. It represents the environment in which a solution will have to operate, as well as the problem itself.
Note that the customer for a software solution (the “problem owner”) doesn’t necessarily recognise the existence of a problem so much as an opportunity. An engineer sees a “problem domain” as being the set of circumstances for which s/he has to provide a solution; it’s the engineer’s problem, not necessarily the customer’s.
“[A good architect] focuses as much on the problem to be solved and the various forces on the problem as he does on the solution to the problem. [The IT industry has] a tendency to focus on the solution.”
问题域(或问题空间)是一个工程术语,它引用定义问题并约束解决方案的所有信息(约束是问题的一部分)。它包括问题所有者希望实现的目标、问题存在的上下文以及定义任何解决方案产品的基本功能或其他方面的所有规则。它表示解决方案必须运行的环境,以及问题本身。 请注意,软件解决方案的客户(“问题所有者”)不一定能认识到问题的存在,而只是抓住机会。工程师将"问题域"视为他/她必须提供解决方案的一组环境;这是工程师的问题, 不一定是客户的问题。 "(一个好的架构师)关注要解决的问题和解决问题的各种力量,就像他关注解决问题时一样。[IT 行业]倾向于专注于解决方案。

7.3联系项目

租房系统的问题域也是非常重要的一块,这是我们系统的问题域。
房东:房东在点击该app时,需要登录才可进入选择房子页面,若没有登录账号需要注册账号才可登录。房东在上传空闲房屋信息时,需要填入房屋大小,房屋租金,房屋具体地址,房屋图片等信息。房东可以自由下架或修改还未被租户租用的房子,若是想要修改已被租户租用的房子信息,需要与对应的租户联系。房东也可以租用其他房东的房屋。也具有租户的功能。
租户:租户在点击该app时,需要登录才可进入选择房子页面,若没有登录账号需要注册账号才可登录。租户进入app主页后,会看见很多房屋信息以及一个搜索栏。这些房屋信息会优先根据定位来推荐附近房屋。租户可以根据房子关键字,房子所属地区或者特征筛选房屋。租户在点击相关房屋后可以看见房子的房屋大小,房屋租金,房屋具体地址,房屋图片,所属房东等信息。租户在看中某间房子的时候,可以点击“预定租用”按钮,选择和房东联系并线下去看房,或者点击“租用”按钮,直接使用支付软件支付租金后租用,该页面还存在一个“合租”按钮,点击合租按钮后,便可以与他人合租。
管理员:管理员点击该app时,使用特定账号登录即可进入app。管理员可以看见房东上传的房屋的任何信息,并可以任意修改。也可以看见房东与租户的任何信息,可进行任意修改。

8.(multiplicity)多重性

8.1参考网站

https://www.oreilly.com/library/view/software-architects-handbook/9781788624060/735c2237-5de5-44a5-8419-739f3ab4176f.xhtml

8.2名词解释

The multiplicity is a time-dependent value with a lower and an upper border, written as x…y,indicating how many instances of the element are needed. Multiplicity allows you to define the cardinality of a relationship between classes. The multiplicity of a relationship describes the number of objects that can participate in it.
多重性是一个与时间相关的值,有一个下限和一个上限,写为x…y,表示需要多少个元素实例。多重性允许您定义类之间关系的基数。关系的多重性描述了可以参与其中的对象的数量。

8.3联系项目

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

9.(sequence diagram)时序图

9.1参考网站

https://www.lucidchart.com/pages/uml-sequence-diagram

9.2名词解释

Sequence diagrams are a popular dynamic modeling solution in UML because they specifically focus on lifelines, or the processes and objects that live simultaneously, and the messages exchanged between them to perform a function before the lifeline ends. Along with our UML diagramming tool, use this guide to learn everything there is to know about sequence diagrams in UML.
A sequence diagram is a type of interaction diagram because it describes how—and in what order—a group of objects works together. These diagrams are used by software developers and business professionals to understand requirements for a new system or to document an existing process. Sequence diagrams are sometimes known as event diagrams or event scenarios.There are two types of sequence diagrams: UML diagrams and code-based diagrams. The latter is sourced from programming code.
序列图是UML中一个流行的动态建模解决方案,因为它们特别关注生命线,或者同时存在的过程和对象,以及在生命线结束之前在它们之间交换的执行功能的消息。跟随我们的UML图表工具,使用本指南学习UML中序列图的所有知识。
序列图是交互图的一种类型,因为它描述了一组对象如何以及以何种顺序一起工作。软件开发人员和业务专业人员使用这些图来了解新系统的需求或记录现有的过程。序列图有时被称为事件图或事件场景。序列图有两种类型:UML图和基于代码的图。后者来自编程代码。
9.3联系项目
系统的时序图在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过时序图这一重要因素可以减轻开发人员的工作,通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

10.(traceability)可追溯性

10.1参考网站

https://requirements.com/Content/What-is/what-is-requirements-traceability

10.2名词解释

Requirements traceability refers to the capability of a requirements management process or tool which enables the process participant or tool user to follow the life of a requirement both forwards and backwards. It also refers the the ability to link requirements (via specific relationships) to other constructs or artifacts of the product developmetnt lifecycle.
Requirements traceability ensures that each business need is tied to an actual requirement, and that each requirement is tied to a deliverable. This is a valuable practice for the business analyst. According to A Guide to the Business Analyst’s Body of Knowledge, (BABOK 2.0), all requirements are “related to other requirements, to solution components, and to other artifacts such as test cases. . . . The goal of tracing is to ensure that requirements (and ultimately, solution components) are linked back to a business objective.” In other words, traceability ensures that every requirement has a business purpose, and that no requirement is superfluous.
需求可追溯性是指需求管理流程或工具的功能,使流程参与者或工具用户能够前后遵循需求的使用寿命。它还提到将需求(通过特定关系)链接到产品开发生命周期的其他构造或工件的能力。
需求可追溯性可确保每个业务需求都与实际需求绑定,并且每个需求都与可交付结果绑定。对于业务分析师来说,这是一个有价值的做法。根据业务分析师知识主体指南(BABOK 2.0),所有要求都与其他要求、解决方案组件以及其他工件(如测试用例)相关…跟踪的目标是确保需求(以及最终解决方案组件)与业务目标链接。换句话说,可追溯性可确保每个要求都有业务目的,并且没有要求是多余的。

10.3联系项目

系统的可追溯性在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过可追溯性这一重要因素可以减轻开发人员的工作,开发人员也能够根据追溯性相关的图找到对应的功能的开发人员。

11.(Requirements Management)需求管理

11.1参考网站

https://study.com/academy/lesson/requirements-management-plan-definition-example.html

11.2名词解释

A requirement is a capability or feature of the project deliverable that the deliverable has to conform. Ensuring the project deliverable conforms to the requirements a project manager will use calls for a requirement management plan. The process of requirement management begins with defining needed requirements, documenting the requirements and why they are needed, The requirements are then analyzed to make sure that everything is included, and then are prioritized to make sure the most important ones are completed first.
一个要求是项目可交付成果的能力或特性可交付成果必须符合。确保项目可交付成果符合要求,项目经理将使用要求制定需求管理计划的电话。需求管理的过程从定义需求,记录需求以及为什么需求开始,然后对需求进行分析以确保包括所有内容,然后确定优先级以确保最重要的需求首先完成。
需求管理计划
需求管理计划通常包括三到四个部分。需求管理计划将从导言开始。计划的“ 简介”部分定义了为什么要使用计划以及为什么需求对于管理很重要。
在第二部分将会给需求管理的概述。本部分将定义谁负责在需求中执行活动并处理需求流程。本节还将讨论项目期间将使用的报告工具,过程和过程,以便可以管理每个需求。
在第三部分的题目是需求管理。本节将讨论在定义需求时要注意的约束和/或假设,描述和定义要管理的需求,可追溯性,工作流和活动以及变更管理。
可追溯性是在整个项目生命周期中如何跟踪需求。工作流是如何监视项目以及确保检查按时完成的过程。变更管理部分通常会参考变更管理计划。第四部分是附录,可以涵盖词汇表,常用术语,参考和批准。

11.3联系项目

系统的需求管理在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,系统细分客户群的客户价值的判断是需求管理的重要工作。系统不进行需求管理就不能精准的判断客户价值,客户价值判断偏差可能导致系统经营方向的偏差。

12.(binary association)二元关联

12.1参考网站

https://www.ibm.com/support/knowledgecenter/SSCLKU_7.5.5/com.ibm.xtools.modeler.doc/topics/cassnclss.html

12.2名词解释

In UML diagrams, an association class is a class that is part of an association relationship between two other classes.
You can attach an association class to an association relationship to provide additional information about the relationship. An association class is identical to other classes and can contain operations, attributes, as well as other associations.
For example, a class called Student represents a student and has an association with a class called Course, which represents an educational course. The Student class can enroll in a course. An association class called Enrollment further defines the relationship between the Student and Course classes by providing section, grade, and semester information related to the association relationship.
As the following figure illustrates, an association class is connected to an association by a dotted line.
在UML图中,关联类是作为其他两个类之间关联关系的一部分的类。
您可以将关联类附加到关联关系,以提供关于该关系的附加信息。关联类与其他类相同,可以包含操作、属性以及其他关联。
例如,一个名为Student的类代表一个学生,并与一个名为Course的类有关联,后者代表一个教育课程。学生班可以注册一门课程。一个名为Enrollment的关联类通过提供与关联关系相关的部分、年级和学期信息,进一步定义了学生和课程类之间的关系。
如下图所示,关联类通过虚线连接到关联。
A002-186-2629-赖海洲_第5张图片

12.3联系项目

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

13.(dynamic classification)动态分类

13.1参考网站

http://etutorials.org/Programming/UML/Chapter+6.+Class+Diagrams+Advanced+Concepts/Multiple+and+Dynamic+Classification/

13.2名词解释

Classification refers to the relationship between an object and its type.
Most methods make certain assumptions about this type of relationshipassumptions that are also present in mainstream programming languages. These assumptions were questioned by Jim Odell, who felt that they were too restrictive for conceptual modeling. The assumptions are of single, static classification of objects; Odell suggests using multiple, dynamic classification of objects for conceptual models.
In single classification, an object belongs to a single type, which may inherit from supertypes. In multiple classification, an object may be described by several types that are not necessarily connected by inheritance.
Note that multiple classification is different from multiple inheritance. Multiple inheritance says that a type may have many supertypes, but that a single type must be defined for each object. Multiple classification allows multiple types for an object without defining a specific type for the purpose.
分类是指对象与其类型之间的关系。
大多数方法对这种类型的关系假设做出某些假设,这些假设也存在于主流编程语言中。这些假设受到吉姆·奥德尔的质疑,他认为这些假设对于概念建模过于严格。假设是对象的单一静态分类;Odell 建议对概念模型使用对象的多个动态分类。
在单个分类中,对象属于单个类型,该类型可能从超类型继承。在多个分类中,对象可能由几种不一定通过继承连接的类型描述。
请注意,多个分类不同于多个继承。多重继承表示类型可能具有许多超类型,但必须为每个对象定义单个类型。多重分类允许对象使用多种类型,而无需为此定义特定类型。

13.3联系项目

系统的动态分类在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过动态分类这一重要因素可以减轻开发人员的工作。

14.(non-functional requirement)非功能性需求

14.1参考网站

https://www.guru99.com/non-functional-requirement-type-example.html

14.2名词解释

NON-FUNCTIONAL REQUIREMENT (NFR) specifies the quality attribute of a software system. They judge the software system based on Responsiveness, Usability, Security, Portability and other non-functional standards that are critical to the success of the software system. Example of nonfunctional requirement, “how fast does the website load?” Failing to meet non-functional requirements can result in systems that fail to satisfy user needs.
Non-functional Requirements allows you to impose constraints or restrictions on the design of the system across the various agile backlogs. Example, the site should load in 3 seconds when the number of simultaneous users are > 10000. Description of non-functional requirements is just as critical as a functional requirement.
非功能性要求(NFR)指定软件系统的质量属性。他们根据响应性,可用性,安全性,可移植性和其他对软件系统成功至关重要的非功能性标准来判断软件系统。非功能性要求的示例,“网站加载速度有多快?” 不满足非功能性要求可能会导致系统无法满足用户需求。
非功能性需求使您可以跨各种敏捷积压对系统的设计施加约束或限制。例如,当同时用户数> 10000时,站点应在3秒内加载。非功能需求的描述与功能需求同样重要。非功能性需求,指的是信息系统中保证性能、系统可靠性、可扩展性要求等方面相应的需求要素。一般不会在用户的业务需求中进行明确的提出,需要分析人员根据实际业务需要进行调研归纳。

14.3联系项目

系统的非功能需求在任何项目中都是很重要的,在我们的租房系统项目中也不例外,这是我们组的非功能需求,其中包含兼容性:尽可能让我们的系统能够去兼容低版本的浏览器以及android4.2以上的版本。性能需求:在95%的情况下,一般时段响应时间不超过1.5秒,高峰时段不超过4秒。定位系统从点击到第一个界面显示出来所需要的时间不得超过300毫秒。在网络畅通时,拨号连接GPRS网络所需时间不得超过5秒。系统容量:支持1万用户,支持GB级数据。数据库表行数不超过10万行,数据库最大容量不超过100GB,磁盘空间至少需要4G以上。可测试性需求:一个模块的最大圈复杂度不能超过15。交付的系统必须通过单元测试,并且是100%覆盖。开发活动必须使用回归测试,并允许在12小时内重新进行完整的测试。安全需求:严格权限访问控制,用户在经过身份认证后,只能访问其权限范围内的数据,只能进行其权限范围内的操作。不同的用户具有不同的身份和权限,需要在用户身份真实可信的前提下,提供可信的授权管理服务,保护数据不被非法/越权访问和篡改,要确保数据的机密性和完整性。数据保密需求:网络传递数据应经过加密。需要保证数据在采集、传输和处理过程中不被偷窥、窃取、篡改。业务数据需要在存储时进行加密,确保不可破解。可维护性需求:90%的BUG修改时间不超过1个工作日,其他不超过2个工作日。代码的圈复杂度必须在10以内。任何对象的任何方法都不允许超过200行代码。

15.(quality requirement)质量需求

15.1参考网站

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

15.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 时间加载。这种隐含的质量要求,现在可核查,应捕获。

15.3联系项目

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

16.(control flow)控制流

16.1参考网站

https://www.gangboard.com/blog/python-control-flow/

16.2名词解释

Flow Control
Control flow (or alternatively, flow of control) refers to the specification of the order in which the individual statements, instructions or function calls of a program are executed or evaluated. In order to control the flow of a program, we have conditional programming and looping.
Conditional Programming
Python provides conditional branching with if statements and looping with while and for statements. Python also has a conditional expression—this is a kind of if statement that is Python’s answer to the ternary operator used in C-style languages. Please find below example for the conditional flow of statements.
控制流
控制流(或者控制流量)是指执行或评估程序的单个语句、指令或函数调用的顺序的规范。为了控制程序的流,我们有条件编程和循环。控制流是一种机制,它决定程序下一步应该怎么执行,比如说衣服洗完之后,我们下一步的操作就是晾晒,再比如1个人从早晨起来到晚上睡觉这一天都会经历工作、吃饭等等,这些都是控制流。
条件编程
Python 提供条件分支,使用 if 语句和 循环时 和 for 语句。Python 还具有条件表达式 — 这是一种 if 语句,它是 Python 对三元运算符( C 样式语言中使用的答案)。以下是语句的条件流示例。
A002-186-2629-赖海洲_第6张图片

16.3联系项目

控制流是指按一定的顺序排列程序元素来决定程序执行的顺序。Visual BASIC、C和其他编程语言也继承了控制流,语句按照出现在程序中的顺序执行。LabVIEW 使用顺序结构实现数据流框架中的控制流。顺序结构是一系列顺序执行的有序帧集合。顺序结构顺序执行帧0,然后是帧1、帧2,直到最后一个帧。只有最后一个帧执行完毕,数据才会离开结构。共有两种风格的顺序结构:单层顺序结构和叠层顺序结构,可以在Functions 选项卡的Programming>>Structures 子选项卡中找到。

17.(Interruptible Activity Region)可中断活动区

17.1参考网站

https://sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/interruptibleactivityregion.html

17.2名词解释

In an Activity diagram, an Interruptible Activity Region surrounds a group of Activity elements, all affected by certain interrupts in such a way that all tokens passing within the region are terminated should the interruption(s) be raised. Any processing occurring within the bounds of an Interruptible Activity Region is terminated when a flow is instigated across an interrupt flow to an external element.
You create an Interruptible Activity Region as one variant of a Region (the other is an Expansion Region). When you drag a ‘Region’ icon from the Toolbox (on the UML Activity page, for example) a prompt displays for you to select the radio button for the variant you require.
This example illustrates that an order cancellation kills any processing of the order at the receipt, filling or shipping stage.
在活动图中,可中断活动区域环绕一组活动元素,所有这些元素都受某些中断的影响,这样,如果引发中断,则在区域内传递的所有令牌都将终止。当流通过中断流启动到外部元素时,在可中断活动区域边界内发生的任何处理都将终止。活动中断区域围绕一些可被中断的动作状态图。比如下图,正常情况下【Process Order】顺序流转到【Close Order】,订单处理流程完毕;但在【Process Order】过称中,会发送【Cancel Order】请求,这时会流转到【Cancel Order】,从而订单处理流程结束。
将可中断活动区域创建为区域的一个变体(另一个是扩展区域)。从工具箱(例如UML 活动页面上)拖动"区域"图标时,将显示一个提示,供您为需要变体选择单选按钮。
此示例说明订单取消会终止在收货、填写或装运阶段对订单的任何处理。
A002-186-2629-赖海洲_第7张图片

17.3联系项目

可中断活动区域围绕着一组活动元素,所有这些活动元素都受到某些中断的影响,以致在引发中断的情况下终止通过该区域的所有令牌。当跨中断流向外部元素发起流时,在可中断活动区域的边界内发生的任何处理都将终止。

18.(Application domain)应用程序域

18.1参考网站

https://docs.microsoft.com/en-us/dotnet/framework/app-domains/application-domains

18.2名词解释

Operating systems and runtime environments typically provide some form of isolation between applications. For example, Windows uses processes to isolate applications. This isolation is necessary to ensure that code running in one application cannot adversely affect other, unrelated applications.
Application domains provide an isolation boundary for security, reliability, and versioning, and for unloading assemblies. Application domains are typically created by runtime hosts, which are responsible for bootstrapping the common language runtime before an application is run.
The benefits of isolating applications
Historically, process boundaries have been used to isolate applications running on the same computer. Each application is loaded into a separate process, which isolates the application from other applications running on the same computer.
The applications are isolated because memory addresses are process-relative; a memory pointer passed from one process to another cannot be used in any meaningful way in the target process. In addition, you cannot make direct calls between two processes. Instead, you must use proxies, which provide a level of indirection.
操作系统和运行时环境通常提供应用程序之间的某种形式的隔离。例如,Windows 使用进程来隔离应用程序。此隔离是必要的,以确保在一个应用程序中运行的代码不会对其他不相关的应用程序产生负面影响。
应用程序域为安全性、可靠性和版本控制以及卸载程序集提供了隔离边界。应用程序域通常由运行时主机创建,运行时主机负责在运行应用程序之前引导公共语言运行时。
过去,进程边界用于隔离在同一台计算机上运行的应用程序。每个应用程序都加载到一个单独的进程中,该进程将应用程序与在同一台计算机上运行的其他应用程序隔离。
应用程序是隔离的,因为内存地址与进程相关;从一个进程传递到另一个进程的内存指针不能在目标进程中以任何有意义的方式使用。此外,您不能在两个进程之间进行直接调用。相反,您必须使用代理,这些代理提供间接级别。

18.3联系项目

应用程序域是一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。在一个单独的进程中可以存在多个应用程序域

19.(Cardinality)集合

19.1参考网站

https://brilliant.org/wiki/cardinality/

19.2名词解释

The cardinality of a set is a measure of a set’s size, meaning the number of elements in the set. For instance, the set A = {1,2,4}A={1,2,4} has a cardinality of 33 for the three elements that are in it. The cardinality of a set is denoted by vertical bars, like absolute value signs; for instance, for a set AA its cardinality is denoted |A|∣A∣. When AA is finite, |A|∣A∣ is simply the number of elements in AA. When AA is infinite, |A|∣A∣ is represented by a cardinal number.
Two finite sets are considered to be of the same size if they have equal numbers of elements. To formulate this notion of size without reference to the natural numbers, one might declare two finite sets AA and BB to have the same cardinality if and only if there exists a bijection A \to BA→B. For finite sets, these two definitions are equivalent. A bijection will exist between AA and BB only when elements of AA can be paired in one-to-one correspondence with elements of BB, which necessarily requires AA and BB have the same number of elements.
集合的基数是集大小的度量,即集合中的元素数。例如,集合A = [1,2,4]A={1,2,4}具有基数33用于其中三个元素。集合的基数用垂直条表示,如绝对值符号;例如,对于一个集合AA其基数被表示|A+∣A∣.当AA是有限的,|A+∣A∣只是元素的数量AA.当AA是无限的,|A+∣A∣由基数表示。
如果两个有限集具有相等数的元素,它们将被视为大小相同。为了在不参照自然数字的情况下提出这种大小的概念,人们可能会声明两个有限集AA和BB具有相同的基数, 如果, 只有当存在双jection A = 到 B一→B.对于有限集,这两个定义是等效的。两个在AA和BB只有当元素AA可以与BB,这必然需要AA和BB具有相同数量的元素。

19.3联系项目

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

20.(state-transition diagram)TCP状态转换图

20.1参考网站

https://www.mentorway.in/what-is-state-transition-diagram/

20.2名词解释

State Transition Diagram: A State Transition Diagram is a way of describing the time-dependent behaviour of a system.
A state is an observable mode of behaviour of the system.
STD is used to develop an essential model of the system A model of how the system would behave if we had perfect technology.
One aspect of perfect technology is that our computer operates infinitely quickly. So any processing or computation that the system has to do, or any action it has to take will be done in zero time.
System states can only correspond to a period of time because it waits for something in the external to occur or wait for the current activity to change in some other activity.
This state represents some behaviour of the system that is observable & that lasts for some finite period of time.
There are variety of notations for STDs. A common one is given below showing the behaviour of a typical telephone answering machine.
A system that existed in only one state is called static state.
A system that does not exist in only on the estate is called dynamic state.
How a system changes its state depends on the system having orderly rules that govern its behaviour. A system can have many state changes but only some of them will be meaningful & valid. See the following fig.
状态转换图:状态转换图是描述系统的时间相关行为的一种方式。
状态是系统可观察到的行为模式。
状态转换图用于开发系统的基本模型一个模型,即如果我们拥有完美的技术,系统的行为方式模型。
完美技术的一个方面是,我们的计算机运行速度无限快。因此,系统必须执行的任何处理或计算,或必须执行的任何操作都将在零时间完成。
系统状态只能对应于一段时间,因为它等待外部某些情况发生或等待当前活动在其他一些活动中发生更改。
此状态表示系统可观察和持续一段时间的系统某些行为。
状态转换图有多种符号。下面给出一个常见的,显示典型电话应答机的行为。
仅存在于一种状态中的系统称为静态状态。
不只存在于庄园中的系统称为动态状态。

20.3联系项目

系统的上下文图在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过上下文图这一重要因素可以减轻开发人员的工作,状态转换图表示行为模型。状态转换图通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为,指出作为特定事件的结果将执行哪些动作(例如,处理数据等)。状态转换图描述系统对外部事件如何响应,如何动作。
状态转换图发生在软件工程的需求分析阶段。状态模型是一种描述系统对内部或者外部事件响应的行为模型。它描述系统状态和事件,以及事件引发系统在状态间的转换。这种模型适用于描述实时系统。

21.(Execution Environment)执行环境

21.1参考网站

https://sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/execution_environment.html

21.2名词解释

An Execution Environment is a node that offers an execution environment for specific types of components that are deployed on it in the form of executable artifacts. This is depicted in a Deployment diagram.
Execution Environments can be nested; for example, a database Execution Environment can be nested in an operating system Execution Environment. Components of the appropriate type are then deployed to specific Execution Environment nodes.
The OMG UML specification (UML Superstructure Specification, v2.1.1, p.210) states:
An ExecutionEnvironment is usually part of a general Node, representing the physical hardware environment on which the ExecutionEnvironment resides. In that environment, the ExecutionEnvironment implements a standard set of services that Components require at execution time (at the modeling level these services are usually implicit). For each component Deployment, aspects of these services may be determined by properties in a DeploymentSpecification for a particular kind of ExecutionEnvironment.
执行环境是一个节点,它为以可执行工件形式部署在该环境上的特定类型的组件提供执行环境。这在部署关系图中描述。
执行环境可以嵌套;例如,数据库执行环境可以嵌套在操作系统执行环境中。然后,相应类型的组件将部署到特定的执行环境节点。
OMG UML 规范(UML 上部结构规范,v2.1.1,p.210)规定:
执行环境通常是常规节点的一部分,表示执行环境所在的物理硬件环境。在该环境中,执行环境实现组件在执行时需要的标准服务集(在建模级别,这些服务通常是隐式的)。对于每个组件部署,这些服务的各个方面可能由特定类型的执行环境的部署规格中的属性确定。

21.3联系项目

系统的执行在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,我们必须考虑系统的执行环境,考虑用户普遍使用什么系统,才能开始对系统的开发。

22.(system context)系统上下文

22.1参考网站

https://t2informatik.de/en/smartpedia/system-context/

22.2名词解释

The System Context describes the interaction of a system with its environment. For a system to be developed, it is important to consider the System Context, because by defining the system and system boundary, as well as the relevant and irrelevant system environment, you define which aspects are to be taken into account in a development. Laws, standards and guidelines must also be taken into account when assessing context boundaries.
With the System Context, you determine who and what influences a system to be developed. You use this determination to define the scope of the development. If this scope is missing, requirements can remain incomplete or requirements that go beyond the actual scope of the development can be imposed. As a consequence, problems, efforts and costs arise which can be avoided by a clear definition of the system context.
The delimitation of the system context answers three questions:
What is to be developed?
Which other systems, interfaces, rules have to be considered during the development?
Which other systems, interfaces, rules do not have to be considered during development?
系统上下文描述系统与其环境的交互。对于要开发的系统,必须考虑系统上下文,因为通过定义系统和系统边界以及相关和不相关的系统环境,您可以定义在开发中需要考虑哪些方面。在评估背景界限时,还必须考虑到法律、标准和准则。
使用系统上下文,您可以确定谁和什么影响要开发的系统。使用此确定来定义开发范围。如果缺少此范围,则需求可能仍然不完整,或者可以施加超出实际开发范围的要求。因此,出现了问题、努力和费用,这些问题、努力和费用可以通过对系统背景的明确定义来避免。
系统上下文的划定回答了三个问题:
要开发什么?
在开发过程中需要考虑哪些其他系统、接口、规则?
在开发过程中不需要考虑哪些其他系统、接口、规则?

22.3联系项目

系统上下文是系统的软件架构中的基础构件。开发系统上下文视图非常重要,因为此视图将作为回溯到业务上下文、展开功能和操作体系结构的机制使用。提供系统需要如何与其他企业交互的组织视图,描述软件所在的业务生态系统。此视图在非常依赖外部组织的系统中特别重要。这个高级视图并不区分各个用户和角色。系统上下文帮助标识构建完整的解决方案所需的一些主要体系结构构件。待构建系统与每个外部系统之间的信息流为信息模型提供了关键输入。外部系统的特征决定了对可促进技术集成的适配器的需求。信息流还表示从体系结构而言非常重要的活动,这些活动可以回溯到业务流程模型,而后者是表示系统需求的一个主要部分。

23.(Completeness)需求的完整性

23.1参考网站

https://encyclopedia2.thefreedictionary.com/completeness

23.2名词解释

A property of a scientific theory that characterizes the sufficiency, for some specific purposes, of the theory’s expressive and/or deductive means.

One aspect of the concept of completeness is functional completeness. As applied to a natural language, it is the informal property by virtue of which the language can be used to formulate any meaningful message that may be required for a particular purpose. For example, the English language is functionally complete with respect to the purposes that Shakespeare had in mind in writing Hamlet —assuming Shakespeare succeeded in fully realizing his design. But any of the living languages into which Hamlet has been translated is also complete in the same sense. The translation is itself evidence of this functional completeness.
Similarly, in mathematics, a family of functions that belongs to some class of functions is complete with respect to this class and with respect to some fixed stock of permissible operations on the functions if any function of the class can be expressed in terms of functions of the given family by means of permissible operations. Thus, either of the functions sin x or cos x is a single-element class that is complete for all trigonometric functions with respect to the four arithmetic operations, squaring, and extraction of square roots. The three unit vectors along the coordinate axes form a complete class with respect to addition, subtraction, and multiplication by a real number for the set of all vectors of three-dimensional Euclidean space.
科学理论的属性,它表现了该理论的表现力和/或演绎手段的充分性。
完整性概念的一个方面是功能完整性。与自然语言一样,它是非正式的特性,它可以用来用这种语言来传达任何特定目的可能需要的任何有意义的信息。例如,在莎士比亚写《哈姆雷特》时所考虑的目的方面,英语在功能上是完整的——假设莎士比亚成功地完全实现了他的设计。 但是,哈姆雷特被翻译成的任何活的语言也是同样意义上的完成。 翻译本身就是这种功能完整性的证明。
同样,在数学中,属于某些类函数的函数系列对于此类和函数上的一些固定容允许操作是完整的,如果该类的任何函数可以通过允许的操作以给定家族的函数表示。因此,函数sin x 或cos x 是单元素类,对于四个算术运算、平方根的平方根的所有三分位函数都是完整的。 坐标轴的三个单位向量构成一个完整的类,与三维欧几里德空间的所有向量的一组加法、减法和乘法乘以实数。

23.3联系项目

系统的需求完整性在任何项目中都是很重要的,在我们的租房系统项目中也不例外,完整性就是没有遗漏,避免因为加入“新需求”导致的需求变更。
虽然用户是验证需求完整性的合适人选,但大多数时候,用户需求都提不全。要保障需求的完整性,就必须从业务角度来组织各种需求项;让用户验证需求规格说明书中罗列的主题域、业务事件、业务活动、业务步骤、困难与障碍点是否完整,更具操作性。
需求是有层次的,由于不同人员所了解和掌握的信息是不一样的,因此在验证需求完整性时需要采用分层评审的方式,不同层次的人员只负责评审与自己相关的那层。就是需要先理清宏观部分(主题域的划分),并让高层对其进行验证,看标识出来的主题域是否达到目标所需涉及的范围;然后再针对每个主题域进行分析,找到它的脉络(流程、实体),再让中层对其进行验证;最后走向操作层,对细节进行描述与验证。

24.(component)组件

24.1参考网站

https://www.techopedia.com/definition/3217/component

24.2名词解释

A component is a functionally independent part of any system. It performs some function and may require some input or produce some output. A component in software is often represented by classes.
A component represents one or more logical tasks. For example consider a car. It can be considered as a component since it allows people to sit, which can be considered an input. It transports a person from one place to another, which is its function. It requires a certain amount of fuel to operate and has a certain maximum speed limit, which represent its characteristics. It is composed of an engine, braking system, air conditioner and other such sub components. Each of these sub components has their own distinguished functions. The engine takes a certain amount of fuel as input, performs a process known as internal combustion and produces movement along with carbon monoxide as outputs.
组件是任何系统的功能独立的部分。它执行一些功能,可能需要一些输入或产生一些输出。软件中的组件通常由类表示。
组件表示一个或多个逻辑任务。例如,考虑一辆车。它可以被认为是一个组件,因为它允许人们坐,这可被视为输入。它把一个人从一个地方运送到另一个地方,这就是它的功能。它需要一定量的燃料才能运行,并且有一定的最高速度限制,这代表了其特性。它由发动机、制动系统、空调等子部件组成。每个子组件都有自己的可分辨函数。发动机以一定量的燃油作为输入,执行称为内燃的过程,并产生运动和一氧化碳作为输出。

24.3联系项目

组件就是对象。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。 组件是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。

25.(use case model)用例模型

25.1参考网站

https://sparxsystems.com/resources/tutorials/uml/use-case-model.html

25.2名词解释

A Use Case Model describes the proposed functionality of a new system. A Use Case represents a discrete unit of interaction between a user (human or machine) and the system. This interaction is a single unit of meaningful work, such as Create Account or View Account Details.
Each Use Case describes the functionality to be built in the proposed system, which can include another Use Case’s functionality or extend another Use Case with its own behavior.
A Use Case description will generally includes:
General comments and notes describing the use case.
Requirements - The formal functional requirements of things that a Use Case must provide to the end user, such as . These correspond to the functional specifications found in structured methodologies, and form a contract that the Use Case performs some action or provides some value to the system.
Constraints - The formal rules and limitations a Use Case operates under, defining what can and cannot be done. These include:
Pre-conditions that must have already occurred or be in place before the use case is run; for example, must precede
Post-conditions that must be true once the Use Case is complete; for example,
Invariants that must always be true throughout the time the Use Case operates; for example, an order must always have a customer number.
Scenarios – Formal, sequential descriptions of the steps taken to carry out the use case, or the flow of events that occur during a Use Case instance. These can include multiple scenarios, to cater for exceptional circumstances and alternative processing paths. These are usually created in text and correspond to a textual representation of the Sequence Diagram.
Scenario diagrams - Sequence diagrams to depict the workflow; similar to Scenarios but graphically portrayed.
Additional attributes, such as implementation phase, version number, complexity rating, stereotype and status.
用例模型描述了新系统的建议功能。用例表示用户(人或机器)和系统之间的独立交互单元。此交互是有意义的工作单元,如创建帐户或查看帐户详细信息。
每个用例描述要在建议系统中构建的功能,该功能可以包括另一个用例的功能,也可以使用自己的行为扩展另一个用例
用例描述通常包括:
描述用例的一般注释和注释。
要求 - 用例必须向最终用户提供的东西的正式功能要求,例如<更新订单的能力>这些对应于结构化方法中的功能规范,并形成了用例执行某些操作或为系统提供某种价值的合同。
约束 - 用例下的正式规则和限制,定义可以执行和不能执行哪些操作。其中包括:
在运行用例之前必须已经发生或已存在的预条件;例如,<创建订单> 必须先于 < 修改订单>
用例完成后必须为 true 的后处理条件;例如,<订单被修改并一致>
用例运行期间必须始终为 true 的不变变量;例如,订单必须始终具有客户编号。
方案 – 执行用例所执行的步骤的正式顺序描述,或在用例实例期间发生的事件流。这些方案可以包括多个方案,以满足特殊情况和替代处理路径。这些通常以文本形式创建,对应于序列图的文本表示形式。
方案图 - 描述工作流的序列图;类似于场景,但图形描绘。
其他属性,如实现阶段、版本号、复杂性评级、构造型和状态。

25.3联系项目

用例模型使用参与者和用例对系统的功能建模。像我们的参与者就有三个角色,分别为房东,租客,以及管理房东和房屋以及租客的管理员。用例是系统需要执行的一组操作、服务和功能。在这方面,"系统"是正在开发或操作的东西,如网站。"参与者"是指在系统中根据定义的角色运行的人或实体。
用例模型对于可视化系统的功能要求(将转换为设计选择和开发优先级)非常有价值。它们还有助于确定可能影响系统的任何内部或外部因素,并应考虑这些因素。

26.(single inheritance)单继承

26.1参考网站

https://www.techopedia.com/definition/22104/single-inheritance

26.2名词解释

Definition - What does Single Inheritance mean?
Single inheritance enables a derived class to inherit properties and behavior from a single parent class. It allows a derived class to inherit the properties and behavior of a base class, thus enabling code reusability as well as adding new features to the existing code. This makes the code much more elegant and less repetitive. Inheritance is one of the key features of object-oriented programming (OOP).
Single inheritance is safer than multiple inheritance if it is approached in the right way. It also enables a derived class to call the parent class implementation for a specific method if this method is overridden in the derived class or the parent class constructor.
The inheritance concept is used in many programming languages, including C++, Java, PHP, C#, and Visual Basic. To implement inheritance, C++ uses the “:” operator, while Java and PHP use the “extend” keyword, and Visual Basic uses the keyword “inherits.” Java and C# enable single inheritance only, while other languages like C++ support multiple inheritance.
单继承允许派生类从单个父类继承属性和行为。它允许派生类继承基类的属性和行为,从而实现代码可再使用性,以及向现有代码添加新功能。这使得代码更加优雅,更不重复。继承是面向对象编程的主要功能之一。
如果以正确的方式处理单一继承,它比多重继承
更安全。它还允许派生类调用特定方法的父类实现,如果此方法在派生类或父类构造函数中重写。
继承概念用于许多编程语言,包括C++、PHP、C# 和 Visual Basic。要实现继承,C++使用"“运算符,而 Java 和 PHP 使用"扩展"关键字,Visual Basic 使用关键字"继承”。Java 和 C# 仅支持单个继承,而其他语言(如C++支持多重继承。

26.3联系项目

系统的上下文图在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,单继承允许派生类从单个父类继承属性和行为。它允许派生类继承基类的属性和行为,从而实现代码可再使用性,以及向现有代码添加新功能。这使得代码更加优雅,更不重复。继承是面向对象编程的主要功能之一。

27.(data flow diagram)数据流图

27.1参考网站

https://artoftesting.com/data-flow-diagrams-dfd

27.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 中描述的主要详细信息:
通过发送和接收数据与系统交互的外部设备或系统
影响数据的进程
进程之间的数据流
数据存储位置

27.3联系项目

系统的数据流图在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,这是我们组的数据流图。
A002-186-2629-赖海洲_第8张图片
A002-186-2629-赖海洲_第9张图片

用户在选择好房屋后,系统会根据房屋名称查到房屋相关信息,在用户选择好看房时间后,就会生成订单,生成订单后用户可以支付相关费用,会生成支付凭证,在生成房屋租用凭证后在返回给用户。

28.(interaction diagram)交互图

28.1参考网站

https://www.tutorialspoint.com/uml/uml_interaction_diagram.htm

28.2名词解释

From the term Interaction, it is clear that the diagram is used to describe some type of interactions among the different elements in the model. This interaction is a part of dynamic behavior of the system.
This interactive behavior is represented in UML by two diagrams known as Sequence diagram and Collaboration diagram. The basic purpose of both the diagrams are similar.
Sequence diagram emphasizes on time sequence of messages and collaboration diagram emphasizes on the structural organization of the objects that send and receive messages.
The purpose of interaction diagrams is to visualize the interactive behavior of the system. Visualizing the interaction is a difficult task. Hence, the solution is to use different types of models to capture the different aspects of the interaction.Sequence and collaboration diagrams are used to capture the dynamic nature but from a different angle.
The purpose of interaction diagram is −To capture the dynamic behaviour of a system.To describe the message flow in the system.To describe the structural organization of the objects.To describe the interaction among objects.
从术语"交互"中,很明显,该关系图用于描述模型中不同元素之间的某种类型的交互。这种交互是系统动态行为的一部分。此交互行为在 UML 中由两个称为序列图和协作图的图表表示。这两个图表的基本用途是相似的。
序列图强调消息的时间序列,协作图强调发送和接收消息的对象的结构组织。
交互图的目的是可视化系统的交互行为。可视化交互是一项艰巨的任务。因此,解决方案是使用不同类型的模型来捕获交互的不同方面。
序列和协作图用于捕获动态性质,但角度不同。
交互图的目的是:捕获系统的动态行为。描述系统中的消息流。描述对象的结构组织。描述对象之间的交互。

28.3联系项目

系统的上下文图在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,通过上下文图这一重要因素可以减轻开发人员的工作,开发人员能够轻松的看出不同类型的人员之间的交互。从术语"交互"中,很明显,该关系图用于描述模型中不同元素之间的某种类型的交互。这种交互是系统动态行为的一部分。

29.(steering committee)程序委员会

29.1参考网站

https://www.tacticalprojectmanager.com/steering-committee/

29.2名词解释

A steering committee is a group of people, usually managers.
It is formed to oversee and support a project from management level.
Committee members are selected based on their stake in the project. In other words: A steering committee should represent the main stakeholders. The customer, the contractor and the departments most affected by your project.
Those who sit in the committee are usually not working in the project. It’s the project manager (you) with his team who is implementing the project.
Often, steering committees include C-level executives like CEOs or CFOs. Why? Projects are closely related to a company’s strategy and cost a lot of money. And executives have a keen interest in making sure the money is well spent.
指导委员会是一群人,通常是管理者。它成立于从管理层面监督和支持项目。
委员会成员是根据他们在项目中的股份选出的。换句话说:指导委员会应该代表主要的利益相关者。受项目影响最大的客户、承包商和部门。这也可以理解为涉众。
委员会的成员通常不参与这个项目。正在实施项目的是项目经理。
通常,指导委员会包括 C 级高管,如 CEO 或 CFO。为什么?项目与公司的战略密切相关,需要花费很多钱。高管们对确保这些钱花得好有浓厚的兴趣。
在租房系统中,我们的项目的涉众主要为租客,房东,管理员这三类人。这三类人中租户:有租房需求以及会使用手机软件的用户;房东:拥有多余空闲可用于他人租用的房屋的房东;管理员:可随时修改房东以及租户的使用权限,对租户和房东进行管理。
29.3联系项目
系统的涉众在任何项目中都是必须要考虑得,在我们的租房系统项目中也不例外,下面是我们的涉众:
租户:有租房需求以及会使用手机软件的用户
房东:拥有多余空闲可用于他人租用的房屋的房东
管理员:可随时修改房东以及租户的使用权限,对租户和房东进行管理

30.(use case diagram)用例图

30.1参考网站

https://www.smartdraw.com/use-case-diagram/

30.2名词解释

A use case diagram is a dynamic or behavior diagram in UML. Use case diagrams model the functionality of a system using actors and use cases. Use cases are a set of actions, services, and functions that the system needs to perform. In this context, a “system” is something being developed or operated, such as a web site. The “actors” are people or entities operating under defined roles within the system.
Use case diagrams are valuable for visualizing the functional requirements of a system that will translate into design choices and development priorities.
They also help identify any internal or external factors that may influence the system and should be taken into consideration.
They provide a good high level analysis from outside the system. Use case diagrams specify how the system interacts with actors without worrying about the details of how that functionality is implemented.
用例图是UML中的动态或行为图。用例图使用参与者和用例对系统的功能建模。用例是系统需要执行的一组操作、服务和功能。在这方面,"系统"是正在开发或操作的东西,如网站。"参与者"是指在系统中根据定义的角色运行的人或实体。
用例图对于可视化系统的功能要求(将转换为设计选择和开发优先级)非常有价值。它们还有助于确定可能影响系统的任何内部或外部因素,并应考虑这些因素。
它们从系统外部提供了良好的高级分析。用例图指定系统如何与参与者交互,而不必担心如何实现该功能的详细信息。
用例图主要的作用有三个:(1)获取需求;(2)指导测试;(3)还可在整个过程中的其它工作流起到指导作用。元素之间的关系用例图中包含的元素除了系统边界、角色和用例,另外就是关系。关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。由于角色实质上也是类,所以它拥有与类相同的关系描述,即角色之间存在泛化关系,泛化关系的含义是把某些角色的共同行为提取出来表示为通用的行为。
用例之间的关系:
包含关系:基本用例的行为包含了另一个用例的行为。基本用例描述在多个用例中都有的公共行为。包含关系本质上是比较特殊的依赖关系。它比一般的依赖关系多了一些语义。在包含关系中箭头的方向是从基本用例到包含用例。在UML1.1中用例之间是使用和扩展这两种关系,这两种关系都是泛化关系的版型。在UML1.3以后的版本中用例之间是包含和扩展这两种关系。
泛化关系:代表一般与特殊的关系。它的意思和面向对象程序设计中的继承的概念是类似的。不同的是继承使用在实施阶段,泛化使用在分析、设计阶段。在泛化关系中子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或者覆盖父用例中的行为和含义。扩展关系的基本含义和泛化关系类似,但在扩展关系中,对于扩展用例有更多的规则限制,基本用例必须声明扩展点,而扩展用例只能在扩展点上增加新的行为和含义。与包含关系一样,扩展关系也是依赖关系的版型。在扩展关系中,箭头的方向是从扩展用例到基本用例,这与包含关系是不同的。
用例的泛化、包含、扩展关系的比较。一般来说可以使用“is a”和“has a”来判断使用那种关系。泛化和扩展关系表示用例之间是“is a”关系,包含关系表示用例之间是“has a”关系。扩展与泛化相比多了扩展点,扩展用例只能在基本用例的扩展点上进行扩展。在扩展关系中基本用例是独立存在。在包含关系中在执行基本用例的时候一定会执行包含用例。如果需要重复处理两个或多个用例时可以考虑使用包含关系,实现一个基本用例对另一个的引用。当处理正常行为的变形是偶尔描述时可以考虑只用泛化关系。当描述正常行为的变形希望采用更多的控制方式时,可以在基本用例中设置扩展点,使用扩展关系。扩展关系比较难理解,如果把扩展关系看作是带有更多规则限制的泛化关系,可以帮助理解。通常先获得基本用例,针对这个用例中的每一个行为提问:该步骤会出什么差错?该步骤有不同的情况工作怎样以不同的方式进行等,把所有的变化情况都标识为扩展。通常基本用例很容易构造,而扩展用例需要反复分析、验证。当我们发现已经存在的两个用例间具有某种相似性时,可以把相似的部分从两个用例中抽象出来单独作为一个用例,该用例被这两个用例同时使用,这个抽象出的用例和另外两个用例形成包含关系。

30.3联系项目

下图为租房系统的用例图,其中有租客,管理员,房东三个角色,租客可以租房,住房时的申请维修,以及关注平台上那些心仪的房子。平台管理员的主要任务就是管理房东发布房源时的租金是否合理。房东可以发布空置的房源以及收取房租。
A002-186-2629-赖海洲_第10张图片

31.总结

31.1读书心得

经过老师讲授需求分析与建模这门课后,感觉对需求分析这一个东西有了深一层的认识。对于需求分析无非是,需求获取,需求分析,需求规格说明,需求验证,需求管理几个步骤,看似简单,可是实际操作却复杂困难。它不比其它行业产品可预见可触及,所以学好需求分析与建模能为以后从事软件开发行业打好基础。进行需求分析时,应注意一切信息与需求都是站在用户的角度上。尽量避免分析员的主观想象,并尽量将分析进度提交给用户。在不进行直接指导的前提下,让用户进行检查与评价。从而达到需求分析的准确性。这一步看似容易,实际想要进行该步骤,那得拥有丰富的阅历,才能轻松的将这些事情完成。这门课程教给了我们在完成一个实际项目时的一般程序及过程,我认为这是一份非常具有实际意义的教学内容。也让我清楚的认识到,自己并没有想象的要厉害能够轻松掌握这一门课的内容。它让我认识到,想要做好一个软件并不是只有靠聪明才可以做出来的,做好一个软件是需要丰富的经验,灵活的头脑,以及非常厉害的纵观全场的能力才能做好的。

31.2我组项目的发展建议

之前有幸体验过其他租房软件,在体验其他租房软件之后,可以很明显的感受到这些软件是为了满足用户的需求而开发出来的,在很多方面都是能够让用户有着很好的体验。对于用户的需求,这些系统做了很多的考虑,考虑了用户需求的各种情况,想必是有对市场做过非常多的调研,这是我们组没有做到的地方,由于条件的限制,我们也很难做到大面积的调研,而且我们对于调研这方面也不知从何而起,不知该怎么做,我目前只能想到用python去爬一些相关的租房数据,但是我们并不清楚该如何去分析这些数据,这也是我们组的一些问题,所以我们还是需要了解有关市场调研的流程或者教程,以及学习对调研后的数据我们该如何去做分析。我们在使用该系统时是以用户的角度去看这个系统,觉得这个系统能够满足用户许多需求。但我们在开发租房系统时,常常有的想法就是我要做一个什么系统,而不是用户需要一个什么系统,所以我们还是需要常常换一个角度去看我们自己开发的系统。

你可能感兴趣的:(A002-186-2629-赖海洲)