软件建模的分析与研究

软件建模的分析与研究
软件建模的分析与研究

软件建模的分析与研究

摘要:本文阐述了软件建模工具的重要性,并对软件建模工具进行了简介,随后重点讨论了面向对象的软件建模工具所应具有的功能及其所应遵循的标准。

关键词:软件建模模型简介建模工具

随着市场需求的不断深入, 软件功能越来越复杂, 规模更加庞大, 开发变得难以把握。解决这个问题的一个有效方法就是采用软件建模技术, 通过建立软件模型, 将复杂问题分层,分为多个问题逐一解决。软件模型有利于分工与专业化, 便于需求人员、设计人员和开发人员之间交流与沟通, 缩短开发周期, 节约生产成本。因此, 软件建模技术在软件工程中变得越来越重要。

软件建模工具擅长自动做重复的工作,管理大量的信息,并能保持事物的结构性和一致性。软件建模工具还能在一定的程度上向用户提供开发过程指导,也即把工具与过程有机地结合起来,使得过程驱动工具,而工具支持过程的实施。对于用户而言,工具应该易学、易用和好用,能指导用户怎样探讨任务,使得用户将精力花费在重要的任务上。软件开发人员能够利用建模工具捕获与描述系统的需求,进行系统的分析与设计,建立系统模型,进而生成程序或辅助编程,并能生成开发过程中的各种文档。由此可见,使用开发工具能有效地提高软件的质量和开发效率。概括起来讲,软件建模工具的作用如下:

A、提供了引导人们有效地建立正确模型的手段;

B、可缩短开发时间,有助于减少枯燥、繁琐的重复性工作;

C、便于对系统的修改和维护;

D、提供了存储和管理有关信息的机制和手段,具有保持信息一致性的能力;

E、可帮助用户编制、生成及修改各种文档;

F、有助于生成程序代码;

G、为复用提供了方便。

一、软件模型的定义

模型是对实际存在的系统的抽象。通过建立系统模型,能够过滤细节, 抽象出问题的本质。为了建立复杂的软件系统, 首先需要构建系统总体蓝图; 再对总体抽象出不同的层次, 建立不同视图, 使用统一的符号分别建立模型, 描述出视图内部与视图之间的关联性; 验证这些模型是否满足系统需求, 并逐渐添加

细节信息, 实现这些模型。一个模型形成的过程就是软件建模的过程。软件建模是捕捉系统本质的过程,把问题从问题领域转移到解决问题领域, 目的是把要设计的结构和系统的行为联系起来, 并对系统的体系结构进行可视化和控制。

模型是对实物的抽象化或离散化, 软件是现实世界的过程在计算机中的重现。软件开发的任务是完成现实世界中同一过程的两种不同表象之间的映射关系的建立。要完成这种映射关系的建立, 可以在不同的现象到本质的中间层折回, 折回进入的本质层次越深, 重用的机会越大。软件模型就是这些逐层建立的映射关系的全集。

二、模型的作用

1、模型可以促进项目有关人员对系统的理解和交流。模型对于问题的理解、项目有关人员(客户、领域专家、分析人员和设计人员等)之间的交流、文档的准备以及程序和数据库的设计等都非常有益。模型可使得人们直接研究一个大型的复杂软件系统。建模能促进人们对需求的理解,从而可得到更清晰的设计,进而得到更易于维护的系统。

2、模型有助于挑选出代价较小的解决方案。在研究一个大型软件系统的模型时,人们可以提出多个实际方案并对它们进行相互比较,然后挑选出一个最好的方案。

3、模型可以缩短系统的开发周期。模型实质上是通过过滤掉一些不必要的细节而刻画复杂问题或者结构的必要特性的抽象,它使得问题更容易理解。在有了模型之后,软件系统的开发过程就会变得较快,同时也就降低了系统的开发成本。

三、软件建模简介

为了建立复杂的系统,开发人员必须首先抽象出系统的不同视图,并用精确的表示法来建立模型,最后在模型转换为实现的过程中逐渐添加进相关细节。

现在软件产业界普遍认为,开发复杂软件项目必须采用基于UML的、以构架为中心、用例驱动与风险驱动相结合的迭代式增量开发过程,他是世界公认的开发复杂软件项目的最好过程,已经成为软件界的"圣经"。这一开发过程目前已经稳定、成熟。这就是: RUP—RationalUnified Process。

UML 是一种语言,提供了用于交流的词汇表和在词汇表中组合词汇的规则。

词汇表和规则则注重于对系统进行概念上和物理上的描述。UML这样的建模语言正是用于软件蓝图的标准语言。贯穿于软件开发生命周期,并能表达系统体系结构的各种不同视图。

Rational统一过程是由Rational软件公司开发和营销的一种软件工程过程,是开发组织用以分配与管理任务和职责的一种规范化方法。这个过程的目的是在预定的进度和预算范围内,开发出满足最终用户需要的高质量软件。它捕获了很多现代软件开发中的最佳实践:迭代地开发软件,管理需求,应用基于构件的构架,为软件建立可视化的模型,不断地验证软件质量,控制软件的变更。RUP将这些最佳实践活动以一种适当的形式结合起来,从而适应了广泛的项目和开发组织。

RUP核心是解决可操作性问题,帮助开发人员尽可能少地依赖那些“不可描述的经验”。他详细给出了每个阶段参与该过程的各种角色,然后表示在过程中该角色创建的制品。

建模并不只是针对大的系统。甚至像“狗窝”那样的软件也能从一些建模中受益。然而,可以明确地讲,系统越大、越复杂,建模的重要性就越大,一个很简单的原因是:因为不能完整地理解一个复杂的系统,所以要对它建模。

四、UML 标准简介

统一建模语言UML( Unified Modeling Language) 是一种通用的可视化建模语言, 用于对软件进行描述、可视化处理、构造和建立软件系统的文档。UML 适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。UML 能够描述系统的静态结构和动态行为, 是一个绘制软件概念图的图形化记法(notation)。人们可以用它绘制图形, 来表示一个计划进行的软件设计的问题域, 或者用这些图来表示一个已经完成的软件实现。

目前, UML 中定义了它的表示法与超模型。表示法是我们在模型中所看到的图形部分, 它也代表模型语言( modelinglanguage) 的语法。UML 的主要建模图形有Use Case、ClassDiagram、State Transmission Diagram、Sequence Diagram、ActivityDiagram、Collaboration Diagram、Configuration Diagram等。但是, UML 的创造者却以第二顺位的重要性来看待这些图, 他们认为UML 的本质在于超模型, 图仅仅是超模型的展现而已。

UML 一般有三种使用模式, 分别是把UML 当成草稿、蓝图与程序语言来用。

将UML 视为草稿是三种用法中最常见的。采用这种模式, 开发人员用UML 来沟通系统的某些层面,画图的焦点在于沟通而不是完整性, 不必刻意遵守UML 中的每一条严谨规则。将UML 视为蓝图与完整性有关。如果是采用正向工程, 首先需要画出详细的设计结果, 设计结果必须完整, 做出所有的设计决策。UML 不是一种程序设计语言, 但可以用代码生成器将UML 模型转换为多种程序设计语言代码,或使用反向生成器工具将程序源代码转换为UML 模型。模型驱动开发架构MDA( Model Driven Architecture) 是将UML视为程序语言的标准用法。

五、建模工具简介

其实人们早就认识到了建模工具的重要性。20 世纪70年代,出现了基于文本界面的建模工具;80 年代,出现了支持图形化设计方法的建模工具;90 年代,出现了元建模工具,它允许用户对工具本身进行扩展。针对用面向对象方法开发软件,随着UML 的不断发展和完善,当前流行围绕着U M L 研制与开发建模工具。

建模工具随领域的不同而不同,但都应该具有技术框架和集成前景,为软件系统建模提供某(些)种层次的支持。下面就一些典型类型的工具予以简述。

1、图工具

目前市场上有大量的支持业务作图的工具,但作图工具产生的图只是图形,工具对所绘制的图并不能理解。这样的图只能由设计人员解释其含义,对作图工具来说,它没有语义。由于作图工具对所作的图不能作出语义解释,所以它就不存支持复用或扩展等功能。

典型的作图工具有Visio 、ABC Flowcharter 、Corel Flow 等。

2、过程建模和仿真工具

过程建模工具用于对业务过程建模或对管理过程建模等。

仿真工具用于对诸如飞机模型、台风、流沙或服装之类的领域进行模型仿真。仿真工具通常非常复杂,需要有排队论、统计学、运筹学等方面的知识,加之专业方面的知识,其本身成本及使用成本都很高。

典型的这样的工具有Bpwin、Optima、Promodel 等。

3、传统CASE 工具

传统的CASE 工具基于传统的诸如结构化之类的开发方法,现在用的较少,

但它们中的很多建模技术已被其他工具采纳。

典型的工具有Key Software 和IEF 等。

4、数据库建模工具

此类工具围绕着数据库建模,开发具有有限语义的数据建模方案,强调数据库生成。在业务建模的其他方面,此类工具的建模能力较差。

在国内外,这些工具都是CASE 市场的幸存者,现在使用的人很多。典型的工具有E r w i n 、S - d e s i g n e r 、Power-designer 等。

六、面向对象的软件建模工具应具有的功能

面向对象的软件建模工具应对软件系统的制品进行可视化、详述、构造和文档化。一套面向对象的软件建模工具应该基于特定的概念与表示法,通过对建模人员进行过程性支持,辅助进行建模,并要按规范生成相应的开发文档,可能的话要尽可能多地生成代码。具体地讲,一个面向对象的软件建模工具应具有绘图、存储、导航、协作开发、生成代码、逆向、集成、覆盖模型的各抽象层次、模型转换等功能。

下面详述面向对象软件的软件建模工具所应具有的主要功能。

1、绘图

绘图主要完成如下功能:

(1)支持对模型元素进行绘制、选择、定位、连接以及着色;

(2)在模型元素图符的表面和后面描述其语义;

(3)理解模型的语义,在错误的上下文中使用某模型元素时,要给出警告或出错信息;

(4)提供图的版面设计功能,对一定种类的图提供自动布局功能,主要用于避免线段间的交叉以及图元间的交叉。

2、存储

各种模型中的信息需要存储,为检索、一致性检查、复用、文档生成等提供基础。检索是指按一定条件查找模型元素;一致性检查要检查同一模型中的元素在各图中的用法是否一致,例如,删除某个元素,而其他图要使用它,就会出问题;复用是指对全部或部分模型的复用,用以构造其他模型,这可能需要提供复用库及其管理系统;文档生成要根据所存储的信息生成文档。

对于协作建模来说,建模工具对信息存储的支持是必要的。对模型中一个建模元素的修改,工具要自动地将其传播到所有引入该模型元素之处。

基于U M L 的建模工具,应该遵循对象管理组织O M G(Object Management Group)的XMI 标准。这样在各建模工具之间可以交互模型,建模工具也可以与其他开发工具间交换模型。例如,报表生成工具可以直接地从基于XMI 存储的建模工具中读取数据生成报表。目前也有些组织正在从事其他标准存储格式的制定工作。

3、一致性检查

对于一个面向对象的软件系统,可能由多个模型进行描述,并且这些模型可能要从不同的侧面、不同的抽象层次对系统进行描述,而这些模型间是有一定关系的。此外,模型是对现实世界中的事物的抽象,在某种程度上反映了客观现实,有主观性和相对性。因而,在建模过程中,不但要对语法的正确性进行检查,而且对建模中的众多信息也要按规则进行一致性检查,以保证模型的各部分间的一致。有无一致性检查是区分画图工具和建模工具的一个重要标志。

4、对模型进行组织

建模人员使用工具可能要产生大量制品,其中包括对系统的定义、对系统的分解而产生的一系列子系统、构成子系统的各种模型以及一些代码等。这些制品涉及到大量的图及其详述,而且它们之间可能存在很多关系,所以要对这些制品进行组织,形成系统模型。

5、导航

同一个图中建模元素之间以及同一个系统的多个图中的建模元素之间可能存在着一定的关系,工具要提供从一个元素找到与它相关的元素的手段,即提供模型元素的链接功能。例如,右击元素弹出一个快捷菜单,其上显示出可能的导航,进而可以查看含有该元素的图,以获取该元素的其他信息。

6、协作支持

较大的系统需要多人分工协作来完成。这就要求工具基于信息存储功能,具有对模型的导出和导入功能。通常可能还要求信息存储功能,以支持数据共享和并发控制等特性。

7、代码生成

把建模阶段存储的部分语义直接用到实现阶段,由模型生成代码,可减少重复劳动。针对具体编程语言生成的是代码框架,其中也可以填有部分源代码或伪代码。生成的源代码语言的种类可由用户在一定的范围内选定,工具也应提供由用户定制语言模版的功能,也即提供一个元语言,由用户描述所生成的语言。此外,要保证在用户编写代码又逆向后,对模型进行了修改并再生成语言时,不应把用户已编写的代码覆盖掉。

8、逆向工程

正向工程用于从模型产生代码,而逆向工程用于从代码生成模型。逆向工程有两个作用:一是对由工具生成的源代码进行逆向,这是因为程序员编写了大量程序代码并对模型做了一定的修正,就需要由代码重新生成模型,以保证代码和模型的一致性,即在迭代结束时,使模型和代码保持同步。二是在以前没有模型存在的情况下将代码转换成模型。

正向和逆向工程这两方面的成功结合被定义为双向工程。在实际开发时,经常要进行这样的反复过程。工具同时具有正向和逆向工程的能力是一项复杂的需求,不同厂商在不同程度上支持双向工程。

注意源代码中不只包含与模型有关的信息,逆向时有些源代码信息不能反应在模型中。从源代码逆向到模型,再从模型正向到源代码,不要把原有的代码完全覆盖掉,这对支持双向工程的建模工具来说是较为困难的。

9、集成

集成是指把建模工具与进行系统开发所需要的工具形成一体。这样的工具有项目管理工具、配置管理工具、版本管理工具、过程支持工具和编辑浏览工具等。

10、支持多种抽象层和开发过程

建模工具要支持从上层的抽象描述到向下直至代码层的描述,如按粒度大小支持系统、子系统、用况、协作、类图等。从开发过程上讲,建模工具要支持需求描述、面向对象的分析、面向对象的设计以及面向对象的编程。

11、文档生成

建模的一项重要成果是从模型生成文档。这些文档包括系统的总体说明、分析文档和设计文档等。文档的形式可为图形和文字等;存储格式可为W O R D 、H T M L 和文本文件等,这样开发者不需要加载建模工具本身就能阅读文档。建

模工具所生成的文档应该按某种(些)标准所规定的格式书写。工具还应提供用户定制文档格式的功能,以满足用户自己的特殊需要。

12、适当的信息隐蔽

因为很多模型较为复杂,所含信息量较多,故工具应具有对模型进行展开和折叠的功能。例如,像W I N D O W S的资源管理器一样可展开和折叠。展开便于观察所需要了解的那部分模型的内容,折叠便于观察模型的整体情况。还应该定义模型过滤器,把图中一些开发者感兴趣的方面独立地表示出来或着重显示。例如,仅显示类中可见性为公共的属性和操作。

13、模型库管理

对于一些值得复用的模型,建模工具应提供存储功能,并加以组织。对同一模型的各种版本也要加以管理,以便在以后使用时,仍然可以得到以前的版本。

14、打印支持

建模工具应能把一张大图放置在所需的页数内并准确地打印出来。建模工具还要提供打印预览和缩放图的功能。

15、脚本编程

利用脚本编程,高级用户可以创建能在建模工具内直接访问对象模型的脚本来添加其他功能。例如,为当前开发的项目做定制文档、代码或报表。

16、元建模

为了使用户可以定制自己的建模元素,有些研发部门开发了具有元建模能力的工具,即除了一般建模工具所具有的能力外,它还可以方便地扩展建模元素(包括概念、表示方式和语义等)。这种工具的特点是灵活,能根据需要定制建模元素。

在日常的生活、工作中,我们会遇到很多问题都需要建立模型,希望能够通过对软件建模的了解来解决实际生活中的问题。

参考文献:景妮琴北京电子科技职业学院电子工程系软件教研室讲师浅谈数学建模与软件建模山西师大学报(社会科学版)研究生论文专刊第36卷2009年5月

麻志毅北京大学软件工程国家工程研究中心面向对象的软件建模工具软件工程与标准化

庞杨中国电信股份有限公司北京研究院 UML 标准与软件建模技术的发展数据通信2006.2

《软件建模与分析UML》结课报告

XXXX大学 《软件建模与分析》 结课论文 题目:采用UML对《新生入学信息临时采集系统》建模 系别: 专业: 班级学号: 学生姓名:

采用UML 对《新生入学信息临时采集系统》建模 一, 系统说明 《新生入学信息临时采集系统》主要用于XXXX 大学每年新生入学报到期间,学校对大批量新生个人信息的快速采集,整理,储存,调用以及其后续各项工作,该系统的装备使用是为了简化新生报到流程,便于新生信息的及时快速采集整理,尤其是极大地便利了各系辅导员日常工作对学生各项信息的分析整理,同时也完善了我院自动化办公系统,提高了自动化办公地效率。 二、系统设计-----UML 建模 根据前面的系统说明及需要,分别建立系统的用例图、系统概念类图、工作 流程活动图、设计类图、交互图、状态图、系统部署图。 新生入学信息临时采集系统 Rose 描述 一、 项目需求描述 1、 用例图 大一新生入学信息临时采集系统的用例图 基础数据库管理 系统管理员 新生 员 信息采集员

说明: 本系统是基于网络的动态信息实时传递系统,新生在到我院相应系别专业报到处报到时,将仔细填写一份《新生入学个人信息采集表》并进行数码照相,并由信息采集员详细核对整理后,交由信息录入人员通过输入相应的用户名和密码登陆该系统,将新生细心准确无误的录入到电脑中,并通过局域网上传至我院的相应服务器中。各系各专业辅导员,则可以通过在办公室的电脑连接到我院局域网,通过相应的用户名和密码登陆该系统来实时查看本专业(即辅导员所带领的专业)新生报道情况及新生的个人信息(包括其本人的数码照片)同时还可以进行调取,打印等功能。学生处负责新生报到新生信息统计工作的工作人员,通过在其办公室电脑连接校园局域网,输入用户名和密码登陆该系统可以实时查看全院,各系,各专业,各班级新生报到情况,并可以进行院级,系级,专业级,班级的各级新生信息统计查看工作,同时也可以进行打印,调取等功能性操作。该系统的维护人员通过相应的用户名和密码登陆该系统进行各项维护升级等工作。

软件建模与分析复习题A

软件建模与分析复习题(A) 一、 选择题 1. 下面的模型图中,哪个能正确表示“1个教师可以指导0个到多个学生的论文,1个学生必须有1个教师指导其论文” 的意思( ) 2. 计算机由CUP 、内存、硬盘、显示器、鼠标等构成,那么计算机类和鼠标类之间的关系是( ) A 继承关系 B 关联关系 C 聚合关系 D 依赖关系 3. 下面( )图形表示依赖关系。 4. 关于UML ,下面说法正确的是( ) A UML 是一种面向对象的建模方法。 B UML 是一种形式化的语言,使用UML 建立的模型可被计算机编译执行。 C UML 是一种面向对象的编程语言。 D UML 是一种面向对象的建模语言,但不是建模方法。 Student Teacher 10..n A Teacher Student 0..n 1 B Teacher Student 10..n C Teacher Student 0..n 1D A B C D

5.顺序图和交互图的关系,类似与下面的哪种关系() A 类和对象的关系 B 类和参与者关系 C Java和编程语言的关系 D UML和Java的关系 6.要对一个企业的工作流程建模,下面4种图中的()是最重要的。 A 交互图 B 活动图 C 状态图 D 类图 7.关于参与者,错误的说法是() A 参与者是与所建立的系统交互的人或物。 B 参与者可以是实际的人,也可以其他系统。 C 参与者是系统的一部分,是用例图的重要组成部分。 D 参与者之间可以存在泛化关系。 8.UML中关联的多重性是指() A 一个类有多个方法被另一个类调用。 B 一个类的实例对象能够与另一个类的多少个实例对象相关联。 C 一个类的某个方法被另一个类调用的次数。 D 两个类所具有的相同的方法和属性。 9.关于类图的说法正确的是() A 类图分为3个层次:对象层、特征层和关系层,其中对象层给出系统中所有反映问题 域和系统责任的对象。 B 类图分为3个层次:对象层、特征层和关系层,其中特征层给出系统中所有反映问题 域和系统责任的对象。 C 类图只是一种辅助模型,不如其他图重要。 D 类图定义了系统的功能需求,描述了系统的动态行为。 10.根据Coad/Yourdon的定义,面向对象的概念不包括() A 对象 B 继承 C 消息 D 封装 11.使用UML对系统进行动态建模,不能使用以下哪种图() A 类图 B 顺序图 C 状态图 D 活动图 12.UML的结构事物不包括() A 接口 B 类 C 协作 D 状态机 13.分析下面的顺序图,并指出哪种说法是正确的()

软件系统分析与设计DOC

第1章软件工程基础知识 1.1软件工程知识体系 ●软件需求(Software Requirements) ●软件设计(Software Design) ●软件构造(Software Construction) ●软件测试(Software Testing) ●软件维护(Software Maintenance) ●软件配置管理(Software Configuration Management) ●软件工程管理(Software Engineering Management) ●软件工程过程(Software Engineering Process) ●软件工程工具和方法(Software Engineering Tools and Methods) ●软件质量(Software Quality) 1.2软件生存周期与软件开发模型 ● 1.2.1 软件生存周期 ●Boehm定义的软件生存周期模型 ●GB 8566-1988定义的软件生存周期模型 ●GB/T 8566-1995定义的软件生存周期过程模型 ●GB/T 8566-2001定义的软件生存周期过程模型 ●UP定义的软件生存周期模型 ● 1.2.2 软件开发模型 ●瀑布模型(waterfall model) ●快速原型模型(rapid prototype model) ●演化模型(evolutionary model) ●增量模型(incremental model) ●螺旋模型(spiral model) ●喷泉模型(water fountain model) 1.3软件质量模型与软件质量管理 ● 1.3.1 软件质量模型 ●软件产品的内部质量、外部质量和使用质量 ●质量特性、质量子特性和度量 ●功能性:适宜性、准确性、互用性、依从性、安全性 ●可靠性:成熟性、容错性、可恢复性 ●可用性:可理解性、易学性、可操作性 ●效率:时间特性、资源特性 ●可维护性:可分析性、可修改性、稳定性、可测试性 ●可移植性:适应性、易安装性、一致性、可替换性 ● 1.3.2 软件质量管理 ●质量需求分析 ●质量计划 ●质量保证 ●质量控制 ●质量改进 ●软件质量管理体系

软件建模与分析课程设计报告

计算机技术与工程学院课程设计报告 课程名称:软件建模与分析课程设计 设计题目:教材管理系统 学生姓名:耿誉 学号: 1204431117 专业班级:软件1241 指导教师:潘欣赵健 起止时间: 9月7日至 9月18日 成绩评定 内容表现成果报告总评 成绩

2015-2016第1学期《软件建模分析课程设计》任务书 指导教师:潘欣赵健佘向飞付浩海班级:软件1241-2 地点:9教机房409,411 时间:第1、2周 一、课程设计目的 1、进一步理解、掌握UML的基本概念、结构、语义与表示方法; 2、综合运用UML和其它先修课程的理论和知识,掌握面向对象的软件建模与分析的一般方法、常用技术及技巧,树立良好的软件建模思想,培养分析问题和解决实际问题的能力; 3、学会使用Star UML建模工具,运用UML建模思想及方法,对各类软件系统进行分析、设计、建模。 二、课程设计内容 课程设计参考题目如下: 1. 小区物业管理系统 2. 高校工资管理系统 3. 教材管理系统 4. 酒店管理系统 5. 高校教职工管理系统 6.图书管理系统 7.火车订票管理系统 8.企业人事管理系统 9.商品库存管理系统 10.医院药品管理系统 11. 学生成绩管理系统 12. 高校学籍管理系统 13. 航空订票管理系统 14. 学费管理系统 15. 城市居民户籍管理系统 16.超市管理系统

17.学费管理系统 18.车辆管理系统 19. 房地产管理系统 20. 企业物资管理系统 21、其它自选题目 学生可任选一题或自拟题目(需经指导老师审核批准)。在分析设计题目,做好系统需求基础上,进行如下主要设计: 分析问题领域:确定系统范围和系统边界,设计用例图 设计静态结构模型:建立类图,对象图,包图,数据库建模 设计动态行为模型:建立时序图,状态图,协作图,活动图 设计物理模型:建立组件图,配置图 设计要求:系统设计建模符合面向对象的设计准则及规则。如: 准则:模块化、抽象、信息隐藏、低耦合和高内聚等; 规则:1)设计结果清晰易懂 2)一般到具体的抽象深度应适当 3)尽量设计小而简单的类 4)使用简单的消息协议、函数或方法 5)把设计变动减至最小 三、时间安排 序号完成内容时间(天) 1 设计准备及需求分析 2 2 设计静态结构模型 4 3 设计动态行为模型 5 4 设计物理模型 1.5 5 编写设计报告书 1.5

软件需求分析与设计复习题

软件需求分析与设计复习题 一.判断 1、( × ) 程序设计语言种类很多,在进行软件开发时可以随便选择一种语言进行编码。 2. ( x ) 软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。 3、(× ) 在软件开发的各个阶段进行过程中,增加人员肯定会对整个项目提前完成有好处。 4.( x ) 好的测试用例应能证明软件是正确的。 5.( x ) 软件功能测试的测试用例主要是由需求阶段的功能说明部分转化而来。 6、( x ) CoCoMo模型可以用来估算系统的工作量和软件开发所需时间。 7.( x ) 有时为了测试的方便,而可以局部地修改软件系统。 8、( v ) OOA方法的核心思想是利用面向对象的概念和方法为软件需求建造模型,大致步骤是识别对象(属性和方法),识别类及其结构,定义对象之间的消息传递等。 9.( x ) 面向对象方法更适合于软件重用的根本原因在于它是软部件唯一的合成技术。 10、( v ) 系统需求分析员应该具有开发软、硬件系统的经验并且了解用户领域的知识。 11.( x ) 在软件的生命周期中,工作量最大的一个阶段就是编写程序。 12、( x )软件运行正确,可见软件中没有缺陷(fault)。 13.( x ) RUP(Rational Unified Process:统一软件过程)本质上是轻量级的软件过程规范。 14、( v )软件失败(failure)在系统交付之前和交付之后都可能被发现。 15.( x ) 基准测试(benchmark test)是非正式的用户确认和验收测试。 16、( x )开发人员和客户对软件质量因素的认可是完全一致的。 17.( x ) UML语言支持面向对象的主要概念,并与具体的开发过程相关。 18、( v )里程碑(milestone)就是开发过程中的某个活动(activity)。 19.( v ) 好的软件测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。 20、( x )在软件开发中一定要不惜代价避免风险。 21.( v ) 在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。 对功能的具体实现。 22.( v )用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部 23.( v ) 软件过载缺陷就是当运行程序时,软件内部定长的数据结构被溢出,系统任务无法 24.( v ) 结构化程序设计方法能改善程序结构,提高程序的运行效率。 二、选择从供选择的答案中,选出正确的答案填入()内 1.白盒测试法常用的方法是A方法,黑盒法中常用的方法是B方法和C方法,C方法根据输入的关系设计测试用例。供选择的答案:(②③⑤) A、B、C:①综合测试②路径测试③等价分类④归纳测试 ⑤因果图⑥追踪⑦回溯⑧排错 2. 软件工程的出现是由于( A )。 A.软件危机的出现 B. 计算机硬件技术的发展 C.软件社会化的需求 D. 计算机软件技术的发展 3. 系统技术可行性研究涉及的技术应该是(D)技术。 A.现在已提出的 B. 现在在研究的C.不一定可以获得的 D. 一定可以获得的 4.模块综合测试的方法有A和B两种,A是从下层模块向上层模块依次结合进行测试,为测试需要C 以便调用被测模块,但从开发的初期就能并行进行测试作业,并且每个模块的D都很容易做,是这种方法的优点。其缺点是直到测试的最后阶段,程序的缺陷都难以发现。B是从上层模块向下层模块依次结合进行测试,为了测试需要设计E模块模拟被测模块所调用的下级模块。 供选择的答案:(A:⑦ B:⑥ C:⑥ D:① E:①) A、B、D:①功能测试②组合测试③综合测试④可靠性测试 ⑤结构测试⑥自顶向下测试⑦自底向上测试 C、E:①仿真②模拟③生成④转贮⑤跟踪 ⑥驱动模块⑦宏模块⑧支持模块

软件建模和设计试题

一.名词解释: 1.在软件工程中,对客观世界的问题领域进行抽象,并用某描述方法表示的结果称为模型。模型是现实系统的简化,它是抓住现实系统的主要方面而忽略次要方面的一种抽象,是对问题的书面上的、图形或文字的、无歧义的描述。人们常常在正式构造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害。在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握。 https://www.360docs.net/doc/847834093.html,e Case(用例):在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。一个Use Case表达了用户对系统的一项需求,也就是系统的一项责任或功能。 3.架构风格指一组原则。可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。软件体系架构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系架构风格定义了一个系统家族,即一个体系架构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。体系架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。例如,如果某人把系统描述为“客户/服务器”模式,则不必给出设计细节,我们立刻会明白系统是如何组织和工作的。 4.类(Class)是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。类通过接口与外界发生关系。 5.软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。是建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 二、 1.面向对象建模的大致过程如下: 用UML进行面向对象建模首先要描述总体需求。在这一阶段中主要是建立用例模型和静态模型,以搭建系统体系结构。用例图是系统的高级视图,要求按照面向对象的原则,站在功能划分的角度将系统要实现的行为划分为用例;以用例之间的动态交互及交互时间为依据产生顺序图;接下来就在用例图的基础上抽象出系统的类,明确各模块之间的关系以适当的粒度画出类图,其中也包括了与用例图的相互迭代修改在分析完模块的静态交互关系后继而要绘制出构件图。以上这些过程中均不考虑系统的具体实现,如建立什么样的数据库或采用什么语言编码等,最好是以使用者的眼光去分析系统功能。为建立完整的系统模型,还要对模块交互和构件细节做进一步分析,补充状态图、活动图、协作图和实施图等,从尽可能多的角度对复杂系统进行描述。在模型确定后就可以借助相应的支撑软件将模型导出为

软件建模与分析_项目报告模板_1.0.

@SoftR 开发文档 软件名称:家校互动系统 版本号:V 1.0 项目组人员:周国南,黄德朋,许洋,唐文欣完成时间:2015年12月24日

目录 第1章引言 (1) 1.1背景 (1) 1.2目的和意义 (1) 1.3参考资料 (2) 第2章相关技术基础 (3) 2.1室内定位技术 (3) 2.2室内导航算法 (4) 第3章需求分析 (6) 3.1所采用的技术 (6) 3.2功能需求分析 (6) 3.3系统开发环境 (7) 第4章概要设计 (8) 4.1 系统总体结构 (8) 4.2用户界面设计 (9) 4.3系统功能设计 (9) 4.3.1电子地图 (10) 4.2.2二维码定位 (10) 4.2.3室内导航 (11) 4.4数据库设计 (12) 第5章详细设计 (14) 5.1系统用例图 (14) 5.2系统时序图 (14) 5.3电子地图的实现 (15) 5.4室内导航的实现 (18) 5.4.1回溯算法 (18) 5.4.2路径显示 (21) 第6章系统使用说明 (24) 6.1系统主界面 .................................................................................... 错误!未定义书签。 6.2电子地图 ........................................................................................ 错误!未定义书签。 6.3室内导航 ........................................................................................ 错误!未定义书签。

软件课程设计需求分析

普通话考试报名及成绩查询系统 需求分析 项目名称:普通话考试报名及成绩查询系统撰写人: 专业: 指导老师: 2012年3月19日

摘要 网络技术的飞速发展正无时无刻影响着人们的工作、在教育体系中,网络的应用也成为现代教育发展的基础.网络教育逐渐发展起来,校园网建设逐步成熟,基于Web的也伴随着网络技术的发展应运而生.它即简化了传统的考试模式,节约人力物力,也可以有效利用校园网资源,辅助教学. 该系统采用了目前流行的B/S模式,即浏览器、应用服务器、数据库服务器三层体系结构,后台数据库采用SQL Server 2005,客户端采用IE浏览器和服务器连接,最终形成了基于 B/S模式的在线考试系统.该系统具备了以下功能:学生信息管理、成绩查询等功能. 论文以基于B/S模式的在线考试系统为研究对象,按照软件工程的开发思想,用UML来构建在线考试系统模,后台采用数据库相结合. 际需求出发,论述了开发普通话等级考试报名及成绩查询系统的背景、目的及意义,讨论了开发系统的关键技术,并通过UML分析对系统设计及实现。 设计思路和方法采用瀑布模型开发,用统一建模语言 UML进行描述,经历了文献检索,需求分析,分析模型设计,数据模型设计,构建级设计,系统部署,系统测试六个个环节。。实现了用户登录、注册功能,出题组卷功能,考试评卷功能以及用户信息查询功能。 关键词:普通话等级考试报名及成绩查询系统; SQL SERVER2005

目录 一.摘要 (2) 二.背景 (5) 三.简介 (5) 1.设计目的 (5) 2.开发环境 (5) 3.程序功能 (6) 4.系统实际需求特点 (6) 四.整体规划思路 (6) 五.整体性需求分析 (6) 六.功能需求 (9) 1.业务规则 (9) 2.普通话等级考试报名及成绩查询系统登录 (10) 七.数据库设计 (12) 1.概念模型设计 (12) 2.数据表结构 (12) 八.系统结构设计 (14) 九.对性能的规定 (15) 1.灵活性 (15)

需求分析建模技术

项目需求分析 1. 需求分析概述 1.1 需求分析定义 需求分析是指理解用户需求,就软件功能和性能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。在这个过程中,用户处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。需求分析阶段结束后,要求得到《用户需求说明书》和《需求规格说明书》两份文档。广义上,需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。 狭义上的需求分析是指需求的获取、分析及定义的过程。需求分析的任务就是软件系统解决“做什么”的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求的过程。 1.2 需求分析的根本任务 从实践角度考虑,需求分析不是分析如何实现用户的需求。实际上,需求分析是以业务分析为导向,将用户零散的需求串联起来,形成一个体系完成、组织合理、内容清晰的框架,为今后的设计开发工作打下良好的基础。 1、建立分析模型 ?将复杂的系统分解成为简单的部分以及它们之间的联系,确定本质特征。 ?和用户达成对信息内容的共同理解。 ?分析的活动主要包括识别、定义和结构化,它的目的是获取某个可以转换 为知识的事物的信息。

2、创建解决方案 ?将一个问题分解成独立的、更简单和易于管理的子问题来帮助寻找解决方 案。 ?创建解决方案的过程是创造性的。 ?帮助开发者建立问题的定义,并确定被定义的事物之间的逻辑关系。 ?这些逻辑关系可以形成信息的推理,进而可以被用来验证解决方案的正确 性。 1.3 需求的层次 1、业务需求 反映组织机构或客户对系统、产品高层次的目标要求。通常问题定义就是业务需求 2、用户需求 描述用户使用产品必须要完成什么任务,怎么完成,通常是在问题定义的基础上进用户访谈、调查,对用户使用的场景进行整理,从而建立从用户角度的需求 3、系统需求 从系统的角度来说明软件的需求,它就包括了用特性说明的功能需求,质量属性以及其它非功能需求,还有设计约束

软件需求分析和设计说明书

XX系统 软件需求分析和设计说明书(使用面向对象的方法) 组号: 组长: 组员:

任务分配表 1请详细注明每位同学具体的工作内容。

目录 1 热身:练习使用Visio (1) 2 作业:面向对象的分析和设计 (2) 2.1 用例图 (2) 2.2 类图 (2) 2.3 序列图(顺序图) (2) 2.4 状态图(状态机图) (2) 2.5 活动图 (2)

XX系统软件需求分析和设计说明书 (面向对象方法)2 1热身:练习使用Visio 以Microsoft Office Visio 2003为例:启动Visio,点击“帮助—Microsoft Office Visio帮助”。在弹出的窗口中,点击“目录”—“创建绘图”—“软件”—“UML模型图”—“关于UML模型”。在“关于UML模型”窗口中,依次练习使用对各类图的绘制方法。其中,对类和对象的描述安排在“静态结构图”中。 在Microsoft Office Visio 2003中的“关于UML模型”窗口示意: 如安装Microsoft Office Visio 2007:则启动Visio,点击“帮助—Microsoft Office Visio 帮助”。在弹出的窗口中,点击“软件和数据库模型图”—“UML图”—“UML 系统模型和类型”。按提示,依次练习使用“系统模型”(关于UML 模型图模板中的系统模型、向现有UML 系统模型添加新模型、创建新的UML 系统模型)、“用例图”、“静态结构图”、“序列图”、“状态图”、“活动图”,等。其中,对类和对象的描述安排在“静态结构图”中。 热身要求:熟悉上述UML图的用途和表示方法,按照帮助说明使用Visio软件绘制“裁判员认证系统”的相关UML图。每人独立完成,不需要提交试验报告。 实验时数:3学时。 2在5月22日前,由组长把本实验报告发送至教师邮箱。组长在发送作业时,需要同时(如不同时转发,本次发送视同无效!)转发给所有组内的其他同学。教师邮箱:dodge2000@https://www.360docs.net/doc/847834093.html,,相关作业文件应为Word格式,并以附件方式发送。请在邮件的主题中标出:软件工程课程作业;[学号];[姓名]。例如:“软件工程课程作业;04052119;倪哉君”。文中“XX”字样必须由实际的选题替换。

软件建模报告

《软件建模技术》报告

第1章引言: 1.1问题提出的背景: 二十一世纪是信息高度交流与发展的时代,面计算机系统则在信息时代扮演着极为重要的脚色。然而,人工管理图书馆存在大量问题,比如,图书馆信息量过于庞大,包括图书信息,借书人信息等。图书管理系统的出现是为了解决图书的系统管理和借书人的系统管理,使图书馆的运作更加系统化、结构化,将人力解放出来。好的图书管理系统拥有着广泛的市场前景。 1.2现状和意义: 现今,有很多的图书馆尚未使用计算机进行信息管理。图书馆若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下,也不方便读者对图书资料的查阅。为了提高日常的图书管理效率,必须开发满足大多数中小型的图书管理要求的图书管理系统。本系统针对通常的图书管理流程,深入分析了图书管理系统的需求和功能,为图书管理系统程序开发提供了现实理论基础。

第2章需求分析: 2.1功能分析: 图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。因此,本系统需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。 2.2图书馆管理信息系统需要完成主要功能: 1)录入读者基本信息,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注等。 2)查询、修改读者基本信息,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注等等。 3)制定书籍类别标准及录入信息,包括类别编号、类别名称、关键词、备注信息等。 4)书籍信息的输入,包括书籍编号、书籍名称、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页书、关键词、登记日期、备注信息等。 5)借书信息的输入,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、备注信息等。 6)借书信息的查询、修改,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、备注信息等。

UML与软件建模复习答案

UML与软件建模复习题 1.面向对象方法的优点是什么。 面向对象的方法把功能和数据看做是高度统一的,其优点有: (1)它能较好地处理软件的规模和复杂度不断增加所嗲来的问题。 (2)它更适合于控制关系复杂的习题系统 (3)面向对象系统通过对象间的协作来完成任务,因而更加容易理解。 (4)它是欧诺个各种直接模仿应用域中实体的抽象和对象,从而使得规约和谁及更加完整。 (5)它围绕对象和类进行局部化,从而提高了规约、设计和代码的易扩展性、易维护性和易复用性。 (6)它简化了开发者的工作,提高了软件和文档的质量。 2.面向对象的软件开发方法包括哪些特定阶段。 面向对象的软件开发方法设计从面向对象分析(OOA)、面向对象设计(OOD)、面向对象程序设计或编码(OOP)、面向对象测试(OOT)等一系列特定阶段。面向对象设计方法期望获得一种独立于语言的设计描述,以求达到从客观世界中的事物原型到软件系统间的尽可能的平滑过渡。 3.UML定义了哪几类图,每一类包括那些类型的图。 UML中定义了用户模型视图、结构模型视图、行为模型视图、实现模型视图和环境模型视图这五类图。 其中, 用户模型视图包含:用例图; 结构模型视图包含:类图、对象图; 行为模型视图包含:序列图、协作图、状态图和活动图; 实现模型视图包含:构件图; 环境模型视图包含:部署图。 4.UML的设施包括那些。 在UML中,设施可分为结构设施、行为设施、分组设施和注释设施等四大类。 (1)结构设施是UML模型的静态部分,主要用来描述概念或者物理元素,包括类、接口、协作、用例、主动类、构件和结点7种设施。其中: 类:是对一组具有相同属性、相同操作、相同关系和相同语义对象的描述,一个类实现了一个或多个接口。 接口:描述了一个类或构件一个服务操作集,也即定义了元素的外观可见行为。接口定义的是一组操作的描述,而不是操作的实现。 协作:定义了一个交互,是由一组通过共同工作以提供某协作行为的角色和其他元素构成的一个实体。 用案:是一组动作序列的描述,系统执行这些动作后将产生一个对特定参与者可以观察且又价值的结果。 主动类:是其对象至少要拥有一个进程或进程的类,因此它能够启动控制活动。主动类的对象所描述的元素的行为与其他元素的行为并发,除此以外,它和类是一样的。 构件:是系统中物理的、可替代的部件,它通常是一个描述了一些逻辑元素的物理包。 结点:是运行时存在的物理元素。它代表一种可计算的资源,通常具有一定的记忆能力和处理能力。 (2)行为设施是UML模型的动态部分,它包括如下两类设施: 交互:由特定语境中共同完成一定任务的一组对象之间交换的消息组成。一个对象群体的行为或单个操作的行为都可以用一个交互来描述。 状态机:描述了一个对象或一个交互在生命期内相应时间所经历的状态序列,单个类或者一组类之间协作的行为可以用状态机来描述。

需求分析建模技术

需求分析建模技术内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

项目需求分析 1.需求分析概述 1.1需求分析定义 需求分析是指理解用户需求,就软件功能和性能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。在这个过程中,用户处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。需求分析阶段结束后,要求得到《用户需求说明书》和《需求规格说明书》两份文档。广义上,需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。 狭义上的需求分析是指需求的获取、分析及定义的过程。需求分析的任务就是软件系统解决“做什么”的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求的过程。 1.2需求分析的根本任务 从实践角度考虑,需求分析不是分析如何实现用户的需求。实际上,需求分析是以业务分析为导向,将用户零散的需求串联起来,形成一个体系完成、组织合理、内容清晰的框架,为今后的设计开发工作打下良好的基础。 1、建立分析模型 将复杂的系统分解成为简单的部分以及它们之间的联系,确定本质 特征。 和用户达成对信息内容的共同理解。

分析的活动主要包括识别、定义和结构化,它的目的是获取某个可 以转换为知识的事物的信息。 2、创建解决方案 将一个问题分解成独立的、更简单和易于管理的子问题来帮助寻找 解决方案。 创建解决方案的过程是创造性的。 帮助开发者建立问题的定义,并确定被定义的事物之间的逻辑关 系。 这些逻辑关系可以形成信息的推理,进而可以被用来验证解决方案 的正确性。 1.3需求的层次 1、业务需求 反映组织机构或客户对系统、产品高层次的目标要求。通常问题定义就是业务需求 2、用户需求 描述用户使用产品必须要完成什么任务,怎么完成,通常是在问题定义 的基础上进用户访谈、调查,对用户使用的场景进行整理,从而建立从 用户角度的需求 3、系统需求 从系统的角度来说明软件的需求,它就包括了用特性说明的功能需求, 质量属性以及其它非功能需求,还有设计约束

软件需求分析方案设计

软件需求分析方案设计 软件需求分析是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。今天小编为大家准备了软件需求分析方案设计,欢迎阅读! 软件需求分析方案设计如果我们用数学方法来描述软件需求分析,可以将一个应用软件定义为S,可能应用软件涉及功能性问题非常广,我们用抽象化理论分析,可以划分为各个功能域,可以用D1、D2、… Dn表示,那么,我们可以用一个表达式描述为 S={D1,D2,D3,…Dn} 但是,功能域Di依然存在着有若干个问题P1、P2、P3、…Pm组成,并且每个功能对应于子系统中的一个软构件,我们可以表示为 Di={P1,P2,P3,…Pm} 同样,功能Pj有若干个行为F1、F2、F3、… Fk,每个行为对应于软构件中的实现方法 Pj={F1,F2,F3,…Fk} 一个软件包含了所有功能的集合,同时包含了实现所有功能的所有方法和算法描述。需求分析是依据于用户需求,经过需求问题识别,进行分析、消化与综合,制订规格说明,评审,分为四个阶段,形成用户需求与设计同步,设计满足

用户需求目标。 需求分析方法始终贯穿着吸收、同化、贯彻方法和手段,用商业化行为解决需求与实现中存在的矛盾,解决用户需求与商业化产品融通,解决规范与个性化追求。 软件需求分析的主要实现目标: 1)对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整性,促使用户在软件设计启动之前周密地、全面地思考软件需求; 2)了解和描述软件实现所需的全部信息,为软件设计、确认和验证提供一个基准; 3)为软件管理人员进行软件成本计价和编制软件开发计划书提供依据; 需求分析的具体内容可以归纳为六个方面:软件的功能需求,软件与硬件或其他外部系统接口,软件的非功能性需求,软件的反向需求,软件设计和实现上的限制,阅读支持信息。 软件需求分析应尽量提供软件实现功能需求的全部信息,使得软件设计人员和软件测试人员不再需要需求方的接触。这就要求软件需求分析内容应正确、完整、一致和可验证。此外,为保证软件设计质量,便于软件功能的休整和验证,软件需求表达无岔意性,具有可追踪性和可修改性。 、软件功能需求

软件建模与分析课程设计说课讲解

软件建模与分析课程 设计

计算机技术与工程学院课程设计报告 课程名称:软件建模与分析课程设计 设计题目:教材管理系统 学生姓名:耿誉 学号: 1204431117 专业班级:软件1241 指导教师:潘欣赵健 起止时间: 9月7日至 9月18日 成绩评定 内容表现成果报告总评成绩

2015-2016第1学期《软件建模分析课程设计》任务书 指导教师:潘欣赵健佘向飞付浩海班级:软件1241-2 地点:9教机房409,411 时间:第1、2周 一、课程设计目的 1、进一步理解、掌握UML的基本概念、结构、语义与表示方法; 2、综合运用UML和其它先修课程的理论和知识,掌握面向对象的软件建模与分析的一般方法、常用技术及技巧,树立良好的软件建模思想,培养分析问题和解决实际问题的能力; 3、学会使用Star UML建模工具,运用UML建模思想及方法,对各类软件系统进行分析、设计、建模。 二、课程设计内容 课程设计参考题目如下: 1. 小区物业管理系统 2. 高校工资管理系统 3. 教材管理系统 4. 酒店管理系统 5. 高校教职工管理系统 6.图书管理系统 7.火车订票管理系统 8.企业人事管理系统 9.商品库存管理系统 10.医院药品管理系统 11. 学生成绩管理系统 12. 高校学籍管理系统 13. 航空订票管理系统 14. 学费管理系统 15. 城市居民户籍管理系统 16.超市管理系统 17.学费管理系统 18.车辆管理系统 19. 房地产管理系统 20. 企业物资管理系统

21、其它自选题目 学生可任选一题或自拟题目(需经指导老师审核批准)。在分析设计题目,做好系统需求基础上,进行如下主要设计: 分析问题领域:确定系统范围和系统边界,设计用例图 设计静态结构模型:建立类图,对象图,包图,数据库建模 设计动态行为模型:建立时序图,状态图,协作图,活动图 设计物理模型:建立组件图,配置图 设计要求:系统设计建模符合面向对象的设计准则及规则。如: 准则:模块化、抽象、信息隐藏、低耦合和高内聚等; 规则:1)设计结果清晰易懂 2)一般到具体的抽象深度应适当 3)尽量设计小而简单的类 4)使用简单的消息协议、函数或方法 5)把设计变动减至最小 三、时间安排 四、基本要求

软件建模与分析复习题(B) 2

软件建模与分析复习题(B) 一、单项选择题: 1. UML 的全称是 ( b ) (A )Unify Modeling Language (B )Unified Modeling Language (C )Unified Modem Language (D )Unified Making Language 2. 执行者(Actor )与用例之间的关系是( c ) (A )包含关系 (B )泛化关系 (C )关联关系 (D )扩展关系 3. 在类图中,下面哪个符号表示继承关系( c ) 4. 在类图中,“ #”表示的可见性是( b ) (A )Public (B )Protected (C )Private (D )Package 5. 在类图中,下面哪个符号表示接口( c ) 6. 下面哪个视图属于UML 语言的交互图( d ) (A )行为图 (B )状态图 (C )实现图 (D )顺序图 7. UML 语言包含几大类图形( d ) (A )3 (B )5 (C )7 (D )9 8. OMT 方法是由下面哪位科学家提出的( b ) (A )Booch (B )Rumbaugh (C )Coad (D )Jacobson 9. 下面那个类图的表示是错误的( d ) 10. 什么概念被认为是第二代面向对象技术的标志( a ) (A )用例 (B )UML 语言 (C )活动图 (D )组件图 11. 下面哪个符号代表包图( a ) (B) (A) (C) (D) Student Student name : String age: Integer Student getName () getAge () Student Name : String Age:Integer getName () getAge () (B) (A) (C) (D) (B) (A) (C) (D)

有关软件需求分析的步骤以及所需文档讲课教案

有关软件需求分析的步骤以及所需文档 ○一、需求分析的几个方面 需求分析可分为问题识别、分析与综合、编制需求分析文档、需求评审等四个阶段,包括以下几个方面: 1、确定软件所期望的用户类;获取每个用户的需求 2、了解实际用户任务和目标以及这些任务所支持的业务需求 3、分析员与用户的信息以区别用户任务需求、功能需求、业务规则、 质量属性、建议解决方法和附加信息 4、将系统级的需求分为几个子系统,并将需求中的一部分分配给软件 组件 5、了解相关质量属性的重要性 6、讨论得出实施优先级 7、将所收集的用户需求编写成需求规格说明和模型 8、评审需求规格说明,确保与用户达成共识 ○二、需求分析的任务与过程 需求分析的任务是借助于当前系统的物理模型(待开发系统的系统元素)导出目标系统的逻辑模型(只描述系统要完成的功能和要处理的数据),解决目标系统“做什么”的问题。 所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求,通过逐步细化对软件的要求描述软件要处理的数据,并给软件开发提供一种可以转化为数据设计、结构设计和过程设计的数据与功能表示。 必须全面理解用户的各项要求,但不能全盘接受,只能接受合理的要求;对其中模糊的要求要进一步澄清,然后决定是否采纳;对于无法实现的要求要向用户作充分的解释。 最后将软件的需求准确地表达出来,形成软件需求说明书SRS。

实现步骤: (1)获得当前系统的物理模型 首先分析、理解当前系统是如何运行的,了解当前系统的组织机构、输入输出、资源利用情况和日常数据处理过程,并用一个具体的模型来反映自己对当前系统的理解。此步骤也可以称为“业务建模”,其主要任务是对用户的组织机构或企业进行评估理解他们的需要及未来系统要解决的问题,然后建立一个业务USECASE模型和业务对象模型。当然如果系统相对简单,也没必要大动干戈区进行业务建模,只要做一些简单的业务分析即可。 (2)抽象出当前系统的逻辑模型 在理解当前系统“怎样做”的基础上,取出非本质因素,抽取出“做什么”的本质。 (3)建立目标系统的逻辑模型 明确目标系统要“做什么” (4)对逻辑模型的补充 如用户界面、启动和结束、出错处理、系统输入输出、系统性能、其他限制等等。 ○三、需求分析各过程: (1)问题识别:解决目标系统做什么,做到什么程度。需求包括:功能、性能、环境、可靠性、安全性、保密性、用户界面、资源使用、成本、进度。同时建立需求调查分析所需的通信途径。 (2)分析与综合:从数据流和数据结构出发,逐步细化所有的软件功能,找出各元素之间的联系、接口特性和设计上的限制,分析它们是否满足功能要求并剔除不合理部分,综合成系统解决方案,给出目标系统的详细逻辑模型。常用的分析方法有面向数据流的结构化分析方法SA(数据流图DFD、数据词典DD、加工逻辑说明)、描绘系统数据关系的实体关系图ERD、面向数据结构的Jackson 方法JSD、面向对象分析方法OOA(主要用UML)、对于有动态时序问题的软件可以用形式化技术,包括有穷状态机FSM的状态迁移(转换)图STD、时序图、

如何进行软件需求分析

软件需求分析(Software Reguirement Analysis)是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。 软件需求分析是一个项目的开端,也是项目实施最重要的关键点。据有关的机构分析结果表明,我们设计的软件产品存在不完整性、不正确性等问题80%以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出。因此,一个项目的成功软件需求分析是关键的一步。 一、软件需求分析理论 如果我们用数学方法来描述软件需求分析,可以将一个应用软件定义为S,可能应用软件涉及功能性问题非常广,我们用抽象化理论分析,可以划分为各个功能域,可以用D1、D2、… Dn表示,那么,我们可以用一个表达式描述为S={D1,D2,D3,…Dn} 但是,功能域Di依然存在着有若干个问题P1、P2、P3、… Pm组成,并且每个功能对应于子系统中的一个软构件,我们可以表示为 Di={P1,P2,P3,…Pm} 同样,功能Pj有若干个行为F1、F2、F3、… Fk,每个行为对应于软构件中的实现方法 Pj={F1,F2,F3,…Fk} 一个软件包含了所有功能的集合,同时包含了实现所有功能的所有方法和算法描述。需求分析是依据于用户需求,经过需求问题识别,进行分析、消化与综合,制订规格说明,评审,分为四个阶段,形成用户需求与设计同步,设计满足用户需求目标。 需求分析方法始终贯穿着吸收、同化、贯彻方法和手段,用商业化行为解决需求与实现中存在的矛盾,解决用户需求与商业化产品融通,解决规范与个性化追求。 二、软件需求分析目标 软件需求分析的主要实现目标: 1)对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整性,促使用户在软件设计启动之前周密地、全面地思考软件需

相关文档
最新文档