系统分析和设计 – 快速指南
系统分析和设计 – 快速指南
系统分析和设计 – 概述
系统开发是一个系统的过程,包括规划、分析、设计、部署和维护等阶段。在这里,在本教程中,我们将主要关注 –
- 系统分析
- 系统设计
系统分析
它是收集和解释事实、识别问题以及将系统分解为其组件的过程。
进行系统分析的目的是研究系统或其部分以确定其目标。它是一种改进系统并确保系统的所有组件有效工作以实现其目的的问题解决技术。
分析指定系统应该做什么。
系统设计
它是通过定义组件或模块来满足特定需求来规划新业务系统或替换现有系统的过程。在规划之前,您需要彻底了解旧系统并确定如何最好地使用计算机以有效运行。
系统设计侧重于如何完成系统的目标。
系统分析与设计(SAD)主要关注 –
- 系统
- 流程
- 技术
什么是系统?
System 这个词源自希腊语 Systema,意思是任何一组组件之间的有组织的关系,以实现某些共同的原因或目标。
系统是“根据实现特定目标的计划链接在一起的相互依赖的组件的有序分组”。
系统的约束
系统必须具有三个基本约束 –
-
一个系统必须具有某种旨在实现预定目标的结构和行为。
-
系统组件之间必须存在互连和相互依赖。
-
该组织的目标具有更高的优先级比其子系统的目标。
例如,交通管理系统、工资系统、自动图书馆系统、人力资源信息系统。
系统的属性
系统具有以下属性 –
组织
组织意味着结构和秩序。组件的排列有助于实现预定目标。
相互作用
它由组件相互操作的方式定义。
例如,在一个组织中,采购部门必须与生产部门互动,工资与人事部门互动。
相互依存
相互依赖是指系统的组件如何相互依赖。为了正常运行,组件根据指定的计划协调和链接在一起。一个子系统的输出是其他子系统需要的输入。
一体化
集成与系统组件如何连接在一起有关。这意味着系统的各个部分在系统内协同工作,即使每个部分执行独特的功能。
中心目标
系统的目标必须是中心的。它可能是真实的或陈述的。一个组织陈述一个目标并为实现另一个目标而运作的情况并不少见。
用户必须在分析早期了解计算机应用程序的主要目标,才能成功进行设计和转换。
系统的元素
下图显示了系统的元素 –
输出和输入
-
系统的主要目标是产生对其用户有用的输出。
-
输入是进入系统进行处理的信息。
-
输出是处理的结果。
处理器
-
处理器是涉及将输入实际转换为输出的系统元素。
-
它是系统的操作组件。处理器可以完全或部分修改输入,具体取决于输出规范。
-
随着输出规格的变化,处理也随之变化。在某些情况下,还修改输入以使处理器能够处理转换。
控制
-
控制元件引导系统。
-
它是控制输入、处理和输出活动模式的决策子系统。
-
计算机系统的行为由操作系统和软件控制。为了保持系统的平衡,需要什么和多少输入由输出规范决定。
反馈
-
反馈在动态系统中提供控制。
-
正反馈本质上是常规的,它鼓励系统的性能。
-
负反馈本质上是信息性的,它为控制者提供采取行动的信息。
环境
-
环境是组织运作的“超级系统”。
-
它是影响系统的外部元素的来源。
-
它决定了系统必须如何运作。例如,组织环境的供应商和竞争对手可能会提供影响业务实际绩效的约束。
边界和界面
-
一个系统应该由它的边界来定义。边界是在与另一个系统接口时识别其组件、流程和相互关系的限制。
-
每个系统都有确定其影响和控制范围的边界。
-
对给定系统边界的了解对于确定其与其他系统成功设计的接口的性质至关重要。
系统类型
系统可分为以下类型 –
物理或抽象系统
-
物理系统是有形的实体。我们可以触摸和感受它们。
-
物理系统本质上可能是静态的或动态的。例如,桌椅是计算机中心的静态物理部分。程序化计算机是一个动态系统,其中的程序、数据和应用程序可以根据用户的需要进行更改。
-
抽象系统是非物理实体或概念,可以是真实系统的公式、表示或模型。
开放或封闭系统
-
一个开放系统必须与其环境相互作用。它从系统外部接收输入并将输出传送到系统外部。例如,必须适应不断变化的环境条件的信息系统。
-
封闭系统不与其环境相互作用。它与环境影响隔离。完全封闭的系统在现实中很少见。
自适应和非自适应系统
-
自适应系统以提高其性能和生存的方式响应环境的变化。例如,人类、动物。
-
非自适应系统是不响应环境的系统。例如,机器。
永久或临时系统
-
永久系统持续很长时间。例如,商业政策。
-
临时系统在规定的时间内制作,然后拆除。例如,DJ 系统是为一个节目设置的,然后在节目播放后拆解。
天然和人造系统
-
自然系统是由自然创造的。例如,太阳系、季节性系统。
-
制造系统是人造系统。例如,火箭、水坝、火车。
确定性或概率系统
-
确定性系统以可预测的方式运行,并且系统组件之间的交互是确定的。例如,两分子氢和一分子氧会生成水。
-
概率系统表现出不确定的行为。确切的输出未知。例如,天气预报、邮件投递。
社会、人机、机器系统
-
社会系统是由人组成的。例如,社交俱乐部、社团。
-
在人机系统中,人和机器都参与执行特定任务。例如,计算机编程。
-
机器系统是忽略人为干扰的地方。所有的任务都由机器完成。例如,自主机器人。
人造信息系统
-
它是一组互连的信息资源,用于在直接管理控制 (DMC) 下管理特定组织的数据。
-
该系统包括硬件、软件、通信、数据和应用程序,用于根据组织的需要生成信息。
人造信息系统分为三种类型 –
-
正式信息系统– 它基于备忘录、说明等形式的信息流,从高层到低层管理。
-
非正式信息系统– 这是基于员工的系统,可解决与日常工作相关的问题。
-
基于计算机的系统– 该系统直接依赖于管理业务应用程序的计算机。例如,自动图书馆系统、铁路订票系统、银行系统等。
系统模型
示意图模型
-
示意图模型是一个二维图表,显示系统元素及其链接。
-
用不同的箭头表示信息流、物料流和信息反馈。
流动系统模型
-
流动系统模型显示了将系统连接在一起的物质、能量和信息的有序流动。
-
例如,程序评估和审查技术 (PERT) 用于以模型形式抽象现实世界系统。
静态系统模型
-
它们代表一对关系,例如活动-时间或成本-数量。
-
例如,甘特图给出了活动时间关系的静态图片。
动态系统模型
-
商业组织是动态系统。动态模型近似于分析师处理的组织或应用程序的类型。
-
它显示了系统的持续、不断变化的状态。它包括 –
-
进入系统的输入
-
进行转换的处理器
-
处理所需的程序
-
处理产生的输出。
-
信息类别
与管理级别和管理者做出的决策相关的信息分为三类。
战略信息
-
最高管理层需要此信息来制定未来几年的长期规划政策。例如,收入、金融投资和人力资源以及人口增长的趋势。
-
此类信息是在决策支持系统 (DSS) 的帮助下获得的。
管理信息
-
中层管理人员需要此类信息来进行以月为单位的短期和中期计划。例如,销售分析、现金流量预测和年度财务报表。
-
它是在管理信息系统 (MIS) 的帮助下实现的。
运营信息
-
日常和短期计划的低级管理需要此类信息,以执行日常运营活动。例如,保留员工考勤记录、逾期采购订单和现有库存。
-
它是在数据处理系统 (DPS) 的帮助下实现的。
系统开发生命周期
有效的系统开发生命周期 (SDLC) 应产生满足客户期望的高质量系统,在时间和成本评估内完成,并在当前和计划的信息技术基础设施中有效和高效地工作。
系统开发生命周期 (SDLC) 是一个概念模型,其中包括在整个生命周期中开发或更改系统的政策和程序。
分析师使用 SDLC 来开发信息系统。SDLC 包括以下活动 –
- 要求
- 设计
- 执行
- 测试
- 部署
- 操作
- 维护
SDLC的阶段
系统开发生命周期是一种系统方法,它明确地将工作分解为实施新的或修改过的信息系统所需的阶段。
可行性研究或规划
-
定义现有系统的问题和范围。
-
概述新系统并确定其目标。
-
确认项目可行性并制作项目进度表。
-
在此阶段,还考虑了系统的威胁、约束、集成和安全性。
-
在此阶段结束时创建整个项目的可行性报告。
分析和规格
-
收集、分析和验证信息。
-
定义新系统的要求和原型。
-
评估备选方案并确定需求的优先级。
-
检查最终用户的信息需求并增强系统目标。
-
在此阶段结束时准备一份软件需求规范 (SRS) 文档,该文档指定系统的软件、硬件、功能和网络要求。
系统设计
-
包括应用程序、网络、数据库、用户界面和系统界面的设计。
-
将 SRS 文档转换为逻辑结构,其中包含可以用编程语言实现的详细完整的规范集。
-
制定应急、培训、维护和操作计划。
-
审查提议的设计。确保最终设计必须满足 SRS 文件中规定的要求。
-
最后,准备一份将在下一阶段使用的设计文档。
执行
-
通过编码将设计实现为源代码。
-
将所有模块组合在一起,形成检测错误和缺陷的培训环境。
-
包含错误的测试报告是通过测试计划准备的,该计划包括测试相关任务,例如测试用例生成、测试标准和测试资源分配。
-
将信息系统集成到其环境中并安装新系统。
维护/支持
-
包括系统安装后所需的所有活动,例如电话支持或现场物理支持。
-
实施软件在一段时间内可能经历的更改,或在客户位置部署软件后实施任何新需求。
-
它还包括处理残余错误并解决系统中可能存在的任何问题,即使在测试阶段之后也是如此。
-
大型系统可能需要较长时间的维护和支持,而较小系统则需要较短时间。
系统分析和设计的生命周期
下图显示了系统在分析和设计阶段的完整生命周期。
系统分析师的角色
系统分析师是一个对系统有透彻了解并通过给出正确方向来指导系统开发项目的人。他是一位拥有技术和人际交往能力的专家,可以执行每个阶段所需的开发任务。
他追求使信息系统的目标与组织目标相匹配。
主要角色
-
通过各种事实发现技术定义和理解用户的需求。
-
通过获得用户共识来确定需求的优先级。
-
收集事实或信息,获取用户意见。
-
保持分析和评估以达到对用户更友好的适当系统。
-
建议许多灵活的替代解决方案,选择最佳解决方案,并量化成本和收益。
-
以精确和详细的形式绘制某些用户和程序员易于理解的规范。
-
实现了系统必须模块化的逻辑设计。
-
计划使用一段时间后的评估周期,并根据需要修改系统。
系统分析师的属性
下图显示了系统分析师应具备的属性 –
人际交往能力
- 与用户和程序员的接口。
- 促进小组并领导较小的团队。
- 管理期望。
- 良好的理解、沟通、销售和教学能力。
- 有信心解决查询的动力。
分析能力
- 系统学习和组织知识
- 问题识别、问题分析和问题解决
- 合理的常识
- 访问权衡的能力
- 对了解新组织的好奇心
管理技能
- 了解用户的术语和做法。
- 资源和项目管理。
- 变更和风险管理。
- 深入了解管理职能。
技术能力
- 熟悉计算机和软件。
- 紧跟现代发展步伐。
- 了解系统设计工具。
- 关于新技术的广度知识。
系统分析与设计 – 系统规划
什么是需求确定?
需求是新系统的重要特征,它可能包括处理或捕获数据、控制业务活动、生成信息和支持管理。
需求确定涉及研究现有系统并收集详细信息以找出需求是什么、它是如何工作的以及应该在哪里进行改进。
需求确定方面的主要活动
需求预测
-
它根据以前的经验预测系统的特征,包括新系统的某些问题或特征和要求。
-
它可能会导致对经验不足的分析师可能会忽视的领域进行分析。但是,如果在进行调查时走捷径并引入偏见,那么需求预期可能是半生不熟的。
需求调查
-
它正在研究当前系统并记录其功能以供进一步分析。
-
它是系统分析的核心,分析师使用事实调查技术、原型设计和计算机辅助工具记录和描述系统特征。
需求规格
-
它包括确定需求规范的数据分析、新系统特性的描述以及指定将提供哪些信息需求。
-
它包括对事实数据的分析、基本需求的识别以及需求实现策略的选择。
信息收集技术
事实调查技术的主要目的是确定分析人员用来准备用户理解的精确 SRS 的组织的信息需求。
理想的 SRS 文件应该 –
- 完整、明确且无行话。
- 指定作战、战术和战略信息要求。
- 解决用户和分析师之间可能出现的纠纷。
- 使用图形辅助工具来简化理解和设计。
有各种信息收集技术 –
面试
系统分析师通过访谈从个人或团体收集信息。分析师可以是正式的、守法的、玩政治的,也可以是非正式的;因为面试的成功取决于分析师作为面试官的技能。
它可以通过两种方式完成 –
-
非结构化面试– 系统分析师进行问答环节以获取系统的基本信息。
-
结构化面试– 它具有用户需要以封闭(客观)或开放(描述)格式回答的标准问题。
面试的优势
-
这种方法通常是收集定性信息的最佳来源。
-
这对无法以书面形式进行有效沟通或可能没有时间完成问卷的他们很有用。
-
可以轻松地立即验证和交叉检查信息。
-
它可以处理复杂的主题。
-
通过征求意见,很容易发现关键问题。
-
它弥合了误解领域的差距,并最大限度地减少了未来的问题。
问卷
分析师使用此方法从大量人员那里收集有关系统各种问题的信息。
有两种类型的问卷 –
-
开放式问卷– 它由可以轻松正确解释的问题组成。他们可以探索一个问题,并得出一个特定的答案方向。
-
封闭式问卷– 它由系统分析师有效列出所有可能的答案时使用的问题组成,这些问题是相互排斥的。
问卷的优势
-
它在调查不在同一地点的用户的兴趣、态度、感受和信念方面非常有效。
-
在这种情况下,了解给定组批准或不批准提议系统的特定功能的比例是有用的。
-
在对系统项目给出任何特定方向之前确定总体意见很有用。
-
它更可靠,并提供诚实响应的高度机密性。
-
它适用于选择事实信息和可以通过电子邮件发送和邮寄的统计数据收集。
审查记录、程序和表格
审查现有记录、程序和表格有助于深入了解描述当前系统功能、其操作或活动的系统。
好处
-
它可以帮助用户在强加于他人之前自己获得有关组织或操作的一些知识。
-
它有助于在短时间内记录当前操作,因为程序手册和表格描述了当前系统的格式和功能。
-
它可以清楚地了解组织中处理的交易、识别处理输入和评估绩效。
-
它可以帮助分析人员在必须支持的操作方面了解系统。
-
它描述了问题、受影响的部分和建议的解决方案。
观察
这是一种通过注意和观察人、事件和物体来收集信息的方法。分析师访问组织以观察当前系统的工作并了解系统的要求。
好处
-
它是一种收集信息的直接方法。
-
在所收集数据的真实性存在问题或系统某些方面的复杂性阻止最终用户明确解释的情况下,它很有用。
-
它产生更准确和可靠的数据。
-
它产生了不完整和过时的文档的所有方面。
联合应用开发 (JAD)
它是 IBM 开发的一项新技术,它让所有者、用户、分析师、设计师和建造者使用有组织的密集研讨会来定义和设计系统。受过 JAD 培训的分析师充当具有一些专业技能的研讨会的主持人。
JAD的优势
-
它通过取代数月的传统访谈和后续会议来节省时间和成本。
-
它在支持联合解决问题的组织文化中很有用。
-
培养多层次员工之间的正式关系。
-
它可以导致设计的创造性发展。
-
它允许快速开发并提高信息系统的所有权。
二次研究或背景阅读
这种方法广泛用于通过访问收集到的信息来收集信息。它包括营销人员从任何内部或外部来源使用的任何先前收集的信息。
好处
-
随着互联网的可用性,它可以更公开地访问。
-
它以低成本和时间提供有价值的信息。
-
它作为初级研究的先行者,并调整了初级研究的重点。
-
研究人员使用它来总结研究是否值得,因为它可以通过使用的程序和收集它们的问题获得。
可行性研究
可行性研究可以被认为是帮助管理层决定系统研究是否适合开发的初步调查。
-
它确定了改进现有系统、开发新系统的可能性,并为系统的进一步开发提供精确的估计。
-
它用于获取问题的轮廓并决定是否存在可行或合适的解决方案。
-
可行性研究的主要目标是获取问题范围而不是解决问题。
-
可行性研究的输出是一份正式的系统提案,作为决策文件,其中包括所提议系统的完整性质和范围。
可行性分析涉及的步骤
在进行可行性分析时应遵循以下步骤 –
-
组建项目团队并任命一名项目负责人。
-
制定系统流程图。
-
找出当前系统的不足并设定目标。
-
列举替代解决方案或潜在的候选系统来实现目标。
-
确定每个备选方案的可行性,如技术可行性、操作可行性等。
-
权衡每个候选系统的性能和成本效益。
-
对其他备选方案进行排名并选择最佳候选系统。
-
准备一份最终项目指令的系统建议书,以供管理层批准。
可行性类型
经济可行性
-
它是通过使用成本/收益分析方法来评估候选系统的有效性。
-
它展示了候选系统在组织的收益和成本方面的净收益。
-
经济可行性分析 (EFS) 的主要目的是在投资基金提交提案之前估计候选系统的经济要求。
-
它更喜欢通过最早和最高的资金回报以及开发候选系统所涉及的最低风险水平来最大化组织净值的替代方案。
技术可行性
-
它调查了每个实施方案的技术可行性。
-
它分析并确定现有技术是否可以支持该解决方案。
-
分析师确定是否升级或添加满足新要求的当前技术资源。
-
它确保候选系统提供适当的响应,以支持技术改进的程度。
操作可行性
-
它确定系统在开发和实施后是否有效运行。
-
它确保管理层应该支持提议的系统及其在当前组织环境中的可行工作。
-
它分析用户是否会受到影响,他们是否接受影响可能的系统收益的修改或新的业务方法。
-
它还确保候选系统的计算机资源和网络架构是可行的。
行为可行性
-
它评估和估计用户对新系统开发的态度或行为。
-
它有助于确定系统是否需要特别努力来就开展业务的新方式进行教育、再培训、调动和改变员工的工作状态。
进度可行性
-
它确保项目应在给定的时间限制或时间表内完成。
-
它还验证和验证项目的最后期限是否合理。
结构化分析
分析师使用各种工具来理解和描述信息系统。其中一种方法是使用结构化分析。
什么是结构化分析?
结构化分析是一种开发方法,它允许分析师以逻辑方式理解系统及其活动。
它是一种系统方法,它使用图形工具来分析和改进现有系统的目标,并开发出用户可以轻松理解的新系统规范。
它具有以下属性 –
-
它是指定应用程序呈现的图形。
-
它将进程划分为清晰的系统流程图。
-
它是逻辑的而不是物理的,即系统的元素不依赖于供应商或硬件。
-
这是一种从高级概述到低级细节的方法。
结构化分析工具
在结构化分析期间,各种工具和技术用于系统开发。他们是 –
- 数据流图
- 数据字典
- 决策树
- 决策表
- 结构化英语
- 伪代码
数据流图 (DFD) 或气泡图
它是由 Larry Constantine 开发的一种以图形形式表达系统需求的技术。
-
它显示了系统各种功能之间的数据流,并指定了当前系统的实现方式。
-
它是设计阶段的初始阶段,在功能上将需求规格划分为最低的细节级别。
-
它的图形特性使其成为用户与分析师或分析师与系统设计师之间的良好沟通工具。
-
它概述了系统处理哪些数据、执行了哪些转换、存储了哪些数据、产生了哪些结果以及它们流向何处。
DFD的基本要素
当所需的设计不明确并且用户想要一种符号语言进行交流时,DFD 很容易理解并且非常有效。但是,它需要大量的迭代才能获得最准确和完整的解决方案。
下表显示了用于设计 DFD 的符号及其重要性 –
Symbol Name | 象征 | 意义 |
---|---|---|
Square | 数据的来源或目的地 | |
Arrow | 数据流 | |
Circle | 流程转换数据流 | |
Open Rectangle | 数据存储 |
DFD的类型
DFD 有两种类型:物理 DFD 和逻辑 DFD。下表列出了区分物理 DFD 和逻辑 DFD 的要点。
Physical DFD | 逻辑DFD |
---|---|
It is implementation dependent. It shows which functions are performed. | 它是独立于实现的。它只关注进程之间的数据流。 |
It provides low level details of hardware, software, files, and people. | 它解释了系统的事件和每个事件所需的数据。 |
It depicts how the current system operates and how a system will be implemented. | 它展示了企业的运作方式;不是系统如何实施。 |
上下文图
上下文图有助于通过一个 DFD 来理解整个系统,它给出了系统的概述。它首先以很少的细节提及主要流程,然后使用自上而下的方法提供更多的流程细节。
混乱管理的上下文图如下所示。
数据字典
数据字典是系统中数据元素的结构化存储库。它存储所有 DFD 数据元素的描述,即数据流、数据存储、存储在数据存储中的数据和过程的详细信息和定义。
数据字典改善了分析师和用户之间的沟通。它在构建数据库中扮演着重要的角色。大多数 DBMS 都将数据字典作为标准功能。例如,请参阅下表 –
Sr.No. | 数据名称 | 描述 | 字符数 |
---|---|---|---|
1 | 国际标准书号 | ISBN 号 | 10 |
2 | 标题 | 标题 | 60 |
3 | 子 | 书籍主题 | 80 |
4 | 一个名字 | 作者姓名 | 15 |
决策树
决策树是一种通过描述决策和避免沟通中的问题来定义复杂关系的方法。决策树是一个图表,显示了水平树框架内的替代行动和条件。因此,它描述了首先要考虑的条件,其次,等等。
决策树描述了每个条件及其允许的操作之间的关系。方形节点表示动作,圆圈表示条件。它迫使分析师考虑决策的顺序并确定必须做出的实际决策。
决策树的主要限制是它缺乏格式信息来描述您可以采用哪些其他条件组合进行测试。它是条件和动作之间关系的单一表示。
例如,参考以下决策树 –
决策表
决策表是一种以易于理解的精确方式描述复杂逻辑关系的方法。
-
在结果操作取决于一个或多个独立条件组合的发生的情况下,它很有用。
-
它是一个包含用于定义问题和操作的行或列的矩阵。
决策表的组成部分
-
条件存根– 它位于左上象限,列出了所有要检查的条件。
-
动作存根– 它位于左下象限,概述了为满足此类条件而要执行的所有动作。
-
条件条目– 它位于右上象限,提供条件存根象限中提出的问题的答案。
-
动作条目– 它位于右下象限,表示由条件条目象限中的条件的答案产生的适当动作。
决策表中的条目由定义条件组合和行动过程之间关系的决策规则给出。在规则部分,
- Y 表示条件的存在。
- N 表示不满足的条件。
- 空白 – 反对行动表明它是被忽略的。
- X(或一个复选标记会做)反对行动表示要执行。
例如,请参阅下表 –
CONDITIONS | 规则1 | 规则 2 | 规则 3 | 规则 4 |
---|---|---|---|---|
Advance payment made | 是 | N | N | N |
Purchase amount = Rs 10,000/- | —— | 是 | 是 | N |
Regular Customer | —— | 是 | N | —— |
ACTIONS | ||||
Give 5% discount | X | X | —— | —— |
Give no discount | —— | —— | 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图建模。
物理设计
物理设计涉及系统的实际输入和输出过程。它侧重于如何将数据输入系统、验证、处理和显示为输出。
它通过定义准确指定候选系统做什么的设计规范来生成工作系统。它涉及用户界面设计、流程设计和数据设计。
它包括以下步骤 –
-
指定输入/输出媒体,设计数据库,并指定备份程序。
-
规划系统实施。
-
制定测试和实施计划,并指定任何新的硬件和软件。
-
更新成本、收益、转换日期和系统限制。
建筑设计
它也被称为高级设计,专注于系统架构的设计。它描述了系统的结构和行为。它定义了系统开发过程中各个模块之间的结构和关系。
详细设计
它遵循架构设计,专注于每个模块的开发。
概念数据建模
它是组织数据的表示,包括所有主要实体和关系。系统分析师为当前系统开发一个概念数据模型,该模型支持所提议系统的范围和要求。
概念数据建模的主要目的是尽可能多地捕捉数据的含义。今天的大多数组织都使用使用 ER 模型的概念数据建模,该模型使用特殊符号来表示尽可能多的数据含义。
实体关系模型
它是一种用于数据库设计的技术,可帮助描述组织的各种实体之间的关系。
ER 模型中使用的术语
-
实体– 它指定应用程序中不同的现实世界项目。例如:供应商、项目、学生、课程、教师等。
-
RELATIONSHIP – 它们是实体之间有意义的依赖关系。例如,供应商供应物品,教师教授课程,那么供应品和课程是关系。
-
属性– 它指定关系的属性。例如,供应商代码、学生姓名。ER 模型中使用的符号及其各自的含义 –
下表显示了 ER 模型中使用的符号及其意义 –
Symbol | 意义 |
---|---|
实体 | |
弱实体 | |
关系 | |
身份关系 | |
属性 | |
关键属性 | |
多值 | |
复合属性 | |
派生属性 | |
E2 在 R 中的总参与度 | |
R 中 E1:E2 的基数比 1:N |
两组数据之间可以存在三种类型的关系:一对一、一对多和多对多。
文件组织
它描述了记录如何存储在文件中。
有四种文件组织方法 –
-
Serial – 记录按时间顺序存储(按输入或发生的顺序)。示例– 电话费用记录、ATM 交易、电话队列。
-
Sequential – 记录根据包含唯一标识记录的值的键字段按顺序存储。示例– 电话目录。
-
直接(相对) – 每条记录都根据设备上的物理地址或位置进行存储。地址是根据存储在记录键字段中的值计算得出的。随机化例程或散列算法进行转换。
-
索引– 可以使用索引顺序和非顺序处理记录。
比较
文件访问
可以使用顺序访问或随机访问来访问文件。文件访问方法允许计算机程序读取或写入文件中的记录。
顺序访问
从第一条记录开始处理文件中的每条记录,直到到达文件尾 (EOF)。当需要在任何给定时间访问文件上的大量记录时,它是有效的。存储在磁带上的数据(顺序访问)只能顺序访问。
直接(随机)访问
通过了解它们在设备上的物理位置或地址而不是它们相对于其他记录的位置来定位记录。存储在 CD 设备上的数据(直接访问)可以按顺序或随机访问。
组织系统中使用的文件类型
以下是组织系统中使用的文件类型 –
-
主文件– 它包含系统的当前信息。例如,客户档案、学生档案、电话簿。
-
表文件– 它是一种不经常更改并以表格格式存储的主文件。例如,存储邮政编码。
-
交易文件– 它包含从业务活动中生成的日常信息。它用于更新或处理主文件。例如,员工的地址。
-
临时文件– 它在系统需要时创建和使用。
-
镜像文件– 它们是其他文件的完全副本。在原件无法使用的情况下,帮助最大程度地降低停机风险。每次更改原始文件时都必须修改它们。
-
日志文件– 它们包含主记录和交易记录的副本,以便记录对主文件所做的任何更改。它有助于审计并提供系统故障时的恢复机制。
-
存档文件– 包含其他文件历史版本的备份文件。
文件控制
文档是为任何参考或操作目的记录信息的过程。它可以帮助需要它的用户、经理和 IT 员工。重要的是必须定期更新准备好的文件,以便轻松跟踪系统的进度。
系统实施后,如果系统运行不正常,则文档有助于管理员了解系统中的数据流,从而纠正缺陷并使系统正常工作。
程序员或系统分析师通常创建程序和系统文档。系统分析师通常负责准备文档以帮助用户了解系统。在大公司中,包括技术作家在内的技术支持团队可能会协助准备用户文档和培训材料。
好处
-
它可以减少系统停机时间、降低成本并加快维护任务。
-
它提供了对现有系统正式流程的清晰描述,有助于理解输入数据的类型以及如何产生输出。
-
它提供了技术和非技术用户之间关于系统的有效和高效的交流方式。
-
方便新用户的培训,让他轻松了解系统流程。
-
它帮助用户解决诸如故障排除等问题,并帮助管理者对组织系统做出更好的最终决策。
-
它为系统的内部或外部工作提供了更好的控制。
文件类型
在系统设计方面,有以下四个主要文档 –
- 程序文档
- 系统文档
- 操作文档
- 用户文档
程序文档
-
它描述了所有程序模块的输入、输出和处理逻辑。
-
程序文档编制过程从系统分析阶段开始,并在实施过程中继续。
-
本文档为程序员提供指导,他们构建的模块受到内部和外部注释和描述的支持,易于理解和维护。
操作文档
操作文档包含处理和分发在线和打印输出所需的所有信息。如果可能,操作文档应该清晰、简洁,并且可以在线获取。
它包括以下信息 –
-
程序、系统分析员、程序员和系统识别。
-
打印输出的计划信息,例如报告、执行频率和截止日期。
-
输入文件、它们的源、输出文件和它们的目的地。
-
电子邮件和报告分发列表。
-
需要特殊表格,包括在线表格。
-
给操作员和重新启动程序的错误和信息性消息。
-
特殊说明,例如安全要求。
用户文档
它包括将与系统交互的用户的说明和信息。例如,用户手册、帮助指南和教程。用户文档对于培训用户和参考目的很有价值。它必须清晰、易懂且易于各级用户访问。
用户、系统所有者、分析员和程序员都共同努力制定用户指南。
用户文档应包括 –
-
清晰描述所有主要系统特性、功能和限制的系统概述。
-
源文件内容、准备、处理和样本的描述。
-
菜单和数据输入屏幕选项、内容和处理说明的概述。
-
定期生成或应用户要求提供的报告示例,包括样本。
-
安全和审计跟踪信息。
-
对特定输入、输出或处理要求的责任说明。
-
请求更改和报告问题的程序。
-
异常和错误情况的示例。
-
常见问题 (FAQ)。
-
说明如何获得帮助和更新用户手册的程序。
系统文档
系统文档用作 IS 的技术规范以及如何实现 IS 的目标。用户、经理和 IS 所有者从不需要参考系统文档。系统文档为在进行修改时了解 IS 的技术方面提供了基础。
-
它描述了 IS 中的每个程序以及整个 IS 本身。
-
它描述了系统的功能、它们的实现方式、整个 IS 中每个程序在执行顺序方面的目的、传入和传出程序的信息以及整个系统流程。
-
它包括数据字典条目、数据流图、对象模型、屏幕布局、源文档和启动项目的系统请求。
-
大多数系统文档是在系统分析和系统设计阶段准备的。
-
在系统实施期间,分析师必须审查系统文档以验证其完整、准确和最新,并包括在实施过程中所做的任何更改。
设计策略
自上而下的策略
自上而下的策略使用模块化方法来开发系统设计。之所以这样称呼,是因为它从顶层或最高级别的模块开始,然后向最低级别的模块移动。
在该技术中,识别用于开发软件的最高级别模块或主模块。主模块根据每个模块执行的任务分为几个更小、更简单的子模块或段。然后,每个子模块进一步细分为下一个较低级别的几个子模块。这种将每个模块划分为若干子模块的过程一直持续到无法进一步细分的最低级别模块未被识别为止。
自下而上的策略
自下而上策略遵循模块化方法来开发系统设计。之所以这样称呼,是因为它从最底层或最基本的级别模块开始,向最高级别的模块移动。
在这项技术中,
-
标识了最基本或最低级别的模块。
-
然后根据每个模块执行的功能将这些模块组合在一起,以形成下一个更高级别的模块。
-
然后,这些模块进一步组合形成下一个更高级别的模块。
-
这种将几个更简单的模块组合成更高级别模块的过程一直持续到实现系统开发过程的主要模块。
结构化设计
结构化设计是一种基于数据流的方法,有助于识别开发系统的输入和输出。结构化设计的主要目标是最小化复杂性并增加程序的模块化。结构化设计还有助于描述系统的功能方面。
在结构化设计中,系统规范是在 DFD 的帮助下以图形方式表示软件开发中涉及的数据流和过程序列的基础。在为软件系统开发 DFD 之后,下一步是开发结构图。
模块化
结构化设计将程序划分为小而独立的模块。这些以自上而下的方式组织,细节显示在底部。
因此,结构化设计使用称为模块化或分解的方法来最小化复杂性并通过将问题细分为更小的部分来管理问题。
好处
- 首先测试关键接口。
- 它提供抽象。
- 它允许多个程序员同时工作。
- 它允许代码重用。
- 它提供控制并提高士气。
- 它使识别结构更容易。
结构化图表
结构化图表是设计模块化、自上而下系统的推荐工具,它定义了系统开发的各个模块以及每个模块之间的关系。它显示了系统模块以及它们之间的关系。
它由由代表模块的矩形框、连接箭头或线条组成的图表组成。
-
控制模块– 它是一个更高级别的模块,用于指导较低级别的模块,称为从属模块。
-
库模块– 它是一个可重用的模块,可以从图表中的多个点调用。
我们有两种不同的方法来设计结构化图表 –
-
Transform-Centered Structured Charts – 当所有交易都遵循相同的路径时使用它们。
-
以交易为中心的结构化图表– 当所有交易不遵循相同的路径时使用它们。
使用结构流程图的目的
-
鼓励自上而下的设计。
-
支持模块的概念并确定适当的模块。
-
显示系统的规模和复杂性。
-
确定每个功能中易于识别的功能和模块的数量。
-
描述每个可识别的功能是一个可管理的实体还是应该分解为更小的组件。
影响系统复杂性的因素
要开发出高质量的系统软件,就必须进行良好的设计。因此,在开发系统设计时主要关注的是软件设计的质量。一个高质量的软件设计是这样的,它最大限度地减少了软件开发的复杂性和成本支出。
与系统开发相关的两个有助于确定系统复杂性的重要概念是耦合和内聚。
耦合
耦合是组件独立性的度量。它定义了系统开发的每个模块对另一个模块的依赖程度。在实践中,这意味着系统中模块之间的耦合越强,实现和维护系统的难度就越大。
每个模块都应该与其他模块有简单、干净的接口,并且模块之间应该共享最少数量的数据元素。
高耦合
这些类型的系统与相互依赖的程序单元相互连接。对一个子系统的更改会对另一个子系统产生重大影响。
低耦合
这些类型的系统由独立或几乎独立的组件组成。一个子系统的更改不会影响任何其他子系统。
耦合措施
-
内容耦合– 当一个组件实际修改另一个组件时,修改后的组件完全依赖于修改一个。
-
Common Coupling – 当通过组织系统设计来减少耦合量时,以便可以从公共数据存储访问数据。
-
控制耦合– 当一个组件传递参数来控制另一个组件的活动时。
-
Stamp Coupling – 当数据结构用于将信息从一个组件传递到另一个组件时。
-
数据耦合– 当仅传递数据时,组件通过此耦合连接。
凝聚
内聚力是衡量其组成部分之间关系紧密程度的指标。它定义了一个模块的组件彼此之间的依赖程度。在实践中,这意味着系统设计师必须确保 –
-
它们不会将基本流程拆分为零散的模块。
-
它们不会将在 DFD 上表示为流程的无关流程聚集到无意义的模块中。
最好的模块是那些在功能上具有凝聚力的模块。最糟糕的模块是那些巧合内聚的模块。
最差的凝聚力
巧合内聚存在于一个部件中,该部件的部件与另一个部件无关。
-
逻辑内聚– 将多个逻辑相关的功能或数据元素放置在同一组件中。
-
Temporal Cohesion – 用于初始化系统或设置变量的组件按顺序执行多个功能,但这些功能与所涉及的时间相关。
-
Procedurally Cohesion – 当功能在一个组件中组合在一起时,只是为了确保这个顺序。
-
Sequential Cohesion – 当组件的一部分的输出是其下一部分的输入时。
输入/输出和表单设计
输入设计
在信息系统中,输入是经过处理以产生输出的原始数据。在输入设计时,开发者必须考虑PC、MICR、OMR等输入设备。
因此,系统输入的质量决定了系统输出的质量。精心设计的输入表单和屏幕具有以下属性 –
-
它应该有效地服务于特定的目的,例如存储、记录和检索信息。
-
它确保正确完成并准确。
-
它应该易于填充且简单明了。
-
它应该关注用户的注意力、一致性和简单性。
-
所有这些目标都是使用有关以下方面的基本设计原则的知识获得的 –
-
系统需要哪些输入?
-
最终用户如何响应表单和屏幕的不同元素。
-
输入设计的目标
输入设计的目标是 –
-
设计数据录入和输入程序
-
降低输入音量
-
设计用于数据捕获的源文档或设计其他数据捕获方法
-
设计输入数据记录、数据输入屏幕、用户界面屏幕等。
-
使用验证检查并开发有效的输入控制。
数据输入方法
设计适当的数据输入方法以防止输入数据时出现错误非常重要。这些方法取决于数据是由客户手动输入表格然后由数据输入操作员输入,还是由用户直接在PC 上输入。
系统应通过以下方式防止用户犯错 –
- 通过留下足够的空间来清晰地书写,清晰的表格设计。
- 填写表格的明确说明。
- 清晰的表单设计。
- 减少击键次数。
- 即时错误反馈。
一些流行的数据输入方法是 –
- 批量输入法(离线数据输入法)
- 在线数据输入法
- 计算机可读表格
- 交互式数据输入
输入完整性控制
输入完整性控制包括许多消除最终用户常见输入错误的方法。它们还包括对单个字段值的检查;格式和所有输入的完整性。
数据输入和其他系统操作的审计跟踪是使用事务日志创建的,事务日志记录了数据库中引入的所有更改,以便在发生任何故障时提供安全性和恢复方法。
输出设计
输出的设计是任何系统最重要的任务。在输出设计期间,开发人员确定所需的输出类型,并考虑必要的输出控件和原型报告布局。
输出设计的目标
输入设计的目标是 –
-
开发符合预期目的的输出设计,并消除不需要的输出的产生。
-
开发满足最终用户要求的输出设计。
-
提供适当数量的输出。
-
以适当的格式形成输出并将其发送给合适的人。
-
使输出准时可用,以便做出正确的决策。
现在让我们看看各种类型的输出 –
外部输出
制造商为打印机创建和设计外部输出。外部输出使系统能够将触发动作留给其接收者或向其接收者确认动作。
部分外部输出设计为周转输出,以表格形式实现,作为输入重新进入系统。
内部输出
内部输出存在于系统内部,供最终用户和管理人员使用。他们在决策和报告方面支持管理层。
管理信息生成三种类型的报告 –
-
详细报告– 它们包含几乎没有过滤或限制生成的现有信息,以协助管理计划和控制。
-
摘要报告– 它们包含为不想要详细信息的经理生成的分类和总结的趋势和潜在问题。
-
异常报告– 在将数据作为信息呈现给经理之前,它们包含异常、过滤数据到某种条件或标准。
输出完整性控制
输出完整性控制包括用于识别接收系统的路由代码,以及用于确认成功接收由网络协议处理的消息的验证消息。
打印或屏幕格式的报告应包括报告打印的日期/时间和数据。多页报告包含报告标题或描述以及分页。预印表格通常包括版本号和生效日期。
表格设计
表单和报表都是输入输出设计的产物,都是由指定数据组成的业务文档。主要区别在于表单提供用于数据输入的字段,而报表仅用于阅读。例如,订单、就业和信贷申请等。
-
在表单设计过程中,设计师应该知道 –
-
谁会使用它们
-
他们会被送到哪里
-
表格或报告的目的
-
-
在表单设计期间,自动化设计工具增强了开发人员制作表单和报告原型并将其呈现给最终用户进行评估的能力。
良好表单设计的目标
良好的表单设计对于确保以下内容是必要的 –
-
通过提供适当的顺序、信息和清晰的标题来保持屏幕简单。
-
通过使用适当的形式来达到预期的目的。
-
确保表格准确填写。
-
通过使用图标、反转视频或闪烁光标等来保持表格的吸引力。
-
为了方便导航。
表格类型
平面形式
-
它是手动或机器准备并打印在纸上的单份表格。对于原件的额外副本,在副本之间插入复写纸。
-
它是一种设计、打印和复制的最简单且成本低廉的形式,使用量较少。
单位设置/快照表格
-
这些是一次性碳原子的纸张,它们交织成单元集,供手写或机器使用。
-
碳可能是蓝色或黑色,标准等级中等强度。一般来说,蓝碳最适合手写形式,而黑碳最适合机器使用。
连续条带/折叠形式
-
这些是连接在连续条带中的多个单元模板,每对模板之间有穿孔。
-
对于大量使用来说,这是一种成本较低的方法。
无需碳纤维 (NCR) 纸
-
他们使用具有两种化学涂层(胶囊)的无碳复写纸,一个在纸的正面,另一个在纸的背面。
-
当施加压力时,两个胶囊相互作用并产生图像。
测试和质量保证
需要在每个开发阶段检查软件系统的预期行为和进展方向,以避免重复工作、时间和成本超支,并确保系统在规定时间内完成。每个开发阶段的预期行为和进展方向,以避免重复工作、时间和成本超支,并确保系统在规定时间内完成。
系统测试和质量保证有助于检查系统。它包括 –
- 产品级质量(测试)
- 过程级质量。
让我们简要介绍一下 –
测试
测试是根据指定的用户要求检查软件的功能和正确性以提高系统质量和可靠性的过程或活动。这是系统开发中一种昂贵、耗时且关键的方法,需要对整个测试过程进行适当的规划。
成功的测试是发现错误的测试。它以明确的发现错误的意图执行程序,即使程序失败。它是一个评估系统的过程,旨在创建一个强大的系统,主要关注系统或软件的薄弱环节。
系统测试的特点
系统测试从模块级别开始,然后进行整个软件系统的集成。在测试系统的不同时间使用不同的测试技术。它由开发人员针对小型项目进行,由独立的测试小组针对大型项目进行。
系统测试阶段
以下阶段涉及测试 –
测试策略
它是提供有关用于测试系统的各种级别、方法、工具和技术的信息的声明。它应该满足组织的所有需求。
测试计划
它提供测试系统的计划并验证被测系统是否满足所有设计和功能规范。测试计划提供以下信息 –
- 每个测试阶段的目标
- 用于测试的方法和工具
- 每项测试活动所需的职责和时间
- 工具、设施和测试库的可用性
- 计划和进行测试所需的程序和标准
- 成功完成测试过程的因素
测试用例设计
-
为要测试的系统的每个模块确定了许多测试用例。
-
每个测试用例将指定如何测试特定需求或设计决策的实现以及测试成功的标准。
-
测试用例与测试计划一起作为系统规范文档的一部分或在称为测试规范或测试描述的单独文档中记录。
测试程序
它由执行每个测试用例应遵循的步骤组成。这些程序在称为测试程序规范的单独文档中指定。本文件还规定了报告测试结果的任何特殊要求和格式。
测试结果文档
测试结果文件包含有关执行的测试用例总数、错误数量和错误性质的简要信息。然后根据测试规范中的标准对这些结果进行评估,以确定测试的总体结果。
测试类型
测试可以是各种类型,并且根据人们试图发现的错误类型进行不同类型的测试 –
单元测试
也称为程序测试,它是一种测试类型,分析师独立地测试或关注每个程序或模块。执行它的目的是至少执行一次模块的每个语句。
-
在单元测试中,无法保证程序的准确性,并且难以对各种输入组合进行详细的测试。
-
与其他测试技术相比,它可以识别程序中的最大错误。
集成测试
在集成测试中,分析师测试多个模块一起工作。它用于查找系统与其原始目标、当前规范和系统文档之间的差异。
-
在这里,分析人员试图找到在数据长度、类型和数据元素名称方面设计了不同规范的模块的领域。
-
它验证文件大小是否足够以及索引是否已正确构建。
功能测试
功能测试根据其规格和相关标准文档确定系统是否正常运行。功能测试通常从系统的实施开始,这对系统的成功至关重要。
功能测试分为两类 –
-
正面功能测试– 它涉及使用有效输入测试系统以验证产生的输出是否正确。
-
负面功能测试– 它涉及使用无效输入和不希望的操作条件测试软件。
系统测试规则
要成功进行系统测试,您需要遵循给定的规则 –
-
测试应基于用户的要求。
-
在编写测试脚本之前,先了解业务逻辑,了解透彻。
-
应尽快完成测试计划。
-
测试应由第三方完成。
-
它应该在静态软件上执行。
-
应针对有效和无效的输入条件进行测试。
-
应审查和检查测试以降低成本。
-
应该对软件进行静态和动态测试。
-
测试用例和测试结果的文档应该被完成。
质量保证
它是对系统或软件产品及其文档的审查,以确保系统满足要求和规范。
-
质量保证的目的是通过根据规格不断交付产品来为客户提供信心。
-
软件质量保证 (SQA) 是一种技术,包括软件专业人员应用的程序和工具,以确保软件满足其预期用途和性能的指定标准。
-
SQA 的主要目标是向管理人员提供适当和准确的软件项目及其开发产品的可见性。
-
它在系统开发的整个生命周期中审查和审计软件产品及其活动。
质量保证的目标
进行质量保证的目标如下 –
-
监控软件开发过程和最终开发的软件。
-
确保软件项目是否执行了管理层制定的标准和程序。
-
将 SQA 活动和这些活动的结果通知团体和个人。
-
确保软件中未解决的问题由上层管理人员解决。
-
识别产品、过程或标准中的缺陷,并修复它们。
质量保证水平
为了认证软件产品,需要执行多个级别的 QA 和测试。
级别 1 – 代码演练
在此级别,检查或检查离线软件是否有任何违反官方编码规则的行为。一般来说,重点放在检查文档和代码注释的级别上。
级别 2 – 编译和链接
在这个层面上,检查软件是否可以编译和链接所有官方平台和操作系统。
级别 3 – 常规跑步
在此级别,检查软件是否可以在各种条件下正常运行,例如一定数量的事件和大小事件大小等。
级别 4 – 性能测试
在这个最终级别,检查软件的性能是否满足先前指定的性能级别。
系统实施与维护
实施是确保信息系统运行的过程。它涉及 –
- 从头开始构建新系统
- 从现有系统构建新系统。
实施允许用户接管其操作以供使用和评估。它涉及培训用户处理系统并计划顺利转换。
训练
系统中的人员必须详细知道他们的角色是什么,他们如何使用系统,以及系统会做什么或不会做什么。设计良好且技术精湛的系统的成败取决于它们的操作和使用方式。
培训系统操作员
系统操作员必须接受适当的培训,以便他们能够处理所有可能的操作,包括常规操作和特殊操作。应该对操作员进行培训,了解可能会发生哪些常见故障、如何识别这些故障以及出现故障时应采取的措施。
培训包括创建故障排除列表以识别可能的问题和解决方法,以及在出现意外或异常问题时要联系的人员的姓名和电话号码。
培训还包括熟悉运行程序,包括完成使用新系统所需的一系列活动。
用户培训
-
终端用户培训是基于计算机的信息系统开发的重要组成部分,必须提供给员工,使他们能够自己解决问题。
-
用户培训包括如何操作设备、排除系统问题、确定出现的问题是由设备还是软件引起的。
-
大多数用户培训涉及系统本身的操作。培训课程必须旨在帮助用户快速为组织动员。
培训指南
- 建立可衡量的目标
- 使用适当的训练方法
- 选择合适的培训地点
- 使用易于理解的培训材料
训练方法
讲师指导的培训
它涉及培训师和受训者,他们必须同时见面,但不一定在同一地点。培训课程可以是一对一的,也可以是协作的。它有两种类型 –
虚拟教室
在本次培训中,培训师必须同时与学员会面,但不要求在同一地点。这里使用的主要工具有:视频会议、基于文本的互联网中继聊天工具或虚拟现实包等。
普通教室
培训师必须在同一时间、同一地点与学员会面。他们在这里使用的主要工具是黑板、高架投影仪、液晶投影仪等。
自定进度的培训
它涉及培训师和受训者,他们不需要在同一地点或同时会面。受训者通过在自己方便的时候访问课程来学习技能。它有两种类型 –
多媒体培训
在此培训中,课程以多媒体格式呈现并存储在 CD-ROM 中。它最大限度地降低了开发内部培训课程的成本,而无需外部程序员的帮助。
基于网络的培训
在此培训中,课程通常以超媒体格式呈现并开发以支持 Internet 和 Intranet。它为最终用户提供及时培训,并允许组织定制培训要求。
转换
这是一个从旧系统迁移到新系统的过程。它提供了易于理解和结构化的方法来改善管理和项目团队之间的沟通。
转换计划
它包含在新系统实施和投入运行期间必须发生的所有活动的描述。它预计可能出现的问题和解决方案。
它包括以下活动 –
- 命名所有要转换的文件。
- 确定在转换过程中开发新文件的数据要求。
- 列出所需的所有新文件和程序。
- 确定要在每个活动中使用的控件。
- 确定人员对每项活动的责任。
- 验证转换计划。
转换方法
四种转换方法是 –
- 并行转换
- 直接割接转换
- 试点方法
- 分阶段法
Method | 描述 | 好处 | 缺点 |
---|---|---|---|
Parallel Conversion |
新旧系统同时使用。 |
当新系统出现故障时提供回退。 提供最大的安全性并最终测试新系统。 |
导致成本超支。 新系统可能不会得到公平的跟踪。 |
Direct Cutover Conversion |
实施新系统,彻底更换旧系统。 |
强制用户使新系统工作 立即受益于新方法和控制。 |
如果新系统出现问题,没有退路 需要最仔细的计划 |
Pilot Approach |
支持在所有用户中逐步实施系统的分阶段方法 |
无需不必要地使用资源即可进行培训和安装。 避免风险管理中的大型意外事件。 |
长期的阶段性会导致转换是否顺利的问题。 |
Phase-In Method |
系统的工作版本根据反馈在组织的某一部分实施,在整个组织中单独或分阶段安装。 |
在实施前提供经验和线路测试 当首选的新系统涉及新技术或性能发生剧烈变化时。 |
给人的印象是旧系统是错误的,不可靠的。 |
文件转换
它是将一种文件格式转换为另一种文件格式的过程。例如,WordPerfect 格式的文件可以转换为 Microsoft Word。
为了成功转换,需要一个转换计划,其中包括 –
- 目标系统的知识和对当前系统的理解
- 团队合作
- 自动化方法、测试和并行操作
- 持续支持纠正问题
- 更新系统/用户文档等
许多流行的应用程序支持打开和保存为相同类型的其他文件格式。例如,Microsoft Word 可以打开和保存许多其他文字处理格式的文件。
实施后评估审查 (PIER)
PIER 是一种工具或标准方法,用于评估项目结果并确定项目是否正在为流程、产品或服务产生预期收益。它使用户能够验证项目或系统是否在指定的时间段和计划成本内实现了预期的结果。
PIER 通过评估项目的开发和管理过程来确保项目已达到其目标。
PIER 的目标
拥有 PIER 的目标如下 –
-
根据预计的成本、收益和时间表确定项目的成功。
-
确定为项目增加附加价值的机会。
-
确定项目的优势和劣势,以供将来参考和采取适当的行动。
-
通过改进成本估算技术对项目的未来提出建议。
以下工作人员应包括在审查过程中 –
- 项目团队和管理
- 用户工作人员
- 战略管理人员
- 外部用户
系统维护/增强
维护意味着将某些东西恢复到原来的状态。增强意味着添加、修改代码以支持用户规范中的更改。系统维护使系统符合其原始要求,而增强则通过合并新要求来增加系统能力。
因此,维护改变现有系统,增强为现有系统增加功能,开发取代现有系统。它是系统开发的重要组成部分,包括纠正系统设计和实施中的错误、更新文档和测试数据的活动。
维护类型
系统维护可分为三种类型 –
-
纠正性维护– 使用户能够进行修复和纠正遗留问题。
-
自适应维护– 使用户能够替换程序的功能。
-
Perfective Maintenance – 使用户能够根据用户的要求和不断变化的需求修改或增强程序。
系统安全与审计
系统审计
这是一项审查操作系统性能的调查。进行系统审计的目标如下 –
-
比较实际和计划的性能。
-
验证系统的既定目标在当前环境中仍然有效。
-
评估既定目标的实现情况。
-
确保基于计算机的财务和其他信息的可靠性。
-
确保在处理时包含所有记录。
-
以确保免受欺诈。
计算机系统使用审计
数据处理审核员审核计算机系统的使用以对其进行控制。审计师需要通过计算机系统本身获得的控制数据。
系统审计员
审计员的角色始于系统开发的初始阶段,以便最终系统是安全的。它描述了可以记录的系统利用率的想法,这有助于负载规划和决定硬件和软件规格。它表明了计算机系统的明智使用和系统可能的误用。
审计审判
审计试验或审计日志是一种安全记录,其中包括谁访问了计算机系统以及在给定时间段内执行了哪些操作。审计试验用于详细跟踪系统上的数据如何变化。
它提供了交易在处理过程中受制于的各种控制技术的书面证据。审计试验不是独立存在的。它们是作为恢复丢失交易的会计处理的一部分进行的。
审计方法
审计可以通过两种不同的方式进行 –
围绕计算机进行审计
- 获取样本输入并手动应用处理规则。
- 将输出与计算机输出进行比较。
通过计算机审计
- 建立允许检查选定的中间结果的审计试验。
- 控制总计提供中间检查。
审计注意事项
审计考虑通过使用叙述和模型来检查分析结果,以确定由于错位的功能、分裂的流程或功能、损坏的数据流、丢失的数据、冗余或不完整的处理以及未解决的自动化机会而导致的问题。
此阶段的活动如下 –
- 识别当前的环境问题
- 识别问题原因
- 确定替代解决方案
- 每个解决方案的评估和可行性分析
- 选择和推荐最实用、最合适的解决方案
- 项目成本估算和成本效益分析
安全
系统安全是指保护系统免遭盗窃、未经授权的访问和修改以及意外或无意的损坏。在计算机化系统中,安全涉及保护计算机系统的所有部分,包括数据、软件和硬件。系统安全包括系统隐私和系统完整性。
-
系统隐私涉及保护个人系统不被访问和使用未经有关个人的许可/知识。
-
系统完整性与系统中原始数据和已处理数据的质量和可靠性有关。
控制措施
有多种控制措施,可大致分类如下 –
备份
-
根据时间紧迫性和大小,每天/每周定期备份数据库。
-
以更短的间隔增量备份。
-
备份副本保存在安全的远程位置,对于灾难恢复尤其必要。
-
如果它是一个非常关键的系统并且在存储到磁盘之前不能容忍任何中断,则重复系统运行并且所有事务都被镜像。
对设施的物理访问控制
- 物理锁和生物特征认证。例如,指纹
- 保安人员正在检查身份证或入境通行证。
- 识别所有读取或修改数据并将其记录在文件中的人员。
使用逻辑或软件控制
- 密码系统。
- 加密敏感数据/程序。
- 对员工进行数据维护/处理和安全方面的培训。
- 连接到互联网时的防病毒软件和防火墙保护。
风险分析
风险是失去某些有价值的东西的可能性。风险分析首先通过识别系统的脆弱性及其影响来规划安全系统。然后制定计划来管理风险和应对灾难。这样做是为了访问可能发生灾难的概率及其成本。
风险分析是由具有不同背景(如化学品、人为错误和工艺设备)的专家组成的团队。
在进行风险分析时应遵循以下步骤 –
-
识别计算机系统的所有组件。
-
识别每个组件面临的所有威胁和危害。
-
量化风险,即在威胁成为现实的情况下评估损失。
风险分析——主要步骤
由于风险或威胁在变化,潜在损失也在变化,高级管理人员应定期进行风险管理。
风险管理是一个持续的过程,它涉及以下步骤 –
-
确定安全措施。
-
计算实施安全措施的成本。
-
安全措施成本与威胁损失和概率的比较。
-
安全措施的选择和实施。
-
审查安全措施的实施。
面向对象方法
在面向对象的方法中,重点是将信息系统的结构和行为捕获到结合数据和过程的小模块中。面向对象设计 (OOD) 的主要目标是通过提高系统分析和设计的可用性来提高系统分析和设计的质量和生产力。
在分析阶段,OO 模型用于填补问题和解决方案之间的差距。它在系统进行持续设计、调整和维护的情况下表现良好。它识别问题域中的对象,根据数据和行为对它们进行分类。
OO 模型在以下方面是有益的 –
-
它有助于以低成本更改系统。
-
它促进了组件的重用。
-
它简化了集成组件以配置大型系统的问题。
-
它简化了分布式系统的设计。
面向对象系统的要素
让我们来看看面向对象系统的特点 –
-
对象– 对象是存在于问题域中的东西,可以通过数据(属性)或行为来识别。所有有形实体(学生、患者)和一些无形实体(银行账户)都被建模为对象。
-
属性– 它们描述有关对象的信息。
-
行为– 它指定对象可以做什么。它定义了对对象执行的操作。
-
类– 类封装了数据及其行为。具有相似含义和目的的对象归为一类。
-
方法– 方法确定类的行为。它们只不过是对象可以执行的操作。
-
消息– 消息是从一个对象到另一个对象的函数或过程调用。它们是发送到对象以触发方法的信息。本质上,消息是从一个对象到另一个对象的函数或过程调用。
面向对象系统的特点
面向对象的系统具有以下将讨论的几个重要功能。
封装
封装是一个信息隐藏的过程。它只是将流程和数据组合成一个实体。对象的数据对系统的其余部分是隐藏的,只能通过类的服务获得。它允许改进或修改对象使用的方法而不影响系统的其他部分。
抽象
它是采取或选择必要的方法和属性来指定对象的过程。它侧重于对象相对于用户视角的基本特征。
关系
系统中的所有类都是相互关联的。对象不是孤立存在的,它们与其他对象有关系。
有三种类型的对象关系 –
-
聚合– 它表示整体与其部分之间的关系。
-
关联– 在这种情况下,两个类以某种方式相关或连接,例如一个类与另一个类一起工作以执行任务或一个类对另一个类起作用。
-
泛化– 子类基于父类。它表明两个类相似但有一些差异。
遗产
继承是一个很棒的特性,它允许通过继承现有类的属性和/或操作从现有类创建子类。
多态和动态绑定
多态性是具有多种不同形式的能力。它适用于对象和操作。多态对象是真正类型隐藏在超类或父类中的对象。
在多态操作中,不同类别的对象可能执行不同的操作。它允许我们通过只知道它们的共同属性来操纵不同类的对象。
结构化方法对比 面向对象的方法
下表解释了面向对象方法与传统结构化方法的不同之处 –
Structured Approach | 面向对象方法 |
---|---|
It works with Top-down approach. | 它适用于自下而上的方法。 |
Program is divided into number of submodules or functions. | 程序是按类和对象的数量组织的。 |
Function call is used. | 使用消息传递。 |
Software reuse is not possible. | 可重用性是可能的。 |
Structured design programming usually left until end phases. | 面向对象的设计编程与其他阶段同时完成。 |
Structured Design is more suitable for offshoring. | 它适合内部开发。 |
It shows clear transition from design to implementation. | 从设计到实现的过渡不太清楚。 |
It is suitable for real time system, embedded system and projects where objects are not the most useful level of abstraction. | 适用于大多数需要定制或扩展的商业应用、游戏开发项目。 |
DFD & E-R diagram model the data. | 类图、序列图、状态图和用例都有贡献。 |
In this, projects can be managed easily due to clearly identifiable phases. | 在这种方法中,由于阶段之间的过渡不确定,项目可能难以管理。 |
统一建模语言 (UML)
UML 是一种可视化语言,可让您对流程、软件和系统进行建模,以表达系统架构的设计。它是一种以面向对象的方式设计和记录系统的标准语言,允许技术架构师与开发人员进行交流。
它被定义为一组由对象管理组创建和分发的规范。UML 是可扩展和可伸缩的。
UML 的目标是提供面向对象术语和图表技术的通用词汇表,这些词汇表足够丰富,可以对从分析到实现的任何系统开发项目进行建模。
UML 由 –
-
图表– 它是过程、系统或其某些部分的图形表示。
-
符号– 它由在图表中协同工作的元素组成,例如连接器、符号、注释等。
类的 UML 表示法示例
实例图-UML 表示法
对对象执行的操作
对对象执行以下操作 –
-
构造函数/析构函数– 创建类的新实例并删除类的现有实例。例如,添加新员工。
-
查询– 在不改变值的情况下访问状态,没有副作用。例如,查找特定员工的地址。
-
更新– 更改一个或多个属性的值并影响对象的状态例如,更改员工的地址。
UML 的使用
UML 对于以下目的非常有用 –
- 业务流程建模
- 描述系统架构
- 显示应用程序结构
- 捕获系统行为
- 数据结构建模
- 建立系统的详细规范
- 草拟想法
- 生成程序代码
静态模型
静态模型显示系统的结构特征,描述其系统结构,并强调组成系统的部分。
-
它们用于定义类名、属性、方法、签名和包。
-
表示静态模型的 UML 图包括类图、对象图和用例图。
动态模型
动态模型显示系统的行为特征,即系统如何响应外部事件。
-
动态模型通过方法和消息识别所需的对象以及它们如何协同工作。
-
它们用于设计系统的逻辑和行为。
-
UML图表示的动态模型包括序列图、通信图、状态图、活动图。
面向对象系统开发生命周期
它由三个宏过程组成 –
- 面向对象分析 (OOA)
- 面向对象设计 (OOD)
- 面向对象的实现 (OOI)
面向对象的系统开发活动
面向对象的系统开发包括以下阶段 –
- 面向对象分析
- 面向对象的设计
- 原型制作
- 执行
- 增量测试
面向对象分析
此阶段涉及确定系统需求并了解系统需求并构建用例模型。用例是描述用户和计算机系统之间交互的场景。该模型代表用户需求或系统的用户视图。
它还包括识别构成应用程序的类及其与问题域中其他类的关系。
面向对象设计
此阶段的目标是设计和改进在分析阶段、用户界面和数据访问期间识别的类、属性、方法和结构。此阶段还识别和定义支持需求实现的附加类或对象。
原型制作
原型设计使我们能够充分了解实现系统的某些功能的难易程度。
它还可以让用户有机会评论设计的可用性和实用性。它可以进一步定义用例并使用例建模更加容易。
执行
它使用基于组件的开发 (CBD) 或快速应用程序开发 (RAD)。
基于组件的开发 (CBD)
CODD 是一种使用各种技术(如 CASE 工具)进行软件开发过程的工业化方法。应用程序开发从定制开发转变为组装预先构建、预先测试、可重复使用的相互操作的软件组件。CBD 开发人员可以组装组件以构建完整的软件系统。
快速应用程序开发 (RAD)
RAD 是一组工具和技术,可用于以比传统方法通常更快的速度构建应用程序。它不是取代SDLC而是补充它,因为它更侧重于过程描述,并且可以与面向对象的方法完美结合。
它的任务是通过visual basic、power builder等工具快速构建应用程序并逐步实现用户需求设计。
增量测试
软件开发及其所有活动(包括测试)都是一个迭代过程。因此,如果我们只在产品开发完成后才对其进行测试,那将是一件代价高昂的事情。在这里,增量测试开始出现,其中产品在其开发的各个阶段进行测试。