软考系统架构设计师之软件系统建模

发布于:2025-09-11 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、软件系统建模

系统建模流程包括如下:在这里插入图片描述

二、人机交互设计

黄金三法则:
1、置于用户控制之下

以不强迫用户进入不必要的或不希望的动作的方式来定义交互方式
提供灵活的交互
允许用户交互可以被中断和撤销
当技能级别增加时可以使交互流水化并允许定制交互
使用户隔离内部技术细节
设计应允许用户和出现在屏幕上的对象直接交互

2、减少用户的记忆负担

减少对短期记忆的要求
建立有意义的缺省、
定义直觉性的捷径
界面的视觉布局应该基于真实世界的隐喻
以不断进展的方式揭示信息

3、保持界面的一致性

允许用户将当前任务放入有意义的语境
在应用系列内保持一致性
如过去的交互模型已建立起了用户期望,除非有迫不得已的理由,不要改变它

例子:
下列关于用户界面设计的叙述中,错误的是()。
A 界面交互模型应经常进行修改
B 界面的视觉布局应该尽量与真实世界保持一致
C所有可视信息的组织需要按照统一的设计标准
D 确保用户界面操作和使用的一致性

参考答案:A

三、结构化设计

概要设计【外部设计】:功能需求分配给软件模块,确定每个模块的功能和调用关系,形成模块结构图
详细设计【内部设计】:为每个具体任务选择适当的技术手段和处理方法

结构化设计原则:
模块独立性原则(高内聚、低耦合)
保持模块的大小适中多扇入,少扇出
深度和宽度均不宜过高(深度过高调用层次太多,宽度即分支多)

内聚:
高内聚-》低内聚

内聚类型
功能内聚 :完成一个单一功能,各个部分协同工作,缺一不可
顺序内聚:处理元素相关,而且必须顺序执行
通信内聚:所有处理元素集中在一个数据结构的区域上
过程内聚:处理元素相关,而且必须按特定的次序执行
时间内聚(瞬时内聚):所包含的任务必须在同一时间间隔内执行
逻辑内聚:完成逻辑上相关的一组任务
偶然内聚(巧合内聚):完成一组没有关系或松散关系的任务

耦合
低耦合 -》高耦合:
非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的
数据耦合:一组模块借助参数表传递简单数据
标记耦合:一组模块通过参数表传递记录信息(数据结构)
控制耦合:模块之间传递的信息中包含用于控制模块内部逻辑的信息
外部耦合:一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息
公共耦合:多个模块都访问同一个公共数据环境
内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口

模块四要素:
模块的四个要素
输入和输出: 模块的输入来源和输出去向都是同一个调用者,即一个块从调用者那儿取得输入,进行加工后再把输出返回调用者。
处理功能: 指模块把输入转换成输出所做的工作。
内部数据: 指仅供该模块本身引用的数据。
程序代码: 指用来实现模块功能的程序。

四、面向对象设计

1、基本过程
分析模型:分用例模型、分析模型(领域模型
设计师参与:设计用例实现方案、设计技术支撑实施、设计用户界面、细化设计模型
设计模型:架构图(用包图表示)、用例实现图(用交互图表示)、类图(完整、精确)、
其他(状态图、活动图等)
2、类的分类
边界类: 机器接口、API接口、人机交互、用户界面,例:窗口、通信协议、打印机接口、传感器、终端、报表、对话
框菜单、显示屏、二维码
控制类: 应用逻辑、业务逻辑、数据访问逻辑
例:身份验证器
实体类: 数据 例:学员类、课程类

3、面向对象设计原则
单一职责原则: 设计目的单一的类
开放-封闭原则: 对扩展开放,对修改封闭
李氏(Liskov)替换原则(里氏): 子类可以替换父类,泛化,子类继承了父类的所有特性
依赖倒置原则: 要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程,基于某个标准要求

接口隔离原则: 使用多个专门的接口比使用单一的总接口要好
组合重用原则: 要尽量使用组合,而不是继承关系达到重用目的
迪米特(Demeter)原则(最少知识原则):一个对象应当对其他对象有尽可能少的了解

例子:
最少知识原则(也称为迪米特原则)是面向对象设计原则之一,指一个软件实体应当尽可能少地与其他实体发生相互作用。这样,当一个实体被修改时,就会尽可能少地影响其他的实体。下列叙述中,“()”不符合最少知识原则。
A 在类的划分上,应当尽量创建松耦合的类
B 在类的设计上,只要有可能,一个类型应当设计成不变类
C 在类的结构设计上,每个类都应当尽可能提高对其属性和方法的访问权限
D 在对其他类的引用上,一个对象对其他对象的引用应当降到最低

参考答案:C

设计模式考得比较少,属于中级考试内容


网站公告

今日签到

点亮在社区的每一天
去签到