资讯详情

A002-185-2521-李子泓

个人需求分析、建模阅读经验和对您项目发展的建议


一、

Function requirement

1)词语解说 {#词语解释 .list-paragraph}

A Functional Requirement (FR) is a description of the service that the software must offer. It describes a software system or its component. A function is nothing but inputs to the software system, its behavior, and outputs. It can be a calculation, data manipulation, business process, user interaction, or any other specific functionality which defines what function a system is likely to perform. Functional Requirements are also called Functional Specification.

功能需求(FR)它描述了软件必须提供的服务。它描述了软件系统或其组件。函数只是输入软件系统、其行为和输出。它可以是计算、数据操作、业务流程、用户交互或其他定义系统可能执行的特定功能。功能需求也被称为标准化。

查找网址


[https://www.guru99.com/functional-requirement-specification-example.html]{.ul} [https://www.techopedia.com/definition/19508/functional-requirement]{.ul} [https://www.tutorialspoint.com/business_analysis/business_analysis_functional_requirements_document.htm]{.ul}

Function requirement文档应该包含什么?

  • Details of operations conducted in every screen 在每个屏幕上执行操作的详细信息

  • Data handling logic should be entered into the system 数据处理逻辑应该输入到系统中

  • It should have descriptions of system reports or other outputs 它应该有系统报告或其他输出说明

  • Complete information about the workflows performed by the system 系统执行工作流的完整信息

  • It should clearly define who will be allowed to create/modify/delete the data in the system 它应该清楚地定义谁将被允许在系统中创建/修改/删除数据

  • How the system will fulfill applicable regulatory and compliance needs should be captured in the functional document 该系统应在功能文件中反映如何满足适用法律法规的遵从性要求

Functional Requirement(功能需求)的好处

  • Helps you to check whether the application is providing all the functionalities that were mentioned in the functional requirement of that application 帮助您检查应用程序是否提供了应用程序功能需求中提到的所有功能

  • A functional requirement document helps you to define the functionality of a system or one of its subsystems. 功能需求文档可以帮助您定义系统或其子系统之一

  • Functional requirements along with requirement analysis help identify missing requirements. They help clearly define the expected system service and behavior. 功能需求和需求分析有助于识别缺失的需求,它们有助于明确定义预期的系统服务和行为

  • Errors caught in the Functional requirement gathering stage are the cheapest to fix. 在函数式需求收集阶段捕获的错误是最便宜的修复方法

  • Support user goals, tasks, or activities 支持用户目标、任务或活动

  1. Functional Requirement的类型

    Here, are the most common functional requirement types

    以下是最常见的功能需求类型

  • Transaction Handling 交易处理

  • Business Rules 业务规则

  • Certification Requirements 认证规定

  • Reporting Requirements 申报规定

  • Administrative functions 行政职能

  • Authorization levels 授权级别

  • Audit Tracking 审计跟踪

  • External Interfaces 外部接口

  • Historical Data management 历史数据管理

  • Legal and Regulatory Requirements 法律法规要求

创建Functional Requirement(功能需求)错误

  • Putting in unjustified extra information that may confuse developers 添加不合理的额外信息可能会让开发人员感到困惑

  • Not putting sufficient detail in the requirement document. 未在需求文档中提供足够的详细信息

  • You add rules or examples, scoping statements or objctives anything except the requirement itself. 您可以添加规则或示例、范围语句或目标,但需求本身除外

  • Left out a piece of important information that is an absolute must to fully, accurately, and definitively state the requirement. 遗漏了一个重要的信息,这是绝对必须完全、准确和明确地陈述需求

  • Some professionals start to defend the requirements they have documented when the requirement is modified, instead of finding the correct truth. 当需求被修改时,一些专业人员开始维护他们所记录的需求,而不是寻找正确的真相

  • Requirements which are not mapped to an objective or principle. 没有映射到目标或原则的需求

理解与应用

我们的软件产品或者项目,其需求都有三个维度,业务需求、用户需求和功能需求,除此之外,每个系统还有各种非功能需求。

功能性需求(Functional requirement)的含义从字面上就可以很好地理解,指的是软件本身需要实现的具体功能, 比如"正常用户使用正确的用户名和密码可以成功登录"、"非注册用户无法登录"等,这都是属于典型的显式功能性需求描述。

非功能性需求主要涉及安全性、性能以及兼 容性三大方面。 在上面所有的测试用例设计中,我们完全没有考虑对非功能性需求的测试,但这些往往是决定软件质量的关键因素。

用户需求:在决定购买之前,用户想方便的比较一下几个同系列产品,以此在选择的时候做出更明智的决定。

功能需求:我们可以让用户把购买的商品,都放入"比较栏",然后用户再点击"去对比",就会在一个界面同时对比几个产品。

用户需求是前提条件,功能需求是落下来的产品部分,它是可以交付的。

值得注意的一点是业务需求,有时候用户需求与业务需求是有矛盾 ,那么个功能需求怎么决定呢?

举个例子:

某个商品界面,我发现我的用户不是为了买最便宜的货,我决定产品不把最便宜的商品都展示出来,因为去1、不希望让用户买最便宜货;2、一旦有太便宜的商品,用户就会形成心理落差,觉得贵的商品不值钱(其实贵的商品的性价比比便宜的商品更高);3、我想提高单笔成交订单额度。

所以我就会只展示相对贵一点的商品。让用户减少选择,就有可能购买价值更贵的商品(业务需求)

如果把最便宜的商品也展示出来,这对于用户需求来说是有价值的;(用户需求)

但是还是坚持了"贵一点"的策略,这就是业务需求主导了功能需求;

对于我们小组的实验室设备管理系统来说,有许多功能性的需求,例如设备报修的功能,查看所有设备的功能等等。

Data flow diagram

词语解说:

Data flow diagram or data flow diagram, abbreviated as DFD. Data flow diagram (DFD) is a graphic tool to describe the data flow in a system. It marks the logical input and output of a system, as well as the processing needed to convert the logical input to the logical output.

数据流图或数据流程图(Data Flow Diagram),缩写为DFD。数据流图DFD是描述系统中数据流程的一种图形工具,它标志了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。

查找网址


[https://www.skylinetechnologies.com/Blog/Skyline-Blog/May_2019/how-to-use-data-flow-diagrams-bi-requirements]{.ul} [https://www.visual-paradigm.com/guide/data-flow-diagram/what-is-data-flow-diagram/]{.ul} [https://www.differencebetween.com/difference-between-flowchart-and-vs-data-flow-diagram-dfd/]{.ul}

  1. 什么是data flow diagram

    The technical definition of this technique from the International Institute of Business Analysis (IIBA®) is: “Data flow diagrams show where data comes from, which activities process the data, and if the output results are stored or utilized by another activity or external entity.” – BABOK® v3.0

    These types of diagrams simply depict the sources of data, what happens to the data, and where it goes to be used.

  2. Data flow diagram能描述什么

  • Source – where the data comes from

  • Activities – what happens to the data

  • Inputs/Outputs – what goes in, and what comes out

  • Transformations – any changes that take place to the data

  • Temporary or permanent repository locations – where the data lives

  • 数据来源

  • 活动------数据发生了什么变化

  • 输入/输出-什么进去,什么出来

  • 转换------对数据发生的任何更改

  • 临时或永久存储库位置------数据所在的位置

为什么要使用data flow diagram

  • Logical information flow of the system 系统的逻辑信息流

  • Determination of physical system construction requirements 物理系统结构要求的确定

  • Simplicity of notation 简单的符号

  • Establishment of manual and automated systems requirements 建立手动和自动系统要求

  • 系统的逻辑信息流

  • 物理系统结构要求的确定

  • 简单的符号

  • 建立手动和自动系统要求

  1. Data flow diagram的符号

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dD6y3IEE-1609755291765)(media/image1.png)]{width=“3.0388888888888888in” height=“4.233333333333333in”}

  2. 数据流图的使用

    数据流图也称为气泡图。DFD是系统设计自上而下方法中使用的一种设计工具。这个上下文级别的DFD接下来是"爆炸式"的,以产生一个1级的DFD,显示正在建模的系统的一些细节。Level 1 DFD显示了系统如何分成子系统(过程),每个系统处理一个或多个来自或来自外部代理的数据流,它们一起提供系统的所有功能整个。它还识别必须存在的内部数据存储库,以便系统执行其工作,并显示系统各个部分之间的数据流。

    数据流图是结构化系统分析和设计方法SSADM的三个基本视角之一。项目发起人和最终用户需要在系统演进的各个阶段得到简要介绍和咨询。通过数据流图,用户可以看到系统将如何运行,系统将完成什么以及如何实现系统。可以绘制旧系统的数据流图,并与新系统的数据流图进行比较,以便比较以实现更高效的系统。数据流图可以用来为最终用户提供一个物理的概念,即它们输入的数据最终对整个系统的结构从订单到发送到报告有影响。如何开发系统可以通过数据流图模型来确定。

    在开发一组的过程中整平数据流图分析员/设计者被迫处理系统可以如何被分解为分量的子系统,以及标识的交易数据中的数据模型。

  3. 分层DFD与原则

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9QYQeyc1-1609755291766)(media/image2.png)]{width=“5.7659722222222225in” height=“3.6930555555555555in”}

  • 根据层级数据流图分为顶层数据流图、中层数据流图和底层数据流图。除顶层数据流图外,其他数据流图从零开始编号。

  • 顶层数据流图只含有一个加工表示整个系统;输出数据流和输入数据流为系统的输入数据和输出数据,表明系统的范围,以及与外部环境的数据交换关系。

  • 中层数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图;中间层次的多少,一般视系统的复杂程度而定。

  • 底层数据流图是指其加工不能再分解的数据流图,其加工称为"原子加工"。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IvJU6od8-1609755291768)(media/image3.png)]{width=“5.188888888888889in” height=“3.1284722222222223in”}

在单张数据流图时,必须注意以下原则:

  • 一个加工的输出数据流不应与输入数据流同名,即使它们的组成成分相同。

  • 保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。

  • 每个加工必须既有输入数据流,又有输出数据流。

  • 所有的数据流必须以一个外部实体开始,并以一个外部实体结束。

  • 外部实体之间不应该存在数据流

  1. 理解与应用

    对于dataflow dirgram(数据流图),我的理解是通过数据流图,软件设计师可以自顶而下的分析系统的信息流程、在图上确定需要计算机处理的部分、向数据库设计过渡、根据数据流向确定存取方式、能够确定一个处理过程。而在测试过程中,数据流图可以方便、直接的帮助程序员查找到错误的发生位置。

    需求分析阶段,为了获得一个对新系统的框架认识、概念性认识,需要对新系统建模。而用图形表示需求,就是需求建模,获得分析模型。需求分析方法中的结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析。

    画数据流图时一要确定系统的输入输出,由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解"系统从外界接受什么数据"、"系统向外界送出什么数据"等信息,然后,根据用户的答复画出数据流图的外围。

    二要由外向里画系统的顶层数据流图,首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。

    三要自顶向下逐层分解,绘出分层数据流图

    对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。

    例如我们小组的实验室设备管理系统项目,其中涉及到许多数据的流动,就可以通过画数据流图的办法进行分析,像实验室设备的管理,对于实验室一个设备的信息,在报修时需要进行传输数据,去向管理员子系统的报修管理表中等等。

Acceptance Test

  1. 词语解说

    Acceptance testing, a testing technique performed to determine whether or not the software system has met the requirement specifications. The main purpose of this test is to evaluate the system’s compliance with the business requirements and verify if it is has met the required criteria for delivery to end users.

    验收测试,一种测试技术,用于确定软件系统是否满足需求规范。这项测试的主要目的是评估系统是否符合业务要求,并核实系统是否符合向最终用户交付的必要标准。

  2. 查找网址


[https://www.softwaretestinghelp.com/what-is-acceptance-testing/]{.ul} [https://www.tutorialspoint.com/software_testing_dictionary/acceptance_testing.htm#:~:text=What%20is%20Acceptance%20Testing%3F%20Acceptance%20testing%2C%20a%20testing,the%20required%20criteria%20for%20delivery%20to%20end%20users.]{.ul} [https://searchsoftwarequality.techtarget.com/definition/acceptance-test]{.ul}

验收测试的多种形式

  • User acceptance Testing用户验收测试

  • Business acceptance Testing业务验收测试

  • Alpha Testing测试

  • Beta Testing测试版

  1. 验收准则

    Acceptance criteria are defined on the basis of the following attributes

    验收标准是根据以下属性定义的:

    Functional Correctness and Completeness函数的正确性和完整性

    Data Integrity数据完整性

    Data Conversion数据转换

    Usability可用性

    Performance工作表现

    Timeliness及时性

    Confidentiality and Availability机密性和可用性

    Installability and Upgradability可安装性和可升级性

    Scalability可扩展性

    Documentation文件

  2. ATDD和TDD的区别是什么?

“ATDD”,全称"Acceptance Test Driven Development “,中文称"验收测试驱动开发”。ATDD和TDD的区别是什么呢,查了一些资料,我的理解如下:

先介绍一下TDD,引用Wikipedia上的关于TDD的介绍:

Test-driven development (TDD) is a [software development process]{.ul} that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated [test case]{.ul} that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally [refactors]{.ul} the new code to acceptable standards.

TDD只涉及到Developer(开发者),只能算个人工作方式的改变。而现代软件开发,往往都是"产品经理(或业务)、测试人员(或QA)、开发人员"三者合作的成果,如果开发人员对业务需求理解的不正确,那么写出的测试用例也是错的,这个问题是TDD解决不了的。中文Wikipedia上对于TDD缺点的描述,也把这一问题列在第一位:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d0r1XkYb-1609755291770)(media/image4.png)]{width=“5.995138888888889in” height=“2.1041666666666665in”}

ATDD又如何解决这个问题呢?《Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing》这本书的作者Elisabeth Hendrickson给出了下面的解释:

Acceptance Test Driven Development (ATDD) is a practice in which the whole team collaboratively discusses acceptance criteria, with examples, and then distills them into a set of concrete acceptance tests before development begins. It’s the best way I know to ensure that we all have the same shared understanding of what it is we’re actually building. It’s also the best way I know to ensure we have a shared definition of Done.

整个团队(包括上面提到的三方成员)在开发工作开始之前,一起讨论、制定每个任务(或者用户故事)的验收标准,并提取出一组验收测试用例。这么做好处在于:

大家一起讨论验收标准和测试用例保证了对业务需求一致的理解。(这一点实际是所有开发环节中都需要关注的问题)

通过形成测试用例,使标准成为可执行的内容,而不是虚的指标。

国内公司一般项目开发进度很紧,大部分公司开发和测试工作由不同的人来负责,完全照搬TDD流程来开发成本过高。我更建议开发人员使用自动化测试技术编写验收测试用例,只要验收测试用例能够跑通了,就可以提交测试。

  1. 理解与应用

    验收测试(Acceptance Test):在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。

    验收测试的目的:确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

    验收测试的参与者:用户,还可能有软测工程师等。

Change control board

词语解说

The phrase change review board (also known by the acronym CCB) refers to any group of individuals within a project team or project group who are responsible for making the ultimate decision as to when and if any particular changes are to be made in regards to work products or schedule events.

短语变更审查委员会(也称为简称 CCB)指的是项目团队或项目组中的任何个人小组,他们负责就何时以及是否对工作产品或安排事件作出任何特定变更作出最终决定。

查找网址


[https://project-management-knowledge.com/definitions/c/change-control-board-ccb/]{.ul} [https://study.com/academy/lesson/change-control-board-process-best-practices.html]{.ul} [https://www.jamasoftware.com/blog/the-change-control-board/]{.ul}

  1. Change Control Board (CCB)变更控制委员会

    The process in which the Change Control Board determines when and if a series of changes should be made is two fold. First, the Change Control Board needs to review and study the impact of the proposed changes on the items in question, and then, after making that evaluation, the Change Control Board can then either approve the changes, reject the changes, or, in some cases, request more information or postpone the decision pending some other occurrences to take place that would factor into their ultimate choice. Significant changes that will in fact affect baselines are almost always put through the CCB for approval.

    变更控制委员会决定何时以及是否应该进行一系列变更的过程有两个方面。首先,变更控制委员会需要审查和研究拟议的变更对有关项目的影响,然后,在进行评估之后,变更控制委员会可以批准变更、拒绝变更,或者在某些情况下要求提供更多信息或推迟作出决定,直到发生一些将成为其最终选择因素的其他事件。实际上会影响基线的重大更改几乎总是通过建设银行提交审批。

    这个术语在 PMBOK 的第三版和第四版中定义。

  2. 配置管理(Configuration Management)

    通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。

配置管理过程是对处于不断演化、完善过程中的软件产品的管理过程。一致性、可追溯性,使产品极大程度地与用户需求相吻合。它通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。

软件配置管理的最终目标是管理软件产品。由于软件产品是在用户不断变化的需求驱动下不断变化,为了保证对产品有效地进行控制和追踪,配置管理过程不能仅仅对静态的、成形的产品进行管理,而必须对动态的、成长的产品进行管理。由此可见,配置管理同软件开发过程紧密相关。配置管理必须紧扣软件开发过程的各个环节:管理用户所提出的需求,监控其实施,确保用户需求最终落实到产品的各个版本中去,并在产品发行和用户支持等方面提供帮助,响应用户新的需求,推动新的开发周期。通过配置管理过程的控制,用户对软件产品的需求如同普通产品的订单一样,遵循一个严格的流程,经过一条受控的生产流水线,最后形成产品,发售给相应用户。从另一个角度看,在产品开发的不同阶段通常有不同的任务,由不同的角色担当,各个角色职责明确,泾渭分明,但同时又前后衔接,相互协调。

好的配置管理过程有助于规范各个角色的行为,同时又为角色之间的任务传递提供无缝的接合,使整个开发团队像是一个交响乐队一样和谐而又错杂地行进。正因为配置管理过程直接连接产品开发过程、开发人员和最终产品,这些都是项目主管人员所关注的重点,因此配置管理系统在软件项目管理中也起着重要作用。配置管理过程演化出的控制、报告功能可帮助项目经理更好地了解项目的进度、开发人员的负荷、工作效率和产品质量状况、交付日期等信息。同时配置管理过程所规范的工作流程和明确的分工有利于管理者应付开发人员流动的困境,使新的成员可以快速实现任务交接,尽量减少因人员流动而造成的损失。

  1. 实施

    实施配置管理系统,一般的步骤和需要考虑的问题如下:

    规划、调整网络开发环境

    一个规划良好的开发环境,是实施配置管理系统的前提。在此阶段,要对配置管理系统做出规划,主要考虑以下问题:

    网络的带宽、拓扑结构

    服务器的选择、命名规范

    存储区的定位

    开发人员及组的命名规约等

    设计配置管理库

    根据项目开发的要求,设计开发资源的存储模式,良好的存储模式有利于减轻管理上的负担,增强配置管理库的访问性能,同时便于控制访问权限,保护软件资产。

    定义配置管理系统的角色

    在此阶段,需要确定与配置管理相关的所有角色,包括他所有角色相应的活动。在开发过程中,一个开发人员可能兼任多种角色,但一项任务在同一时刻只能由一个角色来执行。

    一般配置管理中的角色主要包括:

    项目经理:项目经理在配置管理方面的职责是依靠配置管理员、系统管理员和系统体系结构设计人员的帮助,制定项目的组织结构和配置管理策略。这些工作包括:定制开发子系统,定制访问控制,制定常用策略,制定集成里程碑,以及进行系统集成。

    配置管理员:配置管理员的职责是根据项目经理制定的开发组织结构和策略,实施、维护配置管理的环境。其主要职责如下:创建配置管理库,对存储库进行日常备份和恢复,维护配置管理环境,及管理配置管理相关的用户。

    软件开发人员:软件开发人员依据项目的开发和配置管理策略,创建、修改和测试开发工件。

    集成人员:对软件进行归并,形成相应的基线或发布版本。

    QA人员:需要对软件配置管理有较深的认识,其主要工作是跟踪当前项目的状态,测试,报告错误,并验证其修复结果。

    制定配置管理流程

    这是配置管理实施的一个重要阶段,其主要目的是根据项目开发的需要,制定相应的配置管理流程,以更好地支持开发,主要活动包括:

    定制并行开发策略:合理的并行开发策略应该具有以下特点:协调项目的复杂性和需求,统一创建分支类型和元数据,为开发过程中的变更集成制定有效的规范,适时反映开发过程中方法和需求的变化。

    发布版本管理:软件开发过程中的一个关键活动是提取工件的相关版本,以形成软件系统的阶段版本或发布版本,我们一般将其称为稳定基线。一个稳定基线代表新开发活动的开始,而一系列定制良好的活动之后又会产生一个新的稳定基线。有效地利用此项功能,在项目开发过程中可以自始至终管理、跟踪工件版本间的关联。

    一般来讲,实施配置管理系统,相关人员需要接受以下培训:

    管理员培训:针对配置管理员,主要学习配置管理工具管理相关内容。

    开发人员培训:针对开发人员,主要学习配置管理工具与开发相关的常用操作。

    管理流程培训:针对全体人员,目的是了解配置管理策略和流程,以及如何与开发管理、项目管理相结合。

  2. 理解与应用

    CMDB --(Configuration Management Database,配置管理数据库), CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。注意:Saltstack和puppet是配置管理,不是配置管理数据库,注重配置过程。

    在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系。

    70%~80%的IT相关问题与环境的变更有着直接的关系。实施变更管理的难点和重点并不是工具,而是流程。即通过一个自动化的、可重复的流程管理变更,使得当变更发生的时候,有一个标准化的流程去执行,能够预测到这个变更对整个系统管理产生的影响,并对这些影响进行评估和控制。而变更管理流程自动化的实现关键就是CMDB。

Performance requirement

  1. 词语解说

    A requirement describing a performance characteristic (timing, speed, volume, capacity, throughput…).Is regarded in this glossary as a sub-category of quality requirements,

    but can also be considered as a non-functional requirements category

    描述性能特征(时间、速度、体积、容量、吞吐量…)的要求在本术语表中被视为质量要求的子类别,但也可以视为非功能需求类别

  2. 查找链接


[https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/performance/doc_perf_reqs.html]{.ul} [https://www.cdc.gov/pef/about/performance-requirements.html]{.ul} [https://checkpointech.com/what-performance-requirements/]{.ul}

  1. Performance requirement的描述

    In identifying and quantifying performance requirements, it is important to identify the reasoning behind a particular requirement. This is part of the general capacity planning process. Users might be basing their statements of requirements on assumptions about the logic of the program that do not match the programmer’s assumptions.

    在识别和量化性能需求时,确定特定需求背后的推理是很重要的。这是总体容量规划过程的一部分。用户的需求陈述可能是基于程序逻辑的假设,而这些假设与程序员的假设不符。

    At a minimum, a set of performance requirements should document the following:

    The maximum satisfactory response time to be experienced most of the time for each distinct type of user-computer interaction, along with a definition of most of the time. Response time is measured from the time that the user performs the action that says “Go” until the user receives enough feedback from the computer to continue the task. It is the user’s subjective wait time. It is not from entry to a subroutine until the first write statement.

    If the user denies interest in response time and indicates that only the result is of interest, you can ask whether “ten times your current estimate of stand-alone execution time” would be acceptable. If the answer is “yes,” you can proceed to discuss throughput. Otherwise, you can continue the discussion of response time with the user’s full attention.

    一套性能要求至少应记录以下内容:

    对于每种不同类型的用户-计算机交互,在大多数时间内所经历的最大令人满意的响应时间,以及大多数时间的定义。响应时间是从用户执行"执行"操作的时间开始计算的,直到用户从计算机收到足够的反馈以继续执行任务。它是用户的主观等待时间。在第一个write语句之前,它不是从入口到子例程的。

    如果用户否认对响应时间感兴趣,并指出只有结果感兴趣,那么您可以询问"十倍于当前估计的独立执行时间"是否可以接受。如果答案是"是",您可以继续讨论吞吐量。否则,你可以在用户的充分关注下继续讨论。

    The response time that is minimally acceptable the rest of the time. A longer response time can cause users to think the system is down. You also need to specify rest of the time; for example, the peak minute of a day, 1 percent of interactions. Response time degradations can be more costly or painful at a particular time of the day.

    The typical throughput required and the times it will be taking place. This is not a casual consideration. For example, the requirement for one program might be that it runs twice a day: at 10:00 a.m. and 3:15 p.m. If this is a CPU-limited program that runs for 15 minutes and is planned to run on a multiuser system, some negotiation is in order.

    The size and timing of maximum-throughput periods.

    The mix of requests expected and how the mix varies with time.

    The number of users per machine and total number of users, if this is a multiuser application. This description should include the times these users log on and off, as well as their assumed rates of keystrokes, completed requests, and think times. You may want to investigate whether think times vary systematically with the preceding and following request.

    Any assumptions that the user is making about the machines the workload will run on. If the user has a specific existing machine in mind, make sure you know that early on. Similarly, if the user is assuming a particular type, size, cost, location, interconnection, or any other variable that will constrain your ability to satisfy the preceding requirements, that assumption also becomes part of the requirements. Satisfaction will probably not be assessed on the system where the program is developed, tested, or first installed.

    其余时间内可接受的最小响应时间。较长的响应时间会导致用户认为系统已关闭。您还需要指定其余时间;例如,一天中的高峰分钟,交互的1%。在一天中的某个特定时间,响应时间的降低可能更昂贵或更痛苦。

    所需的典型吞吐量及其发生的时间。这不是一个偶然的考虑。例如,对一个程序的要求可能是一天运行两次:上午10:00和下午3:15。如果这是一个CPU有限的程序,运行时间为15分钟,计划在多用户系统上运行,则需要进行一些协商。

    最大吞吐量周期的大小和时间。

    预期的请求组合以及组合如何随时间变化。

    每台机器的用户数和用户总数(如果这是多用户应用程序)。这个描述应该包括这些用户登录和注销的时间,以及他们假定的击键率、完成的请求和思考时间。您可能需要调查思考时间是否随前一个请求和后一个请求而有系统地变化。

    用户对运行工作负载的机器所做的任何假设。如果用户想要一台特定的现有机器,请确保尽早知道这一点。类似地,如果用户假设某个特定的类型、尺寸、成本、位置、互连或任何其他变量将限制您满足上述要求的能力,则该假设也将成为需求的一部分。在开发、测试或首次安装程序的系统上,可能不会评估满意度。

  2. 如何获取性能需求

    客户方提出

    客户方能提出明确的性能需求,说明对方很重视性能测试,这样的企业一般是金融、电信、银行、医疗器械等;他们一般对系统的性能要求非常高,对性能也非常了解。提出需求也比较明确。

    曾经有一个银行项目,已经到最后的性能测试极端,因为数据库设计不合理,导致性能出现很大的问题,最终不得不把整合项目作废,对于这样的项目,其实从分析设计阶段就应该考虑系统的性能问题。性能测试也一样,对于某些项目来说越早进行越好。当然,前期的性能测试为单元性能测试、接口性能测试,有别系统性能测试。

    根据历史数据分析

    对于一些面向用户的独特产品,比较难定位市场的大小,可以先上一运营一段时间,通过运营可以搜集客户资料,比如,每月、每星期、每天的峰值业务量是多少。用户以什么样的速度在递增中。用户对系统的哪些功能模块使用的最多,他们所点的比例等等。收集到这些数据之后,我们就可评估系统的系统需求指标,从而进行性能测试。

    需求分析与定位

    这里根据前期的需求分析与定位,来分析确定系统性能指标。例如某省幼儿园管理系统。统计全省有多少家幼儿园,系统的使用时间为幼儿到校之后,管理人员对幼儿的到校情况进行录入,以及幼儿的午饭,放学情况的录入时间。经过与需求人员交流分析也能得到比较明确的性能指标。

    参考历史项目或其它同行业的项目

    如果公司之前有类似的项目经验,根据项目大小及上次性能测试的一些指标。从根据项目的规模可以制定出相应的性能指标。

    即使本公司没有类似的项目,但其它公司有类似的项目,例如做IPTV或者DVB计费系统的测试,可以参考电信计费系统的需求------虽然不能完全照搬数据,但是可以通过其他行业成熟的需求来了解需要测试的项目有哪些,应该考虑到的情况有哪些种。

    参考其它资料数据

    如果你做的是非常独特的产品,市场上没有此类型的产品,而且需求及市场也难以估计,那么只能从与产品相关的资料中寻找痕迹了。不过,相信这样不确定性的产品,老板要承担的风险也是挺大的。

    需要说明的是,我上面介绍的方面并非是独立的,可以综合的使用,你可以根据客户提出的指标,再根据历史数据以及参考同类型项目来进行。这样可以更确定你的性能指标是客户(或自己)真正需要的、最符合项目需求的。

  3. 理解与应用

    对于我们所设计的系统来说,性能上的需求是必不可少的,若是没有性能上的需求,设计出来的系统可能是无法使用的,在设计实验室设备管理系统的时候,要充分考虑系统的数据类型支持,数据量支持,以及系统的并发性等等性能上的需求。

Software requirements specification

  1. 词语解说

    SRS is a specification for a specific software product, program or group of programs that performs a defined function in a specific environment. SRS can be written by one or more personnel from the supplier, customer or both parties, and it is recommended that the personnel of both parties jointly prepare.

    SRS是对在具体环境中执行确定功能的特定软件产品、程序或一组程序的规格说明。 SRS可由来自供方、顾客或双方的一个或多个人员来编写,推荐双方人员联合编写。

  2. 查找链接


[https://www.bmc.com/blogs/software-requirements-specification-how-to-write-srs-with-examples/]{.ul} [https://www.microtool.de/en/knowledge-base/what-is-a-software-requirements-specification/]{.ul} [https://www.perforce.com/blog/alm/how-write-software-requirements-specification-srs-document]{.ul}

  1. 描述

    软件需求规格文档包含:

  • 硬件

  • 功能

  • 性能

  • 输入输出

  • 接口需求

  • 警示信息

  • 保密安全

  • 数据与数据库

  • 文档说明

  • 法规说明

    软件需求规格说明文档的产生阶段

  • 对业务需求的定义和文档化,形成了前景和范围文档

  • 对用户需求的定义和文档化,形成了用户需求文档,其中以用例说明书最常见

  • 在得到用户需求后,需求工程师对其建模和分析,细化为系统需求,并建立满足系统需求的解决方案,对系统需求、解决方案的定义和文档化产生了系统需求规格说明文档

  • 软件需求规格说明文档的产生阶段:对系统需求、解决方案的定义和文档化阶段

    需求开发过程中的常见文档:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ux67uKmf-1609755291772)(media/image5.png)]{width=“5.763194444444444in” height=“4.774305555555555in”}

    需求规格说活动过程

    第一,选择文档模板

    第二,裁剪文档模板

    大三,文档写作

    第四,产生软件需求规格文档

    需求规格说文档编写目的;

  • 可以帮助记忆

  • 帮助发现需求存在的问题

  • 记录系统解决方案

  • 为后续活动的依据

  • 为协议基准,可以作为合同的一部分,有法律效应

    需求说明文档常见读者群体:

  • 项目管理者

  • 设计人员和程序员

  • 测试人员

  • 文档写作的特点

  • 完整性

  • 一致性

  • 可修改性

  • 可跟踪性

  • 可阅读性

  • 可维护性

  • 无二义性

    运行和维护阶段的可使用性

  • 文档化的主要目标是:交流

  • 文档写作的注意事项:

    明确文档编写目的

  • 按照写作模板写作

  • 格式规范

  1. 理解与应用

    SRS(Software Requirements Specification)软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。包含硬件、功能、性能、输入输出、接口界面、警示信息、保密安全、数据与数据库、文档和法规的要求。

    说明编写这份软件需求说明书的目的,指出预期的读者。软件需求说明书的作用在于便于用户、开发人员进行理解和交流,反映出用户问题的结构,可以作为软件开发工作的基础和依据,并作为确认测试和验收的依据。

    SRS(Software Requirements Specification)软件需求说明书也是本学期软件需求分析与建模课程学习的重点,经过系统的学习,将项目开发以软件需求说明书的形式展现给各种与项目相关的角色看,有利于沟通与交流,并且作为系统最终验收的依据

Steering committee

  1. 词语解说

    A steering committee is an advisory body that’s part of IT—or other—governance. Members include experts, authority figures, and senior stakeholders in a project or organization.

    程序委员会是一个咨询机构,是 it (或其他)治理的一部分。成员包括项目或组织中的专家、权威人士和高级利益相关者。

  2. 词语链接


[https://status.net/articles/steering-committee/]{.ul} [[https://www.merriam-webster.com/dictionary/steering%20committee]{.ul}](https://www.merriam-webster.com/dictionary/steering committee) [https://www.reference.com/business-finance/function-steering-committee-5da3f419e5d16267]{.ul}

定义,作用描述

A steering committee is an advisory body that’s part of IT—or other—governance. Members include experts, authority figures, and senior stakeholders in a project or organization. As a result, they have a significant stake in how each project is managed. Thus, key concerns for steering committees are the direction, scope, budget, timeliness, and methods used. Steering committees generally meet periodically to discuss each of these aspects and help set, or reset, direction.

指导委员会是一个咨询机构,是 it (或其他)治理的一部分。成员包括项目或组织中的专家、权威人士和高级利益相关者。因此,他们在如何管理每个项目中有着重要的利害关系。因此,指导委员会关注的主要问题是方向、范围、预算、时间和使用的方法。指导委员会通常定期召开会议,讨论每个方面,并帮助设定或重置方向。

Members of the steering committee don’t usually perform the work they prescribe. Instead, senior managers or executives, important external stakeholders, and experts usually make up the committee. The particular makeup of each steering committee depends on the scope. For example, a project steering committee may involve the project manager and external stakeholders from customers. Meanwhile, an organizational steering committee may be made up of executives, certain board members, and department heads.

指导委员会的成员通常不会完成他们规定的工作。相反,委员会通常由高级经理或执行官、重要的外部利益相关者和专家组成。每个指导委员会的具体组成取决于范围。例如,项目指导委员会可能包括项目经理和来自客户的外部涉众。同时,组织指导委员会可由行政人员、某些董事会成员和部门主管组成。

While the actual makeup of each steering committee may vary slightly, there are a few guidelines to keep in mind. Arguably most important, there should be a chairperson. The chairperson should be elected by the rest of the committee and should not own the project the committee is steering. This allows for more impartial chairing. In addition, the steering committee should be made up of diverse members. Moreover, these members should equally represent the various functions the steering committee oversees. This allows for the sharing of different opinions and ideas. In parallel, the committee must allow for open discussion so that each opinion can be heard and assessed. Finally, it must have clear goals and a well-managed agenda.

虽然每个指导委员会的实际组成可能略有不同,但有一些指导方针需要牢记。可以说,最重要的是,应该有一个主席。主席应由委员会其他成员选举产生,不应拥有委员会正在指导的项目。这允许更公正的主持。此外,指导委员会应由不同的成员组成。此外,这些成员应同样代表指导委员会监督的各种职能。这样就可以分享不同的观点和想法。同时,委员会必须允许公开讨论,以便听取和评估每个意见。最后,它必须有明确的目标和管理良好的议程。

A steering committee is an advisory group that makes directional decisions on various organizational projects. Its members directly support project managers working toward strategic company directions.

指导委员会是一个咨询小组,就各种组织项目作出方向性决定。其成员直接支持项目经理朝着公司战略方向努力。

In practice steering committees also do the follo

标签: omega变送器os36s

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台