软考系统分析师知识点十五:系统设计

前言

今年报考了11月份的软考高级:系统分析师。

考试时间为:11月9日。

倒计时:22天。

目标:优先应试,其次学习,再次实践。

复习计划第一阶段:扫平基础知识点,仅抽取有用信息,可有缺失,但得过眼。

第十三章:系统设计

内容总结

知识点 1:系统设计概述

  • 概念:系统设计是系统分析的延伸,解决"怎么做"的问题,为系统实施工作做好准备,是信息系统开发中的重要阶段。
  • 解释:系统设计阶段包括概要设计和详细设计,旨在根据系统规格说明书中的功能性需求,结合实际条件,设计实现逻辑模型的技术方案。
  • 细节分项
    • 概要设计:确定软件模块结构图,分配功能需求到软件模块。
    • 详细设计:包括网络设计、代码设计、输入输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。

知识点 2:处理流程设计

  • 概念:处理流程设计是系统详细设计的重要组成部分,目的是确定系统模块的内部结构和执行过程。
  • 解释:通过对业务流程的设计来建模现实世界,提高业务处理的效率和准确性。
  • 细节分项
    • 流程设计工具:包括程序流程图、IPO图、N-S图、问题分析图、过程设计语言、判定表、判定树等。
    • 工作流管理系统(WFMS):定义、创建工作流并管理其执行的系统,包括工作流执行服务、工作流引擎、流程定义工具、客户端应用、调用应用和管理监控工具。

知识点 3:结构化设计

  • 概念:结构化设计是一种面向数据流的设计方法,强调模块化和自顶向下的设计过程。
  • 解释:通过模块结构图(SC)反映系统的功能实现和模块间的联系与通信。
  • 细节分项
    • 模块结构:模块是系统的基本信息单位,应遵循高内聚、低耦合的设计原则。
    • 耦合与内聚:描述模块间联系的紧密程度和模块内部联系的紧密程度。
    • 模块类型:包括原子模块、传入模块、传出模块、变换模块和协调模块。
    • 系统结构图(SC):反映系统的总体结构,包括变换型、事务型和混合型SC。

知识点 4:面向对象设计

  • 概念:面向对象设计(OOD)是一种以对象为核心的设计方法,强调抽象、封装和可扩展性。
  • 解释:OOD通过类和对象来模拟现实世界,提高系统的可复用性和可维护性。
  • 细节分项
    • 类的设计:包括实体类、控制类和边界类。
    • 对象持久化:涉及将内存中的对象状态保存到数据库中,以及从数据库加载对象状态。
    • 设计原则:包括开闭原则、里氏替换原则、依赖倒置原则、组合/聚合复用原则、接口隔离原则和最少知识原则。

知识点 5:设计模式

  • 概念:设计模式是被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
  • 解释:设计模式提供了一套通用的解决方案来解决特定环境下的特定问题,提高代码的可重用性和可维护性。
  • 细节分项
    • 创建型模式:如工厂方法模式、抽象工厂模式、原型模式、单例模式和建造者模式。
    • 结构型模式:如适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。
    • 行为型模式:如职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。

不常见概念

用户界面设计的三原则:

  1. 置于用户控制之下

    • 概念:用户界面设计应允许用户以自己的节奏和方式控制交互过程。
    • 详细概念阐述:这意味着用户应该能够自由地开始和结束任务,而不会被迫遵循软件预设的严格流程。用户应该能够随时中断操作,并在准备好时恢复。此外,随着用户技能的提升,界面应允许更高级的交互方式,并允许用户定制交互方式。
  2. 减轻用户的记忆负担

    • 概念:用户界面设计应尽量减少用户需要记忆的信息量。
    • 详细概念阐述:界面应提供直观的提示和指导,使用户能够轻松地理解如何操作软件。例如,通过使用常见的图标和菜单结构,用户可以基于以往的经验来预测软件的行为。此外,界面应提供帮助文档和搜索功能,以便用户在需要时能够快速找到所需信息。
  3. 保持界面一致性

    • 概念:用户界面设计应在整个应用程序中保持一致性。
    • 详细概念阐述:一致性涉及多个方面,包括视觉元素(如颜色、字体和图标)、布局、操作反馈和术语的使用。一致的界面可以帮助用户建立清晰的心智模型,从而更快地学习和适应软件。

流程设计工具

  1. 程序流程图(Program Flow Diagram, PFD)

    • 概念:程序流程图是一种传统的流程设计工具,它使用一系列标准化的图形符号来表示算法或流程中的操作步骤。
    • 详细概念阐述:PFD通过图形框、箭头和流程线来展示操作的顺序和流程的分支。它包括开始/结束符号、处理步骤、决策点(通常用菱形表示)、输入/输出操作等。
    • 进一步解释说明:PFD的优点在于直观易懂,适合非技术人员理解流程。但它的缺点是可能不够严格和形式化,容易受到个人绘制风格的影响。
  2. IPO图(Input-Process-Output Chart)

    • 概念:IPO图是一种强调模块输入、处理和输出的流程图,它源自IBM公司的软件开发实践。
    • 详细概念阐述:IPO图将每个处理模块表示为一个矩形框,框内详细描述了模块的输入、处理过程和输出。这种图表有助于清晰地展示数据处理的逻辑。
    • 进一步解释说明:IPO图适用于描述模块化的软件设计,它强调了模块之间的接口和数据流,有助于开发者理解和维护代码。
  3. N-S图(Nassi-Shneiderman Diagram)

    • 概念:N-S图,也称为盒图,是由Nassi和Shneiderman提出的流程设计工具,它使用盒状符号来表示流程中的不同部分。
    • 详细概念阐述:N-S图通过盒子和流程线来表示处理步骤和决策点,它强调了结构化编程的概念,如顺序、选择、循环等控制结构。
    • 进一步解释说明:N-S图的优点在于其结构化特征,它强制设计者按照特定的控制结构来组织流程,有助于提高程序的可读性和可维护性。
  4. 问题分析图(Problem Analysis Diagram, PAD)

    • 概念:问题分析图是由日立公司提出的流程设计工具,它是一种支持结构化程序设计的图形工具。
    • 详细概念阐述:PAD通过节点和流程线来表示问题的各个部分,每个节点代表一个问题的特定方面,流程线则表示这些方面之间的关系。
    • 进一步解释说明:PAD的优点在于它能够清晰地展示复杂问题的逻辑结构,有助于设计者识别和解决问题的关键部分。
  5. 过程设计语言(Process Design Language, PDL)

    • 概念:过程设计语言是一种混合语言,它结合了自然语言和结构化程序设计语言的语法,用于描述处理过程的具体细节。
    • 详细概念阐述:PDL使用类似于编程语言的语法来描述算法和逻辑,但它比真正的编程语言更加灵活和简洁。它通常用于在编程之前描述程序的逻辑流程。
    • 进一步解释说明:PDL的优点在于它结合了自然语言的表达力和程序设计语言的结构化特性,使得设计者能够以一种更接近自然语言的方式来描述和交流设计思路。
  6. 判定表(Decision Table)

    • 概念:判定表是一种表格形式的流程设计工具,用于表示复杂的决策逻辑。
    • 详细概念阐述:判定表通过行和列来表示不同的条件和动作,它有助于设计者系统地分析和表示复杂的决策规则。
    • 进一步解释说明:判定表特别适用于处理多个条件组合和相应的动作选择,它有助于确保决策逻辑的完整性和一致性。
  7. 判定树(Decision Tree)

    • 概念:判定树是一种图形化的流程设计工具,用于表示决策逻辑。
    • 详细概念阐述:判定树通过树状结构来表示决策过程中的条件和分支,每个节点代表一个决策点,分支代表不同的决策结果。
    • 进一步解释说明:判定树的优点在于它提供了一种直观的方式来展示决策逻辑,有助于设计者理解和优化决策流程。

写在最后

以上均为粗看教程的总结,目的不是为了百分之百准确,而是为了过手过脑,有所印象。

但是如有发现谬误,感谢各位随时指出。

-- 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。

相关推荐
程序员鱼皮3 小时前
6 年 30k star,这个明星项目停止更新!
计算机·程序员·互联网·github·编程
XiaoYu20021 天前
31.JS高级-包管理工具详解
前端·javascript·程序员
Javatutouhouduan2 天前
Java程序员如何获得高并发经验?
java·分布式·后端·程序员·高并发·架构师
FirstMrRight3 天前
一起读本书吧~《认知觉醒》,潜意识里有你要的答案
程序员
我要改名叫嘟嘟4 天前
过去四年,读过的那些心理学书籍
程序员
anOnion5 天前
37 岁程序员被裁日记
面试·程序员
正点原子7 天前
《DNK210 使用指南 -CanMV 版 V1.0》第二十二章 六轴传感器——原始数据读取实验
程序员·产品
尸僵打怪兽7 天前
1024是什么日子
程序员·程序员创富·1024
程序员鱼皮8 天前
1024 程序员节,我做了个闯关小游戏!
前端·后端·计算机·程序员·互联网·编程·网站·代码