滨州学院
软件工程课程设计
(2010——2011年度第二学期)
题 目
专 业 班 级 小组成员
好书在线
计算机科学与技术 2009级计本四班 李丽丽2009022899 窦凤平2009022895
二〇一一年十二月
一日
《软件工程》课程设计
成 绩 评定
成绩
指导教师: 闫晓薇
摘要:
随着Internet技术的发展,人们的日常生活已经离不开网络。未来社会人们的生活和工作将越来越依赖于数字技术的发展,越来越数字化、网络化、电子化、虚拟化。Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。
本设计尝试用ASP.NET在网络上架构一个网上书店,以使每一位顾客不用出门在家里就能够通过上网来轻松购书。本文从理论和实践两个角度出发,对一个具有数据挖掘功能网上书店进行设计与实现分析。论文首先较为详尽地介绍了面向对象分析与设计的有关概念与技术,特别深入介绍了在本系统中运用到的知识,如:面向对象的分析设计流程;系统中所用到的开发技术ASP.NET以及ADO.NET的特点、结构框架以及使用方法。接着对书店系统的可行性进行了分析,然后对系统的设计思想、设计目标与系统的整体结构进行了明确的规划。最后对系统的主要页面、数据库、应用程序的设计与实现作了较为详细的讲解。 本网上书店系统是在Visual Studio.Net 平台上运用ASP.NET技术来实现的。其主要功能有:用户管理,新书上架,分类查找,图书检索,图书收藏夹,购买流程,销售排行,图书评论,网站管理等。论文在撰写过程中,力求将理论与实践应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现到这些知识与技术在本系统中的应用与实现。 关键词:面向对象分析与设计,ASP.NET,ADO.NET
一、课程设计的目的与要求
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:
1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编
码和测试方面的知识;
2. 熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程; 3. 进一步加强和提高软件工程文档的编写能力; 4. 培养协作能力和团队精神。
二、设计正文
1. 概述
1.1课题题目:好书在线系统 1.2系统的主要目标:
本系统目标是实现选课系统所需的各种基本功能,能够很好的实现在线购书、评论、查看书籍信息等功能,还可以实现管理员进行对书籍的管理、对评论的管理以及对于订单的管理等功能。 1.3 系统的开发环境及运行环境:
操作系统: Windows XP Pro SP2 建模工具: Rational Rose 2003
数据库系统:SQL Server2005 开发工具: Visual Studio 2008 Web服务器:IIS+ASP.NET 2.0平台
2. 系统需求分析
随着网络在中国的广泛普及,网络支付手段的逐步完善,越来越多的中国人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。传统书店的购书观念正在被网上书店这一方便快捷的购书方式所冲击。网上书店在国际互联网上可以实现的商务功能已经越来越多样化,从最开始的信息发布功能,到现在的在线图书展示功能、在线洽谈业务功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等,几乎传统书店所提供的功能都可以在互联网上进行电子化的高效运作,而借助网络的跨地域特点,更是将传统书店的地域限制加以突破,全国各地的读者都可以通过网络在同一个网上书店购书,从而大大增加了客户的数量。为了使网上书店的投入回报和管理效益最大化,在对网上书店进行系统开发之前,必须对一系列问题进行科学的论证,如网上书店的需求分析、网上书店总体规划、网上书店系统的功能和实施方案、网上书店的传播与推广、运行网上书店系统的软件和硬件配置、网上书店的管理系统和管理方法等等。 综上所述,网上书店已经成为互联网时代购书者的最佳选择,必将获得巨大的成功。 E-R图
图2-1 学生选课系统E-R图
E-R说明: 2.1 数据流图
图2-2 学生选课系数据流图
3. 系统总体设计 3.1 设计问题域子系统
学生选课系统是实现学生选课退课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统有前台和后台两部分,共分为4个模块:管理员模块,教师模块,学生模块和公有模块,分别用于完成各自的功能。以下为学生选课系统总体设计图和各功能模块说明:
(1)总体设计图
(2)各模块功能
表3-1 学生选课系统功能模块表
3.2 设计数据管理子系统
(1)数据库表
表3-2 数据库表
(2)数据库表结构
①学生表Student的详细数据字段:
②教师表Teacher的详细数据字段:
③课程表Course的详细数据字段:
④选课表Elect的详细数据字段:
⑤系统管理员表Users的详细数据字段:
⑥系院表Depart的详细数据字段:
3.3 设计人机交互子系统
(1)用户分类
本系统的用户可分为三类: ①管理员用户; ②教师用户; ③学生用户。 (2)用户描述
①管理员用户的描述:
管理员用户在整个选课系统中起到管理和维护的作用,对学生和教师的信息进行管理和维护以及开设课设等职责。 ②教师用户的描述:
教师用户在本系统中具有管理选修了自己开设的课程的学生的权限,查看选修了自己开设课程的学生信息有及提交学生成绩。 ③学生用户的描述:
选课系统主要是针对管理学生的,学生在本系统中具有修改自己的信息,以及选课和退选的功能。
(3)设计命令层次
①系统的人机交互子系统的内容和准则:
本学生选课系统的人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按②通过采用树形结构,细化命令的组织方式,如下:
4.2 用户密码修改流程图图4-1 系统用户登录流程图
图4-2 用户密码修改流程图
4.3教师提交成绩流程图
图4-3教师提交成绩流程图
4.4管理员添加课程流程图
图4-4 管理员添加课程流程图
4.5学生选修课程流程图
图4-5 学生选修课程流程图
5. 系统实现
本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。
5.1 Database类主要是与数据库连接,提供数据库操作功能,代码如下:
namespace MyElectCourse.DAL {
public class Database {
protected string connectionString;
protected SqlConnection connection = null;
public Database() {
connectionString =
ConfigurationManager.ConnectionStrings[
~Database() {
if (connection != null) {
connection = null; }
}
protected void Open() {
if (connection == null) {
connection = new SqlConnection(connectionString); }
if (connection.State.Equals(ConnectionState.Closed)) {
connection.Open(); } }
protected void Close() {
if (connection != null) {
connection.Close(); } }
public int ExecuteSQL(string sqlstr) {
int count = -1; this.Open();
SqlCommand cmd = new SqlCommand(sqlstr, connection); count = cmd.ExecuteNonQuery(); this.Close();
return count; }
public DataSet GetDataSet(string sqlstr) {
this.Open();
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(sqlstr,connection); adapter.Fill(ds); this.Close();
return ds; }
public DataTable GetDataTable(string sqlstr) {
DataSet ds = this.GetDataSet(sqlstr); DataTable dt = new DataTable(); if (ds.Tables.Count > 0) {
dt = ds.Tables[0]; }
return dt; }
public SqlDataReader GetDataReader(string sqlstr) {
this.Open();
SqlCommand cmd = new SqlCommand(sqlstr, connection);
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //this.Close(); return sdr; } } }
5.2 UserBase类是所有系统角色用户的基类,完成用户登录验证与修改密码的功能,代码如下:
namespace MyElectCourse.BLL {
public class UserBase {
private string userID; public string UserID {
get { return userID; } set { userID = value; } }
private string userPSW; public string UserPSW {
get { return userPSW; } set { userPSW = value; } }
public string loginCheck(string uid, string upwd, string urole) {
String selectStr = String.Empty; switch (urole) {
case
case
selectStr =
case
selectStr =
return null; }
Database db = new Database();
DataTable dt = db.GetDataTable(selectStr); if (dt.Rows.Count > 0) //如果该用户存在 {
if (dt.Rows[0][1].ToString().Equals(upwd)) //密码正确 {
switch (urole) {
case
case
case
else //密码错误,给出提示信息! {
return
else //用户不存在或用户名输入错误 {
return
public string modifyPWD(String urole, String uid, String oldPwd, String newPwd) {
String updateStr = String.Empty; switch (urole) {
case
updateStr =
case
updateStr =
case
updateStr =
break;
}
string ucheck = this.loginCheck(uid, oldPwd, urole);
if (ucheck.Equals(
int t = new Database().ExecuteSQL(updateStr); //根据修改后返回的结果给出提示 if (t > 0) {
return
return
return
5.3 系统登录页面,代码及运行效果如下:
密 码:
图5-1系统登录页面
5.4 学生用户选课界面代码及运行效果图如下:
=
Width=
DataSourceID=
Font-Size=
SortExpression=
SortExpression=
SelectCommand=
Width=
DataSourceID=
DataKeyNames=
Visible=
ReadOnly=
SortExpression=
ConnectionString=
图5-2 学生选课界面
5.5 教师用户提交成绩界面代码及运行效果如下:
=
提交成绩
BorderColor=
GridLines=
runat=
ImageUrl=
OnClick=
ForeColor=
NavigateUrl=
NavigateUrl=
图5-3 教师用户提交成绩界面
5.6 管理员用户添加课程代码及运行效果如下:
课程详细信息
ForeColor=
课程名称:
教师姓名:
上课时间:
上课地点:
课程简介:
BorderColor=
图5-4 管理员添加课程界面
6. 系统测试
在系统测试中,我们首先对各个子模块进行单元测试,即把每一个模块作为一个单独的实体来测试,保证每个模块作为一个单元能正确运行。然后在完成所有模块后,我们将各子模块集成起来,再对它进行系统测试,找出系统设计或编码上的错误,以及验证系统是否实现了指定的功能。最后找几个其他的同学再对系统进行黑盒子测试,验证系统是否满足用户的功能需求。
在测试的过程,特别是在集成测试之后,发现了许多问题及功能缺陷,最后经过修改调试后都解决了。比如,有一个问题是,在删除教师用户之后,系统里还剩有许多与该教师有关的冗余记录,造成系统混乱。在进行了分析之后,发现是因为在删除教师用户时,没有对与他所关联的记录进行删除造成的,在添加了对其关联记录的级联删除之后,问题得到了解决。
三、课程设计总结或结论
1. 通过这次软件工程课程设计的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实
际能力,培养工程设计能力和综合分析、解决问题的能力。
1.1
1.2
1.3
1.4 学习和实践了分析和设计软件系统的各种知识,包括面向对象的系统分析与设计,编码和测试方面的知识。 掌握了自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程。 加深掌握了.Net平台的三层架构模式设计。 进一步加强和提高软件工程文档的编写能力。
2. 本系统基本实现了关键的功能模块,在功能上基本满足了用户的需求,但是由于时间较紧,有些
模块以及整个系统还有许多不完善的地方,如界面不太美观,操作性不太友好等。
四、参考文献
[1] 张海藩.软件工程导论(第4 版).北京:清华大学出版社,2005
[2] 刁成嘉.UML系统建模与分析设计.北京:机械工业出版社,2007
[3] UML基础与Rose建模案例.北京:人民邮电出版社,2004
[4] 刘乃丽 ASP.NET 2.0 网络开发详解.北京:电子工业出版社,2008
滨州学院
软件工程课程设计
(2010——2011年度第二学期)
题 目
专 业 班 级 小组成员
好书在线
计算机科学与技术 2009级计本四班 李丽丽2009022899 窦凤平2009022895
二〇一一年十二月
一日
《软件工程》课程设计
成 绩 评定
成绩
指导教师: 闫晓薇
摘要:
随着Internet技术的发展,人们的日常生活已经离不开网络。未来社会人们的生活和工作将越来越依赖于数字技术的发展,越来越数字化、网络化、电子化、虚拟化。Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。
本设计尝试用ASP.NET在网络上架构一个网上书店,以使每一位顾客不用出门在家里就能够通过上网来轻松购书。本文从理论和实践两个角度出发,对一个具有数据挖掘功能网上书店进行设计与实现分析。论文首先较为详尽地介绍了面向对象分析与设计的有关概念与技术,特别深入介绍了在本系统中运用到的知识,如:面向对象的分析设计流程;系统中所用到的开发技术ASP.NET以及ADO.NET的特点、结构框架以及使用方法。接着对书店系统的可行性进行了分析,然后对系统的设计思想、设计目标与系统的整体结构进行了明确的规划。最后对系统的主要页面、数据库、应用程序的设计与实现作了较为详细的讲解。 本网上书店系统是在Visual Studio.Net 平台上运用ASP.NET技术来实现的。其主要功能有:用户管理,新书上架,分类查找,图书检索,图书收藏夹,购买流程,销售排行,图书评论,网站管理等。论文在撰写过程中,力求将理论与实践应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现到这些知识与技术在本系统中的应用与实现。 关键词:面向对象分析与设计,ASP.NET,ADO.NET
一、课程设计的目的与要求
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:
1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编
码和测试方面的知识;
2. 熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程; 3. 进一步加强和提高软件工程文档的编写能力; 4. 培养协作能力和团队精神。
二、设计正文
1. 概述
1.1课题题目:好书在线系统 1.2系统的主要目标:
本系统目标是实现选课系统所需的各种基本功能,能够很好的实现在线购书、评论、查看书籍信息等功能,还可以实现管理员进行对书籍的管理、对评论的管理以及对于订单的管理等功能。 1.3 系统的开发环境及运行环境:
操作系统: Windows XP Pro SP2 建模工具: Rational Rose 2003
数据库系统:SQL Server2005 开发工具: Visual Studio 2008 Web服务器:IIS+ASP.NET 2.0平台
2. 系统需求分析
随着网络在中国的广泛普及,网络支付手段的逐步完善,越来越多的中国人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。传统书店的购书观念正在被网上书店这一方便快捷的购书方式所冲击。网上书店在国际互联网上可以实现的商务功能已经越来越多样化,从最开始的信息发布功能,到现在的在线图书展示功能、在线洽谈业务功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等,几乎传统书店所提供的功能都可以在互联网上进行电子化的高效运作,而借助网络的跨地域特点,更是将传统书店的地域限制加以突破,全国各地的读者都可以通过网络在同一个网上书店购书,从而大大增加了客户的数量。为了使网上书店的投入回报和管理效益最大化,在对网上书店进行系统开发之前,必须对一系列问题进行科学的论证,如网上书店的需求分析、网上书店总体规划、网上书店系统的功能和实施方案、网上书店的传播与推广、运行网上书店系统的软件和硬件配置、网上书店的管理系统和管理方法等等。 综上所述,网上书店已经成为互联网时代购书者的最佳选择,必将获得巨大的成功。 E-R图
图2-1 学生选课系统E-R图
E-R说明: 2.1 数据流图
图2-2 学生选课系数据流图
3. 系统总体设计 3.1 设计问题域子系统
学生选课系统是实现学生选课退课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统有前台和后台两部分,共分为4个模块:管理员模块,教师模块,学生模块和公有模块,分别用于完成各自的功能。以下为学生选课系统总体设计图和各功能模块说明:
(1)总体设计图
(2)各模块功能
表3-1 学生选课系统功能模块表
3.2 设计数据管理子系统
(1)数据库表
表3-2 数据库表
(2)数据库表结构
①学生表Student的详细数据字段:
②教师表Teacher的详细数据字段:
③课程表Course的详细数据字段:
④选课表Elect的详细数据字段:
⑤系统管理员表Users的详细数据字段:
⑥系院表Depart的详细数据字段:
3.3 设计人机交互子系统
(1)用户分类
本系统的用户可分为三类: ①管理员用户; ②教师用户; ③学生用户。 (2)用户描述
①管理员用户的描述:
管理员用户在整个选课系统中起到管理和维护的作用,对学生和教师的信息进行管理和维护以及开设课设等职责。 ②教师用户的描述:
教师用户在本系统中具有管理选修了自己开设的课程的学生的权限,查看选修了自己开设课程的学生信息有及提交学生成绩。 ③学生用户的描述:
选课系统主要是针对管理学生的,学生在本系统中具有修改自己的信息,以及选课和退选的功能。
(3)设计命令层次
①系统的人机交互子系统的内容和准则:
本学生选课系统的人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按②通过采用树形结构,细化命令的组织方式,如下:
4.2 用户密码修改流程图图4-1 系统用户登录流程图
图4-2 用户密码修改流程图
4.3教师提交成绩流程图
图4-3教师提交成绩流程图
4.4管理员添加课程流程图
图4-4 管理员添加课程流程图
4.5学生选修课程流程图
图4-5 学生选修课程流程图
5. 系统实现
本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。
5.1 Database类主要是与数据库连接,提供数据库操作功能,代码如下:
namespace MyElectCourse.DAL {
public class Database {
protected string connectionString;
protected SqlConnection connection = null;
public Database() {
connectionString =
ConfigurationManager.ConnectionStrings[
~Database() {
if (connection != null) {
connection = null; }
}
protected void Open() {
if (connection == null) {
connection = new SqlConnection(connectionString); }
if (connection.State.Equals(ConnectionState.Closed)) {
connection.Open(); } }
protected void Close() {
if (connection != null) {
connection.Close(); } }
public int ExecuteSQL(string sqlstr) {
int count = -1; this.Open();
SqlCommand cmd = new SqlCommand(sqlstr, connection); count = cmd.ExecuteNonQuery(); this.Close();
return count; }
public DataSet GetDataSet(string sqlstr) {
this.Open();
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(sqlstr,connection); adapter.Fill(ds); this.Close();
return ds; }
public DataTable GetDataTable(string sqlstr) {
DataSet ds = this.GetDataSet(sqlstr); DataTable dt = new DataTable(); if (ds.Tables.Count > 0) {
dt = ds.Tables[0]; }
return dt; }
public SqlDataReader GetDataReader(string sqlstr) {
this.Open();
SqlCommand cmd = new SqlCommand(sqlstr, connection);
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //this.Close(); return sdr; } } }
5.2 UserBase类是所有系统角色用户的基类,完成用户登录验证与修改密码的功能,代码如下:
namespace MyElectCourse.BLL {
public class UserBase {
private string userID; public string UserID {
get { return userID; } set { userID = value; } }
private string userPSW; public string UserPSW {
get { return userPSW; } set { userPSW = value; } }
public string loginCheck(string uid, string upwd, string urole) {
String selectStr = String.Empty; switch (urole) {
case
case
selectStr =
case
selectStr =
return null; }
Database db = new Database();
DataTable dt = db.GetDataTable(selectStr); if (dt.Rows.Count > 0) //如果该用户存在 {
if (dt.Rows[0][1].ToString().Equals(upwd)) //密码正确 {
switch (urole) {
case
case
case
else //密码错误,给出提示信息! {
return
else //用户不存在或用户名输入错误 {
return
public string modifyPWD(String urole, String uid, String oldPwd, String newPwd) {
String updateStr = String.Empty; switch (urole) {
case
updateStr =
case
updateStr =
case
updateStr =
break;
}
string ucheck = this.loginCheck(uid, oldPwd, urole);
if (ucheck.Equals(
int t = new Database().ExecuteSQL(updateStr); //根据修改后返回的结果给出提示 if (t > 0) {
return
return
return
5.3 系统登录页面,代码及运行效果如下:
密 码:
图5-1系统登录页面
5.4 学生用户选课界面代码及运行效果图如下:
=
Width=
DataSourceID=
Font-Size=
SortExpression=
SortExpression=
SelectCommand=
Width=
DataSourceID=
DataKeyNames=
Visible=
ReadOnly=
SortExpression=
ConnectionString=
图5-2 学生选课界面
5.5 教师用户提交成绩界面代码及运行效果如下:
=
提交成绩
BorderColor=
GridLines=
runat=
ImageUrl=
OnClick=
ForeColor=
NavigateUrl=
NavigateUrl=
图5-3 教师用户提交成绩界面
5.6 管理员用户添加课程代码及运行效果如下:
课程详细信息
ForeColor=
课程名称:
教师姓名:
上课时间:
上课地点:
课程简介:
BorderColor=
图5-4 管理员添加课程界面
6. 系统测试
在系统测试中,我们首先对各个子模块进行单元测试,即把每一个模块作为一个单独的实体来测试,保证每个模块作为一个单元能正确运行。然后在完成所有模块后,我们将各子模块集成起来,再对它进行系统测试,找出系统设计或编码上的错误,以及验证系统是否实现了指定的功能。最后找几个其他的同学再对系统进行黑盒子测试,验证系统是否满足用户的功能需求。
在测试的过程,特别是在集成测试之后,发现了许多问题及功能缺陷,最后经过修改调试后都解决了。比如,有一个问题是,在删除教师用户之后,系统里还剩有许多与该教师有关的冗余记录,造成系统混乱。在进行了分析之后,发现是因为在删除教师用户时,没有对与他所关联的记录进行删除造成的,在添加了对其关联记录的级联删除之后,问题得到了解决。
三、课程设计总结或结论
1. 通过这次软件工程课程设计的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实
际能力,培养工程设计能力和综合分析、解决问题的能力。
1.1
1.2
1.3
1.4 学习和实践了分析和设计软件系统的各种知识,包括面向对象的系统分析与设计,编码和测试方面的知识。 掌握了自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程。 加深掌握了.Net平台的三层架构模式设计。 进一步加强和提高软件工程文档的编写能力。
2. 本系统基本实现了关键的功能模块,在功能上基本满足了用户的需求,但是由于时间较紧,有些
模块以及整个系统还有许多不完善的地方,如界面不太美观,操作性不太友好等。
四、参考文献
[1] 张海藩.软件工程导论(第4 版).北京:清华大学出版社,2005
[2] 刁成嘉.UML系统建模与分析设计.北京:机械工业出版社,2007
[3] UML基础与Rose建模案例.北京:人民邮电出版社,2004
[4] 刘乃丽 ASP.NET 2.0 网络开发详解.北京:电子工业出版社,2008