系统
即基于计算机的系统,是指:通过处理信息来完成某些预定义目标而组织在一起的元素的集合或排列
组成基于计算机系统的元素
- 软件
- 硬件
- 人员
- 数据库
- 文档
- 规程(procedures)
计算机系统工程
- 是指与构造基于计算机的系统有关的过程、方法和技术,它是一种问题求解活动
- 其目的是分析基于计算机的系统的功能、性能等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口。
任务:
1. 识别用户的要求
2. 系统建模和模拟
3. 成本估算及进度安排
4. 可行性分析
- 开发一个基于计算机的系统通常都受到资源(人力、财力、设备等)和时间上的限制
- 目的:
- 用最小的代价在尽可能短的时间内确定问题是否能够解决。
- 确定能否解决问题,同时确定问题是否值得去解决。
- 经济可行性
- 成本
- 购置硬件、软件(如数据库管理系统、第三方开发的构件
等)和设备(如传感器等)的费用 - 系统安装、运行和维护费用
- 系统的开发费用
- 人员培训费用
- 效益可分为:
- 经济效益
使用计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时间、消耗的物资等)
可增加的收入+可节省的运行费用-成本=经济效益
可节省的运行费用=节省的操作的人员数+节省的工作时+减少消耗的物资 - 社会效益
使用基于计算机的系统后对社会产生的影响(如提高了办事效益,使用户满意等)
- 货币的时间价值
- 例如,一个基于计算机的系统使用后,每年产生的经济效益为10万,如果年利率为5%,那么,五年内该系统的累计经济效益是43.2948万,而不是50万
- 投资回收期
- 累计的经济效益正好等于投资数(成本)所需的时间
- 投资回收期越短越好
- 纯收入
- 纯收入=累计经济效益-成本
当纯收入大于零时,该工程值得投资开发
当纯收入小于零时,该工程不值得投资(除非它有明显的社会效益)
当纯收入等于零时,通常也不值得投资 - 纯收入越大越好
- 技术可行性
- 技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现
- 风险分析
- 采用不成熟的技术可能造成技术风险
- 人员流动可能给项目带来风险
- 成本和人员估算不合理造成的预算风险
- 资源分析
- 论证是否具备系统开发所需的各类人员、软件、硬件等资源和相应的工作环境
- 例如,有一支开发过类似项目的开发和管理的团队,或者开发人员比较熟悉系统所处的领域,并有足够的人员保证,所需的硬件和支撑软件能通过合法的手段获取
- 技术分析
- 在技术分析过程中,分析员收集系统的性能、可靠性、可维护性和生产率方面的信息
- 分析实现系统功能、性能所需的技术、方法、算法或过程
- 从技术角度分析可能存在的风险,以及这些技术问题对成本的影响
- 技术可行性分析时通常需进行系统建模,必要时可建造原型和进行系统模拟
- 法律可行性
- 开发项目是否会在社会上或政治上引起慢权、破怀或其它责任问题。
- 《中华人民共和国著作权法》、《计算机软件保护条例》
- 方案的选择和折衷
- 一个基于计算机的系统可以有多个可行的实现方案,每个方案对成本、时间、人员、技术、设备都有不同的要求,不同方案开发出来的系统在功能、性能方面也会有所不同。因此要在多个可行的实现方案中作出选择
- 方案评估的依据是待开发系统的功能、性能、成本、开发时间、采用的技术、设备、风险以及对开发人员的要求等
- 可行性研究的成本占工程总成本的5%一10%
- 由于系统的功能和性能受到多种因素的影响,某些因素之间相互关联和制约。因此,在必要时应进行折衷
- 例如,为达到高的精度就可能导致长的执行时间,为达到高可靠性就会导致高的成本等等
- 可行性分析的结论
- 可以立即开始进行
- 需要推迟到某些条件(例如资金人力、设备等)落实之后才能开始进行
- 需要对开发目标进行某些修改之后才能开始进行
- 因为某种原因(如,技术不成熟、经济上不合算等)不能进行
5. 生成系统规格说明。
可行性研究的步骤
(1)分析系统目的。
(2)分析当前系统的状况。
(3)当前系统的业务流程。
(4)分析当前系统的不足。
(5)提出新的目标系统。
(6)检查目标系统是否满足要求。
(7)制定新系统的技术方案。
(8)方案分析比较。对不同的系统开发方案进行分析、比较和论证,选择合理的方案
(9)推荐方案。
(10)编制新系统的开发计划。
(11)编制可行性研究报告。
可行性研究的结果
可行性研究最终得出的结果是可行性研究报告,GB/T 8567-2006要求可行性研究报告的主要内容如下:
1.引言
2.引用文件
3.可行性分析的前提
4. 可选的方案
5. 所建议的系统
6. 经济可行性(成本—效益分析)
7.技术可行性
8.法律可行性
9.用户使用可行性
10.其它与项目有关的问题
软件开发项目计划书主要内容:
1.系统概述
2.文档概述
3.交付产品
4.所需工作概述
5.实施整个软件开发活动的计划
6.实施详细软件开发活动的计划
7.进度表和活动网络图
8.项目组织和资源
9.培训
10.项目估算
11.风险管理
12.支持条件
总结
一、组成基于计算机系统的元素:
- 软件
- 硬件
- 人员
- 数据库
- 文档
- 规程(procedures)
二、系统工程的任务:
- 识别用户的要求
- 系统建模和模拟
- 成本估算及进度安排
- 可行性分析
- 生成系统规格说明。
三、系统工程的目的:
分析基于计算机的系统的功能、性能等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口。
四、