软件设计师笔记——(第六章:结构化开发)

目录

一、下午题总结(试题一)(⭐⭐⭐)

1、第一、二问总结

2、第三问总结

3、第四问总结

二、系统设计基本原理(⭐⭐⭐)

1、耦合 

2、内聚 

三、系统总统设计结构(⭐⭐)

四、系统文档(⭐⭐)

五、结构化开发方法(⭐⭐⭐)

六、零碎知识点 (⭐⭐)


一、下午题总结(试题一)(⭐⭐⭐)

1、第一、二问总结

1.根据说明中的功能与子图进行对比,能够相对容易的确定外部实体(E)和数据存储(D)。

2、第三问总结

  • ①三步走:第一步保持父图和子图平衡(将父图中的数据流与子图中的数据流进行比较,父图中有的子图一定要有),第二步每个加工必须要有既有输入流又有输出流,第三步数据守恒(根据说明中的文字去添加子图中的数据流)。

  • 在进行第三步数据守恒时,着重注意“根据......进行.......”、“将......做......”、“对......做......”,“进行误差分析”,“更新数据”字眼。

  • 在进行数据流命名时,根据说明里的原文的文字、或者是借鉴子图中的其他类似的命名。

  • ④最后一定检查一下数据流的一端是不是一定有加工。不可能存在某一加工(孤零)或孤立于系统之外。

3、第四问总结

1.实体E1和实体E2之间可否有数据流?

  • 答:E1和实体E2之间不可以有数据流,因为数据流的起点和终点必须有一个是加工。

2.根据加工,“数据处理”可以分解为哪些子加工?进一步分解时需要注意哪三种常见的错误?

  • 根据说明“数据理解”可以分为:“......”、“......”、........。
  • 需要这3方面:①加工有输入当时没有输出。②加工有输出但是没有输入。③加工的输入不足以产生输出。

3.根据说明,采用结构化语言对“寻找物流商“的加工逻辑进行描述。(每个IF后面都会跟着一个THEN,ELSE后更c语言一样什么都不跟)(每个IF对应的整个语句结尾跟一个ENDIF)

寻找物流商:
有新订单时,若为保卖车或全国购,则直接分配到竞拍体系中;
否则,若符合固定路线和/或包车路线,系统自动分配给合约物流商,
若不符合固定路线和包车路线,系统将订单信息分配到竞拍体系中。
竞拍体系接收到订单后,将订单信息推送给有相关路线的物流商,
物流商对订单进行竞拍出价,最优报价的物流商中标。
最后,给承运的物流商发送物流消息,
更新订单的物流信息,给车辆交易系统发送物流信息。
------------------------------------------------------
接受新订单
IF 是保卖车或全国购
  THEN 执行竞拍体系,最优报价物流商中标
ELSE
  IF 订单路线有固定路线/或包车路线
    THEN 自动派发给物流商
  ELSE 执行竞拍体系,最优报价物流商中标
  ENDIF
ENDIF
给物流商发送物流信息
更新订单的物流信息
给车辆交易系统发送物流信息
缺陷检测。根据检测模型和检测质量标准对
图像采集所收到的产品检测信息中所有图像
进行检测或所有图像检测合格。
若一个产品出现一张图像检测不合格,就表示该产品不合格,
对不合格产品,其检测结果包括,产品型号和不合格类型。
------------------------------------------------
接收到产品检测信息
对所有图像进行检测
IF 一个产品出现一张图像检测不合格
  THEN 该产品不合格
    不合格产品的检测结果包括产品型号和不合格类型
ENDIF

4.图1和图2如何保持数据平衡?

  • 父图中加工的输入输出数据流必须与子图中输入输出流在数量上和名字上相同。
  • 父图中的一个输入(输出)数据流对应子图中几个输入(输出)数据流,而子图中组成这些数据流的全体正好是父图中这一条数据流。

5.若将发送给学生和讲师的通知改为通过第三方E-mail系统进行的,进行了什么修改?

  • 图1和图2都(可能需要进行分别讨论,具体根据题目而定)增加了”E-mail系统“实体,并将所有通知数据流的终点改为”E-mail系统“。(数据流的起点和终点必须有一个是加工。)

二、系统设计基本原理(⭐⭐⭐)

1.抽象

2.模块化:将待开发的软件分解成若干个小的模块。(目的:使程序的结构清晰,容易理解、阅读、测试、修改)

3.信息隐蔽

4.模块独立:希望每个模块都是”高内聚、低耦合“(模块内要团结,模块间少牵扯)。

  • 耦合:模块之间的相对独立性的度量(武术骠空外公内)。
  • 内聚:一个模块内部各个元素彼此结合的紧密程度的度量。

1、耦合 

  • ①无直接耦合:模块间没有直接关系,分别从属于不同模块的控制和调用。

  • ② 数据耦合:两个模块之间有调用关系,传递的是简单的数据值。

  • ③标记耦合:两个模块之间传递的是数据结构

  • ④控制耦合:传递的是控制变量。

  • ⑤外部耦合:模块间通过软件之外的环境联结(I/O)

  • ⑥公共耦合:通过一个公共数据环境相互作用的耦合。

  • ⑦内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时。

2、内聚 

  • ①偶然内聚(巧合内聚·):一个模块内的各处理元素之间没有任何联系。

  • ②逻辑内聚:模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

  • ③时间内聚:把需要同时执行的动作组合在一起形成的模块。

  • ④过程内聚:一个模块完成多个任务,这些任务必须按指定的过程执行。

  • ⑤通信内聚:指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同输入数据或产生相同的输出数据。

  • ⑥顺序内聚:指一个模块中的各个处理元素都密切相关同一功能且必须顺序执行。

  • ⑦功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。
     

3、经典例题 

三、系统总统设计结构(⭐⭐)

1.系统结构设计原则

  • ①分解-协调原则 (了解)
  • ②自顶向下原则 (了解)
  • ③信息隐蔽抽象的原则 (了解)
  • ④一致性原则(了解)
  • ⑤明确性原则。每个模块必须功能能明确、接口明确、消除多重功能和无用接口。
  • ⑥模块之间的耦合尽可能小,模块的内聚度尽可能高。
  • ⑦模块的扇入系数和扇出系数要合理。(尽量减少高扇出结构)
  • ⑧模块的规模适当。(不能过大或者过小)重点
  • ⑨模块的作用范围应该在其控制范围之内。

2.MVC分层架构解耦之后,有利于代码重用、提高系统可维护性、提高系统开发效率(但是无法提高系统的运行效率)

3.将相似的功能合并不能改进设计质量。

4、经典例题 

四、系统文档(⭐⭐)

1.用户与系统分析人员联系方式

  • 可行性分析报告、总体规划报告、①系统开发合同、②系统方案说明书(①②构成了开发计划)

2.系统开发人员与项目管理人员联系方式

  • 系统开发计划(任务分解表、PERT图、Gant图)、系统开发月报、系统开发总结报告

3、经典例题 

五、结构化开发方法(⭐⭐⭐)

1.数据流图(DFD):分为变换流、事务流

  • 顶层数据流图→父图(描述了输入输出),0图→子图
  • 外部实体(▭):独立于系统之外的人、物、系统等。
  • 加工(▢):①只有输入没有输出的是黑洞;②只有输出没有输入的是白洞;③加工的输入数据不足以产生输出数据的是黑洞。
  • 数据存储(═):①从加工流向数据存储(写);②从数据存储流向加工(读);③从外部实体流向加工(输入);④从加工流向外部实体(输出);⑤从一个加工流向另一个加工。数据流的起点和终点必须有一个是加工。

2.数据字典(DD)

  • 为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。
  • 分为四类:数据流条目、数据存储条目、加工条目(不用将实现加工的具体流程说出来)、数据项条目(数据项是组成数据流和数据存储的最小元素)

3.加工逻辑:常用的加工逻辑描述方法有结构化语言、判定表和判定树3种。

  • 结构通常分为内层和外层(顺序结构、选择结构、重复结构)。

 4、经典例题

六、零碎知识点 (⭐⭐)

1.设计子系统不用考虑数据结构与算法(过程设计所考虑的)

2.界面设计的3条黄金原则:用户操纵控制、减少用户记忆负担、保持界面一致

3.结构图的基本成分:模块、调用、数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大小胖虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值