为了开发出满足用户需求的软件产品,首先需要知道的是用户的需求。这是对软件开发工作能否取得成功的基础条件。
1、软件需求分析的主要工作
为了开发出满足用户需求的软件产品,首先需要知道的是用户的需求。这是对软件开发工作能否取得成功的基础条件。
1)确定系统的综合要求
功能需求:划分系统需要的功能;
性能需求:指定系统的约束,包括速度、信息量、存储量等;
可靠性和可用性需求:顶俩个的指定系统的可靠性,它量化了系统被用户的实用程度;
出错处理需求:该如何人响应错误环境;
接口需求:描述系统与特的通信格式;
约束:应该遵循的限制条件;
逆向需求:说明软件不应该做什么;
将来可能提出的需求:明确哪些需可能扩充到软件之中。
2)分析系统的数据要求
准确全面的定义数据,正确的描述数据之间的逻辑关系。
3)导出系统的逻辑模型
使用数据流图、实体-联系图、状态转换图、数据字典等逻辑模型。
4)修正系统开发计划
在分析过程中,对系统的深入理解,可以具体的、准确的估计系统的成本和进度,修正以前制定的计划。
2、软件安全需求分析的主要工作
1)软件安全需求分析的目的与作用
目的: 描述为了实现信息安全目标,软件系统应该做什么,才能高效的提高软件的安全质量,减少软件漏洞。
重要作用:一个没有惊进行安全需求分析的软件开发项目,将威胁到信息的保密性、完整性和可用性,以及其他的一些安全问题。这个软件被攻破就只是时间的问题,早晚会被攻破。所以对于一个软件来说,软件的安全需求分析是必不可少的。
2)安全需求分析与软件需求分析的联系
软件安全需求分析是软件需求分析的一个必要组成部分。安全需求应该与业务需求具有同样的需求水平,并能对功能需求具有约束力。
3)安全需求分析与软件需求分析的区别
软件安全需求的客观性:
软件安全需求分析是由系统的客观属性决定的。与一般需求分析的不同在于:安全需求并不是从使用者的要求和兴趣出发,而是由系统的客观属性决定的。
软件安全需求的系统性:
软件安全需求分析不能只从系统本身出发,必须从系统角度进行分析。因为软件本身可能会由于逻辑、数据、时序等设计缺陷导致安全问题。从系统角度分析,不可避免涉及到各个领域的专业知识与经验积累。因此分析时应以人为主,分析工具只能起到辅助作用。并且分析时需要有专业的分析人员,熟悉系统架构的总体设计人员,软件设计人员和各领域专家共同参与。
4)安全需求分析的主要工作
首先需要确定明白你软件的业务运行环境、规则环境及技术环境。然后在了解各类软件安全需求的基础上,通过一定的安全需求获取过程,对软件应该包含的安全需求进行分析,然后对如何实际部署和开发进行讨论。
1、来源的分类
内部安全需求:
内部安全需求一是指内部需要遵守的政策、标准、指南和实践模式,二是软件功能需要的相关安全需求。
外部安全需求:
主要是法律法规等遵从性需求,包括国家和地区的关于技术与管理的法律法规、标准与要求等。
2、软件安全遵从性需求
主要由信息系统安全的测评国际保准、信息安全管理的国际标准、信息系统安全工程国际标准以及我国的信息安全标准等组成。
1、获取的相关方
软件安全需求获取的相关方包括 业务负责人、最终用户、客户、安全需求分析人员和安全技术支持人员等。
业务负责人、最终用户和客户咋安全需求确定是发挥着重要作用,应当积极的参与安全需求的采集和分析过程。
此外,运维小组与信息安全小组等技术支持人员页式相关方,应与分析人员、业务负责人、客户等做好积极沟通,寻求支持与帮助。
2、获取方法
1)头脑风暴
又称之为智力激励法、自由思考法,是指无限制的思考和自由联想、讨论等,其目的在于产生新观念或者激发新创想。值得注意的是,这种情况只适用于需要快速实现的情况下使用。并且这种方式提出的安全需求可能不全面或不一致,以来于个人对问题的理解以及自身的经验等,比较主观。
2)问卷调查和访谈
通过问卷调查,可以直接的生成安全需求。其有效性取决于如何向被调查对象提出和是的问题。调查时应该覆盖当前软件的安全设计原则和安全配置文件的内容,应当考虑业务风险、过程风险和技术风险。
3)策略分解
将组织需要遵守的内部和外部政策,包括法律法规、隐私和遵从性命令分解成详细的安全需求。这是一个连续化的结构化的过程。
4)数据分类
更具数据的生命周期管理对数据分阶段划分来决定安全需求。也可以根据数据的重要性等级的划分来确定。
5)主客体关系矩阵
采用主/课题无关系矩阵来刻划一个基于使用用例的主/客体之间的操作关系,在此基础之上确立安全需求。
作者:育菌头顶凉
原文链接:https://blog.csdn.net/qq_45590334/article/details/111990740