软件工程基础图式(第四章 系统设计-面向过程的系统设计)

软件工程基础图式(第四章 系统设计-面向过程的系统设计)

1、结构化设计方法


2、在系统结构图中的模块


 

  

 3、变换型系统结构图


 

 

4、事务型系统结构图


  

 

 

 5、变换分析


 

 

 

 

 例子1:将下图的DFD/数据流图转换为软件/控制结构图(有误,看模式)

 

 

 

例子2:将下列数据流图转换为控制结构图

变换分析注意事项

  ① 在选择模块设计的次序时,必须对一个模块的 全部直接下 属模块都设 计完成之后, 才能转向另 一个模块的 下层模块的 设计。

  ② 在设计下层模块时,应考虑模块的耦合和内聚问题,以提高初始结构图的质量。

  ③ 使用“黑箱”技术: 在设计当前模块时,先把这个模块的所有下层模块定义成“黑箱”,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定义好的“黑箱”,在下一步就可以对它们进行设计和加工。这样,又会导致更多的“黑箱”。最后,全部“黑箱”的内容和结构应完全被确定。

  ④ 在模块划分时,一个模块的直接下属模块一般在5个左右。如果直接下属模块超过10个,可设立中间层次。

  ⑤ 如果出现了以下情况,就停止模块的功能分解:

  • 当模块不能再细分为明显的子任务时;
  • 当分解成用户提供的模块或程序库的子程序时;
  • 当模块的界面是输入/输出设备传送的信息时;
  • 当模块不宜再分解得过小时。

6、事务分析


 1)总述

 

 

 2)事务分析过程

3)例子:请将下图的DFD转换为软件结构图

 

 

 7、混合结构分析


 变换分析是软件系统结构设计的主要方法。一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。

 

 

 8、结构化组件设计


 

  • 伪代码:
    • begin:  
    • do a until b  
    • if a then b  
    • case 1:            break;  
    • end
    • 无分号,有大括号 

 9、软件工程基础图式(第四章 系统设计-面向对象的系统设计-面向对象用例和类设计)非重点,简略


 1)概念

   

2)面向对象设计与结构化设计的过程和方法完全不同,要设计出高质量的软件系统,记住:

  • 对接口进行设计(接口清晰)

  • 发现变化并且封装它(独立性)

  • 先考虑聚合然后考虑继承(可复制性)

3)面向对象设计活动之一——构架设计

  • 第1步 构造系统的物理模型

  • 第2步 设计子系统

    •   
  • 第3步 非功能需求设计

4)面向对象设计活动之二——进一步细化用例

  • 如何找实体类?
    • 实体类用于对必须存储的信息和相关行为进行建模

    • 实体类源于业务模型中的业务实体,但出于对系统结构的优化,可以在后续的过程中被分拆、合并

  • 如何找边界类?
  • 如何找控制类?

    • 控制类来源于对用例场景中动词的分析和定义

5)顺序图(重点)

  1》每个控制类还可以分别画出子顺序图

  2》顺序图的组成

  • 对象:用矩形框表示,其中是带下划线的对象名。对象横放在图的项部。

  • 生命线:用垂直虚线表示。在生命线上的窄矩形条被称为激活。

  • 激活期:表示该对象正在执行某个操作。激活矩形的长度表示出激活的持续时间。

  • 消息:用带箭头的实线表示。一个对象到另一个对象的消息用跨越对象生命线的消息线表示。对象还可以发送消息给它自己。
    • 消息可以是简单的、同步的或异步的。

    • 简单消息是从—个对象到另一个对象的控制流的转移。
    • 如果一个对象发送了—个同步消息,那么它要等待对方对消息的应答,收到应答后才能继续自己的操作。

    • 而发送异步消息的对象不需要等待对方的应答便可以继续自己的操作。

    •  在顺序图中,简单消息是—个简单箭头,同步消息是实心箭头。异步消息是—个半边箭头。

 

posted @ 2019-10-13 19:21  日月同诲  阅读(1280)  评论(0编辑  收藏  举报