《软件架构设计》课程报告_第1页
《软件架构设计》课程报告_第2页
《软件架构设计》课程报告_第3页
《软件架构设计》课程报告_第4页
《软件架构设计》课程报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件架构设计》课程报告《软件架构设计》课程报告PAGEPAGE13目 录软件设计风格、软件应用框架和软件设计模式的特征和区别 2软件设计风格 2软件应用框架 2软件设计模式 2软件风格、应用框架和设计模式的区别 2课堂考勤管理系统 3项目开发背景 3项目用户需求分析 3学生需求 3任课教师需求 4教学秘书功能要求 4辅导员用户需求 4课堂考勤系统的软件架构、框架以及设计模式 5考勤系统的软件架构 5系统框架 7数据访问层部分代码: 7业务逻辑层: 8表示层: 8详细介绍 9设计模式 10软件架构对软件开发过程的作用及影响 111软件设计风格、软件应用框架和软件设计模式的特征和区别软件设计风格可以可靠地用于解决新的问题。例如,如果某人把系统描述为“客户/模式,则不必给出设计细节,我们立刻会明白系统是如何组织和工作的。软件应用框架软件构架以作为满足不同客户需求的实际系统设计方案的基础。软件设计模式设计模式(英语designpattern)1990ErichGamma软件风格、应用框架和设计模式的区别(性,虽然定义上有些容易混淆,因为它更加通用,是设计的通用解决方案和经课堂考勤管理系统项目开发背景ASP.NET询学生的出勤情况。图2-1课堂考勤系统登录界面项目用户需求分析学生需求称等详细信息。其它需求:修改个人用户密码,查看本班课表安排。任课教师需求考勤的学生信息、课程信息、上课时间等信息,提交学生上课出勤情况。图2-2教师所授课程信息查询查看学生出勤信息需求:查看所教班级学生出勤统计信息及详细信息。44其它需求:修改个人用户密码,查看本人课表安排。教学秘书功能要求结束时间,持续周数;1010设置数据可用性,如:设置2015-20162015-2016的数据可用,表示这两个学期的数据可用,其他学期的数据不可用。其他需求:修改个人用户密码。图2-3教学秘书课程信息维护辅导员用户需求410示单一课程缺勤次数达到4102-4其它需求:修改个人用户密码。课堂考勤系统的软件架构、框架以及设计模式考勤系统的软件架构DBMS图3-1三层架构原理图固定的DBMS,数据访问层基本可以不变,一旦用户的需求改变,修改业务逻辑层,表示层稍做改动即可。这种做法使程序的可复用性、可修改性,都得到了很好的改善,大大提高了软件工程的效率。网站采用SQLServer2014数据库,名称为KQGL,包含表如下图所示图3-2数据库表图具体表介绍:在本系统中实体模型包括系统管理员表(tb_manager、系别表(tb_department、专业班级表(tb_professional、教学年度学期表tb_annual、学生信息表tb_student、教师信息表tb_teacher、课程表(tb_course(tb_professionalCoursetb_teacherCourse(tb_classroomtb_dean辅导员信息表(tb_assistant、各系学生考勤表(tb_checkOnWorking_*_*、预警信息表(tb_alert、预警条件表(tb_alertSet、考勤有效时间表tb_validTime、课程安排信息表(tb_CourseDetail教师存储过程信息介绍:表3-1教师存储过程信息表序号 名称序号 名称1 GetCheckedProfessional2345teacherLogin,teacherInsertteacherSelectByDepartmentIdteacherUpdate说明勤一半退出系统再次登录时考勤完毕的专业不再写入缓存教师登录添加教师信息得到某系的全部教师更新教师信息667891011teacherDeleteById 删除教师信息teacherChangePwd 教师更改登录密码teacherSelectById 按教师编号得到教师teacherGetIdByname IDteacherSelectAll 得到全部教师信息teacherCourseSelectCourseNameById查询某教师的该学期所授的全部课程系统框架高校学生考勤系统是采用三层架构实现的,系统包含8个项目。BusinessLogicLayerDALFactory是数据访问层的抽象工厂;DBHelperIDALUI统的交互;Model;SQLServerDALSQLServer据库;WebConfig图3-3系统各项目的依赖关系下面从教师的例子中看一下这三层之间的调用关系数据访问层部分代码:#region更新教师信息///<summary>///更新教师信息///</summary>///<paramname="teacher">Teacher对象</param>///<returns></returns>publicintUpdate(Teacherteacher){SqlParameter[]param={newSqlParameter("@teacherID",teacher.teacherID),newSqlParameter("@teacherName",teacher.teacherName),newSqlParameter("@teacherPwd",teacher.teacherPwd),newSqlParameter("@teacherTitleName",teacher.teacherTitleName),newSqlParameter("@teacherPhone",teacher.teacherPhone),newSqlParameter("@teacherEmail",teacher.teacherEmail)};returnExecuteNonQuery(StoredProcedureName.teacherUpdate,param);}#endregion业务逻辑层:///<summary>///更新教师信息///</summary>///<paramname="teacher">Teacher对象</param>///<returns></returns>publicintUpdate(Teacherteacher){returndal.Update(teacher);}表示层:示等功能。图3-4教师信息维护界面后台cs代码:protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse){CheckOnWork.Model.Teacherteacher2=newTeacher(Label1.Text,txtName.Text,teacher.teacherPwd,Convert.ToInt32(Session["departmentId"]),txtTitle.Text,txtPhone.Text,txtEmail.Text);intsign=tBll.Update(teacher2);if(sign==1){Response.Write("<scripttype='text/javascript'>alert('更新成')</script>"); //添加成功则清空行}elseResponse.Write("<scripttype='text/javascript'>alert('更新失败,请仔细核对信息')</script>");详细介绍DBHelperHelperSQLServerDBHelper有一个类——SQLHelperOracleOracleHelperSqlHelperSqlHelperExecuteNonQuerySqlDataReaderDataSetIDAL是数据访问层的类要实现的一组接口。数据访问层的各类需要完成对IDALIDAL要达到的目的是:实现业务逻辑与数据库访问层的完全分离。IDALModelModelIDAL口。BusinessLogicLayer业务逻辑层包含了整个系统的核心业务,它处于数据IDAL的接口定义,那么业务逻辑层就不会受到任何影响。WebConfigConfig,Web.configSQLServerConStringSQLServer字符串,在SQLServerDALWebDalDALFactoryOracleSQLServerDALIDALDeleteSQLServerSQLServerDALOracleOracleDAL前面提到的数据库的更换,实现的关键就在于此项目。DALFactory项目中我们使用反射和抽象工厂来实例化数据访问层的类对象。实现方法是:通过WebConfigConfigWeb.configITeacherdal=(ITeacher)Assembly.Load(“程序集名称”).CreateInstance(“程序集名访问层的类对象,实现数据库的无缝切换。设计模式例如本系统中的:namespaceCheckOnWork.IDAL{publicinterfaceITeacher{//得到某系的教师IList<Model.Teacher>GetTeachersByDepartment(intdepartmentId);//添加教师信息intInsert(Teacherteacher);//更新教师信息intUpdate(Teacherteacher);//删除教师信息intDelete(stringid);//教师修改密码intChangePwd(stringid,stringpwd);//检查此教师编号是否存在boolCheckTeacher(stringid);//按编号查找教师CheckOnWork.Model.TeacherGetTeacherById(stringteacherId);//按教师名查找教师IList<Model.Teacher>GetTeacherIdByName(stringname);//查询全部教师IList<Model.Teacher>GetTeacherAll();}}publicTeacher(stringid,stringname,stringpwd,intdepartmentId,stringtitle,stringphone,stringemail){this._teacherID=id;this._teacherName=name;this._teacherPwd=pwd;this._teacherTitleName=title;this._teacherPhone=phone;this._teacherEmail=email

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论