第7章 需求的形式化描述
- 格式:ppt
- 大小:363.00 KB
- 文档页数:40
第3章需求分析一、填空题(30小题)1、需求分析的困难主要体现在4个方面:问题的复杂性、( )、( )、需求易变性。
答案:交流障碍、不完备性和不一致性2、由于数据流是流动中的数据,所以必须有( )。
除了与( )之间的数据流不用命名外,数据流应该用名词或名词短语命名。
答案:流向、数据存储3、需求分析是指,开发人员要准确理解( ),进行细致的( ),将用户非形式的需求陈述转化为( ),再由( )转换到相应的形式功能规约(需求规格说明)的过程。
答案:用户的要求、调查分析、完整的需求定义、需求定义4、建立数据字典一般的两种形式是( )和( )。
答案:手工建立、利用计算机辅助建立并维护5、在进行可行性研究和软件计划以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就进入( )阶段。
答案:需求分析6、结构化语言是介于自然语言(英语和汉语)和形式化语言之间的一种半形式语言。
它的结构可分成外层和内层两层,外层用来描述( ),采用( )、( )、( )三种基本结构。
答案:控制结构、顺序、选择、重复7、在SA的需求描述工具中,( )描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等。
( )定义了数据流图中每一个图形元素。
结构化语言、判定表和判定树则详细描述数据流图中不能被再分解的( )。
答案:数据流图、数据字典、每一个加工8、IDEF方法分为以下三部分。
IDEF0:用来描述系统的( ),建立系统的( )。
IDEF1:用来描述系统的( ),建立系统的( )。
IDEF2:用来进行系统的( ),建立系统的( )。
答案:功能活动及联系、功能模型、信息及其联系、信息模型、模拟、动态模型9、三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用( )描述。
对于存在多个条件复杂组合的判断问题,用( )和( )。
答案:结构化语言、判定表、判定树10、经过需求分析,开发人员已经基本上理解了用户的要求,确定了目标系统的功能,定义了系统的数据,描述了处理这些数据的基本策略。
第一部分软件需求的基本概念*好需求的特征:无歧义、完整、一致、可检验、确定、可跟踪的,正确的,可行的和必要的。
软件开发的目标,简单而言,就是满足用户的需要。
三种最经常使项目“遇到困难"的因素是:⏹缺乏用户介入:占所有项目的13%⏹不完整的需求和规格说明:占所有项目的12%⏹不断改变的需求和规格说明:占所有项目的12%三种项目最主要的“成功因素"是:⏹用户介入:占所有成功项目的16%⏹高层管理的支持:占所有成功项目的14%⏹需求陈述清晰:占所有成功项目的12%高质量的需求过程带来的好处:在开发后期和整个维护阶段的重做的工作大大减少了。
IEEE软件工程标准词汇表定义需求为:1.用户解决问题或达到目标所需的条件或能力。
2.系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力.3.一种反映上面(1)或(2)所描述的条件或能力的文档说明.第二章需求的层次*需求是多层次的,包括业务需求、用户需求、功能需求和非功能需求。
业务需求反映了组织机构或客户对系统、产品高层次的目标要求,位于需求链中的最顶层,在项目视图和范围文档中予以说明。
用户需求描述了用户使用产品必须要完成的任务,这在实例文档或方案脚本予以说明。
功能需求定义了开发人员必须实现的软件功能,使得用户完成他们的任务,从而满足了业务需求。
和非功能需求在SRS中说明。
非功能性的需求描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和约束,操作界面的具体细节和构造上的限制。
需求路线图:涉众需要-〉系统的特性—〉建立软件需求软件的6个质量特征(非功能性需求):可靠性,可用性,有效性,可维护性,可移植性,约束。
有效性(Efficiency)是在规定的条件下,软件性能水平与所使用资源量之间关系有关的一组属性.可靠性(Reliability)是与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性可维护性(Maintainability)是与进行指定的修改所需的努力有关的一组属性约束定义为:对开发人员在软件产品设计和构造上的限制。
《软件⼯程》⾃考02333-重点难点汇集《软件⼯程》串讲讲义应考指导⼀、课程介绍1、课程性质《软件⼯程》是全国⾼等教育⾃学考试计算机及应⽤(独⽴本科段)的⼀门专业课。
软件⼯程是研究软件开发的⼀门课程,其主要内容包括:软件开发所需要的过程、活动和任务,以及这些活动和任务的组织、实施和管理。
2、指定教材本课程指定教材为《软件⼯程》,全国⾼等教育⾃学考试指导委员会组编,王⽴福主编,机械⼯业出版社出版,2011年版。
新版教材与2000年版相⽐,⽆论是内容还是内容的组织,都有了很⼤的变化。
整个知识体系、章节安排、内容选取都不⼀样,这是考⽣⼀定要注意的。
新版教材的内容组织特点主要体现在:基于对软件开发本质的认识,讲解软件⼯程的两⼤技术问题:⼀是开发逻辑,⼆是开发途径。
开发逻辑涉及软件⽣存周期过程、软件⽣存周期模型(有关过程、活动和任务的组织框架)以及项⽬软件⽣存周期的规划与监控。
开发途径涉及结构化⽅法和⾯向对象⽅法,以及⽀持软件评估所需要的软件测试技术等。
3、章节体系本课程共有8章:第1章:回答什么是软件开发的本质第2章:软件需求与软件需求规约第3章:结构化⽅法第4章:⾯向对象⽅法-UML第5章:⾯向对象⽅法-RUP第6章:软件测试。
第7章:软件⽣存周期过程及管理第8章:集成化能⼒成熟度模型CMMI⼆、考情分析1.历年真题的分布情况由于教材刚刚经过改版,新教材刚经过2011年10⽉、2012年01⽉、2012年10⽉三次考试。
通过对2011年10⽉、2012年01⽉这两次真题的分析,各章所占分值的分布情况如下表所⽰:25%左右。
第1章和第8章的考核知识点相对较少。
2.题型分析本课程的考试题型分为:(1)单项选择题,共15⼩题,每⼩题2分,共30分(2)填空题,共20个空,每空1分,共20分(3)简答题,共6⼩题,每⼩题5分,共30分(4)综合应⽤题,共2题,每题10分,共20分3.复习⽅法(1)以教学⼤纲为准绳。
第一章绪论什么是软件工程?软件=程序+数据+文档什么是软件危机?软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维护过程中出现一系列严重问题的现象。
什么是软件工程?采用工程化的原理和方法对软件进行计划开发和维护。
软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型软件工程的发展时期:(1)传统软件工程或者经典软件工程:开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试(3)基于构件的软件工程:以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构件集成模型,,查找与集成构件第二章生存周期什么是软件生存周期?计划阶段:需求分析,软件分析开发阶段:软件设计,编码(测试)软件测试维护阶段:运行维护模型特点和使用场合可行性研究1.经济可行性2.技术可行性3.运行可行性4.法律可行性第三章结构化分析与设计结构化程序设计的特点以及论述(1)整个程序的模块化(2)每个模块只有一个入口和出口(3)每个模块都应能单独执行,且无死循环(4)采用自顶向下,逐步细化的方法SA结构化分析设计(结构化)从内容分:1.系统结构设计2.接口设计3.数据设计4.过程设计按照步骤分:1.概要设计2.详细设计第四章OO与面向对象+UML OO的特征1.抽象2.封装3.继承4.多态为什么用面向对象1.符合人类习惯的思维方式2.提高软件系统的可复用性3.提高软件系统的可扩展性4.提高软件系统的可维护性UML相关知识静态图1.用例图:描述系统功能2.类图:描述系统的静态结构3.对象图:描述系统在某个时期的静态结构4.构件图:描述实现系统的元素的组织5.部署图:描述系统环境元素的配置动态图1.状态图:描述系统元素的状态条件和相应2.时序图:按照时间顺序描述系统元素间的交互3.协作图:按照连接关系描述系统元素间的交互4.活动图:描述系统元素的活动流程第五章需求建模需求分析的步骤1.需求获取2.需求建模3.需求描述4.需求验证面向对象需求建模1.画用例图2.写用例规约3.描述补充规约4.编写术语表第六章需求分析面向对象的需求分析1.边界类:边界类提供了对参与者或外部系统交互协议的接口。
第一章测试1.嵌入式计算机基本架构包括CPU、IO和()A:存储器B:仿真器C:模拟信号D:cache答案:A2.嵌入式系统的实时性可分为软实时和()A:硬实时B:截止时限C:软实时D:周期答案:A3.信息物理融合系统CPS的是指()A:计算与物理成分的融合B:高强度的计算C:连续过程与离散时间的交织D:系统通信与交互方式多变答案:ACD4.“需求”非形式化描述了用户想要什么,为了能够更精确的描述需求,这里可以通过需求表给出需求的描述。
A:对B:错答案:A5.在GPS的结构设计中,需要考虑硬件组件和软件组件。
A:错B:对答案:B第二章测试1.数据、指令存储在同一个存储器中的系统是哈弗结构。
A:错B:对答案:A2.关于汇编语言,对于伪指令的描述下面哪个不对()。
A:保存存储的指令B:定义常数C:定义目前地址D:直接一一对应机器指令答案:D3.在ARM指令执行过程中,通过判断PSR中的条件位域,完成条件执行。
A:对B:错答案:A4.下面哪个是ARM汇编指令的条件码。
A:EQB:LDRC:BD:ADD答案:A5.汇编程序段ADR r4, aLDR r0, [r4]实现了首先将a所在的地址存放在r4寄存器中,然后把r4所指的存储单元的内容存入r0寄存器中。
A:对B:错答案:A第三章测试1.I/O设备的状态寄存器是提供设备运行状态的,所以CPU只能读这些设备,不能写它们。
A:对B:错答案:B2.函数:int peek(char location) {return location; }是实现()A:从相应的I/O寄存器中读数据B:向相应的I/O寄存器中写数据C:向存储单元中写数据D:无意义答案:A3.中断处理程序例程通常也被称为设备驱动程序。
A:错B:对答案:B4.具有缓冲区的中断I/O中,函数void add_char(charachar)A:完成将数据写入I/O数据寄存器B:完成将数据写入I/O状态寄存器C:完成将数据写入缓冲区D:完成将数据写入CPU的寄存器中答案:C5.只有数据会影响高速缓存的命中率。
第七章面向对象学习方法学面向对象方法学的出发点和基本原则,是尽可能按照人类的习惯思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题域空间与实现解法的解空间在结构上尽可能一致.与传统的结构化方法相比,使用面向对象方法开发的软件,其稳定性,可修改性和可重用性都比较好.本章内容主要包括:传统方法学的缺点,面向对象的基本概念,面向对象模型.7.1 基础知识7.1.1 传统方法学的缺点结构化几其他方法学的本质,是在具体的软件开发之前,通过需求分析预先定义软件需求.然后一个一个阶段地开发用户所需要的软件,实现预先定义的软件需要.过去的经验需要告诉我们,结构化及其他方法学并不能完全消除软件危机.结构化及其他方法学仍然有许多不足之处.1.问题的表现1)生产效率低在生命周期方法学中,特别重视软件开发的阶段性.为了提高了软件开发的效率,减少重大返工次数,强调必须早每个阶段结束之前进行评估.从而开发过程中实行严格的质量管理,确实提高了许多软件的开发的成功率.但是,时间表明,开发高利率仍然很有用.2)不能满足用户需要实践表明,在开发需要模糊或需求动态变化的系统时,软件系统的结果往往不能满足用户需求的变化.主要表现在两个方面:一种是开发人员不能完全获得彻底理解用户的需要,以至开发的软件系统与用户预期的系统不一致;另一种表现是,所开发的系统不能适应用户需求变化,系统的稳定性和可扩充性不能满足需要.3)软件服用就是将已有的软件成分用于构造新的软见系统.软件复用是节约人力,提高软件效率的重要途径.结构分析.设计,几乎每一次开发一个系统时都需要针对这个具体的系统做大量的重复劳动..思维成果的可复用性差.4)软件很难维护实践经验告诉我们,即使是用生命周期方法学开发出来的软件,维护起来仍然相当困难,软件维护成本很高.2.问题的原因1)结构化技术本身的问题结构分析和设计技术的基本思想是从目标系统整体功能的单个处理着手,自顶向下不断的把复杂的处理分解为子处理,一层一层的分解下去,直到剩下若干个容易实现的子处理为止。
软件⼯程导论知识点总结(整理)《软件⼯程导论》课后习题答案第⼀章软件⼯程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。
这些问题表现在以下⼏个⽅⾯:(1)⽤户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)⼀般软件很难维护。
(4)软件⽣产效率很低。
(5)软件开发成本越来越⼤。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满⾜不了计算机应⽤的普及与深⼊的需要。
2.为什么会产⽣软件危机?(1) 开发⼈员⽅⾯,对软件产品缺乏正确认识,没有真正理解软件产品是⼀个完整的配置组成。
造成开发中制定计划盲⽬、编程草率,不考虑维护⼯作的必要性。
(2) 软件本⾝⽅⾯,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统⼀的、公认的⽅法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越⼤,复杂程度越来越⾼,原有软件开发⽅式效率不⾼、质量不能保证、成本过⾼、研制周期不易估计、维护困难等⼀系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴⼈类长期以来从事各种⼯程项⽬中积累的⾏之有效的有效原理、概念、技术与⽅法,特别是吸取⼏⼗年来⼈类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努⼒作到良好的组织,严格的管理,相互友好的协作。
(2) 推⼴在实践中总结出来的开发软件的成功的技术和⽅法,并研究更好、更有效的技术和⽅法,尽快克服在计算机系统早期发展阶段形成的⼀些错误概念和作法。
(3) 根据不同的应⽤领域,开发更好的软件⼯具并使⽤这些⼯具。
将软件开发各个阶段使⽤的软件⼯具集合成⼀个整体,形成⼀个很好的软件开发⽀环环境。
总之为了解决软件危机,既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。
4.构成软件项⽬的最终产品:应⽤程序、系统程序、⾯向⽤户的⽂档资料和⾯向开发者的⽂档资料。
5.什么是软件⽣存周期?软件⽣存周期是指从软件定义、开发、使⽤、维护到淘汰的全过程。
第一章一、名称解释1.软件工程是指导计算机软件开发和维护的工程科学。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的整个时期被称为是软件生命周期二、填空题1.构成一个完整计算机系统的两部分是硬件与(软件)。
2.程序设计时代的生产方式是(个体手工劳动)。
3.软件工程涉及到若干个学科,它是一门(综合性交叉)学科。
4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能(相同)。
5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是(瀑布)模型。
6.喷泉模型是一种以用户需求为动力,以(对象)为驱动的模型。
7.结构化方法是一种面向数据流的开发方法。
由结构化分析、(结构化设计)、结构化程序设计构成。
8.软件工程研究的主要内容是软件开发管理和(软件开发技术)两个方面。
9.软件工具是支持软件开发人员的开发和维护活动而使用的(软件)。
10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种(开发方法),使用相应的工具来进行。
11 .瀑布模型本质上是一种(线性顺序)模型。
12.瀑布模型不适应需求可变的软件开发,只有到开发结束时才能见到(整个软件系统)。
13.增量模型在开发过程中以一系列增量方式开发系统,忽略某阶段的细节,从而尽早产生(工作软件)。
14.增量构造模型在分析和设计阶段按整体方式开发,按增量方式开发的是(编码和测试)阶段。
15.演化提交模型中,项目开发各阶段都是按(增量方式)开发的。
16.软件原型是软件的早期可运行版本,反映最终系统的(重要特性)。
17.用原型过程来代替需求分析,使需求说明完整、一致、准确,该原型是(探索型)原型。
18.用原型过程来代替全部开发阶段,这种快速原型是(演化型)原型。
19.若原型不满足需求说明,则根据明确的要求修改(原型)三、选择题1.软件是一种( )产品。