系统开发全解析:从基础概念到实用方法
在当今数字化的时代,系统开发对于企业和组织的发展至关重要。一个高效、稳定的系统能够提升工作效率、降低成本,并为企业带来竞争优势。本文将深入探讨系统开发的相关知识,包括系统开发的基本概念、生命周期、替代方法以及软件开发工具等内容。
系统开发基础概念
系统方法是一种审视世界元素如何组织和管理的方式,它能让我们清晰地看到实体通过何种交互模式来追求目标、维持平衡,并与彼此及环境建立有意义的联系。世界本质上是按层次系统组织的,而通信(即响应和信息的交换)对所有生物都至关重要。任何系统的形式都是特定系统目标、组件和环境的结果,但所有系统的运行原则是相同的。
在组织中构建新系统的起点是预期通过改进旧系统的运营来获得未来的收益。接下来,需要将这个想法细化为具体的陈述,明确拟议系统应实现的目标、自动化应提供的帮助以及系统的哪些部分将实现自动化。分析师和设计师负责决定如何在特定硬件上创建实现这些功能的计算机程序。技术人员可以编写程序,也可以购买现成的程序。组织则需要获取所需的硬件。程序编写完成后,需要进行测试,以确保其能以正确的方式执行正确的功能。最后,一个团队将通过涉及用户培训和从旧系统转换到新系统的过程,在组织中实施新系统。系统投入运行后,还需要根据业务系统的进一步改进需求进行必要的修改。
系统开发的生命周期阶段
系统开发通常遵循一个线性的生命周期,包括以下几个阶段:
1.
问题定义
:这是系统开发过程中最重要的阶段,它明确了用户的需求,即用户期望系统实现的功能,从而为整个项目设定了方向。当用户请求更改、改进或增强现有系统时,需要对系统进行清晰的理解和研究。分析师需要判断该请求是否有效和可行。系统的成功很大程度上取决于问题定义和调查的准确性,以及解决方案的选择。在完全确定、定义和评估问题后,分析师应开始思考解决方案。完成项目定义范围后,可以确定项目的目标、约束条件和可用资源。提交项目提案,获得批准后,将对系统进行详细研究。此阶段还设定了项目的边界,明确了项目可以更改系统的哪些部分以及哪些部分保持不变,并指定了项目可用的资源。该阶段的输出定义了用户需求,包括项目目标、边界和项目的参考条款,同时通常会指定资源限制,以表明项目可用的资金、人员和时间。
2.
可行性研究
:该研究用于判断系统在实际中是否可行,包括对新系统的可操作性、资金需求、技术知识、对组织的影响以及满足用户需求的能力等方面的测试。在可行性研究中,需要深入研究问题,并确定问题的各个方面。实际上,它有助于定义系统的范围。需要调查现有系统,该系统可能完全或部分为手动操作。比较成本与预期收益后,编写一份书面提案,提案应包含问题的详细说明、主要发现和建议及结论、详细发现(以所遵循的方法和程序的形式呈现,并进行成本效益分析)以及建议和结论(包括项目进度安排、目标日期等)。可行性研究必须评估技术、社会和经济可行性:
-
技术可行性
:首先从技术角度评估拟议系统,如果技术上可行,则需要评估其对组织和员工的影响。如果能够设计出兼容的社会和技术系统,则需要对其进行经济可行性测试。这将确定问题是否可以借助计算机解决,以及可以解决到什么程度。如果可以借助计算机解决问题,则需要考虑数据量、趋势和更新频率。此外,还需要咨询用户,以确保计算机化功能满足用户目标,并能融入当前系统操作。
-
经济可行性
:涉及拟议系统的成本和费用,拟议系统必须通过成本和效益标准来证明其合理性,以确保项目的努力能够尽早获得最佳回报。经济可行性考虑的因素包括现有系统和拟议系统的运营成本、拟议系统的开发成本以及拟议系统的效益价值。
-
操作可行性
:需要考虑受拟议系统影响的各类人员的需求,包括教育、培训、沟通、工资变化、工作改进、冗余支付以及因敌意、无知和恐惧等导致的隐性成本。人们天生抗拒变革,而计算机化有助于推动变革,但也会带来岗位调动、再培训和工作状态变化等问题,因此需要考虑这些成本。
3.
系统分析
:这是对现有系统的详细评估,包括了解系统的工作方式和功能,更详细地找出系统问题以及用户对任何新系统或更改后系统的需求。系统分析是对系统执行的各种操作及其在系统内外的关系进行详细研究,同时也定义了系统的边界。在此阶段之后,分析师应熟悉系统的详细操作以及新系统的要求。分析中使用的工具包括访谈、观察、问卷调查等。进行分析需要培训、经验和常识来收集所需的信息。在此阶段,通过多种信息收集技术(如访谈用户、问卷调查和观察方法等)收集信息。分析师需要花费大量时间检查系统的各个组件,如系统中使用的各种表单以及现有系统的操作。分析中收集的数据基于现有文件、决策点和当前系统处理的交易。分析将确定是否应考虑拟议系统。完成分析后,分析师将对需要完成的工作有完整、清晰的理解。该阶段的结果是一个详细的系统模型,描述了系统功能、数据和信息流。输出包括对用户需求的详细解释以及新系统目标的变化。
4.
系统设计
:这是系统生命周期中最具挑战性的阶段,描述了最终系统及其开发过程。它涉及将应用于实施拟议系统的技术规范(类似于建筑师的蓝图),还包括程序的构建和测试。在这个阶段,需要确定输出的格式,展示样本输入和输出,设计输入数据和主文件,记录系统的合理性、估计和对组织的影响。使用的工具包括流程图、报告布局等。还需要确定实施计划和数据捕获方法。系统设计通常分为两个步骤:
-
概念设计
:在此阶段,更详细地研究可行性研究提出的概念解决方案,提出主要的新功能并定义对现有功能的更改,定义重要的输入和输出,并指定性能要求。例如在计算机化功能时,需要考虑是将实际订单处理放在计算机上,还是仅使用计算机进行信息传播。概念设计结束时,我们将了解构建系统所需的内容,包括计算机的大小和将系统组合在一起所需的软件,还将确定哪些软件可以购买现成的,哪些需要开发新程序。设计还可能建议是租赁还是购买计算机,以及是使用内部程序员还是外部软件开发机构来开发程序。
-
详细设计
:只有在选择了概念设计后,才会开始详细设计。在详细设计阶段,设计数据库和程序模块,并记录详细的用户程序。定义系统用户与计算机之间的交互,明确用户使用系统时的具体操作。此阶段的输出包括拟议的设备配置以及数据库和计算机程序的规格说明,同时还会准备用户手册。设计阶段的主要输出包括输入设计、输出设计、数据库设计和处理设计,所有这些都应进行记录,并向管理层展示设计的主要特点、目标、预期成本和效益。完成操作程序和文档记录,开发安全和审计程序。这是系统生命周期中最具创造性的阶段。
5.
系统开发与实施
:在这个阶段,根据设计阶段准备的规格构建基于计算机的系统。获取并安装硬件,完成所有必要的程序、手册、软件规格和其他文档。这类似于根据设计阶段准备的建筑师蓝图实际建造房屋。实施还包括用户培训、场地准备和文件转换。在最终测试中,先测试用户接受度,然后进行用户培训。用户接受培训后,对整个系统进行操作准备测试。系统测试检查系统访问、更新和从新文件中检索数据的准备情况和准确性。程序可用后,将测试数据读入计算机,并根据提供的测试文件进行处理。大多数转换过程中,会进行并行运行,即新系统与旧系统同时运行。新系统安装完成后,将替换旧系统。在用户实际操作之前,需要对其进行适当的培训。此阶段结束时,用户将获得一个可运行的系统,包括一组运行的程序和初始化的数据库,同时完成任何描述程序的系统文档。实施可以采用以下三种形式之一:
- 一次性实施计算机系统以取代手动系统。
- 实施新的计算机系统以取代现有系统,即对现有系统进行升级。
- 实施修改后的应用程序以取代现有应用程序。
实施过程中的主要问题包括转换、培训和过渡:
-
转换
:指从一个系统转换到另一个系统,目标是将测试后的系统投入运行。这涉及创建与计算机兼容的文件、培训操作人员和安装系统。转换阶段从审查项目计划、系统测试文档和实施计划开始。确定转换计划并获得批准后,进行文件转换,并启动现有系统与新系统之间的并行处理。将新系统的计算机运行和操作结果记录在特殊表格上。如果没有问题,将停止并行处理,并记录实施结果,转换过程完成。文件转换包括捕获数据并从现有文件创建计算机文件。确定转换数据后,需要指定要转换的数据,通过名称识别要复制的文件,以验证复制的准确性。
-
用户培训
:需要考虑两个因素,即用户的能力和安装系统的性质。需要向用户介绍整个系统的工作方式、系统的目标以及相关文档、文件和程序。指导用户如何执行新任务,培训课程应简短、定期且包含实践内容。培训中有用的工具包括提供详细参考信息的手册和用于更好解释的可视化工具(如流程图)。
-
过渡
:当系统达到系统分析师的满意标准,且其他活动完成后,可以从旧系统过渡到新系统。用户对系统测试、培训和参考手册的结果满意后,即可进行过渡。
6.
评估与维护
:在安装阶段完成且用户适应系统带来的变化后,开始进行评估和维护。如果新信息与设计规格不一致,则需要进行更改以满足要求。系统实施后将进行评估,以确定新系统是否确实实现了设定的目标,检查预期的效益是否实现。如果没有实现,则需要进行研究,找出原因。部分研究可能涉及系统的生命周期本身。在这个阶段,回顾项目的原始目标非常重要。评估后可能建议对系统进行小的更改,在特殊情况下,如果系统运行不佳,可能建议对系统进行全面重新设计。维护是必要的,以消除系统在运行过程中出现的错误,并根据工作环境的变化对系统进行调整。总会发现一些需要纠正的错误,进行更改以消除这些错误和缺陷。如果需要对系统进行重大更改,则可能需要启动一个新的项目来执行更改,该新项目将遵循上述所有系统开发生命周期活动。
系统开发生命周期阶段总结
| 阶段 | 主要任务 | 输出 |
|---|---|---|
| 问题定义 | 明确用户需求,判断请求可行性,确定项目目标、约束和资源 | 用户需求定义、项目提案 |
| 可行性研究 | 评估技术、经济和操作可行性,编写提案 | 可行性研究提案 |
| 系统分析 | 详细评估现有系统,找出问题和用户需求 | 系统详细模型、用户需求解释 |
| 系统设计 | 概念设计和详细设计,确定系统规格和用户交互 | 设备配置、数据库和程序规格、用户手册 |
| 系统开发与实施 | 构建系统,进行用户培训和文件转换 | 可运行系统、系统文档 |
| 评估与维护 | 评估系统性能,进行必要的更改和维护 | 系统改进建议、维护记录 |
系统开发生命周期流程图
graph LR
A[问题定义] --> B[可行性研究]
B --> C[系统分析]
C --> D[系统设计]
D --> E[系统开发与实施]
E --> F[评估与维护]
F -->|需要更改| A
通过以上内容,我们对系统开发的基本概念、生命周期阶段有了全面的了解。在下半部分,我们将继续探讨开发计算机化系统的替代方法以及软件开发工具等内容。
系统开发全解析:从基础概念到实用方法
开发计算机化系统的替代方法
开发计算机化系统有三种替代模型,每种都有其独特的优缺点,适用于不同的情况。
1.
现成软件包
:
-
特点
:现成软件包或即买即用的软件包并非在组织内部开发,而是从外部软件开发机构购买。由于大多数企业的许多操作和功能具有相似性,如两家贸易公司的工资系统几乎相同,这促使软件开发公司开发出可被众多企业使用的软件包并出售获利。这些软件包通常包含多个子模块,被称为“应用程序包”,有专门针对特定应用(如库存管理、工资核算等)的软件包,也有用于一般商业应用(如分类账、现金簿、试算平衡等)的软件包。
-
适用情况
:当企业无法承担高额的开发成本,或者员工缺乏开发软件的知识和经验,且该软件包能完全满足公司需求并具有经济性时,购买现成软件包是最佳选择。如今,几乎每个业务功能都有广泛的现成软件包可供选择,企业可以根据预算和需求进行购买。
-
优点
:
-
经济实惠
:是自动化系统最经济的选择,独立开发软件在资金和精力上都有很大难度。
-
节省时间
:无需等待开发过程,购买后即可实施。
-
无超支风险
:由于软件包随时可用,不存在成本和进度超支的问题。
-
文档完善
:由专业软件公司开发,通常有更好的文档记录和维护。
-
功能丰富
:考虑了企业的一般需求,软件供应商提供了企业可能需要的几乎所有功能和选项。
-
缺点
:
-
并非完全适配
:虽提供通用功能,但可能无法满足企业独特和独立的问题,且通常难以更改,企业可能需要改变工作系统来适应软件。
-
维护成本
:系统正常运行需要定期维护和升级,供应商提供服务但需收费,企业有时会完全依赖软件供应商。
-
缺乏竞争优势
:竞争对手也可购买相同的软件包,无法为企业带来竞争优势。
-
存在风险
:采用即买即用的方法实现100%自动化时,存在供应商未来可能倒闭的风险,这会增加对供应商的依赖,并给软件的长期维护带来问题。
2.
内部开发
:
-
传统内部开发
:从无到有在内部开发系统是另一种选择。开发成本可能远超现成软件包。最常见和方便的方法是让公司的常规计算机员工编写、测试、安装和维护程序。这些员工作为正式员工,能详细了解公司的需求和问题,直接与最终用户面谈,收集所需系统的信息和数据。这种方法成本高,通常只有大型组织能够承担,但最大的优势是能完全满足公司的软件需求,并且计算机员工可以随时进行软件的维护和升级。
-
终端用户开发
:由系统的终端用户而非程序员开发程序和流程。常用工具包括电子表格、数据库管理系统、第四代编程语言和数据分析软件等。这种方法适用于公司缺乏计算机专业人员,或计算机人员忙于其他工作无法参与开发的情况。但这种方式开发的系统往往充满错误和漏洞,对于缺乏经验的用户来说,维护和升级也是一项艰巨的任务。
-
联合应用开发
:结合了上述两种方法,程序员和用户组成团队共同开发系统。这种方法减少了开发过程中虽经过长时间用户面谈仍可能存在的沟通不畅和误解问题,同时提高了员工的士气,因为他们直接参与了新系统的设计,从而可以消除员工对新系统或新技术的抵触情绪。
3.
替代方法对比
|替代方法|优点|缺点|适用情况|
| ---- | ---- | ---- | ---- |
|现成软件包|经济实惠、节省时间、无超支风险、文档完善、功能丰富|并非完全适配、维护成本高、缺乏竞争优势、存在风险|企业无法承担开发成本、员工缺乏开发经验且软件能满足需求|
|内部开发 - 传统方式|完全满足公司软件需求,便于维护升级|成本高|大型组织有足够资金和技术人员|
|内部开发 - 终端用户开发|利用非专业人员开发,适用于人员不足情况|系统错误多,维护升级困难|公司缺乏计算机专业人员或人员忙碌|
|内部开发 - 联合应用开发|减少沟通问题,提高员工士气| - |需要加强沟通和员工参与的项目|
软件开发工具
- 数据库技术 :数据库系统的引入使组织和检索大量数据变得相对容易。基于文件的数据库技术(如dBase或任何Xbase系统,如Clipper)将数据存储在文件中,不同文件之间的关系由用户外部设置。而关系型数据库软件包(如Oracle、Sybase、Informix或DB2)将数据存储在表中,数据组织时就定义了它们之间的关系。这些软件包旨在处理大量数据,还能存储图像和用户定义的数据类型。“数据仓库”的概念越来越受欢迎,主要得益于这些数据库软件包的强大功能。即将到来的对象关系型数据库技术将存储数据以及对这些数据的操作,以方便数据和程序的封装。
- 快速应用开发(RAD)工具 :应用开发环境正随着专业化工具的出现而发生变革。这些工具通过自动生成代码和使用接近自然语言的命令,加速了应用程序的开发。它们利用操作系统提供的图形用户界面(GUI),帮助用户设计屏幕和输入格式、菜单和输出报告。目前市场上有许多RAD工具,如Delphi、Developer 2000、Visual C++、Visual Basic、Visual FoxPro、C#、Java等。像Java小程序这样的软件块可以被视为软件集成电路,开发者可以像使用硬件芯片或集成电路一样使用它们。
- 计算机辅助软件工程(CASE)工具 :系统工程过程涉及规划、任务分析、特定需求、数据结构设计以及输入和输出需求开发等步骤,需要人类的智慧和技能。现有的CASE工具帮助设计师采用定义明确、系统的方法进行工作,并能存储结果以便修改和迭代。它们还能将用户需求映射到机器可理解的设计,将人类可理解的图表转化为机器可理解的设计。许多CASE工具还具有有限的代码生成能力,可用于后续的数据库设计或用户界面开发。随着应用软件规模的不断增大,使用自动代码生成器来加速开发变得至关重要。
- 面向对象方法 :软件开发的最新趋势是采用面向对象方法(OOM)来设计和开发计算机系统。由于传统结构化开发方法缺乏灵活性,面向对象方法在信息工程、RAD工具、CASE工具、神经网络、并行计算、可视化编程、虚拟现实、客户端 - 服务器架构等几乎所有应用开发领域都得到了更广泛的认可。使用这种方法进行分析和设计被称为面向对象分析与设计。该方法旨在识别和分类编程对象,这些对象类似于现实世界的对象,将数据和操作封装在一起,对象继承所属类的属性(如相似的数据结构和操作)。这种方法实现了更高程度的抽象,程序员可以使用预先设计的对象库,而无需自己设计,提高了代码的可重用性,从而提高了应用程序开发的效率。这种应用开发技术被称为面向对象编程(OOP),目前许多计算机语言(如C++、Object Pascal、Smalltalk等)都支持这种编程方式。
自动化模型
在印度,大型组织需要通过技术提供增值服务。自动化对于拥有国内或全球大型分支机构网络的大组织才更有用。传统上,出现了三种信息技术部署模型:
1.
全部分支机构自动化(TBA)模型
:分支机构实现自动化,但彼此之间没有连接。
2.
分布式模型
:分阶段实现分支机构的全自动化,并在选定的分支机构之间提供互连性。
3.
集中式模型
:集中交易处理,将分支机构转变为交付渠道。
这些模型各有优缺点:
- 在TBA和分布式自动化环境中,公司在初始资本投资和实施工作方面更容易适应自动化。
- 集中式自动化模型的优点包括集中运营控制和较低的运营成本,管理信息系统(MIS)流程更加及时和完整,并且易于扩展。
此外,应用服务提供商(ASP)选项越来越受到关注。ASP以低成本提供了集中式工作解决方案的好处,无需在信息技术方面进行大量前期投资或进行专业技能培训。ASP负责提供应用程序、管理数据中心、确保系统正常运行并提供升级服务,这简化了银行的业务流程,使其能够专注于核心业务。
如今,大多数大型组织已经认识到TBA和分布式分支自动化策略的局限性,主要是缺乏有意义和及时的MIS以及高运营成本,并且这些处理模型不利于部署基于网络的服务。在考虑集中式处理模型时,需要考虑一些关键属性。未来的技术需要以Web为中心,使用开放的连接标准,并通过多种渠道向客户提供服务/产品。通过桌面、自动取款机(ATM)、无线应用协议(WAP)手机和手持设备提供服务/产品将是关键的技术特征。最后,将商业智能功能集成到自动化过程中也变得越来越重要。大公司越来越多地选择实施数据仓库,将来自不同来源的数据整合到一个易于使用的参考数据库中,以支持关键决策。这样公司能够跟踪和响应业务趋势,根据业务维度分析数据,专注于客户获取、保留盈利账户、跟踪客户需求、识别交叉销售机会并提供定制服务,从而为客户提供额外的便利,同时增加组织的价值。
软件开发工具与自动化模型关系图
graph LR
A[软件开发工具] --> B[数据库技术]
A --> C[RAD工具]
A --> D[CASE工具]
A --> E[面向对象方法]
F[自动化模型] --> G[TBA模型]
F --> H[分布式模型]
F --> I[集中式模型]
F --> J[ASP选项]
K[系统开发] --> A
K --> F
综上所述,系统开发是一个复杂而多面的过程,涉及从基础概念的理解到具体实施方法的选择,以及各种软件开发工具和自动化模型的应用。企业在进行系统开发时,需要根据自身的需求、资源和目标,综合考虑各种因素,选择最适合的开发路径和工具,以实现高效、稳定且具有竞争力的系统。
超级会员免费看
1万+

被折叠的 条评论
为什么被折叠?



