必备条件:
1、项目为既有项目,即已经开发完成的项目。中等或者中下等规模即可;
2、项目后台采用 Java,基于 Spring,前台安卓 App或者网页均可;
3、要有实体(Entity)类(或者称之为“模型层”,在项目中一般都放入一个名为“Entity”的包中)的概念,其的定义要足够复杂,即存在多层的继承类体系结构(即一个继承根类和多个中间类和多个叶子类),接标者必须在合同签订之前提供一个项目实体类中最复杂的继承类体系结构的类图;
4、要有 BLL(业务逻辑层)和 DAL(数据访问层)的概念,有比较清晰的 DAL和 BLL,BLL对数据库的所有访问都必须通过 DAL进行。DAL必须仅提供对实体类的增删改查方法。DAL必须要通过实体类传递数据,也就是说,实体类要作为 DAL中方法的参数。接标者必须在合同签订前提供项目中 BLL和 DAL的 API,如果有顾虑,可以仅提供二十个左右(每层十个左右)有代表性的样本即可;
5、实体类有对二元关联和三元关联的应用,并请在合同签订前提供至少三个二元关联和一个三元关联的类图;
6、简而言之,第 3、4、5条中的内容中最重要的是实体类要足够复杂,即包含多层的继承类体系结构,并且有对二元和三元关联的应用。DAL中的方法以实体类作为参数是底线。
7、系统要具备高内聚低耦合的特征:UI模块与用户的一次交互称为一个 Session,要求Session之间不能读写相同的非数据库持久化对象;Session内部的非数据库持久化对象的生命周期不能超过 Session的生命周期;
8、除了能提供源代码之外,还要能提供比较完备和详细的技术文档(尤其要有所有实体类的类图),并负责解答与项目有关的技术问题;
9、我方对项目拥有 100%的所有权;
可选条件:
10、对并发访问的要求可高可低(使用乐观锁、悲观锁、不使用锁,即顺序处理均可);
11、对长事务(即一个事务中包含很多 CRUD操作)的应用比较多;
12、实体类中包含时间相关参数(也就是项目中要有对时间的应用);
13、有对大于三元关联的多元关联(例如四元或者五元关联等等)的应用,如果有,请提供一个能表达清楚的类图;
14、能提供后台的黑盒测试的测试用例。
竞标时请在备注填写是什么类型的项目
源代码、技术文档