《软件需求分析、设计与建模》复习
- 格式:doc
- 大小:144.00 KB
- 文档页数:8
参考答案选择题1.D2.C3.D4.C5.B6.D7.C8.B9.D10.A11.B12.A13.B14.D15.A16.B17.A18.D19.C20.A21.D22.B23.B24.D25.D26.B27.B28.A29.A30.C31.A32.B33.A34.B35.B36.A37.B38.A39.A40.C41.A42.C43.C44.D45.A46.B47.D48.C49.D50.C51.C52.A53.D54.B55.A56.A57.D58.A59.D60.A61.B62.D63.C64.A65.A66.C67.C68.A69.D70.A71.D72.A73.C74.A75.D判断改错题1.(√)2.(×)有“泳道”概念的是活动图。
3.(×)题目中描述的是CORBA。
4.(×)水平坐标表示一组对象,垂直坐标表示时间顺序。
5.(√)6.(×)UML是建模语言,不是方法论。
7.(√)8.(√)9.(×)两者没有明显分界,需要反复迭代的进行。
10.(×)OOCASE通过外部接口可以方便的调用其它工具软件。
11.(×)定义不同。
12.(√)13.(√)14.(×)完成使命的对象可以被销毁。
15.(×)由图和文字描述组成。
16.(√)17.(×)描述的是白盒复用。
18.(√)19.(F)它不能直接调用EJB构件,而是通过使用代理来调用。
20.(F)不能有嵌套的动作或递归的动作表达式。
21.(T)22.(F)需求模型也是可复用的软件制品。
23.(F)构件图主要用于建立系统的静态实现模型。
24.(F)OOCASE通过外部接口可以方便的调用其它工具软件。
25.(F)“对象+消息”的程序设计模式。
26.(F)通过频繁使用设计样式来设计更大更复杂的系统。
27.(T)28.(T)29.(T)30.(F)协作图强调对象之间的关系,而时序图强调一组对象之间错作调用的时间顺序。
软件开发与设计实例分析复习题(1004)一、基本要求1、软件项目开发概述(1)软件工程的三段论:软件开发过程、软件项目管理、软件过程改进(2)需求分析建模的基本方法:结构化方法、面向对象方法(3)概要设计原则和设计模型(4)软件体系结构:客户机/服务器结构(C/S)、浏览器/服务器结构(B/S)、应用程序框架结构(MVC)、组件体系结构(5)编码方法和规范:结构化编码方法、面向对象编码方法、编码标准和规范(6)测试方法和过程(7)软件项目的提交和维护(8)软件文档规范(9)软件开发环境与工具2、基于结构化方法的C/S架构软件项目实例(1)项目立项:立项背景、可行性分析、开发计划(2)需求分析:需求调研、数据分析、功能定义、需求分析文档(3)概要设计:开发环境、架构设计、数据设计、界面设计、模块设计、概要设计文档(4)详细设计:接口定义、数据结构定义、算法设计、详细设计文档(5)编码实现:编程实现、编码文档(6)系统测试:测试方案、测试过程、测试评估3、基于面向对象方法的C/S架构软件项目实例(1)项目立项:立项背景、可行性分析、开发计划(2)需求分析:需求调研、数据分析、功能定义、需求分析文档(3)概要设计:开发环境、架构设计、数据设计、界面设计、模块设计、概要设计文档(4)详细设计:接口/类定义、数据结构定义、算法设计、详细设计文档(5)编码实现:编程实现、编码文档(6)系统测试:测试方案、测试过程、测试评估4、基于B/S架构的网站开发软件项目实例(1)项目立项:立项背景、可行性分析、开发计划(2)需求分析:需求调研、数据分析、功能定义、需求分析文档(3)概要设计:开发环境、架构设计、数据设计、界面设计、模块设计、概要设计文档(4)详细设计:接口/类定义、数据结构定义、算法设计、详细设计文档(5)编码实现:编程实现、编码文档(6)系统测试:测试方案、测试过程、测试评估二、基本概念1、软件工程的三段论是指软件项目管理、软件项目开发和软件过程改进。
软件开发专业软件工程基础课程优秀教案范本软件需求分析与设计尊敬的读者:以下是一份软件工程基础课程的优秀教案范本,主题为软件需求分析与设计。
一、引言软件开发是一个多领域、多层次、多样化的过程,而需求分析与设计是此过程中至关重要的阶段。
本教案将以软件需求分析与设计为主题,旨在帮助学生掌握软件开发所需的基础知识与技能。
二、教学目标1. 理解软件需求分析与设计的基本概念和原则;2. 掌握需求获取的方法与技巧;3. 熟悉需求分析与设计的过程与工具;4. 能够使用UML(统一建模语言)进行需求分析与设计;5. 能够编写符合规范的软件需求文档。
三、教学内容1. 软件需求分析与设计的概述- 软件需求的定义与分类;- 软件开发生命周期与需求分析的关系;- 重要性与挑战。
2. 需求获取与分析- 需求获取的方法与技巧(包括访谈、问卷调查、场景分析等);- 需求建模与规范化(使用UML进行需求建模);- 需求分析的挑战与解决方案。
3. 需求设计与验证- 需求设计的原则与方法;- 软件架构设计(包括模块划分、组件设计等);- 需求验证与验证技术。
4. 软件需求文档编写- 需求文档的结构与要求;- 需求文档的撰写技巧与规范;- 需求文档的维护与追踪。
四、教学方法1. 理论讲授:通过课堂讲解,向学生传授软件需求分析与设计的基本概念、原则与方法。
2. 实践操作:通过案例分析、课堂演练等形式,让学生亲自操作,加深对软件需求分析与设计的理解与应用能力。
3. 小组讨论:以小组为单位,进行问题探讨与思考,促进学生的合作能力与思维能力。
4. 课外作业:布置相关的课后作业,巩固学生在软件需求分析与设计方面的知识与技能。
五、考核与评价1. 课堂表现:包括课堂参与度、表达能力、合作态度等方面的评价。
2. 课后作业:通过作业的完成情况与质量来评估学生的学习效果。
3. 期末考试:设置一定比例的期末考试,考查学生对软件需求分析与设计的掌握程度。
六、教学资源1. 教材:软件工程基础教材;2. 多媒体投影仪:用于课堂讲解与案例演示;3. 计算机实验室:提供学生进行软件需求分析与设计的实际操作环境。
需求工程练习题一、单选题(每空1分,共20分,请在备选答案中选择唯一一个正确的选项)1、产品特性可以称为质量属性,在众多质量属性中,对于开发人员来说重要的属性有哪些(B)A 有效性、效率、灵活性、互操作性B 可维护性、可移植性、可重用性、可测试性C 完整性、可靠性、健壮性、可用性D 容错性、易用性、简洁性、正确性2、需求包括11个方面的内容,其中网络和操作系统的要求属于(B),如何隔离用户之间的数据属于(C),执行速度、相应时间及吞吐量属于(D),规定系统平均出错时间属于(A).A 质量保证B环境需求C安全保密需求D 性能需求3、需求分析过程应该建立3种模型,它们分别是数据模型、功能模型、行为模型。
以下几种图形中,(B)属于功能模型,(A)属于数据模型,(C)属于行为模型。
A 实体-联系图(ERD)B 数据流图(DFD)C 状态转换图(STD)D鱼骨图4、常用的需求分析方法有:面向数据流的结构化分析方法(SA),面向对象的分析方法(OOA),下列(D)不是结构化分析方法的图形工具。
A决策树B数据流图C数据字典D快速原型5、软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性.其中,(B)和(C )用完就可以丢弃,而(A)围绕原型修改、增加.A 进化型B 探索型C实验型 D 以上都是6、(D)用于描述数据的处理过程.A 数据字典B决策树C决策表 D 数据流图7、DFD的基本符号不包括下列哪种(A)A 数据字典B 加工C 外部实体D 数据流E 数据存储文件8、DD的主要字典条目包括以下哪种(E)A数据流B文件 C 数据项D加工E以上都是9、常用的动态分析方法不包括以下哪种(B)A 状态迁移图B 层次方框图C时序图 D Petri网10、需求分析阶段的文档包括以下哪些(E)A 软件需求规格说明书B数据要求说明书C初步的用户手册D修改、完善与确定软件开发实施计划E以上都是11、需求验证应该从下述几个方面进行验证:(C)A 可靠性、可用性、易用性、重用性B可维护性、可移植性、可重用性、可测试性C一致性、现实性、完整性、有效性D 功能性、非功能性12、风险管理的要素包括哪项(D)A风险评价B风险避免C风险控制D以上都是13、下列描述中错误的是(D)A每一个集成的需求变更必须能跟踪到一个经核准的变更请求。
《软件需求分析》教学大纲目录一、内容概要 (2)1.1 课程介绍 (3)1.2 教学目标 (4)1.3 教学内容概述 (5)二、软件需求分析基础 (6)2.1 软件需求分析的重要性 (7)2.2 软件需求分析的基本概念 (8)2.3 需求分析的基本原理 (9)2.4 需求分析的方法论 (11)三、需求获取与整理 (11)3.1 需求获取的策略 (13)3.2 需求整理的技巧 (15)3.3 需求规格说明书的编写 (16)四、需求分析方法 (17)4.1 结构化分析方法 (19)4.2 面向对象的分析方法 (20)4.3 数据流分析方法 (21)4.4 其他需求分析方法简介 (22)五、需求验证与确认 (24)5.1 需求验证的目的和方法 (25)5.2 需求确认的流程和标准 (26)5.3 案例分析 (27)六、需求管理 (29)6.1 需求管理的概念和重要性 (30)6.2 需求变更的管理 (31)6.3 需求跟踪与监控 (33)6.4 需求文档的管理 (34)七、需求分析与设计的关系 (36)7.1 需求分析与设计的相互作用 (37)7.2 需求驱动的设计方法 (38)7.3 案例分析 (39)八、课程总结与展望 (41)8.1 课程总结 (42)8.2 学生学习成果评估 (43)8.3 对未来软件需求分析发展的展望 (45)一、内容概要本课程旨在培养学生掌握软件需求分析的基本理念、方法和技能,使学生具备从事软件项目需求分析工作的能力。
课程内容包括软件需求分析的基本概念、原理、过程和方法,以及相关工具的使用。
熟悉软件需求分析的过程和方法,包括需求获取、需求分析、需求定义和需求验证等阶段。
能够参与软件项目的需求分析工作,与项目团队成员有效沟通,确保需求的准确性和完整性。
软件需求分析基础:介绍软件需求分析的基本概念、原理、目标和任务,以及需求分析在软件开发生命周期中的地位和作用。
需求获取:讲解需求获取的方法和技巧,包括与客户沟通、现场调研、问卷调查等。
需求⼯程-软件建模与分析1 问题分析的主要步骤(五步)?(1) 在问题定义上达成共识;(2) 理解根本原因,分析问题背后的问题;(3) 确定相关⼈员和⽤户;(4) 定义解决⽅案的界限;(5) 确定加在解决⽅案上的约束。
2 鱼⾻图主要⽤于定性分析,帕累托图主要⽤于定量分析。
3 鱼⾻图、帕累托图构建的主要步骤?鱼⾻图A 选择问题⾸先选择⼀个具体的问题或者结果。
在选择问题时,要保证问题是专门的、定义严谨的、范围相对较⼩的(对于⼤范围的问题往往需要考虑将其分解成相对较⼩的问题),并且保证参与⼈员切实理解要分析的内容。
对问题定义产⽣出来的问题⼀般都应该进⾏⼀次独⽴的鱼⾻图分析。
B 头脑风暴就导致问题的可能原因进⾏头脑风暴。
将⼤家提出的意见记录下来,确认后贴到鱼⾻图上。
需要注意的是不要将原因和解决⽅案混为⼀谈。
在确定原因的分类前先进⾏头脑风暴(⼀个⼈提,⼤家批),不然思考问题的范围就会受到限制。
⽀持者需要引导和⿎励参与者参与其中。
C 确定问题类型对头脑风暴的结果进⾏整理,确定出主要的原因类型。
⼀般来说,划分出来的问题不要少于2类,不要超过6类(经验数值,仅供参考)。
经常使⽤的类型有:⼈、设备、材料、环境、⽅法、过程等。
将这些类型补充到鱼⾻图上。
D 分配原因将头脑风暴中得出的潜在原因放在鱼⾻图上,并且确保每⼀项原因都归于适当的类别中。
如果原因看起来可以放在多个类别中,就表⽰是多重原因造成的问题。
但如果多次出现多重原因,可能就以为着分类存在问题。
该阶段将形成最终的鱼⾻图E 分析根本原因对鱼⾻图中罗列出来的所有潜在原因进⾏分析。
分析出造成某⼀结果的最根本原因是什么?找出核⼼所在。
⽅法如下:通过参与者之间的公开讨论来分享看法和经验;寻找重复的原因,或者与特定类有关的原因的数量;使⽤检查表收集资料、制造流程图或者进⾏⽤户调查,通过帕累托分析法测试各种原因的相对强度;投票(真理多数情况下掌握在多数⼈⼿⾥)帕累托图在通过使⽤鱼⾻图完成问题原因的定性描述后。
软件设计师中的软件需求分析与建模方法在软件开发过程中,软件需求分析与建模是至关重要的环节,它们帮助软件设计师深入了解客户需求,并将其转化为可行的软件方案。
本文将介绍软件设计师中常用的软件需求分析与建模方法,包括面向对象分析与设计(OOAD)、UML建模语言以及用户故事。
一、面向对象分析与设计(OOAD)面向对象分析与设计(Object-Oriented Analysis and Design,OOAD)是一种常见的软件需求分析与建模方法。
它以对象为中心,将系统建模为一系列相互关联的对象,并通过定义对象的属性和行为来描述系统。
OOAD方法有助于设计师理清系统的功能、对象之间的关系以及交互方式。
在OOAD中,常用的建模方法包括用例图、类图、时序图和活动图等。
用例图用于描述系统的功能需求,通过显示系统与外部实体(用户、其他系统等)之间的交互来展示系统的行为。
类图展示了系统中各个类的属性、方法和关系,帮助设计师理解系统的结构和组成。
时序图用于描述对象之间的交互顺序和消息传递过程,便于分析系统中的时序逻辑。
活动图则展示了系统中的业务流程和操作行为,有助于设计师理解系统的业务逻辑。
二、UML建模语言统一建模语言(Unified Modeling Language,UML)是一种常用的软件需求分析与建模工具,它提供了丰富的图表和符号,方便设计师进行系统建模和描述。
UML中常用的图表包括用例图、活动图、类图、时序图、状态图等。
用例图用于描述系统的功能需求和行为,展示了各个参与者(角色)与系统之间的交互。
活动图描述了系统的业务流程和操作行为,有助于设计师理解系统的工作流程。
类图描述了系统的结构和组成,展示了类之间的关系和属性。
时序图用于描述对象之间的交互顺序和消息传递过程,方便设计师分析系统的时序逻辑。
状态图描述了对象在系统中的状态转换和行为变化,帮助设计师分析系统的状态变化。
UML作为一种标准化的建模语言,广泛应用于软件开发过程中,通过图表和符号的方式,使得需求分析和建模更加直观、易于理解。
软件建模与分析期末复习整理题型:填空(10*2=20)简答:10(2*5=10)问答:30分析:20综合:20(2*10)分析题(70)第1讲软件可视化建模与UML (2)1.为什么要建模? (2)2.UML (2)3.用例 (2)4.关系 (2)第2讲统一建模语言 (2)2.1掌握UML特点 (2)2.2 基本图标元素的表示符 (3)2.3 UML软件系统体系结构的五种视图和九种基本图 (3)2.4 UML简单建模 (4)第3讲用例模型视图 (4)3.1用例图的概念 (4)3.2用例图建模技术 (4)第4讲需求用例分析 (5)第5讲UML静态建模 (5)5.1 分析类的 (5)5.2 分析模型的处理 (6)第6讲动态建模-UML动态视图 (7)6.1 系统建模 (7)6.2 动态视图 (8)第7讲UML顺序图 (9)第8讲UML协作图 (10)第9讲UML状态图 (11)第11讲UML活动图 (13)第1讲软件可视化建模与UML1.为什么要建模?(1)软件是产器而非“程序”。
软件和其他工业产品一样,使用者和制造者分离,除程序之外还会有相应的产物(文档、维护、数据等)。
软件产品在生产上与其他工业产品生产一样,需要团队、工具、技术等。
(2)模型是对现实世界的简化。
在工业方面,建模的方法得到的广泛的应用。
(3)建模方式的应用。
在现在的软件产品生产过程中,应用了建模方法(UML),使用了相应工具(ROSE)等。
解决了软件工程缺少工程,只停留在理论上,没有标准,不能有效交流这样问题。
2.UML是Unified Modeling Language的首字母缩写。
中文意思是统一建模语言。
UML:可视化、详述、构造、文档化。
UML最适于的过程:用例驱动的、以体系结构为中心、迭代的和增量的。
UML从考察系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图。
开发过程:业务、需求、分析结构、结构行为、设计。
软工复习要点软件工程是现代计算机科学的重要分支,致力于开发高质量的软件系统。
在软件工程的学习过程中,掌握并熟悉相关的复习要点是非常重要的。
本文将总结软件工程的复习要点,帮助读者更好地准备考试,并取得好的成绩。
一、软件生命周期1. 需求分析阶段- 需求获取:通过面谈、问卷调查等方式获取用户需求。
- 需求分析:对收集到的需求进行分析、整理和规格说明。
- 需求验证:与用户确认需求是否准确并理解一致。
2. 设计阶段- 概要设计:定义系统的总体结构和模块划分,确定系统的主要功能。
- 详细设计:对每个模块进行详细设计,包括定义数据结构、算法等。
3. 编码阶段- 编写程序:将设计的模块转化为具体的编程代码。
- 单元测试:对每个模块进行测试,确保代码的正确性。
4. 测试阶段- 集成测试:将各个模块进行整合,进行系统级别的测试。
- 系统测试:对整个系统进行测试,检查系统是否满足预期功能和性能。
5. 运维阶段- 安装部署:将软件部署到实际应用环境中。
- 系统维护:对已部署的软件进行维护和更新。
二、软件开发过程模型1. 瀑布模型:按照线性顺序依次完成各阶段的开发流程。
2. 增量模型:将开发过程划分为多个增量,逐步迭代开发。
3. 原型模型:通过快速开发原型来验证需求和设计方案。
4. 敏捷模型:强调快速响应变化需求的开发方法。
三、软件需求工程1. 需求分类:功能需求和非功能需求的划分和描述。
2. 需求获取:通过场景分析、访谈、面谈等方式收集用户需求。
3. 需求分析:对需求进行整理、归类和建模,明确需求的范围和边界。
4. 需求规格说明:使用工具(如用例图、活动图)对需求进行形式化的描述和建模。
5. 需求验证:与用户进行需求确认和变更管理,保证需求的正确性和一致性。
四、软件设计1. 结构设计:确定软件的整体结构和模块之间的关系。
2. 数据设计:定义数据模型和数据库的结构。
3. 接口设计:定义模块间的接口,确保模块之间的良好交互。
《软件需求分析》教学大纲01.课程说明课程名称:软件需求分析总学时:32先修课程:软件工程导论、数据库原理与设计、信息系统基础02.课程性质、目的和任务软件开发一般包括可行性分析、需求分析、软件设计、软件开发、软件测试、软件实施、软件服务等步骤。
需求分析是软件开发的一个步骤,主要作用是充当软件研发与客户之间的桥梁,包括对客户的信息化需求进行分析,将客户不规范的、随意的需求,转换成规范的、严谨的、结构化的需求,并进行系统规划、软件开发设计、软件变更设计等。
通过本课程的学习,要求学会如何进行软件的需求分析,如何搜集用户需求,如何设计软件界面、功能、数据库,学会如何编写需求文档,学会建立正确的需求分析的思维方式,深刻理解管理软件是为管理服务的。
03.教学内容第1章需求分析入门(2学时)(一)主要内容:什么是管理软件,什么是好软件,需求分析包括的主要工作内容,如何成为需求分析师,快速原型开发模型。
(二)教学重点:深刻理解什么是好软件,为设计好软件打下坚实的基础。
(★★★★★)了解管理软件常用的实施方式,不同方式的优缺点。
(★)了解企业管理工作包括哪些内容。
(★)了解成为一个好的需求分析师的条件。
(★)理解“快速原型”开发模型。
(★★)(三)课后思考题:1.你觉得学校的管理工作包括哪些内容?2.如果让你策划一款软件系统管理你们的学校,你觉得可以包括哪些功能?3.根据好软件的特点,分析一下腾讯的微信App。
4.评价一下你在学校中看到过的某管理软件(如学生选课系统、图书管借书系统等)。
5.结合需求分析师的性格要求,分析一下自己的性格特点。
第2章需求获取(4学时)(一)主要内容:获取需求的七种方法:观察法、体验法、问卷调查法、访谈法、单据分析法、报表分析法、需求调研会法。
(二)教学重点:需求调研的七种方法,理解调研过程中需要将这些方法结合运用(★)如何制作调查问卷(★★★★)如何准备调研访谈(★★)访谈过程如何进行(★★)如何收集单据(★★★)如何分析单据(★★★★★)生成报表的触发条件(★)如何分析报表(★★★★★)报表对功能设计的影响(★★★★★)(三)课后思考题:1.编写一份调查问卷,了解学校是如何管理学生宿舍的。
软件系统分析与设计复习资料一、选择题1.结构化程序设计方法的主要特征不包括A.控制结构仅由顺序、选择和重复等结构复合而成B.程序自底向上逐步抽象成一个函数块C.每个函数块都有一个入口和一个出口D.采用“消息+对象”的设计模式2.由开发者“指导”用户对软件进行的测试称为A.单元测试B.组装测试C.alpha测试D.beta测试3.系统分析和设计完成以后,开发者向用户提供的文档资料不包括A.场景/用例图和功能处理模型B.对象静态、动态模型C.体系结构模型D.测试文档资料4. UML的5种视图中对下列对象都适用是A.客户B.分析者C.开发者D.测试者5. UML中不.属于动态模型图的是A.活动图B.用例图C.状态图D.时序图6.关于UML的描述错误的是A.UML是一种可视化建模语言B.UML是完全的面向对象的软件开发方法C.UML独立于特定开发语言和开发过程D.现有的UML没有扩展机制7.在软件开发统一过程(UP)中的设计阶段应切忌的是A.全部文档描述应能明显地看到形成这些文档的基础是什么B.创建简单、完整、一致的接口,使所有构件服务都能易于理解和使用C.在早期就要过分强调性能D.保留开发过程中发生的所有事情的记录8.在系统开发的开始阶段,在确定客户需求过程中建立的用例称为A.系统用例B.业务用例C.主要用例D.关键用例9.关于用例图中的行为者描述正确的是A.一个行为者只能启动一个用例B.行为者一定是人C.行为者之间不能有继承关系D.行为者代表一种角色而不是具体某个人10.通常在UML的类图里面,符号“+”用来修饰A.公有成员B.私有成员C.保护成员D.可继承成员11.关于UML中类图的关联所使用的重数的描述中,错误的是A.“0..1”表示“0或1”。
B.“0..*”和“*”表示的意思不一样。
C.“1..*”表示“1或多”。
D.“5..11”表示“5-11”。
12.关于时序图中对象排列原则错误的是A.对象纵向排列在时序图的左边B.交互密切的对象尽可能相邻C.交互中创建的对象,应放置在其创建的时间点上D.每个对象有一个下垂的生命线13.在UML中,用来表示状态的图符是A.一个矩形框B.一个带圆角的矩形框C.一个椭圆D.一个圆14.一个结构良好的状态图应排除下面的情形A.能准确描述系统动态模型的一个侧面B.图中只包含描述该侧面相关的重要元素C.附加对于理解状态图含义必要的特征信息D.一个状态图应可以单独描述出系统的全貌15.关于构件和类具有相同点的是A.构件和类都可以有实例B.直接拥有自己的属性和操作C.可以拥有多个实例D.都是逻辑抽象16.数据流图(DFD)主要应用于A.面向对象分析方法B.结构化方法C.模块化方法D.面向数据结构方法17.以下不属于封装的特征的是A.具有唯一的标识名B.一个清楚的边界C.一个接口D.受保护的内部实现18.需求分析工作不包括A.软件功能需求B.软件性能需求C.软件运行环境约束D.定义模块接口19.UML中构件视图的作用是A.描述系统的功能需求;找出用例和行为者。
《软件需求分析》习题集《软件需求分析》课程组编2012 年 4月目录一、单项选择题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2二、填空题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5三、判断题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9《软件需求分析》习题集一、单项选择题1 、软件生产中产生需求问题的最大原因在于对应用软件的()理解不透彻或应用不坚决。
( A)复杂性( B )目的性( C)模拟性( D)正确性2 、需求分析的目的是保证需求的()。
(A)目的性和一致性( B )完整性和一致性(C)正确性和目的性( D)完整性和目的性3 、系统需求开发的结果最终会写入()。
( A)可行性研究报告( B)前景和范围文档( C)用户需求说明( D)系统需求规格说明4 、现实世界中的()构成了问题解决的基本范围,称为该问题的问题域。
( A)属性和状态( B)实体和状态(C )实体和操作( D )状态和操作5 、功能需求通常分为三个层次,即业务需求、用户需求和()。
( A)硬件需求( B )软件需求(C )质量属性( D)系统需求6、比较容易发现的涉众称为初始涉众,又称为(),通常包括客户、管理者和相关的投资者。
( A)关键涉众( B)涉众基线( C)普通涉众( D)一般涉众7、如果在最终的物件( Final Artifact )产生之前,一个中间物件( Mediate Artifact)被用来在一定广度和深度范围内表现这个最终物件,那么这个中间物件就被认为是最终物件在该广度和深度上的()。
( A)模拟( B)构造(C )原型( D)模型8、按照使用方式进行分类,原型可分为:演示原型、()、试验原型和引示系统原型。
( A)非操作原型(B)系列首发原型(C)选定特征原型(D)严格意义上的原型9、按照功能特征进行分类,原型可分为:()、非操作原型、系列首发原型和选定特征原型。
( A)拼凑原型( B )样板原型( C)纸上向导原型( D )严格意义上的原型10、按照开发方法进行分类,原型可分为:演化式原型和抛弃式原型,其中抛弃式原型又被细分为()。
实验一软件需求建模-用例图与活动图一、实验目的1.熟悉用例图、活动图的基本功能和使用方法。
2. 掌握使用用例图和活动图对项目需求进行建模3.掌握如何使用建模工具绘制用例图与活动图。
二、实验器材1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容根据小组项目进度安排,结合前期需求调研结果,应针对每个用例进行业务分析,完成对系统的需求建模,得到用例模型、活动图模型,说明其具体的业务流程。
要求:1.对其中主要功能(用例)进行建模分析。
2.使用Rational Rose绘制规范的用例图、活动图。
四、实验步骤(一)参考样例:“删除读者信息”用例的书面用例一般应包含以下信息:(1)管理员在录入界面,输入待删除的读者名;(2)“业务逻辑”组件在数据库中,查找待删除的读者名;(3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续;(4)“业务逻辑”组件判断“待删除的读者”是否可以删除;(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续;(6)在数据库中,删除相关信息;(7)显示删除成功信息;(8)结束。
以“删除读者信息”用例为例绘制用例图和活动图。
1.用例图绘图步骤:(1)在用例视图上双击main,出现如图1.1所示,为绘制用例图做好准备。
图1.1(2)在图中的工具栏选取“Actor”图标,在右边的图中添加一个Actor,并输入名称:administrator,如图1.2所示。
图1.2(3)在左边的工具栏中,选取“Use Case”的图标,在右边的图中画出一个用例,并输入用例的名称:login 。
图1.3(4)按照步骤(3),绘制出如图1.4和图1.5的两个用例。
图1.4图1.5(5)在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.6所示。
图1.6(6)根据步骤(5),同时完成如图1.7和图1.8。
此时,“删除读者信息”用例图就到此完成。
其系统查询读者信息等其他的功能会在时序图和活动图中描绘。
需求工程练习题一、单选题(每空1分,共20分,请在备选答案中选择唯一一个正确的选项)1、产品特性可以称为质量属性,在众多质量属性中,对于开发人员来说重要的属性有哪些(B )A 有效性、效率、灵活性、互操作性B 可维护性、可移植性、可重用性、可测试性C 完整性、可靠性、健壮性、可用性D 容错性、易用性、简洁性、正确性2、需求包括11个方面的内容,其中网络和操作系统的要求属于(B),如何隔离用户之间的数据属于(C),执行速度、相应时间及吞吐量属于(D),规定系统平均出错时间属于(A )。
A 质量保证 B环境需求 C安全保密需求 D 性能需求3、需求分析过程应该建立3种模型,它们分别是数据模型、功能模型、行为模型。
以下几种图形中,(B)属于功能模型,(A)属于数据模型,(C)属于行为模型。
A 实体-联系图(ERD)B 数据流图(DFD)C 状态转换图(STD) D鱼骨图4、常用的需求分析方法有:面向数据流的结构化分析方法(SA),面向对象的分析方法(OOA),下列(D)不是结构化分析方法的图形工具。
A决策树 B数据流图 C数据字典 D快速原型5、软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。
其中,(B)和(C)用完就可以丢弃,而(A)围绕原型修改、增加。
A 进化型B 探索型 C实验型 D 以上都是6、(D)用于描述数据的处理过程。
A 数据字典 B决策树 C决策表 D 数据流图7、DFD的基本符号不包括下列哪种(A)A 数据字典B 加工C 外部实体D 数据流E 数据存储文件8、DD的主要字典条目包括以下哪种(E)A数据流 B文件 C 数据项 D加工 E以上都是9、常用的动态分析方法不包括以下哪种(B)A 状态迁移图B 层次方框图 C时序图 D Petri网10、需求分析阶段的文档包括以下哪些(E)A 软件需求规格说明书 B数据要求说明书 C初步的用户手册 D修改、完善与确定软件开发实施计划 E以上都是11、需求验证应该从下述几个方面进行验证:(C)A 可靠性、可用性、易用性、重用性B可维护性、可移植性、可重用性、可测试性C一致性、现实性、完整性、有效性 D 功能性、非功能性12、风险管理的要素包括哪项(D)A风险评价 B风险避免 C风险控制 D以上都是13、下列描述中错误的是(D)A每一个集成的需求变更必须能跟踪到一个经核准的变更请求。
《软件工程》复习提纲第一篇:《软件工程》复习提纲《软件工程》课程要点λ每章教学课件中的“本章小结”列出了需要掌握的内容λ教学过程中的例题和习题也是课程重点一、软件工程与软件过程概述1.概念:(1)软件的概念(组成成分、作用);答:计算机软件是程序、数据和相关文档的集合;用于实现计算机系统所需要的逻辑方法和控制过程(2)软件危机的含义、表现、产生原因(客观、主观)答:计算机软件开发和维护过程中遇到的一系列严重问题。
软件危机的表现:①对软件开发成本和进度的估计很不准确②已完成的软件不能满足用户需求③软件质量差④软件不可维护⑤软件没有开发文档⑥软件成本在计算机系统总成本中所占的比例逐年上升⑦软件生产率跟不上硬件的发展和计算机迅速普及的趋势与软件的特点有关(客观原因):①软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和控制软件开发过程相当困难②软件在使用期间不存在机械磨损和老化问题,一旦发现错误,通常意味着修改原来的设计,因此软件难维护③软件规模庞大,程序复杂性增加,需多人分工合作(不能保证每个人完成的工作合在一起构成一个高质量的大型软件系统)与软件开发和维护的方法不正确有关(主观原因):① 开发无计划② 忽视软件需求分析的重要性③ 轻视软件维护④ 无过硬评测手段⑤ 缺乏有力的开发方法和工具⑥ 不重视开发文档等软件配置(3)软件工程学科包括的内容(三要素)、解决的主要问题答:(1)软件工程定义:1)软件工程是指导计算机软件开发和维护的工程学科2)采用工程化的概念、原理、技术和方法来开发和维护软件3)将经过时间考验而证明正确的管理技术和开发技术结合起来,以较经济的手段开发出高质量的软件并有效维护它2)软件工程方法学的三要素:①方法:完成软件开发各项任务的技术方法1 ②工具:为方法的高效运用,而提供的自动或半自动的软件支撑环境③过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤(4)软件生命周期的含义、组成阶段及各阶段主要任务答:软件生命周期:一个软件从定义、开发、运行维护,直到最终被废弃要经历一个漫长的时期,这个时期称为软件生命周期。
Module 2: Requirements Overview1.What is a Use-Case Model?A model that describes a system’s functional requirements in terms of use cases;A model of the system’s intended functionality(use cases) and its environment (actors).2.What is an actor?An actor represents anything that interacts with the system.3.What is a use case? List examples of use case properties.A use case is a sequence of actions a system performs that yields an observable result of value to a particular actor.4.What is the difference between a use case and a scenario?A scenario is an instance of a use case.5.What is a Supplementary Specification and what does it include?Functionality、Usability、Reliability、Performance、Supportability、Design constraints、Supplementary、SpecificationModule 3: Analysis and Design Overview1.What is the purpose of the Analysis and Design Discipline?The purposes of Analysis and Design are to:Transform the requirements into a design of the system-to-be.Evolve a robust architecture for the system.Adapt the design to match the implementation environment, designing it for performance. and briefly describe the 4+1 Views of Architecture.3.What is the difference between Analysis and Design? Analysis Design➢Focus on understanding the problem ➢Idealized design➢Behavior➢System structure➢Functional➢requirements➢ A small model ➢Focus on understanding the solution ➢Operations and attributes➢Performance➢Close to real code➢Object lifecycles➢Nonfunctional requirements➢ A large model4.What is architecture?Software architecture encompasses a set of significant decisions about the organization of a software system.Module 4: Architectural Analysis1.What is a package?A package is a general-purpose mechanism for organizing elements into groups. It is a model element that can contain other model elements.2.What is a layered architecture? Give examples of typical layers.Module 5: Use-Case Analysis1.What is an analysis class? Name and describe the three analysis stereotypes.Boundary Class、Entity Class、Control Class.2.What is a Use-Case Realization?Use-Case Realization provides traceability from Analysis and Design back to Requirements.3.How many Interaction diagrams should be produced during Use-Case Analysis?Two.Collaboration Diagrams and Sequence DiagramsModule 6: Identify Design Elements1.What is an interface?Purpose:To identify the interfaces of the subsystems based on their responsibilities2.What is a subsystem? How does it differ from a package?Subsystems :Completely encapsulate behavior; Represent an independent capability with clear interfaces (potential for reuse); Model multiple implementation variants3.What is a subsystem used for, and how do you identify them?Subsystems can be used to partition the system into parts that can be independently4.What are some layering and partitioning considerations?Module 7: Describe the Run-time Architecture1.What is a process? What is a thread?2.Describe the two strategies for mapping classes and subsystems to processes.Two Strategies (used simultaneously):1)Inside-OutGroup elements that closely cooperate and must execute in the same thread of controlSeparate elements that do not interactRepeat until you reach the minimum number of processes that still provide the required distribution and effective resource utilization2)Outside-InDefine a separate thread of control for each external stimuliDefine a separate server thread of control for each serviceReduce number of threads to what can be supported3.How do you model the Process View? What modeling elements and diagrams areused?Processes can be modeled using:Active classes (Class Diagrams) and Objects(Interaction Diagrams)Components (Component Diagrams)Module 8: Describe Distribution1.What i s a node? Describe the two different “types” of nodes.1)Node:Physical run-time computational resourceProcessor nodeExecutes system softwareDevice nodeSupport deviceTypically controlled by a processor2)Connection:Communication mechanismPhysical mediumSoftware protocol2.Describe some of the considerations when mapping processes to nodes.Process-to-Node Allocation Considerations1)Distribution patterns2)Response time and system throughput3)Minimization of cross-network traffic4)Node capacity5)Communication medium bandwidth6)Availability of hardware and communication links7)Rerouting requirements3.How do you model the Deployment View? What modeling elements anddiagrams are used?Deployment modeling elements contains node and connection. Reference to Question 1.Module 9: Use-Case Design1.What is meant by encapsulating subsystem interactions? Why is it a good thing todo?1)Interactions can be described at several levels.Subsystem interactions can be described in their own interaction diagrams.2)Advantages of Encapsulating Subsystem Interactions:Use-case realizations:Are less clutteredCan be created before the internal designs of subsystems are created (parallel development)Are more generic and easier to change(Subsystems can be substituted.)Module 10: Subsystem Design1.How many interaction diagrams should be produced during Subsystem Design?One or more interaction diagrams per interface operationModule 11: Class Design1.Are statecharts created for every class?Statechart is a directed graph of states (nodes) connected bytransitions (directed arcs).Statechart for one of the classes that exhibits state-controlled behavior.2.What are the major components of a statechart? Provide a brief description ofeach.Significant, dynamic attributes;Existence and non-existence of certain links;EventsTransitionsActivities and Actions3.What is the difference between an association and a dependency?1)Dependency is a relationship between two objects.2)Associations are structural relationships3)Dependencies are nonstructural relationships4)In order for objects to “know each other” they must be visible5)An instance of an association is a link➢All links become associations unless they have global, local, or parameter visibility➢Relationships are context-dependent 6)Dependencies are transient links with:➢ A limited duration➢ A context-independent relationship➢ A summary relationship。