所有软件外包项目 Gray arrow bg 基于windows的虚拟磁盘软件

基于windows的虚拟磁盘软件

发包方 : Bysjhf2015 状态 :竞标已结束
项目编号 : 217888
项目预算 : ¥5,000-8,000
开发周期 : 7 天
技能 : C++ C
发布日期 : 2015-09-02
竞标后显示联系方式

描述

一、概述
开发一款基于windows的虚拟磁盘软件,可模拟物理总线(SCSI或其他总线),虚拟磁盘信息由数据库(sqlite)中获得。虚拟设备io调用由我们提供的io.dll(库名不固定需要在数据库中获得后动态加载)。
二、软件开发平台要求
开发工具 :不限
运行环境 :windows xp 、 windows 7/8 、server2008R2
三、软件项目的开发实施过程管理要求
1.软件项目实施过程总体要求
a.开发者提交软件开发工作大纲,由验收组对工作大纲进行评审,并提出整改意见。
b.通过评审后,开发者根据整改意见完善工作大纲,经过验收组认可后组织项目组进行软件开发。
软件开发工作按照需求分析、概要设计、详细设计、编码、测试等几个阶段进行,在开发过程中,开发者需分阶段提交相关文档。
c.在软件开发工作完成后,开发者应向验收组提交完整的软件文档,验收组对软件进行验收审查。
2.软件项目实施变更要求
在开发过程中,需求或设计不可避免地需要发生变更,相关变更必须经过验收组书面同意方可进行。
在需求或设计发生变更时,需要对原有文档进行修改,并提供完整的变更记录,以使变更处于可控制的状态(变更需求以邮件的方式告知)。
3.软件项目实施里阶段控制
验收组分阶段进行把关
四、软件的编码
1.软件编码的要求
a.模块化编码
b.代码可读性
c.可维护性
d.模块接口标准化
e.注释的应用,注释量应达到%80
2.编程规范及要求
为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。
主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。
其中数据库部分应遵守验收组的要求。
五、软件的测试
1.软件测试
a.为了尽早发现软件产品中的错误,从而达到提高软件质量、降低软件维护的费用,开发者应在编码过程中对各个模块的程序代码进行单元测试,系统集成时进行集成测试,系统集成完成后对整个软件进行系统测试。单元测试是在软件开发过程中针对程序模块进行正确性检验。集成测试是在单元测试的基础上,将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。进行软件系统测试工作时。测试主要包括可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。
b.开发者针对单元测试,集成测试,系统测试分别制定《测试计划》。集成测试需要根据需求分析报告和概要设计制作测试用例,并须经过评审。软件测试按照《测试计划》、《需求分析报告》的要求进行,最后形成《软件测试报告》。
2.测试计划
在软件编码开始之前,开发者应向验收组提交《测试计划》,在软件交付时,开发者应向验收组
提交《软件测试报告》,以确保开发者的软件得到了充分的测试。开发的软件必须经过充分的测试证明其符合设计要求、运行稳定、安全可用方可交付验收组。
六、性能需求
验收组提供的io类的同时会给出此io类的io速度,软件测试时速度不得小于此速度的90%
七、软件的详细设计
1.数据库表设计
表一:物理设备表
表名:DevTb
表结构:
id(int) 自增id
io_dll(char) 读写dll名称,在程序启动时要动态加载
dev_path(char) 设备路径、如果是RAID等虚拟设备,指向其配置文件
start_pos(bigint) 设备的起始位置
cluster_size(int) 簇大小(暂时不用保留)
mask_path(char) mask文件路径(暂时不用保留)
描述:记录物理设备的信息,在加载设备时会使用此表的记录。此表中的id对应分配表中的设备id。
加载dll之后设备路径当做参数传给dll的借口(dll中会有类似fopen的接口)
表二:虚拟设备表
表名:VDInfoTb
表结构:
id(int) 自增id
file_name(char) 设备名称
file_size(bigint) 设备大小
is_write(bool) 是否可写
cluster_size(int) 簇大小(暂时该保留)
mask_path(char) mask文件路径(暂时不用保留)
snapshoot_path(char) 用于写操作的快照文件(暂时不用保留)
描述:此表中包含所有虚拟设备的记录,每一条记录代表一个虚拟设备。程序启动时要把表中的所有虚拟设备创建出来。
通过此表的设备名称对应的id去找对应的分配表来读取片段(对应关系会在分配表中说明)。
表三: 分配表(表二中每一条记录对应一个此类型表)
表名:VFxxxxxx(xxxxxx代表在虚拟设备表中的id)
表结构:
id 自增id
logic_pos(bigint) 文件数据块逻辑位置
dev_id(int) 物理设备id :如果为0表示填充块
phy_pos(bigint) 数据块对应磁盘上的物理位置
phy_len(bigint) 数据块长度
描述:对应VFInfoTb中的一条记录,描述虚拟设备数据片段对应物理设备上的位置。如果设备id为0不需要调用dll读取数据,可直接填0。
2.数据库表的使用流程
程序启动时先根据[物理设备表]的信息加载所有dll,然后再根据[虚拟设备表]的信息初始化所有虚拟设备。
当虚拟设备发生io时,找到此虚拟设备对应的[分配表],然后在分配表中查找io位置所在的片段,根据片段对应设备id(dev_id)索引到物理设备(程序启动时加载的设备)开始读写数据。
八、软件的鉴定验收
1.软件的鉴定验收
在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。在开发者如期交付软件后,由验收组负责确定具体的鉴定验收日期。
2.验收人员
我方验收组。
3.验收具体内容
验收内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。合法性检查检查软件开发工具是否合法、使用的函数库、控件、组件是否有合法的发布许可。文档检查检查开发者提交的文档必须齐全,质量是否过关。需要开发者提供的文档包括:
概要设计说明书
详细设计说明书
软件测试报告
源程序
文档的质量根据完备性、正确性、简明性、可追踪性等方面进行踪合评定。
验收需要对软件代码进行检查,以确保其符合规范,并检查其一致性。

竞标

请您先登录,然后提交此项目的竞标方案。
还不是智城用户? 智城期待您的加入,请注册成为我们的一员吧!
Project ad2