软件工程笔记(二)

后端 ngxz 6年前 (2019-04-29) 1274次浏览 已收录 扫描二维码

四、总体设计

目的:回答“概括的说,系统应该如何实现”

总体设计分两个阶段:

1.系统设计阶段,确定系统的具体实现方案

2.结构设计阶段,确定软件结构

1.设计过程

1.设想供选择的方案

2.选区合理的方案

3.推荐最佳方案

4.功能分解(结构设计及由哪些模块组成,确定每个模块的处理过程)

5.设计软件结构(层次图或者结构图)

6.设计数据库

7.制定测试计划

8.书写文档:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果

9.审查和复审

2.设计原理

1.模块化

把程序划分成独立命名且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求,把复杂的问题分解成容易解决的小问题

模块化和软件成本关系:根据总成本曲线,每个程序相应的有一个最适当得模块数目M,使系统的开发成本最小

2.抽象

抽出事务的本质特征而暂时不考虑他们的细节

3.逐步求精

4.信息隐藏和局部化

模块中所包含的信息不允许其他不需要这些信息的模块调用

信息局部化:把一些关系密切的软件元素屋里地址放的彼此靠近

5.模块独立

软件系统中每个模块只设计软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。

1.耦合

也叫块间关系。软件系统结构中各个模块间相互紧密联系程度的一种度量。

A.数据耦合:两个模块间彼此通过参数交换信息,交换的信息仅仅是数据

B.控制耦合:模块传递的信息中有控制信息

C.特征耦合:把整个数据结构作为参数传递,而被调用的模块是需要使用其中一部分数据

D.公共耦合:一组模块通过同一个共数据环境相互作用

E.内容耦合:1.一个模块直接访问另一个模块的内部数据

2.

2.内聚

也叫块内联系。一个模块内部各个元素彼此结合的紧密程度的度量。

A.偶然内聚

B.时间内聚

C.逻辑内聚

D.过程内聚

E.通信内聚

F.顺序内聚

G.功能内聚

模块的高内聚,低耦合原则叫做模块独立原则,也叫模块设计的原则。

五、详细设计

目的:确定应该怎样具体的实现所需要的系统。编码阶段可以直接吧这个描述翻译成莫衷语言书写的程序

1.结构程序设计

2.人机界面设计

1.设计问题

系统响应时间

用户帮助设施

出错信息处理

命令交互

2.设计过程

3.人机界面设计指南

一般交互指南

信息显示指南

数据输入指南

3.过程设计的工具

1.程序流程图

2.盒图(N-S图)

3.PAD(问题分析图表)图

4.判定表

5.判定树

6.过程设计语言(PDL)

正文形式表示数据和处理过程的设计工具

4.面向数据结构化的设计方法

1.jackson图

2.改进的jackson图

3.jackson方法

5.程序复杂程度的定量度量

六、实现

编码和测试统称为实现。

1.编码

1.选择程序语言

2.编码风格

1.程序内部文档

2.数据说明

3.语句构造

4.输入输出

5.效率

2.软件测试基础

1.目的:为了发现程序中的错误而执行程序的过程。

2.准则:

1.所有测试都应当追溯到用户需求

2.应该在测试开始之前指定出测试计划

3.pareto原理应用到测试中

4.从“小规模”开始到“大规模”

5.穷举测试是不可能的

6.为达到最佳测试效果,应有=由独立的第三方从事测试工作

3.测试方法

1.黑盒测试

2.白盒测试

4.测试步骤

1.单元测试(模块测试)

2.子系统测试:模块放在一起行成的子系统

3.系统测试:进过测试的子系统装配成完整的系统

4.验收测试(确认测试):验证系统能否慢足用户需求

5.平行运行:运行新旧系统,比较

5.测试阶段的信息流

3.单元测试


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:软件工程笔记(二)
喜欢 (0)