Java软件工程与项目案例教程(三).ppt
Java软件工程与项目案例教程(三),主要内容,1、软件需求分析概述2、软件需求分析过程 3、项目案例,3.1 软件需求分析概述,需求分析是整个项目开发流程的第一个环节,它是在用户和软件开发组之间建立对用户的共同理解,由软件开发组进行分析、精化并详细描述后,按文档规范编写出软件需求规格说明书(Software Requirement Specification,SRS)的过程。软件需求分析特别重要。在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中简单步骤,但在过去十几年中越来越多的人认识到它是整个过程中最关键的一个过程。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。许多大型应用系统的失败,最后均归结到需求分析的失败:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。特点:(1)用户与开发人员很难进行交流(2)用户的需求是动态变化的(3)系统变更的代价呈非线性增长,3.2 软件需求分析过程,3.2.1 什么是软件需求从根本上讲,软件需求就是为了解决现实世界中的特定问题,软件必须展现的属性。软件需求的组成关系如下图,软件需求的属性包括可验证性、优先级、唯一性和定量化。可验证性可验证性是软件需求的基本属性。软件需求必须是可验证的,否则软件的评审和测试就没有相应的依据。优先性软件需求具有优先级,应该能够在有限的资源(资金、人员、技术)情况下进行取舍。唯一性软件需求应唯一地标识出来,以便在软件配置管理和整个软件生命周期中进行管理。定量化软件需求应尽可能地表述清楚,没有二义性,进行适当的量化,应避免含糊、无法测试、无法验证的需求出现。软件质量的可靠性和用户界面的友好性等非功能性需求的量化尤为重要。例如,系统应支持2000个并发用户,系统回应时间应低于10秒,这就是需求的量化。,3.2 软件需求分析过程,3.2.2 需求过程中的角色如下图所示:,3.2 软件需求分析过程,3.2.3 需求过程迭代软件需求分析是一个不断认识和逐步细化的过程。该过程将软件计划阶段所确定的软件范围(工作范围)逐步细化到可详细定义的程度,并分析出各种不同的软件元素,然后为这些元素找到可行的解决办法。需求过程要适应客户和项目的环境,并作为配置项纳入配置管理。当前的软件业面临着巨大竞争压力,要求软件企业有更低的构建成本和更短的开发周期。有些项目受环境的影响很大,有些项目是对原有项目的升级,有些项目客户要求在指定的架构下完成。在项目初期,客户不能完全确定需要什么,对计算机的能力和限制不甚了解,所以需求过程很难是一步到位的过程。随着项目的深入,需求将随时间变化而发生变化。因此,需求过程是一个迭代的过程,每次迭代提供更高质量和更详细的软件需求。这种迭代会给项目带来一定的风险,上一次迭代的设计实现可能会因为需求不足而被推翻。但是,系统分析师应根据项目计划,在给定的资源条件下得到尽可能高质量的需求。,3.2 软件需求分析过程,3.2.4 需求的来源(1)系统目的(2)行业知识(3)软件涉众(4)运行环境(5)组织环境软件涉众:应充分考虑不同软件涉众的需求,如果只强调某一角色的需求,忽略其他角色的需求,往往将导致软件系统的失败。系统分析师应从不同涉众的角度去识别、表述他们的需求。用户的文化差异、客户的组织结构,常常会是系统难以正常实施的原因。,3.2 软件需求分析过程,3.2.5 需求获取的方法(1)实地参加(2)开调查会(3)请专人介绍(4)面谈(5)设计调查表请用户填写(6)查阅记录,3.2 软件需求分析过程,3.2.6 软件需求的表达如何有效地表达软件需求?我们这里建议使用用例建模技术。用例建模技术是 10 多年来最重要的需求分析技术,在保障全球各类软件的成功开发中发挥了极其重要的作用.实践证明,用例技术是迄今为止最为深刻,准确和有效的系统功能需求描述方法.功能需求是指系统输入到输出的映射以及它们的不同组合,任何功能必然要通过外部环境与系统之间的交互才能完成,因此,我们可以在内容和形式上把用例和系统的功能需求等同起来。用例建模技术不同于结构化功能分解的特点有:1)显式地表达用户的任务目标层次,突出系统行为与用户利益间的关系;2)通过描述执行实例情节(交互行为序列、正常/非正常事件流)能够完整地反映软件系统用以支持特定功能的行为;3)以契约(前/后置条件等)的形式突出了用户和系统之间常常被忽略的背后的关系;4)部署约束等非功能需求与系统行为直接绑定,能够更准确地表达此类需求。,3.2 软件需求分析过程,基于用例的需求表达体系如下图3-2所示 基于用例的需求表达体系,3.2 软件需求分析过程,1、用例图(1)用例图概述用例建模技术离不开用例图。在UML中,用例图又叫做用况图,有时又称为Use Case 图。它用于定义系统的行为、展示角色(系统的外部实体,即参入者)与用例(系统执行的服务)之间的相互作用。用例图是需求和系统行为设计的高层模型,它以图形化的方式描述外部实体对系统功能的感知。用例图从用户的角度来组织需求,每个用例描述一个特定的任务,如表3-2所示。表3-2用例图概述,3.2 软件需求分析过程,用例模型可以在不同层次上建立,具有不同的粒度。(2)用例层次 我们把用例划分为3个目标层次:概要层,用户目标层和子功能层,并通过引入巧妙的Why/How技术帮助分析者找到合适的目标层次,从而可以有效地把握用例的粒度(真正的用例最终应落实到用户目标层)。值得注意的是,我们在实践中应该尤其关注用户目标层用例.引入概要层用例的主要目的是为了包含一个或多个用户目标层用例,为系统提供全局功能视图,提出子功能层用例则是为了表达用户目标层用例的具体实现步骤。(3)用例范围 根据范围的不同,用例可分为业务用例和系统用例两种 1)业务用例-在业务中执行的一系列动作,这些动作为业务的个体主角产生具有可见价值的结果-实质是业务流程-可以分为核心业务用例,支持业务用例,管理业务用例-主要包括业务角色,业务活动,业务实体,业务规则2)系统用例-是系统执行的一系列动作,这些动作将生产特定主角可观测的结果值-主要包括系统角色和系统的一系列的交互过程,3.2 软件需求分析过程,3.2 软件需求分析过程,如果某个SuD或者用例的范围包含了人以及由人组成的团队,部门,组织的活动,那么针对这个SuD写出的用例必然是业务用例;如果该SuD仅仅是一些软件,硬件,机电设备或由它们组成的系统,并不涉及到人的业务活动,那么根据这个SuD写出来的就是系统用例。(4)用例关系1)角色和角色之间-继承关系:表示子类角色将继承父类角色在用例中所能担任的角色2)角色和用例之间-使用关系:表示角色将使用用例提供的服务3)用例和用例之间-包含关系:通常是指一个大的用例包含了几个小的用例,几个小的用例组成一个大的用例。-扩展关系:基于扩展点之上的两个独立用例,扩展用例为基本用例的实例增添新的行为,其实质是扩展事件流的延伸,两个用例本身都是独立的。-继承关系:父用例可以特化形成一个或多个子用例,这些子用例代表了父用例比较特殊的形式。子用例继承父用例的所有结构、行为和关系。,3.2 软件需求分析过程,表现几种关系的实例如下图3-3:图3-3 用例关系实例,3.2 软件需求分析过程,2、用例描述用例模型除了绘制用例图外,还要对用例进行描述,也就是详细展开每个用例的内容。用例描述可以是文字性的,也可以用活动图进行说明。文字性的用例描述模板如表3-3所示。以“借书登记”为例,其具体的用例描述如表3-4所示。右表 用例描述模板,3.2 软件需求分析过程,右表 借书登记用例描述,3.2 软件需求分析过程,3、用例优先级(1)为什么要设定需求的优先级每一个具有有限资源的软件项目必须理解所要求的特性、使用实例和功能需求的相对优先级。设定优先级意味着权衡每个需求的业务利益和它的费用,以及它所牵涉到的结构基础和对产品的未来评价。项目经理必须权衡合理的项目范围和进度安排、预算、人力资源以及质量目标的约束。设定优先级有助于项目经理解决冲突、安排阶段性交付,并且做出必要的取舍。当客户的期望很高、开发时间短并且资源有限时,必须尽早确定出所交付的产品应具备的最重要的功能。建立每个功能的相对重要性有助于规划软件的构造,以最少的费用提供产品的最大功能。当采用渐增式开发方式时,设定优先级就特别重要,因为在开发过程中,交付进度安排很紧,并且日期不可改变。必须排除或推迟一些不重要的功能。(2)系统分析员的态度和做法在需求分析阶段,分析人员应该明确的提出需求的优先级和处理策略,并在软件需求规格说明书中明确说明。应当在项目的早期阶段设定优先级,这有助于逐步作出相互协调的决策,而不是在最后阶段匆忙决定。,3.2 软件需求分析过程,你评价优先级时,应该看到不同需求之间的内在联系,以及它们与项目业务需求的一致性。在判断出需求的低优先级之前,如果开发人员已经实现了将近一半的特性和功能,那这将是一种浪费,这个责任应该由分析人员承担。(3)设定优先级的方法与在客观世界人们对事务的分类习惯与方法相一致,系统需求的优先级设定分成三类。例如:高、中、低;基本的、条件的、可选的、3、2、1。具体描述见下表3-5:,表3-5 系统需求的优先级分类,3.3 项目案例,3.3.1 学习目标 理解软件需求分析的概念及其重要性。掌握需求分析中的用例建模技术。掌握软件需求的表达和软件需求规格说明书的编写。3.3.2 案例描述 本案例体现了真实的软件需求规格说明书文档。该eGov电子政务项目文档展现了功能和非功能需求及其文档的标准格式,通过它我们可以更好地熟悉和理解软件需求的表达。3.3.3 案例要点 在实际工作中,我们需要将需求分析过程通过软件需求文档记录下来。软件需求文档虽然可以有各种不同的格式,但它的主要内容包括用例描述和界面导航图。,3.3 项目案例,3.3.4 案例实施 eGov电子政务项目需求规格说明书1.引言1.1 编写目的此需求规格说明书对项目的背景、范围、验收标准和需求等信息进行说明,包括功能性需求和非功能性需求,确保对用户需求的理解一致。预期的读者有(甲方)的需求提供者、项目负责人、相关技术人员等,北京亚思晟商务科技有限公司(乙方)的项目组成员,包括项目经理、客户经理、分析/设计/开发/测试等人员。1.2 背景电子政务系统是基于互联网的应用软件。在研究中心的网上能了解到已公开发布的不同栏目(如新闻、通知等)的内容,各部门可以发表栏目内容(如新闻、通知等),有关负责人对需要发布的内容进行审批。其中,有的栏目(如新闻)必须经过审批才能发布,有的栏目(如通知)则不需要审批就能发布。系统管理人员对用户及其权限进行管理。,3.3 项目案例,1.3 定义无1.4 参考资料电子政务系统理论和实践2.任务概述2.1 目标电子政务系统是基于互联网的应用软件,通过此系统可以实现权限分配、内容管理和审核等核心业务,实现政府及事业单位组织结构和工作流程的优化重组,超越时间、空间和部门分隔的限制,建成一个精简、高效、廉洁、公平的运作模式,以便全方位地向社会提供优质、规范、透明、符合国际水准的管理与服务。该软件系统是一项独立的软件,整个项目外包给北京亚思晟商务科技有限公司来开发管理。2.2 用户的特点本软件的最终用户为组织内的日常使用者,操作人员和维护人员有较高的教育水平和技术专长,同时使用的用户数量初步估计为几百人。,3.3 项目案例,2.3 假定和约束假定此系统为自包含的,不过分依赖其他外部系统。本项目的开发期限为3个月。3.需求规定3.1 对功能的规定整体功能用例图(Use Case Diagram),见图1。,3.3 项目案例,图1,3.3 项目案例,3.1.1 一般用户浏览的内容管理:首页显示及其他页面首页显示是数据量最大的一页,是为所有模块展示内容的部分。从该页还可以登录进入管理等后端功能模块。如图2所示,最上面为头版头条栏目,左栏下部为职能部门通知,右栏下部为综合新闻类等,左栏上部为用户登录入口。,3.3 项目案例,图2,3.1.2 系统管理系统管理是给系统管理人员使用的,主要包括以下功能模块:登录、栏目业务设置、栏目权限设置、用户管理设置。,3.3 项目案例,一、登录1用例描述(1)角色:注册用户(用户和管理员)(2)前提条件:无(3)主事件流:用户登录该网站的登录页面(E1);显示登录页面信息,如用户名,密码;输入用户名和密码,单击“登录”按钮(E2);验证登录信息;加载用户所拥有的权限信息,并显示在页面上。(4)异常事件流:E1:键入非法的标识符,指明错误。E2:用户账号被管理员屏蔽,无法登录。2用户界面图,图3,3.3 项目案例,输入正确的用户名和密码后进入系统管理的入口页面(见图4)。,图4,3.3 项目案例,二、栏目业务设置1用例描述(1)角色:管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:当用户登录该网站(E1)后,单击“栏目业务设置”链接;进入栏目业务设置页面;设置每个栏目的内容管理(S1)和内容审核(S2)(单击内容管理图标会更改)。(4)分支事件流:S1:设置内容管理。3.1.1 单击“内容管理”链接3.1.2 内容管理和内容审核的权限改变3.1.3 返回栏目业务设置页面S2:设置内容审核。3.2.1 单击“内容审核”链接3.2.2 内容审核的权限改变3.2.3 返回栏目业务设置页面(5)异常事件流:E1:用户账号被管理员屏蔽或删除,无法设置,提示重新激活账号。,3.3 项目案例,2用户界面图单击“栏目业务设置”链接,进入该模块,设定栏目是否具有内容管理和内容审核的权限。栏目业务设置是整个系统管理模块的最高级权限设置,它的操作可以影响到栏目权限设置,以及所有的与本栏目有关的权限设置,如图5所示。,每个栏目可以设定是否具有内容管理和内容审核的权限,对于某些栏目(如新闻),二者都有,因为新闻必须经过有关领导审核批准才可以在网上发布;而对于某些栏目(如通知),只需要内容管理,不需要内容审核就可以在网上发布。,图5,3.3 项目案例,三、栏目权限设置1用例描述(1)角色:管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:当用户登录该网站后,单击“栏目权限设置”链接;进入栏目权限设置页面;单击“设置”按钮;进入栏目权限设置的具体页面;选中用户名,单击“添加”(S1)或“删除”(S2)按钮,然后保存修改;该栏目的用户被添加或删除;返回栏目权限设置页面。,3.3 项目案例,(4)分支事件流:S1:添加用户。5.1.1 选中用户后单击“添加”按钮5.1.2 添加用户5.1.3 单击“返回”按钮5.1.4 返回栏目权限设置页面S2:删除用户。5.2.1 选中用户后单击“删除”按钮5.2.2 删除用户5.2.3 单击“返回”按钮5.2.4 返回栏目权限设置页面,2用户界面图单击“栏目权限设置”链接,进入该模块,主要是分配给用户对于栏目的管理权限,这个业务也是此项目的核心,需要在所有部门里选择用户分配权限,如图6所示。,3.3 项目案例,图6,单击“设置”链接,进入如图7所示的页面。,图7,3.3 项目案例,页面中左面显示用户过滤,也是备选用户,右面显示管理权限和审核权限。选择不同部门时,该部门的所有人员应该显示在备选用户列表里。单击上面的“增加”按钮时,用户会放入管理权限列表里;单击下面的“增加”按钮时,用户会放入审核权限列表里。这里有一个业务大家要记住:一个用户不可以既分配到管理权限又分配到审核权限。四、用户管理设置,1用例描述(1)角色:管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:当用户登录该网站后,单击“用户管理设置”链接;进入用户管理设置页面;单击“新增”按钮(S1)、“修改”按钮(S2)和“删除”按钮(S3)。,3.3 项目案例,(4)分支事件流:S1:单击“新增”按钮:3.1.1 单击“新增”按钮3.1.2 进入添加新用户页面3.1.3 添加用户基本信息,单击“添加”(E1)按钮3.1.4 保存用户信息3.1.5 返回用户管理设置页面S2:单击“修改”按钮。3.2.1 单击某条用户信息的“修改”按钮3.2.2 进入修改用户页面3.2.3 修改用户资料,单击“修改”按钮3.2.4 更新用户信息3.2.5 返回用户管理设置页面S3:单击“删除”按钮。3.3.1 单击某用户的“删除”按钮3.3.2 删除该用户3.3.3 返回用户管理设置页面,3.3 项目案例,(5)异常事件流:E1:键入非法的标识符,指明错误。2用户界面图单击“用户管理设置”链接,进入该模块。用户管理设置页面用于显示用户、添加用户、修改用户、删除用户。(1)显示用户(见图8)。,图8,3.3 项目案例,(2)添加用户:单击“新增”按钮,显示见图9。输入新的用户信息,然后提交。(3)修改用户:单击“修改”按钮,显示见图10。,图9,3.3 项目案例,图10,(4)删除用户:单击“删除”按钮,用于删除用户。3.1.3 内容管理和审核该部分主要包括以下功能模块:用户登录、新闻的编辑、修改、屏蔽、删除、通知的编辑、修改、删除、新闻的审核等。,3.3 项目案例,一、登录1用例描述(1)角色:注册用户(用户和管理员)(2)前提条件:无(3)主事件流:用户登录该网站的登录页面(E1);显示登录页面信息,如用户名、密码;输入用户名和密码,单击“登录”按钮(E2);验证登录信息;加载用户所拥有的权限信息,并显示在页面上。,3.3 项目案例,(4)异常事件流:E1:键入非法的标识符,指明错误。E2:用户账号被管理员屏蔽,无法登录。2用户界面图输入用户名和密码,进入系统(见图11)。,图11,3.3 项目案例,当用户进入系统时,应该看到自己的权限范围,不同的用户拥有不同的权限。见图12这个用户具有的权限是对1个栏目的内容管理权限。如果我们用另外一个用户登录,那么结果就不同了,见图13。,图12,图13,3.3 项目案例,二、新闻管理(新闻的编辑、修改、屏蔽、删除)1用例描述(1)角色:管理员和高级管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:用户通知进入系统;单击“新闻管理”链接;进入新闻管理页面(新闻列表);单击“新增”按钮(S1)、“修改”按钮(S2)和“删除”按钮(S3)。(4)分支事件流:S1:单击“新增”按钮4.1.1 单击“新增”按钮4.1.2 进入新闻添加页面4.1.3 填写通知资料(E1)4.1.4 单击“保存”按钮4.1.5 验证信息,保存数据4.1.6 返回通知新闻页面(新闻列表),3.3 项目案例,S2 单击“修改”按钮4.2.1 单击“修改”按钮4.2.2 进入新闻修改页面4.2.3 更改新闻数据单击“修改”按钮4.2.4 验证信息,保存数据4.2.5 返回新闻管理页面S3:单击“删除”按钮4.3.1 在要删除的记录前打勾,单击“删除”按钮4.3.2 删除信息4.3.3 返回新闻管理页面(5)异常事件流:E1:键入非法的标识符或者格式不对,指明错误。2用户界面图(1)新闻管理新闻编辑单击内容管理中的“综合新闻管理”,进入新闻编辑页面,见图14。,3.3 项目案例,图14,大家不要忽略了新闻发布的预览功能,如图15所示。预览效果和发布后的最终效果是一样的,这里如果符合标准、那么就可以提交了。,3.3 项目案例,图15,3.3 项目案例,提交后的浏览页应该根据时间进行倒序,以保证最后发布的新闻在第一条上。刚刚发布的新闻的发布状态是待审(已经提交了,但是要等待审核),就是要等待有审核权限的人审核这条新闻,通过后才能发布上去。,(2)新闻管理新闻修改对于任何一个通过审核的新闻,都必须符合这里修改的规则,也就是当新闻处于发布状态时,任何人都不得修改新闻,只有新闻处于屏蔽状态或者为待审时才可以修改。对于发布、待审、屏蔽等注释的数字在数据字典中都有,大家可以去查询。如果我们要修改已经发布的新闻(见图16)那么应该给用户返回一个友好的界面,如图17所示。,如果新闻没有发布,则可以修改,如图18所示。,3.3 项目案例,(3)新闻管理新闻屏蔽新闻屏蔽功能是当一个新闻要在首页新闻栏目中被撤下时所具有的功能,如图19所示。在浏览页上可以看到发布状态就是对新闻存在状态(status)的标注,这时如果去删除或者修改一个已经发布的新闻,系统就会弹出一个友好界面提醒我们,不能随便删除或者修改一个已发布的新闻。即:如果状态为发布,那么就不能执行修改和删除操作,而是跳转到一个友好界面上去提示用户。,图18,3.3 项目案例,图19(4)新闻管理新闻删除新闻删除和修改的原理一样,只有当新闻不处于发布状态时才可以删除,否则将跳转到友好页面提示用户该如何正确删除。,3.3 项目案例,三、通知管理(通知的编辑、修改、删除)单击内容管理中的通知栏目,进入该模块,显示已发布的通知。1用例描述(1)角色:管理员和高级管理员,(2)前提条件:用户必须完成登录的用例(3)主事件流:用户通知进入系统;单击“通知管理”链接;进入通知管理页面(通知列表);单击“新增”按钮(S1)、“修改”按钮(S2)和“删除”按钮(S3)。,3.3 项目案例,(4)分支事件流:S1:单击“新增”按钮4.1.1 单击“新增”按钮4.1.2 进入通知添加页面4.1.3 填写通知资料(E1)4.1.4 单击“保存”按钮4.1.5 验证信息,保存数据 4.1.6 返回通知管理页面(通知列表)S2:单击“修改”按钮4.2.1 单击“修改”按钮4.2.2 进入通知修改页面4.2.3 更改通知数据,单击“修改”按钮4.2.4 验证信息,保存数据4.2.5 返回通知管理页面S3:单击“删除”按钮4.3.1 在要删除的记录前打钩,单击“删除”按钮4.3.2 删除信息4.3.3 返回通知管理页面,3.3 项目案例,(5)异常事件流:E1:键入非法的标识符或者格式不对,指明错误。2用户界面图(1)通知管理通知编辑在通知管理页面(见图20),单击“新增”按钮,进入通知编辑页面。通知业务虽然没有审核功能,但是必须上传附件,见图21。,图20,3.3 项目案例,图21,这个模块在首页上位于左栏的“职能部门通知”中。其中的附件1、附件2、附件3后面的框为附件名称,每个附件名称后面的3个框为要上传的3种文件。这里要说明的是每个附件只代表一种文件,也就是说,后面的这3种文件(本地文件、政策法规、文件表格)只能选择一种上传。,3.3 项目案例,(2)通知管理通知修改本业务在任何时候都可以修改,可以修改所有项。(3)通知管理通知删除因为通知不需要审核,所以通知删除业务不会有很多的判断,只要判断不是发布状态就可以删除(见图22)。,图22,3.3 项目案例,四、新闻内容审核1用例描述(1)角色:高级管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:管理员通知进入系统;单击内容审核列表里的新闻栏目;进入内容审核管理页面;单击“审核”按钮;进入审核页面;填写审批意见,单击“已阅”按钮(S1)、“同意”按钮(S2)或“退出”按钮(S3)。(4)分支事件流:S1:单击“已阅”按钮。6.1.1 单击“已阅”按钮6.1.2 返回内容审核管理页面,发布状态改变为“已审”6.1.3 发布用户可以看到发布状态,单击“已审”按钮6.1.4 查看管理员审批意见,3.3 项目案例,6.1.5 单击“返回”按钮6.1.6 返回内容审核管理页面6.1.7 用户单击“修改”按钮,根据审批意见修改新闻6.1.8 返回内容审核管理页面,发布状态改变为“待审”6.1.9 管理员或审批人员再次审批,审批流程同上S2:单击“同意”按钮6.2.1 单击“同意”按钮6.2.2 返回内容审核管理页面,发布状态改变为“发布”图23S3:单击“退出”按钮6.3.1 单击“退出”按钮6.3.2 返回内容审核管理页面,图23,3.3 项目案例,(5)异常事件流:E1:键入非法的标识符或者格式不对,指明错误。E2:如果待审批的数据超过有效期,则指明不能审批,数据无效。,2用户界面图单击内容审核列表里的新闻栏目,进入新闻审核模块如图23和图24所示。在审核的任务浏览页中,单击“审核”按钮,进入内容审核页面,如图25所示。,图24,3.3 项目案例,图25,审核页面和正式的发布页面是一样的,审核者根据新闻是否可以发布来选择按钮,这里的“同意”表示此新闻可以发布,“已阅”则表示此新闻有问题不可以发布,并且可以在审核意见中输入文字说明。如果新闻为“已阅”,那么在发布者那里就可以看到没有通过的原因,如图26所示。,3.3 项目案例,图26,在新闻发布者那里能看到发布状态,如图27所示。,图27,3.3 项目案例,单击发布状态栏目中的已审,新闻发布者可以看到审核后的意见,如图28所示。,图28,这时用户就可以修改这条新闻,修改后这条新闻状态发生了改变,变成了“待审”,如图29所示。,图29,3.3 项目案例,这时需要等待审核者再审核,如图30所示。这条新闻因为刚才被修改过了,所以状态发生了改变,审核者这里又重新有了这个任务。,图30,如果审核者审核未通过,新闻将被驳回,如图31所示。,图31,3.3 项目案例,审核者发现新闻没有问题,点击同意,这时新闻的状态变为“已发布”,如图32所示。,图32,再去看一下首页,如图33所示,看到新闻已经发布。,图33,3.3 项目案例,3.2 对性能的规定3.2.1 精度该软件的输入、输出数据精度的要求为小数点后两位。3.2.2 时间特性要求a响应时间要低于5秒;b更新处理时间要低于20秒;c数据的转换和传送时间要低于10秒。3.2.3 灵活性该软件使用J2EE开发,具有很好的灵活性。当需求发生某些变化时,该软件对这些变化有很好的适应能力,如可扩展性、可伸缩性和可移植性等。a当用户功能模块增加时,Struts-Spring-Hibernate框架可以方便地支持新的功能;b当用户并发访问量增加时,可以考虑将Tomcat Web服务器升级为WebLogic应用服务器,而不会影响业务功能。3.3 健壮性在软件设计中使用异常处理机制和log4j工具保证系统健壮性,运行时正常和出错信息要保留在日志文件中。硬件方面使用冗余备份方式,保证负载平衡和系统可靠性。3.4 其他专门要求,3.3 项目案例,3.4 其他专门要求周期性地把磁盘信息记录到磁带上,以防止原始系统数据丢失。4.运行环境硬件的最小配置:CPU为3.0GHz,内存为2GB,硬盘为40GB;操作系统:Windows 2003/XP、Linux;Web服务器:Tomcat 5.5以上;数据库服务器:MySQL 5.0以上,能够处理数据并发访问,访问回馈时间短。3.3.5 特别提示需求分析是整个软件开发过程中的第一步,也是软件工程中最关键的一个过程。软件需求规格说明书作为需求分析阶段的输出工件,将会成为下一阶段系统分析设计的输入。3.3.6 拓展与提高在上述软件需求规格说明书中,将优先级别最高的用例挑选出来,并阐述理由。,