需求分析要求详细、准确地搞清楚系统必须“作什么”,是关系到软 件开发成败的关键阶段。一般说来,需求分析有8个目标: A0:决定是否建立一个系统;
A1:理解最终的软件系统应该解决哪些问题; A2:引出这些问题和系统的一些相关问题;
A3:提供一个与这些问题和系统特征有关的回答问题的基础; A4:决定系统应该做什么; A5:决定系统不应该做什么;
A6:确认系统将能够满足用户的需要,并且定义相应的验收标准; A7:提供一个为系统进行开发的基础。
需求分析的这些目标可由3个子阶段完成:可行性分析主要是完成A0目 标,即要决定是否完成一个系统;需求收集主要完成目标A1〜A6;目标A7 则由需求规格说明完成。
以下是一个需求分析的规格说明,希望同学们看看别人是如何写需求分析 规格说明书的。这只是给大家的一个参考,不一定完全按照它的规格来写, 只是希望同学们能够表述清楚你们要做的系统,以及该系统完成一些什么 功能。
林英
系统规格说明
一、 系统功能和目标:
随着因特网的不断普及,国内的用户数呈指数级增长。作为因特网最为常用的电子邮件系统越来 越受到人们的喜爱,为了满足不断增长的信息交换的需要,各行各业都希望有自己的邮件系统。 广东传讯网络信息有限公司自主设计开发了适合中国国情的免费电子邮件系统,用以解决这一日 益突出的问题。CHINATION免费电子邮件系统是专为免费电子邮件服务商、企业集团设计的电 子邮件系统。 Chination免费电子邮件系统的设计目标是立足于一个高度集成的、功能强大、技术先进的电子邮 件系统。高度集成意味着本系统将把硬盘软件集成在一起。系统是基于LINUX下的,硬盘和软件 的集成使得系统具有绝对的安装优势。功能强大意味着系统的实用性,功能的全面性,系统的安 全性和可靠性。技术先进意味着将最新版本的LDAP,IMAP,POSTFIX,MYSQL,APACHE和 PHP的巧妙结合。
本系统要实现的主要功能有:
1. 用户申请注册功能:用户通过申请可以得到一个自己命名的信箱,容量大小为10M。
2. 用户忘记密码处理功能:用户忘记密码可以通过注册时设置的密码提示问题来重设密码。
3. 用户收邮件功能:它包括SMTP收邮件、POP3取邮件和WWW读邮件三种方式。
4. 用户发邮件功能:它包括SMTP发邮件、WWW直接发送邮件、暗送邮件、抄送邮件、定时 发送
邮件。
5. 用户信件处理功能:系统初始设置4个文件夹来分类处理信件:收件箱、发件箱、草稿箱和 垃圾
箱。用户还可以自己建立新的文件夹。信件在各个信箱之间可以相互移动。
6. 用户查找功能:用户可以使用查找功能通过查找信件主题或信件内容来找到自己需要的信件。
7. 用户信箱配置设置:它包括个人资料更改、密码更改、参数设置、POP3服务器设置、过滤器 设
置、自动转信、定时发信、签名设置。
8. 管理员管理用户和信箱邮件功能:包括输入(增删改)、查询、统计、报表。系统性能参数 设置。
9. 广播功能:它用于公司定期向一定的用户发送信息,由于一般的用户数有一定数量,所以必 须用
数据库管。
二、 可行性分析
1. 技术可行性
本软件拟决定最终在分布式系统上来运行。硬件方面,由于广东传讯网络信息有限公司是国外多 家公司并行处理产品的代理商,而且自己本身拥有ALPHA机等先进设备,所以有足够能力开发 出先进的电子邮件系统。软件方面,我们拟采用以下几种软件:
1) 操作系统用LINUXo Linux作为一个优秀的网络操作系统,它的发行版本中集成了大量的网 络应用软件,如Web服务器(apache)、Ftp服务器(wu-ftp)、邮件服务器(sendmail+imap4)、SQL数 据库(postgresql)等,可以快速的构建Intranet环境,并且也有精致的邮件收发程序(metamail)和强 大的Web服务器端开发工具(PHP4)。当你配置好sendmail并激活imapd后,你的Linux用户都可 以使用Outlook等客户端软件进行邮件收发,只要通过将它们集中进行应用,便可以实现一个简 单的Webmail服务器的功能。但是随着自由软件的不断开发,要构架一个好的电子邮件系统,就 面临着软件选择是否适当、性能是否比别人好的问题。下面列出我们所使用的软件。
2) 本系统内壳软件用imap。有几种方法可以构造电子邮件系统的内壳:共享文件系统的策略, 基于局域网的专用协议,X.400P7协议和因特网消息存取协议。而基于INTERNET的协议主要有: POP (Post Office Protocol), DMSP (Distributed Mail System Protocol),和 IMAP (Internet Message Access Protocol).POP是最原始,最为人们所知的一种。DMSP仅局限于一个简单应用——PCMAIL, 它的优点主要在于对脱机状态操作的支持。IMAP不但继承了 POP和DMSP的优点,而且超越了 他们的缺点,提供了三种状态下对远程信箱的访问:在线、不连接和脱机状态。在脱机状态,邮 件可以发送到一个共享的服务器,但是邮件客户并不是马上全部把它们COPY过去之后在服务器 上删掉它们,而是处于一种客户一一服务器交互的模式,客户可以询问服务器有关的信头、正文 或一些状态标志(如“ DELETE”,\" ANSWER ”等)。IMAP可以以本地的方式操作远程信箱。
IMAP的优点主要在于:它可以操作持续的消息状态标志;它可以存取消息而且随时访问它们; 它可以访问和管理多个信箱;它支持对共享信箱的并发访问和修改;适合存取非EMAIL数据,如 网络杂志和资料;它能以最短连接时间和最小空间开销来使用脱机范式;它有用来管理用户配置 的伴随协议;它允许在线性能优化,特别是在低速连接的情况下。
3) 用 OPENLDAP 作为目录服务器软件。LDAP (Lightweight Directory Acess Protocol)是目录服 务在TCP/IP上的实现(RFC 1777 V2版和RFC 2251 V3版)。它是对X500的目录协议的移植, 但是简化了实现方法,所以称为轻量级的目录服务。在LDAP中目录是按照树型结构组织,目录 由条目(Entry)组成,条目相当于关系数据库中表的记录;条目是具有区别名DN (Distinguished Name)的属性(Attribute)集合,DN相当于关系数据库表中的关键字(Primary Key);属性由 类型(Type)和多个值(Values)组成,相当于关系数据库中的域(Field)由域名和数据类型组 成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低 数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织 关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件 数据库,而不是关系数据库。LDAP协议集还规定了 DN的命名方法、存取控制方法、搜索格式、 复制方法、URL格式、开发接口等。Linux支持的LDAP服务器一般有Michigan大学开发的免费 软件包和Openldap组织基于Michigan大学的开发包提供的Openldap免费软件发行包,其中 Openldap发行包安装配置更加简单。
4) WEB服务器端用APACHE+PHP4+MYS
。
1。自由软件开放原代码的好处就不用多说了
5) 系统软件用POSTFIX。由于电子邮件是一种非常传统的工具,因此有非常多的软件可以用来 达到这个目的,这里面包括从古老的uucp邮件到非常庞大的商业群件系统,如Lotus Domino
Server,但使用最广泛的还是一种自由软件 ----- endmail,它支撑了当前Internet邮件系统的主体。 无论从使用的广泛程度,还是从代码的复杂程度来讲,sendmail都是一个非常优秀的软件。如果 使用它来构建网站的电子邮件系统,基本上不必费心,因为几乎所有的Unix的缺省配置中都内置 这个软件,只需要设置好操作系统,它就能立即运转起来。然而,Internet用户的要求更为苛刻, 纷纷指出sendmail中包含的各个不足之处。第一个重要的缺点是它的安全性较差这是因为当其作 者Eric Allman最初开始写作这个软件的时候,Internet的用户还很少,因而安全性并不没有得到 大家的重视。此外,也是由于其早期的Internet用户数量及邮件数量都相当小,Sendmail的系统结 构并不适合较大的负载,对于高负载的邮件系统,需要对Sendmail进行复杂的调整。另一个问题 是它的设置相当复杂,对于使用缺省设置来收发电子邮件,问题并不存在。当管理员打算进行一 些特殊设置,以便利用Sendmail提供的复杂邮件处理能力时,就不得不面对复杂的宏和正则表达 式。Postfix同样也是采用了模块化的方式,但与Qmail不同的是,Postfix使用了一个主控进程进 行监控。Postfix在很多方面都考虑到了安全问题,它甚至不向root分发电子邮件,以避免以root 身份读写文件或启动外部程序。Postfix提供的一些强大的功能主要在于多种数据库表查询方式, 例如它支持DB、DBM、passwd文件、正则表达式、MySQL数据库以及LDAP方式的查询,用 于支持系统级的别名、虚拟主机等。虽然在Qmail中也能支持这些功能,但没有象Postfix那样统 一、简洁。此外,更改Postfix的设置之后,也不需要重新启动整个系统,只需要使用postfix reload 就能完全刷新配置,这也避免了丢失邮件的可能性。
6)服务器性能优化软件ZEND OPTIMIZER. ZEND OPTIMIZER的工作机理是通过在检查ZEND 动态编译器产生的代码的过程中优化它们来加快程序的运行速度。在PHP4的ZEND引擎中ZEND OPTIMIZER的工作是位于ZEND动态编译过程和运行过程的中间。PHP4中的ZEND动态编译器 产生代码的速度相当于PHP3产生代码速度的2-10倍。如果一个系统中用了 ZEND OPTIMIZER 执行速度又会快40%-60%。
以上软件的组合绝对保证了整个系统的安全性、稳定性、可靠性和可扩展性。
2. 经济可行性
伴着LINUX的日益风靡,自由软件种类越来越多,性能越来越好。本系统的开发拟采用自由软 件,这不仅保证了系统的技术可行性,还保证了系统的经济可行性。自由软件大大地降低了开发 成本,也降低了产品成本。
另一方面,本系统产品化后,其将硬件软件一体化的独到经营思路必能引发经常性收益。
3. 社会可行性
本系统的社会可行性主要体现在以下几方面:
1) 自由软件的使用使得在软件方面避免了任何版权、专利权等法律问题的纠缠。
2) 本系统软件硬件一体化解决了当前自由软件安装配置难的问题,满足了用户的需要。
3) 由于开发成本的降低使得产品价格也会在市场上占据绝对优势。
需求规格说明
一、 任务概述
需求分析工作是软件生存期中重要的一步,也是起决定性的一步。我们试图通过它来全面了解整 个系统的软件功能和性能方面的要求,为软件设计打下坚实的基础。该部分的目标主要有:获得 当前系统的物理模型,了解当前系统是如何运行的;抽象出当前系统的逻辑模型,对物理模型进 行筛选,得到与软件系统有关的部分;建立电子邮件系统的逻辑模型,得出数据流图和数据字典; 补充目标系统的逻辑模型,对目标系统的用户界面,至今尚未考虑的细节进行说明。
二、 数据描述
1. 数据库描述
本系统自始至终都是在通过数据库操作,对数据库的性能要求特别高。平均每个操作要访问数据 库C1次,每次访问数据库要检索数据记录CN条(N为用户数,C,C1为访问系数)。所以数 据库访问的频率是C1*C*N*M(M表示每秒在线用户的平均数)。数据库中有些表的属性比较多, 而且某些表的数据将用来检索用户的邮箱,所以要求数据库的访问能力比较强。本系统的数据库 用LINUX的MYSQL.MySQL是一个小巧灵珑的数据库服务器软件,对于应用系统是非常理想的。 除了支持标准的ANSI SQL语句,它还支持多种平台,而在Unix系统上该软件支持多线程运行方 式,从而能获得相当好的性能。对于不使用Unix的用户,它可以在Windows NT系统上以系统服 务方式运行,或者在Windows 95/98系统上以普通进程方式运行.PHP-MySQL的组合还可以跨平 台运行,这意味着可以在Windows上开发,然后在Unix平台上运行。
2. 数据流图
本系统的运行流程主要是在用户和系统之间交互进行。用户分为新用户和巳注册用户,因为新用 户的注册和巳注册用户的流程相对比较,所以整个系统的数据流图分两部分。系统的一级流 图如下所示:
图1:新用户注册的一级数据流图
原注册信息 已 注 册 用 户 登录信息原信箱
忘记密 码处理
新注册信息
已
注
册
用
处理
更改后信箱
户 已 登
更改后信箱
读邮牛
录
用
登录
原信箱
更改后■信箱
登录信息
浏览信 箱首页
原信箱
发邮牛
查找结果
查找内容
更改后信箱
查找
原信箱
配直
图2:巳注册用户的一级数据流程图
原系统
系统 管理
更改后系统
图3:系统管理一级数据流程图
3. 数据流条目:
1) 数据流名:用户信息
组成:用户名+姓名+密码+密码提示问题+问题回答+传呼机+传真机+手机号码+性别+出生日期+ 婚否+最高学历+职业+你的公司名+公司规模+工作状况+公司主页+希望加入的群组+所在省份
2) 数据流名:巳注册信息
组成:用户名+姓名+密码+密码提示问题+问题回答+传呼机+传真机+手机号码+性别+出生日期+ 婚否+最高学历+职业+你的公司名+公司规模+工作状况+公司主页+希望加入的群组+所在省份
3) 数据流名:登录信息 组成:用户名+登录密码
4) 数据流名:原信箱
组成:用户名+收件箱+发件箱+垃圾箱+草稿箱+自定义文件夹+信箱配置
4. 加工说明:
1) 加工名:注册 输入数据:用户信息 输出数据:巳注册信息
加工逻辑:根据用户输入的用户信息在数据库中作相应的记录,并给用户新建一个信箱。
2) 加工名:忘记密码 输入数据:原注册信息 输出数据:新注册信息
加工逻辑:用户输入巳注册的用户名和密码提示问题的答案,系统验证后让用户修改密码,系统 存储新密码。
3) 加工名:邮件处理 输入数据:原用户信箱 输出数据:更改后的信箱
加工逻辑:邮件处理子系统按照用户的要求对原用户信箱进行增加、删除文件夹操作,信件移动、 删除操作
4) 加工名:读邮件 输入数据:原用户信箱
输出数据:更改后的信箱
加工逻辑:用户在原信箱中阅读邮件,并可对邮件进行回复、删除、存地址、拒收等操作。
5) 加工名:登录
输入数据:用户输入登录信息 输出数据:进入信箱首页
加工逻辑:将用户输入的登录信息和数据库比较,如果是巳注册用户则调用信箱首页,否则根据 错误给出相应提示。
6) 加工名:浏览信箱首页 输入数据:登录模块 输出数据:信箱内各子模块
加工逻辑:按照登录信息检索出用户的邮箱,并按一定的格式进行统计和显示。
7) 加工名:发邮件 输入数据:原用户信箱 输出数据:更改后信箱
加工逻辑:按用户的要求对原用户信箱进行操作,发邮件、保存信件、暗送、抄送等
8) 加工名:查找 输入数据:查找内容 输出数据:查找结果
加工逻辑:根据查找内容在所有信件的主题中或信件找出所有的符合要求的信件。
9) 加工名:配置 输入数据:原用户信箱 输出数据:更改后的用户信箱
加工逻辑:根据用户的要求对用户的信箱配置进行修改。
三、功能需求:
1 .功能划分
邮箱申请功能 忘记密码处理功能 邮箱管理功能 系统管理功能 文件夹管理功能 读信件功能 电子邮件系统 信件收发功能 地址本,配置功能
图4:电子邮件系统功能结构图
2. 功能描述
1. 用户申请注册功能:用户通过申请可以得到一个自己命名的信箱,容量大小为10M。 2. 用户忘记密码处理功能:用户忘记密码可以通过注册时设置的密码提示问题来重设密码。 3. 用户收邮件功能:它包括SMTP收邮件、POP3取邮件和WWW读邮件三种方式。
4. 用户发邮件功能:它包括SMTP发邮件、WWW直接发送邮件、暗送邮件、抄送邮件、定时 发送邮件。
5. 用户信件处理功能:系统初始设置4个文件夹来分类处理信件:收件箱、发件箱、草稿箱和 垃圾箱。用户还可以自己建立新的文件夹。信件在各个信箱之间可以相互移动。
6. 用户查找功能:用户可以使用查找功能通过查找信件主题或信件内容来找到自己需要的信件。 7. 用户信箱配置设置:它包括个人资料更改、密码更改、参数设置、POP3服务器设置、过滤器 设置、自动转信、定时发信、签名设置。
8. 置。
管理员管理用户和信箱邮件功能:包括输入(增删改)、查询、统计、报表。系统性能参数 设
9. 广播功能:它用于公司定期向一定的用户发送信息,由于一般的用户数有一定数量,所以必 须用数据库管。
四、运行需求
1 .用户接口
免费电子邮件系统作为一个面向大众的应用系统,对人机界面要求很高。网页格式必须大众化, 争取和一般的邮件系统(如163, 21CN等)的格式大致不变,以便于用户能马上掌握系统的操作 方法。当
然风格上可以有自己的特色。报表的格式要求和一般的报表格式一致,其打印方式采用 浏览器打印。
在系统的用户注册和登录以及发送邮件等功能上要充分利用ENTER键,这样可以大大的方便用 户,其他操作均采用触发的方式。
2、 硬件接口
本系统也可采用分布式处理的方式,故要求到多台服务器的并行连接。
3、 软件接口
本系统所用到的软件产品列出如下:
操作系统:REDHAT LINUX 6.2
邮件用户认证系统:openldap-1.2.9-5,pam-0.72-6
IMAP,POP3 邮箱系统:cyrus-imapd-1.6.22, cyrus-sasl-1.5.21
邮件发送系统:postfix-19991231-pl06
数据库系统:MySQL-3.22.32-1
Web 发布系统:Apache-1.3.12, PHP-4.0
五、属性需求
在可使用性方面,要求各个功能实现简单,操作方便,系统处理正确;整个系统恢复性能好,重 启动速度快,以确保软件可使用性好。
在安全保密性方面,系统需设置防火墙。另外,还要求系统的可扩展性、可维护性、可移植性良 好。