收藏 分享(赏)

总结与展望.doc

上传人:fmgc7290 文档编号:6313108 上传时间:2019-04-06 格式:DOC 页数:22 大小:416.50KB
下载 相关 举报
总结与展望.doc_第1页
第1页 / 共22页
总结与展望.doc_第2页
第2页 / 共22页
总结与展望.doc_第3页
第3页 / 共22页
总结与展望.doc_第4页
第4页 / 共22页
总结与展望.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、第五章 系统测试与分析一、软件测试经过需求分析、设计和编码等阶段的开发后,得到了源程序,开始进入到软件测试阶段。然而,在测试之前的各阶段中都可能在软件产品中遗留下许多错误和缺陷,如果不及时找出这些错误和缺陷,并将其改正,这个软件产品就不能正常使用,甚至会导致巨大的损失。目前,程序的正确性证明尚未得到根本的解决,因此软件测试仍是发现软件中错误和缺陷的主要手段。系统整体测试步骤:1、单元测试单元测试是整体测试中的第一步,通常在编码阶段进行。在源程序代码经过编译、评审、 确认没有语法错误之后,便可开始进行单元测试。2、集成测试集成测试在单元测试完成之后,将所有的模块概要设计要求组装成系统时进行的测试

2、,主要目标是发现与接口有关的问题。3、确认测试经过集成测试之后,接口错误已经发现被发现并改正了,接下便要进行确认测试。所谓确认测试就是验证所开发软件的功能性及其他特性是否符合软件需求规格说明书的要求。所以,确认测试又被称为有效性测试。4、系统测试系统测试是更大范围内进行测试,它将经过确认测试的软件作为整个基于计算机的系统的一个元素,在实际运行环境下,对系统进行的一系列集成和确认测试。二、微博系统测试(一)注册页面的错误提醒和提交注册信息测试反复点击注册页面的输入框,检测其失焦提醒错误的 JS 事件是否会失效。然后再分别依 “ ”次增多地填入用户名、密码等,点立即注册按钮,看其是否提醒缺失的必填

3、选项。接着,再新建一个合法账户,然后重新注册个与其名字相同的账户,看系统是否提醒,并且不为其添加记录。经过以上反复测试,该模块测试成功。(二)登录功能及模块进入身份限制的测试使用建好的账户不停登录退出系统,检测系统存储的用户信息是否变化。然后检测,不同身份的用户是否能进到其身份不符合的模块。经过以上反复测试,该模块测试成功。(三)输入模块的测试对于微博的发布各项比如表情,图片,音频等反复地测试,使用它们发送是否正常。经过以上反复测试,该模块测试成功。(四)我的首页模块的测试对于登录成功的用户跳转到用户自己的微博首页,会显示校园即时微博信息,并且首页链接到各项功能模块,并且可以发布微博。测试各个

4、功能模块是否正常,若有问题,马上修改。经过以上反复测试,该模块测试成功。 (五)提到我的模块的测试当别人发布的微博或者转的微博含有用户名的信息,那么会给被的用户即时消息提醒,检查此功能是否正常,如果没有差错则测试成功。经过以上反复测试,该模块测试成功。(六)微博正文模块,包括转发、收藏、评论的测试是否可以正常转发、收藏、评论别人的微博,检查功能是否正常,如果没有差错则测试成功。经过反复测试,该模块测试成功。第六章 总结与展望二、总结(一)、学习通过这次的毕业设计,我主要是学习到了如何使用 ROR 进行 WEB 开发,如何灵活使用 CSS 写出想要的页面样式,同时也学习了软件工程以及数据库方面的

5、知识。在整个系统的开发中,遇到了很多的难题,比如如何正确的去统计转发数量以及评论数量等。经过几次的修改以及借鉴 Sina 微博的做法,才得以初步解决。也让我对权限和授权的知识的认识更进了一步。而且自己学习使用PHOTOSHOP 等工具,也是为了配合 CSS 让自己的系统页面更好看,有一个好的视觉效果,也是花了很长的时间。对 UI 设计也更有了解了。(二)、反思当然,由于各方面知识的不专业,这样的一个系统还不够成熟。而且许多当初的设计的功能最后因为各种原因也未能加入。系统在一开始编写时未能给那些功能预留扩展,这是我在详细设计时候未设计完善所导致的,是一个很好的经验教训。希望以后自己有更好的设计。

6、一、 展望通过这一次毕业设计,使我认识到自己在计算机领域所擅长的以及所需要弥补的是什么。我喜欢着眼于一个软件产品的 UI,自己会学习各种相关的知识来完成一个自己设计的 UI。而且 CSS 也是我自己擅长的。以后我会更努力学习关于产品 UI 的专业的知识,以从事于相关职业,更好的做好产品的图形界面设计。参考文献1、Dave Thomas, David Hansson 等.应用 Rails 进行敏捷 Web 开发. 电子工业出版社.2006.2、裴有福.Web 技术大全.中国水利水电出版社.19983、百度知道.http:/ Schwartz、Peter Zaitsev、Vadim Tkachen

7、ko、Jeremy高性能 MySQL (第 2 版). 电子工业出版社:20105、贾铮等.HTML+CSS 网页布局开发指南.清华大学出版社.20086、邓蔚等.编程红宝书:Ruby 完全自学手册.机械工业出版社.20097、柳靖等Ruby on Rails 快速 Web 应用开发实战M.电子工业出版社.20068、美杰克戴维斯.The Photoshop Wow!Book.2003.致 谢经过一个学期的努力,毕业设计系统的开发暂时告一段落了。这次毕业设计,让我充分的把这几年所学到的专业知识融会贯通,从做需求分析、设计数据库、到系统整体设计和具体的代码实现。整个设计,让我学到了许多以前在课堂

8、上面学不到的知识,很大程度的加强了自己的实践能力。在此,感谢我的指导老师许精明老师的指导和督促,在整个的开发步骤上,老师给我们列出了详细的任务工作计划,使我们在开发进程上,不致于茫然。在设计思路和系统功能结构方面,老师给我们提出了许多宝贵的意见,同时不断地给我们提出更高的要求。另外,感谢在我的毕业设计过程中给过我帮助的所有同学,是大家的帮助才得以完成我的这个系统。同时在设计过程中,我也发现了自己的不足,因为是首次进行这样的课题开发,在代码的实现上略现笨拙,整个程序在架构上也算不上完美,以致予一些最初设计的功能最终并未实现,但我相信通过今后的学习和实践,自己在开发能力一定能够得到大大的提高。最后

9、衷心感谢四年来辛勤教育我们的老师,感谢朝暮相处的同学以及在毕业设计中被我引用或参考的论著的作者,并向参与此次答辩的老师致以深深的谢意!附录二 附录文献翻译模型、视图和控制器Rails 应用的架构Rails 应用的一个有趣特性是它在如何组织 web 应用上强制推行一些严格的限制。令人惊讶的是,这些限制让创建应用变得方便,而且不止一点的方便。让我们来看看是为什么。3.1 模型、视图和控制器让我们回到 1971 年,Trygve Reenskaug 为开发交互应用创造了一种新架构。在他的设计中,应用被分解为三种组件:模型、视图和控制器。模型负责保存应用的状态,有时状态是临时的,仅与用户交互时存在,有

10、的状态是持久的,通常被保存在应用之外的数据库中。但 模型不仅仅只是数据,它实施与数据有关的所有业务逻辑。举例来说,如果一个账户不应被用于一个小于 20 美元的订单额度,模型将为账户施加该约束。这就是意 义所在。通过在模型中制约业务逻辑规则,我们可以确保没有任何其他东西会影响数据的稳定性。模型同时作为数据库和看守者而存在。视 图负责更新用户界面。通常它基于模型中的数据。举例来说,某在线商店有个产品目录要呈现给用户,该目录可通过模型得到。但取得目录并以一定格式呈献给最终 用户的却是视图,尽管视图可能为用户提供多种输入数据的方法,但它本身并不管理这些输入的数据。当数据呈现给用户以后,视图的工作就完成

11、了。可能会有许多 视图共享同一数据模型。在网络商店案例中,一些视图负责呈现商品目录信息,而另一些视图用于管理员增加或修改商品信息。控制器负责协调整个应用。它从外部世界(通常是用户输入)接收事件,与模型交互,并给用户呈现相应视图。这三者模型、视图与控制器都是从我们熟知的 MVC 框架中来的,要知道这三者是如何协同运作的,请看图 3-1。MVC 最初的设想是将其用于传统的 GUI 应用,开发者们希望可以分离它们各自的表示,从而使维护和编写代码变得更容易。每个概念或行为都可以在 MVC 框架中呈现,使用 MVC 就像在已放置好大梁的基础上建造摩天大楼,有了它,构建其他部分就变得更容易了。在开发应用的

12、过程中,我们将尽量使用 Rails 为构建应用的搭脚手架的能力。ROR 也 是个 MVC 框架,Rails 为你的应用实施一个框架开发模型、视图及控制器。作为分离的功能区,并且在程序运行时将它们联接在一起。使用Rails 的 一个乐趣是这个联接过程基于一个智能的框架。因此你不用去写任何外部配置就可以让它们运作。这是 Rails“习惯优于配置”哲学的一个体现。在 Rails 应用中,送进来的请求最先传递给 Router,Router 用于发送和解析请求,最终,会在控制器的某段代码中标识一个特定的方法(该方法在 Rails 中被称为 Action 行为)。该行为会在请求中查看数据,还可能与模型交互

13、,也可能使其他行为被唤醒。最终,该行为为视图准备需要提交给用户的 信息。Rails 如图 3-2 那样处理请求,在本例中,应用开始时呈现商品目录页面,用户只需点击位于商品旁边的Add to Cart按钮,该按钮传递信息给http:/localhost:3000/line_items?product_id=2,其中 line_items 是我们应用中的一个资源,2 是我们已选商品的内部 ID。路径组件接收到送来的请求,并很快将其分解。该请求包含一个路径(/line_items?product_id=2) 以及一个方法(该按钮执行 POST 方法,其他常见方法还有 PUT 和 DELETE)。在这

14、个简单例子中,Rails 取得了路径的第一部分 line_items 作为控制器名称,以及 product_id 作为商品编号。按照惯例,POST 方法与创建动作相关联。(我们将在 267 页谈到命名惯例 问题)Create 方 法用于处理用户请求。在本例中,该方法找到目前用户的购物车,购物车是由模型控制的一个对象,接着它也要同时要求模型找到商品 2 的相关信息。然后该方法告 诉购物车自己添加商品 2 的信息(看到模型是如何被用于保存所有交易信息了吗?控制器告诉应用去做什么,模型知道该如何去做)。现在购物车已将新商品包含在内,我们可以让用户看看它了。控制器唤醒视图代码,但在此之前,它已为视图从

15、模型中读取购物车对象做好了准备。在Rails 中,这个约定通常是隐性的,又一次,是约定帮我们在视图和控制器间建立联接。对于一个 MVC web 应用来说,这已经够用了。通过跟随约定和合理划分功能区,你将发现代码变得易于扩展和维护,看起来是笔划算的交易不是吗?如果 MVC 只是简单将你的代码划分为适当功能区,你可能会奇怪为何还需要 ROR 这么一个框架,答案很简单:Rails 为你包揽了所有琐碎的家务活儿,那些将占用你大量时间的恼人细节,使你将注意力集中在应用的核心功能上。让我们来看看 Rails 是如何做到这点的。 3.2Rails 支持模型总的来说,我们希望在关系数据库上保存应用的信息。订单

16、实体系统将在数据库表中保存订单,在线商品及用户细节。甚至那些通常使用非结构化文本的应用,如 weblog 及一些新闻站点,都会使用数据库作为它们的后台存储工具。尽 管一两句话无法说明操作数据库的 SQL(结构化查询语言),关系数据库实际上是基于数据集理论被设计而成。理论上讲这设计没什么问题,但它很难与面向对象 语言结合在一起。对象是关于数据和操作的,数据库关于值的集合。在 OO 系统中,难以用代码表达的操作可以在数据库中轻松实现,反之,难以用关系数据库实现 的,可以用代码表达。随着时间推移,人们发明了多种方法来整合这两种途径,来共同呈现数据。让我们看看 Rails 采用了那种方法将关系数据库映

17、射到对象上面。对象关系映射ORM 库 将数据库表映射为各种类,如果数据库中有名为 orders 的表,我们的程序就会有个 Order 类,表中的行与该类的对象关联,一个特定的订单表示 Order 类中的某个对象。在该对象中,属性用于获取和设置表中的特定列,Order 对象中有内部方法用于获取和设置账户信息、缴纳税金和其他操作。此外,Rails 中用于覆盖数据库表的类提供系列类级方法可以实现数据库表的各种操作。举例来说,我们要根据特定 ID 来找寻一个订单。该操作被实现为一个可返回 Order 对象的类方法,在 Ruby 代码中,它看起来像这样:有时这些类级方法返回的是一个对象集:最后,与对象们

18、都有可操作表中对应行的方法,可能最常用的就是保存,将其所在行保存进入数据库。所以,ORM 层将数据库映射为类,表中行映射为对象,列映射为对象属性。类方法用于实现表级操作,实例方法用于实现列操作。一个典型的 ORM 库中,你需要提供配置参数明确数据库实体与程序实体间的映射,使用这些 ORM 工具的程序员通常发现他们要创建和维护一大堆的 XML配置文件。 ActiveRecordActiveRecord 是个专用于 Rails 的 ORM 层,它跟从标准 ORM 模型。表映射为类,行映射为对象,列映射为对象属性。它与大多数 ORM 库最大的不同在于它的配置方式。通过约定和遵循合理框架,Active

19、 Record 大大减少了程序员配置文件的数量。为了说明这一点,以下有个使用 Active Record 来覆盖 Orders 表的代码:这段代码通过 ID 来取得订单,它使用了 Order 类,并修改 pay_type 变量(我们现在先忽略创建数据库连接的代码)。Active Record 把我们从处理底层数据库的麻烦中解放出来,让我们集中精力在业务逻辑上。但 Active Record 能做的不止于此,正如你所见的那样,在开发购物车应用时,你会看到这点。Active Record 与 Rails 框架的其他组件无缝的集成在一起,若一个表单发送的应用数据与业务模型有关,Active Reco

20、rd 可以将数据抽取到模型当中。Active Record 支持各种设定好的数据模型,若表单数据没能通过验证,Rails 视图就可以抽取并将错误显示出来。ActiveRecord 是 RailsMVC 架构稳固的模型基础。 ActionPack:视图与控制器请考虑下这点,视图和控制器在 MVC 框架中是联系紧密的两个部分,控制器为视图提供数据,控制器从视图产生的页面中获取事件,正因如此,Rails中对这两者的支持被绑定到一个名为 ActionPack 的独立组件中。不要傻傻因为 ActionPack 是个独立组件就以为你的视图和控制器代码会被搞得一团糟。恰恰相反,Rails 给了二者足够的独立

21、性,让开发者为控制与显示逻辑编写界限清晰的代码。视图支持在 Rails 中,视图负责创建部分或全部需要在浏览器中呈现的响应,无论是运行应用或发送邮件。简单说来,视图就是一块 HTML 代码用以显示固定的文本块。通常你可能想在其中嵌入动态代码,而这些是由控制器中的行为方法创建的。在 Rails 中,动态部分由模板生成,它有以下三个特性。最常用的叫模板模式,也叫做嵌入式 ruby(ERb)。将 小片的 Ruby 代码嵌入视图文档中,在很多方面都与其他 web 开发框架类似,如 PHP 或 JSP。尽管这方法很灵活,但还是有些人认为它亵渎了 MVC 的精 神。通过在视图中嵌入代码,我们大胆尝试了本应

22、在模型或控制器中的增量逻辑,正如其他事物一样,有节制的合理使用是明智的,滥用则造成问题。开发人员需把 握二者之间的界限(我们会在第 410 页,用 ERB 更新 HTML 代码一节看到有关内容)。XMLBuilder 也可使用 Ruby 代码构建 XML 文档生成的 XML 结构会自动跟随代码结构,我们将从第 408 页开始讨论 xml.builder 模板。Rails 也提供 RTS 视图,该视图允许你在服务器端创建 JavaScript 代码,然后在浏览器中显示。这点对创建动态 Ajax 接口很有利,我们将从 145 页讨论这部分内容。谈谈控制器Rails 控制器是应用的逻辑中心,它协调了

23、用户、视图和模型三者间交互。然而 Rails 控制幕后大部分交互操作,让你的代码可集中于功能实现上。这使得 Rails 控制器代码变得极易开发和维护。控制器也用于安置一系列重要相关服务:它负责引导外部请求获得内部行为,它可以很好管理用户友好的 URLs。它管理缓存,可以让应用在大量请求访问时表现良好。它管理帮助模块,该模块可以在不增加大量代码的情况下扩展视图模板的性能。它管理会话,让应用在交互时保持连续的感觉。附录一 翻译原文Model, view and controllerRails application frameworkAn interesting feature of Rails

24、applications impose stringent restrictions on how to organize the web applications. Surprisingly, these restrictions create applications becomes convenient, but more than a little convenient. Let us look at why.3.1 model, view and controllerLets go back to 1971, Trygve Reenskaug created a new framew

25、ork for the development of interactive applications. In his design, the application is broken down into three components: model, view and controller.Responsible for the state to save the application model, sometimes the state is temporary, only when the user interaction, and some state is long-lasti

26、ng, usually stored in the database outside of the application.The model is not just data, it is the implementation of all the business logic and data. For example, if an account should not be used for an order of less than $ 20 amount, the model will account to impose the constraints. This is where

27、the meaning. Constraints in the model business logic rules, we can ensure that no other things will affect the stability of the data. Model at the same time as the database and the caretaker there.The view is responsible for updating the user interface. It is usually based on the data model. For exa

28、mple, an online store, a catalog to be presented to the user, the directory can be obtained through the model. But made and the catalog was dedicated to the end user, but is a view in a certain format, although the view may provide users with a variety of input data, but does not itself manage these

29、 input data. When the data after it is presented to the user, the view of the work completed. There may be many view share the same data model. In the case of online stores, some of the view responsible for showing the catalog information, while others view for the administrator to add or modify the

30、 product information.The controller is responsible for coordinating the entire application. It from the outside world (normally user input) to receive events, interacting with the model, and rendered to the user view.Three - model, view and controller are from the We are familiar with the MVC framew

31、ork, and to know these three collaboration, see Figure 3-1.MVC was originally conceived for traditional GUI applications, developers hope can be separated from their respective representation, so that maintenance and code easier.Each concept or behavior can be presented in the MVC framework using th

32、e MVC as have been placed girders on the basis of the construction of skyscrapers, and with it, build the other parts easier. In the development and application of the process, we will try to use Rails scaffolding ability to build applications.ROR is a MVC framework, Rails implementation of a framew

33、ork for your application - the development of the model, view and controller. The program runs as a separate functional area, and they are linked together. Rails is a fun connection process based on an intelligent framework. So you do not have to write any external configuration allows their operati

34、on. This is a manifestation of the Rails “habits over configuration“ philosophy.Rails application, sent in the request was first passed to the Router the Router is used to send the resolution request, and ultimately, in the controller section of code that identifies a particular method (the method c

35、alled Action behavior in Rails ). The act would view the data in the request, may also interact with the model, may also make other acts to be awakened. Ultimately, the behavior for the view to prepare required to submit information to the user.Rails in Figure 3-2 as processing the request, showing

36、the Catalog page in this case, the beginning of the application, users simply click on the goods next Add to Cart button, the button to transmit information to http:/localhost:3000 / line_items?the product_id = 2, line_items is a resource in our application, two internal ID has been chosen for the g

37、oods.Path component receives a request sent, and will soon be its decomposition. The request contains a path (/ line_items? The product_id = 2) and a method (the button to execute the POST method, the other common methods PUT and DELETE). In this simple example, Rails has achieved the first part of

38、the path - line_items as the controller name, and product_id as a commodity number. By convention, the POST method, create action associated. (267 it comes to naming convention problems)Create methods for handling user requests. In this case, the method finds the current users shopping cart, the car

39、t is an object of control by the model, then it should also require the model to find the relevant information of commodity 2. Then told cart add commodity 2 information (see the model is how to be used to save all transaction information? Controller tells the application what to do, the model knows

40、 how to do).Shopping cart new products have been included, we can let the user see it. Controller to wake-up view of the code, but before it has the view is read from the model the shopping cart object ready. In Rails, this agreement is usually hidden, once again, agreed to help us to establish a co

41、nnection between the view and controller.For a MVC web application, which is already good enough. Follow the conventions and rational division of functional areas, you will find the code easy to extend and maintain, it seems is pen bargain is not it?If MVC is simply your code into the appropriate fu

42、nctional area, you might wonder why such a framework needs to ROR, the answer is simple: Rails swept all trivial chores children who will occupy a lot of time annoying details, so that you focus on the application of core functions. Let us look at Rails is how to do it.3.2Rails support modelOverall,

43、 we hope that the information stored in a relational database applications. Order physical system will save the details of the orders of goods and user in the database table. Even those who typically use unstructured text applications, such as weblog and news site will use the database as the back-e

44、nd storage tools.Although one or two words can not explain the operation of the database SQL (Structured Query Language) relational database is actually based on the theory of data sets to be designed. In theory, this design is no problem, but it is difficult to combine with object-oriented language

45、. The object is a database on the value of a collection of data and operations. In OO systems, it is difficult to code expression operation in the database easily, and vice versa, it is difficult to use relational database, can be expressed in code.Over time, people invented a variety of methods to

46、integrate these two approaches together to present the data. Let us look at Rails uses a kind of relational database is mapped to the object above.Object - relational mappingORM libraries map database tables to a variety of classes, if the database table called orders, our program will have a Order

47、class, row in a table associated with the object of that class, a specific order that the Order class objects. The object attribute is used to access and set a specific column in the table, the Order object internal methods used to get and set the account information, pay taxes and other operatingRa

48、ils provides a series of class-level method can achieve a variety of operation of the database table used to cover the class of the database table. For example, we find an order based on the specific ID. This operation is implemented as a class method to return the Order object in Ruby code, it look

49、s like this:Sometimes these class-level method returns a set of objects:Finally, with the object to have a corresponding row in the operational table, may be the most commonly used is to save, save its row intothedatabase.ORM layer database mapping for the class, rows in a table mapping object, the column is mapped to object properties. Class methods for table-level operations, and an instance method for column operation.A typical ORM library, you need to provide the mapping between the configuration parameters explicitly data

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报