1 引言
好久没有写博客了,前段时间一直在忙着关于研究生的事情。基本的准备工作已经完成,至于结果如何,只能在心里慢慢地期待。这段时间开始查备考的大学,目前还没有选择好考哪一所学校的研究生,我相信不久就应该可以找到我心目中的理想学府。距离期末考试,还有约一个月的时间,趁着这段空闲的时间,将整理工作逐步地完成。对了,这是第一次用Linux系统写博客。
GOGOGGO!
2 需求分析
需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。
2.1 需求分析的任务
2.1.1 确定对系统的综合要求
虽然功能需求是对软件系统的一项基本需求,但却并不是唯一的需求。通常对软件系统有下述几方面的综合要求。
功能需求 性能需求 可靠性和可用性需求 出错处理需求 接口需求 约束逆向需求 将来可能提出的要求 。
2.1.2 分析系统的数据要求
任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。
复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。利用数据字典可以全面准确地定义数据,但是数据字典的缺点是不够形象直观。为了提高可理解性,常常利用图形工具辅助描绘数据结构。
2.1.3 导出系统的逻辑模型
综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
2.1.4 修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
2.2 与用户沟通需求的方法
1 访谈
2 面向数据流自顶向下求精
3 简易的应用规格说明技术
4 快速建立软件原型
2.3 分析建模与规格说明
2.4 实体联系图
1 数据对象
数据对象是对软件必须理解的复合信息的抽象。
数据对象可以是外部实体、事物、行为、事件、角色、单位、地点或结构等。总之,可以由一组属性来定义的实体都可以被认为是数据对象。
2 属性
属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”,也就是说,当人们希望找到数据对象的一个实例时,用标识符属性作为“关键字”(通常简称为“键”)。
3 联系
客观世界中的事物彼此间往往是有联系的。数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下3种类型。
一对一联系(1∶1)一对多联系(1∶N)多对多联系(M∶N)
4 符号
ER图中包含了实体(即数据对象)、关系和属性3种基本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。
2.5 数据规范化
2.6 状态转换图
1 状态
状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。
2 事件
事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。
3 符号
在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,1这部分也是可选的。
4 例子
2.7 其他图形工具
1 层次方框图
2 Warnier图
3 IPO图
2.8 验证软件需求
2.8.1 验证软件需求的方面
1 一致性
2 完整性
3 现实性
4 有效性
2.8.2 验证软件需求的方法
2.8.3 用于需求分析的软件工具
PSL/PSA系统是CADSAT(计算机辅助设计和规格说明分析工具)的一部分。其中PSL是用来描述系统的形式语言,PSA是处理PSL描述的分析程序。
3 结束语
这是本章的内容,需求分析在软件的开发过程中及其重要,没有一个良好的需求分析,在后期的开发过程中,会耗费大量的时间和精力。
分享和帮助是人生一大乐事,希望可以帮助您。本人才疏学浅,如果有不当之处,还请批评指正。同时欢迎大家评论、点赞及转发!