软件工程课程设计选题与指导.docx
《软件工程课程设计选题与指导.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计选题与指导.docx(22页珍藏版)》请在冰豆网上搜索。
软件工程课程设计选题与指导
软件工程课程设计指导
一、课程设计教学目的
《软件工程课程设计》是为计算机专业本科《软件工程》课程配套设置的,是《软件工程》课程的后继教学环节,是一个重要的、不可或缺的实践环节。
其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件总体设计、软件详细设计、软件测试等阶段的方法和技术。
通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。
同时课程设计应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生自学能力的培养。
二、课程设计内容及要求
本课程设计要求学生采用“项目小组”的形式,结合具体的开发项目进行设计。
具体要求如下:
1.每个班级按项目小组进行分组,每组不得超过4人;
2.每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目。
项目经理负责制定“项目开发计划”、管理项目并根据项目进展情况对项目开发计划进行调整;
3.项目开发计划必须由粗到细给出,每项任务要落实到人且规定该任务的起止日期和时间;明确每个阶段提交文档的日期和时间;每个项目小组必须明确指定文档的审查人员以及审查结果的返回日期;审查小组和审查人员不得是完成被审查内容的完成者;审查结果至少包括:
存在的问题、出现问题的所在文档的位置及页码、具体建议等;
4.每个项目小组必须按照给定的文档规范标准提供下列文档,文档中必须注明执笔者、完成者(签名)和完成日期。
其中对同一功能模块,完成需求分析和设计工作的人员不能相同,完成编码和审查/测试的人员不能相同;文档包括:
项目开发计划(包括调整的项目开发计划)、需求分析说明书、概要设计说明书、详细设计说明书、编码清单(部分或全部)、测试报告等。
5.每个项目小组可以有选择地完成编码、测试等阶段的部分任务。
6.根据合理的进度安排,一步一步、踏踏实实地开展课程设计活动,按时完成每部分工作。
课程设计过程中,坚持独立完成,分成小组进行的要有明确的分工,并在报告中给以说明。
课程设计内容主要包括:
1.项目可行性研究
1)成立项目小组并选定项目经理或项目小组长
2)项目经理召集小组成员选择开发项目
3)项目经理召集小组成员开展项目可行性研究
4)按照《软件文档编写概要》的格式要求,由项目经理执笔完成《项目可行性研究报告》。
2.制定项目开发计划
1)项目经理召集小组成员针对所选项目讨论开发计划,进一步明确项目的大小、范围、复杂程度等。
2)项目经理召集小组成员进行任务分解与任务分配
3)确定任务进度
4)确定完成项目的环境和工具
5)按照《软件文档编写概要》的格式要求,项目经理执笔完成《项目开发计划书》
3.需求分析
1)按照项目任务分配结果和项目进度要求,由任务承担人开展项目的需求分析的主要工作,不得超越前述项目的大小、范围、复杂程度等
2)项目小组的其他成员配合任务承担人,完成项目的需求分析
3)按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目需求分析规格说明书》
4)由评审人员完成对《项目需求分析规格说明书》的评审工作,并给出评审意见
4.总体设计
1)按照项目任务分配结果和项目进度要求,并依据《项目需求分析规格说明》,由任务承担人完成项目的初步设计任务,项目小组的其他成员配合任务承担人,完成项目的初步设计任务
2)按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目初步设计规格说明书》
3)由评审人员完成对《项目初步设计规格说明书》的评审工作,并给出评审意见
5.详细设计
1)按照项目任务分配结果和项目进度要求,并依据由任务承担人完成项目的详细设计任务
2)项目小组的其他成员配合任务承担人,完成项目的详细设计任务按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目详细设计规格说明书》
3)由评审人员完成对《项目详细设计规格说明书》的评审工作,并给出评审意见
6.实现
1)按照项目任务分配结果和项目进度要求,并依据《项目初步设计规格说明书》和《项目详细设计规格说明书》由任务承担人完成项目的具体实现任务
2)由任务承担人给出实现的源程序清单(打印或磁盘)
7.测试
1)按照项目任务分配结果和项目进度要求,并依据《项目需求分析规格说明书》、《项目总体设计规格说明书》和《项目详细设计规格说明书》,由任务承担人完成对已实现部分的软件或模块的测试任务
2)按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目测试报告》。
三、课程设计时间及进度安排
设计内容
周期
课设选题,查阅资料,编写《项目可行性研究报告》和《项目开发计划书》
5天
按照《软件文档编写概要》的格式要求,由任务共同承担人执笔完成《项目需求分析说明书》
10天
按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目总体设计说明书》和《项目详细设计说明书》
20天
按照项目任务分配结果和项目进度要求,并依据《项目需求分析规格说明书》、《项目总体设计规格说明书》和《项目详细设计规格说明书》,由任务承担人完成对已实现部分的软件或模块的测试任务
10天
完善编码,编制《软件测试计划书》。
3天
四、课程设计的成绩评定
本课程设计必须提交正式的针对特定项目的完整的设计文档和报告书。
每个项目小组及其成员的成绩由三部分构成:
1)项目小组基本任务完成情况,包括文档完成情况,占70%,由教师评定,不完成者不得分,少交者,酌情处理;2)项目经理的成绩由教师根据其履行的职责和全组完成任务情况可做加分处理,但不得超过总分的10%,由教师评定;3)若在完成以上工作的基础上,编程实现整个系统的小组,可给相关同学在期末成绩上加10分;4)课程设计的成绩单独记分,还将参照各项目组提交的开发计划进行核定。
五、课程设计报告撰写要求
本课程设计必须提交的上述第二部分所列的文档(报告),每份报告需在封面注明报告课题名称、班级、课题组成员姓名、学号及课程设计日期、地点。
报告撰写的要求:
关于各部分文档提交的方式每个参加课程设计的同学,必须以小组方式提交最后文档。
文档必须是打印稿,要求:
纸张:
A4;项目标题:
3号黑体;各部分中标题:
4号黑体;内容:
5号宋体。
注:
以上所有工作和相关文档必须在本学期结束前3天完成并提交给学习委员,由学习委员统一发送给教师。
过期无效
六、可参考选做的软件系统项目(每个团队在必须对所选题的考虑软件系统的限制条件,具体条件可由团队内自行根据实际情况定义或假设)名称如下表:
序号
主题
人数
1
网上花店
3
2
电子相册
3
3
宾馆客房管理信息系统
3
4
运动会成绩管理系统
3
5
网络新闻发布与管理系统
3
6
停车场收费系统
3
7
学校工资管理系统
3
8
餐馆管理系统
3
9
学校水电维修管理系统
3
10
学生成绩管理系统
3
11
学生选课系统
3
12
学生宿舍住宿管理系统
3
13
在线考试系统
3
14
学校就业信息管理系统
3
15
网络无纸化作业管理系统
3
16
BBS论坛
3
17
小区物业管理系统
3
18
网上教学资源管理系统
3
19
奖学金评定与管理系统
3
20
师生课程交流系统
3
21
汽车订售票管理系统
3或4
22
网上书屋
3或4
23
教室排课系统
3或4
24
移动电话收费管理系统
3或4
25
服装连锁店管理系统
3或4
可行性研究报告样式
1引言
1.1编写目的
说明编写本可行性研究报告的目的,指出预期的读者。
1.2背景
说明:
A.所建议开发的软件系统的名称;
B.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
C.该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料
列出用得着的参考资料,如:
1.本项目的经核准的计划任务书或合同、上级机关的批文;
2.属于本项目的其他已发表的文件;
3.本文件中各处引用的文件、资料,包括所需用到的软件开发标准。
列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2可行性研究的前提
说明对所建议的开发项目进行可行性研究的前提,如要求、目标、假定、限制等。
2.1要求
说明对所建议开发的软件的基本要求,如:
A.功能;
B.性能;
C.输出如报告、文件或数据,对每项输出要说明其特征,如用途、产生频度、接口以及分发对象;
D.输入说明系统的输入,包括数据的来源、类型、数量、数据的组织以及提供的频度;
E.处理流程和数据流程用图表的方式表示出最基本的数据流程和处理流程,并辅之以说明;
F.在安全与保密方面的要求;
G.同本系统相连接的其他系统;
H.完成期限。
2.2目标
说明所建议系统的主要开发目标,如:
A.人力与设备费用的减少;
B.处理速度的提高;
C.控制精度或生产能力的提高;
D.管理信息服务的改进;
E.自动决策系统的改进;
F.人员利用率的改进。
2.3条件、假定和限制
说明对这项开发中给出的条件、假定和所受到的限制,如:
a.所建议系统的运行寿命的最小值;
b.进行系统方案选择比较的时间;
c.经费、投资方面的来源和限制;
d.法律和政策方面的限制;
e.硬件、软件、运行环境和开发环境方面的条件和限制;
f.可利用的信息和资源;
g.系统投入使用的最晚时间。
2.4评价尺度
说明对系统进行评价时所使用的主要尺度,如费用的多少、各项功能的优先次序、开发时间的长短及使用中的难易程度。
3对现有系统的分析
这里的现有系统是指当前实际使用的系统,这个系统可能是计算机系统,也可能是一个机械系统甚至是一个人工系统。
分析现有系统的目的是为了进一步阐明建议中的开发新系统或修改现有系统的必要性。
3.1处理流程和数据流程
说明现有系统的基本的处理流程和数据流程。
此流程可用图表的形式表示,并加以说明。
3.2工作负荷
列出现有系统所承担的工作及工作量。
3.3费用开支
列出由于运行现有系统所引起的费用开支,如人力、设备、空间、支持性服务、材料等项开支以及开支总额。
3.4人员
列出为了现有系统的运行和维护所需要的人员的专业技术类别和数量。
3.5设备
列出现有系统所使用的各种设备。
3.6局限性
列出本系统的主要的局限性,例如处理时间赶不上需要,响应不及时,数据存储能力不足,处理功能不够等。
并且要说明,为什么对现有系统的改进性维护已经不能解决问题。
4所建议的系统
本章将用来说明所建议系统的目标和要求将如何被满足。
4.1对所建议系统的说明
概括地说明所建议系统,并说明在第2章中列出的那些要求将如何得到满足,说明所使用的基本方法及理论根据。
4.2处理流程和数据流程
给出所建议系统的处理流程和数据流程。
4.3改进之处
按2.2条中列出的目标,逐项说明所建议系统相对于现存系统具有的改进。
4.4影响
说明在建立所建议系统时,预期将带来的影响,包括:
4.4.1对设备的影响
说明新提出的设备要求及对现存系统中尚可使用的设备须作出的修改。
4.4.2对软件的影响
说明为了使现存的应用软件和支持软件能够同所建议系统相适应。
而需要对这些软件所进行的修改和补充。
4.4.3对用户单位机构的影响
说明为了建立和运行所建议系统,对用户单位机构、人员的数量和技术水平等方面的全部要求。
4.4.4对系统运行过程的影响
说明所建议系统对运行过程的影响,如:
a.用户的操作规程;
b.运行中心的操作规程;
c.运行中心与用户之间的关系;
d.源数据的处理;
e.数据进入系统的过程;
f.对数据保存的要求,对数据存储、恢复的处理;
g.输出报告的处理过程、存储媒体和调度方法;
h.系统失效的后果及恢复的处理办法。
4.4.5对开发的影响
如:
a.为了支持所建议系统的开发,用户需进行的工作;
b.为了建立一个数据库所要求的数据资源;
c.为了开发和测验所建议系统而需要的计算机资源;
d.所涉及的保密与安全问题。
4.4.6对经费开支的影响
扼要说明为了所建议系统的开发,设计和维持运行而需要的各项经费开支。
4.5局限性
说明所建议系统尚存在的局限性以及这些问题未能消除的原因。
4.6技术条件方面的可行性
本节应说明技术条件方面的可行性,如:
a.在当前的限制条件下,该系统的功能目标能否达到;
b.利用现有的技术,该系统的功能能否实现;
c.对开发人员的数量和质量的要求并说明这些要求能否满足;
d.在规定的期限内,本系统的开发能否完成。
5可选择的其他系统方案
扼要说明曾考虑过的每一种可选择的系统方案,包括需开发的和可从国内国外直接购买的,如果没有供选择的系统方案可考虑,则说明这一点。
5.1可选择的系统方案1
参照第4章的提纲,说明可选择的系统方案1,并说明它未被选中的理由。
5.2可选择的系统方案2
按类似5.1条的方式说明第2个乃至第n个可选择的系统方案。
6投资及效益分析
6.1支出
对于所选择的方案,说明所需的费用。
如果已有一个现存系统,则包括该系统继续运行期间所需的费用。
6.1.1基本建设投资
包括采购、开发和安装下列各项所需的费用,如:
a.房屋和设施;
b.数据通讯设备;
c.环境保护设备;
d.安全与保密设备;
e.数据库管理软件。
6.1.2其他一次性支出
包括下列各项所需的费用,如:
a.研究(需求的研究和设计的研究);
b.开发计划与测量基准的研究;
c.数据库的建立;
d.检查费用和技术管理性费用;
e.培训费、旅差费以及开发安装人员所需要的一次性支出;
6.1.3非一次性支出
列出在该系统生命期内按月或按季或按年支出的用于运行和维护的费用,包括:
a.设备的租金和维护费用;
b.软件的租金和维护费用;
c.数据通讯方面的租金和维护费用;
d.人员的工资、奖金;
e.公用设施方面的开支;
f.保密安全方面的开支
6.2收益
对于所选择的方案,说明能够带来的收益,这里所说的收益,表现为开支费用的减少或避免、差错的减少、灵活性的增加、动作速度的提高和管理计划方面的改进等,如:
a.开支的缩减包括改进了的系统的运行所引起的开支缩减,如资源要求的减少,运行效率的改进,数据进入、存贮和恢复技术的改进,系统性能的可监控,软件的转换和优化,数据压缩技术的采用,处理的集中化/分布化等;
b.价值的增升包括由于一个应用系统的使用价值的增升所引起的收益,如资源利用的改进,管理和运行效率的改进以及出错率的减少等;
c.其他如从多余设备出售回收的收入等。
软件需求说明书的编写提示
1引言
1.1编写目的
说明编写这份软件需求说明书的目的,指出预期的读者。
1.2背景
说明:
a.待开发的软件系统的名称;
b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
c.该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料
列出用得着的参考资料,如:
a.本项目的经核准的计划任务书或合同、上级机关的批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。
列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2任务概述
2.1目标
叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。
解释被开发软件与其他有关软件之间的关系。
如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。
如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。
|
2.2用户的特点
列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使用频度。
这些是软件设计工作的重要约束
2.3假定和约束
列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
3需求规定
3.1对功能的规定
用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。
3.2对性能的规定
3.2.1精度
说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。
3.2.2时间特性要求
说明对于该软件的时间特性要求,如对:
a.响应时间;
b.更新处理时间;
c.数据的转换和传送时间;
3.2.3灵活性
说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:
a.操作方式上的变化;
b.运行环境的变化;
c.同其他软件的接口的变化;
d.精度的变化;
e.计划的变化或改进。
对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
3.3输人输出要求
解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。
对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
3.4数据管理能力要求
说明需要管理的文件和记录的个数、表和文件的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。
3.5故障处理要求
列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
3.6其他专门要求
如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
4运行环境规定
4.1设备
列出运行该软件所需要的硬设备。
说明其中的新型设备及其专门功能,包括:
a.处理器型号及内存容量;
b.外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;
c.输入及输出设备的型号和数量,联机或脱机;
d.数据通信设备的型号和数量;
e.功能键及其他专用硬件
4.2支持软件
列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。
4.3接口
说明该软件同其他软件之间的接口、数据通信协议等。
4.4控制
说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。
概要设计说明书
1引言
1.1编写目的
说明编写这份概要设计说明书的目的,指出预期的读者。
1.2背景
说明:
a.待开发软件系统的名称;
b.列出此项目的任务提出者、开发者、用户以及将运行该软件的计算站(中心)。
1.3定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料
列出有关的参考文件,如:
a.本项目的经核准的计划任务书或合同,上级机关的批文;
b.属于本项目的其他已发表文件;
c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2总体设计
2.1需求规定
说明对本系统的主要的输入输出项目、处理的功能性能要求。
2.2运行环境
简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定。
2.3基本设计概念和处理流程
说明本系统的基本设计概念和处理流程,尽量使用图表的形式。
2.4结构
用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系.
2.5功能需求与程序的关系
本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
程序1
程序2
……
程序n
功能需求1
√
功能需求2
√
……
功能需求n
√
√
2.6人工处理过程
说明在本软件系统的工作过程中不得不包含的人工处理过程(如果有的话)。
3接口设计
3.1用户接口
说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。
3.2外部接口
说明本系统同外界的所有接口的安排,包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。
3.3内部接口
说明本系统之内的各个系统元素之间的接口的安排。
4运行设计
4.1运行模块组合
说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块和支持软件。
4.2运行控制
说明每一种外界的运行控制的方式方法和操作步骤。
4.3运行时间
说明每种运行模块组合将占用各种资源的时间。
5系统数据结构设计(因为未学数据库课程,此部分可省略)
5.1逻辑结构设计要点
给出本系统内所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录的标识、定义、长度及它们之间的层次的或表格的相互关系。
5.2物理结构设计要点
给出本系统内所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理
关系(索引、设备、存储区域)、设计考虑和保密条件。
5.3数据结构与程序的关系
说明各个数据结构与访问这些数据结构的形式:
6系统出错处理设计
6.1出错信息
用一览表的方式说朗每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
6.2补救措施
说明故障出现后可能采取的变通措施,包括:
a.后备技术说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术;
b. 降效技术说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些
部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录;
c.恢复及再启动技术说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行