- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 编码阶段。该阶段主要把软件设计转换成计算机可以接受的程序,选择某一种程序设计语言,编写出源程序清单。 此阶段的主要工作有: 基于软件产品的开发质量的要求,充分了解软件开发语言、工具的特性和编程风格; 进行编码; 提供源程序清单。 测试阶段。软件测试的目的是以较小的代价发现尽可能多的错误。要实现该目标,关键在于设计一套出色的测试用例。不同的测试方法有不同的测试用例设计方法,目前常见的测试方法有: 白盒测试法。该测试法的对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误(如逻辑、数据流、初始化等错误),其用例设计的关键,是以较少的用例覆盖尽可能多的内部程序逻辑结果。 黑盒测试法。依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。 此阶段的主要工作是: 设计测试用例,进行测试; 写出测试报告,提交修改部门; 继续测试。 维护阶段。本阶段主要根据软件运行的情况,对软件进行适当修改,以适应新的要求;以及纠正运行中发现的错误。本阶段工作在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后进行,一般所做的工作是编写软件问题报告、软件修改报告。 维护阶段的成本是比较高昂的,设计不到位或者编码测试考虑不周全,可能会造成软件维护成本的大幅度提高。以一个中小规模软件为例,如果设计、编码和测试需要一年的时间,在投入使用后,其运行时间可能持续三年。那么维护阶段也就要持续三年。这段时间内,软件的维护者除了要解决研制阶段所遇到的各种问题,如排除障碍外,还要扩展软件的功能,提高性能。所以,事实上,和软件开发工作相比,软件维护的工作量和成本都要大得多。 在实际开发过程中,软件开发并不一定是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。如在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。 以下主要基于安全问题,针对软件工程中的各个阶段进行阐述。 1.2.1 软件设计阶段威胁建模 软件在设计阶段达到的安全性能,将是软件整个生命周期的基础。如果在设计阶段没有考虑某些安全问题,那么在编码时就几乎不被考虑。这些隐患将可能成为致命的缺陷,在后期以更高的代价的形式爆发出来。所以,安全问题,应该从设计阶段就开始考虑,设计要尽可能完善。 传统的软件设计过程中,将工作的重点一般放在软件功能的设计上,没有非常详细地考虑到安全问题。因此,在软件设计阶段,针对安全问题,应该明确以下方面: 安全方面有哪些目标需要达到; 软件可能遇到的攻击和安全隐患;等等。 该阶段,一般采用威胁建模的方法来在软件设计阶段加入安全因素的考量。威胁建模除了和设计阶段的其他建模工作类似的地方外.更加关心安全问题,是一种比较好的安全问题的表达方法。 如前所述,分析系统中可能存在的威胁,可能是一件比较繁重的工作,因为很多威胁是不可预见的。但是,在设计阶段就尽可能多地将威胁考虑到,在编写代码前修改方案,代价比较小。威胁建模过程一般如下: 在项目组中成立一个小组。在此过程中,需要从项目组内挑选对安全问题比较了解的人,这些人可能不一定要懂得怎样去编写程序,但是要懂得程序运行的过程中,可能会出现哪些安全问题,或者可能受到什么样的攻击。也可以请用户中的某些人来参与该小组。 分解系统需求。本过程中,可按照需求规格说明书和设计文档中的内容,站在安全角度,分析系统在安全方面的需求。当然,传统的软件工程中的一些工具也可以使用,如:数据流图(DFD)、统一建模语言(UML)等。关于这些内容,大家可以参考相应文献。 确定系统可能面临哪些威胁。系统可能遇到的威胁有很多种,在这里可以首先将威胁进行分类,如系统缓冲区溢出、身份欺骗、篡改数据、抵赖、信息泄露、拒绝服务、特权提升等。由于同类的安全问题可以用类似的方法解决,因此该过程可以减小后期工作量。 另外,对威胁进行分类之后,可以画出威胁树,其目的是对软件可能受到的威胁进行表达。如图是一个针对用户口令安全问题画出的威胁树: 以上威胁树中画出了用户口令不安全中的各种原因,我们就可以针对不同的原因采用相应的措施。 选择应付威胁或者缓和威胁的方法。很显然,针对不同的安全问题,我们可以选择应付威胁或者缓和威胁的方法。一般说来,可以应付或缓和威胁的方法有很多,但是考虑到实施的成本,根据威胁可能的危害程
原创力文档


文档评论(0)