人人范文网 岗位职责

软件项目开发岗位职责(精选多篇)

发布时间:2021-06-29 07:55:21 来源:岗位职责 收藏本文 下载本文 手机版

推荐第1篇:软件项目开发计划书

软件项目开发计划书

1.引言

1.1编写目的

开发基于互联网的学生选课系统,提高管理工作的效率、提高信息的开放性、改善学生和教师对其最新信息查询的准确性。

1.2项目背景

某校在校生近5000人,每学期在期末都要进行一次对学生的学习质量测评,要求所有学生都要参加。以前测评的方式都是手工考核操作,由教务处发出试卷,每个同学填写完成后交回到教务处。然后教务处再使用手工的方法对试卷进行统计汇总,最后得出学生的成绩。

建议进行《学生成绩考核系统》的开发。

我院计算机系具备进行该软件系统开发的能力并承担本软件系统的开发与维护工作。该软件系统由我院教务处使用。

1.3定义

《学生成绩考核系统》以下简称《考核系统》。

1.4 参考资料

(1)” 学生成绩考核系统系统定义报告”

(2) ” 学生成绩考核系统可行性研究报告”

2.主要内容

2.1 工作内容

系统所需要的基础数据来源:

“考核系统”需要实现的功能包括两大部分:

一是前台的数据采集,具体包括:德育测试页面、体育测试页面、智力测试页面、数据存储页面。

二是后台的数据管理部分:包括测试设置、德育测试、体育测试与智力测试的数据统计及查询。

2.2条件和限制

使用SQL SERVER 2010作为数据库的建设工具,相关的管理程序开发主要使用SQL SERVER 2010及NET等。

2.3 产品

2.3.1 程序

可运行的程序包括:SQL SERVER 2010,Microsoft Visual Studio 2010

2.3.2 文档

可行性研究报告,项目开发计划书,软件需求说明书,概要设计说明书,详细设计说明书,数据库设计说明书,操作手册,测试计划,测试分析报告,项目开发总结报告。

2.4 运行环境

《学生成绩考核系统》应该运行在Windows XP 以及以上版本的平台上。

2.5 验收标准

《学生成绩考核系统》能让学生能成绩考核和查看成绩,教师能管理成绩。

3.实施计划

3.1 任务分解 需求分析:

学校每年新生入学,毕业生离校和各种其它变动,如学籍变动,个人信息修改。每学期学校者要开设一定的课程提供给学生根据自己的情况来选择,最后的选择结果要给出学生的课程表。如何有效的管理这些学生信息,帮助学校和老师管理和掌握这些情况,这就是学生信息管理系统需要完成的任务。下面用软件工程的思想和方法完成该系统的设计过程。

功能:

个人信息查询和修改,包括流动,注册,更新管理

系统设计:

“中学生成绩管理信息系统”包括四个模块:成绩录入、班级统计、年级统计、系统功能。这五个模块既相互联系又相互独立,班级统计、年级统计模块必须以成绩录入为基础。

(1)成绩录入模块:

主要功能用来对中学生的成绩进行收集和修改。具体包括中学生成绩录入、修改、增加、删除、查询、打印等功能,由于一些资料可以Word文档或Excel表格输入,故在此模块中增加了导入、导出数据功能。成绩录入需要分班级、分

年级以及某个时间考试的各门功课的成绩。修改要与成绩录入相对应。增加、删除是对基本表的操作。查询条件设置应该齐全,可以班级查询,年级查询,也可以姓名查询,学号查询等等。分成绩单打印、报表打印等。

(2)班级统计模块:

主要功能用来对中学生的成绩以班级为单位进行处理。具体包括各班学生总成绩、平均成绩、班级排名及统计班级某分数段内的学生人数;各个学生该科成绩、班级排名及统计班级某分数段内的学生人数。各项统计仅对于某学期某次考试而言。

(3)年级统计模块:

主要功能用来对中学生的成绩以年级为单位进行处理。具体包括各年级学生总成绩、年级排名统计年级某分数段内的学生人数;各个学生该科成绩、年级排名及统计、年级某分数段内的学生人数。各项统计仅对于某学期某次考试而言,在统计时,还应注意各年级考试科目不同。

(4)系统功能模块:

包括帮助信息,关于系统及退出系统。

编码:

测试计划:进行黑盒测试

测试人员:

3.2 进度安排

需求分析: 第1周

系统设计: 第2~3周

编码:第4~7周

测试计划与测试:第8~10周

包装和发布:第11周

机动:第12周

3.3 预算

开发费用:8000元

设备费及其他:5000元

合计:13000元

4.人员组织及分工(略)

5.交付期限

6.专题计划要点(详见后续内容)

推荐第2篇:软件项目开发风险

1.计划编制风险:

1.1 计划、资源和产品定义完全靠客户或者上层领导的口头命令,并且不完全一致;

1.2 计划是优化的,但是是不现实的;

1.3 计划忽略了必要的任务;

1.4 计划基于使用特定的小组成员,而那个小组成员基本上指望不上;

1.5 在限定时间内无法建立成已定规模的产品;

1.6 产品规模比估计的大;

1.7 进度已经拖延的项目在重新评估时过于优化和忽略项目历史;

1.8 过度的进度压力造成生产率下降;

1.9 目标日期提前,没有相应调整产品范围和可用资源;

1.10 一个任务的拖延导致相关任务的连锁反应;

1.11 涉足不熟悉的产品领域,花费在设计和实现上的时间比预期的要多;

2 组织和管理:

2.1 项目缺乏一个有凝聚力的最高领导人;

2.2 由于前期乏力,项目长时间搁置;

2.3 解雇和削减开支导致项目小组能力下降;

2.4 仅由管理层或市场人员来进行技术决策,导致计划进度延长;

2.5 低效的项目组结构降低生产率;

2.6 管理层审查/决策的周期比预期时间长;

2.7 预算削减打乱项目计划;

2.8 管理层做出了打击项目积极性的决定;

2.9 非技术的第三方工作比预期延长(预算批准、设备采购批准……)

2.10 计划性太差,无法适应期望的开发速度;

2.11 项目计划由于压力而放弃,导致开发混乱,低效;

2.12 管理层强调英雄主义,而忽略客观确切的状态报告,降低发现和改正问题的能力; 3 开发环境:

3.1 设施没有及时到位;

3.2 设施到位,但是不配套;

3.3 设施拥挤,杂乱或者破损;

3.4 开发工具没有及时到位;

3.5 开发工具不如期望那样有效,开发人员需要时间创建工作环境或者切换新的工具;

3.6 开发工具的选择不是基于技术需求,不能提供计划所需要的性能;

3.7 新开发工具的学习比预期的长,内容多;

4 最终用户:

4.1 最终用户坚持新的需求;

4.2 最终用户对于最后交付产品不满意,要求重新设计和重做;

4.3 最终用户不买进项目产品,无法提供后续支持;

4.4 最终用户的意见没有被采纳,造成产品最终无法满足用户期望,而必须重做; 5 客户:

5.1 客户坚持新的需求;

5.2 客户对规划、原型和规格的审核/决策周期比预期要长;;

5.3 客户没有或不能参加规划、原型、规格阶段的评审,导致需求不稳定和耗时的变更;

5.4 客户坚持技术决策导致进度计划延长;

5.5 客户对于开发进度管理过细,导致实际进度变慢;

5.6 客户提供的组件无法和开发产品匹配,导致额外的设计和集成工作;

5.7 客户提供的组件质量欠佳,导致额外的测试、设计和集成工作,以及额外的客户管理管理工作;

5.8 客户要求的支持工具和环境不兼容,性能差或者功能不完善,导致生产率下降;

5.9 客户不接受交付的软件,尽管已经满足了所有的规格;

5.10 客户期望的开发速度是开发人员无法达到的;

6 承包商:

6.1 承包商没有按承诺交付组件;

6.2 承包商递交的组件质量低下无法接收,必须花费时间改进质量;

6.3 承包商没有买进项目开发所需要的公举,进而无法提供需要的性能水平;

7 需求:

7.1 需求已经成为项目的基准,但是变化还在继续;

7.2 需求定义欠佳, 而进一步的定义会扩展项目范畴;

7.3 添加额外的需求;

7.4 产品定义含糊的部分比预期需要更多时间;

8 产品:

8.1 错误发生几率高的模块需要比预期更多的测试,设计和实现工作;

8.2 校正质量低下不可接受的产品,需要比预期更多的测试,设计和实现工作;

8.3 在一个或多个新兴领域推广计算机技术使得计划进度的延长不可预期;

8.4 由于软件功能的错误,需要重新设计和实现;

8.5 开发额外不需要的功能,延长了计划进度;

8.6 要满足产品规模和进度要求,需要比预期更多的事件,包括重新设计和实现工作;

8.7 严格要求与现有系统兼容,需要进行比预期更多的事件进行测试,设计和实现工作;

8.8 要求在不同操作系统下运行将花费比预期更长的时间;

8.9 在不熟悉或没有经验的软件环境中运行产生没有预料的问题;

8.10 在不熟悉或者没有经验的硬件环境中运行产生没有预料的问题;

8.11 开发一种对组织全新的模块将比预期花费更长的时间;

8.12 依赖于正在开发中的技术将延长计划进度;

9 外部环境:

9.1 产品依赖于政府规章,而规章的改变是不可避免的;

9.2 产品依赖于草拟中的技术标准,而最后的标准是不可预期的;

10 人员:

10.1 招聘人员所花费时间比预期长;

10.2 做为先决条件的任务不能万丞,比如培训,其他项目的万丞,工作许可证; 10.3 开发人员和管理层关系不佳导致决策缓慢,影响全局;

10.4 项目组乘员没有全身心投入项目,进而无法达到需要的产品性能水平;

10.5 缺乏激励机制,士气低下,降低了生产能力;

10.6 缺乏必要的规范,增加了工作失误和重复工作;

10.7 某些人需要更多时间适应不熟悉的软件工具和环境;

10.8 某些人需要更多时间适应不熟悉的硬件工具和环境;

10.9 某些人需要更多时间适应不熟悉的编程语言;

10.10 项目结束前,合同制人员离开团队;

10.11 项目结束前,雇员辞职;

10.12 项目后期加入新的开发人员,额外的培训和沟通降低现有成员的效率;

10.13 项目组成员不能有效地一起工作;

10.14 由于项目组成员的冲突,导致沟通不畅,设计欠佳,接口错误和额外的重复工作; 10.15 有问题的成员没有调离项目组,损害了项目组其他成员的积极性;

10.16 项目组的最佳人员没有加入项目组;

10.17 项目组的最佳人员已经加入项目组,但是因为政治或其他原因没有合理使用; 10.18 关键人员只能兼职参与;

10.19 项目人员不足;

10.20 人员工作的进展比预期的慢;

10.21 任务的分配合人员技能不匹配;

10.22 项目管理人员的怠工导致计划和进度失控;

10.23 技术人员怠工导致工作遗漏或质量低下,工作需要重做;

11 设计和实现:

11.1 设计过于简单,无法确定主要事件,并导致重新设计和实现;

11.2 设计过于复杂,导致一些不必要工作,并影响效率;

11.3 设计质量低下,导致重复设计和实现;

11.4 采用不熟悉的方法,导致额外的培训时间,并重犯以前的错误;

11.5 产品采用低级语言来实现,导致生产率比预期低;

11.6 一些必要的功能无法是用现有的代码和库实现,开发人员必需使用新的库或者自行开发所需要的功能;

11.7 代码和库质量低下,导致需要额外的测试,错误修正或重做;

11.8 过高估计增强型工具对项目进度的节省量;

11.9 分别开发的模块无法有效集成,需要重新设计或者重做;

12 过程

12.1 大量纸面工作导致进展比预期慢;

12.2 进度跟踪不准确,导致无法预知项目是否已经落后计划进度;

12.3 前期的质量保证行为不真实,导致后期的重复工作;

12.4 质量跟踪不准确,导致无法得知影响进度的质量问题;

推荐第3篇:软件项目开发合同

项目开发协议书

甲方:

乙方:

甲、乙双方经友好协商一致,达成以下协议。双方申明,双方都已理解并认可了本协议的所有内容,同意承担各自应承担的权利和义务,忠实地履行本协议。

第九条双方当事人应当保守在履行本协议过程中获知的对方商业秘密。

第十条双方应本着诚实信用的原则履行本协议。任何一方在履行中采用欺诈、胁迫或者暴力的手段,另一方可以解除本协议并有权要求对方赔偿损失。任何一方在履行中发现或者有证据表明对方已经、正在或将要违约,可以终止履行本协议,但应及时通知对方。若对方继续不履行、履行不当或者违反本协议,该方可以解除本协议并要求对方赔偿损失。

第十一条本协议签订后,经双方当事人协商一致,可以对本协议有关条款进行变更或者补充但应当以书面形式确认。上述文件一经签署,即具有法律效力并成为本协议的有效组成部分。

第十二条 本协议附件为本协议不可分割的一部分,与协议正文具有同等法律效力。 第十三条 任意一方欲提前解除本协议,应提前通知对方。甲方提前解除协议的,无权要求乙方返还预付费用并应对乙方遭受的损失承担赔偿责任;乙方无故解除协议的,应返还上述费用。本协议其他条款对协议的解除另有约定的,从其约定。

第十四条订立本协议所依据的客观情况发生重大变化,致使本协议无法履行的,经双方协商同意,可以变更本协议相关内容或者终止协议的履行。

第十五条双方当事人对本协议的订立、解释、履行、效力等发生争议的,应友好协商解决;协商不成的,双方同意向仲裁委员会提交仲裁并接受其仲裁规则。

第十六条本协议经由双方授权代表签字,自签订之日起生效。

第十七条本协议一式两份,双方当事人各执一份,具有同等法律效力。

甲方:(授权代表签字)

电话:

地址:

乙方:(授权代表签字) 电话: 地址: 签约日期: 签约日期:

附件:开发建设项目工作进度与安排、价款、交付和验收方式

一、开发项目内容:

二、协议金额及付款方式:

1、本协议金额总计:人民币元。

2、付款方式:本协议签订后3日内,甲方向乙方支付协议金额的50%,即___________元预付款,验收之后3日内支付协议余款即_____________元。

三、完成及验收时间:

1、完成时间:乙方收到本附件规定预付款项后日内开发完成。

2、验收期限:甲方在年月日前完成项目的验收,并确认。

3、付款期限:甲方须于年月日前将余款支付给乙方。

四、验收标准和验收后修改补充

1、验收期限为壹星期。

2、验收合格,甲方应以书面方式签收,但甲方在乙方交付工作成果后一周内未书面签收也未提出异议的,视为甲方验收合格。

3、验收合格后,如果甲方在使用过程中需要增加软件模块或功能,乙方可根据改动情况酌情优惠收取模块增加维护费用。

推荐第4篇:软件项目开发总结报告

武汉理工大学《软件开发工具》论文报告

火车票系统的开发

1引言

研究报告(1.研究计划;2.完成的研究内容、研究方法、研究过程与结论、成果;3.比照研究计划,分析超过或未达到预定目标、进度、研究内容的原因;4.参考文献等。)

随着人们生活水平和经济水平的提高,网络科技的全球化的发展,出游和出差的频率越来越多。这大大的激发了交通水平的发展。其中,火车这种又方便有便宜的交通工具作为人们的首选,火车站的客运列车增加,客运量也随之增加。原有的售票的方式已经不再能满足旅客的需求了。为了方便旅客售票系统不仅仅只能售票也能够了解列车的各种信息。这样才能成为现在网络社会的真的适应者。

2需求分析

该售票系统是融合了火车票销售、退票、列车管理、车票管理、售票员管理、列车管理信息,以及售票信息查询为一体的综合系统。该系统主要编写的功能是列车和售票信息的查询及售票功能。

2.1用户

该系统主要有两类用户:管理员和售票员。管理员主要工作有车次管理,车票管理和售票员管理。对于每项功能都有添加,删除和修改的功能。售票的主要工作是售票和退票。

2.2主要功能

该系统从功能方面可以分为四个方面: 登录。不管你是管理员还是售票员必须登录以后才可以进行系统允许的操作。当然要登录的管理员和售票员都必须是再数据库中已经发布的。

基本设置:该模块主要是修改售票员的相关信息,修改列车的相关信息和修改车票的相

武汉理工大学《软件开发工具》论文报告

关信息。这一块的功能只有管理员才可以操作。其他的售票员是不可以对他进行操作的。

售票和退票:这部分工作主要是售票员来操作的。售票员根据买票人员提出的要求进行查询。查询的方式有两种:一是根据车次查询;一是根据目的地来查询。退票主要是将已经出售的车票在列车开出之前再一次的返回到数据库中,并继续出售。

列车和车票查询;当需要查询列车信息或者是车票信息是所做的操作。

2.3基本流程

3开发过程

3.1内容

该程序包括三个部分数据库的设计、通用模块的实现、各个模块的实现。

3.1.1 数据库的设计:

将本系统所需的所有的数据都存储到数据库中。需要在数据库中管理员表、

售票员表、列车信息表和车票信息表。如图所示:

武汉理工大学《软件开发工具》论文报告

管理员表:

售票员表:

列车信息表:

武汉理工大学《软件开发工具》论文报告

车票信息表:

3.1.2通用模块的实现:

通用模块为了减少代码的重复。在该系统中,对经常使用的操作进行封装,如将多次需要调用的数据库和操作数库的增、删、改和查等操作进行封装。使代码有很好的重用性,即使出现错误也很容易调试。 如本程序中的Conn.java

import java.sql.*; public cla Conn {

private static Connection con; private static final String DRIVER = \"com.mysql.jdbc.Driver\"; private static final String URL =\"jdbc:mysql://localhost:3306/newdatabase\"; private static final String NAME=\"root\"; private static final String PASSWORD=\"021702190804\"; static{

} public static Connection getConnection(){

} public static void closeCon(Connection con){

try { if(con!=null) con.close(); try {

} return con; con=DriverManager.getConnection(URL,NAME,PASSWORD); e.printStackTrace(); } catch (SQLException e) { try {

} Cla.forName(DRIVER); e.printStackTrace(); } catch (ClaNotFoundException e) { } catch (SQLException e) { 4

武汉理工大学《软件开发工具》论文报告

}

} public static void closePt(PreparedStatement pt){

} public static void closeRs(ResultSet rs){

} try {

} if(rs!=null) rs.close(); try {

} if(pt!=null) pt.close(); } e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace();

用户登录界面的设计、主界面的设计、基本设置模块、销售及退票模块和列车及车票查询模块。

用户登录模块:该部分是通过设计login.java来实现的。这部分代码的作用是用户首先选择自己的登录的是管理员还是售票员,然后输入账号和密码。单击登录,用户先判断用户登录的类型,然后给sql变量赋SQL语句值,系统调用DAO.java类的login()传入sql变量。.Login 代码是:

import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*;

import com.huizhi.dao.DAO; public cla Login {

private Text nameText;

private Text paText;

private Combo combo;

private String type;

private Display display = new Display();

private Shell shell = new Shell(display);

public Login(){

FormLayout layout = new FormLayout();

武汉理工大学《软件开发工具》论文报告

layout.marginHeight =40;

layout.marginWidth =40;

shell.setLayout(layout);

shell.setText(\"login\");

Image image = new Image(display,\"2.jpg\");

shell.setBackgroundImage(image);

setUIControl();

shell.pack();

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

private void setUIControl(){

Label username = new Label(shell, SWT.NONE);

username.setText(\"username\");

nameText = new Text(shell, SWT.SINGLE | SWT.BORDER);

Label paword = new Label(shell, SWT.NONE);

paword.setText(\"paword\");

paText = new Text(shell, SWT.SINGLE | SWT.BORDER| SWT.PASSWORD);

// paText.setEchoChar(\'*\');

Label select=new Label(shell, SWT.NONE);

select.setText(\" select

\");

Button submit = new Button(shell,SWT.PUSH);

submit.setText(\"login \");

submit.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

type=combo.getText();

String name=nameText.getText();

String pa=paText.getText();

String sql=null;

boolean flag=false;

MeageBox box=new MeageBox(shell,SWT.OK);

if(\"\".equals(type)||\"\".equals(name)||\"\".equals(pa))

{

box.setMeage(\"please input all the information\");

box.open();

return ;

}

武汉理工大学《软件开发工具》论文报告

DAO dao=new DAO();

if(\"users\".equals(type)){

sql=\"select * from users where username=\'\"+name+\"\' and paword=\'\"+pa+\"\'\";

}else if(\"admin\".equals(type)){

sql=\"select * from admin where username=\'\"+name+\"\' and paword=\'\"+pa+\"\'\";

}

flag=dao.login(sql);

if(flag)

{

shell.dispose();

new Main(type);

}else{

box.setMeage(\"wrong name or paword\");

box.open();

}

}

});

Button reset = new Button(shell, SWT.PUSH);

reset.setText(\"cancel\");

String value[]={\"users\",\"admin\"};

combo=new Combo(shell,SWT.DROP_DOWN);

combo.setItems(value);

FormData data = new FormData();

data.top = new FormAttachment(30,0);

username.setLayoutData(data);

data = new FormData();

data.top = new FormAttachment(username,0,SWT.CENTER);

data.left = new FormAttachment(username,10, SWT.RIGHT);

nameText.setLayoutData(data);

data = new FormData();

data.top = new FormAttachment(select,0,SWT.CENTER);

data.left = new FormAttachment(select,10, SWT.RIGHT);

combo.setLayoutData(data);

data = new FormData();

data.top = new FormAttachment(username,10, SWT.BOTTOM);

paword.setLayoutData(data);

武汉理工大学《软件开发工具》论文报告

data = new FormData();

data.top = new FormAttachment(paword,0,SWT.CENTER);

data.left = new FormAttachment(nameText,0,SWT.LEFT);

paText.setLayoutData(data);

data=new FormData();

data.top=new FormAttachment(paword,10,SWT.BOTTOM);

submit.setLayoutData(data);

data=new FormData();

data.top=new FormAttachment(submit,0,SWT.CENTER);

data.left=new FormAttachment(submit,20,SWT.RIGHT);

reset.setLayoutData(data);

}

public static void main(String[] args) {

new Login();

} } DAO.java的login()代码:

public boolean login(String sql){

boolean flag=false;

con=Conn.getConnection();

try {

pt=con.prepareStatement(sql);

rs=pt.executeQuery();

if(rs.next()){

flag=true;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

Conn.closeRs(rs);

Conn.closePt(pt);

Conn.closeCon(con);

}

return flag; } 图示为;

武汉理工大学《软件开发工具》论文报告

实现主界面:

import org.eclipse.swt.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.events.*;

public cla Main {

private String type; Display display=Display.getCurrent(); Shell shell=new Shell(display); public Main(String type){

this.type=type;

shell.setText(\"Train ticketing system\");

shell.setLayout(new FillLayout());

Menu menu=new Menu(shell,SWT.BAR);

//第一个菜单

MenuItem basic=new MenuItem(menu,SWT.CASCADE);

basic.setText(\"Basic Settings\");

if(\"users\".equals(type))

{

basic.setEnabled(false);

}

Menu filemenu=new Menu(shell,SWT.DROP_DOWN);

MenuItem train=new MenuItem(filemenu,SWT.PUSH);

train.setText(\"Trains Management\");

train.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

new TrainManage();

}

});

MenuItem ticket=new MenuItem(filemenu,SWT.PUSH);

ticket.setText(\"Tickets Management\");

武汉理工大学《软件开发工具》论文报告

ticket.addSelectionListener(new SelectionAdapter(){ public void widgetSelected(SelectionEvent e){

new TicketManage(); } }); MenuItem users=new MenuItem(filemenu,SWT.PUSH); users.setText(\"Users Management\"); users.addSelectionListener(new SelectionAdapter(){ public void widgetSelected(SelectionEvent e){

new UsersManage(); } }); MenuItem exit=new MenuItem(filemenu,SWT.PUSH); exit.setText(\"quit\"); basic.setMenu(filemenu); exit.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

display.dispose(); } }); //第二个菜单

MenuItem market=new MenuItem(menu,SWT.CASCADE); market.setText(\"Sales and Refunds\"); Menu editMenu=new Menu(shell,SWT.DROP_DOWN); MenuItem marketItem=new MenuItem(editMenu,SWT.PUSH); marketItem.setText(\"Sales Tickets\"); marketItem.addSelectionListener(new SelectionAdapter(){ public void widgetSelected(SelectionEvent e){

new XiaosTicket(); } }); MenuItem refundItem=new MenuItem(editMenu,SWT.PUSH); refundItem.setText(\"Refunds Tickets\"); market.setMenu(editMenu); refundItem.addSelectionListener(new SelectionAdapter(){ public void widgetSelected(SelectionEvent e){

new TuiTicket(); } }); //第三个菜单

MenuItem find=new MenuItem(menu,SWT.CASCADE); find.setText(\"Trains and Tickets query\"); Menu taiMenu=new Menu(shell,SWT.DROP_DOWN); MenuItem trainFind=new MenuItem(taiMenu,SWT.PUSH);

武汉理工大学《软件开发工具》论文报告

trainFind.setText(\"Trains query\");

trainFind.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

new FindTrain();

}

});

MenuItem ticketFind=new MenuItem(taiMenu,SWT.PUSH);

ticketFind.setText(\"Ticket query\");

find.setMenu(taiMenu);

ticketFind.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

new FindTicket();

}

});

shell.setMenuBar(menu);

shell.setSize(500,400);

shell.open();

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

display.dispose();

} }

图示为:

基本设置模块包括车次管理,车票管理和售票员管理。

车次管理主要是是对于列车的增加,删除和修改等操作。其中包括它的相关的信息等。它是由TrainManagement.java.代码如下: import java.util.List; 11

武汉理工大学《软件开发工具》论文报告

import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*;

import com.huizhi.dao.DAO; import com.huizhi.vo.Train;

public cla TrainManage {

Display display=Display.getCurrent();

Shell tmshell=new Shell(display);

final Table table=new Table(tmshell,SWT.SINGLE|SWT.H_SCROLL|SWT.V_SCROLL|SWT.H_SCROLL|SWT.BORDER|SWT.FULL_SELECTION);

TrainManage tm=this; public TrainManage(){

RowLayout rowLayout=new RowLayout();

rowLayout.pack=true;

rowLayout.wrap=true;

rowLayout.justify=false;

rowLayout.marginTop=20;

tmshell.setLayout(rowLayout);

final TableColumn column1=new TableColumn(table,SWT.LEFT);

column1.setText(\"Train ID\");

column1.setWidth(80);

final TableColumn column2=new TableColumn(table,SWT.LEFT);

column2.setText(\"TrainNum\");

column2.setWidth(80);

final TableColumn column3=new TableColumn(table,SWT.LEFT);

column3.setText(\"TrainType\");

column3.setWidth(80);

final TableColumn column4=new TableColumn(table,SWT.LEFT);

column4.setText(\"Starting\");

column4.setWidth(80);

final TableColumn column5=new TableColumn(table,SWT.LEFT);

column5.setText(\"startingTime\");

column5.setWidth(80);

final TableColumn column6=new TableColumn(table,SWT.LEFT);

column6.setText(\"terminal\");

column6.setWidth(80);

final TableColumn column7=new TableColumn(table,SWT.LEFT);

column7.setText(\"terminal Time\");

column7.setWidth(80); 12

武汉理工大学《软件开发工具》论文报告

final TableColumn column8=new TableColumn(table,SWT.LEFT); column8.setText(\"is kongtiao\"); column8.setWidth(80); final TableColumn column9=new TableColumn(table,SWT.LEFT); column9.setText(\"price\"); column9.setWidth(80); final TableColumn column10=new TableColumn(table,SWT.LEFT); column10.setText(\"middleStation\"); column10.setWidth(80); final TableColumn column11=new TableColumn(table,SWT.LEFT); column11.setText(\"yzNum\"); column11.setWidth(80); final TableColumn column12=new TableColumn(table,SWT.LEFT); column12.setText(\"rzNum\"); column12.setWidth(80); final TableColumn column13=new TableColumn(table,SWT.LEFT); column13.setText(\"ywNum\"); column13.setWidth(80); final TableColumn column14=new TableColumn(table,SWT.LEFT); column14.setText(\"rwNum\"); column14.setWidth(80); table.setHeaderVisible(true); table.setLinesVisible(true); freshData(); table.setSize(800,200); Button add=new Button(tmshell,SWT.PUSH); add.setText(\"add trains\"); add.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

new AddTrain(tm);

} }); Button update=new Button(tmshell,SWT.PUSH); update.setText(\"modify\"); update.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

TableItem[] selection=table.getSelection();

TableItem selectedRow=selection[0];

Train train=new Train();

train.setId(Integer.parseInt(selectedRow.getText(0)));

train.setTrainNum(selectedRow.getText(1));

train.setTrainType(selectedRow.getText(2));

train.setStarting(selectedRow.getText(3)); 13

武汉理工大学《软件开发工具》论文报告

train.setStartingTime(selectedRow.getText(4));

train.setTerminal(selectedRow.getText(5));

train.setTerminalTime(selectedRow.getText(6));

train.setIskongTiao(selectedRow.getText(7));

train.setPrice(Float.parseFloat(selectedRow.getText(8)));

train.setMiddleStation(selectedRow.getText(9));

train.setYzNum(Integer.parseInt(selectedRow.getText(10)));

train.setRzNum(Integer.parseInt(selectedRow.getText(11)));

train.setYwNum(Integer.parseInt(selectedRow.getText(12)));

train.setRwNum(Integer.parseInt(selectedRow.getText(13)));

new UpdateTrain(train,tm);

}

});

Button delete=new Button(tmshell,SWT.PUSH);

delete.setText(\"cancel\");

delete.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

MeageBox box=new MeageBox(tmshell,SWT.YES|SWT.NO);

box.setMeage(\"Are you sure to cancel?\");

int num=box.open();

if(num==128)

return ;

TableItem[] selection=table.getSelection();

TableItem selectedRow=selection[0];

DAO dao=new DAO();

String sql=\"delete from train where id=\"+selectedRow.getText(0)+\"\";

int i=dao.update(sql);

if(i>0){

box.setMeage(\"succeed\");

box.open();

table.remove(table.getSelectionIndex());

}else{

box.setMeage(\"failure\");

box.open();

}

}

}); 14

武汉理工大学《软件开发工具》论文报告

tmshell.setSize(1200,400);

tmshell.setText(\"train Management\");

tmshell.open();

while(!tmshell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

tmshell.dispose(); } public void freshData(){

table.removeAll();

try{

DAO dao=new DAO();

List list=dao.getAllTrain();

int number=list.size();

for(int i=0;i

Train train=(Train)list.get(i);

final TableItem item[]=new TableItem[number];

item[i]=new TableItem(table,SWT.None);

item[i].setText(new

String[]{Integer.toString(train.getId()),train.getTrainNum(),train.getTrainType(),train.getStarting(),

train.getStartingTime(),train.getTerminal(),train.getTerminalTime(),train.getIskongTiao(),Float.toString(train.getPrice()),train.getMiddleStation(),Integer.toString(train.getYzNum()),

Integer.toString(train.getRzNum()),Integer.toString(train.getYwNum()),Integer.toString(train.getYwNum())});

}

}catch(Exception e){

e.printStackTrace();

} } } 在该段代码中调用了DAO.java类中的getAllTrain()方法来获得所有的车辆信息,然后以表格的形式显示出来。DAO.java类中的getAllTrain()和update()方法如下: public int update(String sql){

int i=0;

con=Conn.getConnection();

try {

pt=con.prepareStatement(sql);

i=pt.executeUpdate();

} catch (SQLException e) { 15

武汉理工大学《软件开发工具》论文报告

e.printStackTrace(); }finally{

Conn.closePt(pt);

Conn.closeCon(con); }return i; } public List getAllTrain(){ List list=new ArrayList(); con=Conn.getConnection(); try {

pt=con.prepareStatement(\"select * from train\");

rs=pt.executeQuery();

while(rs.next()){

Train train=new Train();

train.setId(rs.getInt(1));

train.setTrainNum(rs.getString(2));

train.setTrainType(rs.getString(3));

train.setStarting(rs.getString(4));

train.setStartingTime(rs.getString(5));

train.setTerminal(rs.getString(6));

train.setTerminalTime(rs.getString(7));

train.setIskongTiao(rs.getString(8));

train.setPrice(rs.getFloat(9));

train.setMiddleStation(rs.getString(10));

train.setYzNum(rs.getInt(11));

train.setRzNum(rs.getInt(12));

train.setYwNum(rs.getInt(13));

train.setRwNum(rs.getInt(14));

list.add(train);

} } catch (SQLException e) {

e.printStackTrace(); }finally{

Conn.closeRs(rs);

Conn.closePt(pt);

Conn.closeCon(con); }return list; } 其中的update的功能是,首先连接数据库,然后用传递过来的SQl语句在列表中删除某辆列车的信息。getAllTrain()方法是显示所有的列车的信息。图示如下:

武汉理工大学《软件开发工具》论文报告

在车次管理中的对于列车信息添加的功能是通过AddTrain.java 来实现的。代码如下:

import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; import com.huizhi.dao.DAO;

public cla AddTrain { Display display=Display.getCurrent(); Shell tmshell=new Shell(display); TrainManage trainmanage=null; public AddTrain(TrainManage tm){ trainmanage=tm; GridLayout gridlayout=new GridLayout(); tmshell.setText(\"add trains information\"); gridlayout.numColumns=2; gridlayout.makeColumnsEqualWidth=true; tmshell.setLayout(gridlayout);

GridData gd = new GridData(GridData.FILL_BOTH); Label l=new Label(tmshell,SWT.LEFT); l.setText(\"trainNum\"); l.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text trainNum=new Text(tmshell,SWT.NONE); trainNum.setSize(50,60); trainNum.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l1=new Label(tmshell,SWT.LEFT); l1.setText(\"trainType\"); l1.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text trainType=new Text(tmshell,SWT.LEFT); 17

武汉理工大学《软件开发工具》论文报告

trainType.setSize(30,40); trainType.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l2=new Label(tmshell,SWT.LEFT); l2.setText(\"starting\"); l2.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text starting=new Text(tmshell,SWT.LEFT); starting.setSize(30,40); starting.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l3=new Label(tmshell,SWT.LEFT); l3.setText(\"startingtime\"); l3.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text startingTime=new Text(tmshell,SWT.LEFT); startingTime.setSize(30,40); startingTime.setLayoutData(gd); Label l4=new Label(tmshell,SWT.LEFT); l4.setText(\"terminal\"); l4.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text terminal=new Text(tmshell,SWT.LEFT); terminal.setSize(30,40); terminal.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l5=new Label(tmshell,SWT.LEFT); l5.setText(\"terminaltime\"); l5.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text terminalTime=new Text(tmshell,SWT.LEFT); terminalTime.setSize(30,40); terminalTime.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l6=new Label(tmshell,SWT.LEFT); l6.setText(\"iskongtiao\"); l6.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text iskongTiao=new Text(tmshell,SWT.LEFT); 18

武汉理工大学《软件开发工具》论文报告

iskongTiao.setSize(30,40); iskongTiao.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l7=new Label(tmshell,SWT.LEFT); l7.setText(\"price\"); l7.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text price=new Text(tmshell,SWT.LEFT); price.setSize(30,40); price.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l8=new Label(tmshell,SWT.LEFT); l8.setText(\"middleStation\"); l8.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text middleStation=new Text(tmshell,SWT.LEFT); middleStation.setSize(30,40); middleStation.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l9=new Label(tmshell,SWT.LEFT); l9.setText(\"yzNum\"); l9.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text yzNum=new Text(tmshell,SWT.LEFT); yzNum.setSize(30,40); yzNum.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l10=new Label(tmshell,SWT.LEFT); l10.setText(\"rzNum\"); l10.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text rzNum=new Text(tmshell,SWT.LEFT); rzNum.setSize(30,40); rzNum.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l11=new Label(tmshell,SWT.LEFT); l11.setText(\"ywNum\"); l11.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); 19

武汉理工大学《软件开发工具》论文报告

final Text ywNum=new Text(tmshell,SWT.LEFT); ywNum.setSize(30,40); ywNum.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l12=new Label(tmshell,SWT.LEFT); l12.setText(\"rwNum\"); l12.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text rwNum=new Text(tmshell,SWT.LEFT); rwNum.setSize(30,40); rwNum.setLayoutData(gd); Button b=new Button(tmshell,SWT.LEFT); b.setText(\"add\"); b.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

MeageBox box = new MeageBox( tmshell ,SWT.OK);

if(\"\".equals(trainNum.getText())||\"\".equals(trainType.getText())||\"\".equals(starting.getText())

||\"\".equals(startingTime.getText())||\"\".equals(terminal.getText())||\"\".equals(terminalTime.getText())

||\"\".equals(iskongTiao.getText())||\"\".equals(price.getParent())||\"\".equals(middleStation.getText())||\"\".equals(yzNum.getText())

||\"\".equals(rzNum.getText())||\"\".equals(ywNum.getText())||\"\".equals(rwNum.getText())){

box.setMeage(\"please input the right information\");

box.open();

return ;

}

DAO dao=new DAO();

String sql=\"insert into train(trainNum,trainType,starting1,startingTime,terminal,terminalTime,iskongTiao,price,\" +

\"middleStation,yzNum,rzNum,ywNum,rwNum)values(\'\"+trainNum.getText()+\"\',\'\"+trainType.getText()+\"\',\'\"+starting.getText()+\"\',\" +

\"\'\"+startingTime.getText()+\"\',\'\"+terminal.getText()+\"\',\'\"+terminalTime.getText()+\"\',\'\"+iskongTiao.getText()+\"\',\" + 20

武汉理工大学《软件开发工具》论文报告

\"\'\"+price.getText()+\"\',\'\"+middleStation.getText()+\"\',\'\"+yzNum.getText()+\"\',\'\"+rzNum.getText()+\"\',\'\"+ywNum.getText()+\"\',\'\"+rwNum.getText()+\"\')\";

int i=dao.update(sql);

if(i>0){

box.setMeage(\"add\");

box.open();

fresh();

}

} }); Button b1=new Button(tmshell,SWT.LEFT); b1.setText(\"quit\"); b1.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

tmshell.setVisible(false);

} }); tmshell.layout();

tmshell.setSize(500,450);

tmshell.open();

while(!tmshell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

tmshell.dispose(); } public void fresh(){

trainmanage.freshData(); } } 图示为:

21

武汉理工大学《软件开发工具》论文报告

修改列车功能是在UpdateTrain.java.类中实现的。代码如下: import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*;

import com.huizhi.dao.DAO; import com.huizhi.vo.Train;

public cla UpdateTrain {

private Train train; Display display=Display.getCurrent(); Shell utrainshell=new Shell(display); TrainManage trainmanage=null; public UpdateTrain(Train train,TrainManage tm){ this.trainmanage=tm; this.train=train; GridLayout gridlayout=new GridLayout(); utrainshell.setText(\"modify train information\"); gridlayout.numColumns=2; gridlayout.makeColumnsEqualWidth=true; utrainshell.setLayout(gridlayout);

22

武汉理工大学《软件开发工具》论文报告

GridData gd = new GridData(GridData.FILL_BOTH); Label ll=new Label(utrainshell,SWT.LEFT); ll.setText(\"train ID\"); ll.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text num=new Text(utrainshell,SWT.NONE); num.setText(Integer.toString(train.getId())); num.setEnabled(false); num.setSize(50,60); num.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l=new Label(utrainshell,SWT.LEFT); l.setText(\"TrainNum\"); l.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text trainNum=new Text(utrainshell,SWT.NONE); trainNum.setText(train.getTrainNum()); trainNum.setSize(50,60); trainNum.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l1=new Label(utrainshell,SWT.LEFT); l1.setText(\"TrainType\"); l1.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text trainType=new Text(utrainshell,SWT.LEFT); trainType.setText(train.getTrainType()); trainType.setSize(30,40); trainType.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l2=new Label(utrainshell,SWT.LEFT); l2.setText(\"starting\"); l2.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text starting=new Text(utrainshell,SWT.LEFT); starting.setText(train.getStarting()); starting.setSize(30,40); starting.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l3=new Label(utrainshell,SWT.LEFT); l3.setText(\"startingTime\"); 23

武汉理工大学《软件开发工具》论文报告

l3.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text startingTime=new Text(utrainshell,SWT.LEFT); startingTime.setText(train.getStartingTime()); startingTime.setSize(30,40); startingTime.setLayoutData(gd); Label l4=new Label(utrainshell,SWT.LEFT); l4.setText(\"terminal\"); l4.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text terminal=new Text(utrainshell,SWT.LEFT); terminal.setText(train.getTerminal()); terminal.setSize(30,40); terminal.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l5=new Label(utrainshell,SWT.LEFT); l5.setText(\"terminalTime\"); l5.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text terminalTime=new Text(utrainshell,SWT.LEFT); terminalTime.setText(train.getTerminalTime()); terminalTime.setSize(30,40); terminalTime.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l6=new Label(utrainshell,SWT.LEFT); l6.setText(\"iskongtiao\"); l6.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text iskongTiao=new Text(utrainshell,SWT.LEFT); iskongTiao.setText(train.getIskongTiao()); iskongTiao.setSize(30,40); iskongTiao.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l7=new Label(utrainshell,SWT.LEFT); l7.setText(\"price\"); l7.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text price=new Text(utrainshell,SWT.LEFT); price.setText(Float.toString(train.getPrice())); price.setSize(30,40); 24

武汉理工大学《软件开发工具》论文报告

price.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l8=new Label(utrainshell,SWT.LEFT); l8.setText(\"middleStation\"); l8.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text middleStation=new Text(utrainshell,SWT.LEFT); middleStation.setText(train.getMiddleStation()); middleStation.setSize(30,40); middleStation.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l9=new Label(utrainshell,SWT.LEFT); l9.setText(\"yzNum\"); l9.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text yzNum=new Text(utrainshell,SWT.LEFT); yzNum.setText(Integer.toString(train.getYzNum())); yzNum.setSize(30,40); yzNum.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l10=new Label(utrainshell,SWT.LEFT); l10.setText(\"rzNum\"); l10.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text rzNum=new Text(utrainshell,SWT.LEFT); rzNum.setText(Integer.toString(train.getRzNum())); rzNum.setSize(30,40); rzNum.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l11=new Label(utrainshell,SWT.LEFT); l11.setText(\"ywNum\"); l11.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text ywNum=new Text(utrainshell,SWT.LEFT); ywNum.setText(Integer.toString(train.getYwNum())); ywNum.setSize(30,40); ywNum.setLayoutData(gd);

gd = new GridData(GridData.FILL_BOTH); Label l12=new Label(utrainshell,SWT.LEFT); 25

武汉理工大学《软件开发工具》论文报告

l12.setText(\"rwNum\"); l12.setLayoutData(gd); gd = new GridData(GridData.FILL_BOTH); final Text rwNum=new Text(utrainshell,SWT.LEFT); rwNum.setText(Integer.toString(train.getRwNum())); rwNum.setSize(30,40); rwNum.setLayoutData(gd); Button b=new Button(utrainshell,SWT.LEFT); b.setText(\"modify\"); b.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

MeageBox box = new MeageBox( utrainshell ,SWT.OK);

if(\"\".equals(trainNum.getText())||\"\".equals(trainType.getText())||\"\".equals(starting.getText())

||\"\".equals(startingTime.getText())||\"\".equals(terminal.getText())||\"\".equals(terminalTime.getText())

||\"\".equals(iskongTiao.getText())||\"\".equals(price.getText())||\"\".equals(middleStation.getText())||\"\".equals(yzNum.getText())

||\"\".equals(rzNum.getText())||\"\".equals(ywNum.getText())||\"\".equals(rwNum.getText())){

box.setMeage(\"please input right information then modify \");

box.open();

return ;

}

DAO dao=new DAO();

String sql=\"update train set trainNum=\'\"+trainNum.getText()+\"\',trainType=\'\"+trainType.getText()+\"\',starting1=\'\"+starting.getText()+\"\',\" +

\"startingTime=\'\"+startingTime.getText()+\"\',terminal=\'\"+terminal.getText()+\"\',terminalTime=\'\"+terminalTime.getText()+\"\',iskongTiao=\'\"+iskongTiao.getText()+\"\',\" +

\"price=\'\"+price.getText()+\"\',middleStation=\'\"+middleStation.getText()+\"\',yzNum=\'\"+yzNum.getText()+\"\',rzNum=\'\"+rzNum.getText()+\"\',ywNum=\'\"+ywNum.getText()+\"\',rwNum=\'\"+rwNum.getText()+\"\' where id=\'\"+num.getText()+\"\'\";

int i=dao.update(sql);

if(i>0){ 26

武汉理工大学《软件开发工具》论文报告

box.setMeage(\"succeed\");

box.open();

fresh();

}else{

box.setMeage(\"failure\");

box.open();

}

} }); Button b1=new Button(utrainshell,SWT.LEFT); b1.setText(\"quit\"); b1.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

utrainshell.setVisible(false);

} }); utrainshell.layout();

utrainshell.setSize(500,450);

utrainshell.open();

while(!utrainshell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

utrainshell.dispose(); } public void fresh(){

trainmanage.freshData(); } }

车票管理主要包括对车票的增加,删除和修改的操作。由TicketManagement.java 实现。代码类似上面的:(具体看压缩包)。其中的查询列车表和售票表调用的DAO.java类中selectTicket()方法。图示为:

27

武汉理工大学《软件开发工具》论文报告

售票员管理是对售票员进行增加、删除和修改进行操作。由UserMannage.java类来实现。代码类似以上。在该类中调用了DAO.java 类中getAllUser()方法。图示为:

28

武汉理工大学《软件开发工具》论文报告

售票及退票模块包括两部分:火车售票和退票。售票系统是xiaosTickect.java 实现的。图示如下:

退票是售票员根据用户提供的车票信息在系统中进行售票。主要是由TuiTicket.java来实现的。在该类中涉及到DAO.java类中的selectTrain()方法.图示如下:

列车及车票查询系统主要功能包括两部分:查询列车信息和查询车票信息.有FindTrain.Java和FindTicket.java 实现.图示如下:

29

武汉理工大学《软件开发工具》论文报告

4学习心得

我是再没有接触eclipse之前就接触了java,我自己都先用记事本编写java程序,然后在doc下进行编译和运行。后来安装了ecplise这个集成环境,但是只把它当成一个运行java的集成环境。

后来经过开发工具的学习和相关书籍的查看,开始深入的理解了什么是ecplise。其实整个ecplise体系结构就像一个大的拼图,可以不断地向其中添加插件,同时在现有的插件上还可以再增加插件。可以说,在ecplise中一切都是插件。这里有一张图片很形象的说明了ecplise的体系结构:

在我学习ecplise的工程中,我觉得它跟一般的软件比起来有很大的优势:在编写代码的过程中,如果有编译错误的话系统马上会提醒,我们很容易就会会发现。而且它会给你提供一些解决问题的方法,虽然有些解决方法有一些笨,但是这对于一些想我们这样的初学者来说,无疑是雪中送炭。而且在编写代码的过程中,我们使用一些类的对象的方法的过程中系统给予一定的提示。这大大的减少了我们出错的机会,并且我们也可以顺便了解一下该类的其他方法。加快我们的学习进度。

30

武汉理工大学《软件开发工具》论文报告

对于ecplise的具体的功能的学习感悟:对于调试器板块该环境提供了很多的功能包括单步执行、设置断点和值、检查变量和值以及暂挂和恢复线程的能力。在我们课堂上只学习了本地调试中的断点。断点提供了一种强大的工具,使我们能够在需要的时间和位置挂起执行。与逐句或逐条指令的检查代码不同的是,可以让程序一直执行,直到遇到断点。然后开始调试。这大大的加快了调试过程。没有这个功能,调试大型程序几乎不能完成。至于远程的调试对于现在学习的程度来说有一点难。所以先放弃,以后再研究。

对于JUnit,包括模块接口测试、局部数据结构测试、路经测试、错误处理测试、边界测试。它的核心类主要有jnuit.framework包下的TestCase、Testsuite和TestResult,junit.runnier包下的BaseTestRunner类。而我们现在用到的只有断言Aert。在这里有一点原则是需要注意的它的测试名要很容易与应用类区分开来。

我觉得学会用ecplise来创建的基于SWT的图形应用程序十分的重要。这个要源于它的开发缘由。在这之前,使用的awt是原生窗口部件,但是它一直未能突破LCD。为了解决这个问题,又开发了swing。它使用的是仿真窗口部件,不存在LCD问题。但是消耗太多的内存等。为了彻底解决

上述问题,IBM开发了SWT。在基于Windows的ecplise中,SWT通过DLL形式的本地库与操作系统交互;在UNIX下,SWT可通过的GTK运行。

最近的学习和看书,让我觉得自己的真的就像在软件的最顶层。自己现在学习的东西在软件

中真的是基础中的基础。我们还有很长的路要走。真的要加油,好好学习啊!

5.参考文献

[1]java核心技术卷1:基础知识 叶乃文 邝劲筠 杜永萍 2008.5 机械工业出版社 [2]eclipse 3.0 程序开发技术详解

吴越胜 李新磊

2010.10 清华大学出版社

31

推荐第5篇:软件项目开发计划

1引言 ...............................1

1.1编写目的 ...............................1

1.2 背景 ...............................1

1.3定义.........................1

1.4参考资料 ...............................1

2项目概述 ..............................1

2.1工作内容 ...............................1

2.2主要参加人员 .......................1

2.3产品.........................2

2.3.1程序 .........................2

2.3.2文件 .........................2

2.3.3服务 .........................2

2.3.4非移交的产品 .......................2

2.4验收标准 ...............................2

2.5完成项目的最迟期限 .........................2

2.6本计划的批准者和批准日期 ....................2

3实施计划 ..............................2

3.1工作任务的分解与人员分工 ....................2

3.2接口人员 ...............................3

3.3进度.........................3

3.4预算.........................3

3.5关键问题 ...............................3

4支持条件 ..............................3

4.1计算机系统支持 ..........................3

4.2需由用户承担的工作 .........................3

4.3由外单位提供的条件 .........................4

5专题计划要点 .............................4

项目开发计划(GB856T——88) 1引言

1.1编写目的

说明:编写这份软件项目开发计划的目的,并指出预期的读者。

1.2 背景

说明:

a.待开发的软件系统的名称;

b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络; c.该软件系统同其他系统或其他机构的基本的相互来往关系。

1.3定义

列出本文件中用到的专门术语的定义和外文的首字母组词的原词组。

1.4参考资料

列出用得着的参考资料,如:

a.本项目的经核准的计划任务书和合同、上级机关的批文;

b.属于本项目的其他已发表的文件;

c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2项目概述

2.1工作内容

简要地说明在本项目的开发中须进行的各项主要工作。

2.2主要参加人员

扼要说明参加本项目开发的主要人员的情况,包括他们的技术水平。

2.3产品

2.3.1程序

列出须移交给用户的程序的名称、所用地编程语言及存储程序的媒体形式,并通过引用相关文件,逐项说明其功能和能力。

2.3.2文件

列出须移交用户的每种文件的名称及内容要点。

2.3.3服务

列出需向用户提供的各项服务,如培训安装、维护和运行支持等,应逐项规定开始日期、所提供支持的级别和服务的期限。

2.3.4非移交的产品

说明开发集体应向本单位交出但不必向用户移交的产品(文件甚至某些程序)。

2.4验收标准

对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。

2.5完成项目的最迟期限

2.6本计划的批准者和批准日期

3实施计划

3.1工作任务的分解与人员分工

对于项目开发中需要完成的各项工作,从需求分析、设计、实现、测试直到维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作等,按层次进行分解,指明每项任务的负责人和参加人员。

3.2接口人员

说明负责接口工作的人员及他们的职责,包括:

a.负责本项目同用户的接口人员;

b.负责本项目同本单位各管理机构,如合同计划管理部门、财务部门、质量管理部门等的接口人员;

c.负责本项目同个份合同负责单位的接口人员等。

3.3进度

对于需求分析、设计、编码实现、测试、移交、培训和安装等工作,给出每项工作任务的预定开始日期、完成日期及所需资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(即所谓“里程碑)。

3.4预算

逐项列出本开发项目所需要的劳务(包括人员的数量和时间)以及经费的预算(包括办公费、差旅费、机时费、资料费、通讯设备和专用设备的租金等)和来源。

3.5关键问题

逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目的影响。

4支持条件

说明为支持本项目的开发所需要的各种条件和设施。

4.1计算机系统支持

逐项列出开发中和运行时所需的计算机系统支持,包括计算机、外围设备、通讯设备、模拟器、编译(或汇编)程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等,逐项给出有关到货日期、使用时间的要求。

4.2需由用户承担的工作

逐项列出需要用户承担的工作和完成期限。包括需由用户提供的条件及提供时间。

4.3由外单位提供的条件

逐项列出需要外单位分合同承包者承担的工作和完成的时间,包括需要由外单位提供的条件和提供的时间。

5专题计划要点

说明本项目开发中需制定的各个专题计划(如分合同计划、开发人员培训计划、测试计划、安全保密计划、质量保证计划、配置管理计划、用户培训计划、系统安装计划等)的要点。

推荐第6篇:软件项目开发计划书

软件项目开发计划书

项目名称:**********************

评审日期:

1 引言

1.1编写目的

说明编写这份项目开发计划的目的,并指出预期的读者。

1.2背景

说明:

a.待开发的软件系统的名称;

b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;c.该软件系统同其他系统或其他机构的基本的相互来往关系。

1.3定义

列出本文件中用到的专门术语的定义和外文首字母组词的原词组。

1.4参考资料

列出用得着的参考资料,如:

a.本项目的经核准的计划任务书或合同、上级机关的批文;

b.属于本项目的其他已发表的文件;

c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。

2 项目概述

2.1工作内容

简要地说明在本项目的开发中须进行的各项主要工作。

2.2主要参加人员

扼要说明参加本项目开发工作的主要人员的情况,包括他们的技术水平。

2.3产品

2.3.1程序

列出需移交给用户的程序的名称、所用的编程语言及存储程序的媒体形式,并通过引用有关文件,逐项说明其功能和能力。

2.3.2文件

列出需移交给用户的每种文件的名称及内容要点。

2.3.3服务

列出需向用户提供的各项服务,如培训安装、维护和运行支持等,应逐项规定开始日期、所提供支持的级别和服务的期限。

2.3.4非移交的产品

说明开发集体应向本单位交出但不必向用户移交的产品(文件甚至某些程序)。

2.4验收标准

对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。

2.5完成项目的最迟期限

2.6本计划的批准者和批准日期

3 实施计划

3.1工作任务的分解与人员分工

对于项目开发中需完成的各项工作,从需求分析、设计、实现、测试直到维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作等,按层次进行分解,指明每项任务的负责人和参加人员。

3.2接口人员

说明负责接口工作的人员及他们的职责,包括:

a.负责本项目同用户的接口人员;

b.负责本项目同本单位各管理机构,如合同计划管理部门、财务部门、质量管理部门等的接口人员;

c.负责本项目同各分合同负责单位的接口人员等。

3.3进度

对于需求分析、设计、编码实现、测试、移交、培训和安装等工作,给出每项工作任务

的预。定开始日期、完成日期及所需资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(即所谓\"里程碑\")。

3.4预算

逐项列出本开发项目所需要的劳务(包括人员的数量和时间)以及经费的预算(包括办公费、差旅费、机时费、资料费、通讯设备和专用设备的租金等)和来源。

3.5关键问题

逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目的影响。

4 支持条件

说明为支持本项目的开发所需要的各种条件和设施。

4.1计算机系统支持

逐项列出开发中和运行时所需的计算机系统支持,包括计算机、外围设备、通讯设备、模拟器、编译(或汇编)程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等,逐项给出有关到货日期、使用时间的要求。

4.2需由用户承担的工作

逐项列出需要用户承担的工作和完成期限。包括需由用户提供的条件及提供时间。

4.3由外单位提供的条件

逐项列出需要外单位分合同承包者承担的工作和完成的时间,包括需要由外单位提供的条件和提供的时间。

5 专题计划要点

说明本项目开发中需制订的各个专题计划(如分合同计划、开发人员培训计划、测试计划、安全保密计划、质量保证计划、配置管理计划、用户培训计划、系统安装计划等)的要点。

推荐第7篇:软件项目开发计划书

软件项目开发计划书

软件08-1班李岩200820205069

一、项目提出的背景和必要性

在信息化高速发展的时代,图书管理系统已经渐渐的走进了国内外的许多图书馆,开发一套图书管理系统能获得良好的收益。

二、国内外市场分析

图书管理系统在未来会逐渐的普及到全世界各个图书馆,具有很大的潜在市场。

三、项目主要开发和建设内容

图书管理系统主要需要建设服务器,数据库,已经搜索引擎,登陆客户端等等 。我们的开发目标是建设一个可以查询书本基本信息,提供会员的登陆,以及实现凭借图书证借阅书籍,查看用户情况,设置管理员,查询管理员信息,实现网络查询书籍信息。

四、项目实施的技术方案

图书管理系统的开发在我国的技术早已经成熟,而由我们开发的图书管理系统已经在x图书馆,y图书馆,得到了实现。因为我们有开发的经验与技术的支持,开发这款图书管理系统对我们来说已经轻车熟路。可以在预定的时间实现一个性能优良的图书管理系统。

五、项目实施的现有基础

Bigsoft®公司于1989年在上海注册,本公司属于股份集团,本公司的注册资产是5000万亿元人民币,本公司有编程人员30万名,高级程序员1000名,主要业务是软件项目的开发,主要的产品有Bigsoft xp系统,Bigsoft 2000系统,Bigsoft 7系统等等。本公司的生产规模来说达到世界一流水平,技术水平达到世界一流水平。近年来,在我们公司ceo达芬奇的带领下,公司的规模不断的扩大,每年的纯收入不断增长。我公司具有很强的创新能力,攻克了世界上许多的软件方面的难题。我公司具有良好的信用,在客户间建立了很好的口碑。

六、项目组织机构和人员安排

本项目采取小组开发方式,预计人员是20人,其中项目经理1人,项目分管人员5人,项目的开发人员14人。本项目承担单位负责人是项目经理李元霸。本项目由李元霸负责,李元霸,曾参见过Bigsoft xp系统,Bigsoft 2000系统,Bigsoft 7系统的开发,具有丰富的经验。

七、项目实施进度计划

本项目预计用时3个月。本项目的开发地点是Bigsoft公司的27层,2709室。

八、项目资金需求及来源

本项目需要购买机器的总价是270万元,人员开支300万元,计划外支出定为100万元。

九、项目风险分析及应对措施

本项目预计开发成功率是90%,延时交付时间内的费用项目的开发公司负责50%,项目完全失败的风险由双方各负责50%。

推荐第8篇:软件项目开发计划书

2015软件项目开发计划书

第1篇:软件项目开发计划书模板 项目名称:******** 评审日期: 1引言

1.1编写目的

说明编写这份项目开发计划的目的,并指出预期的读者。 1.2背景 说明:

a.待开发的软件系统的名称;

b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络; c.该软件系统同其他系统或其他机构的基本的相互来往关系。 1.3定义

列出本文件中用到的专门术语的定义和外文首字母组词的原词组。 1.4参考资料

列出用得着的参考资料,如:

a.本项目的经核准的计划任务书或合同、上级机关的批文; b.属于本项目的其他已发表的文件;

c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2项目概述 2.1工作内容

简要地说明在本项目的开发中须进行的各项主要工作。 2.2主要参加人员

扼要说明参加本项目开发工作的主要人员的情况,包括他们的技术水平。 2.3产品 2.3.1程序

列出需移交给用户的程序的名称、所用的编程语言及存储程序的媒体形式,并通过引用有关文件,逐项说明其功能和能力。 2.3.2文件

列出需移交给用户的每种文件的名称及内容要点。 2.3.3服务

列出需向用户提供的各项服务,如培训安装、维护和运行支持等,应逐项规定开始日期、所提供支持的级别和服务的期限。 2.3.4非移交的产品

说明开发集体应向本单位交出但不必向用户移交的产品(文件甚至某些程序)。 2.4验收标准

对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。 2.5完成项目的最迟期限

2.6本计划的批准者和批准日期 3实施计划

3.1工作任务的分解与人员分工

对于项目开发中需完成的各项工作,从需求分析、设计、实现、测试直到维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作等,按层次进行分解,指明每项任务的负责人和参加人员。 3.2接口人员

说明负责接口工作的人员及他们的职责,包括: a.负责本项目同用户的接口人员;

b.负责本项目同本单位各管理机构,如合同计划管理部门、财务部门、质量管理部门等的接口人员;

c.负责本项目同各分合同负责单位的接口人员等。 3.3进度

对于需求分析、设计、编码实现、测试、移交、培训和安装等工作,给出每项工作任务的预。定开始日期、完成日期及所需资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(即所谓\"里程碑\")。 3.4预算

逐项列出本开发项目所需要的劳务(包括人员的数量和时间)以及经费的预算(包括办公费、差旅费、机时费、资料费、通讯设备和专用设备的租金等)和来源。 3.5关键问题

逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目的影响。 4支持条件

说明为支持本项目的开发所需要的各种条件和设施。 4.1计算机系统支持

逐项列出开发中和运行时所需的计算机系统支持,包括计算机、外围设备、通讯设备、模拟器、编译(或汇编)程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等,逐项给出有关到货日期、使用时间的要求。 4.2需由用户承担的工作

逐项列出需要用户承担的工作和完成期限。包括需由用户提供的条件及提供时间。 4.3由外单位提供的条件

逐项列出需要外单位分合同承包者承担的工作和完成的时间,包括需要由外单位提供的条件和提供的时间。 5专题计划要点

说明本项目开发中需制订的各个专题计划(如分合同计划、开发人员培训计划、测试计划、安全保密计划、质量保证计划、配置管理计划、用户培训计划、系统安装计划等)的要点。

第2篇:软件项目开发计划书范文 1.引言

在当今这个网络时代,随着人们物质生活水平的提高,人们也在逐渐的开始追求精神上的生活,即精神享受。无可厚非,网络走进了我们的生活,但随着我们进入社会参加工作,我们的空闲时间越来越少,当然也没有太多时间去关注自己所喜欢的视频,更不用说在线看了,即使有时间在线看,我们又不能看到看到让自己全身放松的视频,究其原因则是:所观看的视频模糊和不流畅。而本软件恰恰解决了这个问题,本软件是自动下载更新软件,能在你不知不觉间自动的下载最新视频,这样一来我们既节约了时间又看到了自己苦苦等待的视频 1.1编写目的

本文档的编写是为了满足客户对各大影视的一些软件需求,以求让喜欢视频的客户对本软件更加满意,并且能够更加的享受生活。 1.2背景

待开发的软件系统名称:资源下载辅助系统。

本项目的提出者为章董事,开发者为第二组全体员工,用户为所有喜欢视频的客户。 本软件相当于一个插件,配合其他视频播放器、影视或网站使用。 说明: 1.3定义

项目开发计划:是一种把项目一定一过程与项目如何推进连接起来的方案。 1.4参考资料

以下列出概要设计过程中所使用到的有关资料: 1.软件工程基础 胡飞 高等教育出版社 2015.01 2.软件工程课程设计 郑诚 机械工业出版社 2015.03 2项目概述 2.1工作内容

把软件做成下面的特点:待开发软件自动检查有更新特点的可下载网络资源是否存在更新,如果有更新则获取新资源的下载链接并通过第三方下载软件自动下载。

对用户进行培训,如何让用户能够学会添加、管理提供资源的网站,设定、管理需跟踪下载的资源信息,设定相应的本地资源保存位置以及检查更新周期。这样一来系统就可根据用户设定自动检查更新,将更新通过第三方下载软件下载并保存至用户设定的本地位置。系统监控指定的本地位置,在文件下载完毕时通知用户。 2.2主要参加人员

石春光:项目负责人。

王海宏:小组领导兼程序员。 田果:技术领导,技术一流。 刘栋:小组领导兼程序员。 汪世轩:质量、管理领导。 2.3产品 2.3.1程序

即是:理出需移交给用户的程序的名称、所用的编程语言及存储程序的媒体形式,并通过引用有关文件,逐项说明其功能和能力。 (略) 2.3.2文件

所谓文件即是:列出需移交给用户的每种文件的名称及内容要点 2.3.3服务

具体是列出需向用户提供的各项服务,如培训安装、维护和运行支持等,应逐项规定开始日期、所提供支持的级别和服务的期限。 2.3.4非移交的产品

说明开发集体应向单位交出但不必向用户移交的产品(文件甚至某些程序)。 2.4验收标准

对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。 2.5完成项目的原迟用限

待开发软件的原迟用限为六个月。 2.6本计划的批准者和批准日期 批准者:章董事 批准日期: 2015年10月18日 3实施计划

3.1工作任务的分配和人员分工

主要就是在需求分析、设计、实现、测试、维护的任务分配 具体来说分配如下: 文件的编制 石春光 审批 王海宏 汪世轩 打印 王海宏

分发工作 田果 刘栋 用户培训工作 刘栋 田果 软件安装工作 汪世轩 3.2接口人员

负责本项目同用户的接口人员:刘栋 负责本项目同本单位各管理机构 合同计划管理部门:石春光 财务部门:王海宏 质量管理部门:田果

负责本项目同各分合同负责单位的接口人员:汪世轩 3.3进度(略) 3.4预算

人员的数量:5人 时间:3个月 经费:1万元 3.5关键问题

在软件的开发中,存在的关键问题常见的有以下几种: 项目需求 项目计划 质量控制 进度控制 风险控制 交流与沟通

第3篇:软件项目开发计划书范文 1.引言

1.1编写目的

开发基于互联网的学生选课系统,提高管理工作的效率、提高信息的开放性、改善学生和教师对其最新信息查询的准确性。 1.2项目背景

某校在校生近5000人,每学期在期末都要进行一次对学生的学习质量测评,要求所有学生都要参加。以前测评的方式都是手工考核操作,由教务处发出试卷,每个同学填写完成后交回到教务处。然后教务处再使用手工的方法对试卷进行统计汇总,最后得出学生的成绩。

建议进行《学生成绩考核系统》的开发。

我院计算机系具备进行该软件系统开发的能力并承担本软件系统的开发与维护工作。该软件系统由我院教务处使用。 1.3定义

《学生成绩考核系统》以下简称《考核系统》。 1.4 参考资料

(1)\" 学生成绩考核系统系统定义报告\" (2) \" 学生成绩考核系统可行性研究报告\" 2.主要内容 2.1 工作内容

系统所需要的基础数据来源:

\"考核系统\"需要实现的功能包括两大部分:

一是前台的数据采集,具体包括:德育测试页面、体育测试页面、智力测试页面、数据存储页面。

二是后台的数据管理部分:包括测试设置、德育测试、体育测试与智力测试的数据统计及查询。

2.2条件和限制 使用SQL SERVER 2015作为数据库的建设工具,相关的管理程序开发主要使用SQL SERVER 2015及NET等。 2.3 产品 2.3.1 程序

可运行的程序包括:SQL SERVER 2015,Microsoft Visual Studio 2015 2.3.2 文档

可行性研究报告,项目开发计划书,软件需求说明书,概要设计说明书,详细设计说明书,数据库设计说明书,操作手册,测试计划,测试分析报告,项目开发总结报告。 2.4 运行环境

《学生成绩考核系统》应该运行在Windows XP 以及以上版本的平台上。 2.5 验收标准

《学生成绩考核系统》能让学生能成绩考核和查看成绩,教师能管理成绩。 3.实施计划 3.1 任务分解 需求分析:

学校每年新生入学,毕业生离校和各种其它变动,如学籍变动,个人信息修改。每学期学校者要开设一定的课程提供给学生根据自己的情况来选择,最后的选择结果要给出学生的课程表。如何有效的管理这些学生信息,帮助学校和老师管理和掌握这些情况,这就是学生信息管理系统需要完成的任务。下面用软件工程的思想和方法完成该系统的设计过程。 功能:

个人信息查询和修改,包括流动,注册,更新管理 系统设计:

\"中学生成绩管理信息系统\"包括四个模块:成绩录入、班级统计、年级统计、系统功能。这五个模块既相互联系又相互独立,班级统计、年级统计模块必须以成绩录入为基础。 (1)成绩录入模块:

主要功能用来对中学生的成绩进行收集和修改。具体包括中学生成绩录入、修改、增加、删除、查询、打印等功能,由于一些资料可以Word文档或Excel表格输入,故在此模块中增加了导入、导出数据功能。成绩录入需要分班级、分年级以及某个时间考试的各门功课的成绩。修改要与成绩录入相对应。增加、删除是对基本表的操作。查询条件设置应该齐全,可以班级查询,年级查询,也可以姓名查询,学号查询等等。分成绩单打印、报表打印等。 (2)班级统计模块:

主要功能用来对中学生的成绩以班级为单位进行处理。具体包括各班学生总成绩、平均成绩、班级排名及统计班级某分数段内的学生人数;各个学生该科成绩、班级排名及统计班级某分数段内的学生人数。各项统计仅对于某学期某次考试而言。 (3)年级统计模块:

主要功能用来对中学生的成绩以年级为单位进行处理。具体包括各年级学生总成绩、年级排名统计年级某分数段内的学生人数;各个学生该科成绩、年级排名及统计、年级某分数段内的学生人数。各项统计仅对于某学期某次考试而言,在统计时,还应注意各年级考试科目不同。

(4)系统功能模块:包括帮助信息,关于系统及退出系统。 编码:

测试计划:进行黑盒测试 测试人员: 3.2 进度安排

需求分析: 第1周 系统设计: 第2~3周 编码:第4~7周

测试计划与测试:第8~10周 包装和发布:第11周 机动:第12周 3.3 预算

开发费用:8000元

设备费及其他:5000元 合计:13000元

4.人员组织及分工(略) 5.交付期限

6.专题计划要点(详见后续内容)

推荐第9篇:软件项目开发工作任务书

摘要 ...................................................................................................................................2 关键词 ...............................................................................................................................2

1背景介绍........................................................................................................................................2

1.1项目范围 .............................................................................................................................2 1.2目的 .....................................................................................................................................2 1.3明确项目客户 .....................................................................................................................2 2商务要求........................................................................................................................................2 3分配需求或PDT输入材料 ..........................................................................................................2 4交付文件........................................................................................................................................3 5里程碑和完成时间 ........................................................................................................................3 6质量目标........................................................................................................................................3 7验收标准........................................................................................................................................3 8限制和约束 ....................................................................................................................................3 9依赖关系........................................................................................................................................3 10其他信息 ......................................................................................................................................4

XXXX 软件项目开发工作任务书

摘要

xxxx 关键词

xxxx 1背景介绍

xxxx 1.1项目范围

xxxx 1.2目的

xxxx 1.3明确项目客户

xxxx 2商务要求

xxxx 3分配需求或PDT输入材料

xxxx 4交付文件

xxxx 5里程碑和完成时间

比如:

软件需求设计

时间点 概要设计

时间点 详细设计

时间点 编码

时间点 单元测试

时间点 集成测试

时间点 系统测试

时间点 联调

时间点

6质量目标

xxxx 7验收标准

xxxx 8限制和约束

xxxx 9依赖关系

xxxx 10其他信息

xxxx

推荐第10篇:软件项目开发管理流程

研发中心项目开发管理流程

1,新项目开发管理流程

按照项目管理规范,项目管理分为:项目启动—》项目计划—》项目执行—》项目控制—》项目结尾。5个阶段。根据该管理流程和我公司实际情况,将新项目开发的管理流程制定如下图:

1.1 项目立项

项目立项阶段,首先由的项目经理编写《项目立项报告》。

研发项目立项报告模板.doc

1.2 立项评审

《项目立项报告》编写完成后,交由项目管理委员会进行立项评审,评审通过后由副总经理签字确认立项。确定需求分析和项目设计阶段的时间和人员安排。

1.3 需求分析

需求分析阶段,需要与用户交流,双方对软件需求取得共同理解基础上达成的协议。编写并完成软件需求说明书:也称软件规格说明书。

软件需求说明书模板 .doc

1.4 系统设计阶段

常规的系统设计需要依次完成《概要设计说明书》,《详细设计说明书》。以下是文档的简要说明:

概要设计说明书:该说 明书是概要设计阶段的工作 成果,它应说明功能分配、模 块划分、程序的总体结构、输 入输出以及接口设计、运行设 计、数据结构设计和出错处理 设计等,为详细设计奠定基础。

概要设计说明书.doc

详细设计说明书:着重 描述每一模块是怎样实现的, 包括实现算法、逻辑流程等。详细设计说明书.doc

详细设计说明书编写完成后,项目经理应该依次编写安排项目开发工作计划。工作计划安排可以根据项目经理的习惯进行工作计划编写。建议采用project。附件为综合考务平台的工作计划安排,可以供参考:

考试考务综合管理平台工作计划.mpp。并且确定里程碑,以便在后期项目执行过程中,对其进行确认。 对于大项目,建议按照项目设计流程,先进行概要设计,再到详细设计。但是对于特殊项目(项目周期较短,小项目),可以讲概要设计和详细设计阶段合二为一,编写功能,接口方案。但是值得注意的是,该方案中,仍然需要涵盖项目模块功能,用户权限和各模块实现逻辑,接口等。

项目设计开发方案.docx。

1.5 项目设计评审

设计阶段完成后,项目经理填写《项目设计评审表》,将相关文档交由项目管理委员会进行项目设计评审。通过评审后,方可进行编码工作。

项目设计评审表.docx

1.6 编码和测试用例编写阶段

项目编码阶段,项目经理需要对项目执行情况进行控制和监督,其中包括(项目输入,项目输出,里程碑)。如果由于特殊情况,如:需求变化,人员临时调配,或者其他原因导致的项目范围和时间,计划等变更,项目经理应该及时填写变更申请。并提交给项目管理委员会。作为之后项目输出验证的重要依据项目变更申请书.doc。

在此阶段,测试人员应该根据《需求说明书》,《概要设计》和《详细设计说明书》的内容,编写相应的《测试用例》。 1.7 测试阶段

编码完成后,应该移交测试组进行相关测试工作。按照测试流程,需要提交《测试申请表》。测试人员在接收到《测试申请》后,应该与研发人员讨论《测试用例》的相关内容,确定测试时间,开始程序测试。并在测试工作完成后,编写对应的《测试报告》。

1.8 结项评审与验证

项目负责人和测试负责人分别填写《项目结项评审表》,交由项目管理委员会进行评审。评审通过后,由研发中心副总经理进行发布确认。

项目结项评审验证表.doc

1.9 新产品发布

编写《用户手册》。方可进行新产品发布。

2,旧项目升级开发管理流程

旧项目的升级,依照如下流程:

2.1项目升级需求分析

项目需求分析,需要收集用户在产品使用过程中,已经技术人员在调试过程中的反馈作为需求分析的输入。并填写对应的项目升级需求报告表。项目升级需求报告表.doc

2.2 升级评审

将《升级需求报告》交由项目管理委员会,评审通过后,进行升级设计。 2.2项目升级设计

项目负责人,根据需求报告和升级具体情况,编写升级开发方案。项目升级开发方案.docx。并安排整改工作计划。

2.3 项目升级设计评审

升级开发方案完成后,填写《项目设计评审表》,交由项目管理委员会评审。

2.4 编码

按照项目升级开发方案进行编码设计,如果编码工作中,发生特殊情况需要变更计划,或者项目范围等,同样需要提交《变更申请》,作为项目验证的基础。 同样,此阶段,测试人员应该编写或者修改相关测试用例。

2.5 测试

编码完成后,应该移交测试组进行相关测试工作。按照测试流程,需要提交《测试申请表》。测试人员在接收到测试申请后,应该与研发人员讨论《测试用例》的相关内容,确定测试时间,开始程序测试。并在测试工作完成后,编写对应的《测试报告》。

2.6 升级输出评审

项目负责人和测试负责人分别填写《项目结项评审表》,交由项目管理委员会进行评审。评审通过后,由副总经理进行发布确认后。

第11篇:软件项目开发需求报告

软件需求分析格式_如何写需求分析报告 软件需求说明书 1 引言

1.1 编写目的:阐明编写需求说明书的目的,指明读者对象。 1.2 项目背景:应包括

● 项目的委托单位、开心单位和主管部门;

● 该软件系统与其他系统的关系。

1.3 定义:列出文档中所用到的专门术语的定义和缩写词的愿文。

1.4 参考资料:可包括

● 项目经核准的计划任务书、合同或上级机关的批文

● 文档所引用的资料、规范等

● 列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源 2 任务概述 2.1 目标 2.2 运行环境 2.3 条件与限制 3 数据描述 3.1 表态数据

3.2 动态数据:包括输入数据和输出数据。 3.3 数据库描述:给出使用数据库的名称和类型。 3.4 数据词典 3.5 数据采集 4 功能需求 4.1功能划分 4.2功能描述 5 性能需求 5.1 数据精确度

5.2 时间特性:如响应时间、更新处理时间、数据转换与传输时间、运行时间等。

5.3 适应性:在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。 6 运行需求

6.1 用户界面:如屏幕格式、报表格式、菜单格式、输入输出时间等。 6.2 硬件接口 6.3 软件接口 6.4 故障处理 7 其他需求

如可使用性、安全保密、可维护性、可移植性等。

需求分析的格式 需求分析要对目标系统提出完整的、准确的、清晰的和具体的要求。

1.综合需求: 项目 说明 备注

1)功能要求 描述软件用来做什么

能够进行度量衡的相互转换,如:长度公制之间的转换,公制和英制的转换等。能够添加或创建新的度量衡。能够按照用户自己的需要进行排序。能够作为其他软件的插件或辅助工具使用。能够知道度量衡所应用的范围,如:国家,行业等。

2)性能要求 软件能达到什么性能

数据的最大存储量,数据的转换要有连续性,软件对每项操作的响应时间,更新处理时间,数据转换和传送时间,软件的输入输出数据精度,软件失败和成功的定义。

3)运行要求

软件能正常运行在微软中文版WINDOWS系列的可以独立运行的安装包或可执行文件

开发软件的开发工具清单。是否需要外部存储器和数据通信接口。

4)升级要求

是否可以升级,是否可以进行扩充。是否容易进行维护。 能够作为什么软件的插件或辅助工具使用。如何添加新的公式

5)对应关系

用户需求和软件功能的对应关系 说明每一个模块对应实现什么功能。

2.数据要求: 项目 说明 备注

1)数据输入

来源、准确性、取值范围、格式、非法值的处理、出错信息

2)数据输出 目的地、准确性、数值范围、格式、非法值的处理、出错信息

输出的数据可以修改,如:1米=100厘米=1000毫米,将100厘米改为90厘米时,相应的1米就自动改为0.9米,1000毫米变为900毫米。

3)数据存储 最大存储量

4)数据的安全性 访问的权限

5)数据备份 能否导入和导出

可以将输出的数据保存为文本格式

6)数据流图

在分析过程中得出的数据流图

7)数据筛选

能够将选择的几个度量单位进行汇总

8)主要算法

简要描述软件的主要算法

3.界面要求:请参照“界面样式图” 项目 说明 备注

1)软件名称 为软件起一个名字 可以发挥自己的想象力

2)功能模块

有几个功能模块,分别是什么

3)颜色

采用什么底色,窗口是什么颜色

4)字体

字型、大小,字间距,颜色

5)按钮

颜色、字型、大小、样式

4.软件描述:从用户的角度来描述软件,相当于一份初步的用户手册。 项目 说明 备注

1)功能描述

能实现,不能实现什么需求 应用范围。什么人员可以使用

2)性能描述

最低配置,操作系统,需要安装什么辅助软件

3)操作步骤 如何使用软件 主要步骤和方法

4)用户责任

用户在操作过程中的注意事项 出现问题时如何解决 如何写需求分析报告

近来学校的一些科研项目又在申报了,一些学弟开始Q我一些软件工程上书面的问题。大概的总结了下,写到这里。本文涉及到的是需求分析部分的书写,主要是根据国家标准文档中的要求来的。

在互联网公司或者一些敏捷开发的公司里,其实大家都是秉承着重开发,重讨论,而轻文档的态度。这个轻文档并不是指没有文档或者几乎不做文档,而是在严格的文档流程中解脱出来,只把最最实际的部分写出来。这个特征是有互联网本身迭代周期短,版本发布快等特点决定的。而在实际的兼职项目的时候,同学们就要注意了,最重要的应该就是在签合同的时候一定要附上最清楚的一份需求分析,虽然这份需求说明可能不是按照某些标准文档而来的,描述清楚每个功能达到的效果,而这个效果一定要让客户点头确认,而不能出现“应该是”、“可能是”、“也许是”这样的模糊回答。否则在项目后期就会比较难过了。在学校申请的项目和大型公司项目开发中,是重视文档流程的,一部一部来。所以还是看情况来对待文档的深度和标准。

一、目录: 目录要用word的 “引用”—>”目录”,自动生成目录,一般都是要三级目录。通常这部分基本都不需要改结构,直接更新页码即可。

二、内容部分。国家标准软件需求说明书G856T-88下载 1引言 1.1编写目的

说明编写这份软件需求说明书的目的,指出预期的读者。 (这部分说明需求分析报告的概况,例如:本X需求分析报告是为S系统而编写的。+S系统的两句话概述。+本X报告旨在使U1(需求者)明确S系统的要求和细节,给U2(开发人员)了解需求实现的难度和困难,最终提供给U3(审核人、管理者)讨论和审核,达到沟通效果)

1.2背景 说明:

a. 待开发的软件系统的名称; b. 本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;

c. 该软件系统同其他系统或其他机构的基本的相互来往关系。

(这部分可以将a,b,c分为2部分,例子如下: 1.2.1项目概况

本需求分析报告所预期开发的软件系统是:S。S是(不是则无)SS系统的某一个功能子模块,S和S

1、S2等系统之间的联系,以及概述其他系统的状态等等。1.2.2任务分配

a.任务提出者:xxx b.软件开发者:xx c.产品使用者:xx d.文档编写者:xx e.预期产品使用者:xx ) 1.3定义

列出本文件中用到的专门术语的定义和外文首字母组词的原词组。

(这部分很简单,就是描述专业词汇,比如

1.XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。 2.Word2, 解释。。。 )

1.4参考资料

列出用得着的参考资料,如:

a. 本项目的经核准的计划任务书或合同、上级机关的批文; b. 属于本项目的其他已发表的文件;

c. 本文件中各处引用的文件、资料、包括所要用到的软件开发标准。 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2任务概述 2.1目标

叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。| (

本模块开发主要是为SS的整体服务,完成SS工作中的XX部分以及相关的工作。其涉及的范围就是,从下达A、B命令后,到给出C结果的过程。具体描述:B1,来完成B11功能;B2,来完成B22功能; 等等。本部分是(否)耦合在分词工具包其他部分中的,主要为嵌入方式和先后方式相互交互。 图

图1.该系统的组成同其他各部分的联系和接口 )

2.2用户的特点

列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束

(例如:二次开发和系统调用人员:具有很高的专业知识水平,理解XX的运行机制。可以对开放代码进行阅读和分析,以完成其系统独特的需求,提供给这部分用户开放API手册和Debug版本的源代码即可;预期这部分用户会占本系统总用户量的多大部分。

xx使用者:具有一定的计算机操作能力和知识,了解xx领域的相关概念和用途。提供给这部分用户操作手册即可。预期这部分使用者主要是来简单的xx操作。

维护人员:具有较高的计算机专业水平,可以对常见的系统Bug进行追踪和分析,具有一定的测试能力。 这部分用户主要是采用了本系统之后的后期工作维护者。 等等 )

2.3假定和约束

列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。 (这部分重要是对你有的技术力量、资金状况、人力资源等情况的假设,以使得你可以在什么样的情况和时间范围内完成工作。工期约束,经费约束,人员约束,地理约束,设备约束等几个方面列举说明。) 3需求规定 3.1对功能的规定

用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。 (例如: INPUT输入 PROCESS处理 OUTPUT输出 LOAD负载量

A 预处理,做怎样的动作, AA CC B BBBB Bb v C CCCC cc v

一、xx模块IPO表 对IPO表的简单文字描述。 )

3.2对性能的规定 3.2.1精度

说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。 (例如:

Xx目标处理:1Byt–10M,包括左右边界值。 yy精度范围:„.

ZZ的精度:由于xx的特殊性,本系统均采用xx型来进行字符统计运算,概率部分以及其他比率部分精度精确到0.0x%。 )

3.2.2时间特性要求

说明对于该软件的时间特性要求,如对: a. 响应时间; b. 更新处理时间;

c. 数据的转换和传送时间; d. 解题时间;等的要求。 (这部分只要一一列举就可以:

由于xxx过程中,需要大量xxxx操作或怎样,故xx解题时间占总时间的最大部分。其次就是xx转换和存储的开销。其具体时间特性要求,如下: a. xx响应时间:xxms左右; b. yy更新处理时间:yy;

c. zz数据的转换和传送时间:zz; d. vv解题时间:vv。 等等 ) 3.2.3灵活性

说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如: a. 操作方式上的变化; b. 运行环境的变化;

c. 同其他软件的接口的变化; d. 精度和有效时限的变化; e. 计划的变化或改进。

对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。

(这部分按列举来即可, 由于本模块第一目的是用于xxx,其次则是xxxx。故本模块的灵活性在于实际应用者的不同。当需求发生某些变化时,该软件对这些变化的适应能力。具体情况如下: f. 操作方式上的变化:采用集成运行制和独立运行制两种模式,集成运行制是把本模块嵌入到分词工具包的主框架中,提供给用户具有一定UI的可操作软件;独立运行制是可以独立运行于后台,并提供给各种程序调用的模式的工作方式,以增强其生命力。

g. 运行环境的变化:主采用Windows平台的编译版本运行和调试,在时间允许的情况下,同步开发支持SUSE Linux的服务器版本。;

h. 同其他软件的接口的变化:在尽量保证接口不出现变动的情况下,允许接口的重载和再定义。但接口的命名规则是统一的;

i. 精度和有效时限的变化:精度在必须调整的条件下,可以上下浮动10个百分点;有效时限则依据现实的测试情况允许稍大范围的变化。

j. 计划的变化或改进:工作时间安排会存在必然的浮动,这部分要协同分词工具包课题设计组其他成员一同来进行商定,前期的计划可以稍微有些变动,后期的安排尽量按照计划执行。 等等 ) 3.3输人输出要求

解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。

(这部分可以把输入输出分为 3.3.1输入要求和3.3.2输出要求,如下给出一个单元的例子。 XXX输出

数据名称:XXX输出数据 实际含义:用于XX,表示XXXX 数据类型:Character(字符串) 数据格式:XX 数据约束:由于xxx,,大小在xx以内 )

3.4数据管理能力要求

说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。 ( 根据实际系统要求列举即可 Name名称 Number数量 Size大小 Increase增长

词典xx xx xxxx 并行执行,其大小依据实际xx大文本而增长

3.5故障处理要求

列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。

(包括软件压力,内存不足,硬件损坏等,这部分可以根据百度到其常见故障。) 3.6其他专门要求

如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。

(例如安全保密性:密钥更换等; 预期扩展:扩展兼容等;OS更换:Slackware转SUSE等 )

4运行环境规定 4.1设备

列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:

a. 处理器型号及内存容量;

b. 外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;

c. 输入及输出设备的型号和数量,联机或脱机; d. 数据通信设备的型号和数量; e. 功能键及其他专用硬件 (列举说明即可) 4.2支持软件

列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。 (操作系统和版本:xxxx 支撑环境和版本:xxxx 备用IDE环境和版本:xxxx 与该软件有关的软件组件:xxxx 后续可能扩展环境:xxxx ) 4.3接口

说明该软件同其他软件之间的接口、数据通信协议等。 (例如:

a.用户和主程序调用接口(图中接口1)。这个接口采用封装API形式和函数调用形式,分别以外部调用和内部调用的方式为不同用户提供使用本机械分词工具的入口。例如以xxxx方式调用DLL文件,以xxxx方式调用函数。如下图2所示。 图2.软件接口调用图 b.xx接口(图中接口2)。这里是一个xxx的接口调用过程。xxxx ) 4.4控制

说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。 (例如:

下面通过图表的形式,将本模块以及涉及到本模块的软件模块的运行方法、控制信号,以及这些控制信号的来源,其中箭头所指方向对应的模块的控制信号来自箭头另一方向的模块,具体情况如下: 图3 .控制流程图

图3的具体说明情况如下表所示: Name模块名称 Method运行方式 Signal控制信号 Forward控制去向

主程序模块 运行框架 用户调用或运行 1.调用xx模块 2.调用xx方法 3.调用标准输出模块

xxx模块 xxx xxx调用 Xxx模块

)

第12篇:软件项目开发工作流程

软件项目开发工作流程

一、简述

对于一个新项目,从可行性研究到产品交货整个生存阶段将经历如下十大流程:

1、项目可行性研究阶段

2、立项阶段

3、需求分析阶段

4、开发策划阶段

5、设计阶段

6、编码实现阶段

7、测试阶段

8、验收阶段

9、产品交付使用

10、维护阶段

二、项目组基本组成及岗位职责

新项目立项时会成立项目组,不同的项目组成员有不同的职责,一个项目组成员也可以身兼多职,但不可身兼全职。

a项目负责人:负责项目的管理、组织、对技术、进度、质量全面负责。 b质量保证人员:负责质量保证工作计划的落实和软件的质量保证。

C配臵管理人员:负责本项目的配臵管理工作,对本项目的文档、程序是否符合规程文件的要求进行形式化的检查。

D分析人员:主要负责本项目的需求分析工作。 E设计人员:主要负责本项目的设计工作。

F程序员:按设计要求和有关标准进行编程工作。

G测试人员:负责单元测试、组合测试和总装测试工作。 H文档人员:负责本项目有关文档的编写工作。

I产品经理:协助进行产品研制计划制定、产品发布与产品推广等,在产品开发中,充分代表用户的利益,提供建议,负责在产品功能与出品日期二者之间的权衡;负责产品市场营销、产品销售和市场推广过程。(通常由营销部门或中试部门人员担任)

三、软件开发流程

3.1 可行性研究阶段

如果是公司自主开发项目,可行性研究通常是由公司技术负责人根据公司产品规划和市场需求,在要开展新项目前通过部门负责人指定人员进行的前期调研工作,可行性研究负责人员对产品的市场需求、技术发展、市场定位、功能需求、经济效益、进度需求、风险分析等进行可行性研究,提供产品立项建议,拟制可行性研究报告,由部门负责人指定营销部门配合可行性分析人员,技术负责人协助安排。可行性分析完毕后由总工办组织对可行性研究报告进行评审,评审通过后,总工办组织进行立项工作。

如果是系统集成部外接的系统集成项目,在系统集成部与客户签订合同之前,均应对将签项目进行资源、技术、市场的可行性分析,可行性分析通过后、签订合同前由总工办组织相关人员对合同条款进行评审,评审通过后,总工办组织进行立项工作。

本阶段提交的文档:项目可行性研究任务书(技术负责人或部门负责人下达)

项目可行性研究报告(可行性研究人员编写)

系统集成项目合同 质量记录:可行性分析评审报告 3.2立项阶段

可行性分析评审通过后,由开发部门经理下达立项任务,指定相关人员填写立项申请报告报批。报批通过后,由部门经理与技术负责人协商,下达开发任务书,经技术负责人审核确认后,报公司批准。批准立项后项目进度应以立项申请报告中的阶段进度为准,如果进度要调整,需填写进度调整申请报告报批。 本阶段提交的文档:项目立项申请报告

开发任务书

3.3 需求分析阶段

承办单位根据交办单位提出的技术要求和相应的软件任务书以及其它有关文件,与交办单位协作,确定详细的软件需求,该阶段完成的软件需求规格说明经审定和批准后将作为整个软件开发工作的基础列入配臵管理的基线,在本阶段可利用快速原型法使比较含糊的具有不确定性的软件需求(主要是功能)明确化。能给本公司开发的软件的“需求基线”确定提供一个讨论、进一步完善的基础。在本阶段,由产品经理负责,其他人员配合,编写产品规格说明书,此说明书面向最终用户和领导,主要描绘产品的形状以及功能、性能、功能特性、性能特性。由项目经理负责编写系统技术方案书,描述公司初次使用的技术的详细解决方案。本阶段完毕后对需求分析进行评审,出具需求分析评审报告。 本阶段提交的文档:软件需求规格说明书。

原型分析说明书

产品规格说明书

系统技术方案书

质量记录:

需求分析评审报告

提交的软件:产品的原型(注:如果时间有限,可以只编写原型分析说明书而不作原型)

3.4开发策化阶段 根据项目要求和软件需求,由配臵人员配合项目经理编写本项目的质量保证计划、配臵管理计划和项目综合计划。在配臵管理计划中,应列明本项目需提交的各阶段文档的名称,在项目各阶段完成后,项目组需列表说明要移交的文档,将此表与各文档一并向总工办移交。在制定计划时,应为计划、设计、测试、改错、再测试、变更、以及编制文档留出足够的时间。不应使用突击的办法来完成项目。

本阶段涉及的文档:软件质量保证计划

配臵管理计划

项目综合计划

3.5设计阶段 3.5.1概要设计

根据软件需求规格说明建立软件总体结构和模块间的关系,确定各模块功能,定义各功能模块的接口,设计全局数据库和数据结构,在概要设计明确后,可以对综合计划进一步细化,填写项目进度预计。概要设计需经过评审。 本阶段涉及的文档:产品概要设计说明书

数据库设计说明

项目进度预计 质量记录: 评审报告 3.5.2详细设计

对概要设计中产生的功能模块进行过程描述设计,设计功能模块的内部细节,包括算法和数据结构,为编写源代码提供必要的说明。详细设计需要经过评审。 本阶段涉及的文档:软件详细设计说明书

测试计划 质量记录: 评审报告 3.6编码实现阶段

根据软件详细设计说明、对各程序模块进行编码、调试、静态分析和单元测试,验证程序单元与设计说明的一致性。 本阶段涉及的文档:项目进度月报

项目周计划和周总结

项目开发人员周计划

工作日志

每周例会记录

配臵项更改申请单 3.6 测试阶段

3.6.1 软件单元测试

按详细设计的结构,根据软件单元测试计划,依照将经过单元测试的底层程序单元逐步组装成子项目直到开发项目的过程,对软件进行测试。 本阶段涉及的文档:测试计划

测试设计

测试问题报告单 参考文档:北京世纪科怡软件开发操作指导书中的“测试阶段操作指导书”

3.6.2组装测试

根据软件需求规格说明书中定义的全部功能和性能要求及组装测试计划,对软件进行组装测试,以确定整个软件是否满足软件需求,是否可以提交总装测试。

软件组装测试计划(含测试用例设计)的编制工作和软件组装测试环境的研制、组建工作,应从软件需求分析阶段起与软件开发同步展开。 本阶段涉及的文档:测试计划

测试设计

测试问题报告单

3.7 中试阶段

项目组开发的软件产品经中试部验收后提交中试部中试,中试部根据需求分析报告,从用户的角度出发对产品的功能、性能进行中试。 本阶段涉及的文档:中试计划

中试问题报告单

3.7 验收交付

对完成中试的软件进行检查、审查和评审,确定软件是否达到了软件任务书的要求。验收通过的软件可以向软件交办单位交付。项目经理及项目组人员应在此阶段完成项目总结,项目经理提交项目开发总结报告,项目组成员提交个人工作总结报告。

本阶段涉及的文档:验收报告

项目开发总结报告

个人工作总结报告

3.8 软件维护

对软件的维护包括针对软件运行过程中发现的问题而进行的改正性维护,针对不同任务对软件提出不需求而进行的改善性维护,以及可能出现的由于软件运行环境的改变而进行的适应性维护。 本阶段涉及的文档:软件问题汇总表

维护报告

四、项目开发文件的审批

 可行性研究报告及立项申请、项目开发计划及项目开发总结、确认计划及确认报告、验收计划及验收报告由技术负责人审批。  项目组人员编写的其他文件由项目经理审批。

五、各阶段共同的任务要求 5.1编写文档

在软件开发过程的各个阶段,都要求完成相应的文档编写工作。本文档的前面部分已给出了在软件自上而下周期各个阶段中的文档编制情况。软件文档从形式上来看,大致可分为两类: a. 开发过程中填写的各种图表,称为工作表格; b. 应编制的技术资料或技术管理资料,称为文档或文件。 按照文档产生和使用的范围,软件文档大致可分为三类: a. 开发文档:这类文档是在软件开发过程中,作为软件开发人员前一阶段工作成果的体现和后一阶段工作依据的文档。包括软件需求说明书、数据库设计说明书、概要设计说明书、详细设计说明书、可行性研究报告、项目开发计划。 b. 管理文档:这类文档是在软件开发过程中,由软件开发人员制定的需提交人员的一些工作计划或工作报告。使管理人员能够通过这些文档了解软件开发项目安排、进度、资源使用和成果等。包括项目开发计划、测试计划、测试报告、开发进度月报、项目周计划周总结及项目开发总结等。 c. 用户文档:这类文档是软件开发人员为用户准备的有关该软件使用、操作、维护的资料。包括用户手册、操作手册、维护修改建议、软件需求说明书。

项目各阶段完毕后需把本阶段相关文档列表向总工办移交。

5.2验证与评审

软件评审是保证软件产品质量的重要手段,必须纳入软件开发过程,并把评审通过作为一个软件阶段完成的标志,进而转入下一个开发阶段。软件评审包括有正式评审(即评审)、内部评审两种形式。正式评审是软件项目组上级技术主管主持的评审。内部评审以由项目负责人组织、开发人员相互检查为基本方式。

就整个软件开发过程而言,至少要进行可行性分析、软件需求评审、设计评审、软件验证和确认评审、管理评审等五个方面的评审和检查工作。

第13篇:项目开发经理岗位职责

1.建立和开发良好的客户关系,以专业的技能完成可以满足客户需求的操作方案,确保客户的满意度,完成收人目标。2.挖掘现有和潜在的项目机会。3.与客户和项目开发组成员建立良好的工作关系。

第14篇:软件项目开发计划书编写规范

软件项目开发计划书编写规范

2008-11-18 11:54:46作者:佚名

编制项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员、开发进度、所需经费预算、所需软、硬件条件等问题作出的安排记载下来,以便根据本计划开展和检查本项目的开 发工作。编制内容要求如下:

1 引言

1.1编写目的

说明编写这份项目开发计划的目的,并指出预期的读者。

1.2背景

说明:

a.待开发的软件系统的名称;

b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;

C.该软件系统同其他系统或其他机构的基本的相互来往关系。

1.3定义

列出本文件中用到的专门术语的定义和外文首字母组词的原词组。

1.4参考资料

列出用得着的参考资料,如:

a.本项目的经核准的计划任务书或合同、上级机关的批文;

b.属于本项目的其他已发表的文件;

C.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。

2 项目概述

2.1 工作内容

简要地说明在本项目的开发中须进行的各项主要工作。

2.2主要参加人员

扼要说明参加本项目开发工作的主要人员的情况,包括他们的技术水平。

2.3产品

2.3.1程序

列出需移交给用户的程序的名称、所用的编程语言及存储程序的媒体形式,并通过引用有关文件,逐项说明其功能和能力。

2.3.2文件

列出需移交给用户的每种文件的名称及内容要点。

2.3.3服务

列出需向用户提供的各项服务,如培训安装、维护和运行支持等,应逐项规定开始日期、所提供支持 的级别和服务的期限。

2.3.4非移交的产品

说明开发集体应向本单位交出但不必向用户移交的产品(文件甚至某些程序)。

2.4验收标准

对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。

2.5完成项目的员迟用限

2.6本计划的批准者和批准日期

3 实施计划

3.1工作任务的分门与人员分工软件开发网

对于项目开发中需完成的各项工作,从需求分析、设计、实现、测试直到维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作等,按层次进行分解,指明每项任务的负责人和参加人员。

3.2 接口人员

说明负责接口工作的人员及他们的职责,包括:

a .负责本项目同用户的接口人员;

b.负责本项目同本单位各管理机构,如合同计划管理部门、财务部门、质量管理部门等的接口人员;

c.负责本项目同各分合同负责单位的接口人员等。

3.3进度

对于需求分析、设计、编码实现、测试、移交、培训和安装等工作,给出每项工作任务的预。定开始日期、完成日期及所需资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(即所谓\\\"里程碑\\\")。

3.4预算

逐项列出本开发项目所需要的劳务(包括人员的数量和时间)以及经费的预算(包括办公费、差旅费、机时费、资料费、通讯设备和专用设备的租金等)和来源。

3.5关键问题

逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目的影响。 [Page]

4 支持条件

说明为支持本项目的开发所需要的各种条件和设施。

4.1计算机系统支持

逐项列出开发中和运行时所需的计算机系统支持,包括计算机、外围设备、通讯设备、模拟器、编译 (或 汇编)程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等,逐项给出有关到货日期、使用时间的要求。

4.2需由用户承担的工作

逐项列出需要用户承担的工作和完成期限。包括需由用户提供的条件及提供时间。

4.3由外单位提供的条件

逐项列出需要外单位分合同承包者承担的工作和完成的时间,包括需要由外单位提供的条件和提 供的时间。

5 专题计划要点

说明本项目开发中需制订的各个专题计划(如分合同计划、开发人员培训计划、测试计划、安全保密 计划、质量保证计划、配置管理计划、用户培训计划、系统安装计划等)的要点。

第15篇:软件项目开发合作协议样本

项目开发合作协议

甲方:

地址:

营业执照号码:

甲乙双方本着共同发展的原则,经过友好协商,决定充分利用双方各自的优势,资源互补,在XXX项目上进行合作,特订立本协议。

第一条、开发项目和范围

本项目目标是XXX。具体细节请参考相关设计文档(简称“XXX”)。

第二条、合作方式

1.双方共同开发XXXXXX。

2.双方共用基础平台XXX,基础平台在服务存续期间归甲乙双方共同所有,任何一方需征得另一方书面同意方可对基础平台进行处置。

3.XXX由甲方负责定制开发并承担相应费用,并且XXX附属内容所有权归甲方所有。XXX乙方负责开发并承担相应费用,并且该XXX其附属内容所有权归乙方所有。

第三条、开发期限

本项目初始开发期限暂定为两年,即:自年月日起,至年月日止。甲乙双方可根据项目进展情况另行约定缩短或者延长项目初始开发期限。

第四条、收益分成

1.甲方独立开发XXX客户,收益归甲方所有。

2.乙方开发XXX客户,收益归甲方所有。

3.XXX平台性公共费用,包括但不限于技术维护费用、用户服务费用、软件和硬件升级或者扩容费用、公网IP地址和域名租赁费用、设备托管费用、接入号码资源费用,原则上应由甲方和乙方根据各自所发展用户对上诉资源占用的情况按比例分担。对于难以根据最终用户使用情况来区分所占用比例的公共资源,应按照甲乙双方各自营业收入的比例来确定。

第五条、代理及互不介入承诺

1.乙方可作为甲方代理发展xxx用户业务,原则上可享有50%的毛利分成, 即甲方应给予乙方最优惠条件的渠道代理条件(甲方承诺不给予第三方超出乙方的代理商务条件的优惠)。 1

乙方: 地址: 身份证号码:

2.甲方也可作为乙方代理发展XXX客户,原则上可享有50%的毛利分成,即乙方应给予甲方最优

惠条件的渠道代理条件(乙方承诺不给予第三方超出甲方的代理商务条件的优惠)。

3.终止通告

4.互不介入承诺

甲方承诺五年内不介入开发或运营能够提供与XXX服务的面对XXX用户类的平台及品牌。乙方承诺五年内不介入开发或运营能够提供XXX服务面XXX用户类的平台及品牌。 如果一方违约,另外一方可要求对方一次性赔偿50万元人民币。 第六条、甲方优先认股权

甲方保留在业务运营两年对乙方所运营XXX服务10%的优先认股权,同时甲方参与本项目的骨干员工和管理层保留在两年内对乙方所营运的XXX服务10%的优先认股权,共计20%优先认股权。乙方所运营业务的估值方法和定价方式在认购发生时由第三方专业机构参与评估确定,原则上,乙方不得就其所运营的XXX服务在资本市场融资时给予第三方比甲方优先认股权更优惠的条件。

第七条、成立合资公司

业务发展到一定规模,双可以协商根据双方的客户量和收入分占一部分股份,把企业和个人的业务,都注入到一个营运实体,根据双方的业务量和业务前景来定确定双方的股权比例。

第八条、免责

1.如甲方因为第三方原因或者其他不可抗力因素而不能继续履行本协议,甲方不必承担任何责任,

但甲方应尽可能提前就本项目处置方案与乙方共同协商确定。

2.如乙方因为第三方原因或者其他不可抗力因素而不能继续履行本协议,乙不必承担任何责任,但

乙方应尽可能提前就本项目处置方案与甲方共同协商确定。

3.在第三方原因或者其他不可抗力因素之影响消除之时,如条件具备,甲乙双方应尽快协商恢复执

行本协议。

第九条、保密条款

甲乙双方为本项目运作提供的所有资料只能用于本项目,甲乙双方应将对方提供的资料视为机密文件,未经书面授权不得向任何第三方透露。

第十条、透明化

本项目运作期间,所有与本项目相关的交流、对话、协议、成交等均需甲乙双方共同进行或在对方知晓的前提下进行。在另一方不知晓的情况下,任何一方不得就本项目所提供的业务单独对外签订任何协议或者达成任何交易。

第十一条、其它

本协议未尽事宜由甲乙方通过协商解决。

第十二条、生效

本协议一式两份、甲乙方各持一份,在甲乙双方签字后生效。

甲方:

(授权人签字盖章):

日期:

乙方: (签字)日期:

第16篇:附6 软件项目开发总结报告

附件4-6 项目开发总结报告

1 引言 ...............................................................................................................................3 1.1 1.2 1.3 1.4 2 编写目的 ............................................................................................................3 背景 ....................................................................................................................3 定义 ....................................................................................................................3 参考资料 ............................................................................................................3

实际开发结果 ................................................................................................................4 2.1 2.2 2.3 2.4 2.5 产品 ....................................................................................................................4 主要功能和性能 .................................................................................................4 基本流程 ............................................................................................................4 进度 ....................................................................................................................4 费用 ....................................................................................................................5

3 开发工作评价 ................................................................................................................5 3.1 3.2 3.3 3.4 对生产效率的评价 ..............................................................................................5 对产品质量的评价 ..............................................................................................5 对技术方法的评价 ..............................................................................................5 出错原因的分析 .................................................................................................6

4 经验与教训 ....................................................................................................................6

1 引言

1.1 编写目的

说明编写这份项目开发总结报告的目的,指出预期的阅读范围。

1.2 背景

说明:

1)本项目的名称和所开发出来的软件系统的名称;

2)此软件的任务提出者、开发者、用户及安装此软件的计算中心。

1.3 定义

列出本文件中用到的专门术语的定义和外文首字母组词的原词组。

1.4 参考资料

列出要用到的参考资料,如:

1)本项目的已核准的计划任务书或合同、上级机关的批文; 2)属于本项目的其他已发表的文件;

3)本文件中各处所引用的文件、资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2 实际开发结果

2.1 产品

说明最终制成的产品包括:

1)程序系统中各个程序的名字,它们之间的层次关系,以千字节为单位的各个程序的程序量、存储媒体的形式和数量;

2)程序系统共有哪几个版本,各自的版本号及它们之间的区别; 3)每个文件的名称;

4)所建立的每个数据库。 如果开发中制订过配置管理计划,要同这个计划相比较。

2.2 主要功能和性能

逐项列出本软件产品所实际具有的主要功能和性能,对照可行性研究报告、项目开发计划、功能需 .求说明书的有关内容,说明原定的开发目标是达到了、未完全达到、或超过了。

2.3 基本流程

用图给出本程序系统的实际的基本的处理流程。

2.4 进度

列出原定计划进度与实际进度的对比,明确说明,实际进度是提前了、还是延迟了,分析主要原因。 2.5 费用

列出原定计划费用与实际支出费用的对比,包括: 1)工时,以人月为单位,并按不同级别统计;

2)计算机的使用时间,区别CPU时间及其他设备时间; 3)物料消耗、出差费等其他支出。

明确说明,经费是超出了、还是节余了,分析其主要原因。

3 开发工作评价

3.1 对生产效率的评价

给出实际生产效率,包括:

1)程序的平均生产效率,即每人月生产的行数;

2)文件的平均生产效率,即每人月生产的千字数; 并列出原订计划数作为对比。

3.2 对产品质量的评价

说明在测试中检查出来的程序编制中的错误发生率,即每干条指令(或语句)中的错误指令数(或语句数)。如果开发中制订过质量保证计划或配置管理计划,要同这些计划相比较。

3.3 对技术方法的评价

给出对在开发中所使用的技术、方法、工具、手段的评价。 3.4 出错原因的分析

给出对于开发中出现的错误的原因分析。

4 经验与教训

列出从这项开发工作中所得到的最主要的经验与教训及对今后的项目开发工作的建议。

第17篇:软件项目开发战略合作协议

项目开发战略合作协议书

甲方: 地址: 乙方: 地址:

为加强项目开发的合作,推动甲乙双方各项业务发展,甲乙双方本着平等互利、资源共享、优势互补的原则,经友好协商,就结成战略合作关系,达成如下协.议: 第一条 合作宗旨

1、双方通过建立密切、长久及融洽的战略合作伙伴关系,充分发挥各自特长,在软件开发、APP、系统开发等开展合作,帮助双方进一步提升整体运营效率、降低运营成本,实现资源合作、优势互补、共同发展。

2、本协议的基本原则是自愿、双赢、互惠互利、相互促进、共同发展、保守秘密、保护协作市场。

3、本协议为框架协议,应是双方今后长期合作的指导性文件,也是双方签订相关合同的基础。第二条 合作范围

本合作协议仅限于甲乙双方在软件开发、APP、系统开发等项目的研发,维护,更新服务。

第三条 合作内容

1、双方认同互为长期战略合作伙伴。甲方购买乙方在软件开发、APP、系统开发等方面的产品或服务,以完善补充甲方的项目需求。

2、对不同的项目,甲乙双方会根据具体项目情况签订合作合同。甲方基于项目需要,为乙方提供详细需求清单,时间节点要求和验收标准。乙方据此报价并保证按甲方需求完成相关工作,并保证交付的软件产品或服务的功能,性能,交付时间、质量符合合同要求。

3、乙方保证其提供给甲方的软件产品或服务在交付甲方前乙方具有完整的知识产权。

4、乙方向甲方移交甲方购买的产品或服务后,应保证相关的产品或服务的知识产权归甲方所有(包括但不仅限于程序,源代码、著作权版权,等等)。乙方不得在未经甲方书面同意,或在甲方不知情的情况下出售、转让、传播相关的软件或服务产品。

补充:此合作内容适用于双方处于项目外包的合作方式。

甲乙双方也可根据自身资源的实际情况,选择资源共享共同开发新项目。合作双方资源共享共同合作开发的项目需按项目情况签署战略合作协议进行补充。 第四条 合作方式

合作方式有:任务分包、劳务购买、软件产品购买引进等方式。

具体合作方式、内容,价格,交付形式等以基于项目的《项目合作合同》为准。 第五条 合作期限

1、本框架协议自双方签字后即发生效力。

2、双方致力于建立一个长期的战略合作关系,在双方认为已无合作的必要或可能时,经协商一致可终止本协议。

3、一方欲中止本协议时,须提前1个月与对方协商。

4、双方同意终止本合作框架协议时,仍应继续履行合作期内签订的各项目合同,直至项目合同履行完结或经订约双方协商一致同意终止合同合同。

5、知识产权移交后,其归属和保护不受本协议终止影响。

第六条 双方对本协议及其相关的项目合同有保密责任。未经对方书面同意,不得对第三方透露。

第七条 本协议的自甲乙双方法定代表或授权代理人签字、盖章后生效,本协议正本贰份,甲乙双方执壹份,均具有同等法律效力。

甲方:(签章)

授权代表签字:

签订日期:

乙方:(签章)

授权代表签字:

签订日期:

年月

第18篇:软件项目开发可行性分析报告

网络硬盘文件资源管理系统开发与设计可行性研究报告

1、引言

1.1编写目的

随着网络技术的日益普及和信息化建设的重视,网络硬盘作为一种新型安全的网络存储系统,主要适用于个人文件存储,可以用作个人的一个网络U盘,网络硬盘是一块专属的存储空间,用户通过上网登录网站的方式,可方便上传、下载文件。只要能上网,就可以用网络硬盘登录到服务器上进行个人文件的上传、删除及文件目录的新建、修改、共享等操作,随时随地存储自已的个人文件。而且不用担心文件丢失的状况,安全方便。

1.2项目背景

1.2.1 项目名称:网络硬盘文件资源管理系统

1.2.2 用户:网络存储用户

1.2.3 说明:很多用户把重要文件存储在自己的手机或电脑的硬盘上,结果因为手机、电脑的丢失导致这些重要文件也都丢失了,在很多时候,文件的价值往往比手机和电脑本身还要高。而且网络硬盘可以用作个人的一个网络U盘,无论在家里,办公室里或旅馆里,只要能上网,可以通过网络硬盘调用自己的文件或记事本;网络硬盘是一块专属的存储空间,用户通过上网登录网站的方式,可方便上传、下载文件,而独特的外链功能更突破了传统存储的概念。只要能上网,就可以用网络硬盘登录到服务器上进行个人文件的上传、下载、删除及文件目录的新建、修改、删除、文件预览等操作,随时随地存储自已的个人文件。

2、可行性研究的前提

2.1要求

2.1.1 功能要求

用户能登陆注册,用户文件空间界面必须以文件目录的形式展示文件列表,目录结构清晰。能实现文件批量选择上传,操作必须要方便快捷简单,常用格式文件必须要能打开预览。为方便操作,文件夹能打包压缩下载。用户能对文件实现批量操作。能设置外链文件。

2.1.2 性能要求

为了满足储户的要求,系统必须要有高的运作速度,用户的操作事件,系统必须能快速及时作出响应,迅速处理各项数据、信息。所以要求很高的信息量速度和大的主存容量;由于要存贮大量文件和数据,也还要有足够大的磁盘容量;安全性也是系统最重要的性能需求之一,文件管理系统系统必须有可靠的安全措施,以保证储户的存储安全。

2.1.3完成期限

初步确定开发期为2个月,系统计划于2012年低正式完成

2.2目标

网络硬盘是一种类似U盘的一种文件存储系统,所以,第

一、系统必须要稳定、安全,保证上传的文件不丢失,能正确下载。

二、文件浏览界面必须要友好,能提供清晰的文件目录列表。

三、必须要有方便快捷的操作,保证良好的用户体验。

2.3可行性研究方法

采用归纳方法:通过对现在流行、大型的网络硬盘系统详细研究与比较来获取自己系统需求分析所需资料,在对这些系统的设计、制造和运行状况进行分析研究的基础上,根据所设计的系统的功能要求进行多次选择,然后对少数几个同类系统作出相应修正,最后得出一个理想的系统。

3、对现有系统的分析

当前大多数网盘都还没有实现对文件的预览功能,有部分实现了对图片的预览功能,但实现对文档、音乐、视频预览的确很少。给予用户的体验不足,达不到用户所期待的功能。基于这种原因,我所实现的系统能对图片、文档、音乐、视频的预览以及文件夹的压缩下载。

4、技术可行性分析

网络硬盘文件系统的实现技术有多种,可以采用传统的客户机/服务器型的B/S型架构,即文件内容放在远程的服务器上,用户通过在其他计算机上登陆服务器。进入网络硬盘系统。由于受条件所限制,数据库服务器端采用大型数据库系统,这有利于缩短大批量数据的吞吐时间,使整个系统管理规范化,数据的完整性、安全性得到保障.应用服务器端采用中间件计算模式(IBMWebSphereApplicationServer),分模块层次结构,多模块分立,允许系统的分布处理,以提高系统的工作效率。所使用的技术主要是S2SH(struts

2、hibernate、spring)以及javascript、jquery、c、html,这些技术都已经开设过课程,我也已经掌握了。开发系统的计算机硬件已经非常普及,所以完全没有问题;现在的计算机各方面的技术都非常成熟,相对来说开发此系统的技术也要求比较简单,因此在技术方面是可行的。

5、经济可行性分析

可以通过推广发布广告、个人付费、流量收费来维持网盘的运营,并通过网盘服务带来大量用户到其他关联产业。经济上市是没什么问题的。

6、社会因素可行性分析

6.1法律因素

全部软件购买正版;机器设置通过正当途径购得;所有软件都用正版,技术资料都由提出方保管,数据信息均可保证合法来源。所以,在法律方面是可行的。

6.2用户使用可行性

开发的系统操作要非常简单,以便适合大人小孩老人各类人们都可以很方便操作使用。

第19篇:项目产品开发工程师岗位职责

1.负责项目报价阶段的技术方案的制定。2.协助销售人员与顾客进行必要的技术沟通。3.负责雨刮器系统设计。4.按照法雷奥项目管理体系和ISO/TS16949的要求,负责相关文件的编制和更新。5.按照项目进度进行产品的开发和验证。6.负责产品开发过程中与客户的沟通。7.负责解决产品开发过程中的质量问题。

第20篇:手机终端软件高级开发工程师岗位职责

1.根据手机终端软件需求,负责完成软件设计、开发。2.根据手机终端软件规划,负责技术预研、原形开发。3.收集手机终端行业前沿技术发展信息,并根据规划负责技术研究。

软件项目开发岗位职责
《软件项目开发岗位职责.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档