课程名称 | 软件需求分析与建模 | 班级 | 18软5 |
---|---|---|---|
作业名称 | 期末个人专题报告 | 教导教师 | 董瑞生 |
姓名 | 黄奕琛 | 学号 | 1814080902508 |
日期 | 2020.12.18 |
1.名词解释与根据项目理解
2.个人心得
3.发展建议
1.名词解释与根据项目理解
1.Requirements baseline
官方解释:
A requirements baseline is a snapshot in time that represents an agreed-upon, reviewed, and approved set of requirements that have been committed to a specific product release. That “release” could be a complete delivered product or any interim development increment of the product. When stakeholders “sign off” on requirements, what they’re really doing is agreeing and committing to a specific requirements baseline (whether they think of it in those terms or not). Once the project team establishes a requirements baseline, the team should follow a pragmatic change control process to make good business and technical decisions about adding newly-requested functionality and altering or deleting existing requirements.
个人理解:需求基线是一个及时的快照,它代表了一组已被承诺到特定产品发布的已商定的、评审的和批准的需求。
这个“发布”可以是一个完整交付的产品,也可以是产品的任何中间开发增量。当涉众在需求上“签字”时,他们真正要做的是同意并承诺一个特定的需求基线(不管他们是否以这些术语来考虑它)。
一旦项目团队建立了需求基线,团队就应该遵循一个实用的变更控制过程,以做出关于添加新请求的功能和更改或删除现有需求的良好业务和技术决策。
我们的项目中:我们的项目是电子商城项目,因此我们的需求基线是至少要完成搜索商品,购买商品的功能。而后的增量则是类似于商品排行榜,购物车,会员制度等、
2.Functional requirement
官方解释:The Functional Requirements Specification documents the operations and activities that a system must be able to perform.
The Functional Requirements Specification is designed to be read by a general audience. Readers should understand the system, but no particular technical knowledge should be required to understand the document.
个人理解:功能需求规格说明记录了系统必须能够执行的操作和活动。
功能需求规范是设计给一般读者阅读的。读者应该了解系统,但不需要特别的技术知识就可以理解文件。
我们的项目中:我们的项目需要完成搜索,购买,支付等功能,而我们需要让用户了解学会的功能无非也就是这几种。其余的锦上添花的功能则可以让用户在使用中慢慢发现。
3.Asynchronous action
官方解释:A request where the sending object does not pause to wait for result.
个人理解:发送对象不暂停等待结果的请求。
我们的项目中:例如在使用一个功能时,如果出现网络问题,也可以在后续中完成。例如将商品加入购物车,之后出现卡顿,但是依然可以进行别的操作,而加入购物车则会在网络流畅后进行完成。
4.Synchronous action
官方解释:A request where the sending object pause to wait for result.
个人理解:发送对象暂停等待结果的请求。
我们的项目中:例如在支付的时候,必须要等待支付成功才能进行别的行为,如果支付失败,则将程序回退到支付前,避免出现安全问题。
5.type expression
官方解释:Main expression. These form the basis of all other expressions.
Postfix expression. These are primary expressions followed by an operator - for example, an array subscript or suffix increment operator.
An expression consisting of unary operators. A unary operator works on only one operand in an expression.
An expression consisting of binary operators. The binary operator operates on two operands in an expression.
Expressions that use conditional operators. The conditional operator is the only such operator in the ternary operator -c ++ language - and takes three operands.
Constant expression. A constant expression consists entirely of constant data.
An expression with an explicit type cast. You can use explicit cast or “cast” in the expression.
Expression with pointer to member operator.
The casting. You can use type-safe “cast” in expressions.
Runtime type information. Determine the type of object during program execution.
个人理解:主要表达式。这些是构成所有其他表达式的基础。
后缀表达式。这些是主表达式,后跟一个运算符-例如,数组下标或后缀增量运算符。
由一元运算符构成的表达式。一元运算符仅对表达式中的一个操作数起作用。
用二进制运算符构成的表达式。二进制运算符作用于表达式中的两个操作数。
使用条件运算符的表达式。条件运算符是三元运算符-C ++语言中唯一的此类运算符-并接受三个操作数。
常数表达式。常数表达式完全由常数数据组成。
具有显式类型转换的表达式。表达式中可以使用显式类型转换或“ cast”。
带有指针到成员运算符的表达式。
铸造。可以在表达式中使用类型安全的“ cast”。
运行时类型信息。在程序执行期间确定对象的类型。
我们的项目中:在我们的项目中,会有很多类型的表达式,例如单纯商品价格相加的常数表达式,将商品加入购物车时判断是否已存在的条件表达式等。
6.Object-metamodel
官方解释:Object metamodeling is a model used to prototype the modeling of an object. Metamodels provide a platform-independent mechanism that is used to specify the shared structure, syntax and semantics of technology and tool frameworks, with the ability to share interchangeable formats and programming models for model transformation and querying.
个人理解:对象元建模是用于对对象建模进行原型化的模型。元模型提供独立于平台的机制,用于指定技术和工具框架的共享结构、语法和语义,具有共享用于模型转换和查询的可互换格式和编程模型的能力。
我们的项目中:例如建模时的每一个小的组件,就是对象元模型。我们将每一个数据类,或者每一个系统操作单独提取出来,都可以作为元模型。
7.meta-metamodel
官方解释:An activity, and this activity produces meta-models, and the meta-meta-model is the language that express the meta-model.
个人理解:元元模型,元模型的基础。
我们的项目中:例如数据类中的每一个属性,如果需要都可以作为一个单独的元元模型。
8 namespace
官方解释:A namespace is used to uniquely identify one or more names from other similar names of different objects, groups or the namespace in general. Namespace makes it possible to distinguish objects with similar names but different origins. In XML, a namespace is a collection of element type and attribute names, each of which which can be identified by the unique namespace to which they belong.
Namespace is also known as name scope.
个人理解:命名空间是用来组织和重用代码的。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。
我们的项目中:将项目中的类似功能放到一个命名空间里,例如加入购物车和加入收藏功能,同样是加入,就可以放入相同命名空间里。
9.postcondtion
官方解释:Post Condition is a statement or set of statements describing the outcome of an action if true when the operation has completed its task.
The Post Conditions statement indicates what will be true when the action finishes its task.
个人理解:后置条件是描述操作完成任务后的结果(如果为true)的语句或语句集。
Post条件语句指出当操作完成其任务时什么是真实的。
我们的项目中:例如当支付完成后,返回一个true,作为成功的标识。这个true就是支付成功的后置条件。
10.Scenario Testing
官方解释:Scenario testing is a software testing technique that makes best use of scenarios. Scenarios help a complex system to test better where in the scenarios are to be credible which are easy to evaluate.
个人理解:场景测试是一种能够充分利用场景的软件测试技术。场景有助于复杂系统更好地进行测试,因为场景是可信的,易于评估。
我们的项目中:将我们当做买家或者卖家,然后模拟交易的过程,就可以当做一种“场景测试”,我们将自己代入了涉众,然后进行测试,就可以判断我们的系统哪里还存在不足。
11.Dynamic Testing
官方解释:Dynamic Testing is a kind of software testing technique using which the dynamic behaviour of the code is analysed.
For Performing dynamic, testing the software should be compiled and executed and parameters such as memory usage, CPU usage, response time and overall performance of the software are analyzed.
Dynamic testing involves testing the software for the input values and output values are analyzed. Dynamic testing is the Validation part of Verification and Validation.
个人理解:动态测试是一种分析代码动态特性的软件测试技术。
为了动态执行,需要编译和执行软件测试,并分析内存使用、CPU使用、响应时间和软件整体性能等参数。
动态测试涉及测试软件的输入值和输出值进行分析。动态测试是验证和确认的验证部分。
我们的项目中:比如对支付进行测试,测试支付功能是否安全,通过响应时间,支付结果等来判断。或者是同时打开多个商品界面然后快速将其加入购物车,观察是否会卡顿等。
12.Entity
官方解释:An entity is an object that exists. It doesn’t have to do anything; it just has to exist. In database administration, an entity can be a single thing, person, place, or object. Data can be stored about such entities. A design tool that allows database administrators to view the relationships between several entities is called the entity relationship diagram (ERD).
In database administration, only those things about which data will be captured or stored is considered an entity. If you aren’t going to capture data about something, there’s no point in creating an entity in a database.
If you’re creating a database of your employees, examples of entities you may have include employees and health plan enrollment.
个人理解:实体是存在的对象。它不需要做任何事情;它必须存在。在数据库管理中,实体可以是单个事物、人、地点或对象。可以存储关于这些实体的数据。允许数据库管理员查看多个实体之间关系的设计工具称为实体关系图(ERD)。
在数据库管理中,只有那些将捕获或存储数据的东西才被认为是实体。如果您不打算捕获关于某些东西的数据,那么在数据库中创建实体是没有意义的。
如果您正在创建员工数据库,您可能拥有的实体示例包括员工和健康计划登记。
我们的项目中:在我们的电子商城项目中,实体分为:买家、卖家、商品、订单等。而购物车、收藏夹这些是一种关联关系,不属于实体。
13.scope of a system
官方解释:System Scope describes the current systems that the required application package is expected to replace or interface with. The description contains a table that describes the functionality of each system, and relates systems to business activities that are supported and business objects that are managed (from the Business Scope).
个人理解:系统范围描述所需的应用程序包预期要替换或与之接口的当前系统。描述包含一个表,该表描述每个系统的功能,并将系统与所支持的业务活动和所管理的业务对象(来自业务范围)联系起来。
我们的项目中:我们用表将我们系统的每一个功能描述出来,比如搜索、收藏、购买等。系统范围将我们系统的功能描述出来之后,我们在开发的过程中就可以更加清楚明白我们需要完成的工作。
14.state diagram
官方解释:State Diagram are used to capture the behavior of a software system. UML State machine diagrams can be used to model the behavior of a class, a subsystem, a package, or even an entire system. It is also called a Statechart or State Transition diagram.
个人理解:状态图用于捕获软件系统的行为。UML状态机图可以用来为类、子系统、包甚至整个系统的行为建模。它也被称为状态图或状态转换图。
我们的项目中:通过状态图,我们可以清楚地认识到用户操作进行的顺序。比如购买的下一步是填写订单,填写完订单后支付,支付完后返回商品界面等。
15.behavior model
官方解释:detailed concept of the required behavior or the desired behavior pattern. This conceptualization includes a systematic description of psychological disorders as noted, based on overt behaviors which have been observed. Compare medical model.
BEHAVIORAL MODEL: “A behavioral model clearly illustrates behavior patterns which need to be corrected or improved.”
个人理解:行为模型常用状态转换图(简称状态图)来描述,它又称为状态机模型。行为模型通过描述系统的状态以及引起系统状态转换的事件来表示系统的行为。状态图中的基本元素有事件、状态和行为等。
我们的项目中:本项目通过绘制行为模型了解系统的行为,而了解系统行为使用的状态图,这里就不赘述。
16.dataflow diagram
官方解释:Also known as DFD, Data flow diagrams are used to graphically represent the flow of data in a business information system. DFD describes the processes that are involved in a system to transfer data from the input to the file storage and reports generation.
个人理解:也被称为DFD,数据流程图用于图形化地表示商业信息系统中的数据流。DFD描述了将数据从输入传输到文件存储和报告生成系统所涉及的过程。
我们的项目中:数据流图描述数据的流向。在我们的项目中,商品的编号从搜索功能搜索出,然后流向商查看商品详情的功能,之后还可以流向收藏夹,购物车或者是订单等。
17.fault tolerance
官方解释:Fault tolerance refers to the ability of a system (computer, network, cloud cluster, etc.) to continue operating without interruption when one or more of its components fail.
The objective of creating a fault-tolerant system is to prevent disruptions arising from a single point of failure, ensuring the high availability and business continuity of mission-critical applications or systems.
个人理解:容错性是指系统(计算机、网络、云集群等)在一个或多个组件发生故障时继续运行而不中断的能力。
创建容错系统的目标是防止单点故障引起的中断,确保关键任务应用程序或系统的高可用性和业务连续性。
我们的项目中:我们的项目中将使用捕获异常的技术。通过捕获异常,让系统中可能会出现的一些错误(例如网络问题)不导致系统退出,而是让系统弹出提示信息。例如支付系统,如果支付进行到一半出现异常,就有可能出现买家已付款,商家未收到款项的情况。而将该异常捕获之后,就可以回退到支付前。
18.application domain
官方解释:Application domains provide an isolation boundary for security, reliability, and versioning, and for unloading assemblies. Application domains are typically created by runtime hosts, which are responsible for bootstrapping the common language runtime before an application is run.
个人理解:应用程序域为安全性、可靠性和版本控制以及卸载程序集提供隔离边界。应用程序域通常是由运行时主机创建的,运行时主机负责在运行应用程序之前引导公共语言运行时。
我们的项目中:将诸如搜索、加入收藏,加入购物车这些应用程序独立起来,防止一个部分出现异常时,整个程序都停止运行。
19.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.
Class diagram describes the attributes and operations of a class and also the constraints imposed on the system. The class diagrams are widely used in the modeling of objectoriented systems because they are the only UML diagrams, which can be mapped directly with object-oriented languages.
Class diagram shows a collection of classes, interfaces, associations, collaborations, and constraints. It is also known as a structural diagram.
个人理解:类图是静态图。它表示应用程序的静态视图。类图不仅用于可视化、描述和记录系统的不同方面,而且用于构建软件应用程序的可执行代码。
类图描述了类的属性和操作,以及对系统施加的约束。类图在面向对象系统的建模中被广泛使用,因为它们是唯一可以直接映射到面向对象语言的UML图。
类图显示了类、接口、关联、协作和约束的集合。它也被称为结构图。
我们的项目中:将我们程序中每一个类(包括实体类和关联类)都通过UML图绘制出来,添加描述,方便我们在开发的过程中更具体的了解每个类,以及它们之间的联系。也是为了防止将功能相似的类混淆。
20.component diagram
官方解释:UML Component diagrams are used in modeling the physical aspects of object-oriented systems that are used for visualizing, specifying, and documenting component-based systems and also for constructing executable systems through forward and reverse engineering. Component diagrams are essentially class diagrams that focus on a system’s components that often used to model the static implementation view of a system.
个人理解:UML组件图用于为面向对象系统的物理方面建模,这些面向对象系统用于可视化、指定和记录基于组件的系统,也用于通过正向和反向工程构建可执行系统。组件图本质上是关注系统组件的类图,这些组件通常用于为系统的静态实现视图建模。
我们的项目中:组件图主要是将每个组件绘制成图的形式,而组件包括功能,前端等,因此绘制出来会让开发人员对系统了解更加清晰。
21.decision table
官方解释:Decision table testing is a software testing technique used to test system behavior for different input combinations. This is a systematic approach where the different input combinations and their corresponding system behavior (Output) are captured in a tabular form. That is why it is also called as a Cause-Effect table where Cause and effects are captured for better test coverage.
个人理解:决策表测试是一种软件测试技术,用于测试不同输入组合的系统行为。这是一种系统方法,不同的输入组合及其相应的系统行为(输出)以表格形式捕获。这就是为什么它也被称为因果表的原因,其中捕获了原因和结果,以便更好地测试覆盖率。
我们的项目中:在我们的项目中,我们开发完成后,将用户可能执行的每一个操作都写入决策表中,然后对软件进行测试,就可以覆盖性的测试每一个功能是否会出现异常。
22.semantic variation point
官方解释:A semantic variation point is a point of variation in the semantics of a metamodel. It provides an intentional degree of freedom for the interpretation of the metamodel se- mantics.
个人理解:语义变化点是元模型语义中的一个变化点。它为元模型本体的解释提供了一个有意的自由度。
我们的项目中:一个功能执行到一半需要变更一些操作,就是语义变化点。比如填写订单有错误,需要return就是一个变化点。
23.single inheritance
官方解释:Single inheritance enables a derived class to inherit properties and behavior from a single parent class. It allows a derived class to inherit the properties and behavior of a base class, thus enabling code reusability as well as adding new features to the existing code. This makes the code much more elegant and less repetitive. Inheritance is one of the key features of object-oriented programming (OOP).
个人理解:单继承使派生类能够从单个父类继承属性和行为。它允许派生类继承基类的属性和行为,从而支持代码可重用性,并向现有代码添加新特性。这使得代码更加优雅,并且减少了重复。继承是面向对象编程(OOP)的关键特性之一。
我们的项目中:开发的过程中需要用到dao层以及service层,这两个层都是使用单继承的方式来进行封装。
24.Single-Valued Function
官方解释:A single-valued function is function that, for each point in the domain, has a unique value in the range. It is therefore one-to-one or many-to-one.
A single-valued complex function of a complex variable is a complex function f:C->C that has the same value at every point z_0 independent of the path along which it is reached by analytic continuation (Knopp 1996).
个人理解:单值函数是指对于定义域内的每一点,在值域内都有唯一值的函数。因此它是一对一或多对一的。
复变量的单值复函数是复函数f:C->C,它在每个点z_0处的值都相同,与解析延拓到达路径无关(Knopp 1996)。
我们的项目中:每一张订单的生成都有唯一的订单号。
25.state machine
官方解释:A state machine is a concept used in designing computer programs or digital logic. There are two types of state machines: finite and infinite state machines. The former is comprised of a finite number of states, transitions, and actions that can be modeled with flow graphs, where the path of logic can be detected when conditions are met. The latter is not practically used.
个人理解:状态机是一个用于设计计算机程序或数字逻辑的概念。有两种类型的状态机:有限状态机和无限状态机。前者由有限数量的状态、转换和动作组成,可以用流图建模,在满足条件时可以检测逻辑路径。后者并没有实际应用。
我们的项目中:主要是硬件部分的东西,与我们项目关系不大。
26.software architecture
官方解释:A system is a collection of components organized to accomplish a specific function or set of functions. The term system encompasses individual applications, systems in the traditional sense, subsystems, systems of systems, product lines, product families, whole enterprises, and other aggregations of interest. A system exists to fulfill one or more missions in its environment.
个人理解:系统是为完成一种或一组特定功能而组织起来的组件的集合。术语系统包括单个应用程序、传统意义上的系统、子系统、系统的系统、产品线、产品系列、整个企业,以及其他感兴趣的集合。一个系统的存在是为了在它的环境中完成一个或多个任务。
我们的项目中:我们将系统的每一个部分,每一个类,功能等全部绘制出来,就是一个软件结构。而软件结构相当于将需求工程分析得到的东西整合起来,是软件开发到后期的操作。
27.subactivity state
官方解释:A subactivity state represents the execution of a non-atomic sequence of steps that has some duration; that is, internally it consists of a set of actions and possibly waiting for events. That is, a subactivity state is a hierarchical action, where an associated subactivity graph is executed.
个人理解:子活动状态表示具有一定持续时间的非原子步骤序列的执行;也就是说,它在内部由一组动作和可能的等待事件组成。也就是说,子活动状态是分层操作,在其中执行关联的子活动图。
我们的项目中:例如在填写订单时,填写收货地址,选择物流,货到付款或者线上付款都是填写订单这一状态的子状态。
28.submachine state
官方解释:A Submachine State presents the interface defined in the associated Submachine. This interface consists of Entry Points to be used as targets for transitions to specific substates and eXit Points for attaching eXit Point Segments.
A Submachine State can have also incoming transition that terminate on the boundary of the Submachine State and don’t target any Entry-Points. Such incoming transitions enter the associated Submachine through its initial transition (if available).
个人理解:子机器状态表示在关联子机器中定义的接口。该接口由入口点和出口点组成,入口点用于转换到特定子状态的目标,出口点用于附加出口点段。
子机器状态也可以有传入转换,它终止于子机器状态的边界,不以任何入口点为目标。这样的传入转换通过它的初始转换(如果可用的话)进入相关的子机器。
我们的项目中:属于硬件部分的需求。
29.AsyncController
官方解释:The AsyncController class enables you to write asynchronous action methods. You can use asynchronous action methods for long-running, non-CPU bound requests. This avoids blocking the Web server from performing work while the request is being processed. A typical use for the AsyncController class is long-running Web service calls.
个人理解:AsyncController类允许您编写异步动作方法。您可以对长时间运行、非cpu绑定的请求使用异步动作方法。这避免了在处理请求时阻止Web服务器执行工作。AsyncController类的典型用法是长时间运行的Web服务调用。
我们的项目中:通过AsyncController类编写异步动作方法,将将需要进行异步操作的功能编写出来,就可以让我们的系统更加灵活。
30.transient object
官方解释:Transient objects do not have association with the databases and session objects. They are simple objects and not persisted to the database. Once the last reference is lost, that means the object itself is lost.
个人理解:瞬态对象与数据库和会话对象没有关联。它们是简单的对象,没有持久化到数据库中。一旦丢失了最后一个引用,就意味着对象本身丢失了。
我们的项目中:我们的项目中,可以为了防止用户手滑返回,而添加历史纪录的功能,在本次启动应用的过程中将访问过的商品保存在对象中,而一旦将程序退出,对象也随之消失。
31.software crisis
官方解释:A software crisis is a mismatch between what software can deliver and the capacities of computer systems, as well as expectations of their users. This became a growing problem in the 20th century as computing grew by leaps and bounds and software was unable to keep pace. As the complexity of systems grows, so do the needs of users, who expect increasingly more performance from their software. Programmers may struggle to keep pace, creating a software crisis.
个人理解:软件危机是指软件所能交付的东西与计算机系统的能力以及用户的期望之间的不匹配。在20世纪,随着计算机技术突飞猛进的发展,软件无法跟上时代的步伐,这成为一个日益严重的问题。随着系统复杂性的增长,用户的需求也在增长,他们对软件的性能要求也越来越高。程序员可能会努力跟上进度,从而引发软件危机。
我们的项目中:这是一个软件工程的概念,而与我们具体做的项目关系不大。但是我们应该在设计与开发的过程中避免出现软件危机,一旦出现了,则是大问题。
32.rich internet application
官方解释:A rich Internet application (RIA) is a Web application designed to deliver the same features and functions normally associated with deskop applications. RIAs generally split the processing across the Internet/network divide by locating the user interface and related activity and capability on the client side, and the data manipulation and operation on the application server side.
个人理解:富Internet应用程序(RIA)是一种Web应用程序,其设计目的是提供通常与桌面应用程序相关联的特性和功能。ria通常通过在客户端定位用户界面和相关的活动和能力,以及在应用程序服务器端定位数据操作和操作,在Internet/网络上划分处理。
我们的项目中:我们的项目可以开发成富互联网项目,从而让用户在使用的过程中感觉到更加方便。
33.Acceptance test
官方解释:An acceptance test confirms that an story is complete by matching a user action scenario with a desired outcome.
个人理解:验收测试通过将用户动作场景与期望的结果匹配来确认故事已经完成。
我们的项目中:在设计与开发过程都结束之后,我们将对我们的系统进行验收测试,确保它能正常的发布。
个人理解:在计算机编程中,原语(念作PRIH-muh-teev)是一种基本的界面或代码段,可以用来构建更复杂的代码。而原语不可被中断。
我们的项目中:例如加入购物车,加入收藏的功能,一旦执行,除非强制退出系统,否则一定会执行完。
35.pseudo-state
官方解释:Pseudo-anonymity is the appearance – but not the reality–of anonymity online. Most often, pseudo-anonymity enables anonymous posting and commenting.
个人理解:伪匿名是网络匿名的表象,而不是现实。通常,伪匿名可以实现匿名发布和评论。
我们的项目中:在我们的项目中,为了防止买家和卖家发生现实中的冲突,我们将完善伪匿名的功能,防止因为网络上的冲突而发展成线下威胁等。
36.stateful-inspection
官方解释:Stateful inspection, also known as dynamic packet filtering, is a firewall technology that monitors the state of active connections and uses this information to determine which network packets to allow through the firewall.
个人理解:状态检查,也称为动态信息包过滤,是一种防火墙技术,它监视活动连接的状态,并使用这些信息来确定哪些网络信息包可以通过防火墙。
我们的项目中:我们的系统不仅可以购买实体商品,也可以购买虚拟物品,因此需要检查哪些虚拟信息是垃圾信息,卖家一旦发出来则需要将其列入黑名单。
37.peer review
官方解释:Peer review is a process used for checking the work performed by one’s equals (peers) to ensure it meets specific criteria. Peer review is used in working groups for many professional occupations because it is thought that peers can identify each other’s errors quickly and easily, speeding up the time that it takes for mistakes to be identified and corrected. In software development, peer review is sometimes used in code development where a team of coders will have a meeting and go through code line by line (even read it aloud possibly) to look for errors. Generally, the goal of all peer review processes is to verify whether the work satisfies the specifications for review, identify any deviations from the standards, and provide suggestions for improvements.
个人理解:同行评审是一个过程,用来检查由一个人(同行)完成的工作,以确保它符合特定的标准。同行评审在许多专业职业的工作组中被使用,因为人们认为同行可以快速、容易地发现彼此的错误,加快发现和纠正错误所需的时间。在软件开发中,同行评审有时被用在代码开发中,一组程序员开一个会议,逐行检查代码(甚至可能大声朗读),以寻找错误。一般来说,所有同行评审过程的目标是验证工作是否满足评审的规范,确定与标准的任何偏差,并提供改进建议。
我们的项目中:我们在设计与开发的过程中,需要合作,就需要同行评审,除了我们团队内部的同行评审,我们也需要请教我们的前辈等,其他类似项目的开发者,让他们使用我们的产品并为我们提出建议。
38.base station
官方解释:A base station is a fixed point of communication for customer cellular phones on a carrier network.
个人理解:基站是用户移动电话在载波网络上的固定通信点。
我们的项目中:这是网络编程的部分,与我们项目关系不大。
39.customer base
官方解释:Customer base is the group of clients to whom a business markets and sells their goods or services.
个人理解:客户基础是指企业向其销售商品或服务并向其销售的一组客户。
我们的项目中:我们的系统上市之初肯定是没有客户基础的,因此我们需要自己去联系网上的网民,向他们推销我们的系统。
40.exclusive requirement
官方解释:exclusive requirement,Enforcing requirements that must be implemented is the foundation of a system.
个人理解:排他要求,强制必须要实现的需求,是一个系统的基础。
我们的项目中:我们项目的排他要求就是要实现购买的功能,作为一个电子商城项目,购买商品是最基础不过的。
41.carrier network
官方解释:A carrier network is the proprietary network infrastructure belonging to a telecommunications service provider.
个人理解:载波网络是属于电信服务提供商的专有网络基础设施。
我们的项目中:这是网络编程的部分,与我们项目关系不大。
42.baseline
官方解释:In project management, a baseline is a known state by which something is measured or compared.
个人理解:在项目管理中,基线是一种已知的状态,通过它可以度量或比较某些东西。
我们的项目中:例如上面所说,基线是一个度量标准,而我们的基线则是一个购买商品的平台,实现这一需求则可以认为是达到了我们的基线。
43.multiple classification
官方解释:A semantic variation of generalization in which an object may belong directly to more than one class. See: dynamic classification.
个人理解:泛化的一种语义变化,其中一个对象可以直接属于多个类。看到:动态分类。
我们的项目中:
44.collaboration
官方解释:Collaboration skills enable you to successfully work toward a common goal with others. They include communicating clearly, actively listening to others, taking responsibility for mistakes, and respecting the diversity of your colleagues.
个人理解:协作能力使你能够成功地与他人一起朝着一个共同的目标工作。它们包括清晰的沟通,积极地倾听他人,为错误负责,尊重同事的多样性。
我们的项目中:在我们的系统中,需要设计,开发,测试。而设计开发的阶段,又需要细分,因此我们项目的进行过程需要很好的团队协作,如果出现问题应该积极沟通。
45.elaboration-theory
官方解释:The elaboration-theory approach is primarily concerned with “abstracts” of general ideas at the specific, meaningful, and applied level, by which a few of the most basic and representative ideas are proposed. Moreover, the summary can only choose one of the three contents of concept, procedure and principle, that is, the summary is made according to the principle of single type. This grasps the fundamental key of the whole subject and the rest of the subject serves as a further deepening and refinement of the abstract.
个人理解:精细加工论主要渉及到在具体的、有意义的、应用的水平上对一般观念作出“摘要”,提出少许最基本的、最具有代表性的观念。并且,该摘要只能在概念、程序和原理三种内容中挑选其一种内容,即,根据单一类型原则作出摘要。由此把握整门学科的基调,学科的其余部分作为对摘要的进一步深化和细化。
我们的项目中:我们的项目应该逐步进行开发,逐渐深入进行。在每一步设计开发的过程中,都将我们进行的操作记录下来,做出摘要,方便我们回顾设计开发的过程。
46.object flow state
官方解释:Adds an object that shows flow to and from an action state to your Activity diagram.
个人理解:向您的活动关系图添加一个对象,该对象显示从一个动作状态到另一个动作状态的流程。
我们的项目中:如果在设计的过程中需要添加新的功能,则需要向我们的活动图中添加新的对象,来丰富我们的对象流图。
47.enumeration
官方解释: the act or process of making or stating a list of things one after another or the act or process of counting something or a count made of something.
个人理解:将事物一一列成表的行为或过程,或计算某物的行为或过程或由某物构成的计数。
我们的项目中:
48.focus of control
官方解释:Focus of control (FOC) is used in sequence diagrams to show the period of time during which an object performs an action. FOC is rendered as a thin, rectangular object that sits on top of object lifelines. The top of the FOC rectangle coincides with the receipt of a message. The bottom of the rectangle coincides with the completion of an action and can be marked with a return message.
个人理解:控制焦点是顺序图中表示时间段的符号,在这个时间段内对象将执行相应的操作。
我们的项目中:顺序执行的操作中(例如购买商品),我们将执行的行为通过控制焦点的方式,按照顺序绘制出来。
49.metaclass
官方解释:A Class whose instances are Classes. Metaclasses are typically used to construct metamodels.
个人理解:其实例为类的类。元类通常用于构建元模型。
我们的项目中:例如收货人,发货人这些信息,主要是用于构建订单而存在的,单独存在没有意义。
50.parameter
官方解释:The specification of a variable that can be changed, passed,or returned.
个人理解:一种可以改变、传递或返回的变量的说明。
我们的项目中:我们的系统包含大量方法,而每一个方法需要传递参数进去。
51.dynamic classification
官方解释:A semantic variation of generalization in which an objectmay change type or role. Contrast: siatic classification.
个人理解:泛化的一种语义上的变化,其中一个对象可以改变类型或角色。对比:静态分类。
我们的项目中:比如买家可以在会员和非会员中改变,我们为此提供不同的服务。
52.deployment diagram
官方解释:Deployment diagram is a structure diagram which shows architecture of the system as deployment (distribution) of software artifacts to deployment targets.
个人理解:部署图是一个结构图,它将系统的体系结构显示为部署目标的软件构件的部署(分布)。
我们的项目中:将我们项目的服务器,数据库等的部署绘制出来,方便我们后期对项目的开发部署进行决策,也方便后续的维护。
53.Manifest
官方解释:A relationship that indicates that the artifact source embodies the target model element. Stereotypes can be added to Enterprise Architect to classify the type of manifestation of the model element.
个人理解:指示工件源包含目标模型元素的关系。可以向Enterprise Architect添加构造型,以对模型元素的表现类型进行分类。
我们的项目中:绘制UML图的过程中,更方便的向我们的图中添加组件。
54.Tagged Value
官方解释:The explicit definition of a property as a name-value pair.In a Tagged Value, the name is referred to as the tag. Certain tags are predefined in the UML; others can be user defined.Tagged Values are one of three extensibility mechanisms in UML.
个人理解:将属性显式定义为名称-值对。在标记值中,名称称为标记。某些标签在UML中是预先定义的;其他可以由用户定义。标记值是UML中的三种可扩展性机制之一。
我们的项目中:绘制UML图时,可以自行定义标记值,类似于标签的形式,方便我们理解里面的元素。
55.History state
官方解释:There are two types of History pseudo-states defined in UML: shallow History and deep History.A shallow History sub-state is used to represent the most recently active sub-state of a composite State.A deep History sub-state, in contrast, reflects the most recent active configuration of the composite State.
个人理解:在UML中定义了两种历史伪状态:浅历史和深历史。浅历史子状态用于表示复合状态的最近活动的子状态。相反,深历史子状态反映了复合状态的最新动态配置
我们的项目中:绘制UML图中,我们通过绘制历史状态来了解在执行每一个功能前要执行的前置功能。
56.containment hierarchy
官方解释:A namespace hierarchy consisting of model elements.andthe containment relationships that exist between them.
个人理解:由模型元素组成的命名空间层次结构。以及它们之间存在的牵制关系。
我们的项目中:将我们系统的层次结构绘制成UML图,方便我们理解组件与组件,功能与功能之间的包含与被包含关系。
57.framework
官方解释:A micro-architecture that provides an extensible template for applications within a specific domain.
个人理解:为特定领域内的应用程序提供可扩展模板的微架构。
我们的项目中:可以利用支付宝或者微信的支付模块,来为我们的系统提供更安全的支付功能。
2.个人心得
这学期我们的软件需求分析与建模课程,老师主要是让我们自行阅读书籍,包括课本以及老师提供的电子教材,了解与进行需求分析。然后课下老师录制了软件建模的视频供我们观看,让我们在课下也能学习如何进行软件建模。
在读书的过程中,应老师的要求,同时也是为了自己能够更好的理解书本上的内容,我们将书中的一些名词拿到网上进行查找,以便于我们更深入的了解这些名词的意思。
首先本门课程是需求分析与建模,那么我们自然要去了解有关于需求分析的部分。我第一个去了解到的词叫做Requirements baseline——需求基线,它由单独的两个词需求和基线组成,代表着把已有的需求确定下来,不在日后对项目的更改中更改。需求也可细分为很多需求,例如Functional requirement(功能需求),性能需求等。功能需求代表对系统及其组件预期功能的声明,而性能需求表示运行该程序需要的性能。
而我们确认了需求之后,就要进行软件的建模,我们通常通过绘制UML图((Unified Modeling Language,统一建模语言,是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言),来描述我们的需求。而UML图也分为很多很多种,有描述整体需求的,有描述软件功能的,有描述软件开发结构的,甚至还有描述业务流程的。我们首先学会通过绘制业务流程图,通过实体的行为模式,状态等,绘制一个个业务进行的过程。紧接着是状态转换图,通过绘制该图描述软件从一个状态转换到另一个状态的过程,换种说法就是从一个业务变为另一个业务的过程……
当这些描述软件行为的图绘制完之后,我们就需要将上述提到的图中的实体描述出来,绘制成类图,接口图等。然后需要将这些图整合起来绘制成数据流图。数据流图主要用来描述数据的流向,从数据的角度来描述一个系统。绘制到这里,我们其实可以进行开发了,但是实际上除了软件内部的结构需要考虑,软件外部结构也需要考虑,例如数据库使用什么,服务器搭建在哪,网络协议等等。
我们课程上到一半,老师告诉我们,我们另一门课软件体系结构的课本是本好书,因此我研究了一番,发现书中有很多地方(如场景,类图)是与我们课程相符合的,而另一些部分,诸如网络通信、服务器等性能需求也是完善了我们本门课程一些不够详细的地方。后来我们的UML图绘制也利用到了体系结构课堂学到的东西。
从这两门课程中我学会了软件架构和需求分析,让我对我自己身处这个专业有了更深的认识,之前一直以为学计算机就是“程序员”,就是“码农”,每天要不停的写代码,而到现在,我明白了我们专业更重要的,是做好软件体系结构的分析,做好软件需求的获取,为整个软件的开发打下基础。
3.发展建议
我们组的项目是电子商城项目。我们的需求基线是做出一个能让用户进行购买的系统。此外我们项目主要特色是扶持新品牌,小品牌,以便这些新小品牌更好的发展,同时因为是新小品牌,自然价格会更加便宜,就能够吸引到低收入的用户过来进行消费。经过一个学期的学习,我们项目需求分析与建模已经趋于完善,如今就是需要对UML图进行一些小修小改,来完善之前学习阶段的不足。
之后进入到开发阶段,我们要根据用户的使用体验进行开发,根据我们绘制的体系结构图等将服务器,数据库部署完毕,然后使用成熟的技术将系统开发出来。测试则通过决策表将用户可能的行为列出来,对其一一进行测试。
最后是系统上线之后,我们要根据市场情况随时更换运营策略,直到我们的系统的发展稳定下来。