1 / 22

第 4 讲 系统设计

第 4 讲 系统设计. 系统设计的任务和过程 系统设计的基本原则 面向数据流的设计方法 面向对象的设计方法 模型 - 视图 - 控制器框架 系统设计说明书. 4.1 系统设计的任务和过程 系统设计的任务 将软件需求转化为软件表示的过程 软件的总体框架 ⇒ 细化 ( 子功能系统 / 模块 ) ⇒ 模块实现细节 ( 接近源代码 ) 系统设计的过程 1 、制定规范 2 、设计软件系统的总体结构 3 、处理设计 4 、处理数据结构 5 、设计可靠性 6 、系统设计阶段的文档编写 7 、系统设计评审.

Download Presentation

第 4 讲 系统设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4讲 系统设计 系统设计的任务和过程 系统设计的基本原则 面向数据流的设计方法 面向对象的设计方法 模型-视图-控制器框架 系统设计说明书

  2. 4.1 系统设计的任务和过程 系统设计的任务 将软件需求转化为软件表示的过程 软件的总体框架⇒ 细化(子功能系统/模块) ⇒模块实现细节(接近源代码) 系统设计的过程 1、制定规范 2、设计软件系统的总体结构 3、处理设计 4、处理数据结构 5、设计可靠性 6、系统设计阶段的文档编写 7、系统设计评审

  3. 4.2 系统设计的基本原则 软件设计 1、自顶先下,逐步细化 2、软件结构 划分软件的体系结构-子功能部件的划分 确定软件的数据结构 3、程序结构 1)程序的树状结构和网状结构 2)结构图 模块内容及图示 模块的调用关系和接口 模块间的信息传递 模块间的调用条件

  4. 结构图的形态特征 深度:软件结构中控制的层数,能粗略地标志一个系统的大小和复杂程度。 宽度:软件结构内同一个层次上的模块总数的最大值。一般说来,宽度越大系统越复杂。对宽度影响最大的因素是模块的扇出。 扇出:一个模块直接控制(调用)的模块数目。 扇入:调用一个给定模块的模块数,即有多少个上级模块直接调用这个给定的模块,扇入越大则共享该模块的上级模块数目越多。

  5. 3)数据结构 数据的组织、存取方式、相关程序及信息的不同处理方法 4)模块化 模块的独立性 5)抽象化 不同层次应采用不同的描述方式: 过程抽象 数据抽象 控制抽象 6)信息隐藏

  6. 模块设计 模块化设计的优点: 1)降低系统复杂性,方便系统开发和维护 2)实现各功能部分并行开发,提高生产效率 模块设计的因素: 模块-由一个总体标识符代表,并能通过该标识调用,由边界元素限定的相邻程序元素(如数据说明语句、可执行的语句等)构成的序列。 模块独立性-把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能以满足用户的需求。

  7. 耦合性-一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。耦合性-一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。

  8. 内聚性-一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。内聚性-一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。 内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。内聚和耦合都是进行模块化设计的有力工具,但是实践表明内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。

  9. 结构设计 根据问题域的数据来定义一组不同的“映射”,利用这些映射将数据流图变换成软件结构。 过程: 研究、分析和审查数据流图 根据数据流图确定数据处理的类为变换型或事务型 由数据流图推导出系统初始结构图、 利用一些启发式规则改进系统初始结构图 修改、补充数据字典 制定测试计划

  10. 4.3 面向数据流的设计方法 典型的系统结构图 1、系统结构图中的模块 完全因子分解的系统 四类模块:传入、传出、变换、协调模块 2、变换型系统结构图 3、事务型系统结构图

  11. 变换分析 1、重画数据流图 2、区分系统逻辑输入、输出和中心变换部分 3、一级分解,设计上层模块 4、二级分解,设计输入、输出和中心变换部分的中、下层模块

  12. 事务分析 1、识别事务源 2、规定适当的事务型结构 3、识别事务并定义事务操作 4、构造功用模块 5、建立事物处理模块 6、规定事务处理模块的全部下层操作模块 7、规定操作模块的全部细节模块 模块结构的改进

  13. 4.4 面向对象的设计方法 面向对象的基本概念和特征 模块化、信息隐藏、数据抽象、继承性、消息机制 面向对象的技术要点 方法的唯一性 各个阶段之间的高度连续性 OOA、OOD到OOP的集成 面向对象技术的基本原理:对问题领域进行自然的分解,按照人们习惯的思维方式建立问题领域的模型,设计出尽可能直接自然表现问题求解的软件。

  14. 面向对象分析模型(概念模型) 五个层次及其实现步骤: 标识对象 标识结构 标识主题 定义属性 定义服务

  15. 4.5 面向对象软件设计模型 设计模式描述 横向:问题域、人机交互、任务管理和数据管理 纵向:主题层、类-对象层、结构层、属性层和服务层 面向对象分析模型 对面向对象分析的扩充 面向对象设计模型 OOA向OOD的演进图 问题域 部分 人机交 互部分 任务管 理部分 数据管 理部分 主题层 类-&-对象层 结构层 属性层 服务层

  16. 设计模式分类 对象模型-定义做事情的实体,描述系统的数据结构,包括对象之间的关系、对象的属性和操作,用对象图表示。 功能模型-说明发生什么,只关心系统做什么,而不考虑怎么做,描述系统的功能结构,用数据流程图DFD描述。 动态模型-明确规定什么时候做(即在何种状态下接受了什么事件的触发),描述系统的控制结构,即:描述类的对象的状态和事件的正确次序。

  17. 在面向对象方法学中,对象模型是最基本的、最重要的,它为其他两种模型奠定了基础,我们依靠对象模型完成三种模型的集成。在面向对象方法学中,对象模型是最基本的、最重要的,它为其他两种模型奠定了基础,我们依靠对象模型完成三种模型的集成。 三种模型的关系: 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。 状态转换驱使行为发生,这些行为在数据流图中被映射成处理,它们同时与对象模型中的服务相对应。 功能模型中的处理,对应于对象模型中类-&-对象所提供的服务。 功能模型中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。 功能模型中的数据流往往是对象模型中的属性值,也可能是整个对象。 功能模型中的处理可能产生动态模型中的事件。 对象模型描述了功能模型中的动作对象、数据存储以及数据流的结构。

  18. 4.6 模型-视图-控制器框架 MVC模式(model-view-controller) MVC中的模型类、视图类和控制类

  19. MVC的实现

  20. 4.7 系统设计说明书 用户界面处理 输出处理 输入处理 处理与控制 维护与测试 结构模板

  21. 作业: 1、什么叫面向对象?面向对象方法的特点是什么? 2、如何理解模块独立性?用什么指标来衡量模块独立性?

More Related