场景(scenarios)在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。为得出这些目标而采用的机制做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构评估中,一般采用刺激(stimulus)、环境(environment)和响应(response)三方面来对场景进行描述
在进行体系结构(架构)评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。我们把为得出这些目标而采用的机制叫做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构评估中,一般采用刺激、环境和响应三方面来对场景进行描述。刺激是场景中解释或描述风险承担者怎样引发与系统的交互部分。例如,用户可能会激发某个功能,维护可能会做某个更改,测试人员可能会执行某种测这些都属于对场景的刺激。环境描述的是刺激发生时的情况。例如,当前系统处于什么状态?有什么特殊的约束条件?系统的负载是否很大?某个网络通道是否出现了阻塞等。响应是指系统是如何通过体系结构对刺激作出反应的例如,用户所要求的功能是否得到满足?维护人员的修改是否成功?测试人员的测试是否成功等。
分垂直式重用与水平式重用,垂直式重用是指局限于某一垂直领域的重用,如只在电力系统中用到的构件;而水平式重用是指通用领域的重用,如标准函数库,任何软件都能用,所以是水平式重用。
软件复用过程:创建、复用、支持、管理4个过程。
创建过程:界定和提供可复用资产,以满足复用者的需要
复用过程:利用可复用资产来生产应用软件产品
支持过程:全面支持可复用资产的获取、管理和维护工作
管理过程:执行计划、启动、资源、跟踪,并协调其他各个过程;
软件开发环境(Software Development Environment,SDE)是指支持软件的工程化开发和维护而使用的一组软件,由软件工具集和环境集成机制构成。
软件开发环境应支持多种集成机制:如平台集成、数据集成、界面集成、控制集成和过程集成。软件开发环境应支持小组工作方式,并为其提供配置管理,环境的服务可用于支持各种软件开发活动,包括分析、设计、编程、调试和文档等。 较完善的软件开发环境通常具有多种功能,例如,软件开发的一致性与完整性维护,配置管理及版本控制,数据的多种表示形式及其在不同形式之间的自动转换,信息的自动检索与更新,项目控制和管理,以及对开发方法学的支持。软件开发环境具有集成性、开放性、可裁减性、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。
软件开发环境应支持多种集成机制,根据功能的不同,集成机制可以划分为环境信息库、过程控制与消息服务器、环境用户界面三个部分。
在初步项目范围说明书中已文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键。范围定义的输入包括以下内容:① 项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。② 项目范围管理计划。③ 组织过程资产。④ 批准的变更申请。
用户文档主要描述所交付系统的功能和使用方法,并不关心这些功能是怎样实现的。用户文档是了解系统的第一步,它可以让用户获得对系统准确的初步印象。 用户文档至少应该包括下述5方面的内容:
功能描述:说明系统能做什么
安装文档:说明怎样安装这个系统以及怎样使系统适应特定的硬件配置
使用手册:简要说明如何着手使用这个系统(通过丰富的例子说明.怎样使用常用的系统功能,并说明用户操作错误是怎样恢复和重新启动的)
参考手册:详尽描述用户可以使用的所有系统设施以及它们的使用方法,并解释系统可能产生的各种出错信息的含义(对参考手册最主要的要求是完整,因此通常使用形式化的描述技术)
操作员指南(如果需要有系统操作员的话):说明操作员应如何处理使用中出现的各种情况。 系统文档是从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。描述系统设计、实现和测试的文档对于理解程序和维护程序来说是非常重要的。
项目范围定义的输入有:
①项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书
②项目范围管理计划
③组织过程资产
④批准的变更申请
项目范围是为了达到项目目标,为了交付具有某种特制的产品和服务,项目所规定要做的。在信息系统项目中,产品范围是指信息系统产品或者服务所应该包含的功能,项目范围是指为了能够交付信息系统项目所必须做的工作。产品范围是项目范围的基础,产品的范围定义是信息系统要求的度量,而项目范围的定义是生产项目计划的基础。产品范围描述是项目范围说明书的重要组成部分。
最初的项目范围说明书是依据发起人或赞助人提供的信息制定的,并由项目管理团队在范围定义过程中进一步细化。内容包括:
范围定义的主要交付物是范围说明书,它详细描述项目的可交付物以及产生这些可交付物所必须做的项目工作。项目范围说明书在在所有干系人之间建立一个对项目范围的共同理解,描述项目的主要目标,使项目团队能进行更详细的计划,指导项目团队在项目实施期间的工作,并为评估是否为客户需求进行变更或附加的工作是否在项目范围之内提供基准。内容如下:
(1)项目的目标。包括成果性目标和约束性目标。
(2)产品范围描述。描述项目承诺交付的产品、服务或成果的特征。
(3)项目的可交付物。包括项目的产品、服务或成果,以及附属产出物例如项目管理报告和文档。
(4)项目边界。边界严格定义了哪些事项属于项目,也明确说明什么事项不属于项目的范围。
(5)产品验收标准。明确界定了验收可交付物的过程和原则。
(6)项目的约束条件。描述和列出具体的于西南股范围有关的约束条件,约束条件对项目团队的选择会造成影响。
(7)项目的假设。描述并列出特定的与项目范围相关发的假设,以及当这些假设不成立时对项目潜在的影响。
成本管理过程包括:成本估算、成本预算与成本控制。成本预算的含义是将总的成本估算分配到各项活动和工作包上,来建立一个成本的基线。成本估算是对完成项目活动所需资金进行近似的估算。
包括使项目按时完成所必需的管理过程。项目时间管理中的过程包括:活动定义、活动排序、活动资源估算、活动历时估算、制定进度计划、进度控制。
SV,Schedule Variance,进度偏差=已完工程计划时间—已完工程实际时间。
当进度偏差为负值时,表示进度滞后;当进度偏差等于零时,表示实际与计划相符。当进度偏差为正值时,表示进度提前。
CV,Cost Variance,成本偏差 = 挣值(EV)- 实际成本(AC)
当CV为正值时,表示实际消耗的人工(或费用)低于预算值,即有结余或效率高;当CV等于零时,表示实际消耗的人工(或费用)等预算值;当CV为负值时,表示实际消耗的人工(或费用)超出预算值或超支。
为了得到工作分解结构(Work Breakdown Structure,WBS)中最底层的交付物,必须执行一系列的活动。对这些活动的识别以及归档的过程就是活动定义。
鱼骨图(Ishikawa图)是一种发现问题根本原因的方法,通常用来进行因果分析。
可行性分析是所有项目投资、工程建设或重大改革在开始阶段必须进行的一项工作。项目的可行性分析是对多因素、多目标系统进行的分析、评价和决策的过程。
可行性研究通常从经济可行性、技术可行性、法律可行性和用户使用可行性4个方面来进行分析:
软件产品配置是指一个软件产品在生存周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合。该集合的每一个元素称为该产品配置中的一个配置项。
配置项是构成产品配置的主要元素,配置项主要有以下两大类:
配置项的状态通常包括:草稿、正式发布、正在修改。
软件配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具,主要有下述功能:
大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。把应用程序用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(benchmark)。
真实程序、核心程序、小型基准程序和合成基准程序,其评测的准确程度依次递减。
事务处理性能委员会(Transaction Processing Performance Council,TPC)是制定商务应用基准程序(Benchmark)标准规范、性能和价格度量,并管理测试结果发布的非营利组织,其发布的TPC-C是在线事务处理的基准程序,TPC-D是决策支持的基准程序。
Web服务器性能指标主要有请求响应时间、事务响应时间、并发用户数、吞吐量、资源利用率、每秒钟系统能够处理的交易或者事务的数量等。
理想情况下,每一项用户、业务需求和功能需求都应具备下列性质:
需求定义的过程也就是形成需求规格说明书的过程,通常有两种需求定义的方法: 严格定义方法和原型方法。
严格定义方法,也称为预先定义,需求的严格定义建立在以下基本假设之上:
原型化的需求定义过程是一个开发人员与用户通力合作的反复过程。从一个能满足用户基本需求的原型系统开始,允许在开发过程中提出更好的要求,根据用户的要求不断地对系统进行完善,它实质上是一种迭代的循环型的开发方式。
使用原型方法时需注意几个问题:
需求管理的活动包括:
需求跟踪包括编制每个需求与系统元素之间的联系文档,这些元素包括别的需求、体系结构、其他设计部件、源代码模块、测试、帮助文件和文档等。跟踪能力信息使变更影响分析十分便利,有利于确认和评估实现某个建议的需求变更所必须的工作。 利用需求跟踪能力链(traceability link)可以跟踪一个需求使用的全过程,也就是从初始需求到实现的前后生存期。跟踪能力是优秀需求规格说明书的一个特征,为了实现跟踪能力,必须统一地标识出每一个需求,以便能明确地进行查阅。
客户需求向前追溯到软件需求。这样就能区分出开发过程中或者开发结束后,由于客户需求变更受到影响的软件需求,这也就可以确保软件需求规格说明包括所有客户需求。
从软件需求回溯响应的客户需求。这也就是确认每个软件需求的源头。如果使用实例的形式来描述客户需求,那么客户需求与软件需求之间的跟踪情况就是使用实例和功能性需求。从软件需求向前追溯到下一级工作产品。由于开发过程中系统需求转变为软件需求、设计、编码等,所以通过定义单个需求和特定的产品元素之间的(联系)链,可以从需求向前追溯到下一级工作产品。这种联系链告诉我们每个需求对应的产品部件,从而确保产品部件满足每个需求。从产品部件回溯到软件需求。说明了每个部件存在的原因。如果不能把设计元素、代码段或测试回溯到一个需求,可能存在“画蛇添足”的程序。然而,如果这些孤立的元素表明一个正当的功能,则说明需求规格说明书漏掉一项需求
需求抽取和分析的过程
是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定一个和系统参与者进行交互,并可由系统执行的动作序列。用例模型描述的是外部执行者(Actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。 两个用例之间的关系主要有两种情况:一种是用于重用的包含关系,用构造型 include表示;另一种是用于分离出不同行为的扩展,用构造型extend表示。
①包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能 够使用一个构件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示它们。
②扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。
软件质量是指反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性全体。软件质量管理是指对软件开发过程进行的独立的检查活动,由质童保证、质量规划和质量控制三个主要活动构成。软件质量保证是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产髙质量的软件。软件评审是软件质量保证的主要活动之一。
用户界面设计的基本原则是从实践中总结出来的一些设计规则。Theo Maiidel在他的界面设计著作中提出3条“黄金规则”:
重放攻击,Replay Attacks,又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。Kerberos系统采用的是时间戳方案来防止重放攻击,这种方案中,发送的数据包是带时间戳的,服务器可以根据时间戳来判断是否为重放包,以此防止重放攻击。