作业报告

目录

use case diagram(用例图) 2
abstract class(抽象类) 3
activity graph(活动图) 4
classifier(分类器) 4
active object(主动对象) 5
activity diagram(活动图) 5
collaboration diagram(协作图) 6
component diagram(组件图) 7
object diagram(对象图) 8
composite state(复合态) 8
boolean(布尔值) 9
entity-relationship-model(实体关系模型) 9
namespace(命名空间) 10
schema(概要) 11
asynchronous action(异步操作) 11
concurrency(并发) 12
single inheritance (单继承) 13
decision table (决策表) 13
abstraction (抽象化) 14
problem domain (问题域) 15
state machine (状态机) 15
enumeration(枚举) 16
system context(系统上下文) 17
embedded systems(嵌入式系统) 17
system boundary (系统边界) 18
compile time(编译时间) 19
domain model(领域模型) 19
initial node(初始结点) 20
requirements baseline (需求基准) 21
dependency(依赖) 22
acceptance test(验收测试) 22
requirements analysis(需求分析) 22
总结 23

use case diagram(用例图)

https://zhuanlan.zhihu.com/p/135348779
用例模型是从应用领域(Application domain)的角度,面向用户的一种模型,旨在描述用户眼中(而非程序员眼中)此系统的功能行为。以下是一张用例图,先有一个大致的印象:

用例图体现了该系统能够为参与者提供的种种功能以及这些功能之间的联系。要画好一张用例图,需要把握三个元素:参与者(Actor)、用例(Use Case)和用例间的关系(Relationship)。

https://www.cnblogs.com/xiaolongbao-lzh/p/4590897.html
参与者(Actor)——与应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。
用例(Use Case)——用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。
子系统(Subsystem)——用来展示系统的一部分功能,这部分功能联系紧密。
用例图中涉及的关系有:关联、泛化、包含、扩展。
关联:表示参与者与用例之间的通信,任何一方都可发送或接受消息。
泛化:就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。
包含:包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。包含关系对典型的应用就是复用,也就是定义中说的情景。但是有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。
扩展:扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。

下面是根据对用例图的理解结合小组的项目做出的用例图

abstract class(抽象类)

https://developer.ibm.com/zh/articles/l-javainterface-abstract/
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。
在面向对象领域,抽象类主要用来进行类型隐藏。我们可以构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;同时,通过从这个抽象体派生,也可扩展此模块的行为功能。熟悉OCP的读者一定知道,为了能够实现面向对象设计的一个最核心的原则 OCP(Open-Closed Principle),抽象类是其中的关键所在。

activity graph(活动图)

https://docs.oracle.com/cd/E29542_01/webcenter.1111/e27738/wcadm_recommend.htm#WCADM6729
Activity graph provides suggestions of people that a user may be interested in connecting with, based on existing connections and shared interaction with objects in the application. It also directs users to portals or content that may be of interest, based on similar interactions with those portals, items that the user is currently viewing, or the most active items.
活动图基于现有的连接以及与应用程序中对象的共享交互,提供用户可能感兴趣的人的建议。 它还基于与那些门户的相似交互,用户当前正在查看的项目或最活跃的项目,将用户引导至可能感兴趣的门户或内容。

The activity graph presents these suggestions based on data gathered and analyzed by the activity graph engines. The activity graph engines provide a central repository for actions that are collected by enterprise applications. Thinking in terms of a mathematical graph, application users and the enterprise content with which they interact are nodes, and the actions between users and between users and content are directed edges.
活动图基于活动图引擎收集和分析的数据提出这些建议。 活动图引擎为企业应用程序收集的操作提供了一个中央存储库。 从数学图的角度来看,应用程序用户和与之交互的企业内容是节点,用户之间以及用户与内容之间的动作是有向的。

classifier(分类器)

https://www.sciencedirect.com/topics/earth-and-planetary-sciences/classifier
Classifiers are the mappings, or functions, that take the measurements made on our objects that need assigning and aim to map these values to the correct corresponding output, or label, as it is often called.
分类器是对需要分配的对象进行测量的映射或函数,旨在将这些值映射到正确的相应输出或标签,通常被称为标签。

Classifier systems evolve sets of logical rules to perform a classification task. There is a limited range of variation in the representations – probabilistic rules and so forth. By contrast, GP has spawned a wide range of representations, including terms, grammars, program execution graphs, linearized trees, stack-based programs, and machine-code programs.
分类器系统演化逻辑规则集以执行分类任务。 表示形式的变化范围有限-概率规则等。 相比之下,GP产生了各种各样的表示形式,包括术语,语法,程序执行图,线性化树,基于堆栈的程序和机器代码程序。

active object(主动对象)

http://ifeve.com/java-active-object/
Active Object模式是一种异步编程模式。它通过对方法的调用(Method Invocation)与方法的执行(Method Execution)进行解耦(Decoupling)来提高并发性。若以任务的概念来说,Active Object模式的核心则是它允许任务的提交(相当于对异步方法的调用)和任务的执行(相当于异步方法的真正执行)分离。
Active Object模式通过将方法的调用与执行分离,实现了异步编程。有利于提高并发性,从而提高了系统的吞吐率。
Active Object模式还有个好处是它可以将任务(MethodRequest)的提交(调用异步烦方法)和任务的执行策略(Execution Policy)分离。任务的执行策略被封装在Scheduler的实现类之内,因此它对外是“不可见”的,一旦需要变动也不会影响其他代码,从而降低了系统的耦合性。

activity diagram(活动图)

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-activity-diagram/
Activity diagram is another important behavioral diagram in UML diagram to describe dynamic aspects of the system. Activity diagram is essentially an advanced version of flow chart that modeling the flow from one activity to another activity.
活动图是UML图中另一个重要的行为图,用于描述系统的动态方面。 活动图本质上是流程图的高级版本,可以对从一个活动到另一个活动的流程进行建模。

Activity Diagrams describe how activities are coordinated to provide a service which can be at different levels of abstraction. Typically, an event needs to be achieved by some operations, particularly where the operation is intended to achieve a number of different things that require coordination, or how the events in a single use case relate to one another, in particular, use cases where activities may overlap and require coordination. It is also suitable for modeling how a collection of use cases coordinate to represent business workflows.
活动图描述了如何协调活动以提供可以处于不同抽象级别的服务。 通常,某个事件需要通过某些操作来实现,特别是在该操作旨在实现许多需要协调的不同事物的情况下,或者单个用例中的事件如何相互关联,特别是活动在多个用例中 可能会重叠并且需要协调。 它还适用于建模用例集合如何协调以表示业务工作流。

https://www.smartdraw.com/activity-diagram/
You can make an activity diagram by connecting and joining various activity states. The starting point is usually marked with a dark, filled-in circle with an arrow pointing to the next state usually a rectangle with rounded corners. All action flows are represented with arrows indicating the transitions from state to state.
您可以通过连接和加入各种活动状态来制作活动图。 起点通常用黑色实心圆标记,箭头指向下一个状态,通常是带有圆角的矩形。 所有动作流都用箭头表示,该箭头指示从状态到状态的转换。

下面是根据对活动图的理解结合小组的项目做出的活动图

collaboration diagram(协作图)

https://searchsoftwarequality.techtarget.com/definition/collaboration-diagram
A collaboration diagram, also known as a communication diagram, is an illustration of the relationships and interactions among software objects in the Unified Modeling Language (UML). These diagrams can be used to portray the dynamic behavior of a particular use case and define the role of each object.
协作图,也称为通信图,是对统一建模语言(UML)中软件对象之间的关系和交互的说明。 这些图可用于描绘特定用例的动态行为,并定义每个对象的角色。

Collaboration diagrams are created by first identifying the structural elements required to carry out the functionality of an interaction. A model is then built using the relationships between those elements.
通过首先确定执行交互功能所需的结构元素来创建协作图。 然后使用这些元素之间的关系来构建模型。

A collaboration diagram resembles a flowchart that portrays the roles, functionality and behavior of individual objects as well as the overall operation of the system in real time. The four major components of a collaboration diagram are:
协作图类似于流程图,该流程图实时描绘了各个对象的角色,功能和行为以及系统的整体操作。协作图的四个主要组成部分是:
Objects: Objects are shown as rectangles with naming labels inside. The naming label follows the convention of object name, class name. If an object has a property or state that specifically influences the collaboration, this should also be noted.
对象:对象显示为内部带有命名标签的矩形。命名标签遵循对象名称,类名称的约定。如果对象具有特别影响协作的属性或状态,则也应注意。
Actors: Actors are instances that invoke the interaction in the diagram. Each actor has a name and a role, with one actor initiating the entire use case.
参与者:参与者是在图中调用交互的实例。每个参与者都有一个名字和一个角色,其中一个参与者负责启动整个用例。
Links: Links connect objects with actors and are depicted using a solid line between two elements. Each link is an instance where messages can be sent.
链接:链接将对象与actor连接起来,并用两个元素之间的实线表示。每个链接都是可以发送消息的实例。
messages: Messages between objects are shown as a labeled arrow placed near a link. These messages are communications between objects that convey information about the activity and can include the sequence number.
消息:对象之间的消息显示为放置在链接附近的带箭头的箭头。这些消息是对象之间的通信,传达有关活动的信息,并且可以包括序列号。

component diagram(组件图)

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/
UML Component diagrams are used in modeling the physical aspects of object-oriented systems that are used for visualizing, specifying, and documenting component-based systems and also for constructing executable systems through forward and reverse engineering. Component diagrams are essentially class diagrams that focus on a system’s components that often used to model the static implementation view of a system.
UML组件图用于对面向对象系统的物理方面进行建模,这些对象用于可视化,指定和记录基于组件的系统,还用于通过正向和反向工程构造可执行系统。 组件图本质上是类图,专注于通常用于对系统的静态实现视图建模的系统组件。

A component diagram breaks down the actual system under development into various high levels of functionality. Each component is responsible for one clear aim within the entire system and only interacts with other essential elements on a need-to-know basis.
组件图将正在开发的实际系统分解为各种高级功能。 每个组件负责整个系统中的一个明确目标,并且仅在需要了解的基础上与其他基本元素进行交互。

object diagram(对象图)

https://www.tutorialspoint.com/uml/uml_object_diagram.htm
Object diagrams are derived from class diagrams so object diagrams are dependent upon class diagrams.
对象图是从类图派生的,因此对象图取决于类图。

Object diagrams represent an instance of a class diagram. The basic concepts are similar for class diagrams and object diagrams. Object diagrams also represent the static view of a system but this static view is a snapshot of the system at a particular moment.
对象图表示类图的实例。 类图和对象图的基本概念相似。 对象图还表示系统的静态视图,但是此静态视图是特定时刻系统的快照。

Object diagrams are used to render a set of objects and their relationships as an instance.
对象图用于将一组对象及其关系呈现为实例。

composite state(复合态)

https://www.sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/compositestate.html
Composite States are composed within the StateMachine diagram by expanding a State element, adding Regions if applicable, and dragging further State elements, related elements and connectors within its boundaries. The internal State elements are then referred to as Substates.
在StateMachine图中,通过展开State元素,添加Region(如果适用)并在其边界内拖动其他State元素,相关元素和连接器来组成组合状态。 内部状态元素于是被称为子状态。

Composite States can be orthogonal, if Regions are created. If a Composite State is orthogonal, its entry denotes that a single Substate is concurrently active in each Region. The hierarchical nesting of Composite States, coupled with Region use, generates a situation of multiple States concurrently active; this situation is referred to as the active State configuration.
如果创建了区域,则复合状态可以是正交的。 如果Composite State是正交的,则其条目表示单个Substate在每个Region中同时处于活动状态。 复合状态的分层嵌套,再加上区域使用,会导致多个状态同时活动的情况; 这种情况称为活动状态配置。

boolean(布尔值)

https://www.lifewire.com/what-does-boolean-search-3481475

Boolean algebra is fundamental to modern computing, and all major programming languages include it. It also figures heavily in statistical methods and set theory.
布尔代数是现代计算的基础,所有主要的编程语言都包含布尔代数。 它还在统计方法和集合论中占有重要地位。

Today’s database searches are largely based on Boolean logic, which allows us to specify parameters in detail—for example, combining terms to include while excluding others. Given that the internet is akin to a vast collection of information databases, Boolean concepts apply here as well.
如今的数据库搜索主要基于布尔逻辑,这使我们可以详细指定参数-例如,组合术语以包括但不包括其他。 鉴于互联网类似于大量的信息数据库,布尔概念也适用于此。

entity-relationship-model(实体关系模型)

https://xplaind.com/186749/entity-relationship-model

Entity Relation Model (ER Model) is one of the conceptual data models in which database design is represented in a diagram to visualize relationships among the different data components referred as entities as well as other relationships. ER model primarily focuses on the types of entities, attributes and the relationships among them.
实体关系模型(ER Model)是概念性数据模型之一,其中的数据库设计以图表形式表示,以可视化称为实体的不同数据组件之间的关系以及其他关系。 ER模型主要关注实体的类型,属性以及它们之间的关系。

ER model is a major part of the process of making a good database application. It helps in better understanding of the data.
ER模型是制作良好数据库应用程序过程的主要部分。 它有助于更好地理解数据。

namespace(命名空间)

https://docs.microsoft.com/en-us/cpp/cpp/namespaces-cpp?view=msvc-160&viewFallbackFrom=vs-2019

A namespace is a declarative region that provides a scope to the identifiers (the names of types, functions, variables, etc) inside it. Namespaces are used to organize code into logical groups and to prevent name collisions that can occur especially when your code base includes multiple libraries. All identifiers at namespace scope are visible to one another without qualification. Identifiers outside the namespace can access the members by using the fully qualified name for each identifier, or else by a using Declaration for a single identifier , or a using Directive for all the identifiers in the namespace. Code in header files should always use the fully qualified namespace name.
命名空间是一个声明性区域,它为其中的标识符(类型,函数,变量等的名称)提供范围。 命名空间用于将代码组织为逻辑组,并防止可能发生名称冲突,尤其是当您的代码库包含多个库时。 命名空间范围内的所有标识符都是彼此可见的,没有资格。 命名空间外的标识符可以通过使用每个标识符的全限定名来访问成员,或者通过对单个标识符使用声明或对命名空间中的所有标识符使用指令来访问成员。 头文件中的代码应始终使用完全限定的名称空间名称。

A namespace can be declared in multiple blocks in a single file, and in multiple files. The compiler joins the parts together during preprocessing and the resulting namespace contains all the members declared in all the parts. An example of this is the std namespace which is declared in each of the header files in the standard library.
命名空间可以在一个文件中的多个块中声明,也可以在多个文件中声明。 编译器在预处理期间将各个部分连接在一起,并且结果命名空间包含在所有部分中声明的所有成员。 一个示例是std名称空间,它在标准库的每个头文件中声明。

Members of a named namespace can be defined outside the namespace in which they are declared by explicit qualification of the name being defined. However, the definition must appear after the point of declaration in a namespace that encloses the declaration’s namespace.
可以通过明确定义要定义的名称的方式在命名空间中定义命名空间的成员。 但是,该定义必须出现在声明点之后的一个包含声明名称空间的名称空间中。

schema(概要)

https://zhidao.baidu.com/question/710793183075252765.html
数据库中schema是数据库对bai象集合du,它包含了表zhi,视图等多种对象。daoschema就像是用户名,当访zhuan问数据表时未指明属于哪个shuschema,系统就会自动的加上缺省的schema。
schema在数据库中表示的是数据库对象集合,它包含了各种对像,比如:表,视图,存储过程,索引等等。一般情况下一个用户对应一个集合,所以为了区分不同的集合就需要给不同的集合起名字。用户的schema名就相当于用户名,并作为该用户缺省schema。

技术上说schema是元数据的一个抽象集合,包含一套schema component: 主要是元素与属性的声明、复杂与简单数据类型的定义。这些schema component通常是在处理一批schema document时被创建。schema文档包含着schema component的源语言定义。在日常使用中,一个schema文档常被称作一个schema。
Schema文档通过名字空间组织起来:所有的被命名的schema component属于一个目标名字空间;这个目标名字空间是schema文档作为整体的一个属性。schema文档可以包含进来(include)使用同一名字空间的其它schema文档,也可以导入(import)使用不同名字空间的schema文档。

asynchronous action(异步操作)

https://searchnetworking.techtarget.com/definition/asynchronous
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.
异步描述了两个或多个事件对象之间的关系,这些对象在同一系统中进行交互,但不会以预定的间隔发生,并且不一定要依靠彼此的存在来起作用。 它们没有相互协调,这意味着它们可以同时发生或不同时发生,因为它们有各自独立的议程。

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内部也具有如此广阔的网络,因此在比较其各种应用用途时可能很难调和其一般定义。

In computer programming, asynchronous operation means that a process operates independently of other processes, whereas synchronous operation means that the process runs only as a result of some other process being completed or handed off. A typical activity that might use a synchronous protocol would be a transmission of files from one point to another. As each transmission is received, a response is returned indicating success or the need to resend. Each successive transmission of data requires a response to the previous transmission before a new one can be initiated.
在计算机编程中,异步操作意味着一个进程独立于其他进程运行,而同步操作意味着该进程仅作为某些其他进程完成或移交的结果而运行。 可能使用同步协议的典型活动是将文件从一个点传输到另一个点。 每次接收到传输后,都会返回一个响应,指示成功或需要重新发送。 每次连续的数据传输都需要对之前的传输做出响应,然后才能发起新的传输。

concurrency(并发)

https://www.computerhope.com/jargon/c/concurre.htm
Concurrency is the occurrence of multiple events within overlapping time frames, but not simultaneously. On a computer system, concurrency is implemented in the paradigm called concurrent computing.
并发是在重叠的时间范围内但不是同时发生多个事件。 在计算机系统上,并发是在称为并发计算的范式中实现的。

The three main types of concurrent computing are threading, asynchrony, and preemptive multitasking. Each method has its own special precautions which must be taken to prevent race conditions, where multiple threads or processes access the same shared data in memory in improper order.
并发计算的三种主要类型是线程,异步和抢先式多任务处理。 每种方法都有其自己的特殊预防措施,必须采取特殊的预防措施来防止争用情况,在这种情况下,多个线程或进程将以不正确的顺序访问内存中的相同共享数据。

When working with databases, concurrency controls help make sure each transaction on the database takes place in a particular order rather than at the same time. This keeps the transactions from working at the same time, which could cause data to become incorrect or corrupt the database.
在使用数据库时,并发控件有助于确保数据库上的每个事务都以特定顺序而不是同时发生。 这使事务无法同时进行,这可能导致数据变得不正确或损坏数据库。

single inheritance (单继承)

https://www.techopedia.com/definition/22104/single-inheritance
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).
单一继承使派生类可以从单个父类继承属性和行为。 它允许派生类继承基类的属性和行为,从而实现代码的可重用性,并为现有代码添加新功能。 这使代码更加优雅,并且减少了重复。 继承是面向对象编程(OOP)的关键功能之一。

In inheritance, the existing class is called the parent class, superclass or the base class. The new class called the child class, subclass or derived class. Using inheritance, the subclass can use the properties and methods of the superclass. Thus, programmers do not have to implement the whole program from the beginning. Single inheritance is the simplest form of inheritance.
在继承中,现有类称为父类,超类或基类。 新的类称为子类,子类或派生类。 通过继承,子类可以使用超类的属性和方法。 因此,程序员不必从一开始就执行整个程序。 单一继承是最简单的继承形式。

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.
如果采用正确的方法,单继承比多继承更安全。 如果此方法在派生类或父类构造函数中被重写,它还使派生类可以为特定方法调用父类实现。

decision table (决策表)

https://www.techopedia.com/definition/18829/decision-table-detab
A decision table is used to represent conditional logic by creating a list of tasks depicting business level rules. Decision tables can be used when there is a consistent number of conditions that must be evaluated and assigned a specific set of actions to be used when the conditions are finally met.
决策表用于通过创建描述业务级别规则的任务列表来表示条件逻辑。 当必须评估一致数量的条件时可以使用决策表,并为最终满足条件时分配一组特定的要使用的操作。

Decision tables are fairly similar to decision trees except for the fact that decision tables will always have the same number of conditions that need to be evaluated and actions that must be performed even if the set of branches being analyzed is resolved to true. A decision tree, on the other hand, can have one branch with more conditions that need to be evaluated than other branches on the tree.
决策表与决策树非常相似,除了以下事实:决策表将始终具有相同数量的条件,需要评估的条件和必须执行的操作,即使要分析的分支集为真。 另一方面,决策树可以具有一个分支,该分支具有比树上其他分支更多的需要评估的条件。

abstraction (抽象化)

https://whatis.techtarget.com/definition/abstraction
The process of picking out (abstracting) common features of objects and procedures. A programmer would use abstraction, for example, to note that two functions perform almost the same task and can be combined into a single function. Abstraction is one of the most important techniques in software engineering and is closely related to two other important techniques — encapsulation and information hiding. All three techniques are used to reduce complexity.
挑选(抽象)对象和过程的共同特征的过程。 例如,程序员将使用抽象来指出两个功能执行几乎相同的任务,并且可以将其合并为一个功能。 抽象是软件工程中最重要的技术之一,与另外两个重要技术紧密相关:封装和信息隐藏。 所有这三种技术均用于降低复杂性。

Abstraction is the process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics. In object-oriented programming, abstraction is one of three central principles. Through the process of abstraction, a programmer hides all but the relevant data about an object in order to reduce complexity and increase efficiency. In the same way that abstraction sometimes works in art, the object that remains is a representation of the original, with unwanted detail omitted. The resulting object itself can be referred to as an abstraction, meaning a named entity made up of selected attributes and behavior specific to a particular usage of the originating entity. Abstraction is related to both encapsulation and data hiding.
抽象是从某事物中去除或去除特征以将其简化为一组基本特征的过程。 在面向对象的编程中,抽象是三个主要原则之一。 通过抽象过程,程序员可以隐藏除对象之外的所有相关数据,以降低复杂性并提高效率。 就像抽象有时在艺术中起作用一样,剩下的对象就是原始图像的表示,省略了多余的细节。 产生的对象本身可以称为抽象,表示由选定属性和特定于始发实体的特定用法的行为组成的命名实体。抽象与封装和数据隐藏有关。

problem domain (问题域)

https://www.definitions.net/definition/problem+domain
A problem domain is the area of expertise or application that needs to be examined to solve a problem. A problem domain is simply looking at only the topics of an individual’s interest, and excluding everything else. For example, when developing a system to measure good practice in medicine, carpet drawings at hospitals would not be included in the problem domain. In this example, the domain refers to relevant topics solely within the delimited area of interest: medicine. This points to a limitation of an overly specific, or overly bounded, problem domain. An individual may think they are interested in medicine and not interior design, but a better solution exists outside of the problem domain as it was initially conceived. For example, when IDEO researchers noticed that patients in hospitals spent a huge amount of time staring at acoustic ceiling tiles, which “became a symbol of the overall ambiance: a mix of boredom and anxiety from feeling lost, uninformed, and out of control.”
问题域是解决问题需要检查的专业知识或应用程序领域。 问题域只是在查看个人感兴趣的主题,而排除其他所有内容。 例如,当开发一种衡量药品良好实践的系统时,医院的地毯图纸将不包括在问题域中。 在此示例中,域仅指感兴趣的限定区域内的相关主题:医学。 这指出了过于具体或过度界定的问题域的局限性。 一个人可能认为他们对医学感兴趣,而不是对室内设计感兴趣,但是在最初设想的问题领域之外,存在更好的解决方案。 例如,当IDEO研究人员注意到医院的病人花费大量时间盯着隔音天花板时,“这些声音已成为整体氛围的象征:由于感到迷茫,无知和无法控制而产生的无聊和焦虑。”

state machine (状态机)

https://www.techopedia.com/definition/16447/state-machine
A state machine is a concept used in designing computer programs or digital logic. There are two types of state machines: finite and infinite state machines. The former is comprised of a finite number of states, transitions, and actions that can be modeled with flow graphs, where the path of logic can be detected when conditions are met. The latter is not practically used.
状态机是用于设计计算机程序或数字逻辑的概念。状态机有两种类型:有限状态机和无限状态机。前者由有限数量的状态,转换和动作组成,可以用流程图建模,在满足条件时可以在其中检测逻辑路径。后者实际上没有使用。

A state machine is any device storing the status of something at a given time. The status changes based on inputs, providing the resulting output for the implemented changes. A finite state machine has finite internal memory. Input symbols are read in a sequence producing an output feature in the form of a user interface.
状态机是在给定时间存储某些状态的任何设备。状态根据输入而变化,为实现的变化提供结果输出。有限状态机具有有限的内部存储器。按顺序读取输入符号,以用户界面的形式生成输出功能。

State machines are represented using state diagrams. The output of a state machine is a function of the input and the current state. State machines play a significant role in areas such as electrical engineering, linguistics, computer science, philosophy, biology, mathematics, and logic. They are best used in the modeling of application behavior, software engineering, design of hardware digital systems, network protocols, compilers, and the study of computation and languages.
状态机使用状态图表示。状态机的输出是输入和当前状态的函数。状态机在电气工程,语言学,计算机科学,哲学,生物学,数学和逻辑等领域中发挥着重要作用。它们最适合用于应用程序行为建模,软件工程,硬件数字系统设计,网络协议,编译器以及计算和语言研究。

enumeration(枚举)

https://www.softwareideas.net/class-diagram-enum
An enumeration is a complete list of all values that a given type may acquire. An enumeration is used as a type of attributes, operations, and operation parameters. Enums may be used in a flag mode to support bitwise combinations of particular values. An enumeration is depicted as a rectangular box with a name and line-separated list of items.
枚举是给定类型可能获取的所有值的完整列表。 枚举用作属性,操作和操作参数的一种。 枚举可以在标志模式下使用,以支持特定值的按位组合。 枚举被描述为一个矩形框,带有名称和以行分隔的项目列表。

In UML models, enumeration literals are model elements in class diagrams that represent named values in an enumeration.
You can add enumeration literals to an enumeration in your model to represent discrete values for the enumeration. Software applications can copy and store enumeration literals and pass them as arguments in calls to operations.
在UML模型中,枚举文字是类图中的模型元素,表示枚举中的命名值。 您可以将枚举文字添加到模型中的枚举中,以表示枚举的离散值。 软件应用程序可以复制和存储枚举文字,并将其作为参数传递给操作调用。

system context(系统上下文)

https://t2informatik.de/en/smartpedia/system-context/
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.
通过系统上下文,您可以确定谁和什么影响要开发的系统。您可以使用这个决定来定义开发的范围。如果缺少此范围,则需求可以保持不完整,或者可以施加超出实际开发范围的需求。因此,问题、努力和成本都会产生,而这些问题、努力和成本可以通过对系统上下文的明确定义来避免。

embedded systems(嵌入式系统)

https://internetofthingsagenda.techtarget.com/definition/embedded-system
An embedded system is a combination of computer hardware and software designed for a specific function. Embedded systems may also function within a larger system. The systems can be programmable or have a fixed functionality. Industrial machines, consumer electronics, agricultural and processing industry devices, automobiles, medical equipment, cameras, digital watches, household appliances, airplanes, vending machines and toys, as well as mobile devices, are possible locations for an embedded system.
嵌入式系统是为特定功能而设计的计算机硬件和软件的组合。 嵌入式系统也可以在更大的系统中运行。 该系统可以是可编程的或具有固定的功能。 工业机器,消费电子产品,农业和加工业设备,汽车,医疗设备,照相机,数字手表,家用电器,飞机,自动售货机和玩具以及移动设备都是嵌入式系统的可能位置。
While embedded systems are computing systems, they can range from having no user interface – for example, on devices designed to perform a single task – to complex graphical user interfaces, such as in mobile devices. User interfaces can include buttons, LEDs (light-emitting diodes) and touchscreen sensing. Some systems use remote user interfaces as well.
尽管嵌入式系统是计算系统,但是它们的范围可以从没有用户界面(例如在设计为执行单个任务的设备上)到复杂的图形用户界面(例如在移动设备中)。 用户界面可以包括按钮,LED(发光二极管)和触摸屏感应。 一些系统也使用远程用户界面。

system boundary (系统边界)

https://sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/systemboundary.html
A System Boundary element is a non-UML element used to define conceptual boundaries. You can use System Boundaries to help group logically related elements (from a visual perspective, not as part of the UML model).
系统边界元素是用于定义概念边界的非UML元素。您可以使用“系统边界”来帮助对逻辑上相关的元素进行分组(从视觉角度来看,而不是作为UML模型的一部分)。

By associating the System Boundary - and not the Use Case - with the classifier, the classifier is linked to the Use Case as a user, but not as an owner.
通过将系统边界(而不是用例)与分类器相关联,分类器作为用户而不是所有者链接到用例。

You can also define a Use Case as the classifier of a System Boundary element, to link the elements enclosed in the System Boundary (such as parts of an Activity diagram) to their representation in a logical Use Case.
您还可以将用例定义为系统边界元素的分类器,以将系统边界中包含的元素(例如活动图的某些部分)链接到它们在逻辑用例中的表示形式。

The element properties for a System Boundary element comprise the name, the border style, and the number of horizontal or vertical swim lanes. You can also change the overall shape of the System Boundary.
系统边界元素的元素属性包括名称,边界样式以及水平或垂直泳道的数量。您还可以更改系统边界的整体形状。

compile time(编译时间)

https://www.definitions.net/definition/compile%20time
In computer science, compile time refers to either the operations performed by a compiler, programming language requirements that must be met by source code for it to be successfully compiled, or properties of the program that can be reasoned about at compile time. The operations performed at compile time usually include syntax analysis, various kinds of semantic analysis and code generation. Programming language definitions usually specify compile time requirements that source code must meet to be successfully compiled. For example, that the amount of storage required by types and variable can be deduced. Properties of a program that can be reasoned about at compile time include range-checks, deadlock freedom in concurrent languages, or timings. Compile time occurs before link time and runtime. In some programming languages it may be necessary for some compilation and linking to occur at runtime. There is a trade-off between compile-time and link-time in that many compile time operations can be deferred to link-time without incurring extra run-time.
在计算机科学中,编译时间是指编译器执行的操作,要成功编译它的源代码必须满足的编程语言要求或可以在编译时进行推理的程序属性。在编译时执行的操作通常包括语法分析,各种语义分析和代码生成。编程语言定义通常指定源代码必须成功满足才能满足的编译时间要求。例如,可以推断出类型和变量所需的存储量。可以在编译时进行推理的程序属性包括范围检查,并发语言中的死锁自由度或时序。编译时间发生在链接时间和运行时之前。在某些编程语言中,可能需要在运行时进行一些编译和链接。在编译时间和链接时间之间需要权衡,因为许多编译时间操作可以推迟到链接时间,而不会产生额外的运行时间。

domain model(领域模型)

https://www.wisdomjobs.com/e-university/uml-tutorial-175/what-is-a-domain-model-13285.html
The quintessential object - oriented analysis step is the decomposition of a domain into noteworthy concepts or objects.
面向对象的典型分析步骤是将域分解为值得注意的概念或对象。

A domain model is a visual representation of conceptual classes or real - situation objects in a domain. Domain models have also been called conceptual models, domain object models, and analysis object models.
域模型是域中概念类或实际对象的直观表示。 领域模型也被称为概念模型,领域对象模型和分析对象模型。

The UP defines the Domain Model as one of the artifacts that may be created in the Business Modeling discipline. More precisely, the UP Domain Model is a specialization of the UP Business Object Model (BOM) “focusing on explaining ‘things’ and products important to a business domain”. That is, a Domain Model focuses on one domain, such as POS related things. The more broad BOM, not covered in this introductory text and not something I encourage creating (because it can lead to too much up - front modeling), is an expanded, often very large and difficult to create, multi - domain model that covers the entire business and all its sub - domains.
UP将域模型定义为可以在业务建模规程中创建的构件之一。更准确地说,UP域模型是UP业务对象模型(BOM)的一个专门化,它“专注于解释对业务领域重要的‘事物’和产品”。也就是说,域模型只关注一个域,比如与POS相关的东西。更宽泛的BOM,在这篇介绍性的文本中没有涉及,也不是我鼓励创建的东西(因为它可能导致太多的前期建模),是一个扩展的、通常非常大且难以创建的多域模型,它覆盖了整个业务及其所有子领域。

initial node(初始结点)

https://www.uml-diagrams.org/activity-diagrams-controls.html#initial-node
Initial node is a control node at which flow starts when the activity is invoked.
初始节点是一个控制节点,在该节点上调用活动时流程就开始了。

A control token is placed at the initial node when the activity starts, but not in initial nodes in structured nodes contained by the activity. Tokens in an initial node are offered to all outgoing edges. For convenience, initial nodes are an exception to the rule that control nodes cannot hold tokens if they are blocked from moving downstream, for example, by guards.
当活动开始时,控制令牌将放置在初始节点上,而不是活动所包含的结构化节点中的初始节点中。 初始节点中的令牌提供给所有传出边缘。 为了方便起见,初始节点是以下规则的例外:控制节点如果被保护者阻止向下游移动,则它们无法持有令牌。

Activities may have more than one initial node. In this case, invoking the activity starts multiple flows, one at each initial node.
活动可能具有多个初始节点。 在这种情况下,调用活动将启动多个流程,每个初始节点一个。

Note that flows can also start at other nodes, so initial nodes are not required for an activity to start execution.
请注意,流也可以从其他节点开始,因此活动开始执行不需要初始节点。

Initial nodes are shown as a small solid circle.
初始节点显示为小实心圆。

requirements baseline (需求基准)

https://www.jamasoftware.com/blog/defining-requirement-baseline/
A requirements baseline is a snapshot in time that represents an agreed-upon, reviewed, and approved set of requirements that have been committed to a specific product release.
需求基准是及时的快照,代表已承诺,已审核和已批准的特定产品版本的一组需求。

That “release” could be a complete delivered product or any interim development increment of the product. When stakeholders “sign off” on requirements, what they’re really doing is agreeing and committing to a specific requirements baseline (whether they think of it in those terms or not).
该“发布”可能是完整的交付产品,也可能是该产品的任何中期开发增量。当利益相关者“签署”需求时,他们实际上所做的就是同意并致力于特定的需求基准(无论他们是否以这些术语考虑)。

Once the project team establishes a requirements baseline, the team should follow a pragmatic change control process to make good business and technical decisions about adding newly-requested functionality and altering or deleting existing requirements.
一旦项目团队建立了需求基准,团队就应遵循务实的变更控制流程,以就添加新请求的功能以及更改或删除现有需求做出良好的业务和技术决策。

A change control process is not about stifling change; it’s about providing decision-makers with the information that will let them make timely and appropriate decisions to modify the planned functionality. That planned functionality is the baseline.
变更控制过程与扼杀变更无关。这是为决策者提供信息,使他们能够及时,适当地做出决定,以修改计划中的功能。计划的功能是基准。

Typically, a baseline is also given a unique name so that all the project participants can refer to it unambiguously. And good configuration management practices allow the team to reconstruct accurately any previous baseline and all its components.
通常,还给基线指定了唯一的名称,以便所有项目参与者都可以明确地引用它。良好的配置管理实践使团队可以准确地重建任何以前的基准及其所有组件。

dependency(依赖)

https://www.guru99.com/uml-relationships-with-example.html
Dependency is established within a range of elements that need other model components for the unique specification for implementation in UML. The model component is dependent on the self-determining model components which are known as the supplier. Multiple components are established to form a relationship called tuples. The dependency in UML is represented by dashing line directing the client which is a dependable source to supplier component which is an independent source. The arrow in the line denotes the dependency which represents the direction denotes the direction of the relationship and doesn’t represent the direction of the process.
依赖关系是在一系列元素中建立的,这些元素需要其他模型组件才能实现UML中的唯一规范。 模型组件依赖于称为供应商的自确定模型组件。 建立了多个组件以形成称为元组的关系。 UML中的依赖性由虚线表示,该虚线将作为可靠来源的客户定向到作为独立来源的供应商组件。 线中的箭头表示依赖性,表示方向表示关系的方向,而不表示过程的方向。

acceptance test(验收测试)

https://www.wise-geek.com/what-is-acceptance-testing.htm
Acceptance testing is a final stage of testing that is performed on a system before the system being delivered to a live environment. Systems subjected to this testing process might include such deliverables as a software system or a mechanical hardware system. Acceptance tests are generally performed as “black box” tests, which means that the tester uses specified inputs into the system and verifies that the resulting outputs are correct, without knowledge of the system’s internal workings.
验收测试是在将系统交付到实际环境之前在系统上执行的测试的最后阶段。 经过此测试过程的系统可能包括诸如软件系统或机械硬件系统之类的可交付成果。 验收测试通常以“黑匣子”测试的形式执行,这意味着测试人员在不了解系统内部工作的情况下,使用系统中指定的输入并验证结果输出是否正确。

requirements analysis(需求分析)

https://searchsoftwarequality.techtarget.com/definition/requirements-analysis
Requirements analysis, also called requirements engineering, is the process of determining user expectations for a new or modified product. These features, called requirements, must be quantifiable, relevant and detailed. In software engineering, such requirements are often called functional specifications. Requirements analysis is an important aspect of project management.
需求分析,也称为需求工程,是确定用户对新产品或修改产品的期望的过程。 这些称为需求的功能必须是可量化的,相关的和详细的。 在软件工程中,此类要求通常称为功能规范。 需求分析是项目管理的重要方面。

Requirements analysis involves frequent communication with system users to determine specific feature expectations, resolution of conflict or ambiguity in requirements as demanded by the various users or groups of users, avoidance of feature creep and documentation of all aspects of the project development process from start to finish. Energy should be directed towards ensuring that the final system or product conforms to client needs rather than attempting to mold user expectations to fit the requirements.
需求分析涉及与系统用户的频繁沟通,以确定特定的功能期望,解决各种用户或用户组所要求的需求冲突或歧义,避免功能蔓延以及从头到尾记录项目开发过程各个方面的情况 。 精力应该用于确保最终系统或产品符合客户需求,而不是试图改变用户的期望以使其符合要求。

Requirements analysis is a team effort that demands a combination of hardware, software and human factors engineering expertise as well as skills in dealing with people.
需求分析是团队的工作,需要硬件,软件和人为因素的工程专业知识以及与人打交道的技能的结合。

总结

时间飞逝,短短的半学期转眼快过去了,在这半学期中,我不能说自己将需求工程学的有多好,但是通过学习我还是受益良多的。
在以前,我一直对软件开发存在一些未知与误解。认为软件就是程序,软件开发就是编写程序的过程,只要完成程序的编写,那么软件也就宣布着成功开发。而且我还片面的认为只要我掌握了当下最流行的编程语言与其开发工具,就能很好的编写出一个程序。一个人只要会编程,就能写软件,就是程序员。一个公司,只要招聘一些程序员,就能开发很好的软件产品。只要有几个有经验的程序员,在找些兼职的大学生,就能组成一个软件公司。
通过学习了需求工程后,让我恍然大悟。才知道以前队软件开发的认知是多么的错误,渐渐的才明白,软件开发不是简简单单编写程序的过程。软件是思想在硬件上的载体与体现,处理的是逻辑与信息。
通过需求工程,还让我学习到一个重要的知识——团队的合作,团队之间的分工,统一,对于我们这类在校生而言,这种学习能让我们在以后的工作中少走一些弯路。所以,通过需求工程,我是真的学到了很多的东西,不单单是书中的理论知识,更多是让我明白了很多的道理。

A002-186-2610相关推荐

  1. 186. [USACO Oct08] 牧场旅行

    157. [USACO Nov07] 奶牛跨栏 186. [USACO Oct08] 牧场旅行 ★★ 输入文件:pwalk.in 输出文件:pwalk.out 简单对比时间限制:1 s 内存限制:12 ...

  2. YTU 2610: A改错题--体检情况分析

    2610: A改错题--体检情况分析 时间限制: 1 Sec  内存限制: 128 MB 提交: 233  解决: 161 题目描述 注:本题只需要提交标记为修改部分之间的代码,请按照C++方式提交. ...

  3. 笔记 | 机器学习《概率图模型》,手推笔记已186页!

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散   计算机视觉联盟笔记   作者:王博Kings.Sophia 本文内容概述王博Kings<机器学习>手 ...

  4. 20200428:186周周赛下(leetcode1425)

    186周周赛下 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 这题一开始想的是dp,但是咋做都超时,看了大佬们优化后的dp,但是感觉暂时只能参考,需要时间消化,第一步dp的简单思路为:dp ...

  5. 20200426:186周周赛(上)(leetcode5392-5394)

    186周周赛(上)(leetcode5392-5394) 题目 思路与算法 代码实现 总结 题目 5392:分割字符串的最大得分 5393:可获得的最大点数 5394:对角线遍历Ⅱ 思路与算法 539 ...

  6. cisco 2610 2950 单臂路由得一些心得

    原公司要虚拟真实的不同段的IP环境,进行测试:要求在原有的网络基础上完成! 公司原通过一个linksys的路由器接入到2层交换,完成以上升级需添置一台2610和一台2950. 公司的网络拓扑图 目的 ...

  7. python 生成诸如A001 A002 ... A100这样的序列

    在  python中如果我们想要获得诸如A001 A002 ... A100这样的序列,该怎么办呢? 本文给出了一种实现方式: #定义生成 def get_range(n):     len_n = ...

  8. Monkeys [POI 2003,Bzoj 2610]

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2610 [分析] 考虑到这是一个连通性的问题,所以我们可以使用并查集.根据"手松开 ...

  9. 一个神奇的资源网站「有趣网站收藏家」共有186个站点资源-北忘山修改版

    一个神奇的资源网站「有趣网站收藏家」共有186个站点资源-北忘山修改版 网站介绍 这个网站有点东西,目前收集了186个资源,小北当时拔下来之后发现都是作者纯html手写的,意思就是每每添加网站都是手动 ...

  10. (186)Verilog HDL:3位线性反馈移位寄存器

    (186)Verilog HDL:3位线性反馈移位寄存器 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL:3位线性反馈移位寄存器 5)结语 1.2 ...

最新文章

  1. php 点击选择图片上传,快速实现PHP图片上传和预览
  2. android屏幕底部黑块,Android surfaceView 黑块问题
  3. android多功能计算器 源码,Android计算器源码
  4. Position和anchorPoint
  5. Linux 上的高可用中间件
  6. shell题库选择题_linux操作题及答案 shell练习题
  7. matlab根据结构体数组,用邻接矩阵和序遍历创建树形结构:
  8. 线程魔术技巧:使用Java线程可以做的5件事
  9. C++ 普通函数与函数模板 区别以及调用规则01
  10. IntelliJ IDEA下载插件超时--解决方法
  11. 禅道批量删除bug_写代码有这16个好习惯,可以减少80%非业务的bug
  12. 近期工作:规则引擎/专家系统
  13. sqlalchemy用in_ 批量delete
  14. 实验四 数据选择器及其应用
  15. 一米霜降肥牛,煎饼果子,all you can eat 牛油串串
  16. PCB genesis 大孔扩孔(不用G84命令)实现方法
  17. 【vscode简单入门(三)】vscode巨实用的基础插件推荐(不定期更新)
  18. 怎么把微信公众号的文章里的音频或视频下载到电脑和手机
  19. VIM 参 考 手 册
  20. 数据分析-数据规范化的一些方法

热门文章

  1. 微型计算机系统实验总结(学习性实验:IO地址译码,可编程并行接口8255,交通灯控制实验 + 自主设计实验:汽车信号灯控制系统,电风扇控制器,洗衣机控制系统,霓虹灯,电梯控制系统)
  2. python while true循环卡住不动_python – While循环导致整个程序在Tkinter中崩溃
  3. 2021年安全员-A证考试报名及安全员-A证新版试题
  4. 中国首台千万亿次超级计算机,中国首台千万亿次超级计算机完成安装
  5. MATLAB散点密度图的画法三
  6. win10 uwp 使用 Microsoft.Graph 发送邮件
  7. linux踢出硬盘,Linux MD/RAID 踢盘机制
  8. python数据分析的钥匙——pandas库
  9. FusionCharts Demo
  10. 【C 语言基础】C 世界函数的故事,今天带你详细了解各组件原理