1.概述
1.1. 决策目的
选择功能满足需求,开发文档齐全,适合本项目特点的Java持久层框架。
1.2. 参考资料
2. 评价方法
采用Delphi方法进行评价,评价步骤如下:
1. 明确决策问题,选择成员(项目组成员、相关领域专家等)形成评价小组,
2. 评价小组讨论确定评价项与评价准则,并制订评价表;
3. 每个小组成员不记名对可选方案进行投票或者打分。
4. 主持人整理结果开会讨论后,重复进行[Step3]直到选择的方案集中为一种或符合评价准则的方案。
5. 依据评价准则选择投票集中的方案或分数满足评价准则的方案为决策方案
3. 评价准则
评价指标 | 指标分值 | 评分 | |
1 | 开发工作量 | 30 |
|
2 | 开发规范性 | 30 |
|
3 | 安全性 | 20 |
|
4 | 开发难度 | 10 |
|
5 | 运行效率 | 10 |
|
4.参与人员与权责分配
角色 | 职责 | 人员 |
项目经理 | 负责决策分析报告的组织编写 | pm |
评审人员 | 参与对于技术方案的评审 | a1、a2 |
打分人员 | 参与最后的决策分析打分 | pm、kf1、kf2、kf3、UI |
QA | 参与技术方案的评审,检查工作产品 | qa |
5. 可选解决方案
5.1. 方案一
Hibernate框架 | 优点: 1. 表结构对于前端开发人员是不可见的,安全性高。 2. 涉到业务逻辑部分的数据库操作必须在数据库层由存储过程实现,规范性好。 3. 前端开发人员不必考虑数据库表,节省时间。 4. 中数据间移植性好。 5. 公司JAVA项目已使用此框架,可以参考借鉴。 缺点: 1. 对于数据量非常大的应用,无法去优化sql语句。 2. 不容易掌握。 3. 产生大量的多余class,运行效率较低。 |
5.2. 方案二
iBATIS框架 | 优点: 1. 可由开发人员自己来写sql语句,灵活性好。 2. 容易掌握。 3. 可以进行细粒度的优化,运行效率高。 4. 可维护性好。 缺点: 1. 半自动化,开发工作量大。 2. 数据库间移值性差。 3. 缺省的 cache 支持不好。 |
6. 可选解决方案的评价结果
方案 | 评价指标 | 指标分值 | PM | KF1 | KF2 | KF3 | UI | 分数 |
开发工作量 | 30 | 29 | 28 | 30 | 29 | 29 | 92 | |
开发规范性 | 30 | 30 | 30 | 28 | 27 | 28 | ||
安全性 | 20 | 19 | 18 | 19 | 19 | 19 | ||
开发难度 | 10 | 7 | 8 | 6 | 8 | 9 | ||
运行效率 | 10 | 8 | 7 | 9 | 8 | 8 | ||
方案二 iBATIS | 开发工作量 | 30 | 26 | 28 | 22 | 23 | 25 | 85 |
开发规范性 | 30 | 26 | 25 | 27 | 26 | 28 | ||
安全性 | 20 | 18 | 15 | 17 | 15 | 16 | ||
开发难度 | 10 | 9 | 9 | 8 | 9 | 9 | ||
运行效率 | 10 | 9 | 10 | 9 | 8 | 8 |
序号 | 项目 | 方案一 | 方案二 |
1 | 评价结果 | 规范性和安全性较好,整体开发工作量小,已经有较完整的帮助文档。对开发人员要求高,目前配备人员还需要加强培训。 | 运行效率较高,开发人员容易掌握,帮助资料好找。整体开发工作量较大。 |
2 | 最终得分 | 92 | 85 |
考虑到系统主要是在内部网络布署应用,用户数量少,带宽和服务器性能要求方面条件较好,用户对数据规范性、安全性、工期要求方面的要求比较高,决定采取Hibernate框架进行开发。
7. 结论
采取Hibernate框架结合JDBC的方式开发。
8. 审批
审批意见 | 同意使用方案一 |
签名 | a1 |