项目模块修改版Word格式文档下载.docx
《项目模块修改版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《项目模块修改版Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
包含以下子系统/功能模块:
用户管理物品浏览
方案设定
生成租赁订单订单管理、维护留言管理鲜花管理
然后每个功能进行一下详细的描述,按你自己的理解写。
系统的功能可以增删软件开发中的三层架构模式
------------------
提要软件开发过程中的分层模式是最常见的一种架构模式,甚至说分层模式是很多架构模式的基础。
软件开发采用分层模式能够将各个功能分开,实现相对独立的开发模式。
分层模式的关键点在于确定依赖,即通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。
关键词:
分层模式;
架构;
三层
中图分类号:
F49文献标识码:
A
一、分层设计的概念
分层描述是这样一种架构设计过程:
从最低级别的抽象开始,称为第1层,这是系统的基础。
通过将第J层放置在第J-1层的上面逐步向上完成抽象阶梯,直到到达功能的最高级别,称为第N层。
因而分层模式可以定义为:
将解决方案的组件分割到不同的层中。
每一层中的组件应保持内聚性,并且应大致在同一抽象级别,每一层都与它下面的各层保持松散耦合。
架构这个词从它出现后,就有许许多多的程序员、架构师们激烈地讨论着它的发展,但是架构一词的出现,却是随着三层架构的出现才出现的。
当然,目前应用三层架构开发也正是业界最关注的主题。
那么,这里我们来看看单层、双层、三层甚至多层架构到底是怎么一回事。
单层结构是20世纪八十年代以来小型应用的结构,在那个结构化编程充斥的时代,还没有出现架构的概念,典型的是基于Dbase、Foxbase等小型数据库的应用。
双层结构的同义词可以理解为传统的客户/服务器结构,尽管是目前占统治地位的结构,但其封装移植等方面的缺陷,已使它步入暮年,典型是基于Oracle、Infomix等大型数据库的C/S应用。
三层结构是传统的客户/服务器结构的发展,代表了企业级应用的未来,典型的有Web下的应用。
多层结构和三层结构的含义是一样的,只是细节有所不同。
之所以会有双层、三层这些提法,是因为应用程序要解决三个层面的问题。
二、三层架构的划分
三层架构是一种“客户端-服务器”架构,在此架构中,用户接口、商业逻辑、数据保存以及数据访问被设计为独立的模块。
主要有三个层面:
第一层,表现层,GUI层;
第二层,商业对象,商业逻辑层;
第三层,数据访问层。
这些层可以单独开发,单独测试。
为什么要把程序代码分为三层?
把用户接口层、商业逻辑层、数据访问层分离有许多的优点:
1、系统比较容易迁移。
商业逻辑层与数据访问层是分离的,修改数据访问层不会影响到商业逻辑层。
系统如果从用SQLServer存储数据迁移到用Oracle存储数据,并不需要修改商业逻辑层组件和GUI组件。
2、系统容易修改。
假如在商业层有一个小小的修改,我们不需要在用户的机器上重装整个系统,只需要更新商业逻辑组件就可以了。
3、应用程序开发人员可以并行,独立的开发单独的层。
在一个典型的三层架构应用程序中,应用程序的用户工作站包括提供图形用户界面(GUI)的程序设计和具体的应用程序入口表格或交互式窗口。
事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。
第三层包括数据库以及处理读写以及访问数据库的程序,然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。
这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同的程序员组用不同的语言来开发。
因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。
有时候“三层”编起来比较麻烦,在ASP.NET2.0里,访问数据和显示出来只要拖两个控件就可以了(AccessDataSource/SQLDatasource和GridView),几分钟一个页面就出来了,而且还具备了修改中、删除、分页、排序等功能,而用三层架构就麻烦多了,先要写数据访问层的代码,接着写业务逻辑层的代码(要调用数据层的方法),最后才是表示层,也就是页面的设计,还要调用业务逻辑层的代码读取数据。
(注意:
表示层是绝对不会访问数据层的内容,只能通过业务层。
业务层在这里是连接它们的桥梁,所以说业务层是最重要的一层)既然这样,为什么还要用三层呢?
前面提到的一层架构的一个很大的问题就是前台和后台代码没有很好地分开,不利于分工,并且不利于日后的维护和升级。
如果是个人主页或者是一些一个人完成的小系统,用一层还是挺方便的。
如果是一些比较大的系统,特别是企业级的应用,就非用三层甚至n层不可了。
一般三层就够了,再划分更多只会增加设计和编码的难度。
三、如何分层
怎么样分层符合三层架构原则呢?
主要有以下三种分层方式:
1、数据层不包含任何代码,只有数据库,还有相关的存储过程。
这种模式下,数据层看起来就变得很简单了。
只包含所建立的数据库和一些存储过程(注意是存储过程)。
其实这些存储过程的建立也是相当复杂的,因为它们可以完成除数据访问外的其他一些很强大的功能,如分页、实现搜索算法等。
数据访问的逻辑就都放在业务层,当然业务层还包含其他一些逻辑代码。
我们来看一个示例,假设数据库里有一个表BOOKS(书),建立一个存储过程GetAllBooks,用来读取书的信息,这样在业务层里编一个方法GetBookS()和一个公用数据库访问类,GetBooks()就通过数据库访问类打开连接,执行在存储过程,返回数据(返回类型可以是DataTable,DataSet,DataReader或者实体类)。
业务层单独编译成一个或者几个DLL文件。
接着就是表示层了,表示层通过调用GetBookS()返回数据绑定在相关的控件里。
业务层的方法都是在表示层调用。
一般来说book.aspx和book.aspx.cs都是表示层的内容,所有前台的设计、相关控件、数据缓存都是属于表示层。
2、数据层还包含所有公共数据访问代码。
这种模式和前一种差别不大,主要是把数据访问代码留到数据层。
这样可以很方便地实现对多数据库的支持。
业务逻辑层直接调用数据层的相关访问数据的代码,完全不必了解底层是什么数据库。
其他和前一种没什么分别。
3、所有数据读取都放在数据层。
这种模式下像前面所述的GetBooks()方法都是放在数据层,在业务层再定义一个GetBookS()方法以供表示层调用。
这种模式下业务层不但不必了解底层是什么数据库,而且连数据库的结构都不必了解了,这是最标准的三层架构了,在Microsoft的PetShop4.0里就是这种模式。
四、结束语
本文三层架构主要向大家展示的实际上就是一种程序设计的思想,不管是三层架构还是设计模式,它们都是软件工程面向对象思想的完全体现。
目前,我国家软件业相对来说是很落后的,关键问题是软件企业的急功近利和程序员还停留在结构化思想上,不能说你在程序中用的是类就说你的思想是面向对象,也不是说你会使用java编写程序,就说自己懂得面向对象,希望大家能一起进步,直正理解面向对象。
第二篇:
通讯录项目模块开发说明书
模块开发
1标题
通讯录项目:
tongxunlu1.c模块名称和标识符:
添加(input),查找(find),删除(delete)程序编制员签名:
张永龙修改完成日期:
2013.01.232模块开发情况表
通讯录插入查找排序删除保存
3功能说明
3.1、功能划分
总体来说可以分为两部分:
基本功能和扩展功能基本功能:
通讯录的读取、通讯录的存储
扩展功能:
通讯录的插入、删除联系人、查找联系人3.2、功能描述
1通讯录的读取:
要能实时且正确的读取通讯录文件的联系人信息。
通讯录的存储:
能够正确的按照用户的需求存储通讯录信息和及时更改和的通讯录信息。
通讯录的插入:
在正确读取通讯录的情况下,根据用户的要求对通讯录实现按姓名、地址,电话,e-mail,QQ;
从而能让用户更为方便的使用通讯录。
删除联系人:
在正确读取的情况下,根据用户的需求对通讯录中的联系人进行删除操作,然后从新更新通讯录文件。
查找联系人:
在正确读取通讯录的情况下,根据用户可根据姓名查找到所要找的联系人.
4设计说明
本通讯录是一款具有基本通讯信息管理功能的系统。
包括基本添加,修改,删除,查询和输出等功能。
其中联系组是为了更好地管理联系人信息,如常用的组有亲戚,家人,朋友,同学等。
1、组信息管理模块:
◎添加新组信息:
当用户添加一个新组时,这个新组将被添加到group.dat文件的末尾,如果添加的组已存在则返回出错信息。
◎修改已有组信息:
用户首先输入所要修改的联系组,然后系统查询该联系组存不存在。
若存在,则要求用户输入新的信息,并进行替换;
若不存在,则返回错误信息。
◎删除已有组:
用户首先输入所要删除的组,然后系统查询该组存不存在。
如果存在,则先删除该组下的所有联系人的信息,再删除该组;
如果所要删除的信息不存在,则◎联系人查询功能:
按用户输入的查询条件,在file文件中查询相关信息。
若存在符合条件的联系人,则输出相应的联系人信息;
若不存在,则返回出错信息。
5原代码清单
主函数:
2开始建立链表数据初始化Fp=fopen("
record.txt"
"
wb"
))!
=NULLN建立一个文件Y导入内容显示要显示的菜单显示要实现的功能Swith(select())调用input实现添加调用find实现查找调用delete实现删除用exit(0);
退出存盘结束代码:
3intmain(){chainlist*head=NULL;
intselect,n=0;
do{printf("
\n__________________________________________\n"
);
printf("
1.添加了联系人\n"
2.查找联系人\n"
3.删除联系人\n"
4.显示所有联系人\n"
5.保存文件\n"
6.下载文件\n"
0.退出\n"
\n____________________________________________\n"
请输入一个数(0-6):
\n"
scanf("
%d"
&
select);
switch(select){case1:
\n添加联系人\n"
head=input(head);
n++;
联系人的个数:
n);
break;
case2:
\n查找联系人\n"
find(head);
case3:
\n删除联系人\n"
delete(head);
brea