块化描述的缺点,可以使用结构化自然语言、设计描述语言、图形描述语言和数学描述方法来代替自然语言。
f7需求导出的过程活动包括:需求发现、需求的分类与组织、优先排序和冲突解决、需求文档化。
8需求信息的来源包括已有的文件,系统的信息持有者(stakeholders)以及相近系统的规约描述。
9场景的常用描述方法是自然语言和用例,描述内容一般包括:
场景开始时系统初始状态的描述;一个标准事件流的描述;对可能出现的错误及解决方法的描述;其它并行事件流的描述;场景结束状态的描述。
10结构化分析方法以及主要的结构化分析模型
结构化分析方法是一种面向数据流的系统建模技术,它从数据加工的角度对系统进行规格描述;结构化分析模型主要包括数据词典、数据流图、实体关系图、状态迁移图。
数据对象描述
实体关系图
数据词典
数据流图
状态迁移图
控制规格说明
加工规格说明
f11为什么要进行需求有效性验证对需求文档的检查主要包括哪些方面
需求有效性验证的目的是检验需求描述是否正确地反映了客户的意愿,以期尽早的发现需求中存在的错误。
好的需求对软件系统的开发效率及软件质量起着至关重要的作用。一个错误发现的越晚,修改它所付出的代价就越大。
需求检查包括对有效性、一致性、完备性、现实性和可检查性的检查。
第四讲软件设计
1软件设计及其要解决的问题:
设计是一个把问题转换成解决方案的创造性过程;软件设计要解决“软件系统如何实现”的问题;从工程管理的角度,软件设计可以分成概要设计(总体设计、系统设计)与细节设计(详细设计)
2理解信息隐藏原理以及采用信息隐藏原理指导模块设计的好处
信息隐藏原理是指模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块来说不可访问;每个模块只完成一个相对独立的特定功能;模块之间仅交换那些为完成系统功能必须交换的信息,即模块应该功能独立的。
信息隐藏的好处:1)它支持模块的并行开发;
f2)减少测试和后期维护的工作量。因为测试和维护阶段不可避免地要修改设计和代码,模块对大多数数据和过程处理细节的隐藏可以减少错误向外传播。
3)整个系统扩充功能只需“插入”新模块,原有的多数模块无须改动。
3模块独立性及其度量准则:
模块独立性的概念是模块化、抽象和信息隐藏概念的直接产物,模块独立性是通过开发具有单一功能和与其他模块没有过多交互作用的模块来达到的。独立性好的模块对其它的模块依赖性小,修改时对其它模块r