1、本科毕业(设计)论文开题报告系 别 信息技术 专 业 计算机科学与技术 交稿日期 教务处制一、开题报告毕业设计(论文)题目 ASP.NET MVC 在大学生就业信息交流网站中的应用和探讨课题背景和意义:就业对每个即将要毕业的大学生来说都是迫在眉睫的事情。在现在全球性经济危机的情况下,大学生就业将遭遇多方面的挑战和挤压。为此,我的毕业设计是做“大学生信息交流网站” ,对于就业来说,信息交流也是重要的一环,我们越早的找到适合我们工作的岗位,越早去应聘成功的机会就越多。我的“大学生就业信息交流网”就是一个提供岗位信息的交流平台。为了设计该网站,我采用最新的 ASP.NET MVC 框架,避免了 WE
2、B FORMS 所带来的复杂性,没有数据回传,没有在网页中保存视图状态,可以完全掌握网页呈现的全过程,使用模型,视图及控制器将WEB 应用划分到不同的组件中,提高开发效率,同时也提高了网页的可维护性和扩展性。这样我就能更轻松的开发,更新,维护网站了。研究的主要内容:研究分析微软 ASP.NET MVC,设计实现大学生就业信息交流网站:1. 大学生就业信息的展示和发布;2. 大学生就业信息的增加、删除和修改;3. 经过调研所需要的其他功能。系统要具备直观且美观的操作界面,要进行严格的测试以保证系统的可靠性,要具备可扩展性和可维护性。研究方法(或技术路线):安装 Office2003/2007、V
3、isual Studio 2008+ASP.NET MVC Preview 2、UModel2009、SQL Express 2008。技术路线:面向对象、UML 、RUP 、.NET 技术、ASP.NET MVC。面向对象技术:面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。面向对象技术的基本特征主要有抽象性、封装性、继承性和多态性。ASP.NET MVC 框架:MVC(Model View Controller)模式是一种较为广泛应用的结构设计模式,MVC 设计模式将一般的应用程序根据功能
4、的不同,划分为 3 个主要部分,他们分别为模型(Model),视图(View) ,控制器(Controller) 。模型(Model):在 MVC 设计模式中需要被显示的数据。在通常情况下,该模型需要从数据库中读取数据,保存模型的状态等,提供数据的访问方法及数据的维护。视图(View):根据 Model 数据进行内容展示的组件。控制器(Controller):用来处理对用户的输入或者交互命令,以便更改模型的状态,选择适当的视图来显示对应模型的数据。预期结果:1. 毕业设计开题报告2. 外文翻译和文献综述3. 毕业设计中期自检报告4. 包含 UML 模型的分析和设计说明书5. 按 ASP.NET
5、 MVC 框架实现设计成果的可运行系统。6. 毕业设计说明书7. 答辩用 10 分钟 PPT 和 1 页 A4 纸的毕业设计简介进度计划:序号 毕业设计(论文)各阶段内容 时间安排 备 注1 完成和 UML、ASP.NET MVC 相关的外文翻译、文献综述第 7 学期第 1217 周2 完成毕业设计开题报告 第 7 学期第 1217 周3 完成毕业设计中期自检报告 第 7 学期第 17 周4 按 RUP 统一过程迭代增量开发“大学生就业信息交流网站”第 7 学期第 12 周-第 8学期第 12 周分析和设计说明书、可运行系统5 完成毕业设计说明书 第 8 学期第 13-14 周6 完成答辩用
6、10 分钟 PPT 和 1 页 A4 纸的毕业设计简介第 8 学期第 14 周指导教师意见:为了课题的顺利展开,朱姚宇同学做了较充分的准备:分析课题背景、查阅相关技术文献、试用 ASP.NET MVC 技术编写代码,并做了计划安排。具备开题条件,同意开题。指导教师签名: 徐布克 2009 年 12 月 8 日系部意见审 查 结 果: 同 意 不 同 意系主任签名: 年 月 日二、阅读文献目录序号 文献名 文献出处 文献发表时间1 UML 2.0 学习指南 清华大学出版社 2007.22 UML 面向对象设计与分析 清华大学出版社 2007.73 Professional ASP.NET MVC
7、 1.0 Wiley Publishing 20094 ASP.NET 3.5 MVC 构架与实践 电子工业出版社 2009.35 网页制作与网站建设技术大全 清华大学出版社 2008.96 数据库系统原理 电子工业出版社 2004.97 ASP.NET MVC 框架开发系列课程 M 2008.489101112131415161718三、文献综述注意:学生阅读文献后,必须写出 3000 字左右的综述,作为开题内容之一。 (可增页) 为了能够使用 ASP.NET MVC 框架开发“大学生就业信息交流网站” ,我阅读大量参考文献,其中有UML 2.0 学习指南 , UML 面向对象设计与分析 ,
8、 Professional ASP.NET MVC 1.0 ,ASP.NET 3.5 MVC 构架与实践 , 网页制作与网站建设技术大全 , 数据库系统原理等书。从Professional ASP.NET MVC 1.0一书中我了解到了 ASP.NET MVC 框架是给开发者提供了开发 WEB 应用程序的一种选择。MVC(Model View Controller)模式是一种较为广泛应用的结构设计模式,MVC 设计模式将一般的应用程序根据功能的不同,划分为 3 个主要部分,他们分别为模型(Model),视图(View) ,控制器(Controller) 。模型(Model):在 MVC 设计模
9、式中需要被显示的数据。在通常情况下,该模型需要从数据库中读取数据,保存模型的状态等,提供数据的访问方法及数据的维护。视图(View):根据 Model 数据进行内容展示的组件。控制器(Controller):用来处理对用户的输入或者交互命令,以便更改模型的状态,选择适当的视图来显示对应模型的数据。(图 1,图 2 为Model,View,Controller 组件之间的关系)Model,View,Controller组件之间的关系:图1 MVC各组件关系图。图2 MVC各组件的中文关系图从UML 2.0 学习指南 , UML 面向对象设计与分析这两本书中我知道了 UML 作为一种建模语言,UM
10、L 的定义包括 UML 语义和 UML 表示法两个部分 (1) UML 语义 描述基于 UML 的精确元模型定义。元模型为 UML 的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外 UML 还支持对元模型的扩展定义。(2) UML 表示法 定义 UML 符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是 UML元模型的实例。 标准建模语言 UML 的重要内容可以由下列五类图(共 9 种图形)来定义: 第一类是用例图,从用户角度
11、描述系统功能,并指出各功能的操作者。 第二类是静态图 (Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。 对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。 包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。 第三类是行为图(Behavior
12、diagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。 而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。 第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换
13、外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。 第五类是实现图 ( Implementation diagram )。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。 配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单
14、元的对应关系。 从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML 的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言 UML 的动态建模机制。因此,标准建模语言 UML 的主要内容也可以归纳为静态建模机制和动态建模机制两大类。从数据库系统原理一书中我学习到了:1. 原始单据与实体之
15、间的关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。2. 主键与外键一般而言,一个实体不能既无主键又无外键。在 ER 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙 ), 但必须要有外键( 因为它有父亲)。主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经
16、验之谈,也反映了他对信息系统核心(数据模型) 的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。3. 基本表的性质基本表与中间表、临时表不同,因为它具有如下四个特性:(1) 原子性。基本表中的字段是不可再分解的。(2) 原始性。基本表中的记录是原始数据(基础数据)的记录。(3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。(4) 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。4.三个范式第一范式:1NF 是对属性的原子性约束,要求属性具有原子性,不可再分解;第
17、二范式:2NF 是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;第三范式:3NF 是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。在读了这么多文献再加上我的一部分实践之后我觉得开发网站的工程中经常存在着很大的不确定性。之所以如此,是因为软件开发中包含了物和人的因素。这使得网站开发并不如想象的那样理所当然。
18、就像盖房子建造者不可能在一开始就准备好一切材料和工具,直接盖造,那将是无比愚蠢的行为。他需要有各种各样的图纸和模型同其他小组沟通,达到联合工作. 很显然,在客户的需求与实际的建筑技术之间找好一个契合点,是做好工程的关键 .同理,在网站开发的过程中不仅仅是代码的问题,而成为了一个怎么样将整个过程转变成一个结构, 过程和工具相结合的问题. UML 建模其目的和作用在于提供系统蓝图, 包含细节设计,也含有对系统的总体设计, 同时模型可以帮助开发小组更好地规划系统设计,更快的开发. UML 是一种功能强大的,面向对象的可视化系统分析的建模语言,它的各个模型可以帮助我更好地理解业务流程,建立更可靠,更完
19、善的系统模型.从而使我更容易的开发网站,减少逻辑上的错误。 数据库的设计就像我们在挑选材料。让原本一堆的材料,分类,简化,减少成本。数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入、删除和更新操作异常。反之则是乱七八糟,不仅给网页制作带来,而且面目可憎,可能存储了大量不需要的冗余信息。而使用 ASP.NET MVC 框架开发网站,避免了 WEB FORMS 所带来的复杂性,没有数据回传,没有在网页中保存视图状态,开发者可以完全掌握网页呈现的全过程,使用模型,视图及控制器将 WEB 应用划分到不同的组件中,提高开发效率,同时也提高了程序的
20、可维护性和扩展性,特别是有利于 WEB 应用程序的测试,可以比较容易地实施测试驱动开发。让我在未来开发“大学生就业信息交流网站”时更加简单。四、文献翻译注意:每个学生必须提交 15000 个以上印刷符号、与课题研究密切相关的外文文献的中文翻译文章或者读书报告。 (可增页)文献翻译内容:Professional ASP.NET MVC 1.0的“Building the Model”段。创建 Model 模型在一个 Model-View-Controller 开发框架中“model”表示对象那是应用程序的数据,与相应的领域逻辑,集成验证和业务规则一起。model 在许多方面是一个 MVC 的应用
21、程序的关键,过会我们将看到从根本上它的作用。ASP.NET MVC 框架支持使用任何数据接入技术,开发人员可以选择大量的.NET 数据执行它们的model,包括:LINQ to Entities, LINQ to SQL, NHibernate, LLBLGen Pro, SubSonic, WilsonORM, 或者 just raw ADO.NET DataReaders 和 DataSets。对于我们的 NerdDinner,我们将使用 LINQ to SQL 创建一个简单的域模型,非常接近于数据库设计,并增添了一些自定义验证逻辑和业务规则。我们将执行一个 repository 类,它帮
22、助抽象类离开数据持久执行从应用程序的其他数据中,使我们能够轻松地单元测试。 LINQ to SQLLINQ to SQL 是 .NET 3.5 的 ORM(Object Relational Mapper)部分。LINQ to SQL 提供了一个简单的方法映射数据表到.NET 类,我们不再用写代码。对于我们的NerdDinner 应用程序,我们将用它映射 Dinners 和 RSVP 表中的数据到 Dinner 和 RSVP 模型类。Dinners 和 RSVP 数据表中的列将映射为 Dinner 和 RSVP 类。每一个 Dinner 和 RSVP 对象将表示Dinners 或 RSVP 数
23、据表中的一条单独的数据记录。LINQ to SQL 允许我们避免手动去创建 SQL 脚本检索和更新 Dinner 和 RSVP 对象从数据库中。在访问或更新数据库记录时,LINQ to SQL 将负责生成合适的 SQL 执行逻辑。我们可以使用 VB 和 C#支持的 LINQ 语言写查询表达式,检索 Dinner 和 RSVP 对象。这样可以大量减少代码行,构建清晰的应用程序。增加 LINQ to SQL 类到项目程序中,我们开始右键点击 Models 文件夹在我们的项目中,选择 Add - New Item 菜单项。在弹出的 Add New Item 对话框. 我们通过“数据”类别,选择 “L
24、INQ to SQL 类”在它的模板:我们命名项目名“NerdDinner”并点击“添加”按钮。 Visual Studio 将增加 NerdDinner.dbml 文件到 our Models 目录,然后打开 LINQ to SQL 对象关系设计:使用 LINQ to SQL 创建 Data Model Classes LINQ to SQL 允许我们从现有的数据库快速数据模型类。我们可以在 Server Explorer 窗口打开NerdDinner 数据库,并选择需要建模的数据表 :然后,我们可以将表格拖动到 LINQ toSQL 的设计面版。当我们这样做的 LINQ to SQL 会自动创建Dinner 和 RSVP 类使用该表(类的属性与模式映射到数据库表列):默认情况下,LINQ to SQL 设计器在基于数据表创建类时,自动复数化表和列名。例如:“Dinners”表自动产生 “Dinner”类的例子。这个类命名有助于使我们的模型相一致的 .NET 命名约定,我通常会发现,拥有设计了方便的解决这个问题(尤其是加入大量的表)。如果你不喜欢设计器生成