(软件工程)——概要设计说明书

步骤:概要设计和详细设计

软件设计的目标和任务

用信息域表示的软件需求,以及功能和性能需求,进行:数据设计、系统结构设计、过程设计

信息阶段的信息流

在这里插入图片描述

软件设计任务:

从工程管理的角度来看,软件设计分为两部:
概要设计(总体设计):软件的需求转化为数据结构或者软件结构
详细设计(过程设计):通过对结构进行细化,得到软件的详细结构或者算法。

如何判断设计的好坏?

1、设计必须实现分析模型描述的显示需求,必须满足用户需要的所以的隐式需求
2、设计必须是可读的,可理解性要强。
3、设计应该从实现的角度出发,给出数据功能行为相关的软件的全貌。

在这里插入图片描述

软件设计的过程

1、制定规范
在软件开发组设计标准,规定编码的信息格式,命名规则

2、软件系统结构的总体设计
基于功能层次,划分模块,采用抽象、分层、模块分解

3、处理方式设计
确定为实现功能的需求所必须的算法,评估算法的性能。

4、数据结构设计
确定数据的模式,子模式,安全性,整体性,输入输出文件的结构和模式

5、可靠性设计(质量设计)
运行期间为了使用要求,保证可靠的运行

6、编写概要设计阶段的文档
概要设计说明书,数据库的说明书,进一步完善用户手册,制定初步的测试计划

7、概要设计评审
概要设计说明书,评审的要点:可追溯性、接口、
模块的内部,高内聚、低耦合
模块的作用于是否在控制范围内,实用性,技术清晰性
其他的选择方案,

8、详细设计阶段
确定软件各个组成部分的算法,
选定某种过程的表达形式,
进行详细设计的评审,

软件设计的基础

自定下下,逐步细化
将软件的体系结构按自定向下方式,对各个层次的过程细节和数据细节逐层细化

软件结构
软件的结构包括两部分。程序的模块结构和数据的结构。

程序结构
树状结构、网状结构、

结构图
反应程序中模块中模块之间的层次调用关系和联系

模块
模块的调用关系和接口
模块之间的信息传递
表示模块A有条件地调用另一个模块

模块化
能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。
抽象化
软件系统进行模块设计时,可以有不同的抽象层次。

功能抽象:
抽象层次1(高层次的抽象):用问题所处环境的术语来描述这个软件。
抽象层次2:任务需求的描述。
抽象层次3:程序过程表示。

数据抽象:在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。
模块独立性:
模块:一般具有如下三个基本属性:功能、逻辑、状态、模块的独立性、采用耦合和内聚

模块间的耦合

低耦合:
1、非直接耦合:如果两个模块之间没有直接关系,这就是非直接耦合。
2、数据耦合:传输的都是简单的数据。
3、标记耦合:模块之间共用一部分。

中耦合:
4、控制耦合:模块之间可以改变相应之间的顺序。

较强耦合:
5、外部耦合:模块与外部设备相联系
6、公共耦合:模块共用全局的数据。两种情况:松散公共耦合和紧密公共耦合。

强耦合:
7、内容耦合:调用另一个模块的代码,模块有多个入口。

尽量使用数据耦合,少用控制耦合,限制公共耦合,不用内容耦合。

模块内聚。

1、功能内聚:一个模块完成的单一的功能。10
2、信息内聚:模块的组成部分,按照顺序来执行的。9
3、通信内聚:各个部分利用相同的输入或者相同的输出。7
4、过程内聚:某一部分划分组成模块。5
5、时间内聚:模块的内部必须在同一时间内完成。3
6、逻辑内聚(顺序性内聚):若干个逻辑功能相同的部分组成。1
7、巧合内聚:模块内各部分之间没有联系。0

结构化设计方法

首先研究、分析和审查数据流图。
然后根据数据流图决定问题的类型。数据处理问题的类型:变换型和事务型
针对两种不同的类型分别进行分析处理。

在系统结构图中的模块:传入模块、传出模块、变换模块、协调模块。
变换型系统结构图:
变换型数据处理问题的工作过程大致分为三步:取得数据、变换数据和给出数据。
事务型系统结构图:
按照所接收的事务类型,选择不同的模块!

变换分析:

1、重画数据流图
2、区分有效输入、有效输出和中心变换部分。
3、进行一级分解,设计顶层模块
4、进行二级分解,设计输入、输出和中心变换部分中、下层模块。

变换的注意事项:

1、在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成。
2、在设计下层模块时,应考虑模块的耦合和内聚问题
3、使用黑箱技术,先把这个模块的所有下层模块定义为黑箱。
4、划分时,一个模块的直接下属模块一般在五个左右。
5、出现一下问题,停止划分:
当模块不能再细分为明显的子任务时
当分解成用户提供的模块或程序库的子程序时
当面哦快的界面是输入/输出设备传送的信息时
当模块不宜再分解得过小时。

事务分析:

事务分析得过程:
1、识别事务源。
2、规定适当得事务型结构。
3、识别各种事务和他们定义得操作。
4、注意利用公共模块
5、对相同事务或联系紧密得进行合并
6、所有事务处理模块规定他们全部得下层操作模块
7、对操作模块规定它们得全部细节模块。

软件模块结构得改进

模块功能得完善化:
一个完整的模块应当由一下几个部分:
1、执行规定的功能的部分
2、出错处理的部分
3、给它的调用者返回一个结束状态标志。
消除重复功能,改善软件结构
1、完全相似
2、局部相似

模块的作用范围应该再控制范围之内:
1、模块的控制范围包括它本身及其所有的从属模块
2、模块的作用范围是指模块内一个判定的作用范围,凡是受到这个判定影响的所有模块都属于这个判定的作用范围。

尽可能减少高扇出结构,随着深度增大扇入。
避免或减少使用病态联接

1、直接病态连接;2、公共数据域病态连接;3、通信模块联接

模块大小的适中

通常规定其语句行数在50到100左右,保持在一页纸之内,最多不超过500行。
设计功能可预测的模块,但要避免过分受限制的模块。
软件包应满足设计约束和可移植性

概要设计说明书:

1、引言
1.1编写目的
1.2项目背景
1.3定义
1.4参考资料
2、任务概述
2.1目标
2.2运行环境
2.3需求概述
2.4条件与限制
3、总体设计
3.1处理流程
3.2总体结构和模块外部设计
3.3功能分配
4、接口设计
4.1外部接口
4.2内部接口
5、数据结构设计
5.1逻辑结构设计
5.2物理结构设计
5.3数据结构与程序的关系
6、运行设计
6.1运行模块的组合
6.2运行控制
6.3运行时间
7、出错处理设计
7.1出错输出信息
7.2出错处理对策
8、安全保密设计
9、维护设计

详细设计说明书

1、引言
1.1编写目的
1.2项目背景
1.3定义
1.4参考资料
2、总体设计
2.1需求概述
2.2软件结构
3、程序描述
3.1功能
3.2性能
3.3输入项目
3.4输出项目
3.5算法
3.6程序逻辑
3.7接口
3.8存储分配
3.9限制条件
3.10测试要点

  • 10
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值