软件工程课程设计要求.docx
《软件工程课程设计要求.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计要求.docx(16页珍藏版)》请在冰豆网上搜索。
![软件工程课程设计要求.docx](https://file1.bdocx.com/fileroot1/2023-2/24/b0f0376e-c825-4b47-92c5-515448f22485/b0f0376e-c825-4b47-92c5-515448f224851.gif)
软件工程课程设计要求
《软件工程》课程设计要求
一、分组
3~5人一组,由班长负责分组,每组指定一名组长。
注:
以java、方向的同学为主来分组,前台和信息技术方向的同学穿插在各组。
java、这两个方向的同学不要放在一组。
二、选择题目
可从附录三中选题,也可选java、jsp、等课程设计中老师指定的题目,也可小组自选题目(应选小型软件:
代码2000行左右,如小型数据库应用系统、小型网络应用软件等)。
三、选择软件开发方法
从附录一中选择相应的软件开发办法,按相应方法的规范完成软件开发。
四、按照相应方法完成系统分析、设计,并完成相应文档。
1、《软件工程》课程设计结束,各小组须提交如下文档:
若选择方法一、三,则需做完详细设计,需提交如下文档:
1)《关于软件性质、规模、目标的报告书》
2)《可行性研究报告》
3)《项目开发计划》
4)《需求规格说明书》
5)《总体设计说明书》
6)《详细设计说明书》
若选择方法二,则需做完总体设计,需提交如下文档:
1)《关于软件性质、规模、目标的报告书》
2)《可行性研究报告》
3)《项目开发计划》
4)《需求规格说明书》
5)《总体设计说明书》
以上文档撰写规范见附录三。
2、《软件工程》课程设计结束时,个人须提交的文档:
《课程设计报告》,其中详细叙述自己所完成的工作。
五、成绩评定
《软件工程》课程设计成绩=文档成绩+浮动分
注:
文档成绩由教师根据各小组所提交的份文档的完整性、质量、规范性打分;浮动分由组长根据每人贡献所给参考分及教师根据每人课程设计报告所给分综合评定给出。
注:
《软件工程》课程设计时间:
19~20周
若选择方法一、三完成系统分析与设计,小组每个成员都要参与功能分析、模块设计;若选择方法二完成系统分析与设计,小组每个成员都要参与功能分析、实体类类图的创建、用例分析模型或用例设计模型的建立(用例分析模型或用例设计模型二者选其一即可)。
(方法中标红部分)
附录一:
软件开发方法
一、传统的软件开发方法(结构化的软件开发方法)
适用于一般软件,特别适合于如下情况:
1.数据结构+算法的程序设计思想。
2.非交互式软件(软件的执行过程主要不是由用户控制,而是由程序控制,并按序执行。
)
如:
大型工程计算软件、实时数据跟踪软件、自动化控制系统、系统软件、数据库应用系统……
3.面向过程的结构化语言:
C语言、Pascal语言……
二、面向对象的软件开发方法
适用于一般软件,特别适合于如下情况:
1.类+消息的程序设计思想。
2.交互式软件(软件的执行过程完全用户交互控制,而不是由程序控制。
)
如:
基于网络的完全由用户交互控制程序执行过程的应用软件和系统软件。
3.面向对象的语言:
Java、C++、C#……
三、传统与面向对象方法相结合的实用方法
适用于一般软件。
一、传统软件开发方法(瀑布模型)
一、问题定义
确定目标系统的性质、规模、目标。
二、可行性研究
(一)从经济、技术、法律、操作角度分析系统可行性。
(二)若可行,则制订项目开发计划(项目成本、进度安排、分组情况……)
三、需求分析
(一)业务分析
1.业务描述
2.建立业务模型(SFD)(可选)
(二)功能分析
1.功能描述
2.建立系统功能模型(DFD、数据字典)
(三)数据分析
建立系统的数据模型(E-R图)(可选)
(四)建立系统的动态模型(STD、时序图、Petri网)(可选)
四、总体设计
(一)软件运行环境
(二)软件架构模式
(四)建立软件结构图(软件结构图反应模块及模块间的调用关系,每个模块为一个独立的功能)
(五)设计数据库的表结构(每张表应规范到3NF,每张表应包含表名,字段,字段类型、主键、外键)(可选)
五、详细设计
(一)模块设计(设计每个模块的界面及算法)
模块界面:
可将所设计界面抓图。
模块算法:
叙述模块功能。
模块的输入。
模块的处理。
模块的输出。
使用如下工具描述算法:
流程图、N-S图、PAD图、活动图
PDL
判定表/树(可选)
※一个功能模块的实现过程中可能包含多个函数、过程、类,应列出主要的函数、过程或类,对于其中的一些重要的、难度较大的函数、过程、类中的方法的实现算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具进行详细设计。
(可选)(见例2)
(二)建立数据库、录入数据
六、实现
(一)编码(算法→源代码)
(二)测试
参考案例:
1、图书馆管理系统的开发
2、网上商城管理系统的开发
二、面向对象软件开发方法(喷泉模型)
一、问题定义
二、可行性研究
三、面向对象分析
(一)业务分析
1、业务描述
2、建立系统业务模型(可选)
★可选择顺序图、活动图描述系统整体业务流程。
★可选择活动图描述系统参与者的行为。
(二)功能分析,建立系统功能模型(用例图、用例描述)
1、建立需求结构
2、建立功能模型
为需求结构中每个最小的需求单元建立一个功能模型:
(1)功能描述
(2)用例图
(3)用例叙述
(三)对象分析,建立系统初步的对象模型(实体类的类图)
(四)用例分析,建立用例分析模型
确定用例的实现策略。
★可选择顺序图对用例进行分析。
(粗略的顺序图,图中的消息用粗略的方法表达)
★可选择活动图对用例进行分析。
(五)扩充和完善,建立系统完整的对象模型(平台无关对象模型)
确定系统的实现策略(系统中包含哪些类,不同的类起什么作用)。
★对于系统中重要的类,用状态图分析其状态变迁。
四、面向对象的总体设计
(一)扩充、完善功能模型(用例图)
(二)软件运行环境
(三)软件架构模型
1、软件架构模式
2、软件分层架构(反应了系统的实现策略)
3、软件逻辑结构(子系统结构,每个子系统对应需求结构中一个最小的需求单元)
(四)扩充和完善对象模型,建立平台相关对象模型。
(五)用例设计,建立用例设计模型
★可选择顺序图对每个用例进行设计(详细的顺序图,图中的消息用准确的方法表达)。
★可选择活动图对每个用例进行设计。
(五)若某些类的对象须长期存储,则定义存储方式
一般用数据库存储,建立数据库设计模型。
1、数据库的表结构(实体类→表→3NF(每张表应包含表名、字段、字段类型、主键、外键))
2、数据库的逻辑结构(表之间的关系)(可选)
(七)设计人机交互界面,建立界面设计模型(可选)
1、界面结构模型
2、屏幕界面模型
(八)建立组件图(可选)
(九)建立部署模型
五、面向对象的详细设计
(一)确定每个用例的实现算法(实现用例的类中服务的算法、关联的算法),描述算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具。
(二)建立数据库、录入数据
六、面向对象实现
(一)编码算法→源代码
(二)测试
参考案例:
速快餐系统的开发
2.在线书店的开发
3.C++类库管理系统的开发
三、传统与面向对象方法相结合的实用方法
一、问题定义
二、可行性研究
三、需求分析
(一)业务分析方法一:
业务描述
方法二:
业务描述、业务模型(系统流图)
方法三:
业务描述、业务模型(可选择顺序图、活动图描述系统整体业务流程;可选择活动图描述系统参与者的行为。
)
方法一:
功能描述、DFD、数据字典
(二)功能分析方法二:
功能描述、用例图、用例描述
方法三:
用语言详尽地叙述功能
(三)数据分析方法一:
E-R图
方法二:
实体类的类图
(四)动态分析:
建立系统动态模型(STD、时序图、Petri网)(可选)
四、总体设计
(一)软件运行环境
(二)软件架构模式
(三)建立软件结构图(功能模块图)
(四)设计数据库的表结构方法一:
E-R图→表→3NF
方法二:
实体类→表→3NF
五、详细设计
(一)模块设计:
设计模块的界面及算法。
方法一:
模块界面:
可将所设计界面抓图。
模块算法:
叙述模块功能。
模块的输入。
模块的处理。
模块的输出。
※一个功能模块的实现过程中可能包含多个函数、过程、类,应列出主要的函数、过程或类,对于其中的一些重要的、难度较大的函数、过程、类中的方法的实现算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具进行详细设计。
(可选)
方法二:
模块界面:
可将所设计界面抓图。
模块算法:
叙述模块功能。
模块的输入。
模块的处理。
模块的输出。
使用如下工具描述算法:
流程图、N-S图、PAD图、活动图
PDL
判定表/树(可选)
※一个功能模块的实现过程中可能包含多个函数、过程、类,应列出主要的函数、过程或类,对于其中的一些重要的、难度较大的函数、过程、类中的方法的实现算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具进行详细设计。
(可选)
方法三:
(特别适合于用面向对象的语言实现的软件)
模块界面:
可将所设计界面抓图。
模块算法:
★可选择顺序图来分析、设计每个用例。
用顺序图粗略地描述用例(顺序图中的消息用粗略的方法表达)→用顺序图详细地描述用例(顺序图中的消息用准确地方法表达)
★可选择活动图来分析、设计每个用例。
★可选择状态图描述关键类。
※一个功能模块的实现过程中可能包含多个函数、过程、类,应列出主要的函数、过程或类,对于其中的一些重要的、难度较大的函数、过程、类中的方法的实现算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具进行详细设计。
(可选)
(二)建立数据库、录入数据
六、实现
(一)编码
(二)测试
附录二:
文档撰写规范
一、《关于软件性质、规模、目标的报告书》
内容:
(一)软件性质。
(二)软件规模。
(三)开发该软件要实现的目标。
(四)题目来源、选题背景。
二、《可行性研究报告》
内容:
(一)技术可行性:
分析小组人员现有技术水平能否开发出该软件。
(二)经济可行性:
进行成本——效益分析,简单估算开发该软件须投入的成本(软件开发所需的软、硬件资源及人力资源的费用),简单估算软件投入使用后会带来的效益,比较成本和效益。
(三)法律可行性:
该软件的选题、内容、开发所用的核心技术是否涉及到侵权、妨碍他人等法律及道义问题。
(四)操作可行性:
软件所预定的操作方式(如单机或网络方式)是否符合用户单位的实际情况,是否可被用户单位接受。
(五)结论:
根据上述四个方面可行性研究的结果,权衡该软件是否能在给定的时间及资源的限制下如期开发出来。
三、《项目开发计划》
(一)系统概述:
项目目标、主要功能、系统特点。
(二)系统资源:
开发和运行该软件所需要的软、硬件资源及人力资源。
(注:
人力资源须写明小组人数、组长、各小组成员的技术特长及责任)
(三)成本预算:
分阶段的人员费用,所须软、硬件资源费用、机时费用及其他费用。
(四)进度安排:
各阶段起止时间,完成的文档,文档验证方式及要交付的产品清单。
四、《需求规格说明书》
根据所选择的软件开发方法,完成方法中需求分析阶段所要求的内容。
五、《总体设计说明书》
根据所选择的软件开发方法,完成方法中总体设计阶段所要求的内容。
六、《详细设计说明书》
根据所选择的软件开发方法,完成方法中详细设计阶段所要求的内容。
注:
文档中所涉及的图可用MicrosoftVisio、RationalRose等工具绘制,绘图后将图保存为.JPG文件,以图片形式插入文档中。
附录三:
《软件工程》课程设计题目
题目1:
远程教学平台。
建立一个分布式、互动式的远程教学平台,为教师教学、学生学习提供比较完整的教学解决方案。
其主要功能包括通知发布、参考资料发布、电子课件发布、学生作业提交、帮助教师批改学生作业、帮助学生复查批改后的作业。
题目2:
网上机票预订系统。
开发一个基于web的网上机票查询和销售系统,该系统可以录入航班和机票信息,用户可以查询航班时刻表、查询机票、可用信息和机票折扣信息,用户可以通过web订票。
题目3:
网上投稿系统。
开发一个基于web的网上投稿系统,该系统可以接受作者的电子投稿,以及作者信息(如姓名、单位、通信地址、电话、E-mail等)注册,并能提供投稿人查询稿件处理情况,以及在稿件处理后的情况(退稿、录用、修改后再审等),能自动发送E-mail通知投稿人。
题目4:
BBS系统。
开发一个基于web的BBS系统,包含一般BBS所具有的功能,如用户注册、用户信息管理、发帖功能、帖子管理、主题词查询、用户信息修改和查询等。
题目5:
在线拍卖系统。
所有用户均可浏览拍卖目录,创建账户,注册。
已注册用户可登录系统管理账户(即更新、维护账户中的信息)。
注册用户又可分为买主和卖主。
卖主可登录系统并创建拍卖项,买主可登录系统后竞拍(每次竞拍价应高于上一次竞拍价)。
当一项拍卖的结束时间到达时(拍卖时间由系统规定),系统终结拍卖,此时买主、卖主被告知拍卖已成交、成交价格及双方的联系方式,以便真正完成这笔交易,系统将从卖主的信用卡(账户)中收取交易的相关费用,如果卖主的信用卡不能付款,系统将针对该卖主建立一个未付款记录。
题目6:
期刊管理系统
期刊信息是图书馆、企事业单位资料室等进行期刊管理所必需而频繁使用的信息资料。
期刊管理系统的目的是实现期刊登记、借阅、查询等业务的自动化管理,以提高工作效率。
要求系统简单实用,即可单独使用,也可以作为其他大型应用系统的一个组成部分来使用。
该系统的主要功能如下:
1)读者信息管理:
添加读者信息,更改读者信息,删除读者信息。
2)期刊管理:
管理所有种类期刊的基本信息,管理员登记新到的期刊信息,包括刊号、年、期、数量和相应的文章信息。
3)期刊借阅:
处理读者的期刊借阅、归还业务。
4)期刊查询:
查询期刊的库存、某期刊的去向信息。
5)期刊的征订:
完成下一年度预订的期刊目录的生成。
6)期刊内容登记:
将新到的每本期刊的所有文章的信息(文章题目、作者姓名、作者单位、关键词等)登记到数据库中。
7)期刊内容查询:
输入关键词,查询出包括这些关键词的文章的题目、登载的期刊信息(名称、年、期)等。
题目7:
学生信息管理系统
拟开发某学校学生信息管理系统,系统主要功能如下:
1)学籍信息管理:
学籍信息的添加、修改、删除、查询。
2)班级信息管理:
班级信息的添加、修改、删除、查询。
3)课程信息管理:
年级课程设置、课程信息添加、修改、删除、查询。
4)成绩信息管理:
学生成绩添加、修改、删除、查询、统计。
5)用户管理。
题目8:
员工培训管理系统
拟开发某企业员工培训管理系统,系统功能如下:
1)培训需求的管理
2)培训计划的管理
3)学员基本信息管理:
员工基本信息(包括工号、姓名、职称、岗位、已培训过的课程和成绩、培训计划等)的添加、修改、删除、查询。
4)课程信息管理:
培训课程信息(包括课名、课时、种类等)的添加、修改、删除、查询。
5)成绩信息管理:
学员学习某课程成绩的添加、修改、删除、查询。
6)培训效果评价。
7)培训计划实施情况管理。
8)培训资源管理:
资源包括教材、师资、场地等。
9)系统管理:
用户管理、权限管理。
题目9:
超市管理系统
拟开发超市管理系统:
系统用户分为管理员和一般员工,功能如下:
1)商品信息管理:
商品种类的增、删、改、查询;商品信息的增、删、改、查询;
2)员工信息管理:
员工信息的增、删、改、查询。
3)商品进货管理。
4)商品销售管理。
5)商品库存管理:
库存查询、库存报警(当某商品库存量大于某值或小于某值时须报警),库存盘点(统计某个时间段内,某个商品的营业额)。
6)供应商管理。
7)系统管理:
修改密码,添加管理员等。
员工功能:
1)商品信息管理:
商品信息查询。
2)商品销售管理:
商品销售情况、个人销售业绩查询。
3)商品库存管理:
库存查询。
题目10:
花店网上订花系统
用户可浏览店内所有鲜花,可查看鲜花详细信息,可搜索某种鲜花,可将选中鲜花放入购物车,结账时须检测用户身份,只有注册会员才可结帐订花。
管理员可对商品种类、商品信息进行管理,可进行订单管理,可对注册用户进行管理。
注册用户可查看自己订单的处理情况。
题目11:
美发店管理系统
完成美发店员工的日常管理及,提供服务,所售物品的入,出库管理,及用户的管理(可考虑设计不同级别的用户),能辅助统计美发店的经营情况及员工考核,也可查询用户的消费情况。
题目12:
课程设计管理系统
老师可上传题目及要求,同学们完成题目选择及分组登记,老师可查看同学上传的完成情况,并给出成绩,同学可查询。
(可考虑实现问题留言及回复)
题目13:
酒店餐饮管理系统
可提供点菜及包房管理(为方便开发,可以只考虑包房点菜)。
辅助实现金额核算及营业统计。
题目14:
酒店客房管理系统
提供房间管理,订房,入住,换房,退房,结账等基本客房管理功能。
题目15:
学生选课系统
实现学生信息管理和选课查询,包括学生的基本信息,如班级、学号、姓名及课程基本信息,并支持完成课程选择及查询。
题目16:
个人网站
实现网站布局及发布,完成个人信息的上传及编辑,支持访问浏览。
(可考虑扩展留言功能)。
题目17:
包头市旅游信息网站的设计与实现
本系统的设计与实现是为了给游戏爱好者提供一个交流平台。
基本功能要实现旅游信息的发布、心得体会及疑难问题的发布、回复及在线讨论。