【软工】面向过程软件设计

思维导图

正文

一、开发阶段的信息流

  从图中可以看出设计的来源是:信息域需求和功能和性能需求

二、软件设计任务

  概要设计主要完成系统结构设计,详细设计主要完成数据设计、过程设计。

三、软件设计基础

  1、自顶向下,逐步细化

将软件的体系结构按自定向下的方式,对各个层次的过程细节和数据细节逐层细化。把一个大问题分解成若干个子过程,分解的时候从最底层开始,以此类推,直到不能分解或一个模块智能完成一个单一的功能为止。

  2、 软件结构

软件结构包括两部分。一个是程序的模块结构,另一个是数据的结构。把一个问题分解成子问题,然后把子问题解决了就能把总的问题解决啦,这样做,能大幅度提高效率,降低复杂性。那么如何分解?分解成几个?这要根据开发经验和具体问题而言。

  3、程序结构

程序结构有两个树状结构和网状结构。树状结构层次清晰,概要设计要把树状结构设计出来。网状结构没有隶属关系,各个模块的接口相对较复杂。

  4、 结构图

  5、模块化

能够把一个大而复杂的软件系统按照问题的功能域划分成易于理解的比较单纯的模块结构。划分模块的时候要注意抽象,软件系统进行模块设计时,可有不同的抽象层次。抽象层次并不是一步到位,而是逐步抽象的。抽象包括功能抽象和数据抽象。

  6、抽象化

软件系统进行模块设计时,可有不同的抽象层次

  7、信息隐蔽

信息隐蔽是指在划分模块的时候,定义层次的时候,如果模块中数据发生变化时,尽量不影响其他模块的使用。模块的独立性是划分模块的重要原则。模块一般具有三个基本属性:功能、逻辑、状态。模块独立性衡量标准 高内聚,低耦合。

    模块间的耦合

    模块间的耦合

ps:尽量使用数据耦合,少用控制耦合,限制公共耦合,完全不用内容耦合。尽量做到高内聚,低耦合。

四、结构化设计方法

首先研究、分析和审查数据流图。
然后根据数据流图(上一阶段需求分析阶段产生)决定问题的类型。数据处理问题的类型有两种:一种是变换型,另一种是事务性。
针对两种不同的类型分别进行分析处理。

在系统结构图中的模块:

变换型系统结构图 :

大多数情况下采用变换型结构图。变换型数据处理问题的工作过程大概分为三步。即取得数据、变换数据和给出数据

变换分析:

变换分析方法由以下四步组成:重画数据流图、区分有效输入、有效输出和中心变换部分、进行一级分解,设计上层模块、进行二级分解,设计输入、输入和中心变换部分的中、下层模块。

事务型系统结构图:

它接受一项事务,根据处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。事务分析与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统到数据结构图。

事务分析:

1、识别事务源
2、规定适当的事务型结构
3、识别各种事务和他们定义的操作
4、注意利用公共模块
5、对每一事务,或对联系密切的一组事务,建立一个事务处理模块
6、对事务处理模块规定它们全部的下层操作模块
7、对操作模块规定它们的全部细节模块

五、软件模块结构的改进

1、模块功能的完善化
2、消除重复功能,改善软件结构
3、模块的作用范围应在控制范围之内
4、尽可能减少高扇出结构,随着深度增大扇入
5、避免或减少使用病态连接

六数据设计和文件设计

数据设计的原则

1、用于软件的系统化方法也适用于数据
3、应当建立一个数据词典并用它来定义数据和软件的设计
4、低层数据设计的决策应推迟到设计过程的后期进行
5、数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道
6、应当建立一个存放有效数据结构及相关操作的库
7、软件设计和程序设计语言应当支持抽象数据类型的定义和实现

文件设计

文件的设计过程,主要分两个阶段。第一个阶段是文件的逻辑设计,主要在概要设计阶段实施。第二个阶段是文件的物理设计。
1、整理必须的数据元素
3、确定文件的逻辑设计
4、理解文件的特性
5、确定文件的组织方式:顺序文件、直接存取文件
6、确定文件的存储介质
7、确定文件的记录格式
8、估算存取时间和存储容量

七、过程设计

过程设计实际上就是详细设计,在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。详细设计工具分为三类:图形工具、表格工具、语言工具。

八、程序流程图

程序流程图也称为程序框图,程序框图使用五种基本控制结构。即顺序型、选择型、先判定循环、后判定循环、多情况选择型。

程序流程图的标准符号

九、N-S图

也叫盒图。程序流程图过草地考虑到了控制流,使得程序的结构并不是很好,盒图看不到控制流。

五种基本控制结构由五种图形构件表示:

十、问题分析图(PAD)

也设置了五种基本控制结构的图形,并允许递归使用。问题分析图设计的程序结构一定是结构化程序:描述清晰,可以表示程序逻辑结构的异同和便于记忆,很容易表示高级层次,可以描述数据结构,支持自顶向下、逐步求精的方法。因此建议大家用PAD图和程序流程图。

十一、 判定表

用于程序的静态逻辑,在判定表中的条件部分给出的所有两分支判断的列表,动作部分给出相应的处理,要求将程序流程图中的多分支结构改成两分支判断。

十二、 PDL(Program Design Language)

用于描述功能模块的算法设计和加工细节的语言。是一种伪代码。可对其稍加改造,即可当做上机的代码。它可以提供全部结构化控制结构、数据说明和模块特征。能对PDL正文进行结构分割,使之便得易于理解。但是不如图形工具那么直观。

总结

        对于这章中的内容字节感觉掌握的不是很好,最开始的时候很乱,思维导图也画不出来,感觉知识点太多了,因此这章我看的视频也比较多,至少有三次,结果就出现了这篇文章中的总结,感觉在这章中主要讲的其实就是概要设计和详细设计。其实到现在我还是处于凌乱的状态的,欢迎大家多多指教~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值