系统分析与设计 - 快速指南


系统分析与设计 - 概述

系统开发是一个系统的过程,包括规划、分析、设计、部署和维护等阶段。在本教程中,我们将主要关注 -

  • 系统分析
  • 系统设计

系统分析

它是收集和解释事实、识别问题以及将系统分解为其组件的过程。

进行系统分析的目的是研究系统或其部分,以确定其目标。它是一种解决问题的技术,可以改进系统并确保系统的所有组件有效地工作以实现其目的。

分析指定系统应该做什么

系统设计

它是通过定义其组件或模块来规划新的业务系统或替换现有系统以满足特定需求的过程。在规划之前,您需要彻底了解旧系统并确定如何最好地使用计算机以高效运行。

系统设计的重点是如何实现系统的目标

系统分析与设计(SAD)主要关注 -

  • 系统
  • 流程
  • 技术

什么是系统?

“系统”一词源自希腊语“Systema”,意思是为实现某些共同原因或目标而在任何一组组件之间建立的有组织的关系。

系统是“根据实现特定目标的计划连接在一起的相互依赖的组件的有序分组”。

系统的约束

系统必须具有三个基本约束 -

  • 系统必须具有某种旨在实现预定义目标的结构和Behave。

  • 系统组件之间必须存在互连性相互依赖性。

  • 组织的目标比其子系统的目标具有更高的优先级。

例如交通管理系统、薪资系统、自动图书馆系统、人力资源信息系统等。

系统的属性

系统具有以下属性 -

组织

组织意味着结构和秩序。组件的排列有助于实现预定的目标。

相互作用

它是由组件相互操作的方式定义的。

例如,在一个组织中,采购部门必须与生产部门交互,工资部门必须与人事部门交互。

相互依存

相互依赖是指系统的组件如何相互依赖。为了正常运行,各个组件根据指定的计划进行协调和链接。一个子系统的输出是另一子系统需要的输入。

一体化

集成涉及系统组件如何连接在一起。这意味着系统的各个部分在系统内一起工作,即使每个部分执行独特的功能。

中心目标

系统的目标必须是中心的。它可能是真实的或陈述的。组织陈述一个目标并通过行动实现另一个目标的情况并不少见。

用户必须在分析早期就了解计算机应用程序的主要目标,以实现成功的设计和转换。

系统的要素

下图显示了系统的元素 -

系统要素

输出和输入

  • 系统的主要目的是产生对其用户有用的输出。

  • 输入是进入系统进行处理的信息。

  • 输出是处理的结果。

处理器

  • 处理器是涉及将输入实际转换为输出的系统元件。

  • 它是系统的操作组件。处理器可以完全或部分修改输入,具体取决于输出规范。

  • 随着输出规格的变化,处理也会发生变化。在某些情况下,输入也会被修改以使处理器能够处理转换。

控制

  • 控制元件引导系统。

  • 它是控制输入、处理和输出活动模式的决策子系统。

  • 计算机系统的Behave由操作系统和软件控制。为了保持系统平衡,需要什么输入以及需要多少输入由输出规格决定。

反馈

  • 反馈提供动态系统中的控制。

  • 积极的反馈本质上是一种例行公事,可以鼓励系统的性能。

  • 负反馈本质上是信息性的,它为控制器提供了采取行动的信息。

环境

  • 环境是组织运行的“超级系统”。

  • 它是冲击系统的外部因素的来源。

  • 它决定了系统必须如何运行。例如,组织环境的供应商和竞争对手可能会提供影响业务实际绩效的约束。

边界和界面

  • 系统应该由其边界来定义。边界是在与另一个系统交互时识别其组件、流程和相互关系的限制。

  • 每个系统都有确定其影响和控制范围的边界。

  • 了解给定系统的边界对于确定其与其他系统的接口性质以实现成功设计至关重要。

系统类型

该系统可分为以下类型 -

物理或抽象系统

  • 物理系统是有形的实体。我们可以触摸并感受它们。

  • 物理系统本质上可以是静态的或动态的。例如,桌子和椅子是计算机中心的物理部分,是静态的。编程计算机是一个动态系统,其中程序、数据和应用程序可以根据用户的需要而改变。

  • 抽象系统是非物理实体或概念,可以是真实系统的公式、表示或模型。

开放或封闭系统

  • 开放系统必须与其环境交互。它从系统外部接收输入并向系统外部传送输出。例如,信息系统必须适应不断变化的环境条件。

  • 封闭系统不与其环境交互。它不受环境影响。完全封闭的系统在现实中是很少见的。

自适应和非自适应系统

  • 自适应系统以提高性能和生存的方式响应环境的变化。例如,人类、动物。

  • 非自适应系统是指不响应环境的系统。例如,机器。

永久或临时系统

  • 永久系统持续很长时间。例如,商业政策。

  • 临时系统是在指定时间内建造的,之后就会被拆除。例如,为一个节目设置一个DJ系统,并在节目结束后对其进行拆解。

自然和人造系统

  • 自然系统是由自然创造的。例如,太阳系、季节系。

  • 制造系统是人造系统。例如,火箭、水坝、火车。

确定性或概率系统

  • 确定性系统以可预测的方式运行,并且系统组件之间的交互是确定的。例如,两分子氢和一分子氧生成水。

  • 概率系统表现出不确定的Behave。确切的输出未知。例如,天气预报、邮件投递。

社会、人机、机器系统

  • 社会系统是由人组成的。例如,社交俱乐部、社团。

  • 在人机系统中,人和机器都参与执行特定任务。例如,计算机编程。

  • 机器系统是忽略人为干扰的系统。所有任务均由机器执行。例如,自主机器人。

人造信息系统

  • 它是一组互连的信息资源,用于在直接管理控制 (DMC) 下管理特定组织的数据。

  • 该系统包括硬件、软件、通信、数据和根据组织需要产生信息的应用程序。

    人造信息系统分为三种类型 -

  • 正式信息系统- 它基于从高层到下层管理的备忘录、指示等形式的信息流。

  • 非正式信息系统- 这是基于员工的系统,解决日常工作相关问题。

  • 基于计算机的系统- 该系统直接依赖于计算机来管理业务应用程序。例如,自动图书馆系统、铁路订票系统、银行系统等。

系统模型

原理图模型

  • 原理图模型是显示系统元素及其链接的二维图表。

  • 用不同的箭头来表示信息流、物质流、信息反馈。

流动系统模型

  • 流动系统模型显示了将系统结合在一起的物质、能量和信息的有序流动。

  • 例如,程序评估和审查技术(PERT)用于以模型形式抽象现实世界系统。

静态系统模型

  • 它们代表一对关系,例如活动-时间成本-数量

  • 例如,甘特图给出了活动与时间关系的静态图。

动态系统模型

  • 商业组织是动态系统。动态模型近似于分析师所处理的组织或应用程序的类型。

  • 它显示了系统持续不断变化的状态。它包括 -

    • 进入系统的输入

    • 发生转换的处理器

    • 处理所需的程序

    • 处理产生的输出。

信息类别

与管理级别和经理做出的决策相关的信息分为三类。

资讯类别

战略信息

  • 最高管理层需要这些信息来制定未来几年的长期规划政策。例如,收入、金融投资、人力资源和人口增长的趋势。

  • 此类信息是在决策支持系统(DSS)的帮助下获得的。

管理信息

  • 中层管理人员需要此类信息来制定以月为单位的短期和中期计划。例如,销售分析、现金流量预测和年度财务报表。

  • 它是在管理信息系统(MIS)的帮助下实现的。

运营信息

  • 低层管理人员需要此类信息来进行日常和短期规划,以执行日常运营活动。例如,保留员工出勤记录、逾期采购订单和当前可用库存。

  • 它是在数据处理系统(DPS)的帮助下实现的。

系统开发生命周期

有效的系统开发生命周期(SDLC)应该产生一个高质量的系统,满足客户的期望,在时间和成本评估内完成,并在当前和计划的信息技术基础设施中有效和高效地工作。

系统开发生命周期 (SDLC) 是一个概念模型,其中包括在整个生命周期中开发或更改系统的政策和程序。

SDLC 被分析师用来开发信息系统。SDLC 包括以下活动 -

  • 要求
  • 设计
  • 执行
  • 测试
  • 部署
  • 运营
  • 维护

SDLC 的阶段

系统开发生命周期是一种系统方法,它将工作明确地分解为实施新的或修改的信息系统所需的阶段。

SDLC阶段

可行性研究或规划

  • 定义现有系统的问题和范围。

  • 概述新系统并确定其目标。

  • 确认项目可行性并制定项目进度表。

  • 在此阶段,还考虑系统的威胁、约束、集成和安全。

  • 整个项目的可行性报告将在此阶段结束时创建。

分析与规范

  • 收集、分析和验证信息。

  • 定义新系统的要求和原型。

  • 评估替代方案并确定需求的优先级。

  • 检查最终用户的信息需求并增强系统目标。

  • 在此阶段结束时准备软件需求规范 (SRS) 文档,其中指定系统的软件、硬件、功能和网络需求。

系统设计

  • 包括应用程序、网络、数据库、用户界面和系统界面的设计。

  • 将SRS文档转换为逻辑结构,其中包含可以用编程语言实现的详细且完整的规范集。

  • 制定应急、培训、维护和运营计划。

  • 审查拟议的设计。确保最终设计必须满足SRS文件中规定的要求。

  • 最后,准备一份将在下一阶段使用的设计文档。

执行

  • 通过编码将设计实现为源代码。

  • 将所有模块组合到检测错误和缺陷的培训环境中。

  • 包含错误的测试报告是通过测试计划准备的,测试计划包括测试相关任务,例如测试用例生成、测试标准和测试资源分配。

  • 将信息系统集成到其环境中并安装新系统。

维护/支持

  • 包括系统安装后所需的所有活动,例如电话支持或用户现场支持。

  • 实施软件在一段时间内可能经历的更改,或在软件部署到客户位置后实施任何新要求。

  • 它还包括处理残余错误并解决即使在测试阶段之后系统中可能存在的任何问题。

  • 对于大型系统,可能需要较长时间的维护和支持,对于较小的系统,可能需要较短的时间。

系统分析与设计的生命周期

下图显示了系统在分析和设计阶段的完整生命周期。

生命周期

系统分析师的角色

系统分析师是一个对系统有透彻了解并通过给出正确方向来指导系统开发项目的人。他是一位拥有技术和人际交往能力的专家,可以执行每个阶段所需的开发任务。

他追求将信息系统的目标与组织目标相匹配。

主要角色

  • 通过各种事实调查技术来定义和理解用户的需求。

  • 通过获得用户共识来确定需求的优先级。

  • 收集事实或信息并获取用户的意见。

  • 保持分析和评估,以得出更用户友好的适当系统。

  • 建议许多灵活的替代解决方案,选择最佳解决方案,并量化成本和收益。

  • 以精确和详细的形式绘制一些用户和程序员容易理解的规范。

  • 实现了系统必须模块化的逻辑设计。

  • 计划使用一段时间后的评估周期,并根据需要修改系统。

系统分析师的属性

下图显示了系统分析师应具备的属性 -

分析师的属性

人际交往能力

  • 与用户和程序员的接口。
  • 促进小组并领导较小的团队。
  • 管理期望。
  • 良好的理解、沟通、销售和教学能力。
  • 激励者有信心解决问题。

分析能力

  • 系统学习和组织知识
  • 问题识别、问题分析、问题解决
  • 健全的常识
  • 能够进行权衡
  • 对了解新组织的好奇心

管理技能

  • 了解用户的行话和实践。
  • 资源和项目管理。
  • 变革与风险管理。
  • 彻底了解管理职能。

技术能力

  • 计算机和软件知识。
  • 紧跟现代发展。
  • 了解系统设计工具。
  • 对新技术的广泛了解。

系统分析与设计-系统规划

什么是需求确定?

需求是新系统的一个重要特征,可能包括处理或捕获数据、控制业务活动、生成信息和支持管理。

需求确定涉及研究现有系统并收集详细信息,以找出需求是什么、其工作原理以及应在哪些方面进行改进。

需求确定中的主要活动

需求预期

  • 它根据以前的经验预测系统的特征,其中包括新系统的某些问题或特征和要求。

  • 它可以导致对缺乏经验的分析师不会注意到的领域进行分析。但如果在调查过程中走捷径并引入偏见,那么要求的预期可能是半生不熟的。

需求调查

  • 它正在研究当前系统并记录其功能以供进一步分析。

  • 它是系统分析的核心,分析人员使用事实调查技术、原型设计和计算机辅助工具记录和描述系统功能。

需求规格

  • 它包括确定需求规范的数据分析、新系统功能的描述以及指定将提供哪些信息需求。

  • 它包括事实数据的分析、基本需求的识别以及需求满足策略的选择。

信息收集技术

事实调查技术的主要目的是确定分析师用来准备用户理解的精确 SRS 的组织的信息需求。

理想的 SRS 文档应该 -

  • 完整、明确且无行话。
  • 指定作战、战术和战略信息需求。
  • 解决用户和分析师之间可能出现的争议。
  • 使用图形辅助工具来简化理解和设计。

有各种信息收集技术 -

面试

系统分析师通过访谈从个人或团体收集信息。分析师可以是正式的、墨守成规的、玩弄政治的,也可以是非正式的;因为面试的成功取决于分析师作为面试官的技能。

可以通过两种方式完成 -

  • 非结构化访谈- 系统分析师进行问答环节以获取系统的基本信息。

  • 结构化面试- 它具有用户需要以封闭(客观)或开放(描述性)格式回答的标准问题。

面试的优点

  • 这种方法通常是收集定性信息的最佳来源。

  • 对于那些无法有效进行书面沟通或可能没有时间完成调查问卷的人来说,这很有用。

  • 信息可以轻松地立即验证和交叉检查。

  • 它可以处理复杂的主题。

  • 通过征求意见很容易发现关键问题。

  • 它弥合了误解领域的差距并最大限度地减少未来的问题。

问卷调查

分析人员使用此方法从大量人员中收集有关系统各种问题的信息。

有两种类型的问卷 -

  • 开放式问卷- 它由可以轻松正确解释的问题组成。他们可以探索问题并得出答案的具体方向。

  • 封闭式问卷- 它由系统分析师有效列出所有可能的回答时使用的问题组成,这些回答是相互排斥的。

问卷调查的优点

  • 它对于调查不在同一地点的用户的兴趣、态度、感受和信仰非常有效。

  • 在某种情况下,了解给定群体的比例是批准或不批准所提议系统的特定功能是有用的。

  • 在对系统项目给出任何具体方向之前确定总体意见是有用的。

  • 它更可靠,并为诚实的回复提供高度机密性。

  • 它适用于选择事实信息和统计数据收集,可以通过电子邮件和邮寄方式发送。

记录、程序和表格的审查

对现有记录、程序和表格的审查有助于深入了解描述当前系统功能、其操作或活动的系统。

优点

  • 它可以帮助用户在强加给他人之前自己获得一些有关组织或运营的知识。

  • 它有助于在短时间内记录当前操作,因为程序手册和表格描述了当前系统的格式和功能。

  • 它可以清楚地了解组织中处理的事务、识别处理输入并评估绩效。

  • 它可以帮助分析人员了解系统必须支持的操作。

  • 它描述了问题、受影响的部分以及建议的解决方案。

观察

这是一种通过注意和观察人、事件和物体来收集信息的方法。分析师访问组织以观察当前系统的工作情况并了解系统的要求。

优点

  • 这是收集信息的直接方法。

  • 当所收集数据的真实性受到质疑或系统某些方面的复杂性导致最终用户无法做出清晰解释时,它非常有用。

  • 它产生更准确、更可靠的数据。

  • 它产生的文档的所有方面都是不完整和过时的。

联合应用程序开发(JAD)

它是 IBM 开发的一项新技术,它让所有者、用户、分析师、设计者和构建者通过有组织的密集研讨会来定义和设计系统。经过 JAD 培训的分析师担任研讨会的主持人,拥有一些专业技能。

杰德的优势

  • 它取代了数月的传统访谈和后续会议,节省了时间和成本。

  • 它对于支持联合解决问题的组织文化很有用。

  • 培养多个级别的员工之间的正式关系。

  • 它可以导致设计的创造性发展。

  • 它允许快速发展并提高信息系统的所有权。

二次研究或背景阅读

该方法广泛用于通过访问收集到的信息来收集信息。它包括营销人员之前从任何内部或外部来源收集的任何信息。

优点

  • 随着互联网的可用性,它的访问更加开放。

  • 它以低成本和低时间提供有价值的信息。

  • 它充当初级研究的先驱,并协调初级研究的重点。

  • 研究人员用它来得出研究是否值得的结论,因为它可以使用所使用的程序和收集它们的问题。

可行性研究

可行性研究可以被视为初步调查,帮助管理层决定系统研究是否适合开发。

  • 它确定了改进现有系统、开发新系统的可能性,并为系统的进一步开发提供了精确的估计。

  • 它用于获取问题的轮廓并确定是否存在可行或适当的解决方案。

  • 可行性研究的主要目的是了解问题范围而不是解决问题。

  • 可行性研究的输出是一份正式的系统提案,作为决策文件,其中包括拟议系统的完整性质和范围。

可行性分析涉及的步骤

进行可行性分析时应遵循以下步骤 -

  • 组建项目团队并任命一名项目负责人。

  • 开发系统流程图。

  • 找出当前系统的缺陷并设定目标。

  • 列举实现目标的替代解决方案或潜在候选系统。

  • 确定每个替代方案的可行性,如技术可行性、操作可行性等。

  • 权衡每个候选系统的性能和成本效益。

  • 对其他备选方案进行排名并选择最佳候选系统。

  • 准备最终项目指令的系统提案以供管理层批准。

可行性分析

可行性类型

经济可行性

  • 采用成本/收益分析方法来评估候选人系统的有效性。

  • 它展示了候选人系统在组织的收益和成本方面的净收益。

  • 经济可行性分析(EFS)的主要目的是在投资资金提交提案之前估计候选系统的经济要求。

  • 它更喜欢通过最早和最高的资金回报以及最低水平的开发候选人系统风险来最大化组织净资产的替代方案。

技术可行性

  • 它调查了每个实施方案的技术可行性。

  • 分析并判断该解决方案是否能够得到现有技术的支持。

  • 分析师确定是否升级或添加当前的技术资源以满足新的要求。

  • 它确保候选系统提供适当的响应,以支持技术增强的程度。

运营可行性

  • 它决定了系统一旦开发和实施后是否有效运行。

  • 它确保管理层支持拟议的系统及其在当前组织环境中可行的工作。

  • 它分析用户是否会受到影响以及他们是否接受影响可能的系统收益的修改或新的业务方法。

  • 也保证了候选系统的计算机资源和网络架构的可用。

Behave可行性

  • 它评估和估计用户对新系统开发的态度或Behave。

  • 它有助于确定系统是否需要特别努力来教育、再培训、调动和改变员工的工作状态以开展业务的新方式。

时间表可行性

  • 它确保项目应在给定的时间限制或时间表内完成。

  • 它还验证和验证项目的期限是否合理。

结构化分析

分析师使用各种工具来理解和描述信息系统。其中一种方法是使用结构化分析。

什么是结构化分析?

结构化分析是一种开发方法,允许分析人员以逻辑方式理解系统及其活动。

它是一种系统方法,使用图形工具分析和完善现有系统的目标,并开发用户易于理解的新系统规范。

它具有以下属性 -

  • 它是指定应用程序呈现的图形。

  • 它划分了进程,以便清晰地显示系统流程。

  • 它是逻辑的而不是物理的,即系统的元素不依赖于供应商或硬件。

  • 这是一种从高级概述到较低级别细节的方法。

结构化分析工具

在结构化分析期间,使用各种工具和技术进行系统开发。他们是 -

  • 数据流程图
  • 数据字典
  • 决策树
  • 决策表
  • 结构化英语
  • 伪代码
结构化工具

数据流程图 (DFD) 或气泡图

它是 Larry Constantine 开发的一种以图形形式表达系统需求的技术。

  • 它显示了系统各个功能之间的数据流,并指定了当前系统是如何实现的。

  • 它是设计阶段的初始阶段,在功能上将需求规格划分为最低的细节级别。

  • 其图形特性使其成为用户和分析师或分析师和系统设计人员之间良好的沟通工具。

  • 它概述了系统处理哪些数据、执行哪些转换、存储哪些数据、产生哪些结果以及它们流向何处。

DFD 的基本要素

当所需的设计不明确并且用户想要一种符号语言进行交流时,DFD 很容易理解并且非常有效。然而,它需要大量的迭代才能获得最准确和完整的解决方案。

下表显示了设计 DFD 时使用的符号及其含义 -

符号名称 象征 意义
正方形 正方形 数据的来源或目的地
箭 数据流
圆圈 圆圈 处理转换数据流
开放矩形 长方形 数据存储

DFD 的类型

DFD 有两种类型:物理 DFD 和逻辑 DFD。下表列出了物理 DFD 与逻辑 DFD 的区别点。

物理DFD 逻辑DFD
它取决于实现。它显示了执行哪些功能。 它是独立于实现的。它只关注进程之间的数据流。
它提供硬件、软件、文件和人员的低级详细信息。 它解释了系统的事件以及每个事件所需的数据。
它描述了当前系统如何运行以及系统将如何实施。 它显示了企业如何运作;不是如何实施该系统。

上下文图

上下文图有助于通过一个 DFD 来理解整个系统,它给出了系统的概述。它首先提到主要流程,但没有详细信息,然后使用自上而下的方法提供流程的更多细节。

混乱管理的上下文图如下所示。

上下文图

数据字典

数据字典是系统中数据元素的结构化存储库。它存储所有 DFD 数据元素的描述,即数据流、数据存储、数据存储中存储的数据以及过程的详细信息和定义。

数据字典改善了分析师和用户之间的沟通。它在数据库建设中发挥着重要作用。大多数 DBMS 都将数据字典作为标准功能。例如,请参阅下表 -

先生。 数据名称 描述 字符数
1 国际标准书号 国际标准书号 10
2 标题 标题 60
3 子系统 书籍主题 80
4 一个名字 作者姓名 15

决策树

决策树是一种通过描述决策并避免沟通问题来定义复杂关系的方法。决策树是显示水平树框架内的替代操作和条件的图表。因此,它描述了首先考虑哪些条件、其次考虑哪些条件等等。

决策树描述了每个条件及其允许的操作的关系。方形节点表示动作,圆形节点表示条件。它迫使分析师考虑决策的顺序并确定必须做出的实际决策。

决策树

决策树的主要限制是它缺乏格式信息来描述可以用于测试的其他条件组合。它是条件和动作之间关系的单一表示。

例如,参考以下决策树 -

决策示例

决策表

决策表是一种以精确且易于理解的方式描述复杂逻辑关系的方法。

  • 当结果动作取决于一个或多个独立条件组合的发生时,它非常有用。

  • 它是一个包含行或列的矩阵,用于定义问题和操作。

决策表的组成部分

  • 条件存根- 它位于左上象限,列出了所有要检查的条件。

  • 操作存根- 它位于左下象限,概述了满足此类条件所需执行的所有操作。

  • 条件条目- 它位于右上象限,提供条件存根象限中提出的问题的答案。

  • 操作输入- 它位于右下象限,指示条件输入象限中条件的答案所产生的适当操作。

决策表中的条目由决策规则给出,决策规则定义了条件组合和行动方案之间的关系。在规则部分,

  • Y 表示条件的存在。
  • N表示条件,不满足。
  • 空白 - 反对行动表明该行动将被忽略。
  • X(或复选标记即可)表示要执行的操作。

例如,请参阅下表 -

状况 规则1 规则2 规则3 规则 4
已预付款
购买金额 = 10,000 卢比/- -
老顾客 - -
行动
给予5%折扣 X X - -
不给折扣 - - X X

结构化英语

结构英语源自结构化编程语言,它对过程进行更容易理解和更精确的描述。它基于程序逻辑,使用构造和祈使句来执行操作操作。

  • 当必须考虑程序中的序列和循环并且问题需要带有决策的操作序列时,最好使用它。

  • 它没有严格的语法规则。它用顺序决策结构和迭代来表达所有逻辑。

例如,请参阅以下操作序列 -

if customer pays advance 
   then 
      Give 5% Discount 
   else 
      if purchase amount >=10,000 
         then 
            if  the customer is a regular customer 
               then Give 5% Discount 
            else  No Discount
         end if 
      else No Discount  
   end if 
end if 

伪代码

伪代码不符合任何编程语言,用简单的英语表达逻辑。

  • 它可以指定物理编程逻辑,而无需在物理设计期间和之后进行实际编码。

  • 它与结构化编程结合使用。

  • 它取代了程序的流程图。

选择合适工具的指南

使用以下指南来选择最适合您要求的工具 -

  • 在高水平或低水平分析中使用 DFD 来提供良好的系统文档。

  • 使用数据字典来简化结构,以满足系统的数据需求。

  • 如果有很多循环并且动作很复杂,请使用结构化英语。

  • 当需要检查的条件较多且逻辑复杂时,请使用决策表。

  • 当条件排序很重要并且需要测试的条件很少时,请使用决策树。

系统分析与设计 - 系统设计

系统设计是以可管理的方式弥合问题域和现有系统之间差距的阶段。这一阶段的重点是解决方案领域,即“如何实施?”

在这个阶段,SRS 文档被转换为可以实施的格式,并决定系统如何运行。

在这个阶段,系统开发的复杂活动被分解为多个较小的子活动,这些子活动相互协调以实现系统开发的主要目标。

客观设计

系统设计的输入

系统设计需要以下输入 -

  • 工作陈述

  • 需求确定计划

  • 现状分析

  • 提出的系统要求包括概念数据模型、修改的 DFD 和元数据(关于数据的数据)。

系统设计的输出

系统设计给出以下输出 -

  • 拟议系统的基础设施和组织变更。

  • 数据模式,通常是关系模式。

  • 用于定义表/文件和列/数据项的元数据。

  • 以图形方式描述程序结构的功能层次图或网页图。

  • 程序中每个模块的实际或伪代码。

  • 所提议系统的原型。

系统设计的类型

逻辑设计

逻辑设计涉及系统的数据流、输入和输出的抽象表示。它以满足用户要求的格式描述输入(源)、输出(目的地)、数据库(数据存储)、过程(数据流)。

在准备系统的逻辑设计时,系统分析师会详细指定用户需求,从而虚拟地确定流入和流出系统的信息以及所需的数据源。采用数据流图、ER图建模。

物理设计

物理设计涉及系统的实际输入和输出过程。它重点关注如何将数据输入系统、验证、处理并显示为输出。

它通过定义设计规范来生成工作系统,该设计规范准确指定了候选系统的功能。它涉及用户界面设计、流程设计和数据设计。

它包括以下步骤 -

  • 指定输入/输出介质、设计数据库并指定备份过程。

  • 规划体系实施。

  • 制定测试和实施计划,并指定任何新的硬件和软件。

  • 更新成本、收益、转换日期和系统限制。

建筑设计

它也被称为高层设计,专注于系统架构的设计。它描述了系统的结构和Behave。它定义了系统开发过程的结构和各模块之间的关系。

详细设计

它遵循架构设计并专注于每个模块的开发。

概念数据建模

它是组织数据的表示,包括所有主要实体和关系。系统分析师为当前系统开发概念数据模型,以支持拟议系统的范围和要求。

概念数据建模的主要目的是捕获尽可能多的数据含义。如今,大多数组织都使用使用 ER 模型的概念数据建模,该模型使用特殊符号来表示尽可能多的数据含义。

实体关系模型

它是数据库设计中使用的一种技术,有助于描述组织的各个实体之间的关系。

ER 模型中使用的术语

  • ENTITY - 它指定应用程序中不同的现实世界项目。例如:供应商、项目、学生、课程、教师等。

  • 关系- 它们是实体之间有意义的依赖关系。例如,供应商提供物品,老师教授课程,则用品和课程是关系。

  • ATTRIBUTES - 它指定关系的属性。例如,供应商代码、学生姓名。ER模型中使用的符号及其各自的含义 -

下表显示了 ER 模型中使用的符号及其含义 -

象征 意义
实体 实体
弱实体 弱实体
关系 关系
身份关系 身份关系
属性 属性
关键属性 关键属性
多值 多值
复合属性 复合属性
派生属性 派生属性
参与 E2 对 R 的总参与
基数 R 中 E1:E2 的基数比 1:N

两组数据之间可以存在三种类型的关系:一对一、一对多和多对多。

文件组织

它描述了记录如何存储在文件中。

有四种文件组织方法 -

  • 串行- 记录按时间顺序存储(按输入或发生的顺序)。示例- 电话费用记录、ATM 交易、电话队列。

  • 顺序- 记录根据包含唯一标识记录的值的关键字段按顺序存储。示例- 电话簿。

  • 直接(相对) - 每条记录都基于设备上的物理地址或位置存储。地址是根据记录关键字段中存储的值计算得出的。随机例程或散列算法进行转换。

  • 索引- 可以使用索引按顺序和非顺序处理记录。

比较

比较

文件访问

可以使用顺序访问或随机访问来访问文件。文件访问方法允许计算机程序读取或写入文件中的记录。

顺序存取

从第一条记录开始处理文件中的每条记录,直到到达文件结尾 (EOF)。当需要在任何给定时间访问文件上的大量记录时,它是有效的。存储在磁带上的数据(顺序访问)只能顺序访问。

直接(随机)访问

通过了解记录在设备上的物理位置或地址而不是它们相对于其他记录的位置来定位记录。存储在 CD 设备(直接访问)上的数据可以顺序或随机访问。

组织系统中使用的文件类型

以下是组织系统中使用的文件类型 -

  • 主文件- 它包含系统的当前信息。例如,客户档案、学生档案、电话簿。

  • 表文件- 它是一种不经常更改并以表格格式存储的主文件。例如,存储邮政编码。

  • 交易文件- 它包含业务活动生成的日常信息。它用于更新或处理主文件。例如,员工的地址。

  • 临时文件- 它是在系统需要时创建和使用的。

  • 镜像文件- 它们是其他文件的精确副本。当原始设备无法使用时,有助于最大限度地降低停机风险。每次更改原始文件时都必须修改它们。

  • 日志文件- 它们包含主文件和事务记录的副本,以便记录对主文件所做的任何更改。它有助于审计并提供系统故障时的恢复机制。

  • 存档文件- 包含其他文件的历史版本的备份文件。

文件控制

文档记录是为了任何参考或操作目的而记录信息的过程。它可以帮助需要它的用户、经理和 IT 员工。重要的是,准备好的文档必须定期更新,以便轻松跟踪系统的进度。

系统实施后,如果系统运行不正常,则文档可以帮助管理员了解系统中的数据流,以纠正缺陷并使系统正常运行。

程序员或系统分析师通常创建程序和系统文档。系统分析师通常负责准备文档以帮助用户学习系统。在大公司中,包括技术作家的技术支持团队可能会协助准备用户文档和培训材料。

优点

  • 它可以减少系统停机时间、降低成本并加快维护任务。

  • 它提供了对当前系统的正式流程的清晰描述,有助于理解输入数据的类型以及如何产生输出。

  • 它为技术和非技术用户之间关于系统的沟通提供了有效且高效的方式。

  • 方便新用户的培训,使新用户能够轻松了解系统流程。

  • 它帮助用户解决故障排除等问题,帮助管理者对组织系统做出更好的最终决策。

  • 它为系统的内部或外部工作提供更好的控制。

文件类型

当谈到系统设计时,有以下四个主要文档 -

  • 程序文档
  • 系统文档
  • 操作文档
  • 用户文档

程序文档

  • 它描述了所有程序模块的输入、输出和处理逻辑。

  • 程序文档化过程从系统分析阶段开始,并在实施过程中继续。

  • 本文档指导程序员构建受到内部和外部注释和描述良好支持的模块,这些注释和描述易于理解和维护。

操作文档

操作文档包含处理和分发在线和打印输出所需的所有信息。操作文档应该清晰、简洁,并且如果可能的话可以在线获取。

它包括以下信息 -

  • 程序、系统分析师、程序员和系统识别。

  • 打印输出的计划信息,例如报告、执行频率和截止日期。

  • 输入文件、其源、输出文件及其目的地。

  • 电子邮件和报告分发列表。

  • 需要特殊表格,包括在线表格。

  • 向操作员发送错误和信息消息并重新启动程序。

  • 特殊说明,例如安全要求。

用户文档

它包括向将与系统交互的用户提供的说明和信息。例如,用户手册、帮助指南和教程。用户文档对于培训用户和参考目的很有价值。它必须清晰、易懂并且易于各个级别的用户访问。

用户、系统所有者、分析师和程序员共同努力开发用户指南。

用户文档应包括 -

  • 系统概述清楚地描述了所有主要系统特性、功能和限制。

  • 源文档内容、准备、处理和示例的描述。

  • 菜单和数据输入屏幕选项、内容和处理指令的概述。

  • 定期生成或应用户请求提供的报告示例,包括样本。

  • 安全和审计跟踪信息。

  • 对特定输入、输出或处理要求的责任的解释。

  • 请求变更和报告问题的程序。

  • 异常和错误情况的示例。

  • 常见问题 (FAQ)。

  • 说明如何获取帮助以及更新用户手册的程序。

系统文档

系统文档充当 IS 的技术规范以及如何实现 IS 的目标。用户、管理者和 IS 所有者永远不需要参考系统文档。系统文档为在进行修改时理解 IS 的技术方面提供了基础。

  • 它描述了 IS 内的每个程序以及整个 IS 本身。

  • 它描述了系统的功能、它们的实现方式、整个IS中每个程序的目的(关于执行顺序、传入和传出程序的信息以及整个系统流程)。

  • 它包括数据字典条目、数据流程图、对象模型、屏幕布局、源文档以及启动项目的系统请求。

  • 大多数系统文档是在系统分析和系统设计阶段准备的。

  • 在系统实施过程中,分析师必须审查系统文档,以验证其完整、准确和最新,并包括实施过程中所做的任何更改。

设计策略

自上而下的策略

自上而下的策略使用模块化方法来开发系统的设计。之所以如此称呼,是因为它从顶部或最高级别的模块开始,向最低级别的模块移动。

在该技术中,识别用于开发软件的最高级别模块或主模块。根据每个模块执行的任务,主模块被分为几个更小、更简单的子模块或段。然后,每个子模块进一步细分为下一个较低级别的几个子模块。将每个模块划分为多个子模块的过程一直持续到无法识别出无法进一步细分的最低级别模块为止。

自顶向下

自下而上的策略

自下而上的策略遵循模块化方法来开发系统的设计。之所以如此称呼,是因为它从最底层或最基本的级别模块开始,向最高级别的模块移动。

在这种技术中,

  • 确定了最基本或最低级别的模块。

  • 然后,根据每个模块执行的功能将这些模块组合在一起,形成下一个更高级别的模块。

  • 然后,这些模块进一步组合形成下一个更高级别的模块。

  • 将几个较简单的模块分组以形成更高级别模块的过程一直持续到实现系统开发过程的主要模块为止。

自下而上

结构化设计

结构化设计是一种基于数据流的方法,有助于识别开发系统的输入和输出。结构化设计的主要目标是最大限度地降低程序的复杂性并提高程序的模块化程度。结构化设计还有助于描述系统的功能方面。

在结构化设计中,系统规范是借助 DFD 以图形方式表示软件开发中涉及的数据流和流程序列的基础。开发出软件系统的 DFD 后,下一步是开发结构图。

结构化设计

模块化

结构化设计将程序划分为小的、独立的模块。它们以自上而下的方式组织,详细信息显示在底部。

因此,结构化设计使用一种称为模块化或分解的方法来最小化复杂性,并通过将问题细分为更小的部分来管理问题。

优点

  • 首先测试关键接口。
  • 它提供抽象。
  • 它允许多个程序员同时工作。
  • 它允许代码重用。
  • 它提供控制并提高士气。
  • 它使识别结构变得更容易。

结构化图表

结构化图表是设计模块化、自上而下系统的推荐工具,它定义了系统开发的各个模块以及每个模块之间的关系。它显示了系统模块及其之间的关系。

它由图表组成,图表由代表模块的矩形框、连接箭头或线条组成。

  • 控制模块- 它是指导较低级别模块(称为从属模块)的较高级别模块。

  • 库模块- 它是一个可重用的模块,可以从图表中的多个点调用。

图表

我们有两种不同的方法来设计结构化图表 -

  • 以变​​换为中心的结构化图表- 当所有交易都遵循相同路径时使用它们。

  • 以交易为中心的结构化图表- 当所有交易不遵循相同路径时使用它们。

使用结构流程图的目的

  • 鼓励自上而下的设计。

  • 支持模块的概念并确定适当的模块。

  • 显示系统的规模和复杂性。

  • 确定每个功能中易于识别的功能和模块的数量。

  • 描述是否 ea