A002-185-2537-翁格婉(个人期末作业)

Excel查找结合项目主题说明

  • 1.作业查词说明
    • 1.1第一次查词
      • 1.1.1Requirements baseline(需求基线)
      • 1.1.2Enterprise Architect(企业架构师)
      • 1.1.3Unified Modeling Language( 统一建模语言)
      • 1.1.3Unified Modeling Language( 统一建模语言)
      • 1.1.5Asynchronous Processes(异步进程)
      • 1.1.6association class(关联类)
      • 1.1.7behavioral model aspect(行为模型方面)
      • 1.1.8binary association(二元关联)
      • 1.1.9component diagram(构件图)
      • 1.1.10concrete class(具体类)
      • 1.1.11containment hierarchy(内容层次结构)
    • 1.2第二次查词
      • 1.2.1enumeration(列举)
      • 1.2.2formal parameter(形式参数)
      • 1.2.3implementation inheritance(实现继承)
      • 1.2.4interaction diagram(交互图)
      • 1.2.5interface inheritance(接口继承)
      • 1.2.6internal transition(内部转换)
      • 1.2.7metaclass(元类)
      • 1.2.8meta-metamodel(元模型)
      • 1.2.10Communication Diagram(通信图)
    • 1.3第三次查词
      • 1.3.1metaobject(元对象)
      • 1.3.2module(组件)
      • 1.3.3multiple inheritance(多重继承)
      • 1.3.4namespace(命名空间)
      • 1.3.5object diagram(对象图)
      • 1.3.6object flow state(对象流状态)
      • 1.3.8parameterized element(参数化的元素)
      • 1.3.9Object Diagram(对象图)
      • 1.3.10Composition of Activity Diagrams(活动图组成)
    • 1.4第四次查词
      • 1.4.1persistent object(持久化对象)
      • 1.4.2postcondition(后置条件)
      • 1.4.3precondition(预处理)
      • 1.4.4primitive type(原语类型)
      • 1.4.5pseudo-state(伪状态)
      • 1.4.6published model [MOF](发布模型(MOF))
      • 1.4.7qualifier(修饰语)
      • 1.4.8run time(运行时间)
      • 1.4.9schema [MOF](模式)
      • 1.4.10sender [object](发送方(对象))
    • 1.2 项目主题查词说明
      • 1.2.2 Internal Block Diagram(内部方框图)
      • 1.2.3 package diagram(包图)
      • 1.2.4 Requirement Hierarchy(需求层次结构)
      • 1.2.5 One Level Activity Hierarchy(活动的层次结构)
      • 1.2.6 Interface Diagram(界面示意图)
      • 1.2.7 Class Diagram(类图)
      • 1.2.8 Transaction Flow Diagram(业务流程图)
  • 2.读书笔记
    • 2.1读书笔记一
    • 2.2读书笔记二
    • 2.3读书笔记三
  • 3.对高铁订票系统的发展建议
    • 3.1建议一
    • 3.2建议二
    • 3.3建议三

1.作业查词说明

1.1第一次查词

1.1.1Requirements baseline(需求基线)

查找名词 Requirements baseline(需求基线)
名词解说 A baseline for a set of requirements.
查找网址 https://www.jamasoftware.com/blog/defining-requirement-baseline/
查找时间 2020/9/22
详细解释
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.
需求基线是一个及时的快照,它代表了一组已被承诺到特定产品发布的已商定的、评审的和批准的需求。
这个“发布”可以是一个完整交付的产品,也可以是产品的任何中间开发增量。当涉众在需求上“签字”时,他们真正要做的是同意并承诺一个特定的需求基线(不管他们是否以这些术语来考虑它)。
一旦项目团队建立了需求基线,团队就应该遵循一个实用的变更控制过程,以做出关于添加新请求的功能和更改或删除现有需求的良好业务和技术决策。
变更控制过程并不是要扼杀变更;它向决策者提供信息,使他们能够做出及时和适当的决定,以修改计划的功能。计划的功能就是基线。
通常,基线也被赋予唯一的名称,以便所有项目参与者都能清楚地引用它。良好的配置管理实践允许团队精确地重建任何以前的基线及其所有组件。

1.1.2Enterprise Architect(企业架构师)

查找名词 Enterprise Architect(企业架构师)
名词解说 A visual platform for designing and constructing software systems, for business process modeling, and for more generalized modeling purposes.
查找网址 https://www.sparxsystems.com/enterprise-architect/index.html
https://www.sciencedirect.com/search?qs=Enterprise%20Architect

查找时间 2020/9/22
详细解释
What is Enterprise Architect?
Enterprise Architect is a visual platform for designing and constructing software systems, for business process modeling, and for more generalized modeling purposes.

Enterprise Architect is based on the latest UML® 2.5 specification (see www.omg.org). UML defines a visual language that is used to model a particular domain or system (either proposed or existing).

Enterprise Architect is a progressive tool that covers all aspects of the development cycle, providing full traceability from the initial design phase through to deployment, maintenance, testing and change control.

What differentiates Enterprise Architect from other UML tools?
Comprehensive UML 2.5 based modeling
Built-in Requirements Management
Extensive Project Management support, including resources, tasks, project calendar and metrics
Test Management built-in: Testpoint management, model-based test execution, test case specification and support for JUnit and NUnit
Flexible documentation options: HTML and Rich-Text (RTF) report writers
Code engineering support for many languages out of the box
An integrated Visual Execution Analyzer to profile, debug and document executing applications; instantiate run-time model objects; and record sequence diagrams from a stack trace
Extensible modeling environment that can host user-defined profiles and technologies
Usability: Enterprise Architect makes it easy to get up and running quickly with UML

Speed: Enterprise Architect is a spectacularly fast performer
Scalability: Enterprise Architect can handle extremely large models and many concurrent users with ease
Price: Enterprise Architect is priced to outfit the entire team, making collaboration and team development cost effectivelity from the initial design phase through to deployment, maintenance, testing and change control.
什么是企业架构师?
Enterprise Architect是一个可视化平台,用于设计和构建软件系统、业务流程建模以及更通用的建模目的。
Enterprise Architect基于最新的UML®2.5规范(请参见www.omg.org)。UML定义了一种可视化语言,用于建模特定的领域或系统(建议的或现有的)。
Enterprise Architect是一个渐进的工具,它覆盖了开发周期的所有方面,提供了从最初的设计阶段到部署、维护、测试和变更控制的完整跟踪。
企业架构师与其他UML工具的区别是什么?
全面的基于UML 2.5的建模
内置的需求管理
广泛的项目管理支持,包括资源,任务,项目日历和指标
内置的测试管理:测试点管理,基于模型的测试执行,测试用例规范以及对JUnit和NUnit的支持
灵活的文档选项:HTML和富文本(RTF)报告编写器
代码工程支持多种语言开箱即用
一个集成的可视化执行分析器来分析、调试和记录执行应用程序;实例化运行时模型对象;并从堆栈跟踪记录序列图
可扩展的建模环境,可以托管用户定义的概要文件和技术
可用性:Enterprise Architect使得使用UML可以很容易地建立和快速运行
速度:企业架构师是一个非常快的执行者
可伸缩性:Enterprise Architect可以轻松地处理非常大的模型和许多并发用户
价格:Enterprise Architect的定价是为了满足整个团队,使得从最初设计阶段到部署、维护、测试和变更控制的协作和团队开发成本有效性。

1.1.3Unified Modeling Language( 统一建模语言)

查找名词 Unified Modeling Language( 统一建模语言)
名词解说 A standardized modeling language consisting of an integrated set of diagrams
查找网址 https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml/
https://www.uml.org/what-is-uml.htm

查找时间 2020/9/22
详细解释
UML, short for Unified Modeling Language, is a standardized modeling language consisting of an integrated set of diagrams, developed to help system and software developers for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing object oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software. In this article, we will give you detailed ideas about what is UML, the history of UML and a description of each UML diagram type, along with UML examples.
Why UML

As the strategic value of software increases for many companies, the industry looks for techniques to automate the production of software and to improve quality and reduce cost and time-to-market. These techniques include component technology, visual programming, patterns and frameworks. Businesses also seek techniques to manage the complexity of systems as they increase in scope and scale. In particular, they recognize the need to solve recurring architectural problems, such as physical distribution, concurrency, replication, security, load balancing and fault tolerance. Additionally, the development for the World Wide Web, while making some things simpler, has exacerbated these architectural problems. The Unified Modeling Language (UML) was designed to respond to these needs. The primary goals in the design of the UML summarize by Page-Jones in Fundamental Object-Oriented Design in UML as follows:

Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.
Provide extensibility and specialization mechanisms to extend the core concepts.

Be independent of particular programming languages and development processes.
Provide a formal basis for understanding the modeling language.
Encourage the growth of the OO tools market.
Support higher-level development concepts such as collaborations, frameworks, patterns and components.
Integrate best practices.
UML是统一建模语言的缩写,是一种标准化的建模语言,由一组集成的图组成,开发用于帮助系统和软件开发人员指定、可视化、构造和记录软件系统的工件,以及用于业务建模和其他非软件系统。UML代表了在大型和复杂系统的建模中被证明成功的最佳工程实践的集合。UML是面向对象软件开发和软件开发过程中非常重要的一部分。UML主要使用图形符号来表达软件项目的设计。使用UML可以帮助项目团队进行交流,探索潜在的设计,并验证软件的架构设计。在本文中,我们将详细介绍什么是UML, UML的历史和每种UML图类型的描述,以及UML示例。
为什么UML
随着许多公司对软件的战略价值的增加,业界开始寻找技术来实现软件生产的自动化,提高质量,降低成本和上市时间。这些技术包括组件技术、可视化编程、模式和框架。随着系统范围和规模的增加,企业还寻求管理系统复杂性的技术。特别是,他们认识到需要解决重复出现的架构问题,比如物理分布、并发性、复制、安全性、负载平衡和容错。此外,万维网的发展在简化一些事情的同时,也加剧了这些体系结构问题。统一建模语言(UML)就是为了响应这些需求而设计的。由Page-Jones在UML基本面向对象设计中总结的UML设计的主要目标如下:
为用户提供一种随时可用的、富有表现力的可视化建模语言,这样他们就可以开发和交换有意义的模型。
提供可扩展性和专门化机制以扩展核心概念。
独立于特定的编程语言和开发过程。
为理解建模语言提供形式化的基础。
鼓励OO工具市场的发展。
支持更高层次的开发概念,如协作、框架、模式和组件。
集成的最佳实践。

1.1.3Unified Modeling Language( 统一建模语言)

查找名词 Unified Modeling Language( 统一建模语言)
名词解说 A standardized modeling language consisting of an integrated set of diagrams
查找网址 https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml/
https://www.uml.org/what-is-uml.htm

查找时间 2020/9/22
详细解释
UML, short for Unified Modeling Language, is a standardized modeling language consisting of an integrated set of diagrams, developed to help system and software developers for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing object oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software. In this article, we will give you detailed ideas about what is UML, the history of UML and a description of each UML diagram type, along with UML examples.
Why UML

As the strategic value of software increases for many companies, the industry looks for techniques to automate the production of software and to improve quality and reduce cost and time-to-market. These techniques include component technology, visual programming, patterns and frameworks. Businesses also seek techniques to manage the complexity of systems as they increase in scope and scale. In particular, they recognize the need to solve recurring architectural problems, such as physical distribution, concurrency, replication, security, load balancing and fault tolerance. Additionally, the development for the World Wide Web, while making some things simpler, has exacerbated these architectural problems. The Unified Modeling Language (UML) was designed to respond to these needs. The primary goals in the design of the UML summarize by Page-Jones in Fundamental Object-Oriented Design in UML as follows:

Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.
Provide extensibility and specialization mechanisms to extend the core concepts.

Be independent of particular programming languages and development processes.
Provide a formal basis for understanding the modeling language.
Encourage the growth of the OO tools market.
Support higher-level development concepts such as collaborations, frameworks, patterns and components.
Integrate best practices.
UML是统一建模语言的缩写,是一种标准化的建模语言,由一组集成的图组成,开发用于帮助系统和软件开发人员指定、可视化、构造和记录软件系统的工件,以及用于业务建模和其他非软件系统。UML代表了在大型和复杂系统的建模中被证明成功的最佳工程实践的集合。UML是面向对象软件开发和软件开发过程中非常重要的一部分。UML主要使用图形符号来表达软件项目的设计。使用UML可以帮助项目团队进行交流,探索潜在的设计,并验证软件的架构设计。在本文中,我们将详细介绍什么是UML, UML的历史和每种UML图类型的描述,以及UML示例。
为什么UML
随着许多公司对软件的战略价值的增加,业界开始寻找技术来实现软件生产的自动化,提高质量,降低成本和上市时间。这些技术包括组件技术、可视化编程、模式和框架。随着系统范围和规模的增加,企业还寻求管理系统复杂性的技术。特别是,他们认识到需要解决重复出现的架构问题,比如物理分布、并发性、复制、安全性、负载平衡和容错。此外,万维网的发展在简化一些事情的同时,也加剧了这些体系结构问题。统一建模语言(UML)就是为了响应这些需求而设计的。由Page-Jones在UML基本面向对象设计中总结的UML设计的主要目标如下:
为用户提供一种随时可用的、富有表现力的可视化建模语言,这样他们就可以开发和交换有意义的模型。
提供可扩展性和专门化机制以扩展核心概念。
独立于特定的编程语言和开发过程。
为理解建模语言提供形式化的基础。
鼓励OO工具市场的发展。
支持更高层次的开发概念,如协作、框架、模式和组件。
集成的最佳实践。
A002-185-2537-翁格婉(个人期末作业)_第1张图片

1.1.5Asynchronous Processes(异步进程)

查找名词 Asynchronous Processes(异步进程)
名词解说 The caller must wait for the method call to return before continuing with the behavior
查找网址 https://trailhead.salesforce.com/en/content/learn/modules/asynchronous_apex/async_apex_introduction
https://developer.salesforce.com/forums/?id=9060G000000I6XAQA0
https://www.gnu.org/software/emacs/manual/html_node/elisp/Asynchronous-Processes.html

查找时间 2020/9/22
详细解释
An asynchronous process is controlled either via a pty (pseudo-terminal) or a pipe. The choice of pty or pipe is made when creating the process, by default based on the value of the variable process-connection-type (see below). If available, ptys are usually preferable for processes visible to the user, as in Shell mode, because they allow for job control (C-c, C-z, etc.) between the process and its children, and because interactive programs treat ptys as terminal devices, whereas pipes don’t support these features. However, for subprocesses used by Lisp programs for internal purposes (i.e., no user interaction with the subprocess is required), where significant amounts of data need to be exchanged between the subprocess and the Lisp program, it is often better to use a pipe, because pipes are more efficient. Also, the total number of ptys is limited on many systems, and it is good not to waste them unnecessarily.

An asynchronous process is job or function that doesn’t have direct interaction with user. Suppose you have implemented SFDC for a mobile company and the company has millions of customers using its services. Company decides to flag those customers as inactive that have not recharged in the last one year. For this you can create a nightly job (usually by a batch job) to do this activities. Here this job runs in the background and doesn’t have direct interaction with user.
异步进程可以通过pty(伪终端)或管道进行控制。在创建流程时选择pty或pipe,默认情况下,基于变量process-connection-type的值(参见下面)。如果可行,ptys对于用户可见的进程来说通常是更好的选择,比如在Shell模式中,因为它们允许在进程及其子进程之间进行作业控制(C-c, C-z等),并且因为交互程序将ptys视为终端设备,而管道不支持这些特性。但是,对于Lisp程序用于内部目的的子进程(即,不需要用户与子进程交互),在子进程和Lisp程序之间需要交换大量数据的情况下,通常使用管道更好,因为管道更有效。另外,许多系统上的ptys总数是有限的,最好不要不必要地浪费它们。
异步流程是指与用户没有直接交互的作业或功能。假设您已经为一家移动公司实现了SFDC,该公司有数百万客户使用其服务。公司决定将那些在过去一年内没有充电的客户标记为非活跃用户。为此,您可以创建一个夜间作业(通常通过批处理作业)来执行这些活动。在这里,该作业在后台运行,与用户没有直接的交互。

1.1.6association class(关联类)

查找名词 association class(关联类)
名词解说 a class that is part of an association relationship between two other classes.
查找网址 https://www.ibm.com/support/knowledgecenter/SSCLKU_7.5.5/com.ibm.xtools.modeler.doc/topics/cassnclss.html
https://www.jguru.com/faq/view.jsp?EID=100819

查找时间 2020/9/22
详细解释
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-185-2537-翁格婉(个人期末作业)_第2张图片

1.1.7behavioral model aspect(行为模型方面)

查找名词 behavioral model aspect(行为模型方面)
名词解说 A model aspect that emphasizes the behavior of the
instances in a system
查找网址 https://file.scirp.org/pdf/JSEA_2013032915342168.pdf
查找时间 2020/9/22
详细解释
Aspect oriented software development is an emerging paradigm of software development. The notion of this technique is separation of concerns which means to implement each concern in a single object in object oriented programming but still there are concerns which are distributed on different objects and are called crosscutting concerns while another form is Core concerns are the core fun ctionality provided by the system but cro sscutting concerns are the concerns like logging, performance etc. Modeling of aspect oriented software is different from the normal modeling of object-ori- ented or procedural language software, because aspects don’t have the independent identity or existence and they are tightly coupled to their woven context so it is difficult to model them. The one aim of our research paper is to explore the domain of Modeling of the aspect oriented software. The goal of this research paper is to give a UML Behavioral modeling techniques in the domain of aspect oriented software development. This technique of generating UML Be-havioral Model for aspects will give better understating of separations concerns.
面向方面的软件开发是一种新兴的软件开发范式。这种技术关注点分离的概念意味着实现每一个关注点在面向对象编程中一个单独的对象,但仍有担忧,分布在不同的对象和被称为横切关注点,而另一种形式是核心关切的核心系统,但提供的乐趣ctionality cro sscutting担忧关切像日志记录、性能等。面向方面软件的建模不同于面向对象软件或过程语言软件的常规建模,因为面向方面没有独立的身份或存在性,而且它们与它们编织的上下文紧密耦合,因此很难对它们建模。本文的目的之一是探索面向方面软件的建模领域。本文的研究目标是给出面向方面软件开发领域中的UML行为建模技术。这种为方面生成UML Be-havioral模型的技术将更好地理解分离关注点。

1.1.8binary association(二元关联)

查找名词 binary association(二元关联)
名词解说 An association between two classes. A special case of an n
ary association.
查找网址 https://www.sciencedirect.com/topics/computer-science/binary-association

查找时间 2020/9/22
详细解释
Transforming the Conceptual Data Model to SQL
Toby Teorey, … H.V. Jagadish, in Database Modeling and Design (Fifth Edition), 2011

Binary Relationships
A one-to-one binary relationship between two entities is illustrated in Figure 5.1(a)–©. Note that the UML-equivalent binary association is given in Figure 5.2(a)–©.

When both entities are mandatory (Figure 5.1a), each entity becomes a table, and the key of either entity can appear in the other entity’s table as a foreign key. One of the entities in an optional relationship (see Department in Figure 5.1b) should contain the foreign key of the other entity in its transformed table. Employee, the other entity in Figure 5.1(b), could also contain a foreign key (dept_no) with nulls allowed, but this would require more storage space because of the much greater number of Employee entity instances than Department instances. When both entities are optional (Figure 5.1c), either entity can contain the embedded foreign key of the other entity, with nulls allowed in the foreign keys.

The one-to-many relationship can be shown as either mandatory or optional on the “many” side, without affecting the transformation. On the “one” side it may be either mandatory (Figure 5.1d) or optional (Figure 5.1e). In all cases the foreign key must appear on the “many” side, which represents the child entity, with nulls allowed for foreign keys only in the optional “one” case. Foreign key constraints are set according to the specific meaning of the relationship and may vary from one relationship to another.

The many-to-many relationship, shown in Figure 5.1(f) as optional for both entities, requires a new table containing the primary keys of both entities. The same transformation applies to either the optional or mandatory case, including the fact that the “not null” clause must appear for the foreign keys in both cases. Note also that an optional entity means that the SQL table derived from it may have zero rows for that particular relationship. This does not affect “null” or “not null” in the table definition.
The white diamond indicates a shared aggregation where the part may belong to different wholes at the same time. In Figure 6.20, a given Item must be part of an Order, but also may be part of a Sale.

Composite and shared aggregation are special associations and should be used with much parsimony, that is, they should be used only when the team is sure that it is the case that an object is really part of another, and not just a normal association. Even the UML specification (Object Management Group, 2011) states that the precise semantics of a shared aggregation varies between application areas and modelers.

It is common to see aggregation and composition being abused in models, when objects that are not part-whole related are linked by that kind of association. For example, a customer is not part of an order, if not for any other reason but the fact that a customer is a person and an order is not a physical thing, but a transaction. Composite and shared aggregations should unite elements of the same nature: physical with physical, and abstract with abstract. An order may be associated to a customer, but the order is not made of customers.

There are few real advantages in using aggregation in conceptual modeling. This is another reason to minimize or even abolish their use in conceptual models. Among the advantages is that composite or shared aggregation parts usually have attributes that are combined and derived in the whole. For example, the total value of an order is the sum of its items; the weight of a package is the sum of the weight of each book; when a car is sold, all its parts are sold too; and so on. However, these concerns usually appear only at design time.

将概念数据模型转换为SQL
托比Teorey,……《数据库建模与设计》(第五版),2011
二元关系
图5.1(A) - ©说明了两个实体之间一对一的二进制关系。请注意,uml等效的二进制关联在图5.2(a) - ©中给出。
当两个实体都是必需的(图5.1a)时,每个实体都成为一个表,并且任意一个实体的键都可以作为外键出现在另一个实体的表中。可选关系中的一个实体(见图5.1b中的Department)应该在其转换后的表中包含另一个实体的外键。Employee,图5.1(b)中的另一个实体,也可以包含一个允许为空的外键(dept_no),但是这将需要更多的存储空间,因为Employee实体实例的数量要比Department实例大得多。当两个实体都是可选的(图5.1c)时,任何一个实体都可以包含另一个实体的内嵌外键,外键允许为空。
在“many”方面,一对多关系可以显示为强制的或可选的,而不会影响转换。在“一方面”,它可以是强制性的(图5.1d)或可选的(图5.1e)。在所有情况下,外键必须出现在表示子实体的“many”端,只有在可选的“one”情况下,外键才允许为空。外键约束是根据关系的特定含义设置的,并且可能因关系的不同而有所不同。
图5.1(f)所示的多对多关系对于两个实体来说都是可选的,它需要一个包含两个实体主键的新表。同样的转换适用于可选或强制情况,包括在这两种情况下外键必须出现“not null”子句这一事实。还要注意,可选实体意味着从该实体派生的SQL表对于该特定关系可能没有行。这不会影响表定义中的“null”或“not null”。
A002-185-2537-翁格婉(个人期末作业)_第3张图片

白色钻石表示一个共享的聚集,其中部分可以同时属于不同的整体。在图6.20中,给定的商品必须是订单的一部分,但也可以是销售的一部分。
复合聚合和共享聚合是特殊的关联,应该非常谨慎地使用,也就是说,只有当团队确信某个对象确实是另一个对象的一部分,而不仅仅是普通的关联时才应该使用它们。甚至UML规范(对象管理组,2011年)也声明共享聚合的精确语义在应用程序区域和建模者之间是不同的。
当不完全相关的对象被这种关联连接起来时,在模型中经常会看到聚合和组合被滥用。例如,客户不是订单的一部分,如果不是因为其他原因,而是因为客户是一个人,而订单不是物理的东西,而是一个事务。合成和共享聚合应该统一相同性质的元素:物理与物理,抽象与抽象。订单可以与客户相关联,但订单不是由客户组成的。
在概念建模中使用聚合并没有什么真正的优势。这是减少甚至废除概念模型中使用它们的另一个原因。组合或共享聚合部件的优点之一是,它们通常具有整体组合和派生的属性。例如,一个订单的总价值是该订单商品的总和;一包书的重量是每本书重量的总和;当一辆汽车被卖掉时,它的所有部件也被卖掉了;等等。然而,这些问题通常只在设计时出现。

1.1.9component diagram(构件图)

查找名词 component diagram(构件图)
名词解说 A diagram that shows the organizations and dependencies among components
查找网址 https://www.guru99.com/component-diagram-uml-example.html
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/

查找时间 2020/9/22
详细解释
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.
Basic Concepts of Component Diagram
A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment. In UML 2, a component is drawn as a rectangle with optional compartments stacked vertically. A high-level, abstracted view of a component in UML 2 can be modeled as:

A rectangle with the component’s name
A rectangle with the component icon
A rectangle with the stereotype text and/or icon
Looks of a Component
Interface
In the example below shows two type of component interfaces:

Provided interface symbols with a complete circle at their end represent an interface that the component provides - this “lollipop” symbol is shorthand for a realization relationship of an interface classifier.

Required Interface symbols with only a half circle at their end (a.k.a. sockets) represent an interface that the component requires (in both cases, the interface’s name is placed near the interface symbol itself).

Required and provided interface
Component Diagram Example - Using Interface (Order System)
Component interface example
Subsystems
The subsystem classifier is a specialized version of a component classifier. Because of this, the subsystem notation element inherits all the same rules as the component notation element. The only difference is that a subsystem notation element has the keyword of subsystem instead of component.

Component Subsystems
Port
Ports are represented using a square along the edge of the system or a component. A port is often used to help expose required and provided interfaces of a component.

Component Diagram Port
UML组件图用于为面向对象系统的物理方面建模,这些面向对象系统用于可视化、指定和记录基于组件的系统,也用于通过正向和反向工程构建可执行系统。组件图本质上是关注系统组件的类图,这些组件通常用于为系统的静态实现视图建模。
组件图的基本概念
组件表示系统的模块化部分,它封装了系统的内容,并且组件的表现形式在其环境中是可替换的。在UML 2中,一个组件被绘制成一个矩形,可选的分隔单元垂直堆叠。在UML 2中,一个高级的,抽象的组件视图可以建模为:
包含组件名称的矩形
带有组件图标的矩形
带有原型文本和/或图标的矩形
组件的外观
在这里插入图片描述

接口
下面的例子展示了两种类型的组件接口:
被提供的接口符号在它们的末端有一个完整的圆,代表组件提供的接口-这个“棒棒糖”符号是接口分类器的实现关系的速记。
末尾只有一个半圆的必选接口符号(又名套接字)表示组件需要的接口(在这两种情况下,接口的名称都放在接口符号本身附近)。
所需和提供的接口
A002-185-2537-翁格婉(个人期末作业)_第4张图片

组件图示例-使用接口(订单系统)
A002-185-2537-翁格婉(个人期末作业)_第5张图片

组件接口示例
子系统
子系统分类器是组件分类器的专门化版本。由于这个原因,子系统符号元素继承了与组件符号元素相同的规则。唯一的区别是子系统符号元素的关键字是子系统,而不是组件。
组件子系统
A002-185-2537-翁格婉(个人期末作业)_第6张图片

港口
端口使用系统边缘或组件边缘的正方形表示。端口通常用于帮助公开组件所需的和提供的接口。
组件图的港口
A002-185-2537-翁格婉(个人期末作业)_第7张图片

1.1.10concrete class(具体类)

查找名词 concrete class(具体类)
名词解说 “A class that can be directly instantiated. Contrast: abstract class”
查找网址 https://www.geeksforgeeks.org/concrete-class-in-java/
https://www.baeldung.com/java-concrete-class

查找时间 2020/9/22
详细解释
A concrete class is a class that we can create an instance of, using the new keyword.

In other words, it’s a full implementation of its blueprint. A concrete class is complete.
A concrete class is a class that has an implementation for all of its methods. They cannot have any unimplemented methods. It can also extend an abstract class or implement an interface as long as it implements all their methods. It is a complete class and can be instantiated.

In other words, we can say that any class which is not abstract is a concrete class.

Necessary condition for a concrete class: There must be an implementation for each and every method.

Example: The image below shows three classes Shape, Rectangle and Circle. Shape is abstract whereas Rectangle and Circle are concrete and inherit Shape. This is because Rectangle and Circle implement area() method.
具体类是我们可以使用new关键字创建实例的类。
换句话说,它是其蓝图的完整实现。一个具体类就完成了。
具体类是为其所有方法提供实现的类。它们不能有任何未实现的方法。它还可以扩展一个抽象类或实现一个接口,只要它实现了它们的所有方法。它是一个完整的类,可以实例化。
换句话说,我们可以说任何不是抽象的类都是具体的类。
A002-185-2537-翁格婉(个人期末作业)_第8张图片

1.1.11containment hierarchy(内容层次结构)

查找名词 containment hierarchy(内容层次结构)
名词解说 A namespace hierarchy consisting of model elements, and the containment relationships that exist between them. A containment hierarchy forms an acyclic graph.
查找网址 http://www.web-feats.com/classes/javaprog/lessons/swing_gui_intro/containment.htm
https://www.sciencedirect.com/topics/computer-science/containment-hierarchy
http://www.firstobject.com/dn_markhierarchy.htm

查找时间 2020/9/22
详细解释
Swing Containment Hierarchy
All Swing GUI applications and applets make use of a containment hierarchy that is more or less unrelated to (or at least different from) the Swing components’ position on the class hierarchy.

The containment hierarchy, from top to bottom, is as follows:

Top-level Container(s)
To appear onscreen, every GUI component must be part of a containment hierarchy. There is at least one containment hierarchy in every program that uses Swing components. Each containment hierarchy has a top-level container at its root.

Intermediate Container(s)
Generally speaking, an intermediate container consists of a content pane, or panel, that contains all the visible (atomic) components. Each top-level container must contain at least one intermediate container if there is to be anything useful displayed on the screen.

Atomic Component(s)
The button and label are atomic components - self-sufficient entities that present bits of information to the user. Often, atomic components also get input from the user.
Tip: To view the containment hierarchy for any frame or dialog, click its border to select it, and then press Control-Shift-F1. A list of the containment hierarchy will be written to the standard output stream.
Top-level Containers
Top-level Containers exist mainly to provide a place for other Swing components to paint themselves. Swing provides four top-level container classes:

JApplet - Enables applets to use Swing components.

JDialog - The main class for creating a dialog window.

JFrame - A top-level window with a title and a border.

JWindow - As a rule, not very useful. Provides a window with no controls or title.
Top-level Containers in Applets
A Swing-based applet has at least one containment hierarchy, exactly one of which is rooted by a JApplet object. For example, an applet that brings up a dialog has two containment hierarchies. The components in the browser window are in a containment hierarchy rooted by a JApplet object. The dialog has a containment hierarchy rooted by a JDialog object.

Top-level Containers in Applications
As a rule, a standalone application with a Swing-based GUI has at least one containment hierarchy with a JFrame as its root. For example, if an application has one main window and two dialogs, then the application has three containment hierarchies, and thus three top-level containers. One containment hierarchy has a JFrame as its root, and each of the other two has a JDialog object as its root.

Intermediate Containers
A panel, or pane, such as JPanel, is an intermediate container. Its only purpose is to simplify the positioning atomic components like buttons and labels. Other intermediate Swing containers, such as scroll panes (JScrollPane) and tabbed panes (JTabbedPane), typically play a more visible, interactive role in a program’s GUI.
Swing容器层次结构
所有Swing GUI应用程序和applet都使用包含层次结构,它或多或少与Swing组件在类层次结构中的位置无关(或至少与之不同)。
包容层次结构,从上到下,如下所示:
顶层容器(年代)
要显示在屏幕上,每个GUI组件都必须是包含层次结构的一部分。在每个使用Swing组件的程序中至少有一个包容层次结构。每个包含层次结构在其根处都有一个顶级容器。
中间容器(年代)
一般来说,中间容器由内容窗格或面板组成,其中包含所有可见的(原子的)组件。如果要在屏幕上显示任何有用的内容,每个顶级容器必须包含至少一个中间容器。
原子组件(年代)
按钮和标签是原子组件——自给自足的实体,它们向用户显示信息位。通常,原子组件也会从用户那里获得输入。
提示:要查看任何框架或对话框的包含层次结构,请单击其边框选择它,然后按Control-Shift-F1。包含层次结构的列表将被写入标准输出流。
顶层容器
顶级容器的存在主要是为其他Swing组件提供绘制自身的空间。Swing提供了四个顶级容器类:
使applet能够使用Swing组件。
JDialog -用于创建对话框窗口的主类。
一个带有标题和边框的顶级窗口。
JWindow -作为一个规则,不是很有用。提供一个不带控件或标题的窗口。
applet中的顶级容器
一个基于swing的applet至少有一个包含层次结构,其中恰好有一个是由JApplet对象作为根的。例如,一个弹出对话框的applet有两个包含层次结构。浏览器窗口中的组件位于包含层次结构中,该层次结构以JApplet对象为根。对话框有一个包含层次结构,其根是JDialog对象。
应用程序中的顶级容器
通常,具有基于swing的GUI的独立应用程序至少有一个以JFrame作为根的包含层次结构。例如,如果一个应用程序有一个主窗口和两个对话框,那么这个应用程序就有三个包含层次结构,因此也就有三个顶层容器。一个包含层次结构有一个JFrame作为它的根,另外两个都有一个JDialog对象作为它的根。
中间容器
一个面板,或一个窗格,例如JPanel,是一个中间容器。它的唯一目的是简化像按钮和标签这样的原子组件的定位。其他中间Swing容器,例如滚动窗格(JScrollPane)和选项卡式窗格(JTabbedPane),通常在程序的GUI中扮演更可见的、交互式的角色。
1.1.12deployment diagram(配置图)
查找名词 deployment diagram(配置图)
名词解说 A diagram that shows the configuration of run-time processing nodes and the components, processes, and objects that live on them.
查找网址
查找时间 2020/9/22
详细解释
What is Deployment Diagram?
Deployment Diagram is a type of diagram that specifies the physical hardware on which the software system will execute. It also determines how the software is deployed on the underlying hardware. It maps software pieces of a system to the device that are going to execute it.

The deployment diagram maps the software architecture created in design to the physical system architecture that executes it. In distributed systems, it models the distribution of the software across the physical nodes.

The software systems are manifested using various artifacts, and then they are mapped to the execution environment that is going to execute the software such as nodes. Many nodes are involved in the deployment diagram; hence, the relation between them is represented using communication paths.
A UML deployment diagram is a diagram that shows the configuration of run time processing nodes and the components that live on them. Deployment diagrams is a kind of structure diagram used in modeling the physical aspects of an object-oriented system. They are often be used to model the static deployment view of a system (topology of the hardware).

Purpose of Deployment Diagrams
They show the structure of the run-time system
They capture the hardware that will be used to implement the system and the links between different items of hardware.
They model physical hardware elements and the communication paths between them

They can be used to plan the architecture of a system.
They are also useful for Document the deployment of software components or nodes

Deployment Diagram at a Glance
Deployment diagrams are important for visualizing, specifying, and documenting embedded, client/server, and distributed systems and also for managing executable systems through forward and reverse engineering.
什么是部署图?
部署图是一种指定软件系统将在其上执行的物理硬件的图。它还决定了如何在底层硬件上部署软件。它将系统的软件片段映射到将要执行它的设备上。
部署关系图将在设计中创建的软件体系结构映射到执行它的物理系统体系结构。在分布式系统中,它为跨物理节点的软件分布建模。
软件系统使用各种工件来表示,然后将它们映射到将要执行软件的执行环境,比如节点。部署图中涉及到许多节点;因此,它们之间的关系用通信路径表示。
UML部署图是显示运行时处理节点及其上的组件配置的图。部署图是用于为面向对象系统的物理方面建模的一种结构图。它们通常用于建模系统的静态部署视图(硬件的拓扑结构)。
A002-185-2537-翁格婉(个人期末作业)_第9张图片

部署图对于可视化、指定和记录嵌入式、客户机/服务器和分布式系统,以及通过正向和逆向工程管理可执行系统都很重要。
部署图只是一种特殊类型的类图,它主要关注系统的节点。在图形化上,部署图是顶点和弧的集合。部署图通常包含:
节点
3-D盒子代表一个节点,无论是软件还是硬件
HW节点可以用立体表示<<
节点之间的连接用一条线表示,它带有可选的立体类型。
节点可以驻留在节点中。

1.2第二次查词

1.2.1enumeration(列举)

查找名词 enumeration(列举)
名词解说 A list of named values used as the range of a particular attribute type.
查找网址 https://resources.infosecinstitute.com/topic/what-is-enumeration/
https://www.thefreedictionary.com/enumeration
查找时间 2020/10/18
详细解释
Enumeration is defined as a process which establishes an active connection to the target hosts to discover potential attack vectors in the system, and the same can be used for further exploitation of the system.

Enumeration is used to gather the below

Usernames, Group names
Hostnames
Network shares and services
IP tables and routing tables
Service settings and Audit configurations
Application and banners
SNMP and DNS Details
枚举定义为建立与目标主机的主动连接,发现系统中潜在的攻击向量,并用于系统的进一步开发的过程。
枚举用于收集以下元素
用户名、组名称
主机名
网络共享与服务
IP表和路由表
服务设置和审计配置
应用程序和横幅
SNMP和DNS细节

1.2.2formal parameter(形式参数)

查找名词 formal parameter(形式参数)
名词解说 Synonym: parameter.
查找网址 https://overiq.com/c-programming-101/actual-and-formal-arguments-in-c/
https://stackoverflow.com/questions/18870156/what-is-a-formal-parameter
查找时间 2020/10/18
详细解释
an object or reference declared as part of a function declaration or definition, or in the catch clause of an exception handler, that acquires a value on entry to the function or handler; an identifier from the comma-separated list bounded by the parentheses immediately following the macro name in a function-like macro definition; or a template-parameter. Parameters are also known as formal arguments or formal parameters.
在函数声明或定义中声明的对象或引用,或在异常处理程序的catch子句中声明的对象或引用,在函数或处理程序的入口上获取值;在类似函数的宏定义中,由紧接在宏名后面的圆括号包围的逗号分隔列表中的标识符;或者一个模板参数。参数也被称为形式参数或形式参数。

1.2.3implementation inheritance(实现继承)

查找名词 implementation inheritance(实现继承)
名词解说 The inheritance of the implementation of a more specific element.
查找网址 https://www.careerride.com/Csharp-implementation-interface-inheritance.aspx
https://www.ibm.com/developerworks/library/j-scala05298/index.html
查找时间 2020/10/18
详细解释
For the better part of 20 years, a staple of object-oriented language design has been the notion of inheritance. Languages that do not support inheritance, such as Visual Basic, are derided for being “toy languages,” unsuited to real work. Meanwhile, languages that do support inheritance do so differently, leading to many hours of debate. Is multiple inheritance really necessary (as the maker of C++ decided), or is it gratuitous and ugly (as determined by the makers of C# and the Java language)? Ruby and Scala are two newer languages that have taken the middle course on multiple inheritance — as I discussed last month when introducing Scala’s traits (see Related topics).

About this series
Ted Neward dives into the Scala programming language and takes you along with him. In this new developerWorks series, you’ll learn what all the recent hype is about and see some of Scala’s linguistic capabilities in action. Scala code and Java code will be shown side by side wherever comparison is relevant, but (as you’ll discover) many things in Scala have no direct correlation to anything you’ve found in Java — and therein lies much of Scala’s charm! After all, if Java could do it, why bother learning Scala?

Like all the cool languages, Scala also supports implementation inheritance (see Related topics). In the Java language, a single-implementation-inheritance model allows you to extend base classes and add new methods and fields, and so on. Despite some syntactic changes, Scala’s implementation inheritance looks and feels much the same as it does in the Java language. The differences have to do with the ways that Scala fuses object and functional language design, and they’re well worth exploring this month.

Implementation inheritance:

  • It is achieved when a class is derived from another class in such a way that it inherits all its members.
  • It is called as Class Inheritance.
  • In this, it uses ‘extends’ keyword in Java.
  • It uses ‘IS A’ relationship.
  • The subclass is tightly coupled with superclass.
  • If there is any changes to superclass will break the whole relationship.
    在过去20年的大部分时间里,面向对象语言设计的主要内容一直是继承的概念。不支持继承的语言,如Visual Basic,被嘲笑为“玩具语言”,不适合实际工作。同时,支持继承的语言以不同的方式实现,这导致了许多小时的争论。多重继承真的是必要的吗(就像c++的创造者所决定的那样),或者它是不必要的和丑陋的吗(就像c#和Java语言的创造者所决定的那样)?Ruby和Scala是在多重继承方面走中间路线的两种较新的语言——正如我在上个月介绍Scala特性时所讨论的那样(请参阅相关主题)。
    关于这个系列
    Ted Neward将深入研究Scala编程语言,并带您一起学习。在这个新的developerWorks系列中,您将了解最近的所有宣传,并了解Scala的一些语言功能。Scala代码和Java代码会在需要比较的地方并排显示,但是(正如您将发现的那样)Scala中的许多东西与您在Java中发现的任何东西都没有直接关联——这正是Scala的魅力所在!毕竟,如果Java可以做到这一点,为什么还要学Scala呢?
    像所有出色的语言一样,Scala也支持实现继承(请参阅相关主题)。在Java语言中,单一实现继承模型允许您扩展基类和添加新方法和字段,等等。尽管在语法上有一些变化,但Scala的实现继承在外观和感觉上与Java语言中的基本相同。这些差异与Scala融合对象和函数语言设计的方式有关,它们非常值得在本月进行探讨。
    实现继承:
    -当一个类从另一个类派生而来,并且继承了它的所有成员时,就实现了这一点。
    -它被称为类继承。
    -在这里,它在Java中使用了’extends’关键字。
    -它使用“IS A”关系。
    子类与父类紧密耦合。
    如果超类有任何改动,会破坏整个关系。

1.2.4interaction diagram(交互图)

查找名词 interaction diagram(交互图)
名词解说 A generic term that applies to several types of diagrams that emphasize object interactions.
查找网址 https://www.guru99.com/interaction-collaboration-sequence-diagrams-examples.html
https://www.tutorialspoint.com/uml/uml_interaction_diagram.htm
https://www.javatpoint.com/uml-interaction-diagram
查找时间 2020/10/18
详细解释
UML Interaction Diagram
As the name suggests, the interaction diagram portrays the interactions between distinct entities present in the model. It amalgamates both the activity and sequence diagrams. The communication is nothing but units of the behavior of a classifier that provides context for interactions.

A set of messages that are interchanged between the entities to achieve certain specified tasks in the system is termed as interaction. It may incorporate any feature of the classifier of which it has access. In the interaction diagram, the critical component is the messages and the lifeline.

In UML, the interaction overview diagram initiates the interaction between the objects utilizing message passing. While drawing an interaction diagram, the entire focus is to represent the relationship among different objects which are available within the system boundary and the message exchanged by them to communicate with each other.
The message exchanged among objects is either to pass some information or to request some information. And based on the information, the interaction diagram is categorized into the sequence diagram, collaboration diagram, and timing diagram.

The sequence diagram envisions the order of the flow of messages inside the system by depicting the communication between two lifelines, just like a time-ordered sequence of events.

The collaboration diagram, which is also known as the communication diagram, represents how lifelines connect within the system, whereas the timing diagram focuses on that instant when a message is passed from one element to the other.
Next Page
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.

Purpose of Interaction Diagrams
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交互图
顾名思义,交互图描绘了模型中不同实体之间的交互。它合并了活动图和序列图。通信只不过是为交互提供上下文的分类器的行为单元。
在实体之间交换以实现系统中特定任务的一组消息被称为交互。它可以包含它所访问的分类器的任何特征。在交互图中,关键组件是消息和生命线。
在UML中,交互概览图利用消息传递启动对象之间的交互。在绘制交互图时,整个重点是表示系统边界内可用的不同对象之间的关系,以及它们之间为相互通信而交换的消息。
对象之间交换的消息要么传递某些信息,要么请求某些信息。并根据这些信息,将交互图分为顺序图、协作图和时序图。
序列图通过描述两条生命线之间的通信,设想了系统内消息流的顺序,就像时间顺序的事件序列。
协作图,也被称为交流图,表示生命线在系统中是如何连接的,而时间图关注的是消息从一个元素传递到另一个元素的瞬间。
下一个页面
从术语交互来看,很明显,图表用于描述模型中不同元素之间的某种类型的交互。这种相互作用是系统动态行为的一部分。
这种交互行为在UML中由两个图表示,分别是序列图和协作图。这两个图的基本目的是相似的。
序列图强调的是消息的时间顺序,协作图强调的是发送和接收消息的对象的结构组织。
交互图的目的
交互图的目的是可视化系统的交互行为。可视化交互是一项困难的任务。因此,解决方案是使用不同类型的模型来捕获交互的不同方面。
序列图和协作图被用来捕获动态的本质,但是是从不同的角度。
交互图的目的是
捕捉系统的动态行为。
描述系统中的消息流。
描述对象的结构组织。
来描述物体之间的相互作用。

1.2.5interface inheritance(接口继承)

查找名词 interface inheritance(接口继承)
名词解说 The inheritance of the interface of a more specific element.
查找网址 https://www.differencebetween.com/difference-between-inheritance-and-vs-interface-in-java/
https://www.wise-geek.com/what-is-interface-inheritance.htm
https://www.geeksforgeeks.org/c-sharp-inheritance-in-interfaces/
查找时间 2020/10/18
详细解释
Interface inheritance is a mechanism in certain computer languages where specific functions are inherited by a class, and then that particular class must provide implementations for those functions in order to be complete. Interfaces only exist in certain object-oriented programming languages. They can be used to emulate multiple inheritance while not actually allowing a class to multiply inherit, because there are generally no limits to the number of interfaces a class can inherit from. In addition to unimplemented methods, interfaces can also include public constants.

In interface inheritance, the object that inherits method stubs and constants is considered to be a type of interface object. So, if a class X inherited from an interface Y, any instance of the class X would also be an instance of the class Y. This gets more complicated when a class’s interface inheritance involves more than one separate interface. For every additional interface that is inherited, the resulting class can be legitimately used as an instance of each. If a class inherited from ten different interfaces, objects of that class could be used as an instance of eleven different objects, including itself.

Such complex inheritance is not often necessary. Interface inheritance is used to ensure that a class has a specific set of required behaviors, and these behaviors enable it to perform a variety of functions that it couldn’t otherwise do. A common example of this is the ActionListener interface in Java, which requires a class to implement only one specific method. Successful implementation of this method allows a user to control buttons, menu items, or any other window object in the class if desired. Interface inheritance is a relatively simple way to add complex functionality to a class without worrying about most complicated inheritance issues.

One of the biggest advantages to using interface inheritance is that it allows specific objects to be used in a generic sense. Since a class that implements an interface is an instance of that interface, it can be used any place an instance of that interface is required. For example, if class A implements class C, and class B also implements class C, if a method takes as a parameter an instance of class C, either an instance of class A or an instance of class B would be an acceptable parameter to use. Interfaces cannot be instantiated on their own because they are not complete, so there would never be an object that was purely an instance of class C as a parameter.
接口继承是某些计算机语言中的一种机制,其中特定的功能由类继承,然后这个特定的类必须为这些功能提供实现,以便完成。接口只存在于某些面向对象的编程语言中。它们可用于模拟多重继承,而实际上不允许类多重继承,因为通常对类可以继承的接口数量没有限制。除了未实现的方法外,接口还可以包括公共常量。
在接口继承中,继承方法存根和常量的对象被认为是接口对象的一种类型。因此,如果类X继承自接口Y,那么类X的任何实例也将是类Y的实例。当类的接口继承涉及多个独立接口时,情况会变得更加复杂。对于每个继承的附加接口,产生的类都可以合法地用作每个接口的实例。如果一个类继承自10个不同的接口,那么这个类的对象可以被用作11个不同对象的实例,包括它本身。
这种复杂的继承通常是不必要的。接口继承用于确保类具有一组特定的必需行为,这些行为使它能够执行其他方式无法执行的各种功能。这方面的一个常见例子是Java中的ActionListener接口,它要求一个类只实现一个特定的方法。此方法的成功实现允许用户控制按钮、菜单项或类中的任何其他窗口对象(如果需要的话)。接口继承是向类中添加复杂功能的一种相对简单的方法,而不必担心大多数复杂的继承问题。
使用接口继承的最大优点之一是,它允许以通用的方式使用特定的对象。由于实现接口的类是该接口的实例,因此可以在需要该接口实例的任何地方使用它。例如,如果类A实现了类C,类B也实现了类C,如果一个方法接受了类C的实例作为参数,那么类A的实例或类B的实例都是可以使用的参数。接口不能单独实例化,因为它们还不完整,所以永远不会有一个对象纯粹是类C的一个实例作为参数。

1.2.6internal transition(内部转换)

查找名词 internal transition(内部转换)
名词解说 A transition signifying a response to an event without changing the state of an object.
查找网址 https://www.myaccountingcourse.com/accounting-dictionary/internal-transactions
https://cn.bing.com/images/search?q=what+is+internal+transition&qpvt=what+is+internal+transition&form=IGRE&first=1&scenario=ImageBasicHover&tsc=ImageBasicHover
https://www.sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/internal_transition.html
查找时间 2020/10/18
详细解释
Definition: An internal transaction is an economic activity within in a company that can affect the accounting equation. In other words, it’s an exchange from one department to another in the same company that changes something in the accounting equation.

Example
A good example of an internal transaction is the use of supplies. For example, the shipping department keeps basic supplies like packaging tape, papers, and boxes on hand to ship products. These are regular supplies that are expenses on the income statement.

Assume that the office and administrative department is reorganizing the office and they need boxes to more files and books in the office. The shipping department can “sell” the boxes to the office department. Now obviously this isn’t a true sale and the office department doesn’t actually pay the shipping department for the supplies, but this internal transaction does affect the accounting equation.
1
In the Project Browser, double-click on the StateMachine diagram containing the State element to open it.
2
On the State element, create a Transition connector issuing from and terminating in the element (a ‘self Transition’).
In the Diagram Toolbox, select the Transition connector, then click and release on the State element.
3
Right-click on the connector and select the ‘Properties’ option to display the ‘Properties’ dialog.
4
Select the ‘Constraints’ tab and define any guard, effect and trigger for the Transition.
Transition
5
Select the ‘General’ tab, then select the child tab ‘Advanced’. Click on the drop-down arrow in the value field for the kind property and select internal.
6
Click on the OK button. The Transitions display in the same compartment as internal activities (exit/, do/, entry/).
定义:内部交易是公司内部能够影响会计平衡的一种经济活动。换句话说,这是同一家公司中从一个部门到另一个部门的交换,它改变了会计等式中的某些东西。
例子
内部事务的一个很好的例子是用品的使用。例如,运输部门保留一些基本的供应品,如包装胶带、纸张和箱子等,以便运输产品。这些是在损益表上的经常性供应费用。
假设办公室和行政部门正在重组办公室,他们需要箱子存放办公室中更多的文件和书籍。运输部门可以把箱子“卖”给办公部门。很明显,这不是真正的销售,办公室部门实际上并没有支付运输部的用品费,但这一内部交易确实影响了会计等式。
1
在项目浏览器中,双击包含State元素的StateMachine图以打开它。
2
在State元素上,创建一个从元素发出并在元素中终止的转换连接器(一个“自我转换”)。
在关系图工具箱中,选择转换连接器,然后单击State元素上的release。
3.
右键单击连接器并选择“Properties”选项,以显示“Properties”对话框。
4
选择“Constraints”选项卡并为过渡定义任何保护、效果和触发器。
过渡
5
选择“General”选项卡,然后选择“Advanced”子选项卡。单击kind属性值字段中的下拉箭头,并选择internal。
6
点击OK按钮。转换显示在与内部活动(exit/、do/、entry/)相同的区域中。
A002-185-2537-翁格婉(个人期末作业)_第10张图片

1.2.7metaclass(元类)

查找名词 metaclass(元类)
名词解说 A class whose instances are classes. Metaclasses are typically used to construct metamodels.
查找网址 https://www.easytechjunkie.com/what-is-a-metaclass.htm
https://realpython.com/python-metaclasses/
https://www.computerhope.com/jargon/m/metaclass.htm
查找时间 2020/10/18
详细解释
In object-oriented computer programming, a metaclass is one whose instances are also classes. For instance, in Python, the built-in class type is a metaclass: instances of class type are themselves a class of objects.

The use of metaclasses is most prevalent in object-oriented languages. In these languages, classes are “first-class” objects, meaning they can be used exactly like any other object in the language.

They can be named variables.
They can be passed as an argument to methods, functions, and procedures.
They can be returned as the result of a method, function, or procedure.
They can be included as part of a data structure.

It is possible, but uncommon, to implement metaclasses in C++ and Java. More commonly, metaclasses are found in programs written in Python, Ruby, Smalltalk, Perl, Objective-C, and Common Lisp/CLOS.
Metaclasses are an esoteric OOP concept, lurking behind virtually all Python code. You are using them whether you are aware of it or not. For the most part, you don’t need to be aware of it. Most Python programmers rarely, if ever, have to think about metaclasses.

When the need arises, however, Python provides a capability that not all object-oriented languages support: you can get under the hood and define custom metaclasses. The use of custom metaclasses is somewhat controversial, as suggested by the following quote from Tim Peters, the Python guru who authored the Zen of Python:

“Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).”

— Tim Peters

There are Pythonistas (as Python aficionados are known) who believe that you should never use custom metaclasses. That might be going a bit far, but it is probably true that custom metaclasses mostly aren’t necessary. If it isn’t pretty obvious that a problem calls for them, then it will probably be cleaner and more readable if solved in a simpler way.

Still, understanding Python metaclasses is worthwhile, because it leads to a better understanding of the internals of Python classes in general. You never know: you may one day find yourself in one of those situations where you just know that a custom metaclass is what you want.
在面向对象的计算机编程中,元类是其实例也是类的类。例如,在Python中,内置类类型是一个元类:类类型的实例本身就是一个对象类。
元类的使用在面向对象语言中最为普遍。在这些语言中,类是“一级”对象,这意味着它们可以像使用语言中的任何其他对象一样使用。
它们可以被命名为变量。
它们可以作为参数传递给方法、函数和过程。
它们可以作为方法、函数或过程的结果返回。
它们可以作为数据结构的一部分包括在内。
在c++和Java中实现元类是可能的,但并不常见。更常见的是,元类可以在用Python、Ruby、Smalltalk、Perl、Objective-C和常见Lisp/CLOS编写的程序中找到。
元类是一种深奥的OOP概念,几乎隐藏在所有Python代码背后。不管你是否意识到,你都在使用它们。大多数情况下,你不需要意识到它。大多数Python程序员很少需要考虑元类。
然而,当需要时,Python提供了一种并非所有面向对象语言都支持的功能:您可以深入内部并定义自定义元类。自定义元类的使用是有争议的,正如Python大师Tim Peters (Python Zen of Python的作者)下面的引述所暗示的那样:
“元类比99%的用户所担心的更有魔力。如果你怀疑自己是否需要它们,你不需要(真正需要它们的人肯定知道他们需要它们,而且不需要解释为什么)。”
——Tim Peters
有一些Pythonistas (Python迷们都知道)认为永远不应该使用定制元类。这可能有点过头了,但自定义元类在很大程度上是不必要的,这可能是事实。如果某个问题不太明显地需要它们,那么如果用一种更简单的方式解决,它可能会更清晰,可读性更强。
尽管如此,理解Python元类还是值得的,因为它可以帮助我们更好地理解Python类的内部结构。您永远不会知道:您可能有一天会发现自己处于这样一种情况,即您刚好知道定制元类是您想要的。

1.2.8meta-metamodel(元模型)

查找名词 meta-metamodel(元模型)
名词解说 A model that defines the language for expressing a metamodel.
查找网址 https://cs.wmich.edu/~ooda/metamodel.html
https://cn.bing.com/images/search?q=what+is+meta-metamodel&qpvt=what+is+meta-metamodel&form=IGRE&first=1&scenario=ImageBasicHover&tsc=ImageBasicHover
https://www.openxava.org/OpenXavaDoc/apidocs/org/openxava/model/meta/MetaModel.html
查找时间 2020/10/18
详细解释
The UML is based on the four-level meta-modeling architecture. Each successive level is labeled from M3 to M0 and are usually named meta-metamodel, metamodel, class diagram, and object diagram respectively. A diagram at the Mi level is an instance of a diagram at the Mi+1 level. Therefore, an object diagram (an M0-level diagram) is an instance of some class diagram (an M1-level diagram), and this class diagram is an instance of a metamodel (an M2-level diagram). The M3-level diagram is used to define the structure of a metamodel, and the Meta Object Facility (MOF) belongs to this level. The UML metamodel belongs to the M2-level.
UML基于四层元建模体系结构。每个连续的级别都从M3到M0进行标记,通常分别被命名为元元模型、元模型、类图和对象图。Mi级别上的图是Mi+1级别上的图的实例。因此,对象图(m0级图)是某个类图(m1级图)的一个实例,而这个类图是元模型(m2级图)的一个实例。m3级图用于定义元模型的结构,而元对象设施(MOF)属于这一级别。UML元模型属于m2级别。
A002-185-2537-翁格婉(个人期末作业)_第11张图片
1.2.9Sequence Diagram(顺序图)
查找名词 Sequence Diagram(顺序图)
名词解说 A Sequence Diagram is primarily concerned with the chronological progression of messages. The
messaging sequence corresponds to its horizontal position in the diagram. When an object is
created, and when and to what object information is sent, are all determined here.
查找网址 https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-sequence-diagram/
查找时间 2020/10/18
详细解释
Sequence Diagram
A Sequence Diagram is primarily concerned with the chronological progression of messages. The

messaging sequence corresponds to its horizontal position in the diagram. When an object is
created, and when and to what object information is sent, are all determined here.

The participating objects are represented by a rectangle and a dashed vertical line. Both together
are called a Lifeline. Messages are shown using arrows between the Lifelines. Time progresses
from top to bottom. The chronological progress of messages is thereby highlighted.
The sequence diagram in the following illustration shows an interaction among three objects. It is
important that the entire diagram represents an interaction, and that an interaction is not only a
single message exchange.
In the heading of the Lifeline is the (optional) element name with the associated class in the usual.
Sequence Diagrams captures:

the interaction that takes place in a collaboration that either realizes a use case or an operation (instance diagrams or generic diagrams)
high-level interactions between user of the system and the system, between the system and other systems, or between subsystems (sometimes known as system sequence diagrams)
Purpose of Sequence Diagram
Model high-level interaction between active objects in a system
Model the interaction between object instances within a collaboration that realizes a use case
Model the interaction between objects within a collaboration that realizes an operation
Either model generic interactions (showing all possible paths through the interaction) or specific instances of a interaction (showing just one path through the interaction)
Sequence Diagrams at a Glance
Sequence Diagrams show elements as they interact over time and they are organized according to object (horizontally) and time (vertically):

Object Dimension
The horizontal axis shows the elements that are involved in the interaction
Conventionally, the objects involved in the operation are listed from left to right according to when they take part in the message sequence. However, the elements on the horizontal axis may appear in any order
Time Dimension
The vertical axis represents time proceedings (or progressing) down the page.
Note that:

Time in a sequence diagram is all a about ordering, not duration. The vertical space in an interaction diagram is not relevant for the duration of the interaction.

Sequence Diagram Example: Hotel System
Sequence Diagram is an interaction diagram that details how operations are carried out – what messages are sent and when. Sequence diagrams are organized according to time. The time progresses as you go down the page. The objects involved in the operation are listed from left to right according to when they take part in the message sequence.

Below is a sequence diagram for making a hotel reservation. The object initiating the sequence of messages is a Reservation window.
序列图
序列图主要关注消息的按时间顺序进行的过程。的
消息传递序列对应于它在图中的水平位置。当一个对象是
创建对象、何时发送对象信息以及发送对象信息的对象都在这里确定。
参与的对象由矩形和虚线表示。两个在一起
被称为生命线。消息使用生命线之间的箭头显示。时间的推移
从上到下。因此,信息按时间顺序进行的过程得到了强调。
下图中的序列图显示了三个对象之间的交互。它是
重要的是,整个图表示一个交互,并且交互不只是一个
单一的消息交换。
在生命线的标题是(可选的)元素名和通常的相关类
声明符号:名称:类型。
A002-185-2537-翁格婉(个人期末作业)_第12张图片

序列图截图:
在实现用例或操作(实例图或泛型图)的协作中发生的交互
系统用户与系统之间、系统与其他系统之间或子系统之间(有时称为系统序列图)的高级交互
序列图的用途
为系统中活动对象之间的高级交互建模
为实现用例的协作中的对象实例之间的交互建模
对实现操作的协作中对象之间的交互进行建模
要么建模通用交互(显示交互中的所有可能路径),要么建模交互的特定实例(仅显示交互中的一条路径)
序列图一目了然
序列图显示元素随着时间的推移相互作用,它们根据对象(水平)和时间(垂直)进行组织:
对象维度
横轴显示交互中涉及的元素
按照惯例,操作中涉及的对象根据它们在消息序列中的参与时间从左到右列出。但是,水平轴上的元素可以以任何顺序出现
时间维度
纵轴表示时间进程(或前进)沿页面向下。
注意:
序列图中的时间与顺序有关,与持续时间无关。交互图中的垂直空间与交互的持续时间无关。
序列图示例:酒店系统
序列图是一种交互图,详细说明了操作是如何执行的——发送了什么消息以及何时发送。序列图是根据时间组织的。随着页面的继续,时间也会继续前进。操作中涉及的对象根据它们参与消息序列的时间从左到右列出。

1.2.10Communication Diagram(通信图)

查找名词 Communication Diagram(通信图)
名词解说 The Communication Diagram corresponds to the UML 1.x Collaboration Diagram. It has been
renamed to avoid the confusion caused by the term “Collaboration”, as UML also has the
modeling element “Collaboration” which has nothing to do with a Collaboration .
查找网址 https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-communication-diagram/
查找时间 2020/10/18
详细解释
Communication Diagram
The Communication Diagram corresponds to the UML 1.x Collaboration Diagram. It has been
renamed to avoid the confusion caused by the term “Collaboration”, as UML also has the
modeling element “Collaboration” which has nothing to do with a Collaboration
(Communication) Diagram.
The Communication Diagram is a different approach to displaying the circumstances of a
sequence diagram. This diagram gives special attention to the cooperation of the interconnected
objects. Selected messages are used with which the chronological communication sequence
between the objects takes place. It thereby compiles the conclusions of the sequence diagram in a
more compact form.

In the following illustration, one can clearly see that the communication diagram emphasizes the
relationships between the involved parties, and not the chronological progression of message
exchange like the sequence diagram.

Graphical representation is a rectangle which contains the object name and the respective class.

A colon separates both names. The objects are linked by association lines.

A small arrow shows
each message direction from sender to receiver. When arguments are transferred with the
message, these are executed. Possible return values can also be output in the form:
answer := Messagename (list of Parameters)

In order to model the chronological sequence, the messages are given numbers. One message can
trigger further messages. These receive sub-numbers of the triggering message (e.g. 1.2).

If a message is repeatedly triggered, this iteration can be modeled using a * character in front of
the message name.

Objects which are created within the illustrated scenario can be indicated using the stereotype
new. Objects which are destroyed within the illustrated scenario are indicated using the
stereotype destroy. Objects which are created and destroyed within the scenario receive the
stereotype transient.
通信图
通信图对应于UML 1。x协作图。它已经被
重命名是为了避免术语“协作”所引起的混淆,UML也有
建模元素“协作”,它与协作无关
(通信)图。
通信图是显示a的环境的另一种方法
序列图。这张图特别关注互联者之间的合作
对象。选择的信息被用来按时间顺序通信
物体之间发生了联系。因此,它将序列图的结论编译在
更紧凑的形式。
在下面的图中,可以清楚地看到,沟通图强调的是
相关各方之间的关系,而不是信息的时间顺序
像序列图一样交换。
图形表示是一个包含对象名称和相应类的矩形。
两个名字之间用冒号分隔。对象由关联线连接。一个小箭头表示
从发送方到接收方的每个消息方向。参数传递时
消息,这些被执行。可能的返回值也可以以如下形式输出:
答案:= Messagename(参数列表)
为了建立时间顺序的模型,这些信息被赋予了数字。一个消息
触发进一步的消息。它们接收触发消息的子号(例如1.2)。
如果重复触发消息,可以使用前面的*字符对该迭代进行建模
消息的名字。
在演示的场景中创建的对象可以使用原型来指示
新的。属性表示在演示场景中被销毁的对象
刻板印象毁灭。在场景中创建和销毁的对象接收
原型瞬态。
A002-185-2537-翁格婉(个人期末作业)_第13张图片

1.3第三次查词

1.3.1metaobject(元对象)

查找名词 metaobject(元对象)
名词解说 A generic term for all metaentities in a metamodeling language.
查找网址 https://www.bartleby.com/topics/metaobject
查找时间 2020/11/12
详细解释
Introduction • Defining a class • Adding variables • Adding methods • Creating objects, accessing class members • Constructors INTRODUCTION Class is the basic structure of all the java programs.

Everything we want to represent in java program must be encapsulated in a class. So class defines the state of the basic program components. Classes create objects which defines the behavior of the basic program components.
Compiler Compiler, in computer science, computer program that translates source code, instructions in a program written by a software engineer, into object code, those same instructions written in a language the computer’s central processing unit (CPU) can read and interpret. Software engineers write source code using high level programming languages that people can understand. Computers cannot directly execute source code, but need a compiler to translate these instructions into a low level language.
定义一个类•添加变量•添加方法•创建对象、访问类成员•构造函数我们想在java程序中表示的所有内容都必须封装在类中。所以class定义了基本程序组件的状态。类创建对象,对象定义基本程序组件的行为。
编译器编译器,在计算机科学中,一种把源代码、软件工程师编写的程序中的指令转换成目标代码的计算机程序,这些同样的指令用计算机中央处理器(CPU)能读和解释的语言写成。软件工程师使用人们可以理解的高级编程语言编写源代码。计算机不能直接执行源代码,而是需要编译器将这些指令翻译成一种低级语言。

1.3.2module(组件)

查找名词 module(组件)
名词解说 A software unit of storage and manipulation.Modules include source code modules, binary code modules, and executable code modules. See: component.
查找网址 https://techterms.com/definition/moodle
https://www.techopedia.com/definition/3843/module#:~:text=A%20module%20is%20a%20software%20component%20or%20part,area%20of%20the%20functionality%20of%20the%20software%20application.

查找时间 2020/11/12
详细解释
Moodle is an acronym for “Modular Object-Oriented Dynamic Learning Environment.” It is an online educational platform that provides custom learning environments for students. Educators can use Moodle to create lessons, manage courses, and interact with teachers and students. Students can use Moodle to review the class calendar, submit assignments, take quizzes, and interact with their classmates.

Moodle is used by thousands of educational institutions around the world to provide an organized and central interface for e-learning. Teachers and class administrators can create and manage virtual classrooms, in which students can access videos, documents, and tests. Course chat allows students to communicate with the teacher and other students in a secure environment.

Each Moodle classroom and course can be customized by the class administrator. For example, one teacher may choose to provide a wiki that students can edit, while another may opt to use a private web forum for online discussions. Some teachers may use Moodle to simply provide documents to students, while others may use it as the primary interface for quizzes and tests. Individual class sizes can be scaled from a handful of students to millions of users.

In order to create a Moodle learning environment, the Moodle software must be downloaded and installed on a web server. The Moodle platform is open source and is built using a modular design, so advanced users can modify the platform as needed. Individual users, such as teachers and students, can sign up for an account on the Moodle server and access content through either the web interface or the “Moodle Desktop” application.
Moodle是“模块化面向对象的动态学习环境”的首字母缩写。它是一个为学生提供定制学习环境的在线教育平台。教育者可以使用Moodle创建课程,管理课程,并与教师和学生互动。学生可以使用Moodle查看课程表、提交作业、做测验以及与同学互动。
Moodle被世界各地数以千计的教育机构使用,为电子学习提供了一个有组织的中央界面。教师和班级管理员可以创建和管理虚拟教室,学生可以在其中访问视频、文档和测试。课程聊天允许学生与老师和其他学生在一个安全的环境中进行交流。
每个Moodle教室和课程都可以由班级管理员定制。例如,一位老师可能选择提供一个wiki供学生编辑,而另一位老师可能选择使用私人网络论坛进行在线讨论。有些老师使用Moodle只是简单地向学生提供文档,而有些老师则使用它作为小测验和测试的主要界面。单个班级的规模可以从少数学生扩展到数百万用户。
为了创建Moodle学习环境,必须下载Moodle软件并安装在web服务器上。Moodle平台是开源的,采用模块化设计,因此高级用户可以根据需要修改平台。教师和学生等个人用户可以在Moodle服务器上注册一个账户,通过web界面或“Moodle桌面”应用程序访问内容。

1.3.3multiple inheritance(多重继承)

查找名词 multiple inheritance(多重继承)
名词解说 A semantic variation of generalization in which a type may have more than one supertype.Contrast: single inheritance.
查找网址 https://www.geeksforgeeks.org/multiple-inheritance-in-c/
https://www.geeksforgeeks.org/java-and-multiple-inheritance/
https://www.tutorialspoint.com/multiple-inheritance-in-cplusplus
查找时间 2020/11/12
详细解释
Multiple Inheritance is a feature of C++ where a class can inherit from more than one classes.

The constructors of inherited classes are called in the same order in which they are inherited. For example, in the following program, B’s constructor is called before A’s constructor.

Multiple Inheritance is a feature of object oriented concept, where a class can inherit properties of more than one parent class. The problem occurs when there exist methods with same signature in both the super classes and subclass. On calling the method, the compiler cannot determine which class method to be called and even on calling which class method gets the priority.

Multiple inheritance occurs when a class inherits from more than one base class. So the class can inherit features from multiple base classes using multiple inheritance. This is an important feature of object oriented programming languages such as C++.

A diagram that demonstrates multiple inheritance is given below −
多重继承是c++的一个特性,其中一个类可以从多个类继承。
继承类的构造函数被调用的顺序与它们被继承的顺序相同。例如,在下面的程序中,B的构造函数在A的构造函数之前被调用。
多重继承是面向对象概念的一个特性,其中一个类可以继承多个父类的属性。当超类和子类中都存在具有相同签名的方法时,就会出现问题。在调用方法时,编译器不能确定要调用哪个类方法,甚至在调用哪个类方法获得优先级时也不能确定。
当一个类从多个基类继承时,就发生了多重继承。所以类可以使用多重继承从多个基类继承特性。这是面向对象编程语言(如c++)的一个重要特性。
下面给出了一个演示多重继承的图表
A002-185-2537-翁格婉(个人期末作业)_第14张图片

1.3.4namespace(命名空间)

查找名词 namespace(命名空间)
名词解说 A part of the model in which the names may be defined and used.
查找网址 https://whatis.techtarget.com/definition/namespace
https://docs.microsoft.com/en-us/cpp/cpp/namespaces-cpp?view=msvc-160
https://stackoverflow.com/questions/34129141/what-does-using-namespace-do-exactly#:~:text=using%20namespace%20means%20you%20use%20definitions%20from%20the,simple.%20Let%27s%20say%20we%20have%20the%20following%20example%3A
查找时间 2020/11/12
详细解释
In general, a namespace uniquely identifies a set of names so that there is no ambiguity when objects having different origins but the same names are mixed together. Using the Extensible Markup Language (XML), an XML namespace is a collection of element type and attribute names. These element types and attribute names are uniquely identified by the name of the unique XML namespace of which they are a part. In an XML document, any element type or attribute name can thus have a two-part name consisting of the name of its namespace and then its local (functional) name.

For example, suppose the same XML document included the element type of OWNER for owners of motorcycles as well as for owners of automobiles. It might be necessary or desirable to know that an owner name was one of those who owned a motorcyle rather than an automobile. Having different motorcycle and automobile namespaces would make this possible. Effectively, it would make it possible to label motorcycle owners differently than automobile owners without having to create a different element type for each.

In XML, a namespace is commonly given the name of a Uniform Resource Identifier (URI) - such as a Web site’s address - both because the namespace may be associated with the site or page of that URI (for example, a company name) and because a URI is conveniently likely to be a unique name. Note that the URI is not necessarily intended to be used other than as a name nor is there any namespace document or XML schema that must be accessed; the URI is simply used as a name (and part of the two-part name of any element type or attribute name so that the names are unique within the document).
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, for example std::vectorstd::string vec;, or else by a using Declaration for a single identifier (using std::string), or a using Directive for all the identifiers in the namespace (using namespace std;). Code in header files should always use the fully qualified namespace name.

The following example shows a namespace declaration and three ways that code outside the namespace can accesses their members.
通常,名称空间唯一地标识一组名称,因此,当具有不同起源但名称相同的对象混合在一起时,不会产生歧义。使用可扩展标记语言(XML), XML命名空间是元素类型和属性名的集合。这些元素类型和属性名由它们所在的惟一XML命名空间的名称唯一标识。因此,在XML文档中,任何元素类型或属性名都可以有一个由两部分组成的名称,分别由名称空间的名称和本地(函数)名称组成。
例如,假设相同的XML文档包含摩托车所有者和汽车所有者的所有者元素类型。知道车主的名字是那些拥有摩托车而不是汽车的人之一,可能是必要的,也是可取的。使用不同的摩托车和汽车名称空间将使这成为可能。有效地,它将使区分摩托车所有者和汽车所有者成为可能,而不必为每个人创建不同的元素类型。
在XML中,名称空间通常是给定一个统一资源标识符(URI)的名字,比如一个网站的地址,因为名称空间可能与网站或页面关联的URI(例如,一个公司名称),因为一个URI是方便可能是一个唯一的名称。请注意,URI并不一定要用作名称以外的其他用途,也没有任何必须访问的名称空间文档或XML模式;URI简单地用作名称(以及由两部分组成的任何元素类型或属性名称的一部分,以便名称在文档中是惟一的)。
命名空间是一个声明性区域,它为其中的标识符(类型名、函数名、变量名等)提供作用域。名称空间用于将代码组织成逻辑组,并防止可能发生的名称冲突,特别是在您的代码库包含多个库时。命名空间范围内的所有标识符彼此都是可见的,没有限定。命名空间之外的标识符可以使用每个标识符的完全限定名来访问成员,例如std::vector,或者通过单个标识符的using声明(使用std::string),或命名空间中所有标识符的using指示(使用命名空间std;)。头文件中的代码应该始终使用完全限定的命名空间名称。
下面的示例展示了名称空间声明以及名称空间外的代码访问其成员的三种方法。
A002-185-2537-翁格婉(个人期末作业)_第15张图片

1.3.5object diagram(对象图)

查找名词 object diagram(对象图)
名词解说 A diagram that encompasses objects and their relationships at a point in time.
查找网址 https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-object-diagram/
https://www.tutorialspoint.com/uml/uml_object_diagram.htm
https://www.lucidchart.com/pages/uml-object-diagram
查找时间 2020/11/12
详细解释
What is an object diagram in UML?
A UML object diagram represents a specific instance of a class diagram at a certain moment in time. When represented visually, you’ll see many similarities to the class diagram.

An object diagram focuses on the attributes of a set of objects and how those objects relate to each other. For instance, in this object diagram below, all three bank accounts tie back to the bank itself. The class titles show the type of accounts (savings, checking, and credit card) that a given customer could have with this particular bank. The class attributes are different for each account type. For example, the credit card object has a credit limit, while the savings and checking accounts have interest rates. To take a closer look at this document, click here.

Object diagrams are not limited to banking use cases, however, as you can easily make an object diagram for family trees, corporate departments, or any other system with interrelated parts.
Object diagram elements
Object diagrams are simple to create: they’re made from objects, represented by rectangles, linked together with lines. Take a look at the major elements of an object diagram.

Objects
Objects are instances of a class. For example, if “car” is a class, a 2007 Nissan Altima is an object of a class.

Class titles
Class titles are the specific attributes of a given class. In the family tree object diagram, class titles include the name, gender, and age of the family members. You can list class titles as items on the object or even in the properties of the object itself (such as color).
Class attributes
Class attributes are represented by a rectangle with two tabs that indicates a software element.

Links
Links are the lines that connect two shapes of an object diagram to each other. The corporate object diagram below shows how departments are connected in the traditional organizational chart style.
UML中的对象图是什么?
UML对象图表示在特定时刻类图的特定实例。当以可视方式表示时,您将看到与类图有许多相似之处。
对象图主要关注一组对象的属性,以及这些对象如何相互关联。例如,在下面的对象图中,所有三个银行帐户都绑定到银行本身。类标题显示一个给定的客户可能在这个特定银行拥有的帐户类型(储蓄、支票和信用卡)。每个帐户类型的类属性是不同的。例如,信用卡对象具有信用限额,而储蓄和支票帐户具有利率。要仔细查看这个文档,请点击这里。
然而,对象图并不局限于银行用例,因为您可以很容易地为家族树、公司部门或任何其他具有相关部件的系统创建对象图。
对象图元素
创建对象图很简单:它们由对象组成,用矩形表示,用直线连接在一起。看一下对象图的主要元素。
对象
对象是类的实例。例如,如果“car”是一个类,那么一辆2007年产日产Altima就是一个类的对象。
类的标题
类名是给定类的特定属性。在族谱对象图中,类名称包括家庭成员的姓名、性别和年龄。您可以将类标题作为对象上的项列出,甚至在对象本身的属性(比如颜色)中列出。
类属性
类属性由一个带有两个选项卡的矩形表示,这两个选项卡表示一个软件元素。
链接
链接是将对象图的两个形状彼此连接起来的线。下面的公司对象图显示了在传统的组织图风格中部门是如何连接的。
A002-185-2537-翁格婉(个人期末作业)_第16张图片

1.3.6object flow state(对象流状态)

查找名词 object flow state(对象流状态)
名词解说 A state in an activity graph that represents the passing of an object from the output of actions in one state to the input of actions in another state.
查找网址 https://www.thoughtco.com/flow-state-psychology-4777804#:~:text=A%20flow%20state%20involves%20total%20absorption%20in%20and,the%20first%20to%20describe%20and%20research%20flow%20states.
https://stackoverflow.com/questions/6309589/uml-control-flow-and-object-flow
https://www.sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/objectflow.html#:~:text=In%20StateMachine%20diagrams%2C%20an%20Object%20Flow%20is%20a,of%20all%20relationships%20located%20in%20the%20header%20toolbar.
查找时间 2020/11/12
详细解释
Object Flow
Part of a UML Activity diagram showing an Object Flow between two Action Pins.

Description
Object Flows are used in Activity diagrams and StateMachine diagrams. When used in an Activity diagram, an Object Flow connects two elements, with specific data passing through it, modeling an active transition. To view sample Activity diagrams using Object Flows, see the Object Flows in Activity Diagrams topic.

In StateMachine diagrams, an Object Flow is a specification of a state flow or transition. It implies the passing of an Object instance between elements at run-time.

You can insert an Object Flow from the ‘State’ or ‘Activity’ pages of the Toolbox, or from the drop-down list of all relationships located in the header toolbar. You can also modify a transition connection to an Object Flow by selecting the ‘ObjectFlow’ checkbox on the connection ‘Properties’ dialog.

See the Control Flow topic for information on setting up Guards and Weights on Object Flows.
对象流
UML活动图的一部分,显示了两个动作针之间的对象流。
描述
对象流用于活动图和状态机图中。在活动图中使用时,对象流连接两个元素,通过特定的数据通过它,对活动转换进行建模。要使用对象流查看示例活动图,请参见活动图主题中的对象流。
在状态机器图中,对象流是状态流或转换的规范。它意味着在运行时在元素之间传递对象实例。
您可以从工具箱的“状态”或“活动”页面,或从头部工具栏中所有关系的下拉列表中插入一个对象流。您还可以通过选择connection 'Properties’对话框上的’ObjectFlow’复选框来修改到对象流的转换连接。
有关在对象流上设置保护和权重的信息,请参阅控制流主题。
在这里插入图片描述
1.3.7object lifeline(对象的生命线)
查找名词 object lifeline(对象的生命线)
名词解说 A line in a sequence diagram that represents the existence of an object over a period of time. See: sequence diagram.
查找网址 https://support.microsoft.com/en-us/office/object-lifeline-shape-2cd8ab65-36f6-46f1-ac12-3aeb1bd5534b
https://www.ibm.com/support/knowledgecenter/en/SS8PJ7_9.6.1/com.ibm.xtools.sequence.doc/topics/clifel_v.html
查找时间 2020/11/12
详细解释
Used in a sequence diagram, an object lifeline Object Lifeline shape icon represents the existence of an object at a particular time. If the object is created or destroyed during the time period the diagram represents, then the lifeline stops or starts at the appropriate point. An object’s destruction is marked with a large X.

Name an Object Lifeline shape and add other property values

Double-click the shape and then type the name you want in the UML Properties dialog box.

Control which property values are displayed on the Object Lifeline shape

Right-click the shape, click Shape Display Options, and then select or clear options to show or hide values.

Display a destruction marker

Right-click the Object Lifeline shape, click Shape Display Options, and then select Destruction marker.
Lifelines in sequence diagrams
As the following figure illustrates, a lifeline in a sequence diagram is displayed with its name and type in a rectangle, which is called the head. The head is located on top of a vertical dashed line, called the stem, which represents the timeline for the instance of the object.

This image shows a lifeline as it appears in a sequence diagram, with its parts labeled.

Messages, which are sent and received by the instance, appear on the lifeline in sequential order. You can create new lifelines, create lifelines from existing elements, or assign element types to existing lifelines.

As the following table illustrates, lifelines can indicate several actions in sequence diagrams.
Behavior Description
Creation You can create an instance in an interaction by using a create message. The create message enables an object to create new objects in the sequence diagram.

Communication You indicate messages with arrows between instances. The arrow originates from the source lifeline that sends the message and ends at the target lifeline that receives it.

Execution An execution specification shows the length of a behavior of an operation directly or through a subordinate operation.

Destruction You can destroy an instance during an interaction by using a destroy message or a stop node. A destroy message is a message that ends the target lifeline. A stop node, represented by an X, marks the end of the stem of the lifeline to indicate the lifeline has ended.
在序列图中使用,对象生命线对象生命线形状图标表示在特定时间对象的存在。如果对象是在图所表示的时间段内创建或销毁的,那么生命线就会在适当的点停止或开始。一个对象的销毁用一个大X标记。
命名一个对象生命线形状并添加其他属性值
双击该形状,然后在UML中键入您想要的名称。属性对话框。
控制在对象生命线形状上显示哪些属性值
右键单击形状,单击形状显示选项,然后选择或清除选项以显示或隐藏值。
显示破坏标记
右键单击对象生命线形状,单击形状显示选项,然后选择销毁标记。
序列图中的生命线
如下图所示,序列图中的生命线显示在一个矩形中,它的名称和类型被称为head。头部位于一条垂直虚线(称为stem)的顶部,该虚线表示对象实例的时间线。
这幅图显示了出现在序列图中的生命线,并标注了它的各个部分。
A002-185-2537-翁格婉(个人期末作业)_第17张图片

由实例发送和接收的消息按顺序出现在生命线上。您可以创建新的生命线,从现有的元素创建生命线,或者将元素类型分配给现有的生命线。
如下表所示,生命线可以指示序列图中的几个动作。
行为描述
您可以使用create消息在交互中创建实例。create消息使对象能够在序列图中创建新对象。
通信实例之间用箭头指示消息。箭头起源于发送消息的源生命线,终止于接收消息的目标生命线。
执行执行规范直接或通过从属操作显示操作行为的长度。
在交互过程中,您可以使用销毁消息或停止节点来销毁实例。销毁消息是结束目标生命线的消息。由X表示的停止节点标记生命线干的末尾,表示生命线已经结束。

1.3.8parameterized element(参数化的元素)

查找名词 parameterized element(参数化的元素))
名词解说 The descriptor for a class with one or more unbound parameters. Synonym: template.
查找网址 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/param
https://www.baeldung.com/parameterized-tests-junit-5
https://helpcenter.graphisoft.com/user-guide-chapter/85574/
https://playfairdata.com/dashboard-element-2-the-parameterized-scatter-plot/
查找时间 2020/11/12
详细解释
In the last post, I showed you how to build a current performance versus comparison performance index callout; one of my favorite descriptive tactics for communicating performance. One of my favorite prescriptive tactics is to provide a scatter plot that the user can build themselves – even if they don’t know how to use Tableau! The “parameterized scatter plot” is considered prescriptive because it helps us understand why something happened in the business, and ideally, prescribes something to do about it.

Scatter plots have several advantages including (1) they’re able to show many data points at once, (2) they help illustrate correlations, and (3) they create a natural four-quadrant segmentation. This post will show you how to make scatter plots even better by allowing your end user to choose the measure displayed on the y-axis, measure displayed on the x-axis, and dimensional breakdown of the marks on the view.
展示了如何构建当前性能与比较性能索引表;这是我最喜欢的描述技巧之一。我最喜欢的一种规定策略便是提供一个散点图,让用户可以自己构建——即使他们不知道如何使用Tableau!“参数化的散点图”被认为是规定性的,因为它帮助我们理解为什么业务中发生了一些事情,并且在理想情况下,规定了一些关于它的操作。
散点图有几个优点,包括:(1)它们能够同时显示许多数据点,(2)它们有助于说明相关性,(3)它们创建一个自然的四象限分割。这篇文章将向您展示如何通过允许您的最终用户选择在y轴上显示的测量值、在x轴上显示的测量值以及视图上标记的维度细分来更好地绘制散点图。
A002-185-2537-翁格婉(个人期末作业)_第18张图片
1.3.9Object Diagram(对象图)
查找名词 Object Diagram(对象图)
名词解说 The Object diagram holds a certain similarity to the class diagram but with the decisive difference
that, here, only instances and no classes are displayed. It shows a particular detail of the program
查找网址 https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-object-diagram/
查找时间 2020/11/12
详细解释
The Object diagram holds a certain similarity to the class diagram but with the decisive difference
that, here, only instances and no classes are displayed. It shows a particular detail of the program
during runtime. The individual objects are shown, along with the links and also the multiplicities.

For example, this diagram type is implemented during readjustment of errors in the running
system. When a particular software behavior occurs under specific conditions, this can be
described using the Object diagram by showing the relevant attributes for this circumstance and
their values in the objects.

The following example shows a class diagram to the left and the corresponding object diagram to
the right.
对象图与类图有一定的相似之处,但又有决定性的区别
在这里,只显示实例而不显示类。它显示了程序的特定细节
在运行时。单独的对象被显示出来,连同链接和多样性。
例如,这种关系图类型是在运行中重新调整错误时实现的
系统。当一个特定的软件行为在特定的条件下发生时,这是可能的
通过显示此情况的相关属性,并使用对象图进行描述
它们的值在对象中。
下面的例子显示了左边的类图和相应的对象图
右边。

1.3.9Object Diagram(对象图)

查找名词 Object Diagram(对象图)
名词解说 The Object diagram holds a certain similarity to the class diagram but with the decisive difference
that, here, only instances and no classes are displayed. It shows a particular detail of the program
查找网址 https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-object-diagram/
查找时间 2020/11/12
详细解释
The Object diagram holds a certain similarity to the class diagram but with the decisive difference
that, here, only instances and no classes are displayed. It shows a particular detail of the program
during runtime. The individual objects are shown, along with the links and also the multiplicities.

For example, this diagram type is implemented during readjustment of errors in the running
system. When a particular software behavior occurs under specific conditions, this can be
described using the Object diagram by showing the relevant attributes for this circumstance and
their values in the objects.

The following example shows a class diagram to the left and the corresponding object diagram to
the right.
对象图与类图有一定的相似之处,但又有决定性的区别
在这里,只显示实例而不显示类。它显示了程序的特定细节
在运行时。单独的对象被显示出来,连同链接和多样性。
例如,这种关系图类型是在运行中重新调整错误时实现的
系统。当一个特定的软件行为在特定的条件下发生时,这是可能的
通过显示此情况的相关属性,并使用对象图进行描述
它们的值在对象中。
下面的例子显示了左边的类图和相应的对象图
右边。
A002-185-2537-翁格婉(个人期末作业)_第19张图片

1.3.10Composition of Activity Diagrams(活动图组成)

查找名词 Composition of Activity Diagrams(活动图组成)
名词解说 Activities can be hierarchically composed. An action can be reconstituted from a number of
detailed actions. The inbound and outbound edges of this constructed activity and the detail
models must correspond. With this cascading of diagrams, one can retain an overview of more
complex processes. This subcategorisation into sub- or detail-models can be helpful and also
necessary in many regards: a) Adequate subdivision to maintain standard paper format, and b)
Creation of detailed classifications that are included in various documents and approved by
various responsible persons.
查找网址 https://www.guru99.com/uml-activity-diagram.html
查找时间 2020/11/12
详细解释
Activities can be hierarchically composed. An action can be reconstituted from a number of
detailed actions. The inbound and outbound edges of this constructed activity and the detail
models must correspond. With this cascading of diagrams, one can retain an overview of more
complex processes. This subcategorisation into sub- or detail-models can be helpful and also
necessary in many regards: a) Adequate subdivision to maintain standard paper format, and b)

Creation of detailed classifications that are included in various documents and approved by
various responsible persons.

A call to an activity is represented by a Call Behavior Action.

Call Behavior Actions can be identified fork symbol in the lower right corner of the action.

In the figure Enter PIN beyond the Activity update display is called within the loop as well as after
exiting the loop. update display is defined only once, but called by the actions several times.

To use this calling feature instead of copying the activity is strictly recommended. Please note:
You can only call activities by Call Behavior Actions!

Call Operation Actions are similar to Call Behavior Actions, not calling a behavior (activity) but an
operation directly – the operation is defined somewhere else, for example as an operation of a
class. In the figure above, the operation FetchKey of the class ATM is called by the action key. This
is intended by several quality systems - like SPICE, CMMI, … Independently this small effort will
pay back later on, when a change request has to be implemented.

Enterprise Architect provides possibilities for structuring elements: A
structured (=composite) element contains a link to a diagram where the
reader will find detailed information concerning the element.

Graphically composite elements can be identified by a chain symbol in the
right, lower corner.
This is not defined within the UML-specification, but offers a very powerful
possibility to structure diagrams.
To cascade diagrams enables to achieve a good overview and an easy drilldown-feature to reach more details. This will be necessary and/or helpful
to:
a) deal with a limited printout format properly and
b) to separate the content in a way, where different reviewers with
different competency and/or authorization level can agree
easily.
活动可以按层次结构组合。一个动作可以由若干个动作组成
详细的操作。此构造活动的入站和出站边缘以及详细信息
模型必须对应。通过这种图的级联,人们可以保留更多的概览
复杂的流程。这种细分为子模型或详细模型的方法是很有帮助的
在许多方面都是必要的:a)适当的细分以保持标准的论文格式;b)
创建详细的分类,包括在各种文件中,并经批准
不同的人负责。
对活动的调用由调用行为动作表示。
调用行为动作可以识别叉符号在右下角的动作。
在图中,活动更新显示之外的输入管脚在循环内和循环后都被调用
退出循环。update display只定义一次,但被actions调用多次。
严格建议使用此调用特性而不是复制活动。请注意:
您只能通过调用行为动作来调用活动!
调用操作动作类似于调用行为动作,不是调用行为(活动)而是调用
直接操作——该操作在其他地方定义,例如作为a的一个操作
类。在上图中,类ATM的操作FetchKey由操作键调用。这
是由几个质量系统——像SPICE, CMMI,…独立地这小小的努力将会
稍后,当必须实现变更请求时进行偿还。
企业架构师为构建元素提供了可能性:A
元素的结构化(=复合)元素包含到图的链接
读者可以找到有关元素的详细信息。
控件中的链符号可以以图形方式标识复合元素
对的,较低的角落。
这在uml规范中没有定义,但是提供了一个非常强大的功能
可能的结构图。
级联图可以实现良好的概述和一个简单的钻 down-feature达到更多的细节。这将是必要的和/或有用的
:
正确处理有限的打印输出格式和
b)以某种方式分离内容,其中不同的评论者
不同的能力和/或授权级别可以达成一致
很容易。
A002-185-2537-翁格婉(个人期末作业)_第20张图片

1.4第四次查词

1.4.1persistent object(持久化对象)

查找名词 persistent object(持久化对象)
名词解说 An object that exists after the process or thread that created it has ceased to exist.
查找网址 https://catlikecoding.com/unity/tutorials/object-management/persisting-objects/
http://www.cs.technion.ac.il/users/yechiel/c+±faq/persistence.html
https://www.tutorialspoint.com/python-object-persistence-shelve
查找时间 2020/12/06
详细解释
A persistent object can live after the program which created it has stopped. Persistent objects can even outlive different versions of the creating program, can outlive the disk system, the operating system, or even the hardware on which the OS was running when they were created.

The challenge with persistent objects is to effectively store their member function code out on secondary storage along with their data bits (and the data bits and member function code of all member objects, and of all their member objects and base classes, etc). This is non-trivial when you have to do it yourself. In C++, you have to do it yourself. C++/OO databases can help hide the mechanism for all this.
The shelve module in Python’s standard library is a simple yet effective tool for persistent data storage when using a relational database solution is not required. The shelf object defined in this module is dictionary-like object which is persistently stored in a disk file. This creates afile similar to dbm database on UNIX like systems. Only string data type can be used as key in this special dictionary object, whereas any picklable object can serve as value.

The shelve module defines three classes as follows −
Easiest way to form a Shelf object is to use open() function defined in shelve module which return a DbfilenameShelf object.

open(filename, flag = ‘c’, protocol=None, writeback = False)
持久对象在创建它的程序停止后仍然存在。持久化对象甚至比创建程序的不同版本更长寿,比创建操作系统时所运行的磁盘系统、操作系统甚至硬件更长寿。
持久对象的挑战是有效地将它们的成员函数代码和它们的数据位(以及所有成员对象的数据位和成员函数代码,以及所有成员对象和基类的数据位和成员函数代码,等等)一起存储在二级存储器中。当你不得不自己做的时候,这是很重要的。在c++中,你必须自己做。c++ /OO数据库可以帮助隐藏所有这些机制。
当不需要使用关系数据库解决方案时,Python标准库中的shelve模块是用于持久数据存储的简单而有效的工具。这个模块中定义的shelf对象是类字典的对象,持久地存储在磁盘文件中。这将创建一个类似于UNIX系统上dbm数据库的文件。在这个特殊的字典对象中,只有字符串数据类型可以用作键,而任何可选取的对象都可以用作值。
shelve模块定义了三个类如下所示
最简单的方法是使用shelve模块中定义的open()函数,它返回一个DbfilenameShelf对象。
open(filename, flag = ‘c’, protocol=None, writeback = False)

1.4.2postcondition(后置条件)

查找名词 postcondition(后置条件)
名词解说 A constraint that must be true at the completion of an operation.
查找网址 https://docs.oracle.com/cd/E19683-01/806-7930/assert-13/index.html
https://www.wikitechy.com/interview-questions/software-testing/what-is-meant-by-preconditions-and-postconditions-in-a-test-case
https://riptutorial.com/c/example/1810/precondition-and-postcondition
查找时间 2020/12/06
详细解释
One use case for assertion is precondition and postcondition. This can be very useful to maintain invariant and design by contract. For a example a length is always zero or positive so this function must return a zero or positive value.
断言的一个用例是前置条件和后置条件。这对于保持不变和契约式设计是非常有用的。例如,长度总是0或正的,因此这个函数必须返回0或正的值。
A002-185-2537-翁格婉(个人期末作业)_第21张图片

1.4.3precondition(预处理)

查找名词 precondition(预处理)
名词解说 A constraint that must be true when an operation is invoked.
查找网址 https://www.geeksforgeeks.org/preconditions-guava-java/
https://www.baeldung.com/guava-preconditions
https://www.tutorialspoint.com/preconditions-java
查找时间 2020/12/06
详细解释
Introduction : The Preconditions Class provides a list of static methods for checking that a method or a constructor is invoked with valid parameter values. If a precondition fails, a tailored exception is thrown.

These methods generally accept a boolean expression which is expected to be true.
In the case of checkNotNull, these methods accept object reference which is expected to be non-null.
When false/null is passed instead, the Preconditions method throws an unchecked exception.
简介:Preconditions类提供了一个静态方法列表,用于检查是否使用有效的参数值调用了方法或构造函数。如果先决条件失败,则抛出定制的异常。
这些方法通常接受一个布尔表达式,该表达式被期望为真。
在checkNotNull的情况下,这些方法接受预期为非空的对象引用。
当传递false/null时,Preconditions方法会抛出一个未检查的异常。
Declaration :

@GwtCompatible
public final class Preconditions
extends Object

1.4.4primitive type(原语类型)

查找名词 primitive type(原语类型)
名词解说 A pre-defined basic datatype without any substructure, such as an integer or a string.
查找网址 https://cs.fit.edu/~ryan/java/language/java-data.html
https://developer.mozilla.org/en-US/docs/Glossary/Primitive
https://www.programiz.com/java-programming/variables-primitive-data-types#:~:text=8%20Primitive%20Data%20Types%201%201.%20boolean%20type.,2%3A%20Java%20byte%20data%20type%20More%20items…%20
https://www.techopedia.com/definition/29494/primitive-data-type
查找时间 2020/12/06
详细解释
Definition - What does Primitive Data Type mean?
A primitive data type is either a data type that is built into a programming language, or one that could be characterized as a basic structure for building more sophisticated data types. Programmers will often be immediately familiar with the primitive data types used in coding, which do not involve more sophisticated data sets for effective representation.
In JavaScript, a primitive (primitive value, primitive data type) is data that is not an object and has no methods. There are 6 primitive data types: string, number, bigint, boolean, undefined, and symbol. There also is null, which is seemingly primitive, but indeed is a special case for every Object: and any structured type is derived from null by the Prototype Chain.

Most of the time, a primitive value is represented directly at the lowest level of the language implementation.

All primitives are immutable, i.e., they cannot be altered. It is important not to confuse a primitive itself with a variable assigned a primitive value. The variable may be reassigned a new value, but the existing value can not be changed in the ways that objects, arrays, and functions can be altered.
定义——基本数据类型是什么意思?
原始数据类型要么是内置于编程语言中的数据类型,要么是可以被描述为构建更复杂数据类型的基本结构的数据类型。程序员通常会立即熟悉编码中使用的原始数据类型,这些类型不需要更复杂的数据集来进行有效的表示。
在JavaScript中,基元(基元值,基元数据类型)是指非对象且没有方法的数据。一共有6种基本数据类型:string、number、bigint、boolean、undefined和symbol。还有null,它看起来是原始的,但实际上是每个对象的特殊情况:任何结构化类型都是由原型链从null派生的。
在大多数情况下,原语值直接在语言实现的最低层表示。
所有的原语都是不可变的,即它们不能被改变。重要的是,不要将原语本身与赋给原语值的变量混淆。可以重新赋给变量一个新值,但不能像改变对象、数组和函数那样改变现有值。
A002-185-2537-翁格婉(个人期末作业)_第22张图片

1.4.5pseudo-state(伪状态)

查找名词 pseudo-state(伪状态)
名词解说 A vertex in a state machine that has the form of a state, but doesn’t behave as a state.
查找网址 https://www.sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/pseudo-states.html
https://www.visual-paradigm.com/VPGallery/diagrams/State.html
https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes
查找时间 2020/12/06
详细解释
Pseudostates are a UML abstraction for various types of transient vertices used in StateMachine diagrams. Pseudostates are used to express complex transition paths.

You can create a Pseudostate by dragging one of these element icons onto a diagram in Enterprise Architect.
A CSS pseudo-class is a keyword added to a selector that specifies a special state of the selected element(s). For example, :hover can be used to change a button’s color when the user’s pointer hovers over it.

/* Any button over which the user’s pointer is hovering */
button:hover {
color: blue;
}
Pseudo-classes let you apply a style to an element not only in relation to the content of the document tree, but also in relation to external factors like the history of the navigator (:visited, for example), the status of its content (like :checked on certain form elements), or the position of the mouse (like :hover, which lets you know if the mouse is over an element or not).

Note: In contrast to pseudo-classes, pseudo-elements can be used to style a specific part of an element.
伪状态是状态机器图中使用的各种瞬态顶点的UML抽象。伪态被用来表示复杂的跃迁路径。
您可以通过将这些元素图标之一拖放到Enterprise Architect中的图表中来创建一个伪状态。
CSS伪类是添加到选择器的关键字,它指定所选元素的特定状态。例如,:hover可以用来改变按钮的颜色,当用户的指针悬停在按钮上。
/* Any button over which the user’s pointer is hovering */
button:hover {
color: blue;
}
伪类允许您将样式应用到一个元素不仅在文档树的内容有关,还与外部因素的影响,例如导航的历史(例如:访问),其内容的状态(在某些表单元素:检查),或鼠标的位置(如:盘旋,它可以让你知道鼠标是否在一个元素)。
注意:与伪类相反,伪元素可以用于样式化元素的特定部分。

1.4.6published model [MOF](发布模型(MOF))

查找名词 published model [MOF](发布模型(MOF))
名词解说 A model which has been frozen, and becomes available for instantiating repositories and for the support in defining other models.
查找网址 https://pubs.rsc.org/en/content/articlelanding/2020/sc/d0sc04845c#!divAbstract
https://www.omg.org/ocup-2/documents/Meta-ModelingAndtheMOF.pdf
https://forums.autodesk.com/t5/bim-360-team-forum/downloading-a-published-model/td-p/7810407
https://jesspomfret.com/dsc-mof-files/
查找时间 2020/12/06
详细解释
Here’s a quick recap on how to write a simple configuration. I’ve named this configuration CreateSqlFolder. I’m targeting the node dscsvr2 and within that node block I’m using the File resource to define my desired state of having a directory C:\SQL2017\SQLData exist. With the final line of the script I’m calling the configuration and specifying where the output should land.

Generate a MOF file
When I run this script I see the output in the screenshot below, a MOF file has been created in my output folder. Managed Object Format (MOF) files are used to describe Common Information Model (CIM) classes, these are industry standards which gives us flexibility in working with DSC. In DSC this is important as the MOF file is the artefact that will actually be used to configure our nodes. This MOF will be delivered to our target node and enacted by the Local Configuration Manager (LCM).

The LCM will be covered in more detail in a later post, but for now know that it can be configured to be in either ‘Push’ mode or ‘Pull’ mode. Pull mode is more complicated to set up but perhaps more appropriate for managing a large number of servers. For now, we will look at the ‘Push’ mode where we will deliver the MOF manually to the target node for the LCM to enact.
Executing configuration to create a MOF file for target node.
Publish a MOF File
To get the MOF from my authoring station out to the target node I have a couple of options. First, I can run Start-DscConfiguration. This will push out the MOF and immediately enact the configuration. Using the -wait and -verbose switches we can see the output returned to our PowerShell console as the configuration is applied.
下面简要回顾一下如何编写一个简单的配置。我将此配置命名为CreateSqlFolder。我的目标是节点dscsvr2,在该节点块中,我使用文件资源来定义我希望的目录C:\SQL2017\SQLData存在的状态。在脚本的最后一行,我调用配置并指定输出应该落在哪里。
A002-185-2537-翁格婉(个人期末作业)_第23张图片

生成一个MOF文件
当我运行这个脚本时,我看到了下面的截图中的输出,一个MOF文件已经在我的输出文件夹中创建。管理对象格式(MOF)文件用于描述公共信息模型(CIM)类,这些行业标准为我们在使用DSC时提供了灵活性。在DSC中,这一点很重要,因为MOF文件是将实际用于配置节点的人工文件。这个MOF将被交付给我们的目标节点,并由本地配置管理器(LCM)制定。
LCM将在后面的文章中进行更详细的介绍,但现在我们知道它可以被配置为“Push”模式或“Pull”模式。Pull模式设置起来比较复杂,但可能更适合管理大量服务器。现在,我们将研究‘Push’模式,在这种模式中,我们将手动地将MOF交付给目标节点,以便LCM执行。
A002-185-2537-翁格婉(个人期末作业)_第24张图片

执行配置,为目标节点创建MOF文件。
发布MOF文件
要将MOF从我的创作站输出到目标节点,我有两个选项。首先,我可以运行Start-DscConfiguration。这将推出MOF,并立即制定配置。使用-wait和-verbose开关,我们可以看到在应用配置时返回到PowerShell控制台的输出。

1.4.7qualifier(修饰语)

查找名词 qualifier(修饰语)
名词解说 An association attribute or tuple of attributes whose values partition the set of objects related to an object across an association.
查找网址 https://www.tutorialspoint.com/spring/spring_qualifier_annotation.htm
查找时间 2020/12/06
详细解释
Next Page
There may be a situation when you create more than one bean of the same type and want to wire only one of them with a property. In such cases, you can use the @Qualifier annotation along with @Autowired to remove the confusion by specifying which exact bean will be wired. Following is an example to show the use of @Qualifier annotation.

Example
Let us have a working Eclipse IDE in place and take the following steps to create a Spring application −

Steps Description
1 Create a project with a name SpringExample and create a package com.tutorialspoint under the src folder in the created project.
2 Add required Spring libraries using Add External JARs option as explained in the Spring Hello World Example chapter.
3 Create Java classes Student, Profile and MainApp under the com.tutorialspoint package.
4 Create Beans configuration file Beans.xml under the src folder.
5 The final step is to create the content of all
下一个页面
可能会出现这样的情况:您创建了多个相同类型的bean,并希望仅将其中一个与属性连接起来。在这种情况下,可以使用@Qualifier注释和@Autowired指定要连接的确切bean,以消除混淆。下面是一个展示@Qualifier注释用法的示例。
例子
让我们准备一个可以工作的Eclipse IDE,并按照以下步骤创建一个Spring应用程序
步骤描述
1创建一个名为SpringExample的项目,并创建一个包com。在创建的项目的src文件夹下的tutorialspoint。
使用Add External jar选项添加所需的Spring库,如Spring Hello World示例章节所述。
在com下创建Java类Student, Profile和MainApp。tutorialspoint包。
在src文件夹下创建Beans配置文件Beans.xml。
5 .最后一步是创建所有的内容

1.4.8run time(运行时间)

查找名词 run time(运行时间)
名词解说 The period of time during which a computer program executes. Contrast: modeling time.
查找网址 https://www.geeksforgeeks.org/runtime-errors/
https://www.tutorialspoint.com/Runtime-Polymorphism-in-Java
https://docs.microsoft.com/en-us/cpp/c-runtime-library/c-run-time-library-reference?view=msvc-160
https://www.geeksforgeeks.org/how-to-measure-time-taken-by-a-program-in-c/

查找时间 2020/12/06
详细解释
Runtime Errors:
A runtime error in a program is an error that occurs while the program is running after being successfully compiled.
Runtime errors are commonly called referred to as “bugs” and are often found during the debugging process before the software is released.
When runtime errors occur after a program has been distributed to the public, developers often release patches, or small updates designed to fix the errors.
Anyone can find the list of issues that they might face if they are a beginner in this article.
While solving problems on online platforms, many run time errors can be faced, which are not clearly specified in the message that comes with them. There are a variety of runtime errors that occur such as logical errors, Input/Output errors, undefined object errors, division by zero errors, and many more.
Types of Runtime Errors:
SIGFPE: SIGFPE is a floating-point error. It is virtually always caused by a division by 0. There can be mainly three main causes of SIGFPE error described as follows:
Division by Zero.
Modulo Operation by Zero.
Integer Overflow.
运行时错误:
程序中的运行时错误是在程序成功编译后运行时发生的错误。
运行时错误通常称为“bug”,通常是在软件发布之前的调试过程中发现的。
当一个程序发布到公众面前后出现运行时错误时,开发人员通常会发布补丁或小的更新来修复这些错误。
任何人都可以在本文中找到他们可能面临的问题列表,如果他们是初学者的话。
在在线平台上解决问题时,可能会遇到许多运行时错误,这些错误并没有在相应的消息中明确指出。会出现各种各样的运行时错误,比如逻辑错误、输入/输出错误、未定义对象错误、除零错误等等。
运行时错误的类型:
SIGFPE: SIGFPE是一个浮点错误。它实际上总是由除0引起的。SIGFPE产生误差的主要原因有以下三种:
除零。
对零做模运算。
整数溢出。

1.4.9schema [MOF](模式)

查找名词 schema [MOF](模式)
名词解说 In the context of the MOF, a schema is analogous to a package which is a container of model elements.
查找网址 https://docs.microsoft.com/en-us/powershell/scripting/dsc/resources/authoringResourceMOF?view=powershell-7.1
https://github.com/PowerShell/PowerShell/issues/4325
https://github.com/PowerShell/PowerShell/issues/13359
https://stackoverflow.com/questions/35848371/how-to-create-a-custom-dsc-resource-with-mof

查找时间 2020/12/06
详细解释
Problem Statement
As we continue to make DSC more viable cross-platform, we have a serious problem with MOF. MOF parsing is provided by MMI.dll (there is both native code and managed code). MMI itself has dependency on OpenSSL 1.0 for the WSMan features. The non-Windows build of MMI is no longer supported and has been deprecated.

Proposal
To enable DSC resources to work cross-platform and on new distros that have moved to OpenSSL 1.1 (which is not backwards compatible with 1.0), we need to move away from MOF schema. This also means we would only support DSC resources written as PowerShell script (Get, Set, Test functions) or PowerShell classes. PowerShell classes already don’t require a MOF schema, but many DSC Resources are script resources so we need to move to something other than MOF to describe the schema of that resource.

The current proposal is to move to JSON instead of MOF.

Engine Changes
System.Management.Automation.dll needs to be updated to understand JSON schema instead of MOF schema for PowerShell script DSC resources.

[NOTE!] Compilation of DSC configuration to MOF will not change for now, but in the future we also want to have configuration compile to a JSON format instead of MOF.

PSDesiredStateConfiguration module
This module exists outside of this repo. Plan is to eventually make it Open Source. For now, changes will need to be made to this module to work with JSON schema instead of MOF. In addition, it should expose a new cmdlet to help convert existing MOF schema to the new JSON schema format for existing DSC PowerShell script resources.

With this change, embedded objects passed to Get/Set/Test will be PSObjects instead of CimInstances. Unless the script is explicitly checking that it is a CimInstance, existing code should work with PSObject.

Also, a new Test-DscResourceSchema cmdlet will be added to validate the script resource matches the JSON schema.

What about LCM (Local Configuration Manager) and WindowsPowerShell?
Building upon the work in PS7.0 to enable use of Invoke-DscResource, the current plan is to not integrate with WindowsPowerShell LCM. This means that new DSC Resources based on JSON will not be compatible with WindowsPowerShell. This also means that existing DSC Resources that are WMI/OMI based or only have MOF schema will not be supported.
问题陈述
当我们继续使DSC更可行的跨平台,我们有一个严重的问题与MOF。MOF解析是由MMI.dll提供的(既有本机代码也有托管代码)。MMI本身依赖于OpenSSL 1.0提供WSMan特性。不再支持非windows版本的MMI,并且已被弃用。
建议
为了使DSC资源能够跨平台工作,并在已经迁移到OpenSSL 1.1(它不向后兼容1.0)的新发行版上工作,我们需要远离MOF模式。这也意味着我们将只支持以PowerShell脚本(Get、Set、Test函数)或PowerShell类编写的DSC资源。PowerShell类已经不需要MOF模式,但是许多DSC资源是脚本资源,所以我们需要转移到MOF以外的东西来描述资源的模式。
目前的建议是转向JSON而不是MOF。
引擎的变化
对于PowerShell脚本DSC资源,system . manage . automator .dll需要更新以理解JSON模式而不是MOF模式。
(注意!目前DSC配置编译为MOF不会改变,但在未来,我们也希望配置编译为JSON格式,而不是MOF。
PSDesiredStateConfiguration模块
此模块存在于此回购之外。我们的计划是最终让它开源。现在,需要对该模块进行更改,以便使用JSON模式而不是MOF。此外,它应该公开一个新的cmdlet,以帮助将现有MOF模式转换为现有DSC PowerShell脚本资源的新的JSON模式格式。
通过这个更改,传递给Get/Set/Test的嵌入对象将是PSObjects,而不是CimInstances。除非脚本显式地检查它是否是CimInstance,否则现有代码应该与PSObject一起工作。
另外,还将添加一个新的Test-DscResourceSchema cmdlet,以验证脚本资源是否与JSON模式匹配。
那么LCM(本地配置管理器)和WindowsPowerShell呢?
基于PS7.0中启用Invoke-DscResource的工作,目前的计划是不与WindowsPowerShell LCM集成。这意味着新的基于JSON的DSC资源将不兼容WindowsPowerShell。这也意味着现有的基于WMI/OMI或只有MOF模式的DSC资源将不受支持。

1.4.10sender [object](发送方(对象))

查找名词 sender [object](发送方(对象))
名词解说 The object passing a stimulus to a receiver object. Contrast: receiver.
查找网址 https://social.msdn.microsoft.com/Forums/en-US/f4d0b168-e29b-416a-8a8d-3de9eac310ba/sender-object-in-an-event
https://forums.asp.net/t/343932.aspx?How+can+I+get+values+of+sender+object+in+C+
https://stackoverflow.com/questions/4316677/c-9-casting-systemobject-sender-to-control-type
查找时间 2020/12/06
详细解释
This time in C++ 9 (VS2008) I am attempting to cast a “System::Object ^ sender” to the Control type that it represents.

This is specifically in a TextBox_TextChanged event function.

I know this works fine in C# but I’m getting errors when I try it in C++ and I can’t seem to find the equivalent for C++.

C++ Code that is giving me errors . . .

System::Void txtEmplNum_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
TextBox thisBox = sender as TextBox ;
}
And the error that results . . .

Error 1 error C2582: ‘operator =’ function is unavailable in 'System::Windows::Forms::T
这一次在c++ 9 (VS2008)中,我试图强制转换一个“System::Object ^ sender”到它所代表的控件类型。
这具体是在TextBox_TextChanged事件函数中。
我知道这在c#中工作得很好,但当我在c++中尝试它时,我得到错误,我似乎找不到等价的c++。
c++代码,是给我的错误…
txtEmplNum_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
TextBox thisBox =发送的文本框;
}
结果的误差…
Error C2582: ‘operator =’ function is unavailable in 'System::Windows::Forms::T

1.2 项目主题查词说明

1.2.1 Usecasediagram(用例图)
查找名词 Usecasediagram(用例图)
名词解说 Ausecasediagram(English:usecasediagram)isthesimplestrepresentationoftheuser’sinteractionwiththesystem,showingtherelationshipbetweentheuserandhisrelatedusecases.
查找网址 https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-use-case-diagram/
https://www.smartdraw.com/use-case-diagram/
查找时间 2020/12/10
详细解释
什么是用例图?
用例图是UML中的动态或行为图。用例图使用参与者和用例为系统的功能建模。用例是系统需要执行的一组动作、服务和功能。在这种情况下,“系统”是被开发或操作的东西,如网站。“参与者”是在系统中定义的角色下运行的人员或实体。
为什么要制作用例图?
用例图对于可视化将转换为设计选择和开发优先级的系统的功能需求是很有价值的。
他们也有助于识别任何内部或外部因素,可能影响系统,并应加以考虑。
它们从系统外部提供了很好的高层次分析。用例图指定了系统如何与参与者交互,而不用担心功能如何实现的细节。
系统
使用包含用例的矩形绘制系统边界。将参与者置于系统边界之外。
系统符号-用例图
用例
使用椭圆绘制用例。用表示系统功能的动词标记椭圆。
用例符号-用例图
参与者
参与者是系统的用户。当一个系统是另一个系统的参与者时,用参与者原型给参与者系统贴上标签。
参与者符号-用例图的关系
用简单的一行说明参与者和用例之间的关系。对于用例之间的关系,使用标为“uses”或“extends”的箭头。“使用”关系表明,为了执行任务,另一个用例需要一个用例。“扩展”关系表示在某个用例下的备选选项。
项目相关
A002-185-2537-翁格婉(个人期末作业)_第25张图片

1.2.2 Internal Block Diagram(内部方框图)

查找名词 Internal Block Diagram(内部方框图)
名词解说 The internal block diagram or ibd resembles a traditional system block diagram and shows the connections between parts of a block.
查找网址 https://sysml.org/sysml-faq/what-is-internal-block-diagram.html
https://www.sciencedirect.com/topics/computer-science/internal-block-diagram
查找时间 2020/12/10
详细解释
块:块(符号:矩形,关键字=«块»)代表一个系统组件,一个模块化的结构单元,它封装了它的内容(属性、行为、约束),并支持一级(例如,可以在模型库中绘制和直接操作)接口。由块封装的行为包括:操作、信号和状态机。用于连接和连接(“布线”)块接口的唯一交互点称为端口。
块可以指定软件、硬件、机械和湿件(人员、组织、设施)组件。
块支持信息流和物理流所提供的(实现的)和所需的(使用的)接口。
可以递归地将块分解为多个部分,其中每个部分也必须由块定义。(见下面的用法说明。)
内部块图(ibd):内部块图是由特定块所拥有的静态结构图,它显示了封装的结构内容:部件、属性、连接器、端口和接口。换句话说,IBD是被包裹(“黑盒”)块的“白盒”透视图。
块可以通过在块定义图(BDD)和内部块图(IBD)之间交替使用(参见下面的用法说明)递归分解(“嵌套”)为部分。
行为可以被块封装(例如,操作、信号和状态机),或者直接或间接(通过接口)将(通过«allocate»依赖)分配给块(例如,活动/动作)。
可以通过约束块对参数块进行数学约束,从而生成数学上可模拟的参数图。
比较和对比:UML 2类图和组件图;SA/SD系统上下文和结构框图;该展会IDEF1X图。
目的
内部框图(IBDs)的目的是显示被封装的块的结构内容(部件、属性、连接器、端口、接口),以便使用基于接口的设计技术对它们进行递归分解和“连接”。当正确使用BDDs + ibd时,BDDs可递归伸缩和数学上(参数化)可模拟(参见下面的可执行语义)。
项目相关
A002-185-2537-翁格婉(个人期末作业)_第26张图片

1.2.3 package diagram(包图)

查找名词 Package Diagram(包图)
名词解说 Package diagram, a kind of structural diagram, shows the arrangement and organization of model elements in middle to large scale project.
查找网址 https://sysml.org/sysml-faq/what-is-package-diagram.html
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-package-diagram/
查找时间 2020/12/10
详细解释
包装图是一种结构图,它展示了大中型项目中模型要素的排列和组织。包图可以显示子系统或模块之间的结构和依赖关系,显示系统的不同视图,例如,多层(又名多层)应用程序——多层应用程序模型。
定义
包:包(符号:“文件夹”图标)是将模型元素和图组织成组的通用机制。包为在其作用域内定义的模型元素定义了唯一的名称空间。
命名空间=为其中包含的标识符提供范围的声明性区域
包关系图(pkg):包关系图是一种静态的结构关系图,它显示了包及其内容之间的关系。可以对包进行原型化(自定义),以便将模型元素组织成模型、视图、模型库和框架。
包图用于构造高级系统元素。包用于组织包含图表、文档和其他关键可交付成果的大型系统。
包图可以用来简化复杂的类图,它可以将类分组到包中。
包是逻辑上相关的UML元素的集合。
包被描述为文件文件夹,并且可以在任何UML图上使用。
命名空间=为其中包含的标识符提供范围的声明性区域。
目的
包图的目的是支持大型、复杂的系统架构模型(sam)的组织和管理。
项目相关
A002-185-2537-翁格婉(个人期末作业)_第27张图片

1.2.4 Requirement Hierarchy(需求层次结构)

查找名词 One Level Requirement Hierarchy(需求层次结构)
名词解说 The requirement set is the top level of hierarchy for all requirements. All requirements in Simulink Requirements are contained in requirement sets. Every top-level parent requirement in a requirement set is the first-level hierarchy for that set.
查找网址
查找时间 2020/12/10
详细解释
使用Simulink®Requirements™,可以从更高层次的需求中派生出较低层次的需求,以建立和管理父子关系。
需求集是所有需求层次结构的顶层。Simulink中的所有需求都包含在需求集中。需求集中的每一个顶级父需求都是该需求集中的第一级层次结构。引用对象)和需求(slreq。需求对象)不能共享父需求。
在需求集中,您可以通过使用需求编辑器或需求浏览器工具栏上的图标来更改单个需求的级别。当您使用子元素提升或降级一个需求时,父-子层次关系被保留。您还可以通过右键单击需求并选择向上或向下移动,将需求向上或向下移动到相同的层次结构中。
需求集的实现和验证状态度量是通过集合中的所有需求累积起来的。需求集中的每一个父需求都从它的所有子需求中获得度量。有关实现和验证状态度量的更多信息,请参见评审需求实现状态度量数据并汇总需求验证状态。
项目相关
A002-185-2537-翁格婉(个人期末作业)_第28张图片

1.2.5 One Level Activity Hierarchy(活动的层次结构)

查找名词 One Level Activity Hierarchy(活动的层次结构)
名词解说 The purpose of this page is to clarify in details the Activity Hierarchy functionality and why to create it inside your business environment.
查找网址 https://wiki.scn.sap.com/wiki/display/GRC/Activity+Hierarchy
查找时间 2020/12/10
详细解释
在活动层次结构中,您可以通过定义层次结构来构建组织中涉及风险的活动,从而描述如何在组织或业务实体中使用业务活动及其关系。
可以定义公司内部风险管理活动的范围,使其透明,特别是用于报告目的。
相关的每个项目可以是一个活动类别。
可以将风险和机会类别分配给每个活动类别。
可以将流程控制流程与您的活动层次结构相关联。
项目相关
A002-185-2537-翁格婉(个人期末作业)_第29张图片

1.2.6 Interface Diagram(界面示意图)

查找名词 Interface Diagram(界面示意图)
名词解说 Interface diagrams can be created for composite interfaces which are defined in Interface Library section of Solution Documentation.
查找网址 https://wiki.scn.sap.com/wiki/display/SM/Interface+diagrams
查找时间 2020/12/10
详细解释
在活动层次结构中,您可以通过定义层次结构来构建组织中涉及风险的活动,从而描述如何在组织或业务实体中使用业务活动及其关系。这样的接口图旨在可视化复杂集成场景的流程。复杂意味着集成场景中通常涉及多个系统,这些系统通过点对点连接(由接口表示)连接,所涉及的系统中可能发生额外的处理逻辑,可以使用接口步骤进行描述。与解决方案文档中的所有其他图形表示一样,接口图使用BPMN 2.0来描述接口序列和接口步骤。
运行在两个独立逻辑组件组(表示点对点接口)上的两个接口步骤之间的连接可以通过将所谓的中间消息事件(IME)添加到图形中来实现。IME是进一步元素的锚点,因此可用于将接口附加到复合接口。您可以创建多个任务来实现集成场景的变体。
以类似的方式,您可以在解决方案文档的业务流程部分的业务流程中引用组合接口。通常不希望在流程图中直接显示接口级数据交换的所有技术细节。因此,通过将接口或复合接口分配给流程图中的IMEs,您可以在流程图中“隐藏”技术接口细节。所有接口数据仍然是可用的,如果需要,您可以通过前向导航访问接口图。
项目相关
A002-185-2537-翁格婉(个人期末作业)_第30张图片

1.2.7 Class Diagram(类图)

查找名词 Class Diagram(类图)
名词解说 Class diagram is a static diagram. It represents the static view of an application. Class diagram is not only used for visualizing, describing, and documenting different aspects of a system but also for constructing executable code of the software application.
查找网址 https://www.tutorialspoint.com/uml/uml_class_diagram.htm
查找时间 2020/12/10
详细解释
类图是静态图。它表示应用程序的静态视图。类图不仅用于可视化、描述和记录系统的不同方面,而且用于构建软件应用程序的可执行代码。
类图描述了类的属性和操作,以及对系统施加的约束。类图在面向对象系统的建模中被广泛使用,因为它们是唯一可以直接映射到面向对象语言的UML图。
类图显示了类、接口、关联、协作和约束的集合。它也被称为结构图。
类图的目的
类图的目的是为应用程序的静态视图建模。类图是唯一可以直接用面向对象语言映射的图,因此在构造时被广泛使用。
UML图与活动图、序列图一样,只能给出应用程序的序列流,但是类图有一点不同。它是编码器社区中最流行的UML图。
类图的目的可以概括为-
分析和设计一个应用程序的静态视图。
描述系统的职责。
组件和部署图的基础。
正向和逆向工程。
项目相关
A002-185-2537-翁格婉(个人期末作业)_第31张图片

1.2.8 Transaction Flow Diagram(业务流程图)

查找名词 Transaction Flow Diagram(业务流程图)
名词解说 Transaction Flow Diagram (TFD) represents a specific business process by using graphic elements (symbols, lines).To create a transaction flow diagram, programs designed specifically to draw flowcharts are particularly well-suited to the task.
查找网址 https://www.edrawsoft.com/transaction-flow-diagram.html
查找时间 2020/12/10
详细解释
事务流程图(TFD)通过使用图形元素(符号、线)来表示特定的业务流程。
为了创建事务流程图,专门为绘制流程图而设计的程序特别适合于这项任务。
如何绘制事务流程图

  1. 首先,明确交易的输入、处理、储存(库存)、输出和即时存取;然后收集相关信息和数据;
  2. 明确岗位或流程之间的关系;
    3.删除非必需品;整合等价物,添加新内容;
  3. 确定哪些要由计算机系统处理。
    项目相关
    A002-185-2537-翁格婉(个人期末作业)_第32张图片
    A002-185-2537-翁格婉(个人期末作业)_第33张图片
    A002-185-2537-翁格婉(个人期末作业)_第34张图片

2.读书笔记

2.1读书笔记一

《需求工程-软件建模与分析》作为教材,易得且易懂。把它作为一本书,能对需求工程有更详细、细致的理解。首先我浏览了绪论与需求获取,再翻开目录,这本书分为五部分,大概了解到从软件需求工程的角度出发,以需求开发过程为主线,完整描述了需求获取、需求分析、需求验证、需求规格说明和需求管理等需求工程活动。
  软件需求位于软件工程的初始阶段,是软件系统开发中一个重要的独立工作阶段,为软件工程后续阶段提供了工作基础,对软件项目的成败至关重要。随着软件系统规模的日益扩大和复杂程度的日益增长,以需求分析为中心的的传统需求技术已不能适应现代软件及时的发展的要求,完整的需求工程工程应运而生。需求工程是开发者再进一步升入理解然软件项目需求处理活动之后提出的一阶段性活动。这本书从开发者角度出发,侧重实践的技术与方法,系统地介绍了需求工程中的最新进展,促进需求工程领域理论、方法和技术的融合应用。在系统的介绍需求工程中,运用一些实例让我对需求工程的了解进一步加深。
  本书开始几节介绍了软件的发展,又软件的发展逐步写到需求工程的产生。软件实现其功能的基础、手段和过程是在用户领域内现实可理解的,即软件系统是在理解其现实环境的基础上,通过影响现实的某些环节,或者改变现实各部分的通信方式,最终达成某些目的或者解决某些问题的。应用型软件一般以普通用户为应用对象,因此也要求具有使用的方便性。实现功能的模拟性和使用的方便性也仅要求所用技术具有可行性。和工具型软件不同的是,应用型软件通常不是通用的,它们是为特定的应用环境定制的,对环境的模拟性是其主要的关注点。在书中给需求工程这样定义:需求工程是所有需求处理活动的总和,它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终发硬软件被应用后与其环境互动形成的期望效应。它从软件需求的根源着手,在软件工程体系中讨论软件需求,让我了解需求工程的作用和意义,明确软件需求的来源和去向,说明了软件需求怎样基于现实世界中的问题得以产生。书中强调面向普通用户的纯工具型软件以功能的有用性为首要成功标准,一些过于复杂的功能反而会因其灵活性而丧失一定的实用性,进而受到用户的抵制。普通用户技术能力有限,所以对操作的要求以使用方便为主,在使用方便的前提下追求使用的高效性。实现功能的有用性和使用的方便性,利用常见的可行技术即可,先进技术并非必要条件。有效性是该类软件的主要关注点,能够有效使用即可占有一席之地。

2.2读书笔记二

在需求获取方面的学习后,从软件需求方面,我们需要从用户以及工作人员还有投资者角度综合看待问题,不能简单的满足某一方面的要求,软件需求是软件开发的前提,是一个软件能够有良好前景的开端,是软件成功的必要条件。
其中涉及到需求获取中所遇到的常见困难,如:用户和开发人员的背景不同,立场不同;普通用户缺乏概括性、综合性的表述能力;用户存在认知困境;用户越俎代庖;缺乏用户参与等等,了解这些困难对更好地了解需求获取活动的复杂性有重要意义。我们所说的需求,就是获取的主要对象,是系统期望达到的目标。它主要来源于用户、客户、领域专家等相关涉众,在获取中体现为涉众的问题、期望、观点、看法和态度等。问题域描述是用来承载和解释需求的问题域特性,主要是现实世界的业务运行状况。它可以从涉众的业务描述中获得,也可以从业务运行所产生的各种数据文档中获得。环境与约束属于一种特殊的问题域特性,限定了解系统部署的环境和条件。之所以将其单独列举出来,是因为它常常在需求获取中被人们遗漏。主要来源于涉众的描述和对应用环境的观察。
信息的获取来源包括:涉众:用户,客户,领域专家,市场人员、销售人员等其他用户替代源;硬数据:登记表格、单据、报表等定量文档;备忘录、日志等定性文档;

确定项目的前景与范围,在开始一个项目之初,首先要考虑的一个问题是——为什么要启动该项目?也就是说项目的目标是什么?项目的目标是系统的业务需求,在很多情况下,涉众可以清晰地表达出系统的业务需求,这时可以通过安排和涉众的面谈来明确项目的动机。但也有很多情况下,涉众无法表达他们的业务需求,或者表达的业务需求不够清晰。因此,要发现系统的业务需求,还是要从用户的问题开始。要分析涉众问题,首先要明确问题,将它们变得清晰,变得适宜进行分析。这个过程从问题和相关的背景描述开始。对涉众的高层次问题,经过问题分析之后就可以得到高层次的解决方案及系统特性,它们清晰地定义了问题解决方案的功能和边界。将所有问题的解决方案进行综合,就可以得到整个解系统的功能和边界。系统的边界通常是进行需求分析的起点,无论是结构化分析还是面向对象分析,都要从系统的边界图开始,逐一分析和细化系统与外界的交互,以保证最终产品的行为能够和环境形成互动以满足用户的需求。
所有对软件系统的开放和应用具有发言权和决定权的人统称为涉众。软件系统当中常见的涉众类别有:1.用户2.客户3.开发者4.管理者5.领域专家6.政府力量7.市场力量。涉众分析就是为软件系统寻找并理解关键涉众的过程。涉众分析的过程:涉众识别、涉众描述、涉众评估、涉众选择四部分。
软件需求获取的几个方法:面谈和问卷调查;小组讨论;情景串联;参与、观察业务流程;现有产品和竞争对手的描述文档;市场资料;
面谈和问卷调查:面谈是获取软件需求的最有用的方法之一。面谈需准备的内容:面谈对象:与系统相关的涉众,并具有代表性,保证涵盖到每个角色。如何获取涉众:谁为系统付费,购买系统?谁使用系统:谁会受到系统结果的影响,谁来监管该系统?谁来维护系统?面谈问题:需保证与背景无关,保证获取信息的公正性。问题的设计:确定访谈对象的背景:姓名、年龄、部门所处的职位、目前的工作范围目前碰到哪些问题,这些问题会对工作、生活产生什么影响?对象环境的背景:a、计算机水平,b、目前是否有相同的系统在使用,c、使用该系统碰到哪些问题,d、目前如何处理工作?e、对培训等有什么要求?问题重复,取得面谈者对问题的认同;分析问题:问题产生的原因是?在什么情况下会有该问题?目前的解决方案是什么,效果如何?客户期待的解决方案是?解决方案的可行性分析;非功能性需求:性能?稳定性方面的要求;维护,是否有专门的维护团队?对当前的访谈结果的认同,确认后期有问题可继续联系。总结出当前优先级最高的三个问题;调查问卷无法取代面谈在需求获取阶段的作用,问卷调查的问题和答案具有一定的引导性,在某种程度上会影响结果。
涉众描述的业务流程可能由于某些原因会遗漏掉重要的信息,需求分析人员可申请参与到他们具体的工作,观察、体验业务操作过程。需求分析员在观察业务操作过程时,可根据实际的情况提问并详细记录,记录业务操作员操作过程,操作过程中碰到的难题,可获取真实的材料和理解整个业务。

2.3读书笔记三

需求工程是所有需求处理活动的总和,它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终反映软件被应用后与其环境互动形成的期望效应。需求工程包括需求开发(需求获取、需求分析、需求规格说明、需求验证)和需求管理两个方面。需求工程师需要具备认知学和社会学等方面比如认知心理学,人类学,社会学,语言学,哲学知识等理论指导和专业、分析、交流、观察、建模、写作、创新和协调等技能。
当软件系统被用来解决某些问题时,这些问题的问题集合域就是问题域,而软件系统通过影响问题域能够帮助人们解决问题成为解系统。通过映射建立的共同知识就是问题域和解系统之间的共享现象,也就是两者之间实现交互和互相影响的途径与接口。
需求分为功能需求、性能需求、质量属性、对外接口。约束。功能需求包括业务需求、用户需求和系统(级)需求。其他四项可划为非功能需求。其中性能需求常见的包括速度、容量、吞吐量、负载和实时性。约束主要有系统开发及运行的环境、问题域内的相关标准和商业规则。优秀的需求应该具备完整性、正确性、精确性、可行性、必要性、无歧义和可验证的特性。需求并没有反映用户的真实需要、模糊和歧义的需求、信息遗漏、不必要的需求、不切实际的期望等是常见的需求定义错误。
从这部分的需求绪论可以看到许都需求方面的整体定义,但并没有具体的步骤指导。从整体定义上来看,需求工程是一个庞大而繁琐的过程,如何抓住软件的功能重点是需求工程的最终目的。

3.对高铁订票系统的发展建议

3.1建议一

在项目目标方面,通过对用户需求的分析的过程,了解现有系统的不足以及优点,再整合预计的设计目标,向潜在的目标用户提供一个相对于目前已有的解决方案、系统以及应用程序更专一且人性化的逻辑和界面、应用设计,并在此基础上,尽可能地降低用户对新系统的学习门槛,减少用户对多余信息的获取。

3.2建议二

在功能范围方面,作为第三方系统,应当对系统所带来的所有风险,包括潜在的风险,进行应有的规避或者减少,以求达到最佳的风险管控阶段,为以后的发展获取可能的基础。故,本系统所拥有的功能,将着重放在对于用户界面的优化以及对不同用户的订座相关操作的需求进行合适的规范化,以求达成对用户对不同系统的使用情况的转变的门槛降低,以获取更多的潜在用户。在面对特殊用户,如团队集体订座、小型家庭集体订座、特殊人群订座的操作,以求减少他们的操作复杂度,做到在达成订座目标的同时,对操作流程的简单化。

3.3建议三

在可行性分析方面,该阶段主要通过对系统目标地初步调研和分析,从而提出可行性方案并进行研究论证.我在这主要从法律方面的可行性、使用方面的可行性、经济可行性、技术可行性、操作可行性五方面进行分析论证。
首先,法律方面的可行性,该系统的开发和研制,将不会侵犯他人、集体和国家的利益,不会违反国家的相关政策和法律。
第二,使用方面的可行性,该系统要操作简单,需要高铁售票人员熟悉业务流程,一般的工作人员即可胜任。

第三,在经济可行性方面,由于本系统是为了高铁车票订票所使用的系统,安装该应用程序,即可马上使用此系统,系统成本主要集中在系统软件的开发上,当系统投入运行后,可以节省大量的人力、财力、物力,所带来的经济效益是远远大于系统软件的开发成本。所以,从经济的角度来看,是完全可行的。
第四,在操作可行性方面,界面设计时,充分考虑了使用人员的习惯,界面友好简洁,操作方便;数据输入简单、迅速、规范、可靠;统计、计算准确等优点。
第五,社会可行性方面,随着旅游业的逐渐的成熟发达,高铁客运量大幅度的提高,国内旅游的增加,这些都对高铁的信息管理系统提出了更高的要求,所以要 不断的完善更新高铁售票系统,提高高铁售票系统的工作效率。高铁公司为方便旅客, 需开发一个订票系统。系统的操作者是有登录密码和用户名的售票员。系统要实现的基本功能是车次的调整,售票,订票,取票,退票,乘客信息的管理,乘客购票的统计;而系统在以后扩展时还可以实现的功能有: 对乘务工作人员的管理, 预定车票的送票情况管理等。此 系统的开发由我们分模块完成,而我所负 责的模块是实现系统的车次调整,售票,订票,退票,取票,车次查询功能。举一个旅客订票的例子:预定车票的旅客信息,包括姓名、性别、地址、证件号、目的地,输入车票预定系统的客户端程序,系统经过查询高铁公司内的车次数据服务器后,为旅客安排车次,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出车票给旅客。要求 系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。高铁售票系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

你可能感兴趣的:(个人作业——翁格婉)