系统分析和设计指南

系统分析是系统设计中“做什么”之前的“如何” 。它提供了构建一个能够有效且高效地解决预期问题的系统的基本路线图。“想象一下你正在建造一座梦想之家。如果没有详细的蓝图,你不会开始敲钉子,对吧?“软件开发也是如此。”

系统分析是蓝图,而系统设计将其转化为实际系统。

1.信息系统(IS)
信息系统是系统设计、塑造架构数据管理、用户交互和开发过程不可或缺的一部分。
通过仔细考虑 IS 的作用,系统设计人员可以创建强大、用户友好且满足目标用户需求的系统。
信息系统的六大组成部分:

2.系统分析的特征(属性)
系统分析的属性是:

  • 组织——组件的安排。
  • 交互——每个组件与其他组件一起运行的过程。
  • 相互依赖——一个组件对另一组件的依赖。
  • 集成——指系统如何连接在一起。
  • 中心目标——系统要实现的目标。

3.系统分析的分类
系统分析分类如下:
  • 正式系统——计划或记录的程序。例如 – 预定的会议。
  • 非正式系统——程序中未描述。例如 – 通过电话的销售订单处理系统
  • 物理系统——有形实体,可以是静态的或动态的。例如——计算机。
  • 抽象系统——概念实体。例如——公司。
  • 开放系统——接收输入并向环境提供输出。例如——组织。
  • 封闭系统– 不受环境影响。现实中很少见
  • 手动系统– 需要人工干预。例如——铁路售票柜台
  • 自动化系统——不需要人工干预。例如 – 交通控制系统

实时系统——具有严格时间限制的交互式处理系统。有两种类型的实时系统。他们是:
  • 硬实时系统按时完成关键任务。例如 – 雷达系统
  • 软实时系统是限制较少的实时系统类型。例如 – 工业控制系统

系统用户——使用信息系统的人。
  • 内部用户– 企业员工
  • 外部用户– 企业的客户

4.分布式系统
分布式系统:数据、处理和接口组件分布到计算机网络中的多个位置。
分布式系统的优点:
  • 资源共享 –允许多台计算机共享文件、打印机和处理能力等资源。
  • 计算加速– 由于同时进行计算,因此任务执行速度更快。
  • 可靠性——如果一个组件或节点发生故障,系统可以使用替代资源继续运行。
  • 通信——促进节点之间的高效通信,使它们能够无缝地交换信息。

分布式系统架构的五层是:
  1. 表示层是实际的用户界面,有助于输入和输出操作。
  2. 表示逻辑层包括建立用户界面的处理。
  3. 应用逻辑层包括支持应用程序的所有逻辑和处理
  4. 数据操作层包括用于存储和检索数据的所有命令和逻辑。
  5. 数据层是数据库中实际存储的数据

5.系统分析与设计
  • 系统分析——这涉及研究现有系统或新系统的需求,以设计有效的系统。
  • 系统设计——涉及创建结构良好的系统并仔细考虑目标和要求的过程。

开发途径
使系统开发不再是一门艺术而更多地成为一门科学(通常称为工程技术)的尝试被应用于系统开发。技术是:

  • 原型设计- 设计和构建所需系统的缩小但基本版本称为原型设计。
  • 联合应用程序设计 (JAD) – 用户、经理和系统开发人员聚集在一起,参加由 JAD 会议负责人主持的一系列密集的结构化会议。
  • 参与式设计(PD) ——每个用户在确定系统需求和批准系统设计方面拥有平等的份额

6.系统分析师
系统分析师是负责分析需求和设计信息系统的人员。
系统分析师的角色

  • 变革代理——对用户组织进行变革。
  • 调查者和监控者——调查现有系统以找出其失败的原因,并监控有关时间、成本和质量的计划。
  • 架构师– 创建候选系统的详细物理设计。
  • 心理学家– 解释用户的想法,并评估他们的行为以找到有关系统的事实。
  • 激励因素——有效的用户培训和使用系统的适当激励。
  • 中介——与人们打交道以接受系统的外交。

系统分析师的职责
  • 定义需求- 了解用户的需求。
  • 通过共识确定需求的优先级——与所有其他用户会面并达成共识。
  • 分析——分析当前系统的工作情况
  • 解决问题– 确定替代解决方案并为特定问题选择最佳解决方案。
  • 制定功能规范——精确而详细的规范,以便系统实施者可以使用。
  • 设计系统——规格被接受后,分析师设计系统
  • 评估系统——在系统使用一段合理时间后对其进行评估。

系统分析师的资格
  • 分析技能——包括系统研究、组织知识、问题识别、问题分析和问题解决。
  • 技术技能– 包括编程语言、操作系统、DBMS、不同类型计算机的知识
  • 管理技能——包括资源管理、项目管理、风险管理、变革管理
  • 人际交往能力——包括沟通技巧、单独工作和团队合作、促进团队合作以及管理期望。

7.系统开发生命周期(SDLC)
SDLC(即软件开发生命周期)是许多组织使用的一组通用的系统开发步骤。
SDLC 主要由七个步骤或阶段组成。这些都是:

  • 项目识别和选择——识别新的或改进的系统的需求并选择系统的优先级。
  • 项目启动和规划——详细的工作计划、系统范围规范和高级系统要求。
  • 分析——包括需求和可行性研究。
  • 逻辑设计——它不依赖于任何特定的硬件和系统软件平台。
  • 物理设计——将逻辑设计转化为技术规范。
  • 实施——包括编码、测试和安装。
  • 维护– 根据用户要求进行更改并修改系统以反映和支持不断变化的业务条件。

8. 系统文档
文档记录——这是关于系统的交流过程。
文档编制过程涉及的步骤是:

  • 收集文档源材料
  • 文档计划
  • 计划检讨
  • 创建文档
  • 文件测试
  • 维护文档

9.系统需求规范(SRS)
它是一组完整且精确表述的属性以及软件必须满足的系统约束。
SRS 的特征

  • 明确——所规定的每项要求只有一种解释。
  • 完整——它应该包括系统用户预期的所有功能和约束。
  • 现实且可实现——要求应该是现实的并且可以通过当前技术实现。
  • 可验证一致——任何要求都不应与任何其他要求相冲突。
  • 可修改——可以轻松对需求进行任何必要的更改。
  • 可追溯——每项要求的来源必须明确。
  • 有用——SRS 必须满足操作和维护阶段的需求。

SRS 文档的结构或概要:
  • 简介——包括其目的、范围和目标。
  • 关于系统的信息描述——包括信息流表示、子系统和系统接口的描述,以及它旨在解决的问题。
  • 系统的功能描述- 包括限制、限制、性能、设计约束和软件图。
  • 测试和验证标准– 包括性能限制和预期的软件响应。
  • 术语表– 文档中使用的所有技术或软件特定术语的定义。
  • 参考书目– 与软件相关的所有文档的参考。

系统设计规范或软件设计规范
它可以让您完整地了解系统每个组件的细节及其相关算法等。

10.事实调查技术或信息收集技术
用于收集与现有系统相关的数据以了解现有系统的功能的技术。各种事实调查技术包括:

  • 访谈——这是重要的事实调查技术,系统分析师通过面对面的互动从个人那里收集信息。
  • 小组讨论——来自不同部门的系统分析师邀请一组工作人员进行讨论。
  • 现场访问– 系统分析师访问现场以获取有关系统工作的信息。
  • 演示– 客户对现有系统或组织进行演示。
  • 调查问卷——允许分析师收集信息和意见的特殊目的文件。

访谈
涉及的步骤是介绍、提问、记录访谈和进行最终检查。访谈有两种类型:

  • 结构化——向受访者提出一组特定的问题。
  • 非结构化——没有特定的问题集,只有一个总体目标或主题。

访谈的优点
  • 获取个人的看法
  • 问题更清晰
  • 受访者自由、公开地回答

访谈的缺点
  • 非常耗时
  • 取决于系统分析师的人际交往能力
  • 由于位置原因可能不切实际

可行性研究
包括确定组织开发信息系统范围的活动。有不同的可行性研究,例如

  • 技术可行性——涉及系统开发所需的硬件、软件和专业知识。
  • 运营可行性——所有关于运营过程中可能出现的问题,如有用信息、响应时间、准确性、安全性和效率。
  • 经济可行性——判断解决问题的可能好处是否值得。
  • 法律可行性——考虑版权法、劳动法、反垄断立法、法规等。

成本效益分析
它涉及根据系统带来的预期收益来分析与实施和运营系统相关的成本。不同的费用是

  • 人力资源成本——系统分析师、软件工程师、程序员、数据输入操作员和文员的工资。
  • 基础设施成本——包括计算机、电缆、软件等。
  • 培训成本——开发和操作人员需要接受新技术和系统的培训。

11. 模块化和结构化设计
设计——它弥合了规范和编码之间的差距。设计的一些属性包括可验证性、可追溯性、完整性、一致性、效率和简单性。
设计原则
这些原则旨在有效地处理设计的复杂性。
这些原则是:

  • 问题划分——系统被划分为独立的模块。
  • 抽象——设计组件的外部视图,而不用担心实现的细节。
  • 自上而下的设计——将主要组件分解为其从属级别的组件并进行交互,直到达到所需的详细程度。
  • 自下而上的设计——组合模块以提供更大的模块,编译这些模块以提供更大的模块,如此直到我们到达一个大模块的过程。这种方法更合适,因为它从一些现有模块开始。
  • 结构图——它描述了系统划分为程序及其内部结构。
  • 模块化——意味着将系统分解为可以单独编码的更小的组件(模块)。

良好设计的准则是:
  • 分解——一个系统应该被划分为尽可能多的相对独立的模块。
  • 一个上级模块控制的下级不超过7个。
  • 耦合——模块之间的依赖程度应该最小。
  • 内聚性——一个模块不应执行多个功能。

耦合
模块之间的通信应该通过参数来进行。布尔变量或标志可用于通信。联轴器有五种类型:
  • 数据耦合:数据通过参数传递进行通信。
  • 邮票耦合:数据结构通过参数传递进行通信。
  • 控制耦合:控制信息通过参数传递进行通信。
  • 公共耦合:多个模块使用的全局数据区域。
  • 内容耦合:一个模块可以访问另一个模块内的数据并更改它。模块的代码也是如此。

凝聚
模块本身符合单个任务的性能。
内聚力有七种类型。他们是:
  • 功能内聚:如果模块中的每条指令都与单个任务相关。
  • 顺序 Cohesio:模块中的所有指令都彼此相关,传递到模块的数据和指令的顺序很重要。
  • 通信内聚:模块中的所有指令都彼此相关,传递到模块的数据和指令的顺序无关紧要。
  • 程序内聚:指令通过控制流相互关联。
  • 时间内聚:所有指令仅通过控制流相互关联,与其顺序无关。
  • 逻辑内聚: 模块中指令之间的关系为零或最低限度。
  • 巧合内聚:模块中的指令之间没有关系。

12. 表单设计
表单用于从用户收集数据。表单设计是指创建直观且用户友好的表单的过程。
输入表单中使用的常见 GUI 控件包括:

  • 文本框:允许输入单行或多行字符。
  • 单选按钮:帮助快速识别和选择特定值。
  • 复选框:提供“是/打开”值的选项。
  • 列表框:需要从可能的选择列表中选择数据项的值。
  • 下拉列表:表明存在可能值的隐藏列表。
  • 组合框:结合了文本框和列表框的功能。
  • 旋转框:允许用户使用导航按钮进行输入选择。

表单设计标准
为了创造一个构思良好且有吸引力的设计形式,我们必须满足以下标准:
  • 组织:表单元素逻辑排列,信息结构清晰直观。
  • 一致性:设计元素、布局、字体和颜色的标准化。
  • 完整性:包含所有必要的字段,避免不必要或多余的问题。
  • 灵活输入:适应各种输入格式,清晰的说明和用户指导验证。
  • 经济:形式简洁,要素丰富,信息收集均衡,方便用户。

13. 报告设计
报告用于以结构化格式呈现和总结数据。报表设计是指创建清晰、有组织且用户友好的布局来显示信息的过程。
报告设计的输出类型

  • 内部输出– 适用于系统所有者和组织内的用户。示例:详细报告、摘要报告等。
  • 外部输出– 适用于客户、供应商、合作伙伴和监管机构。例如:发票、账户报表、工资支票、电话账单等。

报告设计标准
为了生成一份好的报告,应考虑以下标准:

  • 相关性:重点关注对报告目标至关重要的信息。
  • 准确性:确保数据和事实可靠且无错误。
  • 清晰度:使用清晰的语言、简洁的格式和视觉辅助工具进行有效的沟通。
  • 及时性:确保信息保持最新且适用。
  • 成本:平衡报告的质量与相关成本。

用户界面设计
它涉及创建促进用户和计算机系统之间有效通信的界面。它专注于使交互直观、高效且用户友好。
如果您有兴趣了解更多关于设计的知识,可以参考#设计模式教程。

14.流程建模或数据流图(DFD)
功能和过程的图形表示,用于在系统内的组件之间捕获、操作、存储和分发数据。
数据流图(DFD)的组成部分是:

  • 数据的实体或源或接收器:包括数据的源和目的地。
  • 流程:对数据执行的任务称为流程。
  • 数据存储:数据存储包括系统的数据库。
  • 数据流:数据在系统中的移动称为数据流。


DFD 组件的符号。
15. CASE工具——计算机辅助软件工程工具
支持软件开发过程任何部分的管理、技术或行政方面的所有软件都称为 CASE 工具。
CASE工具的使用:

  • 促进单一设计方法:帮助开发过程的标准化。
  • 快速应用开发:提高系统开发的速度和质量。
  • 测试:通过自动检查增强测试过程。
  • 文档:提高文档的质量和一致性。
  • 项目管理:自动化项目管理中涉及的各种活动。
  • 生产力和成本降低:自动化系统开发中的各种活动并提高开发团队的生产力。

CASE工具的作用:
  • 项目管理
  • 数据字典
  • 代码生成
  • 用户界面设计
  • 模式生成
  • 为数据仓库创建元数据
  • 逆向工程
  • 重新设计
  • 文档生成
  • 版本控制
  • 面向对象的分析与设计
  • 软件测试
  • 数据建模
  • 项目调度
  • 费用估算

CASE工具的优点:
  • 集成开发环境
  • 发展指导
  • 模型和文档之间的一致性

CASE 工具的类型或组件:
  • 规划和管理工具
  • 分析工具
  • 设计工具集
  • 信息集成商
  • 代码生成器
  • 数据库设计工具集
  • 用户界面生成器
  • 报告生成器

CASE 工具的组件。

  • Rational Rose:软件社区中使用最广泛的 CASE 工具之一。
  • UML 建模:统一建模语言主要是一种用于表达设计的图形建模语言。
  • 新兴的 CASE 工具:集成 CASE (I-CASE)。
  • 面向对象的 CASE 工具: Protosoft 的 Paradigm Plus、Rational 的 Rational Rose 和 WithClass

16. 系统的实施
它涉及编码、测试、创建必要的硬件以及为最终用户提供培训。
系统测试
测试应用程序的整体方法。类型包括恢复测试、安全测试、压力测试、性能测试、响应测试、可用性和文档测试。

  • Alpha 测试:由客户在开发人员站点的受控环境中进行。
  • Beta 测试:由最终用户在一个或多个客户站点进行。

将旧系统转换为新系统:
根据系统重要性和相关问题,可以通过多种方式执行:
  • 直接转换:旧系统关闭,新系统启动。
  • 试点转换:新系统安装在一个预先确定的位置。
  • 并行转换:旧系统与新系统并行运行,直到管理和用户满意为止。
  • 分阶段转换:新系统的不同子系统联合使用,直至整个新系统完成转换。

17. 系统维护
监控、评估和修改信息系统以进行必要的、理想的更改。维护活动有四个关键阶段:

  • 帮助台:用户报告问题或寻求帮助的初始阶段。
  • 分析:深入检查报告的问题和系统性能。
  • 实施:根据分析结果纳入增强功能。
  • 发布:将修改后的信息系统部署给用户。

不同的维护活动
  • 纠正性维护:纠正系统实施后发现的设计、编码和实施问题。
  • 适应性维护:操作系统、硬件或 DBMS 的更改。
  • 完善的维护:向软件添加新的功能和特性。
  • 预防性维护:对软件进行更改,使其易于维护并防止将来出现系统故障。

遗留系统:一个非常古老且庞大的系统,自诞生以来已进行了大量修改。解决方案包括用软件包替换软件、从头开始重新实施、丢弃软件、冻结维护并分阶段引入新系统,或者对遗留系统进行逆向工程。


18. 计算机系统审计
对信息系统进行评估,以提供改进系统性能和安全性的建议和建议。它由 IS 审计员完成。审计的目标是:

  • 提高信息系统质量。
  • 防止失败。
  • 加快进程。
  • 提高性价比。
  • 提高效率。
  • 降低风险并增强系统安全性。
  • 标准化。

系统审核员的职责和权限
  • 要坚决维护职业道德。
  • 应该意识到对自己的道德要求。
  • 应通过进行准确而真诚的系统审核来满足内部和外部的信任。
  • 必须对提供给他们的信息保密。
  • 可能会要求被审计部门提供数据和材料。
  • 还可能要求提交一份关于审计部门建议的改进实施情况的报告。

IS 审核员审核的因素:
  • 响应时间审核:实际响应时间与期望响应时间的比较。
  • 损坏链接的审核:发现网站上损坏或不可用的链接。
  • 数据库审计:检查数据库的完整性和可用性。
  • 网络审计:检查网络的漏洞和配置。
  • 事务审计:查找谁进行了更改、进行了哪些更改以及更改是否获得授权的过程。
  • 计算机安全审计:审查物理和逻辑安全措施。
  • 应用程序审核:评估信息系统的手动和程序化内部控制。

一些重要术语
  • Visual Audit Pro – 一种用于审核登录/注销等活动并收集有关软件和硬件信息的软件。
  • EZ Audit - 一款提供 RAM 容量、网卡名称、网络连接速度、MAC 地址和 TCP/IP 信息的软件。
  • IDEA(交互式数据提取和分析) ——用于从数据库中导入要审核的信息,以供审核员进一步分析。
  • 审核跟踪– 数据、设置和相关更改的更改日志。

风险评估——评估信息系统的威胁和脆弱性。分析风险的方法有两种:
  • 定量风险分析– 给出有关事件涉及的风险量的想法。
  • 定性风险分析——给出与机构系统、网络和信息资产相关的风险程度。

灾难恢复计划
  • 灾难——地震、洪水、火灾和恐怖袭击可能严重损坏组织的计算基础设施。
  • 灾难恢复计划——包含紧急响应、扩展备份操作和恢复程序的文档。

适用于紧急情况的技术有:
  • 内部备份– 在组织内存储数据备份的过程
  • 备用存储区域– 在备用站点存储所有 AIS 文件和数据库的一份副本。
  • 灾难恢复工具包– 非常有价值的项目和文档集合,用于确保灾难中的业务连续性。

突发事件必要的恢复行动数据丢失确定适当的恢复计划、所需恢复文件的位置。
软件丢失确定软件的类型和维护备份副本的位置。
失去沟通确定备用通信设施,估计恢复时间。
硬件丢失确定该设备的任何替代品。估计硬件的更换成本。
人员流失确定每个人员的替补人员,如果没有替补人员,则从外部来源获取。
设施损失确定替代地点正常运行所需的所有必要硬件、软件、数据和人员
应急计划步骤:
  • 制定计划。
  • 测试计划。
  • 维持计划。

19. 病毒
计算机系统面临的最大安全威胁之一可能会对某些系统造成不可挽回的损害。预防病毒的防病毒措施包括:

  • 备份所有数据。
  • 使用防病毒软件。
  • 小心打开电子邮件附件。
  • 定期更新软件。
  • 随时了解最新的安全新闻。

20. 同步审核
交易进行时数据会被审核。它有助于查找缺失的审计跟踪,也可用于监控高度集成和自动化的系统。
并发审计技术

  • 集成测试设施(ITF)技术:审核软件嵌入到客户端软件中。
  • 快照技术:嵌入式审计软件在关键处理过程之前和之后拍摄快照。
  • 系统控制审计审查文件(SCARF):嵌入式审计软件不间断地监控系统事务,并将收集到的信息存储在 SCARF 主文件中。
  • 连续和间歇模拟技术 (CIS):使用 DBMS 捕获异常。

21. 不同类型的信息系统
管理信息系统(MIS)
它帮助组织生成有助于改进决策、解决问题、控制运营以及创建新产品或服务的信息。生成为战略管理量身定制的半结构化临时报告。示例:营销信息系统。
交易处理系统(TPS)
TPS 处理来自业务运营的数据,为日常运营提供必要的支持。处理日常交易,采用固定定期报告,并满足运营管理需求。示例:销售处理系统和在线预订系统。
决策支持系统(DSS)
DSS 利用分析模型、专业数据库和内部数据来提供交互式决策支持。提供敏感性和假设分析等报告,满足经理个人的决策需求。示例:地理信息系统(例如,IBM 的 Geo-Manager)。
专业系统
专家系统应用特定领域的知识,在定义的领域内提供专家建议。提供类似人类的专家建议;寻求专业知识的管理者所寻求的。示例:医学诊断专家系统(例如 MYCIN)。

如果您是初学者并且想学习系统设计那么您可以参考#系统设计教程。