软件工程第四章——软件设计(仅记录我所认为重要的知识点)

软件工程第四章——软件设计

  • 软件设计
    • 好的设计的特点
    • 设计质量属性
    • 设计指导原则
    • 设计相关概念
  • 设计技术(面向过程)
    • 数据设计
    • 体系结构设计
      • 体系架构组织与细化的基本问题
    • 部署设计
    • 接口设计
    • 结构化的总体设计方法
      • 系统结构图中的模块
      • 变换型系统结构图
      • 事务性系统结构图
    • 结构化组件设计
  • 流程图
  • PDL程序设计语言(伪代码)
  • 判定表转换
  • 面向对象设计
    • 1.架构设计
      • 第一步 构造系统的物理模型
      • 第二步 设计子系统
        • 划分子系统
        • 定义子系统之间的关系
      • 第三步 非功能性需求设计
    • 2.用例设计
      • 类之间的关系
      • 分析类图
      • 细化用例
    • UML顺序图
      • 什么时候需要UML
    • 面向对象设计的四个层次

软件设计

是软件生命周期中的一个活动
是进行软件编码的基础
是软件需求分析被转化为软件的内部结构
是连接用户需求和软件技术的桥梁

好的设计的特点

  1. 设计必须实现在分析模型中包含的所有明确要求,必须满足客户所期望的所有隐含要求
  2. 设计必须对编码人员、测试人员及后续的维护人员是可读可理解的
  3. 设计应提供该软件的完整视图,从实现的角度解决数据、功能及行为等各领域方面的问题

设计质量属性

  1. 功能性
  2. 易用性
  3. 可靠性
  4. 性能
  5. 可支持性(包括:扩展性,适应性,可维护性)

设计指导原则

  1. 设计应该是一种架构
  2. 设计应该是模块化的
  3. 设计应该包含数据、体系结构、接口和组件各个方面

应该设计出系统所用的数据结构
应该设计出展现独立功能特性的各组件
应该设计出各组件与外部环境连接的各接口

  1. 设计由软件需求分析过程中获得信息驱动,采用可重复使用的方法导出
  2. 设计应该采用正确清楚的表示法

设计相关概念

  1. 抽象
  2. 体系结构
  3. 设计模式
  4. 模块化
  5. 信息隐藏
  6. 功能独立
  7. 精化
  8. 重构

设计技术(面向过程)

数据设计

体系架构组织与细化的基本问题

  1. 控制架构
  2. 数据传递

部署设计

输出部署架构,实施规范,实施计划

接口设计

系统结构图中的模块

事务性系统结构图

它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。

流程图

PDL程序设计语言(伪代码)

判定表转换

1.架构设计

架构设计的目的是要勾画出系统的总体结构,这项工作由经验丰富的架构设计师主持完成。
输入:用例模型、分析模型
输出:物理结构、子系统及其接口、概要的设计类

第一步 构造系统的物理模型

第二步 设计子系统

对于一个复杂的软件系统来说,将其分解成若干个子系统,子系统内还可以继续划分子系统或包,这种自顶向下、逐步细化的组织结构非常符合人类分析问题的思路。
每个子系统与其它子系统之间应该定义接口,在接口上说明交互信息,注意这时还不要描述子系统的内部实现。

划分子系统

按照功能划分,将相似的功能组织在一个子系统中
按照系统的物理布局划分,将在同一个物理区域内的软件组织为一个子系统
按照软件层次划分子系统,软件层次通常可划分为用户界面层、专用软件层、通用软件层、中间层和数据层

类之间的关系

细化用例

第1步:通过扫描用例中所有的交互图识别参与用例解决方案的类。在设计阶段完善类、属性和方法。例如,每个用例至少应该有一个控制
类,它通常没有属性而只有方法,它本身不完成什么具体的功能,只是起协调和控制作用。
每个类的方法都可以通过分析交互图得到,一般地检查所有的交互图发送给某个类的所有消息,这表明了该类必须定义的方法。例如“借
书控制”类向“读者”类发送“检查读者(读者编 )”消息,那么“检查读者”就作为“读者”类应该提供的方法。
第2步:添加属性的类型、方法的参数类型和方法的返回类型。
第3步:添加类之间的关系,包括关联、依赖、继承等。

UML顺序图

顺序图是强调消息时间顺序的交互图。
顺序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。
顺序图将交互关系表示为一个二维图。即在图形上,顺序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部;而消息则沿纵轴按时间顺序排序。创建顺序图时,以能够使图尽量简洁为依据布局。

  1. 生命线

软件工程第四章——软件设计(仅记录我所认为重要的知识点)
  1. 激活

什么时候需要UML

当一个用例涉及多个类时

面向对象设计的四个层次

确定系统的总体结构和风格,构造系统的物理模型,将系统划分成不同的子系统。
中层设计:对每个用例进行设计,规划实现用例功能的关键类,确定类之间的关系。
进行底层设计:对每个类进行详细设计,设计类的属性和操作,优化类之间的关系。
补充实现非功能性需求所需要的类。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月17日
下一篇 2022年2月17日

相关推荐