第2章 系统工程
一、 基于计算机的系统
所谓基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的集合
组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程(Procedure)
1. 系统元素
软件—指计算机程序、数据结构和相关的工作产品,它们被用于实现所需的逻辑方法、规程或控制
硬件—指提供计算能力的电子设备、使能数据流动的互连设备(如网络交换器、电信设备)和提供外部世界功能的电子机械设备(如传感器、马达等)
人员—指硬件和软件的用户和操作者
数据库 —指通过软件访问并持久存储的大型的有组织的信息集合
文档 —指描绘系统的使用和/或操作的描述性信息(如模型、规格说明、硬复制手册、联机帮助文件、Web站点)
规程(procedures) —指定义每个系统元素或其外部相关流程的具体使用步骤
2. 系统的层次结构
基于计算机的系统本身可以成为一个更大的基于计算机系统中的一个元素,称其为那个更大系统的宏元素。这样,基于计算机的系统可呈现一个层次结构
工厂自动化系统
二、 系统工程的任务
1. 计算机系统工程
计算机系统工程是一个问题求解的活动,其目的是分析基于计算机的系统的功能、性能、等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口
2. 系统工程的任务
识别用户的要求
标识系统的功能和性能范围,确定系统的功能、性能、约束和接口
系统建模和模拟
通常可考虑建立如下模型:
硬件系统模型:描述基于计算机系统中的硬件(包括计算机、受系统控制的其它硬件设备等)配置、通信协议、拓扑结构、以及确保基于计算机系统的安全性、可靠性、性能等要求的措施
软件系统模型:描述各软件子系统的功能、性能等要求,它们在硬件系统中的部署情况,以及软件子系统之间的交互
人机接口模型:描述人如何与基于计算机的系统进行交互,包括用户环境、用户的活动、人机交互的语法和语义等
数据模型:描述基于计算机的系统使用了哪些数据库管理系统,如果使用多个数据库管理系统,还应描述它们之间的数据转换方式,必要时可给出主要的数据结构
系统模型通常可用图形描述,并加以相应的文字说明
必要时,在系统建模后可构造原型,进行系统模拟,以分析所建的模型能否满足整个基于计算机的系统的要求
成本估算及进度安排
对将开发的基于计算机的系统进行成本估算,并作出进度安排
可行性分析
从经济、技术、法律等方面分析所给出的解决方案是否可行,通常只有当解决方案可行并有一定的经济效益和/或社会效益时才开始真正的基于计算机的系统的开发
生成系统规格说明
三、 可行性分析
开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制,可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成
1. 经济可行性分析
经济可行性主要进行成本效益分析,从经济角度,确定系统是否值得开发
基于计算机的系统的成本主要包括:
购置硬件、软件(如数据库管理系统、第三方开发的构件等)和设备(如传感器等)的费用
系统的开发费用
系统安装、运行和维护费用
人员培训费用
效益
经济效益包括使用基于计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时间、消耗的物资等)。在进行成本效益分析时通常只统计五年内的经济效益
社会效益指使用基于计算机的系统后对社会产生的影响(如提高办事效益,提高用户满意度等),通常社会效益只能定性地估计
经济效益通常可用货币的时间价值、投资回收期和纯收入来度量
货币的时间价值
设:当前金额为P,年利率为i,n年后的金额为F,则
计算时,累计经济效益应折合成当前金额
例如,一个基于计算机的系统使用后,每年产生的经济效益为10万,如果年利率为5%,那么,五年内该系统的累计经济效益是43.2948万,而不是50万
投资回收期:累计的经济效益正好等于投资数(成本)所需的时间
纯收入:累计经济效益 – 投资数
当纯收入大于零时,该工程值得投资开发
当纯收入小于零时,该工程不值得投资(除非它有明显的社会效益)
当纯收入等于零时,通常也不值得投资
显然,纯收入越大越好
2. 技术可行性分析
技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现
技术可行性分析通常包括风险分析、资源分析和技术分析
风险分析:分析在给定的约束条件下设计和实现系统的风险
采用不成熟的技术可能造成技术风险
人员流动可能给项目带来风险
成本和人员估算不合理造成的预算风险
风险分析的目的是找出风险,评价风险的大小,并有效地控制和缓解风险
资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资源和相应的工作环境
例如,有一支开发过类似项目的开发和管理的团队,或者开发人员比较熟悉系统所处的领域,并有足够的人员保证,所需的硬件和支撑软件能通过合法的手段获取,那么从技术角度看,可以认为具备设计和实现系统的条件
技术分析:分析当前的科学技术是否支持系统开发的各项活动
在技术分析过程中,分析员收集系统的性能、可靠性、可维护性和生产率方面的信息,分析实现系统功能、性能所需的技术、方法、算法或过程,从技术角度分析可能存在的风险,以及这些技术问题对成本的影响
技术可行性分析时通常需进行系统建模,必要时可建造原型和进行系统模拟
3.法律可行性分析
研究系统开发过程中可能涉及到的合同、侵权、责任以及各种与法律相抵触的问题
我国颁布了《中华人民共和国著作权法》,其中将计算机软件作为著作权法的保护对象。国务院颁布了《计算机软件保护条例》。这两个法律文件是法律可行性分析的主要依据
方案的选择和折衷
一个基于计算机的系统可以有多个可行的实现方案,每个方案对成本、时间、人员、技术、设备都有不同的要求,不同方案开发出来的系统在功能、性能方面也会有所不同。因此要在多个可行的实现方案中作出选择
方案评估的依据是待开发系统的功能、性能、成本、开发时间、采用的技术、设备、风险以及对开发人员的要求等
由于系统的功能和性能受到多种因素的影响,某些因素之间相互关联和制约
如,为达到高的精度就可能导致长的执行时间,为达到高可靠性就会导致高的成本等等。因此,在必要时应进行折衷
4. 可行性分析的结论
需要推迟到某些条件(例如资金、人力、设备等)落实之后才能开始进行
需要对开发目标进行某些修改之后才能开始进行
因为某种原因(如,技术不成熟、经济上不合算等)不能进行