1、CONFIDENTIALJava软件工程软件工程与项目案例教程与项目案例教程(三)(三)2 主要内容主要内容1、软件需求分析概述、软件需求分析概述2、软件需求分析过程、软件需求分析过程 3、项目案例、项目案例 3 3.1 软件需求分析概述软件需求分析概述需求分析是整个项目开发流程的第一个环节,它是在用户和软件开发组之间建立对用户的共同理解,由软件开发组进行分析、精化并详细描述后,按文档规范编写出软件需求规格说明书(Software Requirement Specification,SRS)的过程。软件需求分析特别重要。在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中简单步骤
2、,但在过去十几年中越来越多的人认识到它是整个过程中最关键的一个过程。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。许多大型应用系统的失败,最后均归结到需求分析的失败:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。特点:特点:(1)用户与开发人员很难进行交流(2)用户的需求是动态变化的(3)系统变更的代价呈非线性增长4 3.2 软件需求分析过程软件需求分析过程3.2.
3、1 什么是软件需求什么是软件需求从根本上讲,软件需求就是为了解决现实世界中的特定问题,软件必须展现的属性。软件需求的组成关系如下图 5 软件需求的属性包括可验证性、优先级、唯一性和定量化。可验证性可验证性是软件需求的基本属性。软件需求必须是可验证的,否则软件的评审和测试就没有相应的依据。优先性软件需求具有优先级,应该能够在有限的资源(资金、人员、技术)情况下进行取舍。唯一性软件需求应唯一地标识出来,以便在软件配置管理和整个软件生命周期中进行管理。定量化软件需求应尽可能地表述清楚,没有二义性,进行适当的量化,应避免含糊、无法测试、无法验证的需求出现。软件质量的可靠性和用户界面的友好性等非功能性需
4、求的量化尤为重要。例如,系统应支持2000个并发用户,系统回应时间应低于10秒,这就是需求的量化。3.2 软件需求分析过程软件需求分析过程6 3.2.2 需求过程中的角色如下图所示:角色名称描述用户指直接操作软件的人员,他们通常具有不同的业务角色,有不同的业务需求。客户指软件开发的委托方或软件市场的目标客户。市场分析人员对于没有具体客户的通用软件,市场分析人员将提供市场需要,并对实际客户进行模拟系统分析师对于类似的项目,系统分析师将对以前系统进行评估,判断是否存在重用的可能3.2 软件需求分析过程软件需求分析过程7 3.2.3 需求过程迭代软件需求分析是一个不断认识和逐步细化的过程。该过程将软
5、件计划阶段所确定的软件范围(工作范围)逐步细化到可详细定义的程度,并分析出各种不同的软件元素,然后为这些元素找到可行的解决办法。需求过程要适应客户和项目的环境,并作为配置项纳入配置管理。当前的软件业面临着巨大竞争压力,要求软件企业有更低的构建成本和更短的开发周期。有些项目受环境的影响很大,有些项目是对原有项目的升级,有些项目客户要求在指定的架构下完成。在项目初期,客户不能完全确定需要什么,对计算机的能力和限制不甚了解,所以需求过程很难是一步到位的过程。随着项目的深入,需求将随时间变化而发生变化。因此,需求过程是一个迭代的过程,每次迭代提供更高质量和更详细的软件需求。这种迭代会给项目带来一定的风
6、险,上一次迭代的设计实现可能会因为需求不足而被推翻。但是,系统分析师应根据项目计划,在给定的资源条件下得到尽可能高质量的需求。3.2 软件需求分析过程软件需求分析过程8 3.2.4 需求的来源(1)系统目的(2)行业知识(3)软件涉众(4)运行环境(5)组织环境软件涉众:应充分考虑不同软件涉众的需求,如果只强调某一角色的需求,忽略其他角色的需求,往往将导致软件系统的失败。系统分析师应从不同涉众的角度去识别、表述他们的需求。用户的文化差异、客户的组织结构,常常会是系统难以正常实施的原因。3.2 软件需求分析过程软件需求分析过程9 3.2.5 需求获取的方法(1)实地参加(2)开调查会(3)请专人
7、介绍(4)面谈(5)设计调查表请用户填写(6)查阅记录 3.2 软件需求分析过程软件需求分析过程10 3.2.6 软件需求的表达如何有效地表达软件需求?我们这里建议使用用例建模技术。用例建模技术是 10 多年来最重要的需求分析技术,在保障全球各类软件的成功开发中发挥了极其重要的作用.实践证明,用例技术是迄今为止最为深刻,准确和有效的系统功能需求描述方法.功能需求是指系统输入到输出的映射以及它们的不同组合,任何功能必然要通过外部环境与系统之间的交互才能完成,因此,我们可以在内容和形式上把用例和系统的功能需求等同起来。用例建模技术不同于结构化功能分解的特点有:1)显式地表达用户的任务目标层次,突出
8、系统行为与用户利益间的关系;2)通过描述执行实例情节(交互行为序列、正常/非正常事件流)能够完整地反映软件系统用以支持特定功能的行为;3)以契约(前/后置条件等)的形式突出了用户和系统之间常常被忽略的背后的关系;4)部署约束等非功能需求与系统行为直接绑定,能够更准确地表达此类需求。3.2 软件需求分析过程软件需求分析过程11 基于用例的需求表达体系如下图3-2所示 基于用例的需求表达体系基于用例的需求表达体系 3.2 软件需求分析过程软件需求分析过程12 1、用例图(1)用例图概述用例建模技术离不开用例图。在UML中,用例图又叫做用况图,有时又称为Use Case 图。它用于定义系统的行为、展
9、示角色(系统的外部实体,即参入者)与用例(系统执行的服务)之间的相互作用。用例图是需求和系统行为设计的高层模型,它以图形化的方式描述外部实体对系统功能的感知。用例图从用户的角度来组织需求,每个用例描述一个特定的任务,如表3-2所示。表表3-2用例图概述用例图概述 名称图例说明角色角色名称代表与系统交互的实体。角色可以是用户、其他系统或者硬件设备。在用例图中以小人表示。图4-7中的“图书管理员”、“读者”和“系统管理员”是与系统进行交互的角色。用例用例名称定义了系统执行的一系列活动,产生一个对特定角色可观测的结果。在用例图中以椭圆表示。“一系列的活动”可以是系统招待的功能、数学计算或其他产生一个
10、结果的内部过程。活动是原子性的,即要么完整的执行,要么全不执行。活动的原子性可以决定用例的粒度。用例必须向角色提供反馈。图4-7中的“用户管理”、“图书管理”、“借还登记”等表示用例关联-表示用户和用例之间的交互关系。用实线表示用例关系引申类型-用例与用例之间的关系。用带箭头的虚线表示。用例之间的关系,可以用引申类型进行语义扩展,如include等。3.2 软件需求分析过程软件需求分析过程13 用例模型可以在不同层次上建立,具有不同的粒度。(2)用例层次 我们把用例划分为3个目标层次:概要层,用户目标层和子功能层,并通过引入巧妙的Why/How技术帮助分析者找到合适的目标层次,从而可以有效地把
11、握用例的粒度(真正的用例最终应落实到用户目标层)。值得注意的是,我们在实践中应该尤其关注用户目标层用例.引入概要层用例的主要目的是为了包含一个或多个用户目标层用例,为系统提供全局功能视图,提出子功能层用例则是为了表达用户目标层用例的具体实现步骤。(3)用例范围 根据范围的不同,用例可分为业务用例和系统用例两种 1)业务用例-在业务中执行的一系列动作,这些动作为业务的个体主角产生具有可见价值的结果-实质是业务流程-可以分为核心业务用例,支持业务用例,管理业务用例-主要包括业务角色,业务活动,业务实体,业务规则2)系统用例-是系统执行的一系列动作,这些动作将生产特定主角可观测的结果值-主要包括系统
12、角色和系统的一系列的交互过程 3.2 软件需求分析过程软件需求分析过程14 3.2 软件需求分析过程软件需求分析过程 如果某个如果某个SuD或者用例的范围包含了人以及由人组成的团队或者用例的范围包含了人以及由人组成的团队,部门部门,组织的活动组织的活动,那么针对那么针对这个这个SuD写出的用例必然是业务用例写出的用例必然是业务用例;如果该如果该SuD仅仅是一些软件仅仅是一些软件,硬件硬件,机电设备或由它们机电设备或由它们组成的系统组成的系统,并不涉及到人的业务活动并不涉及到人的业务活动,那么根据这个那么根据这个SuD写出来的就是系统用例。写出来的就是系统用例。(4)用例关系)用例关系1)角色和
13、角色之间)角色和角色之间-继承关系继承关系:表示子类角色将继承父类角色在用例中所能担任表示子类角色将继承父类角色在用例中所能担任的角色的角色2)角色和用例之间)角色和用例之间-使用关系使用关系:表示角色将使用用例提供的服务表示角色将使用用例提供的服务3)用例和用例之间)用例和用例之间-包含关系包含关系:通常是指一个大的用例包含了几个小的用例,几个小的用例组成一个大的用例。通常是指一个大的用例包含了几个小的用例,几个小的用例组成一个大的用例。-扩展关系扩展关系:基于扩展点之上的两个独立用例,扩展用例为基本用例的实例增添新的行为,基于扩展点之上的两个独立用例,扩展用例为基本用例的实例增添新的行为,
14、其实质是扩展事件流的延伸,两个用例本身都是独立的。其实质是扩展事件流的延伸,两个用例本身都是独立的。-继承关系:继承关系:父用例可以特化形成一个或多个子用例,这些子用例代表了父用例比较特殊的形式。子用父用例可以特化形成一个或多个子用例,这些子用例代表了父用例比较特殊的形式。子用例继承父用例的所有结构、行为和关系。例继承父用例的所有结构、行为和关系。15 3.2 软件需求分析过程软件需求分析过程表现几种关系的实例如下图表现几种关系的实例如下图3-3:图图3-3 用例关系实例用例关系实例16 3.2 软件需求分析过程软件需求分析过程用例编号:(用例编号)用例名称:(用例名称)用例描述:(用例描述)
15、前置条件:(描述用例执行前必须满足的条件)后置条件:(描述用例执行结束后将执行的内容)基本事件流(主事件流):(描述常规条件下,系统执行的步骤)1、步骤1、2、步骤2、3、步骤3、4、扩展事件流(分支事件流):(描述其他情况下,系统执行的步骤)2a、扩展步骤2a、2a1、扩展步骤2a1、异常事件流:(描述在异常情况下可能出现的场景)2、用例描述、用例描述用例模型除了绘制用例图外,还要对用例进行描述,也就是详细展开每个用例的内容。用例模型除了绘制用例图外,还要对用例进行描述,也就是详细展开每个用例的内容。用例描述可以是文字性的,也可以用活动图进行说明。文字性的用例描述模板如表用例描述可以是文字性
16、的,也可以用活动图进行说明。文字性的用例描述模板如表3-3所示。以所示。以“借书登记借书登记”为例,其具体的用例描述如表为例,其具体的用例描述如表3-4所示。所示。右表右表 用例描述模板用例描述模板17 3.2 软件需求分析过程软件需求分析过程用例编号:3.1用例名称:借书登记用例描述:图书管理员对读者借阅的图书进行登记。读者借阅图书的数量不能超过规定的数量。如果读者有过期未还的图书,不能借阅新图书。前置条件:读者取得借阅的图书。主事件流:1、读者请求借阅图书。2、检查读者的状态。3、检查图书的状态。4、标记图书为借出状态。5、读者获取图书。扩展事件流:2a、如果用户借阅数量超过规定数量,或者
17、有过期未还的图书,则用例终止。3a、如果借阅的图书不存在,则用例终止。异常事件流:无右表 借书登记用例描述 18 3.2 软件需求分析过程软件需求分析过程3、用例优先级(1)为什么要设定需求的优先级每一个具有有限资源的软件项目必须理解所要求的特性、使用实例和功能需求的相对优先级。设定优先级意味着权衡每个需求的业务利益和它的费用,以及它所牵涉到的结构基础和对产品的未来评价。项目经理必须权衡合理的项目范围和进度安排、预算、人力资源以及质量目标的约束。设定优先级有助于项目经理解决冲突、安排阶段性交付,并且做出必要的取舍。当客户的期望很高、开发时间短并且资源有限时,必须尽早确定出所交付的产品应具备的最
18、重要的功能。建立每个功能的相对重要性有助于规划软件的构造,以最少的费用提供产品的最大功能。当采用渐增式开发方式时,设定优先级就特别重要,因为在开发过程中,交付进度安排很紧,并且日期不可改变。必须排除或推迟一些不重要的功能。(2)系统分析员的态度和做法在需求分析阶段,分析人员应该明确的提出需求的优先级和处理策略,并在软件需求规格说明书中明确说明。应当在项目的早期阶段设定优先级,这有助于逐步作出相互协调的决策,而不是在最后阶段匆忙决定。19 3.2 软件需求分析过程软件需求分析过程你评价优先级时,应该看到不同需求之间的内在联系,以及它们与项目业务需求的一致性。在判断出需求的低优先级之前,如果开发人
19、员已经实现了将近一半的特性和功能,那这将是一种浪费,这个责任应该由分析人员承担。(3)设定优先级的方法与在客观世界人们对事务的分类习惯与方法相一致,系统需求的优先级设定分成三类。例如:高、中、低;基本的、条件的、可选的、3、2、1 。具体描述见下表3-5:表3-5 系统需求的优先级分类 命 名意 义高一个关键任务的需求;下一版本所需求的中支持必要的系统操作;最终所要求的,但如果有必要的话,可以延迟到下一个版本低功能或质量上的增强;如果资源允许的话,实现这些需求总有一天使产品更完美基本的只有在这些需求上达成一致意见,软件才会被接受条件的实现这些需求将增强产品的性能,但如果忽略这些需求,产品也是可
20、以被接受的可选的一个功能类,实现或不实现均可3必须完美地实现2需要付出努力,但不必做得太完美1可以包含缺陷20 3.3 项目案例项目案例3.3.1 学习目标学习目标 理解软件需求分析的概念及其重要性。掌握需求分析中的用例建模技术。掌握软件需求的表达和软件需求规格说明书的编写。3.3.2 案例描述 本案例体现了真实的软件需求规格说明书文档。该eGov电子政务项目文档展现了功能和非功能需求及其文档的标准格式,通过它我们可以更好地熟悉和理解软件需求的表达。3.3.3 案例要点 在实际工作中,我们需要将需求分析过程通过软件需求文档记录下来。软件需求文档虽然可以有各种不同的格式,但它的主要内容包括用例描
21、述和界面导航图。21 3.3 项目案例项目案例3.3.4 案例实施案例实施 eGov电子政务项目需求规格说明书1.引言1.1 编写目的此需求规格说明书对项目的背景、范围、验收标准和需求等信息进行说明,包括功能性需求和非功能性需求,确保对用户需求的理解一致。预期的读者有(甲方)的需求提供者、项目负责人、相关技术人员等,北京亚思晟商务科技有限公司(乙方)的项目组成员,包括项目经理、客户经理、分析/设计/开发/测试等人员。1.2 背景电子政务系统是基于互联网的应用软件。在研究中心的网上能了解到已公开发布的不同栏目(如新闻、通知等)的内容,各部门可以发表栏目内容(如新闻、通知等),有关负责人对需要发布
22、的内容进行审批。其中,有的栏目(如新闻)必须经过审批才能发布,有的栏目(如通知)则不需要审批就能发布。系统管理人员对用户及其权限进行管理。22 3.3 项目案例项目案例1.3 定义无1.4 参考资料电子政务系统理论和实践2.任务概述2.1 目标电子政务系统是基于互联网的应用软件,通过此系统可以实现权限分配、内容管理和审核等核心业务,实现政府及事业单位组织结构和工作流程的优化重组,超越时间、空间和部门分隔的限制,建成一个精简、高效、廉洁、公平的运作模式,以便全方位地向社会提供优质、规范、透明、符合国际水准的管理与服务。该软件系统是一项独立的软件,整个项目外包给北京亚思晟商务科技有限公司来开发管理
23、。2.2 用户的特点本软件的最终用户为组织内的日常使用者,操作人员和维护人员有较高的教育水平和技术专长,同时使用的用户数量初步估计为几百人。23 3.3 项目案例项目案例2.3 假定和约束假定此系统为自包含的,不过分依赖其他外部系统。本项目的开发期限为3个月。3.需求规定3.1 对功能的规定整体功能用例图(Use Case Diagram),见图1。24 3.3 项目案例项目案例图125 3.3 项目案例项目案例3.1.1 一般用户浏览的内容管理:首页显示及其他页面首页显示是数据量最大的一页,是为所有模块展示内容的部分。从该页还可以登录进入管理等后端功能模块。如图2所示,最上面为头版头条栏目,
24、左栏下部为职能部门通知,右栏下部为综合新闻类等,左栏上部为用户登录入口。26 3.3 项目案例项目案例图23.1.2 系统管理系统管理是给系统管理人员使用的,主要包括以下功能模块:登录、栏目业务设置、栏目权限设置、用户管理设置。27 3.3 项目案例项目案例一、登录1用例描述(1)角色:注册用户(用户和管理员)(2)前提条件:无(3)主事件流:用户登录该网站的登录页面(E1);显示登录页面信息,如用户名,密码;输入用户名和密码,单击“登录”按钮(E2);验证登录信息;加载用户所拥有的权限信息,并显示在页面上。(4)异常事件流:E1:键入非法的标识符,指明错误。E2:用户账号被管理员屏蔽,无法登
25、录。2用户界面图图328 3.3 项目案例项目案例输入正确的用户名和密码后进入系统管理的入口页面(见图4)。图429 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 内
26、容审核的权限改变3.2.3 返回栏目业务设置页面(5)异常事件流:E1:用户账号被管理员屏蔽或删除,无法设置,提示重新激活账号。30 3.3 项目案例项目案例2用户界面图单击“栏目业务设置”链接,进入该模块,设定栏目是否具有内容管理和内容审核的权限。栏目业务设置是整个系统管理模块的最高级权限设置,它的操作可以影响到栏目权限设置,以及所有的与本栏目有关的权限设置,如图5所示。每个栏目可以设定是否具有内容管理和内容审核的权限,对于某些栏目(如新闻),二者都有,因为新闻必须经过有关领导审核批准才可以在网上发布;而对于某些栏目(如通知),只需要内容管理,不需要内容审核就可以在网上发布。图531 3.3
27、 项目案例项目案例三、栏目权限设置1用例描述(1)角色:管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:当用户登录该网站后,单击“栏目权限设置”链接;进入栏目权限设置页面;单击“设置”按钮;进入栏目权限设置的具体页面;选中用户名,单击“添加”(S1)或“删除”(S2)按钮,然后保存修改;该栏目的用户被添加或删除;返回栏目权限设置页面。32 3.3 项目案例项目案例(4)分支事件流:S1:添加用户。5.1.1 选中用户后单击“添加”按钮5.1.2 添加用户5.1.3 单击“返回”按钮5.1.4 返回栏目权限设置页面S2:删除用户。5.2.1 选中用户后单击“删除”按钮5.2.2 删除
28、用户5.2.3 单击“返回”按钮5.2.4 返回栏目权限设置页面2用户界面图单击“栏目权限设置”链接,进入该模块,主要是分配给用户对于栏目的管理权限,这个业务也是此项目的核心,需要在所有部门里选择用户分配权限,如图6所示。33 3.3 项目案例项目案例图6单击“设置”链接,进入如图7所示的页面。图734 3.3 项目案例项目案例页面中左面显示用户过滤,也是备选用户,右面显示管理权限和审核权限。选择不同部门时,该部门的所有人员应该显示在备选用户列表里。单击上面的“增加”按钮时,用户会放入管理权限列表里;单击下面的“增加”按钮时,用户会放入审核权限列表里。这里有一个业务大家要记住:一个用户不可以既
29、分配到管理权限又分配到审核权限。四、用户管理设置1用例描述(1)角色:管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:当用户登录该网站后,单击“用户管理设置”链接;进入用户管理设置页面;单击“新增”按钮(S1)、“修改”按钮(S2)和“删除”按钮(S3)。35 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 进入修改用户页
30、面3.2.3 修改用户资料,单击“修改”按钮3.2.4 更新用户信息3.2.5 返回用户管理设置页面S3:单击“删除”按钮。3.3.1 单击某用户的“删除”按钮3.3.2 删除该用户3.3.3 返回用户管理设置页面36 3.3 项目案例项目案例(5)异常事件流:E1:键入非法的标识符,指明错误。2用户界面图单击“用户管理设置”链接,进入该模块。用户管理设置页面用于显示用户、添加用户、修改用户、删除用户。(1)显示用户(见图8)。图837 3.3 项目案例项目案例(2)添加用户:单击“新增”按钮,显示见图9。输入新的用户信息,然后提交。(3)修改用户:单击“修改”按钮,显示见图10。图938 3
31、.3 项目案例项目案例图10(4)删除用户:单击“删除”按钮,用于删除用户。3.1.3 内容管理和审核该部分主要包括以下功能模块:用户登录、新闻的编辑、修改、屏蔽、删除、通知的编辑、修改、删除、新闻的审核等。39 3.3 项目案例项目案例一、登录1用例描述(1)角色:注册用户(用户和管理员)(2)前提条件:无(3)主事件流:用户登录该网站的登录页面(E1);显示登录页面信息,如用户名、密码;输入用户名和密码,单击“登录”按钮(E2);验证登录信息;加载用户所拥有的权限信息,并显示在页面上。40 3.3 项目案例项目案例(4)异常事件流:E1:键入非法的标识符,指明错误。E2:用户账号被管理员屏
32、蔽,无法登录。2用户界面图输入用户名和密码,进入系统(见图11)。图1141 3.3 项目案例项目案例当用户进入系统时,应该看到自己的权限范围,不同的用户拥有不同的权限。见图12这个用户具有的权限是对1个栏目的内容管理权限。如果我们用另外一个用户登录,那么结果就不同了,见图13。图12图1342 3.3 项目案例项目案例二、新闻管理(新闻的编辑、修改、屏蔽、删除)1用例描述(1)角色:管理员和高级管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:用户通知进入系统;单击“新闻管理”链接;进入新闻管理页面(新闻列表);单击“新增”按钮(S1)、“修改”按钮(S2)和“删除”按钮(S3)。
33、(4)分支事件流:S1:单击“新增”按钮4.1.1 单击“新增”按钮4.1.2 进入新闻添加页面4.1.3 填写通知资料(E1)4.1.4 单击“保存”按钮4.1.5 验证信息,保存数据4.1.6 返回通知新闻页面(新闻列表)43 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:键入非法的标识符或者格式
34、不对,指明错误。2用户界面图(1)新闻管理新闻编辑单击内容管理中的“综合新闻管理”,进入新闻编辑页面,见图14。44 3.3 项目案例项目案例图14大家不要忽略了新闻发布的预览功能,如图15所示。预览效果和发布后的最终效果是一样的,这里如果符合标准、那么就可以提交了。45 3.3 项目案例项目案例图1546 3.3 项目案例项目案例提交后的浏览页应该根据时间进行倒序,以保证最后发布的新闻在第一条上。刚刚发布的新闻的发布状态是待审(已经提交了,但是要等待审核),就是要等待有审核权限的人审核这条新闻,通过后才能发布上去。(2)新闻管理新闻修改对于任何一个通过审核的新闻,都必须符合这里修改的规则,也
35、就是当新闻处于发布状态时,任何人都不得修改新闻,只有新闻处于屏蔽状态或者为待审时才可以修改。对于发布、待审、屏蔽等注释的数字在数据字典中都有,大家可以去查询。如果我们要修改已经发布的新闻(见图16)那么应该给用户返回一个友好的界面,如图17所示。如果新闻没有发布,则可以修改,如图18所示。47 3.3 项目案例项目案例(3)新闻管理新闻屏蔽新闻屏蔽功能是当一个新闻要在首页新闻栏目中被撤下时所具有的功能,如图19所示。在浏览页上可以看到发布状态就是对新闻存在状态(status)的标注,这时如果去删除或者修改一个已经发布的新闻,系统就会弹出一个友好界面提醒我们,不能随便删除或者修改一个已发布的新闻
36、。即:如果状态为发布,那么就不能执行修改和删除操作,而是跳转到一个友好界面上去提示用户。图1848 3.3 项目案例项目案例图19(4)新闻管理新闻删除新闻删除和修改的原理一样,只有当新闻不处于发布状态时才可以删除,否则将跳转到友好页面提示用户该如何正确删除。49 3.3 项目案例项目案例三、通知管理(通知的编辑、修改、删除)单击内容管理中的通知栏目,进入该模块,显示已发布的通知。1用例描述(1)角色:管理员和高级管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:用户通知进入系统;单击“通知管理”链接;进入通知管理页面(通知列表);单击“新增”按钮(S1)、“修改”按钮(S2)和“删
37、除”按钮(S3)。50 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 返回通知管理页面51 3.3 项目案例项目
38、案例(5)异常事件流:E1:键入非法的标识符或者格式不对,指明错误。2用户界面图(1)通知管理通知编辑在通知管理页面(见图20),单击“新增”按钮,进入通知编辑页面。通知业务虽然没有审核功能,但是必须上传附件,见图21。图2052 3.3 项目案例项目案例图21这个模块在首页上位于左栏的“职能部门通知”中。其中的附件1、附件2、附件3后面的框为附件名称,每个附件名称后面的3个框为要上传的3种文件。这里要说明的是每个附件只代表一种文件,也就是说,后面的这3种文件(本地文件、政策法规、文件表格)只能选择一种上传。53 3.3 项目案例项目案例(2)通知管理通知修改本业务在任何时候都可以修改,可以修
39、改所有项。(3)通知管理通知删除因为通知不需要审核,所以通知删除业务不会有很多的判断,只要判断不是发布状态就可以删除(见图22)。图2254 3.3 项目案例项目案例四、新闻内容审核1用例描述(1)角色:高级管理员(2)前提条件:用户必须完成登录的用例(3)主事件流:管理员通知进入系统;单击内容审核列表里的新闻栏目;进入内容审核管理页面;单击“审核”按钮;进入审核页面;填写审批意见,单击“已阅”按钮(S1)、“同意”按钮(S2)或“退出”按钮(S3)。(4)分支事件流:S1:单击“已阅”按钮。6.1.1 单击“已阅”按钮6.1.2 返回内容审核管理页面,发布状态改变为“已审”6.1.3 发布用
40、户可以看到发布状态,单击“已审”按钮6.1.4 查看管理员审批意见55 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 返回内容审核管理页面图2356 3.3 项目案例项目案例(5)异常事件流:E1:键入非法的标识符或者格式不对,
41、指明错误。E2:如果待审批的数据超过有效期,则指明不能审批,数据无效。2用户界面图单击内容审核列表里的新闻栏目,进入新闻审核模块如图23和图24所示。在审核的任务浏览页中,单击“审核”按钮,进入内容审核页面,如图25所示。图2457 3.3 项目案例项目案例图25审核页面和正式的发布页面是一样的,审核者根据新闻是否可以发布来选择按钮,这里的“同意”表示此新闻可以发布,“已阅”则表示此新闻有问题不可以发布,并且可以在审核意见中输入文字说明。如果新闻为“已阅”,那么在发布者那里就可以看到没有通过的原因,如图26所示。58 3.3 项目案例项目案例图26在新闻发布者那里能看到发布状态,如图27所示。
42、图2759 3.3 项目案例项目案例单击发布状态栏目中的已审,新闻发布者可以看到审核后的意见,如图28所示。图28这时用户就可以修改这条新闻,修改后这条新闻状态发生了改变,变成了“待审”,如图29所示。图2960 3.3 项目案例项目案例这时需要等待审核者再审核,如图30所示。这条新闻因为刚才被修改过了,所以状态发生了改变,审核者这里又重新有了这个任务。图30如果审核者审核未通过,新闻将被驳回,如图31所示。图3161 3.3 项目案例项目案例审核者发现新闻没有问题,点击同意,这时新闻的状态变为“已发布”,如图32所示。图32再去看一下首页,如图33所示,看到新闻已经发布。图3362 3.3
43、项目案例项目案例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 健壮性在软件设计中
44、使用异常处理机制和log4j工具保证系统健壮性,运行时正常和出错信息要保留在日志文件中。硬件方面使用冗余备份方式,保证负载平衡和系统可靠性。3.4 其他专门要求63 3.3 项目案例项目案例3.4 其他专门要求周期性地把磁盘信息记录到磁带上,以防止原始系统数据丢失。4.运行环境硬件的最小配置:CPU为3.0GHz,内存为2GB,硬盘为40GB;操作系统:Windows 2003/XP、Linux;Web服务器:Tomcat 5.5以上;数据库服务器:MySQL 5.0以上,能够处理数据并发访问,访问回馈时间短。3.3.5 特别提示特别提示需求分析是整个软件开发过程中的第一步,也是软件工程中最关
45、键的一个过程。软件需求规格说明书作为需求分析阶段的输出工件,将会成为下一阶段系统分析设计的输入。3.3.6 拓展与提高拓展与提高在上述软件需求规格说明书中,将优先级别最高的用例挑选出来,并阐述理由。64 Thank You!本PPT为可编辑版本,您看到以下内容请删除后使用,谢谢您的理解【解析】【解答】(1)氯化钠是由钠离子和氯离子构成的;金刚石是由碳原子构成的;干冰是由二氧化碳分子构成的;(2)质子数为11的是钠元素,钠元素原子的最外层电子数1,在化学反应中容易失去一个电子形成阳离子;(3)化学变化是生成新分子的变化,其实质是分子分解成原子,原子重新组合形成新的分子,故该反应中没有变的是碳原子
46、和氧原子。故答案为:氯化钠;失去;D。【分析】物质有微粒构成,构成物质的微粒有原子、分子、离子是那种,金属、稀有气体由原子构成;常见气体由分子构成;碱和盐由离子构成。在化学变化中,原子种类、质量、数目保持不变。26.用微粒的观点解释下列现象:(1)今年我国要求“公共场所全面禁烟”非吸烟者往往因别人吸烟而造成被动吸烟。(2)夏天钢轨间的缝隙变小。【答案】(1)分子是在不断的运动的.(2)夏天温度高,铁原子间的间隔变小.【考点】物质的微粒性 【解析】【解答】(1)吸烟生成烟雾,烟雾分子因为运动,扩散到空气中,使非吸烟者被动吸入烟雾分子,造成被动吸烟;(2)钢轨由铁原子构成.每两根钢轨间都有一定的间
47、隙,夏天由于气温高,使得钢轨中铁原子的间隔变大,表现为钢轨的体积膨胀,则钢轨间的间隙变小.故答案为:(1)分子是在不断运动的;(2)夏天高温,铁原子间的间隔变小.【分析】微粒观点的主要内容:物质是由分子(或原子构成),分子间有间隔,分子处于永停息的运动状态中.(1)烟雾分子属气体分子,在空气中扩散较快,使非吸烟者被动吸烟;(2)铁原子间有一定的间隔,温度升高,则铁原子间间隔变大,反之则变小,夏天高温状态下,铁原子间间隔变大,使得钢轨体积膨胀,则钢轨间的缝隙变小.【考点】物质的微粒性 【解析】【解答】(1)铁属于金属单质,是由铁原子直接构成;氯化钠是由钠离子和氯离子构成的;二氧化碳是由二氧化碳分
48、子构成的(2)当质子数=核外电子数,为原子,a=2+8=10,该粒子是原子原子序数=质子数=10当a=8时,质子数=8,核外电子数=10,质子数核外电子数,为阴离子。故答案为:原子;离子;分子;10;10;阴离子。【分析】物质有微粒构成,构成物质的微粒有原子、分子、离子是那种,金属、稀有气体由原子构成;常见气体由分子构成;碱和盐由离子构成。当核电荷数等于核外电子数,表示原子,小于时表示阴离子,大于时表示阳离子。25.初中化学学习中,我们初步认识了物质的微观结构。(3)升高温度分子运动速度就加快,只要能说明温度高了运动速度快了的例子都可以,例如阳光下或者温度高衣服干得快,温度高水蒸发的快,糖在热
49、水里比在冷水里溶解的快等;(4)由于注射器装入的药品少,现象明显,又是封闭状态,所以可以控制体积节省药品、可以减少气体挥发造成的污染等故答案为:(1)固体;(2)分子的质量大小或者相对分子质量大小(合理即给分);(3)阳光下或者温度高衣服干得快,温度高水蒸发的快,糖在热水里比在冷水里溶解的快等;(4)可以控制体积节省药品、可以减少气体挥发造成的污染等【分析】(1)根据实验现象判断氯化铵的状态;(2)根据它们的相对分子质量的区别考虑;(3)根据温度与运动速度的关系考虑;(4)根据注射器的特点考虑【解析】【解答】A、向一定质量的盐酸和氯化钙的混合溶液中逐滴加入碳酸钠溶液至过量的过程中,生成氯化钠的
50、质量不断增大,当碳酸钠与盐酸和氯化钙完全反应时,氯化钠的质量不再增大,A符合题意;B、向稀硫酸中加水,溶液的pH逐渐增大至接近于7,B不符合题意;C、向一定质量的稀硫酸中逐滴加入氢氧化钡溶液至过量的过程中,氢氧化钡不断和硫酸反应生成硫酸钡沉淀和水,溶质的质量减小,质量分数也减小,当氢氧化钡和稀硫酸完全反应时,继续滴加氢氧化钡溶液时,质量分数应该由小变大,C不符合题意;D、加热高锰酸钾时,当温度达到一定程度时,高锰酸钾开始分解生成锰酸钾、二氧化锰和氧气,随着反应的进行,剩余固体的质量不断减少,当高锰酸钾完全反应时,剩余固体的质量不再变化,D符合题意。【解析】【解答】A、可燃物的在着火点是一定的,