论软件需求管理
软件需求管理是一个对系统需求变更了解和控制的过程。需求管理过程与需求开发过程相互关联,初始需求导出的同时就要形成需求管理规划,一旦启动了软件开发过程,需求管理活动就紧密相伴。
需求管理过程中主要包含变更控制、版本控制、需求跟踪和需求状态跟踪等4项活动,其目标是为项目管理人员建立一个软件需求基线,并保持软件计划、产品和活动与软件需求的一致性。
请围绕“软件需求管理”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.详细描述需求管理过程中各个活动中的主要工作。
3.详细说明你所参与的软件开发项目中,是如何进行软件需求管理的,实施的具体效果如何
需求管理过程中主要包含变更控制、版本控制、需求跟踪和需求状态跟踪四项活动。
一.变更控制活动
它的主要工作包括以下三项:
1.问题分析和变更描述
需要识别和分析需求问题,产生一个明确的需求变更提议。
2.变更分析和成本计算
使用可追溯性信息和系统需求的一般知识,对需求变更提议进行影响分析和评估。
3.变更实现
这个过程要求需求文档和系统设计以及实现都要同时修改
二.版本控制活动
版本控制活动主要包括定义需求文档的版本格式、制订需求文档的修改模式和确定需求文档版本等三项工作。
三.需求跟踪
需求跟踪活动主要包括定义对其他需求的跟踪能力(联系)链和定义和编制每个需求同系统元素之间的联系文档等两项工作。
四.需求状态跟踪
需求状态跟踪活动主要包括定义需求状态和跟踪需求每一个状态等两项工作。
变更控制流程:
变更控制的工作程序依次为:提出与接受变更申请、对变更初审、变更方案论证、项目变更控制委员会审查、发出变更通知并开始实施、变更实施的监控、变更效果的评估、判断发生变更后的项目是否已纳入正常轨道。
提出与接受变更申请
提出变更申请应当及时以正式方式进行,并留下书面记录。变更的提出可以是各种形式,但在评估前应以书面形式提出。
对变更的初审
变更初审的目的是为了对变更提出方施加影响,确认变更的必要性,确保变更是有价值的;进行格式校验,完整性较验,确保评估所需信息准备充分;在干系人间就提出供评估的变更信息达成共识。
变更方案论证
变更方案的主要作用,首先是对变更请求是否可实现进行论证,如果可能实现,则将变更请求由技术要求转化为资源需求,以供CCB决策。常见的方案内容包括技术评估和经济评估,前者评估需求如何转化为成果,后者评估价值和风险。
项目变更控制委员会审查
审查过程由项目所有者据变更申请及评估方案,决定是否批准变更。审查通常是文档会签形式,重大的变更审查可以包括正式会议形式。审查过程应注意分工,项目投资人虽有最终的决策权,但通常在专业技术上并非强项。所以应当在评审过程中将专业评审、经济评审分开,对涉及项目目标和交付成果的变更,客户的意见应放在核心位置。
发出变更通知并开始实施
评审通过,意味着项目基准的调整,同时确保变更方案中的资源需求及时到位。项目基准的调整,包括项目目标的确认,最终成果、工作内容和资源、进度计划的调整。需要强调的是,变更通知后,不只是包括实施项目基准的调整,更要明确项目的交付日期、成果对相关干系人的影响。如变更造成交付期的调整,应在变更确认时发布,而非在交付前公布。
变更实施的监控
要监控的,除了调整过的项目基准中所涉及变更的内容外,还应当对项目的整体基准是否反映项目实施情况负责。通过监控行动,确保项目的整体实施工作是受控的。通常由项目经理负责项目基准的监控,管理委员会监控变更明确的主要成果、进度里程碑等,可以委托监理单位承担监控职责
变更效果的评估
变更评估首要的评估依据,是项目基准,可需结合变更的初衷来看要达到的目的是否已达成,以及评估变更方案中的技术论证、经济论证内容与实施过程的差距并推进解决。
判断发生变更后的项目是否已纳入正常轨道。
项目基准调整后,需要确认的是相应的资源配置和人员是否及时到位,更需多加关注。之后对项目的整体监控应按新的项目基准进行,当确认新的项目基准已经生效则按正常的项目实施流程进行。
论非功能性需求对企业应用架构设计的影响
企业应用架构(Enterprise Application Architecture) 描述了企业IT系统的功能和技术实现内容,它在企业信息化建设中起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各IT系统的定位和功能。企业应用架构包括了企业的应用架构蓝图、架构标准、系统的边界和定义、系统间的关联关系等。其中非功能性需求是进行企业应用架构设计时需要重点考虑的因素,不同类型的非功能性需求从不同侧面影响应用系统的架构设计。
请以“非功能性需求对企业应用架构设计的影响”为题,依次从以下三个方面进行论述。
1.概要叙述你参与分析和开发的企业应用系统项目以及你所担任的主要工作。
2.分析在企业应用架构设计中应该考虑哪些非功能性需求,详细阐述这些非功能性需求是如何影响架构设计的。
3.详细说明你所参与的企业应用系统项目中,在进行系统架构设计时,考虑了哪些非功能性需求,如何通过架构设计满足了系统的这些非功能性需求。
这种需求可以是以下方面的内容:
1.性能
是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间才能对某个事件做出响应,或者在某段时间内系统所能处理事务的数量或系统完成某一个事务处理所需的时间来对性能进行定量的表示。性能测试经常要使用基准测试程序(用以测量性能指标的特定事务集或工作量环境)。
2.可靠性
可靠性是软件系统在应用或系统错误面前,在意外或错误使用的前提下维持软件系统的功能特征的基本能力。可靠性通常用平均失效等待时间(MTTF)和平均失效间隔时间(MTBF)来表示。
在失效率为常数或者修复时间很短的情况下,MTTF和MTBF几乎相等。
3.可用性
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示
4.安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性是根据系统可能受到的安全威胁的类型来分类的。安全性又可划分为机密性、完整性、不可否认性及可控性等特性
5.可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
6.功能性
功能性(functionality)是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。
7.可变性
可变性(changeability)是指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品(例如,软件产品线)的基础时,可变性是很重要的。
8.互操作性
作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性(interoperation),软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,这种互操作性也影响应用的软件体系结构。
在企业应用架构设计中应考虑的非功能需求主要包括四类
1.操作性需求
操作性需求指定了系统完成任务所需的操作环境及其可能的改变。它通常指操作系统、系统软件及需要交互的系统中所使用的信息系统,有时也包括比较重要的物理环境因素。操作性需求包括技术环境需求、系统集成需求、可移植性需求、可维护性需求。
2.性能需求
性能需求的核心是性能问题,如响应时间、容量和可靠性。每一个需求必须是可测量的,才能进行基准比较,进而检验性能需求的成果。性能需求包括速度需求、容量需求、可用性与可靠性需求。
3.安全需求
安全性是防止信息系统崩溃和数据丢失的能力。新系统的开发人员必须保证系统的安全需求,提供合理的预防措施以防止问题发生。安全性需求包括访问控制需求、加密与验证需求、病毒控制需求。
4.文化与政治需求
文化与政治需求是指针对使用系统的不同国家所特有的需求。商业全球化背景下,企业扩展它们的系统以便供全世界的用户使用,从而创造巨大的商业价值。系统设计的一个重要方面是理解系统的世界文化和政治需求。文化与政治需求包括多语种需求、用户定制需求、未申明的术语、法律需求
论软件的可靠性设计
现代军事和商用系统中,随着系统中软件成分的不断增加,系统对软件的依赖性越来越强。软件可靠性已成为软件设计过程中不可或缺的重要组成部分。实践证明,保障软件可靠性域有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制,由此提出了可靠性设计的概念。可靠性设计就是在常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户的功能和性能需求的同时,全面满足软件的可靠性要求。
请围绕“软件的可靠性设计”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.简要说明目前比较主流的软件可靠性设计技术,结合项目实际情况,阐述所选择的可靠性设计技术及其原因。
3.结合你具体参与管理和开发的实际项目,举例说明所选取的软件可靠性技术的具体实施过程,并详细分析实施效果。
一般来说,被认可的且具有应用前景的软件可靠性设计技术主要有容错设计、检错设计和降低复杂度设计等技术。
一.容错设计技术
对于软件失效后果特别严重的场合,如飞机的飞行控制系统、空中交通管制系统及核反应堆安全控制系统等,可采用容错设计方法。常用的软件容错技术主要有恢复块设计、N版本程序设计和冗余设计三种方法。
1.恢复块设计
恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块变成恢复块。一个恢复块包含若干个功能相同、设计差异的程序块文本,每一时刻有一个文本处于运行状态。一旦该文本出现故障,则用备份文本加以替换,从而构成“动态冗余”。
2.N版本程序设计
N版本程序的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一模块/版本的故障提供错误的服务,以实现软件容错
3.冗余设计
软件冗余设计技术实现的原理是在一套完整的软件系统之外,设计一种不同路径、不同算法或不同实现方法的模块或系统作为备份,在出现故障时可以使用冗余的部分进行替换,从而维持软件系统的正常运行
二.检错设计
在软件系统中,对无需在线容错的地方或不能采用冗余设计技术的部分,如果对可靠性要求较高,故障有可能导致严重的后果。这时一般采用检错技术,在软件出现故障后能及时发现并报警,提醒维护人员进行处理。
采用检错设计技术需要着重考虑几个要素:检测对象、检测延时、实现方式和处理方式。
1.检测对象,即检测点和检测内容。在设计时应考虑把检测点放在容易出错的地方和出错对软件系统影响较大的地方,检测内容选取那些有代表性的、易于判断的指标。
2.检测延时,在软件检错设计时要充分考虑到检测延时,如果延时长到影响故障的及时报警,则需要更换检测对象或检测方式。
3.实现方式,最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理。计算运行时间也是一种常用的技术,如果某个模块或函数运行超过预期的时间,可以判断出现故障。另外,还有置状态标志位等多种方法,自检的实现方式要根据实际情况来选用
4.处理方式。大多数检测采用“查出故障一停止软件系统运行一报警”的处理方式,但也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。
三.降低复杂度设计
降低复杂度设计的思想就是在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠性。
四.其他
除了容错设计、检错设计和降低复杂度设计技术外,人们尝试着把硬件可靠性设计中比较成熟的技术,如故障树分析(FTA)、失效模式与效应分析(FMEA)等运用到软件可靠性设计领域,这些技术大多数运用一些分析、预测技术,在软件设计时就充分考虑影响软件可靠性的因素,并采取一些措施进行优化。
论网络安全体系设计
随着社会信息化的普及,计算机网络已经在各行各业得到了广泛的应用。目前,绝大多数业务处理几乎完全依赖计算机和网络执行,各种重要数据如政府文件、工资档案、财务账目和人事档案等均依赖计算机和网络进行存储与传输。另一方面,针对计算机和网络的攻击活动日益猖獗,网络安全已经成为当前社会的主要安全问题之一。
在上述背景下,国家标准《信息处理系统工程开放系统互联基本参考模型——第二部分:安全体系结构》(GB/T 9387.2-1995)定义了基于OSI参考模型7层协议之上的信息安全体系,其核心内容是:为了保证异构计算机进程与进程之间远距离交换信息的安全,定义了认证服务、访问控制服务、数据机密性服务、数据完整性服务和抗抵赖性服务等5大类安全服务,以及提供这些服务的8类安全机制及相应的OSI安全管理,并根据具体系统适当配置于OSI模型的7层协议之中。
问题内容:
请以“网络安全体系设计”为题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中承担的主要工作,并详细阐述该软件系统在网络安全方面的要求。
2.请对GB/T 9387.2-1995中定义的5大类安全服务进行描述,阐述每类安全服务的定义和主要实现手段。
3.请结合项目实际,具体阐述你在项目中实现了上述5大类安全服务中的哪些服务,具体运用了哪些实现手段。
五类安全服务:
一.认证与鉴别服务
鉴别参与通信的对等实体和数据源的合法性。对等实体鉴别和数据源鉴别:由第N层实体提供,可向第N+1层实体证实。安全服务由第N层实体提供,可向第N+1层实体证实数据源。
认证服务的基本目的,是为了防止其他实体占用和独立操作被认证实体的身份。认证服务提供了实体声称其身份的保证,只有在主体和验证者的关系背景下,认证才有意义。认证服务的主要实现方式包括以下5种:
己有的信息,如认证口令。
拥有的信息,如1C卡、令牌等。
不可改变的特性,如指纹、虹膜等生物特征。
相信可靠的第三方建立的认证。
环境,如主机地址等
二.访问控制服务
能够阻止未经授权而利用通过OSI模型的可访问资源。
访问控制服务决定开放环境中允许使用哪些资源、在什么地方适合组织为授权访问的过程。在访问控制实例中,访问可以是对一个系统或对系统内部进行。常见的访问控制服务的实现方式包括以下三种方式:
自主访问控制(DAC)。
自主访问控制是一种接入控制服务,通过执行基于系统实体身份及其到系统资源的接入授权。包括在文件、文件夹和共享资源中设被许可。用户有权对自身所创建的文件、数据表等访问对象进行访问,并可将其访问权授予其他用户或收回其访问权限。允许访问对象制定针对该对象访问的控制策略,通常可通过访问控制列表来限定针对客体可执行的操作。
强制访问控制(MAC)
强制访问控制是系统强制主体服从访问控制策略,是由系统对用户所创建的对象,按照规定的规则控制用户权限及操作对象的访问。其主要特征是对所有主体及其所控制的进程、文件、段、设备等客体实施强制访问控制。
基于角色访问控制(RBAC)
基于角色访问控制主要通过对角色的访问进行控制,使权限与角色相关联,用户通过成为适当角色的成员而得到其角色的权限。用户可依其责任和资格分派相应的角色,角色可依新需求和系统合并赋予新权限,而权限也可根据需要从某角色中收回
三.数据保密性服务
对数据提供保护,防止数据未经授权而被泄漏,防止在系统之间交换数据时被截取。它还内含四项服务:连接保密性、无连接保密性、选择字段保密性、通信业务流保密性。
数据机密性服务的目的是确保信息仅仅是对被授权者可用,信息的保护可以通过确保数据被限制于授权者获得,或通过特定方式表示数据来获得。信息的机密性主要通过以下两种方式实现:
通过禁止访问提供机密性,即可以通过访问控制,以及通过物理媒体保护和路由选择控制保证机密性。
通过加密提供机密性,即防止数据泄漏在传输或存储中。加密机制包括基于对称的加密机制和基于非对称的加密机制。
除此以外,还可以通过数据填充、通过虚假事件(例如隐藏在不可信链路上交换的信息流总1;)、通过保护PDU头和通过时间可变域提供机密性。
四.数据完整性服务
防止系统之间交换数据,非法修改数据或丢失数据。数据完整性可分四类:实体完整性、域完整性、参照完整性、用户定义的完整性。
数据完整性服务的目的是通过阻止威胁或探测威胁,保护可能遭到不同方式危害的数据完整性和数据相关属性完整性,即保证数据不以未经授权方式进行改变或损毁。数据完整性的常见实现方式包括:
阻止对数据传输媒介访问的机制。包括物理隔离、不受干扰的信道,路由控制,访问控制等。
探测对数据非授权修改的机制。包括密封、数字签名、数据重复、与密码变换相结合的数字指纹和消息序列号等。
五.禁止否认服务
阻止通信双方否认发送和接收数据的行为。
它也叫做抗抵赖服务,它是提供有关特定事件或行为的证据,包括证据的生成、验证和记录,以及在解决纠纷时随即进行的证据恢复和再次验证。抗抵赖性服务的实现方式主要包括数字签名、用户认证、操作日志等技术。