已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.2需求分析需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。2.2.1需求分析的目的与意义需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。有效的需求分析通常都具有一定的难度。需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。2.2.2需求分析的步骤遵循科学的需求分析步骤可以使需求分析工作更高效。需求分析的一般步骤如图2-3所示。图2-3需求分析的步骤需求涉及的方面:在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。1. 获取需求,识别问题开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求。遗漏需求是最难修订的需求错误。获取需求是需求分析的基础。为了能有效地获取需求,开发人员应该采取科学的需求获取方法。在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。采用这种方法时,调查问卷的设计很重要。一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例。开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地阐述自己的真实想法。但是,对开放式问题进行汇总和分析的工作会比较复杂。封闭式问题的答案是预先设定的,用户从若干答案中进行选择。封闭式问题便于对问卷信息进行归纳与整理,但是会限制用户的思维。访谈通过开发人员与特定的用户代表进行座谈,进而了解到用户的意见,是最直接的需求获取方法。为了使访谈有效,在进行访谈之前,开发人员要首先确定访谈的目的,进而准备一个问题列表,预先准备好希望通过访谈解决的问题。在访谈的过程中,开发人员要注意态度诚恳,并保持虚心求教的姿态,同时还要对重点问题进行深入的讨论。由于被访谈的用户身份可能多种多样,开发人员要根据用户的身份特点,进行提问,给予启发。当然,进行详细的记录也是访谈过程中必不可少的工作。访谈完成后,开发人员要对访谈的收获进行总结,澄清已解决的和有待进一步解决的问题。关注用户的行为而不是他们的言语。为了深入地了解用户需求,有时候开发人员还会以用户的身份直接参与到现有系统的使用过程中,在亲身实践的基础上,更直接地体会现有系统的弊端以及新系统应该解决的问题,这种需求获取方法就是实地操作。通过实地操作得到的信息会更加准确和真实,但是这种方法会比较费时间。当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的方法对用户需求进行挖掘。原型系统就是目标系统的一个可操作的模型。在初步获取需求后,开发人员会快速地开发一个原型系统。通过对原型系统进行模拟操作,开发人员能及时获得用户的意见,从而对需求进行明确。利用原型系统获取需求的方法的示意图如图2-4所示。(点击查看大图)图2-4利用原型系统获取需求2. 分析需求,建立目标系统的逻辑模型在获得需求后,开发人员应该对问题进行分析抽象,并在此基础上从高层建立目标系统的逻辑模型。模型是对事物高层次的抽象,通常由一组符号和组织这些符号的规则组成。常用的模型图有数据流图、E-R图、用例图和状态转换图等,不同的模型从不同的角度或不同的侧重点描述目标系统。绘制模型图的过程,既是开发人员进行逻辑思考的过程,也是开发人员更进一步认识目标系统的过程。3. 将需求文档化获得需求后要将其描述出来,即将需求文档化。对于大型的软件系统,需求阶段一般会输出三个文档:系统定义文档(用户需求报告);系统需求文档(系统需求规格说明书);软件需求文档(软件需求规格说明书)。对于简单的软件系统而言,需求阶段只需要输出软件需求文档(即软件需求规格说明书)就可以了。软件需求规格说明书主要描述软件的需求,从开发人员的角度对目标系统的业务模型、功能模型和数据模型等内容进行描述。作为后续的软件设计和测试的重要依据,需求阶段的输出文档应该具有清晰性、无二义性和准确性,并且能够全面和确切地描述用户需求。4. 需求验证需求验证是对需求分析的成果进行评估和验证的过程。为了确保需求分析的正确性、一致性、完整性和有效性,提高软件开发的效率,为后续的软件开发做好准备,需求验证的工作非常必要。在需求验证的过程中,可以对需求阶段的输出文档进行多种检查,比如,一致性检查、完整性检查和有效性检查等。同时,需求评审也是在这个阶段进行的。2.3面向对象的软件工程方法2.3.1面向对象的基本概念近年来,为了克服传统软件工程方法存在的复用性和可维护性差以及难以满足用户需要等缺点,面向对象的思想越来越受到人们的欢迎和重视。面向对象的思想提倡运用人类的思维方式,从现实世界中存在的事物出发来构造软件。它建立在对象概念的基础上,以对象为中心,以类和继承为构造机制,来设计和构造相应的软件系统。面向对象的基本思想最先体现在面向对象程序设计语言中,然后才逐渐形成了面向对象的分析和设计方法。20世纪60年代开发的Simula67语言首次提出了对象的概念,它是第一个面向对象程序设计语言。Ada语言是在20世纪70年代出现的又一种支持数据抽象的基于对象概念的程序设计语言。最具有代表性和影响力的面向对象程序设计语言是由美国Xerox(施乐)公司Palo Alto研究中心的Alan Kay开发的Smalltalk语言。Smalltalk全面实现了面向对象技术的机制,丰富了面向对象的概念,它的发布引起了人们对面向对象概念的广泛关注。随后产生了多种面向对象程序设计语言,如C+和Java等,同时,面向对象的分析和设计方法也被广泛应用于软件开发中。比较具有代表性的基于面向对象思想的软件开发方法有Grady Booch提出的面向对象的分析与设计方法论、Jim Rumbaugh提出的面向对象的建模技术和Zvar Jacobson提出的面向对象的软件工程方法学等。Alan Kay2003年,Alan Kay因在面向对象程序设计上的杰出贡献,成为图灵奖的得主。Alan Kay于1970年加入Xerox(施乐)公司的Palo Alto研究中心。20世纪70年代初期,Alan Kay等人开发了最具代表性和影响力的面向对象语言Smalltalk,因此,被誉为Smalltalk之父。Alan Kay不但是面向对象编程语言Smalltalk的发明人之一,也是面向对象编程思想的创始人之一。他是笔记本电脑最早的构想者,同时也是现代Windows GUI的架构师。Alan Key可谓是计算机领域的大师。相对于传统的软件工程思想而言,面向对象的思想更符合人类的思维逻辑,它淡化了计算机的观点,以现实世界中的模型作为构造软件系统的依据。面向对象的基本概念包括对象、类、封装、继承和多态,下面一一介绍。1. 对象对象可以是客观世界中存在的事物,也可以是概念化的实体,它由一组属性和操作组成。属性是用来描述对象静态特征的数据项,是对客观世界实体所具有性质的抽象。操作是用来描述对象动态特征。比如,把人当成一个对象,那么他的属性就有身高、体重、姓名和年龄等静态特征,他的操作就包括工作、学习、吃饭和运动等;把汽车当成一个对象,那么它的属性就有品牌、颜色、价格和寿命等,它的操作就包括加速、减速和刹车等。理解对象的概念时,需要注意以下几点。对象的数据是封装起来的,对数据的处理需要通过特定的操作。对象之间通过传递消息进行通信,不同的对象独立地处理自身的数据。对象具有主动性。要处理对象的内部数据时,外界需要通过接口向对象发送消息,请求它执行特定的操作。2. 类类是对对象的抽象,是对具有相同属性和相同操作的一组相似对象的定义。通常情况下,很多对象都有相似的特征。比如,对于两个教师,他们虽然可能身高、体重、性别、年龄和籍贯等特征不同,但是职业却是相同的;对于两把椅子,它们可能颜色、形状、价格和位置等特征不同,但是作用却是相同的。在这种情况下,我们就可以忽略事物的非本质特征,只注意那些与当前目标相关的本质特征,从中找出事物的共性,把本质特征相同的事物划分为一类,即将多个对象抽象为类。对于同类对象,它们具有相同的属性和操作,但是每个对象的属性值可能不同,执行操作的结果也可能不同。比如,在教务管理系统中,可以定义学生类,并定义编号、姓名和院系等属性,及登录该系统进行操作。每位学生都有自己特定的编号、姓名和院系等属性值,并且执行登录操作后,都会进入个性化的主页。谈到类的概念,就必须知道什么是类的实例。实例是由某个特定的类描述的一个具体的对象。比如,对于教师类,某位教师王一就是类的一个实例;对于学生类,某位学生李二就是该类的一个实例。3. 封装封装是指把对象的属性和操作结合在一起,组成一个独立的单元。封装强调两个概念,即独立和封闭。独立是指对象是一个不可分割的整体,它集成了事物全部的属性和操作,并且它的存在不依赖于外部事物。封闭是指与外部的事物通信时,对象要尽量地隐藏其内部的实现细节,它的内部信息对外界来说是隐蔽的,外界不能直接访问对象的内部信息,而只能通过有限的接口与对象发生联系。可以说,类是数据封装的工具,而对象是封装的实现。类的成员又分为公有成员、私有成员和保护成员,它们分别有不同的访问控制机制。封装是软件模块化思想的重要体现。4. 继承继承表示类之间的层次关系,它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作。比如,某系统已经定义了一个学生类,现在还需要定义一个研究生类。由于研究生也属于学生的一种,它具有学生所有的一切属性和操作,这时就可以采用继承的方法,使研究生类直接获得学生类的一切属性和操作。在这个系统中,研究生类就叫做子类或派生类,学生类就叫做父类或基类。子类可以把父类定义的内容自动作为自己的部分内容,同时再加入新的内容。继承可以分为单重继承和多重继承。单重继承是指一个子类只有一个父类。多重继承是指一个子类可以同时继承多个父类。单重继承构成的类之间的关系是树状结构,多重继承构成的类之间的关系是网状结构。继承简化了定义一个新类的过程,有利于人们对事物的认识和描述,达到了软件复用的目的。5. 多态多态是一种使父类中定义的属性或操作被子类继承后,可以有不同的实现的机制。换句话说,多态允许属于不同类的对象对同一消息做出不同的响应。当一个对象接收到进行某项操作的消息时,多态机制将根据对象所属的类,动态地选用该类中定义的操作。比如,先定义一个父类几何图形,它具有计算面积的操作,然后再定义一些子类,如三角形、长方形和圆形,它们可继承父类几何图形的各种属性和操作,并且在各自的定义中要重新描述计算面积的操作。这样,当有计算几何图形面积的消息发出时,对象会根据类的类型做出不同的响应,采用不同的面积计算公式。多态这种机制极大地减少了软件设计中的冗余信息,提高了软件的可复用性和可扩展性。2.3.2面向对象的软件工程方法的特征与优势自软件工程问世以来,出现了很多种软件工程的方法学。方法、工具和过程是软件工程方法学的三个重要因素。方法是指为了完成软件开发的各项任务所采用的技术方法。工具是为方法的实行提供的自动或半自动的支持。过程是指为了获得高质量的软件产品所需要完成的一系列任务的框架。在软件工程领域,方法学是被广泛使用的一个词汇。在20世纪70年代,方法学一词用于表示开发软件产品的方式,而该词实际上是指方法的科学。方法学应用于整个软件工程的过程。1. 流行的软件工程方法目前比较流行的软件工程方法包括面向过程的软件工程方法、面向数据的软件工程方法、面向对象的软件工程方法和形式化的软件工程方法。(1) 面向过程的软件工程方法基于自顶向下,逐步求精的原则来完成软件开发各阶段的任务。程序的执行过程主要由顺序、选择和循环等控制结构来控制。(2) 面向数据的软件工程方法中的数据是指元数据。元数据并不表示某一记录的具体信息,而是用来将一些基础数据组织起来,即元数据是组织数据的数据。比如,信息系统中实体名及姓名的集合,或者数据库中物理表的表名及字段名的集合。这种方法与关系数据库联系紧密,特别适合信息系统中数据层的设计与实现。(3) 面向对象的软件工程方法是当前最流行的软件工程方法,它主要有以下几个方面的特征。把数据和操作封装在一起,形成对象。对象是构成软件系统的基本构件。把特征相似的对象抽象为类。类之间可以存在继承或被继承的关系,形成软件系统的层次结构。对象之间通过发送消息进行通信。将对象的私有信息封装起来。外界不能直接访问对象的内部信息,而必须是发送相应的消息后,通过有限的接口来访问。(4) 形式化的软件工程方法基于严格的数学逻辑,多应用于对安全性和可靠性要求较高的特殊领域。2. 面向对象的软件工程方法的优点(1) 符合人类的思维习惯。通常人类在认识客观世界的事物时,不仅会考虑到事物会有哪些属性,还会考虑到事物能完成哪些操作,也就是说静态的属性及动态的动作特征都是组成事物的一部分,它们组合起来才能完整地表达一个事物。而面向对象的软件工程方法最重要的特点就是把事物的属性和操作组成一个整体,以对象为核心,更符合人类的思维习惯。此外,面向对象的软件工程方法更加注重人类在认识客观世界时循序渐进,逐步深化的特点。用面向对象的软件工程方法进行软件开发的过程,是一个主动的多次反复迭代的过程,而不是把整个过程划分为几个严格的顺序阶段。(2) 稳定性好。传统的软件工程方法基于功能分析和功能分解。当软件功能发生变化时,很容易引起软件结构的改变。而面向对象的软件工程方法则是基于对象的概念,用对象来表示与待解决的问题相关的实体,以对象之间的联系来表示实体之间的关系。当目标系统的需求发生变化时,只要实体及实体之间的联系不发生变化,就不会引起软件系统结构的变化,而只需要对部分对象进行局部修改(如从现有的类中派生出新的子类)就可以实现系统功能的扩充。因此,基于对象的软件系统稳定性比较好。(3) 可复用性好。面向对象技术采用了继承和多态的机制,极大地提高了代码的可复用性。从父类派生出子类,一方面复用了父类中定义的数据结构和代码,另一方面提高了代码的可扩展性。复用是指使用一个产品的组件来简化另一个功能不同的产品的开发。-Stephen R. Schach(4) 可维护性好。由于利用面向对象软件工程方法开发的软件系统稳定性好和可复用性好,而且采用了封装和信息隐藏机制,易于对局部软件进行调整,所以系统的可维护性比较好。基于以上这些优点,面向对象的软件工程方法越来越受到人们的青睐。2.4面向对象需求分析方法面向对象的需求分析基于面向对象的思想,以用例模型为基础。开发人员在获取需求的基础上,建立目标系统的用例模型。所谓用例是指系统中的一个功能单元,可以描述为操作者与系统之间的一次交互。用例常被用来收集用户的需求。首先要找到系统的使用者,即用例的操作者。操作者是在系统之外,透过系统边界与系统进行有意义交互的任何事物。在系统之外是指操作者本身并不是系统的组成部分,而是与系统进行交互的外界事物。这种交互应该是有意义的交互,即操作者向系统发出请求后,系统要给出相应的回应。而且,操作者并不限于人,也可以是时间、温度和其他系统等。比如,目标系统需要每隔一段时间就进行一次系统更新,那么时间就是操作者。可以把操作者执行的每一个系统功能都看作一个用例。可以说,用例描述了系统的功能,涉及系统为了实现一个功能目标而关联的操作者、对象和行为。识别用例时,要注意用例是由系统执行的,并且用例的结果是操作者可以观测到的。用例是站在用户的角度对系统进行的描述,所以描述用例要尽量使用业务语言而不是技术语言。关于用例模型的详细创建方法,本书的实践部分会进行介绍。图2-13所示为某图书馆信息管理系统的用例图。(点击查看大图)图2-13图书馆信息管理系统的用例图确定了系统的所有用例之后,就可以开始识别目标系统中的对象和类了。把具有相似属性和操作的对象定义为一个类。属性定义对象的静态特征,一个对象往往包含很多属性。比如,读者的属性可能有姓名、年龄、年级、性别、学号、身份证号、籍贯、民族和血型等。目标系统不可能关注对象的所有属性,而只是考虑与业务相关的属性。比如,在图书馆信息管理系统中,可能就不会考虑读者的民族和血型等属性。操作定义了对象的行为,并以某种方式修改对象的属性值。目标系统的类可以划分为边界类、控制类和实体类,如图2-14所示。图2-14边界类、控制类和实体类的图符边界类代表了系统及其操作者的边界,描述操作者与系统之间的交互。它更加关注系统的职责,而不是实现职责的具体细节。通常,界面控制类、系统和设备接口类都属于边界类。控制类代表了系统的逻辑控制,描述一个用例所具有的事件流的控制行为,实现对用例行为的封装。通常,可以为每个用例定义一个控制类。实体类描述了系统中必须存储的信息及相关的行为,通常对应于现实世界中的事物。确定了系统的类和对象之后,就可以分析类之间的关系了。对象或类之间的关系有依赖、关联、聚合、组合、泛化和实现。依赖关系是非结构化的和短暂的关系,表明某个对象会影响另外一个对象的行为或服务。关联关系是结构化的关系,描述对象之间的连接。聚合关系和组合关系是特殊的关联关系,它们强调整体和部分之间的从属性,组合是聚合的一种形式,组合关系对应的整体和部分具有很强的归属关系和一致的生存期。比如,计算机和显示器就属于聚合关系。泛化关系与类间的继承类似。实现关系是针对类与接口的关系。明确了对象、类和类之间的层次关系之后,需要进一步识别出对象之间的动态交互行为,即系统响应外部事件或操作的工作过程。一般采用顺序图将用例和分析的对象联系在一起,描述用例的行为是如何在对象之间分布的。最后,需要将需求分析的结果用多种模型图表示出来,并对其进行评审。由于分析的过程是一个循序渐进的过程,合理的分析模型需要多次迭代才能得到。面向对象需求分析的示意图如图2-15所示。(点击查看大图)图2-15面向对象的需求分析2.5UML简介UML(Unified Modeling Language),即统一建模语言,是一种标准的图形化建模语言。它主要用于软件的分析与设计,用定义完善的符号来图形化地展现一个软件系统。UML的使用可以贯穿于软件开发周期的每一个阶段,适用于数据建模、业务建模、对象建模和组件建模。作为一种建模语言,UML并不涉及编程的问题,即与语言平台无关,这就使开发人员可以专注于建立软件系统的模型和结构。UML作为一种语言,可以像其他语言一样,用来编写小说、百科全书、诗歌、祷告、新闻报道,甚至是软件工程的教科书。语言是表达思想的一种工具,而不应该约束语言所能表达的思想类型或者表达的方式。-Stephen R. SchachUML是由Grady Booch、Jim Rumbaugh和Ivar Jacobson三位专家共同开发的。1996年6月和10月分别发布的UML 0.9版本和UML 0.91版本当时就获得了工业界、科技界和用户的广泛支持。1996年底,UML已经占领了面向对象技术市场85%的份额,成为事实上的可视化建模语言的工业标准。1997年11月,OMG(国际对象管理组织)把UML 1.1作为基于面向对象技术的标准建模语言。目前,UML已经推出了2.0版本,其巨大的市场潜力和经济价值正逐渐得到人们广泛的认可。UML 2.0版本由4个部分组成。基础机构;上层结构;对象约束语言;图交换标准。基础结构和上层结构构成了UML 2.0提案需求的主体部分。基础结构的设计目标是定义一个元语言的核心库,通过对此核心的复用,可以定义各种元模型。上层结构的设计目标是复用基础结构中的制品,提高对基于构件开发和模型驱动体系结构的支持,同时优化架构的规约能力。UML 2.0支持13种图,其中有6种结构图和7种行为图。结构图也称为静态模型图,主要用来表示系统的结构,它包括类图、组织结构图、组件图、部署图、对象图和包图。行为图也称为动态模型图,主要用来表示系统的行为,它包括活动图、交互图、用例图和状态机图。其中交互图是顺序图、通信图、交互概况图和时序图的统称。UML 2.0的13种图如图2-16所示。(点击查看大图)图2-16UML 2.0中的13种图结构图中比较常用的有类图和对象图。类图主要用来表示类、接口、协作以及它们之间的关系。对象图主要表示对象的特征以及对象之间的关系。行为图中比较常用的有用例图、顺序图、状态机图和活动图。用例图用来描述一组用例、用例的操作者以及它们之间的关系。顺序图用来显示若干对象间的动态协作关系,强调对象之间发送消息的先后顺序,描述对象之间的交互过程。状态机图用来描述类的对象的所有可能的状态,以及引起状态转换的事件。活动图用来重点描述事物执行的控制流或数据流,是一种描述交互的方法。UML使问题表述标准化,有效促进了软件开发团队内部各种角色人员的交流,提高了软件开发的效率。UML软件工程组织官方网站为/。2.6利用Rose创建网上书店系统的用例模型(1)数据流图是一种结构化需求分析工具,而用例模型多用在面向对象需求分析方法中。用例图是UML中的一种动态图,用于定义系统的行为,并展示操作者与用例之间的相互作用。本节将具体介绍如何用Rose来创建网上书店系统的用例模型。创建用例模型时首先要确定用例的操作者,即系统的使用者。比如,在某高校的教务管理系统中,学生、教师和教务工作人员都可能成为用例的操作者。在识别和判断操作者时要注意以下两点。(1) 操作者处于系统之外,即操作者本身并不是系统的组成部分,而是与系统进行交互的外界事物。(2) 操作者与系统之间要进行有意义的交互。也就是说,操作者向系统发出请求后,系统要给出相应的回应。识别出操作者后,可以把操作者所执行的一系列系统功能归结为一个个用例。识别用例时还要注意,用例是站在用户的角度对系统进行的描述,要尽量使用业务语言。此外,每个用例应该针对一个可测量的任务或目标,即用例之间应该是独立的。通常软件开发人员可以从需求的描述中提取用例,对于一个独立的事件,只要找到它的操作者、操作者的行为以及行为的对象就可以定义一个用例了。用例模型不仅包括用例图,还包括与用例图相关的文字性描述。因此,在绘制完用例图后,还要对每个用例的细节做详细的文字性说明。可以使用Rose来创建用例模型。Rational Rose 2003中提供的用例图的建模符号以及对符号的相关描述如图2-26所示。用例模型可以建立在不同的层次上,具有不同的粒度。顶层用例图比较概要地描述系统的结构和功能,底层用例图对顶层用例图中的用例进行细化。下面我们以创建网上书店系统的顶层用例模型为例,介绍如何运用Rational Rose 2003创建用例模型。(1) 创建一个名为网上书店系统.mdl的Rose模型文件。(2) 在用例视图下,创建一个用例图。右击Use Case View,选择Use Case Diagram,如图2-27所示。将用例图命名为顶层用例图,然后在浏览区中双击顶层用例图,打开编辑区中对应的框图。图2-26用例图的建模符号(点击查看大图)图2-27创建用例图(3) 在编辑区添加用例模型的操作者。在网上书店系统中,操作者有游客、会员和管理员。单击工具栏上的操作者图标,然后将鼠标移动到用例图窗口上的合适位置,单击即可。同时,为操作者命名,如图2-28所示。(点击查看大图)(4) 如果想对操作者做详细的说明或定义,可以在编辑区中,右击相应的操作者图符,然后选择Open Specification,然后在图2-29所示的窗口中为该操作者添加详细的说明信息。(5) 添加操作者之间的关系。部分操作者之间可能会存在着泛化的关系。所谓泛化,可以理解为类之间的继承。在网上书店系统中,会员是对游客的泛化。添加泛化关系时,可以点击工具栏中的泛化关系图标,然后在编辑区中的操作者之间划一条线。双击这条线,可以在打开的窗口中对泛化关系进行详细定义。至此,我们得到了用例模型的操作者视图,如图2-30所示。图2-29对操作者的详细说明图2-30用例模型中的操作者(6)添加用例。单击工具栏中的用例图符,然后在用例图的合适位置单击鼠标,得到一个用例图符,然后对该用例进行编辑,添加它的名称,如图2-31所示。如果想对用例做详细描述,可以在编辑区中,右击相应的用例,然后选择Open Specification,在打开的窗口中,添加相应的信息即可。(7) 添加操作员与各用例之间的关系。点击工具栏中的单向连接线图标,然后在编辑区中从操作者到相关用例划一条线即可。绘好单向连线后的用例图如图2-32所示。(8) 添加用例之间的关系。添加用例之间的关系时,可以点击工具栏中的依赖或实例化图标,然后在有关联的用例间划一条线。选中该线,右击选择Open Specification,得到如图2-33所示的对话框。在Stereotype栏里选择相应的关系即可。(点击查看大图)图2-31添加用例图2-32添加单向连接线后的用例图图2-33设置用例间的关系一般来说,软件需求规格说明书的格式可以根据项目的具体情况有所变化,没有统一的标准。下面是一个可以参照的软件需求规格说明书的模板。1概述本文档是进行项目策划、概要设计和详细设计的基础,也是软件企业测试部门进行内部验收测试的依据。1.1用户简介列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使用频度。这些是软件设计工作的重要约束。1.2项目的目的与目标项目的目的是对开发本系统的意图的总概括。项目的目标是将目的细化后的具体描述。项目目标应是明确的、可度量的、可以达到的,项目的范围应能确保项目的目标可以达到。对于项目的目标可以逐步细化,以便与系统的需求建立对应关系,检查系统的功能是否覆盖了系统的目标。1.3术语定义列出本文件中用到的专门术语的定义和外文首字母缩写词的原词组。1.4参考资料列出相关的参考资料,如:本项目的经核准的计划任务书或合同及上级机关的批文;属于本项目的其他已公布的文件;本文件中各处引用的文件和资料,包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明得到这些文件资料的来源。1.5相关文档1 项目开发计划。2 概要设计说明书。3 详细设计说明书。1.6版本更新信息版本更新记录格式,如表1所示。表1版本更新记录版 本 号创 建 者创建日期维 护 者维护日期维护纪要V1.0王林2009/03/03V1.0.1李丽2009/03/16业务模型维护2目标系统描述2.1组织结构与职责将目标系统的组织结构逐层详细描述,建议采用树状的组织结构图进行表达,每个部门的职责也应进行简单的描述。组织结构是用户企业业务流程与信息的载体,对分析人员理解企业的业务、确定系统范围很有帮助。取得用户的组织结构,是需求获取步骤中的工作任务之一。2.2角色定义用户环境中的企业角色和组织机构一样,也是分析人员理解企业业务的基础,是需求获取的工作任务,同时也是分析人员提取对象的基础。对每个角色的授权可以进行详细的描述,建议采用表格的形式,如表2所示。对用户角色的识别也包括使用了计算机系统后的系统管理人员。表2角色定义编号角色所在部门职责相关的业务1005采购员业务部商品采购、合同签订、供应商选择进货、合同管理2.3作业流程或业务模型目标系统的作业流程是对现有系统作业流程的重组、优化与改进。企业的作业流程首先要有一个总的业务流程图,将企业中各种业务之间的关系描述出来,然后对每种业务进行详细的描述,使业务流程与部门职责结合起来。详细业务流程图可以采用直式业务流程图、用例图或其他示意图的形式。图形可以将流程描述得很清楚,但是还要附加一些文字说明,如关于业务发生的频率、意外事故的处理、高峰期的业务频率等,不能在流程图中描述的内容,需要用文字进行详细描述。2.4单据、账本和报表目标系统中用户将使用的正式单据、账本、报表等,进行穷举、分类、归纳。单据、账本和报表是用户系统中信息的载体,是进行系统需求分析的基础,无论采用哪种分析方法,这都是必不可少的信息源。2.4.1单据因为单据上的数据是原始数据,所以一种单据一般对应一个实体,一个实体一般对应一张基本表。单据的格式可用表格描述,如表3所示。表3单据的描述格式单据名称用途使用单位制作单位频率高峰时数据流量各数据项的详细说明如下:数据项中文名数据项英文名数据项类型、长度、精度数据项的取值范围主键/外键2.6需求规格说明书编写指南(2)2.4.2账本因为账本上的数据是统计数据,所以一个账本一般对应一张中间表,账本的格式可用表格描述,如表4所示。表4账本的描述格式账本名称用途使用单位制作单位频率高峰时数据流量各数据项的详细说明如下:序号数据项中文名数据项英文名数据项类型、长度、精度数据项算法1232.4.3报表因为报表上的数据是统计数据,所以一个报表一般对应一张中间表,报表的格式可用表格描述,如表5所示。表5报表的描述格式报表名称用途使用单位制作单位频率高峰时数据流量各数据项的详细说明如下。序号数据项中文名数据项英文名数据项类型、长度、精度数据项算法1232.5可能的变化对于目标系统,将来可能会有哪些变化,需要在此描述。企业中的变化是永恒的,系统分析员需要描述哪些变化可能引起系统范围变更。3目标系统功能需求3.1功能需求描述采用功能需求点列表或者用例模型的方式对目标系统的功能需求进行详细描述。功能需求描述可以提供给后续设计、编程、测试中使用,也可以在用户测试验收中使用。功能需求点列表的格式,如表6所示。表6功能需求点列表编号功能名称使用部门使用岗位功能描述输入系统响应输出1234目标系统性能需求4.1性能需求描述详细列出用户性能需求点列表,提供给后续分析、设计、编程、测试中使用,更是为了用户测试验收中使用。性能需求点列表的格式如表7所示。表7性能需求点列表编号性能名称使用部门使用岗位性能描述输入系统响应输出1235目标系统界面与接口需求5.1界面需求界面的原则要求,如方便、简洁、美观、一致等。整个系统的界面风格定义,某些功能模块的特殊的界面要求。输入设备:键盘、鼠标、条码扫描器、扫描仪等。输出设备:显示器、打印机、光盘刻录机、磁带机、音箱等。显示风格:图形界面、字符界面、IE界面等。显示方式:1024768、640480等。输出格式:显示布局、打印格式等。5.2接口需求点列表(1) 与其他系统的接口,如监控系统、控制系统、银行结算系统、税控系统、财务系统、政府网络系统及其他系统等。(2) 与系统特殊外设的接口,如CT机、磁共振、柜员机(ATM)、IC卡、盘点机等。(3) 与中间件的接口,要列出接口规范、入口参数、出口参数、传输频率等。应在此列举出所有的外部接口名称、接口标准、规范。外部接口列表,如表8所示。表8接口需求点列表编号接口名称接口规范接口标准入口参数出口参数传输频率1236目标系统其他需求6.1安全性列出安全性需求。6.2可靠性列出可靠性需求。6.3灵活性列出灵活性需求。6.4特殊需求列出其他特殊需求,例如以下需求。进度需求:系统的阶段进度要求。资金需求:投资额度。运行环境需求:平台、体系结构、设备要求。培训需求:用户对培训的需求,是否提供多媒体教学光盘。推广需求:推广的要求,如在上百个远程的部门推广该系统,是否要有推广的支持软件。7目标系统假设与约束条件假设与约定条件是对预计的系统风险的描述,例如以下内容。法律、法规和政策方面的限制。硬件、软件、运行环境和开发环境方面的条件和限制。可利用的信息和资源。系统投入使用的最晚时间。2.7网上书店系统的需求规格说明书(1)1概述1.1用户简介网上书店的使用者主要有经销商和用户群两种。(1) 经销商,相对于实体书店,网络经销商有如下特点。a. 营业时间不受限制,与传统的8小时营业时间不同,借助互联网,网上书店可以24小时全天候营业。这种不间断的服务方式对于巩固和扩大读者群、培育潜在的顾客具有重大意义。b. 不受营业场地限制。因为网上书店是虚拟书店,所以它无需门市,只要维持面积有限的库房即可正常运转,并以最低的成本经营最多的品种。c. 供需双方之间信息交流的广度、深度和速度有了质的飞跃。可提供的图书信息与用户需求信息的相互沟通及匹配一直是制约图书销量增长的瓶颈,网上书店以其直观的界面、丰富的信息、灵活的检索方式和个性化的定制服务,成功地解决了这一难题。d. 经营管理更加科学。现代信息技术的大量运用使得网上书店能够快捷地对业务数据进行采集、统计、分析和应用,这有助于克服传统营销模式中的主观性和盲目性,对于提高经营管理水平大有裨益。(2) 网上书店的用户群,该群体有如下特征。a. 主流人群为经常上网的读书爱好者,拥有能够上网的条件,以青年和中年人为主。b. 部分用户持有信用卡,可在网上直接付款;无信用卡的用户可以汇款进行交易。c. 从职业划分来看,一部分用户是高校学生,追求时尚快捷的购物方式,购买力有限;另一部分则为工作人群,追求高效经济的购物方式,购买力较强。1.2项目的目的与目标1.2.1目的通过网上书店系统实现图书销售的电子商务模式并满足经销商和用户进行电子交易的需求,保证充分发挥网上交易的优势。1.2.2目标(1) 网上书店各个功能完整。(2) 整个系统可以稳定运行。(3) 用户之间信息渠道畅通。(4) 用户可以迅速找到自己所需要的图书。(5) 付款渠道畅通。1.3术语定义暂无。1.4参考资料1. 赵池龙,杨林,孙伟实用软件工程,第2版北京:电子工业出版社,20062. 肖汉软件工程理论与实践,北京:科学出版社,20061.5相关文档软件开发计划书。1.6版本更新信息版本更新记录如表1所示。表1版本更新记录版 本 号创 建 者创建日期维 护 者维护日期维护纪要V1.0王明华2009-5-152现有系统描述2.1角色定义网上书店系统的角色定义见表2。表2角色定义编号角色01采购与发货02总务会计03网站管理04仓库管理05售后服务2.7网上书店系统的需求规格说明书(2)2.2作业流程网上书店系统的作业流程如图1所示。(点击查看大图)图作业流程2.3单据、账本和报表2.3.1单据暂无。2.3.2账本暂无。2.3.3报表暂无。2.4可能的变化暂无。3目标系统功能需求网上书店系统的功能概述如图2所示。(点击查看大图)图2网上书店系统的功能概述(1) 登录注册会员登录和游客注册的用例图如图3所示。(点击查看大图)图3登录注册模块的用例图对用例的说明如表3所示。表3对用例的说明编号功能名称使用部门输入系统响应输出功能描述101用户注册游客用户注册时的基本信息系统将用户注册时的信息全部存入数据库中用户可用注册时输入的用户名和密码进行登录用例编号:101用例名称:用户注册前置条件:游客申请注册后置条件:游客注册成功成为会员活动步骤:1. 游客选择注册。2. 系统返回一个注册页面。3. 游客根据提示输入相应的注册信息。4. 系统验证游客输入成功。5. 游客提交注册信息。6. 系统提示注册成功并返回首页。(默认已登录。)扩展点:无异常处理:1. 游客输入信息和系统验证不一致(如字段长度超过系统设置等),系统给出相应的提示信息并返回注册页面。2. 游客输入用户名是已注册用户名,系统给出提示并返回注册页面。3. 系统异常,无法注册,并给出相应的信息(如网站维护等)。(续)编号功能名称使用部门输入系统响应输出功能描述102会员登录会员用户注册时的用户名和密码用户的登录时间等相关信息存入数据库中相关会员的页面用例编号:102用例名称:会员登录前置条件:该会员必须是本网站已注册的成员后置条件:该会员登录成功活动步骤:1. 该会员选择登录。2. 系统返回一个登录页面。3. 会员输入用户名、密码和验证码并提交。4. 系统进行系统验证,验证成功,记录该用户为登录用户并返回主页面。(表明该会员已登录。)扩展点:无异常处理:1. 用户忘记密码,选择“找回密码”功能,进入找回密码用例。2. 系统验证用户登录信息有错,提示用户重新登录。3. 系统处理异常,系统给出相应的提示信息。103找回密码会员用户注册时的邮箱号或密码提示问题系统根据注册邮箱号或密码提示问题找到相应的用户并返回其对应的密码设置页面用户重新设置自己的密码用例编号:103用例名称:找回密码前置条件:用户必须是本系统的成功注册用户后置条件:系统返回设置密码的页面让用户重新设置密码活动步骤:1. 会员选择“找回密码”。2. 系统返回一个密码找回页面。(要求用户输入注册时的邮箱号,系统自动发送邮件到用户的邮箱中,用户再根据邮箱中设置的链接重新设置密码。)3. 用户输入新的密码并提交。4. 系统进行验证,验证成功,提示修改成功并自动跳转至登录页面。扩展点:1. 与活动步骤中的步骤1相同。2. 系统返回一个密码找回页面。(要求用户输入用户名,并根据密码提示问题让用户输入密码提示答案。)3. 用户输入用户名和密码提示问题并提交。4. 系统进行验证,验证成功,并返回密码重新设置页面。5. 用户输入新的密码并提交。6. 与活动步骤中的步骤4相同。异常处理:1. 在扩展点中,若用户输入错误的用户名或密码提示答案,则系统提示验证错误并返回登录页面。2. 系统处理异常,系统给出相应的提示信息。2.7网上书店系统的需求规格说明书(3)(续)编号功能名称使用部门输入系统响应输出功能描述104修改个人信息会员用户输入个人的相关信息系统在数据库中用用户现在的个人信息替换以前的个人信息用户的个人信息显示被修改了用例编号:104用例名称:修改个人信息前置条件:该用户必须是此系统成功注册并且已成功登录的用户后置条件:该用户修改个人信息成功活动步骤:1. 会员选择“修改信息”。2. 系统返回一个信息修改页面。3. 会员修改相关信息并提交。4. 系统进行系统验证,验证成功,提示修改成功。扩展点:无异常处理:1. 系统验证会员输入有误,提示重新输入并返回“修改信息”页面。2. 系统处理异常,系统给出相应的提示信息。105用户注销会员系统自动转换,不需要输入系统自动修改用户在数据库中的相应状态显示用户未登录用例编号:105用例名称:用户注销前置条件:该用户必须是该系统成功注册并且已成功登录的用户后置条件:用户成功注销活动步骤:1. 会员选择“注销”。2. 系统提示用户成功注销并返回网站首页。扩展点:无异常处理:系统异常,并给出相应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025石材翻新的合同书
- 贫困生申请书九篇
- 2024年环保设施安装及运营合同
- 感恩父母的演讲稿模板锦集6篇
- 拔河比赛策划书15篇
- 工程造价的实习报告范文锦集五篇
- 2025商铺租赁合同标准版
- 幼儿园个人科研总结报告5篇
- 2025品牌区域代理合同书
- 年度老师工作计划汇编7篇
- 产品研发合伙人合作协议书
- 2024年化学检验员(中级工)技能鉴定考试题库(附答案)
- 部编版二年级语文上册第二单元复习课件
- 山东师范大学《学术研究与论文写作》2021-2022学年第一学期期末试卷
- 2023-2024学年广东省深圳市宝安区五年级(上)期末英语试卷
- 幼儿园社会教育专题-形考任务二-国开(FJ)-参考资料
- 设备基础(土建)施工方案
- 部编 2024版历史七年级上册期末(全册)复习卷(后附答案及解析)
- 地 理知识点-2024-2025学年七年级地理上学期(人教版2024)
- 王卓 企业数智化能力成熟度模型(EDMM)标准体系解读
- 某某有限公司重大危险源安全评估报告(定稿)
评论
0/150
提交评论