软件设计与体系结构论文设计Word下载.docx
- 文档编号:17997895
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:15
- 大小:362.52KB
软件设计与体系结构论文设计Word下载.docx
《软件设计与体系结构论文设计Word下载.docx》由会员分享,可在线阅读,更多相关《软件设计与体系结构论文设计Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
1.1引言
当今世界已进入信息时代,Internet成为21世纪最受关注的行业之一,它的飞速开展和在全球X围的普与应用正在给人类生活带来革命性变化。
网络技术的开展也取得了巨大的成就,为开发提供了很好的技术支持。
正基于这个背景,产生了《快餐店多功能点餐系统》。
就我而言,主要是想通过《快餐店多功能点餐系统》的开发,让自身在软件开发的知识水平提升一个档次,特别是对软件开发形成一种概念。
也正如《HeadFirst设计模式》中所说,对象村里的每个人都在使用设计模式。
对于刚刚入住对象村的我,需要有一个和大师交流的机会,而《快餐店多功能点餐系统》无疑是我跻身上流社会的一个桥梁。
“把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用他们。
〞——使用设计模式的最好方法。
把自己学到的模式和原如此,套用到开发的系统之上,在开发系统的同时也掌握的设计模式的根本思想。
在起初没有使用设计模式的系统中,更能明显的看出设计模式的威力所在。
1.2系统开发目标
为快餐行业的网互联化提供支持,使商家和定餐者都能便捷高效的完成自己的需求和响应。
具体目标如下:
用户能够在没有经过培训以与不了解原有系统的情况下使用系统;
系统应将订单处理流程加快20%以上;
用户可以节省一半的查看菜单详细信息;
当用户在快餐店用餐时,可以仅用没有系统所用时间的30%来完成订餐;
当用户叫外卖时,不需要再找外卖单以与订餐;
会员得知优惠的效率提高90%以上。
1.3开发环境
本系统采用目前最流行的web开发技术之一——J2EE进展开发。
主要开发语言采用Java,网页采用JSP、css以与javascript,后台处理采用servlet技术,数据库使用的是MySQL5.5,服务器使用的是Tomcat7。
可以配置在Windows,Linux,Unix等常用操作系统平台。
2第2章需求分析
2.1项目概述
适用于快餐店的多功能点餐系统,实现会员记录的增、删、查、改、存、读、的根本功能,根据功能,指导系统的模式。
分别对于普通用户、会员、管理员开设系统。
对于普通用户,有管理个人信息、查看菜单、订餐、结帐四种操作。
对于会员,在普通用户的根底上,可以查看优惠信息、使用优惠券。
对于管理员,可以进展管理员管理、普通用户管理、会员管理、菜单管理。
2.2功能需求
快餐店多功能点餐系统在功能上应满足三类用户的需求,使得用户使用更加方便而高效。
2.2.1用户需求
管理员可以通过网络进展菜单更新、会员管理、普通用户管理、发布优惠信息、查看选定时间段的营业情况;
所有用户可以选定菜单的特定子集进展查看菜单;
普通用户可以查看今日特价、查看菜单、查看菜目详情、预订菜目、查看消费金额;
会员在普通用户功能的根底上能够查看会员优惠、使用优惠券;
普通的浏览者可以浏览菜单。
2.2.2系统需求
系统能将用户每次的消费设置唯一的标识符记录到用户的信息上;
系统可以提供适当的浏览器供用户查看电子等;
2.3非功能需求
为了使用用户能够更好的使用系统,系统应具有的性能需求分为以下几个方面。
2.3.1产品需求
系统应在30秒之内响应用户的所有请求;
系统每周7天、每天24小时都可以使用;
对于一个没有使用经验的管理员而言,可以经过20分钟的培训使用系统;
对于没有使用经验额普通用户和会员能够直接使用系统;
系统的安全性、稳定性和可靠性可以让用户放心的使用;
系统应具有良好的可移植性。
2.3.2外部需求
系统的设计应具有较高道德用户体验度以与较高的互操作性。
2.4业务需求
快餐店多功能点餐系统为快餐行业服务,需要为快餐店的管理员、会员与普通用户服务。
2.4.1业务要求
具体业务要求如下:
●各种菜目的预订、查询和管理;
●使用计算机实现菜单的日常管理,提供工作效率和服务质量;
●用户通过网络来实现订餐,改变原有的预订方式;
●会员通过网络来进展优惠查询与管理,更加方便和高效;
●管理员可以更直观的管理用户和会员,分析其数据,可以更好的辅助决策。
2.4.2客户与用户
快餐店的所有者或者管理员、普通用户、快餐店的会员。
2.4.3特性
能够在网络上完成订餐与优惠管理,使普通用户和会员更加方便。
快餐店管理员可以通过电子给会员发送优惠信息,大大节省了人力物力。
1第3章结构设计
3.1整体设计
通过分析整个系统的需求,结合UML建模语言,对系统整体用例图分析如图3.1.1所示。
图3.1.1系统用例图
3.1.1普通用户活动图
普通用户可以进展菜单查看,点单,查看消费金额等活动,系统活动图如下列图。
图3.1.2普通用户活动图
3.1.2会员活动图
会员在普通用户的根底上可享受更多优惠,系统活动图如图3.1.3所示。
图3.1.3会员活动图
3.1.3管理员活动图
管理员可以进展菜单管理、普通用户管理、会员管理等活动,系统活动图如下列图:
图3.1.4管理员活动图
3.2详细设计
对于系统的设计,根据软件工程的相关理论,遵循模块化原如此,使得系统在“高内聚、低耦合〞的要求之下更加稳定、已扩展,在后期的维护方面可以更加方便。
3.2.1模块划分
按照系统开发的要求,可以分为前台与后台。
前台与用户交互的界面设计应满足简洁大方,以小清新为主题风格。
后台代码实现应条理清晰,方便之后的扩展与管理。
具体模块与关系如图3.2.1所示。
图3.2.1模块划分图
3.2.2简单业务流程设计
对于整个系统的业务流程,主要包括三个主要参与方。
订餐者的点餐信息通过服务器的处理可以反应给管理员,而管理员发布相关的优惠也是通过服务器的处理通知给会员。
业务流程图如图3.2.2所示。
图3.2.2简单业务流程图
2第4章设计模式
4.1工厂方法模式
4.1.1模式说明
工厂方法模式,就是定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对象,也就是将实际创建实例对象的工作推迟到子类当中,核心工厂类不在负责具体产品创建。
实质上是通过继承的方式实现应用程序的解耦。
应用在本系统中,有一个数据库的操作类工厂,名字叫DAOFactory,有四个数据库操作类,UserDAO、DishesDAO和TableDAO,分别对用户、菜单和餐桌消息进展管理。
4.1.2模式类图
图4.1.1工厂方法模式类图
4.1.3所用原如此
1“开—闭〞原如此
一个软件实体应对扩展开放,对修改关闭。
在设计软件模块的时候应该使这个模块可以在不修改的前提下被扩展。
在本系统中,将Dao类的实现推迟到对象子类中实现。
2依赖倒置原如此
不论工厂还是产品都依赖于抽象,而不是具体的实现类。
这样以来,无论底层组件怎么变化,只要抽象组件不变,高层组件就不会发生变化。
4.2抽象工厂模式
4.2.1模式说明
抽象工厂模式提供了一个接口,用于创建相关或者依赖对象的家族,而不需要制定具体的实现类。
抽象工厂模式允许客户使用抽象接口来创建一组相关的产品,客户类和工厂类分开,客户需要任何产品的时候,只需要向工厂请求即可,客户无需修改就可以获得新产品,这样一来,客户就从具体产品中解耦。
实质上是通过对象组合的方式实现应用程序的解耦。
而这样的模式正好适用于订餐者的点餐:
快餐店——生产食物的工厂;
各种食物——工厂生产的产品;
订餐者——客户。
角色关系如如下图所示。
图4.2.1抽象工厂模式角色关系图
4.2.2模式类图
图4.2.2抽象工厂模式类图
4.2.3所用原如此
(1)多用对象组合,少用继承
所谓对象组合,就是让对象作为类的成员变量,通过构造函数或者set方法给类的对象的实例变量赋值。
在本系统中,在订餐者的类中存在一个FastFactory抽象工厂类型的实例变量,订餐者类通过构造方法将对象传入。
(2)针对抽象编程,而不是针对实现编程
当设计一个软件系统的时候,要尽可能的对软件系统中出现的事物进展抽象,从而建立根底的抽象底层,这样做的目的就是让软件的结构更加框架化、系统化,系统结构更加灵活,易维护、易扩展。
(3)产品对象通过对象暴露的方法创建
一个软件系统要达到“高内聚、低耦合〞的要求,应尽量防止在对象实例中使用new关键字创建其他对象实例。
在客户类中,没有创建对象实例的语句,而是调用抽象工厂暴露的方法获得对象实例,创建对象实例的工作全部都是在具体工厂中实现的。
4.3观察者模式
4.3.1模式说明
观察者模式〔发布/订阅模式〕,定义了对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖他的对象都将得到通知并自动更新。
在本系统中,会员与管理员之间便是这种关系:
管理员——被观察的对象,会员——观察者。
当管理员发布优惠信息的时候,主动发出对每个会员的通知。
在具体的实现中,让被观察者管理观察者的对象的接口类型,然后调用接口方法更新观察者。
4.3.2模式类图
图4.3.1观察者模式类图
4.3.3所用原如此
(1)“开—闭原如此〞
观察者对象将自己注册到被观察者的容器中时,被观察者不过问观察者的具体类型,而是使用观察者的接口。
(2)单一职责原如此
在该模式中,一个被观察者可以对应多个观察者,观察者对象都是基于接口而不是具体的实现,这一点为程序提供了更大的灵活性。
当被观察者发生改变时,他可以将消息注意发送给观察者;
而每一个观察者关注于处理各自的内容,不与其他观察者对象产生任何影响,这就是所谓的单一职责原如此。
(3)依赖倒置原如此
在观察者模式中,抽象观察者角色定义了更新的接口,在被观察者对象中,存储的是该抽象类型的集合。
4.4策略模式
4.4.1模式说明
策略模式定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。
策略模式使用多个类来区分不同的行为,使用策略模式防止暴露复杂的、与算法相关的内部数据结构。
在本系统中,快餐店的促销优惠策略就是用了这种策略模式,其中,各种菜目的促销方式就是具体的策略,而订餐者最终的消费金额就是通过每一种优惠策略的算法计算得到的。
4.4.2模式类图
图4.4.1策略模式类图
4.4.3所用原如此
(1)“开—闭〞原如此
在策略模式中,可以在客户端程序运行的时候动态设置需要的具体策略,进展算法的运算,而不需要修改客户端的应用程序就能达到不同算法的行为。
每一种算法用一个独立的类实现,更加易于系统的扩展,增加一种策略只需要新增一个实现抽象策略的接口即可达到目的。
在策略模式中,每一种策略都是使用一个类来实现的,因此各种算法之间没有任何干扰,各种算法都专注于实现自身的处理逻辑,这使得功能模块的耦合度降低,有效的防止了因修改一个策略对其他策略的影响。
4.5单件模式
4.5.1模式说明
单件模式是指确保每个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
在本系统中,数据库连接类只能有一个实例,该类自行创建这个实例,同时该类自行向整个系统提供这个实例,因此,数据库连接类无疑满足了单件模式。
4.5.2模式类图
图4.5.1单件模式类图
4.5.3所用原如此
(1)确保某个类只有一个实例
一个类保证有一个实例,首先要将构造方法设置为private,这样就保证了类不能被外部应用创建;
其次是提供一个方法,该方法供外部应用使用,获得单件对象。
(2)自行实例化并向整个系统提供这个实例
单件模式的设计,必须要有类自身提供那个获得单件对象的方法,而不能由外部应用程序创建对象。
在提供单件对象时,首先应设置一个类的静态实例对象。
结论
经过这段时间的努力,《快餐店多功能点餐系统》论文终于完成了。
在整个设计过程中,出现过很多的难题,但都在教师和同学的帮助下顺利解决了,在不断的学习过程中我体会到:
写论文是一个不断学习的过程,从最初刚写论文时对设计模式的问题的模糊认识到最后能够对该问题有深刻的认识,我体会到实践对于学习的重要性,以前只是明白理论,没有经过实践考察,对知识的理解不够明确,通过这次的论文,真正体会到理论加实践的威力之大。
同时,在这次设计中,我也发现了自己的许多不足。
首先,本系统是之前自己开发的一个不很完整的系统,现在重新修改时,由于设计模式的掌握还不算很全面,走了不少弯路。
其次,由于考虑不是很全面,所以系统功能扩大时,碰到不少困难。
再次,我还应该多掌握些制作方面技术,不断提高自己开发软件的能力。
总之,通过这次非卷面的考试,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待要解决的问题,要耐心、要善于运用已有的资源来充实自己。
同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样才能更加有效。
致谢
行文至此,我的这篇论文已接近尾声;
岁月如梭,我这半年的大学时光也即将敲响完毕的钟声。
回想着我们的第一堂课、看着一门门课程的完毕,心中难免思绪万千,一种感恩之情油然而生。
生我者父母。
感谢生我养我,含辛茹苦的父母。
是你们,为我的学习创造了条件;
是你们,一如既往的站在我的身后默默的支持着我。
没有你们就不会有我的今天。
谢谢你们,我的父亲母亲!
在这半年中,教师的谆谆教诲、同学的互帮互助使我在专业技术和为人处事方面都得到了很大的提高。
感谢电子学院在对我的教育与培养,感谢我的教师,没有你的辛勤劳动,就没有我今日的满载而归,因为有你,使我在这一段宝贵的时光中,既增长了知识、开阔了视野、锻炼了心态,又培养了良好的实验习惯和科研精神。
感谢曾经帮助过我的所有同学。
在此我向你们表示最衷心的感谢。
参考文献
1.《HeadFirst设计模式》中文版
2.《设计模式解析》——AlanShalloway、JamesR.Trott〔著〕
3.《软件体系结构与实践分析》——余雪丽〔主编〕
4.《软件体系结构理论与应用》——李金刚、赵石磊、杜宁〔主编〕
5.《软件秘笈——设计模式那点事》——X阿奇〔主编〕
6.《设计模式之禅》——秦小波〔著〕
7.《设计模式的艺术软件开发人员内功修炼之道》——X伟〔著〕
8.《需求工程——根底、原理和技术》——KlausPohl〔著〕
9.《软件工程与实践》——窦万峰〔主编〕
10.《软件工程标准手册》——石柱〔编著〕
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 体系结构 论文 设计