软件需求分析与建模

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

● 文档所引用的资料、软件开发的 ● 输入项目
标准或规范。
3.2 算法:模块所选用的算法。
1.4 参考资料:
3.3 程序逻辑:详细描述模块实现的
项目经核准的计划任务书、合同或上 算法,可采用:标准流程图;PDL语
级机关的批文;
言;N-S图;判定表等描述算法的图
项目开发计划;需求规格说明书;概 表。
要设计说明书;
软件设计过程 模块化设计原理 模块独立性度量 软件组成结构 软件体系结构
软件设计阶段的基本目标是构造系统“怎么做”的模 型描述。
“设计先于编码”,这是软件工程“推迟实现”基本 原则
软件系统设计是把软件需求“变换”为用于构造软件 的蓝图。
“输入”是需求分析各种模型元素 “输出”是软件设计模型和表示
明书的目的,指明读者对象。
2.2 软件结构:如给出软件系统的结
1.2 项目背景:应包括项目的来源和 构图。
主管部门等。
3 程序描述
1.3 定义:列出本文档中所用到的专 3.1 逐个模块给出以下说明:
门术语的定义和缩写词。
● 性能
● 列出有关资料的作者、标题、编 ● 输出项目
号、发表日期、出版单位或资料来源 ● 功能
模块本身的复杂性和工作量虽然随着模块变小而减少,模块的接 口工作量却随着模块数增加而增大。
软件模块化开发存在一个最小成本区,把模块数控制在一定的范 围内,可以得到最小的总开发工作量。
模块数与开发工作量

总成本

最小成本区

接口成本


模块成本 模块数
分解必然需要抽象的支持。抽象是抓住主要问题,隐藏细节,这 样才能容易分解。 抽象具有不同的级别。 人类解决复杂问题的基本方法之一。只有抓住事物的本质,才能 准确分析和处理问题,找到合理的解决方案。
逐步求精是一个细化的过程。我们从在高抽象级上定义的功能陈 述或数据描述开始,然后在这些原始陈述上持续细化越来越多的 细节。
抽象与精化是互补的概念
模块的独立性(Module Independence)是模块化、 抽象、信息隐蔽等概念的直接结果,也是判断模块化 结构是否合理的标准。
模块独立性是指开发具有独立功能而和其他模块没有 过多关联的模块。
1.2 主要软件需求
外部数据接口
1.3 软件设计约束、限制
外部系统或设备接口
2 数据设计
4.4 内部接口设计规约
2.1 数据对象和形成的数据 5 (每个模块)过程设计
结构
5.1 处理说明
2.2文件和数据库结构
5.2 接口描述
外部文件结构
5.3 设计语言描述
① 逻辑结构
5.4 使用的模块
② 逻辑记录描述
3.4 接口
测试计划(初稿);
● 限制条件
用户操作手册。
● 存储分配
3.5测试要点:给出测试模块的主要
测试要求。
模块是一个独立命名的,拥有明确定义的输入、输出和特性的程 序实体。
把一个大型软件系统的全部功能,按照一定的原则合理地划分为 若干个模块,每个模块完成一个特定子功能,所有的这些模块以 某种结构形式组成一个整体,这就是软件的模块化设计(Modular Design)。
软件设计的目标是对将要实现的软件系统的体系结构、 系统的数据、系统模块间的接口,以及所采用的算法 给出详尽的描述。
总体设计,也称为概要设计,软件结构设计,或高层设计。
分析需求规格说明 模块划分,形成具有预定功能的模块组成结构 表示出模块间的控制关系 给出模块之间的接口
软件详细设计,也称为(模块)过程设计,或低层设计。
时间性内聚:模块内的各个任务由相同的执行时间联系在一起。例如,初 始化模块。
过程性内聚:模块内的各个任务必须按照某一特定次序执行。
通信性内聚:模块内部的各个任务靠公用数据联系在一起,即都使用同一 个输入数据,或者产生同一个输出数据。
顺序性内聚:模块内的各个任务是顺序执行的。通常,上一个任务的输出 是下一个任务的输入。
软件模块化设计可以简化软件的设计和实现,提高软件的可理解 性和可测试性,并使软件更容易得到维护。
分解、抽象、逐步求精、信息隐蔽和模块独立性,是软件模 块化设计的指导思想。
采用有效的分解,即“分而治之”,是能够使问题得以很好解决 的必不可少的措施。
一个软件系统的各个模块之间是相互关联的,模块划分的数量越 多,模块间的联系也越多。
设计模块细节 确定模块所需的算法和数据结构等
测试和复审
a) 设计供选择的方案 b) 选取合理的方案 c) 推荐最佳方案 d) 功能分解和设计软件结构 e) 数据库设计 f) 制定软件设计测试计划 g) 编制设计文档 h) 审查和复审
1 范围
4.2 人机界面设计规约
1.1系统目标
4.3 外部接口设计
5.5 内部设计结构
③ 访问方法
5.6 注释/约束/限制
全局数据
6 需求交叉索引
文件和数据交叉索引
7 测试部分
3 体系结构设计
7.1测试方针
பைடு நூலகம்
3.1 数据和控制流复审
7.2 集成策略
3.2 得出的程序结构
7.3 特殊考虑
4 接口设计
8 附录(包括特殊注解)
4.1 人机界面规约
1 引言
2 总体设计
1.1 编写目的:阐明编写详细设计说 2.1 需求概述
分析“借书”功能的抽象过程?
信息隐蔽原则建议模块应该具有的特征是:每个模块对其他所有 模块都隐蔽自己的设计决策。
信息隐蔽意味着通过一系列独立的模块可以得到有效的模块化。
独立的构件或模块之间的“接口”简单而清晰。
逐步求精,或称逐步细化,是一种自顶向下的设计策略。连续精 化软件的层次结构,逐步细化来实现软件开发,逐步功能分解的 过程抽象,直至形成程序设计语句。
模块独立性两大优点:
独立的模块由于分解了功能,简化了接口,使得软件比 较容易开发;
独立的模块比较容易测试和维护。
模块独立性由两个定性标准度量:
模块自身的内聚(Cohesion)),也称为块内联系或模 块强度,
模块之间的耦合(Coupling),也称为块间联系。
模块独立性愈高,则块内联系越强,块间联系越弱。
内聚性是从功能的角度对模块内部聚合能力的量度。 高内聚是模块独立性追求的目标。 分类:
偶然性内聚:模块内的各个任务在功能上没有实质性联系,纯属“偶然” 因素组合了块内各个互不相关的任务。
逻辑性内聚:模块通常由若干个逻辑功能相似的任务组成,通过模块外引 入的一个开关量选择其一执行。这种内聚增大了模块间的耦合。
相关文档
最新文档