软工选择填空简答
计算机二级考试软件工程题库及答案
计算机二级考试软件工程题库及答案一、选择题1. 下列哪个不是软件工程的基本特征?A. 可靠性B. 可维护性C. 可重复性D. 可移植性答案:C2. 软件需求分析的目的是什么?A. 建立软件体系结构B. 确定软件需求C. 设计软件模块D. 编写软件代码答案:B3. 下列哪个不是软件开发生命周期的阶段?A. 需求分析B. 设计C. 测试D. 销售答案:D二、填空题1. 软件工程的目标是提高软件的_________。
答案:质量2. 软件需求分析阶段的主要任务是对用户的需求进行_________。
答案:分析3. 软件测试的目的是为了发现软件中的_________。
答案:缺陷三、简答题1. 什么是软件开发生命周期?请简要描述各个阶段的主要任务。
答案:软件开发生命周期指的是软件从开始开发到结束的整个过程。
主要阶段包括需求分析、设计、编码、测试和维护。
需求分析阶段的主要任务是确定用户的需求;设计阶段的主要任务是根据需求设计软件的结构和模块;编码阶段的主要任务是根据设计编写软件代码;测试阶段的主要任务是发现并修复软件中的缺陷;维护阶段的主要任务是对软件进行更新和修复。
2. 请简要说明软件工程的重要性。
答案:软件工程的重要性体现在以下几个方面。
首先,软件工程可以提高软件的质量,确保软件能够满足用户的需求。
其次,软件工程可以提高软件的可维护性,使得软件可以持续更新和修复。
最后,软件工程可以提高软件的开发效率,节省时间和资源。
以上是计算机二级考试软件工程题库及答案的内容。
希望对您有所帮助!。
软件工程复习题库带答案完整版
软件工程复习题库带答案完整版一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流8、功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。
A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。
A.正确性 B.适应性C.完善性 D.预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、13、下列关于面向对象分析与设计说法错误的是(C)。
A.面向对象的设计以面向对象分析为基础归纳出类B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象C.面向对象的设计是面向对象分析的另一种思维方式D.面向对象的设计是面向对象分析进一步的细化和更高的抽象14、在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。
《软件工程导论》试题及答案
《软件工程导论》试题及答案软件工程导论试题及答案一、选择题1. 软件工程是一门多学科交叉的学科,其中包括以下哪些学科?A. 计算机科学B. 电子工程C. 数学D. 管理学E. 心理学答案:A、B、C、D2. 软件工程的目标是什么?A. 提高软件开发效率B. 提高软件质量C. 提高软件可靠性D. 提高软件维护性E. 提高软件安全性答案:A、B、C、D、E3. 软件过程模型是指软件开发过程中的一种抽象表示方法,常用的软件过程模型有哪些?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型E. 喷泉模型答案:A、B、C、D4. 以下哪个开发方式可以在软件开发过程中提供更多的灵活性和快速反馈?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型答案:D5. 软件需求分析的主要任务是什么?A. 确定软件的功能和性能需求B. 定义软件系统的架构C. 设计软件的用户界面D. 实施软件测试答案:A二、填空题1. 软件工程的核心目标是提高软件的 ______ 和 ______ 。
答案:质量、可靠性2. 软件工程中的四个基本活动是需求分析、设计、 ______ 和______ 。
答案:实现、维护3. 瀑布模型的五个阶段依次是:需求分析、设计、编码、 ______ 和 ______ 。
答案:测试、维护4. “快速原型”开发模型注重 ______ 。
答案:用户参与5. 敏捷开发模型的核心原则是 ______ 。
答案:迭代开发三、简答题1. 请简要说明为什么软件工程是一门多学科交叉的学科?答:软件工程在开发软件的过程中需要结合计算机科学的知识来实现软件的功能,同时也需要借鉴电子工程的设计思想来构建软件系统的架构。
此外,软件工程还应用了数学方法来进行软件需求分析和软件质量保证,同时也需要管理学的知识来进行项目管理和团队协作。
2. 请简述螺旋模型在软件开发过程中的应用场景。
答:螺旋模型适用于大型复杂项目或对安全性要求较高的项目。
软件工程复习题及参考答案
软件工程课程复习资料一、单项选择题:1.下面哪些UML图描述系统行为A.用例图B.类图C.对象图2.属于概要设计活动的是A.软件结构设计B.数据结构设计C.算法设计3.属行为型设计模式的是A.组合模式B.工厂方法模式C.观察者模式4.下列说法正确的是A.UML 是软件开发方法B.UML是系统描述语言C.UML是软件开发过程5.根据程序流程图划分的模块通常是A.信息内聚的模块B.过程内聚的模块C.逻辑内聚的模块6.如果某程序中的比较个数是m,则其 McCabe环形复杂度为A.m-1B.mC.m+17.按ISO9000-3的说明,下列属软件配置项的是A.软件开发方法B.软件开发组织管理制度C.软件开发合同8.软件测试的目的是A.证明软件无错B.发现软件中的所有错误C.尽可能发现软件系统中的错误9.软件重构关注的是A.软件体系结构B.模块细节C.软件性能10.软件项目开发计划的内容有A.数据分析B.风险分析C.功能分析11.在UML的类图中,描述整体与部分关系的是A.泛化关系B.聚合关系C.依赖关系12.软件过程能力成熟度模型CMM用以评价A.软件过程能力B.组织能力C.学习能力13.因计算机硬件和软件环境的变化而作出的修改软件的过程称为A.完善性维护B.改正性维护C.适应性维护14.对项目软件而言,软件功能需求信息主要由谁提供A.软件用户B.软件开发人员C.软件项目管理人员15.IDEF0 图反映不出A.系统做什么B.系统功能由谁做C.系统如何做16.原型模型是一种什么开发过程模型A.自顶向上B.由外至内C.增量式17.系统流程图描述A.物理系统B.逻辑系统C.软件体系结构18.需求规格说明书的内容不应该包括A.软件确认准则B.软件的性能描述C.算法过程的详细描述19.适合需求模糊或需求不确定系统开发的软件开发模型是A.瀑布模型B.RAD 模型C.原型模型20.UML 图中描述系统结构的是A.组件图B.顺序图C.状态图21.面向对象方法是一种什么软件开发方法A.层次化B.迭代增量式C.逐步求精22.不可以用来衡量软件可维护性的是A.可靠性B.可用性C.可行性23.系统分析员在需求分析最后负责编写A.用户手册B.概要设计说明书C.可行性研究报告24.为了提高软件的可靠性、可维护性等而对软件的修改称为A.改正性维护B.适应性维护C.预防性维护25.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构A.与问题结构对应B.与问题结构独立C.与用户界面对应26.单元测试的计划应该在什么阶段完成A.需求分析B.概要设计C.详细设计27.下列属面向对象软件开发方法的是A.LCP 方法B.OMT 方法C.IDEF0 方法28.强调信息隐藏的软件工程设计方法是A.Jackson 方法B.Parnas 方法C.SA/SD 方法29.描述系统动态行为的模型是A.包图B.软件结构图C.状态图30.考虑输入条件组合的测试用例设计方法是A.等价分类法B.语句覆盖法C.因果图法31.下列能减少支援性维护活动的是A.利用软件包B.进行配置管理C.对用户进行适当培训32.只支持单重继承的程序设计语言是A.C++B.DelphiC.C33.IDEF0 图的顶层图是A.A0 图B.A-0 图C.A-1图34.在UML的用例图中,扩展关系是一种A.泛化关系B.依赖关系C.关联关系35.独立测试小组开始介入测试是在A.模块测试阶段B.集成测试阶段C.确认测试阶段36.在成本估计中容易低估局部问题的方法是A.基于经验模型的估计B.自底向上估计C.自顶向下估计37.在IDEF1X图中,如果子实体与父实体存在联系,则子实体将继承父实体的A.全部属性B.主关键字属性C.非主关键字属性38.结构化分析方法使用的工具是A.数据流图B.类图C.软件结构图39.白盒测试设计用例的方法是A.等价分类法B.基本路径覆盖法C.因果图法40.在衡量软件质量时,最重要的标准是A.可维护性好B.可用性好C.满足用户功能需求41.瀑布模型是一种A.演化模型B.顺序模型C.增量模型42.模块的独立程度可以由什么定性标准度量A.耦合度B.复杂度C.可靠性43.以下选项中,不属于对象的特点有A.继承B.多态C.封闭44.面向数据结构的设计方法有A.Parnas 方法B.Jackson 方法C.IDEF0 方法45.与UML配合最好的软件开发方法是A.RUP 方法B.Coad/Yourdon方法C.IDEF4方法二、填空题:1.统一建模语言UML提供了两种描述整体/部分关系的方法,分别是和 ;2.软件是计算机程序、及的完整集合,将其统称为软件配置,这些项称为软件配置项;通过正式复审的软件配置项称为 ,只有通过正式的变化控制过程才能改变它;3.纯收入是指在整个生存周期之内的与投资之差;4.瀑布模型是以驱动的软件生存周期模型,适合需求明确的软件系统开发;5.在单元测试期间,应该为被测模块编写相应的测试软件,一般地模块接收测试数据,并把数据传给被测模块,而模块则模拟实际模块完成少量数据处理;6.IDEF0方法用严格的自顶向下、逐层分解的方式进行系统的功能描述,其顶层图将图在建模范围内分解成个主要部分得到;7.如果一个模块完成多个逻辑上相近或相关的功能,并且每次调用只选择该模块中的一个功能执行,则称此模块为内聚的模块;8.程序静态分析的对象是 ;常生成各种引用表,如列出各模块中出现的全部标号;9.在数据流图中,每个加工至少有一个和一个 ;10.两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是 ;11.设E为程序图G中边的总数; N 为程序图中结点的总数,则该程序图的环形复杂度为 ;12.汽车有一个发动机;若用UML描述汽车和发动机之间的关系,则它们之间是_____关系;13.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略,即策略和策略;14.在基本路径测试中,以详细设计为基础,导出控制流程图的拓扑结构: 程序图,在计算了程序图的之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组的一条路径;从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径;15.在多层次的结构图中,其模块结构的层次数称为结构图的 ;结构图中同一层模块的最大模块数称为结构图的 ;16.耦合性是指两个模块之间的关系,模块之间的联系越复杂,每个模块的独立性就 ;17.可行性研究实质上是进行了一次过程;18.需求分析的任务是 ;19.NS图的主要优点是它强制设计人员使用技术,从而可保证软件设计的质量;20.结构型模式涉及如何组合类和对象,从而构成更大的对象,一是采用来组合接口或实现形成更大的结构;另一种方式通过方式来形成;21.为了便于对照检查,测试用例应由和预期的两部分组成;22.软件开发时,一个错误发现得越晚,为改正它所付出的代价就 ;23.在UML的用例图中,根据参与者与用例关系的不同,参与者可分为和次要参与者,参与者之间的关系只有关系;24.评价软件质量可以从三个方面进行,即产品或中间产品、和项目;25.软件配置管理是一组用于在计算机软件的整个生存周期内管理的活动;26.通过抽象,可以确定组成软件的 ;通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的 ;27.UML表示法的基础是 ,它描述建模元素的语义;28.条件覆盖是指设计足够的测试用例,使得至少出现一次;29.面向数据流图的结构化分析方法是根据的原则,按照系统中数据处理的流程,用数据图来建立系统的模型;30.评估软件企业的质量管理有两种方法,一种是按照认证,另外一种是按照CMM认证;31.风险估计从两个方面来度量,一是估计 ,二是估计与风险相关的问题出现后将会带来的损失;三、名词解释:1.集成测试2.设计模式3.信息隐藏4.用例5.结构化方法6.MVC四、判断题:1.测试计划、测试用例和出错统计等一般不用长期保存;2.在面向对象方法中,需求分析和设计没有差别;3.应用设计模式使得软件灵活,可重用性提高,应该尽量多使用;4.UML 是一种建模语言,可以被任何面向对象方法使用;5.任何系统都需要对数据进行处理,因而数据流图可描述任何系统;6.软件开发就是编写程序代码;7.面向对象软件开发最适合采用迭代、增量式的开发模型;8.设计模式是一种可以重用的面向对象软件设计方案;9.软件测试就是检查程序是否正确;10.软件项目计划在可行性研究阶段就已定稿;11.软件工程认为软件设计的最终目标是要取得最佳方案;12.只要对软件进行严格的测试,就能发现软件中的所有错误;13.初级技术人员在编码阶段参与软件项目的程度在各类人员中最高;14.单元测试常常在编码阶段进行;15.CMM 描述和分析了软件过程能力的发展与改进的程度;16.为了加快开发速度,可以一边写程序,一边设计文档;17.没有发现任何错误的测试是无效的测试;18.软件结构图中不能有控制信息流动;19.单元测试常常由独立的测试小组进行;20.用例建模只能用于面向对象软件系统的开发;21.数据流建模方法是一种自顶向下的需求分析方法;22.为了减少程序的长度,最好不要在程序中增加注释;五、简答题:1.在需求分析和设计阶段建立原型的好处有哪些2.什么是模块的扇入和扇出3.UML的特点是什么4.层次图和层次方框图有何区别5.软件测试对象应包括哪些内容6.试简要叙述文档在软件工程中的作用;7.为何螺旋模型主要适合开发人员和用户为同一个组织机构成员的软件项目的开发8.软件测试为何需要尽早和不断地进行9.简要说明如何实现MVC;10.试给出一种开源软件框架,并简要说明开源软件存在的问题;11.IDEF0方法有什么特点12.快速原型模型有几种各有何特点六、综合题:1.某网络学院决定开发一个管理所有学生和教师信息的交互式网络系统,该系统提供如下服务:1浏览学生信息:网络学院的任何人员,包括学生和老师,均可以浏览学院任何学生的信息,包括姓名、学号和专业名称;2浏览教师信息:网络学院的任何人,包括学生和老师,均可以浏览学院任何教师的信息,包括姓名、工号和职称;3登录:网络学院给学院每个人一个账号;拥有授权帐号的学生和老师,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册;4修改个人信息:学生或老师向系统注册后,可以发送电子邮件或使用系统提供的页面,对个人信息进行修改;5删除个人信息:只有网络学院的管理人员才能删除不再是学院学生或老师的人员的有关信息;试问哪些是参与者哪些是用例并用UML的用例图描述系统行为;2.试据下述伪代码描述的模块,改用NS图描述;BeginabDo Until x6If xl thenfIf x4 thenDo Until x5iEnd UntilElseghEnd ifElseSelect Case x2Case 1:Do While x3cEnd WhileCase 2:dCase 3:eEnd SelectEnd ifEnd UntilEnd3.某五星级宾馆共有H间客房;每间客房的房间号、房间等级、床位数以及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中;房间等级用整数表示;房间状态有:空闲0表示和占用1表示;客房以房间为单位出租;试设计一个算法,依据散客的要求预定房间,要求输入为:人数M,房间等级要求RR为0表示任意等级均可;输出为:可供选择的房间号;要求用程序流程图描述算法;4.某医院打算开发一个以计算机为中心的患者监护系统,以解决医院人手不够和对危重病人的及时监护;该系统应能做到以下几点:随时接受每个病人的生理信号;定时记录病人情况形成患者日志;当病人生理信号超出医生规定的安全范围时向值班护士发告警信息;此外,护士在需要时,还可要求系统印出指定病人的病情报告;试椐此叙述绘出对应的DFD图;5.试采用设计模式描述算术表达式不含圆括号的设计方案;算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数;6.请根据如下程序流程图设计该程序段的判定覆盖测试用例,其中输入为A,B,X,输出为X;参考答案一、单项选择题:1.A2.A3.C4.B5.B6.C7.C8.C9.B 10.B 11.B 12.A 13.C 14.A 15.C 16.B 17.A 18.C 19.C 20.A 21.B 22.C 23.A 24.C 25.A 26.C 27.B 28.B 29.C 30.C31.C 32.B 33.A 34.B 35.C 36.C 37.B 38.A 39.B 40.C 41.B 42.A 43.C 44.B 45.A二、填空题:1.聚集组合2.描述计算机程序的文档数据基线3.累计经济效益折合成现在值4.文档5.驱动模块桩模块6.A-0 3-67.逻辑 8.源程序标号交叉引用表9.输入流输出流 10.5011.E – N + 2 12.聚合13.深度优先广度优先 14.环形复杂性以前没有处理的语句或条件15.深度宽度 16.依赖越低17.大大压缩简化了的系统分析和设计过程 18.确定系统必须完成哪些工作19.结构化 20.继承对象组合21.输入数据预期输出结果 22.越大23.主要参与者泛化 24.过程25.变化 26.过程实体存取限制27.UML 元模型 28.判定表达式中每个条件的各种可能的值29.分解与抽象功能 30.ISO900131.风险发生的可能性三、名词解释:1.集成测试也称组装测试或联调;是指在单元测试的基础上,将所有模块按照概要设计要求组装成一个完整的系统而进行的测试;模块组装的方式有两种:渐增式和非渐增式;2.设计模式是普通面向对象设计问题的解决方案,这类问题以一组交互类的形式出现,用户根据需要定制这些交互类以形成专门的设计;所有设计模式均可以从四个方面加以描述:模式名称、问题描述、解决方案和效果;3.信息隐藏是指在模块设计时,使得一个模块内包含的信息过程或数据,对于不需要这些信息的其他模块来说是不能访问的;这样,改变模块的内部过程和数据的设计不会影响到其它模块;4.用例是参与者为达到某个目的而与系统进行的一系列交互,执行结果将为参与者提供可度量的价值;从参与者的角度来看,用例应该是一个完整的任务,在一个相对较短的时间内完成;5.结构化方法是一种传统的软件开发方法,其总的指导思想是自顶向下、初步求精、单入口、单出口,其基本原则是抽象和功能分解;6.MVC即模型、视图、控制器;其中,模型是应用对象,其包含一些数据值,维护数据并提供数据的访问方法;视图显示模型的部分或说有数据,多个视图可以以不同的方式来显示模型中数据;控制器处理用户输入事件;四、判断题:1.×2.×3.×4.√5.√6.×7.√8.√9.× 10.× 11.× 12.× 13.√ 14.√ 15.√16.× 17.√ 18.× 19.× 20.× 21.√ 22.×五、简答题:1.在需求分析和设计阶段建立原型的好处有:1增进开发人员和用户对系统需求的一致理解,明确软件需求,尤其是功能含糊的需求;2原型提供了一种有力的学习手段,能够使用户尽早接触系统;3原型可以用来识别或化解风险;4原型有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统;2.扇入则定义为一个模块被调用或控制的模块个数;扇出表示一个模块直接调用或控制的其他模块数目;3.UML的特点是:1统一了面向对象方法的有关概念和描述方法;2表达能力强,能对各种并发分布式系统进行建模,且UML还提供了扩展机制;3UML专注于一种标准的建模语言,而不是一个开发过程;4.层次图主要用来描绘软件的层次结构,矩形框代表一个模块,矩形框之间的连线表示模块之间的调用关系,常与IPO图一起形成HIPO图;层次方框图主要描述系统的组成关系,一般自用域需求分析;5.软件测试并不等于程序代码测试,其应该贯穿于软件定义与开发的整个期间;因此,需求分析、概要设计以及程序编码等各阶段所得的文档,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序代码都应成为软件测试的对象;6.在软件工程中,文档的作用是:1提高软件开发过程的能见度;2记录开发过程的有关信息便于使用与维护;3作为开发人员阶段工作成果和结束标志;4提高开发效率;5提供软件运行、维护和培训有关资料;6便于用户了解软件功能、性能;7.因为如果开发人员和用户属于不同的组织机构,则一般在正式的软件开发之前均需要签订合同,所有的风险分析均必须在签订合同之前完成;但螺旋模型需要在软件开发的每一个阶段都进行风险分析,当重要风险不能解决时,项目应该终止;由此螺旋模型可能因为风险使得合同在完成之前就终止,从而导致法律诉讼;故螺旋模型不适合开发人员和用户属于不同组织机构的情况;8.软件测试不应仅仅作为一个独立的软件开发阶段,而应贯穿到软件开发的各个阶段中;通过各阶段的评审,在早期把错误解决,以减少错误放大效应,这样不仅可以提高软件质量,而且也是降低软件成本的一个重要措施;由此,软件测试应该尽早和不断地进行;9.MVC是Model-View-Controller的简写;"Model" 代表的是应用的业务逻辑通过JavaBean,EJB组件实现, "View" 是应用的表示层由JSP页面产生,"Controller" 是提供应用的处理过程控制一般是一个Servlet,通过MVC把应用逻辑,处理过程和显示逻辑分成不同的组件实现;10.Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开源应用框架; Struts框架主要有如下功能:1包含一个controller servlet,能将用户的请求发送到相应的Action对象; 2JSP 自由tag库,并且在controller servlet中提供关联支持,帮助开发人员创建交互式表单应用;3提供了一系列实用对象,如XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息等;开源软件存在的主要问题有:1技术服务支持较少;2版本控制困难;3性能不够稳定;4文档不全,等等;11.IDEF0方法的特点是:1采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束条件及实现机制,清楚地反映了系统的功能;2采用严格的自顶向下、逐层分解的方式建立系统功能模型;顶层确定系统范围,采用抽象原则,然后有控制的逐步展开有关活动的细节,符合SA方法的分析策略;同时,IDEF0规定每张图至少有3个、最多有6个方框,上界6保证采用层次性描述复杂问题的可理解性,下界3保证分解有意义;12.根据原型的不同作用,有三类原型模型:⑴探索型原型;这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性;它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求;⑵实验型原型;这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性;⑶演化型原型;这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能;在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程;六、综合题:1. System 网络学院人员管理人员教师学生登录修改个人信息浏览学生信息浏览教师信息删除个人信息2.3.4.5.6.1选择测试路径:Ⅰ:a→ b → d 判定A>1∨B=0为假;判定A=2∧X>1为假Ⅱ:a→ c → e 判定A>1∨B=0为真;判定A=2∧X>1为真2选择测试用例Ⅰ:输入A=1 B=1 X=1 预期输出 X=1Ⅱ:输入A=2 B=0 X=4 预期输出 X=4。
软件工程选择填空答案
第1章软件工程概述一. 选择题1. B2. A3. B4. B5. D6. B7. D8. A9. D二. 填空题1. 设计编码测试2. 软件费用可靠性可维护性可重用性及生产率等3. 计算机软件开发和维护4. 分解抽象和信息隐蔽一致性确定性5. 软件的总目标待开发软件的需求6. 二三7. 计划阶段开发阶段维护阶段8. 软件需求明确9. 制定计划风险分析开发实施用户评估第2章可行性研究和需求分析一. 选择题1. B2. C 3 D 4. A 5. D 6. A7. D 8. B 9. A10. B二. 填空题1. 值得去开发其中的问题能否解决2. 技术可行性经济可行性社会可行性3. 风险分析资源分析技术分析4. 需求分析和设计5. 物理系统用图形符号以黑盒子形式描绘系统里面的每个部件6. 技术可行性7. 调查研究分析与综合书写文档需求分析评审8. 需求规格说明书初步用户使用手册确认测试计划9. 数据流加工数据存储数据源点或终点10. 抽象性概括性层次性第3章概要设计一. 选择题1. C2. A3. B4. A5. C6. C7. A8. C9. B二. 填空题1. 接口功能逻辑状态2. 强差3. 高内聚低耦合独立性4. 变换事务变换5. 高低高6. 受该模块内一个判定影响的所有模块7. 数据控制信息8. 公共耦合9. 输入变换(或称处理) 输出10. 控制的层次层数一层中最大的模块个数第4章详细设计一. 选择题1.D2.C3.A4.B5.C6.C7.B8.A9.B 10.C二. 填空题1.图形工具表格工具语言工具2. 数据结构3. 详细设计说明书4. Problem Analysis Diagram5. 程序框图算法6. 结构化程序设计7. PAD 自上而下从左到右8. 数据结构9. 程序设计语言应执行的功能10. 具体设计过程过程设计第5章面向对象的方法一. 选择题1.C2.C3.B4.B5.A6.C7.C二. 填空题1. 对象动态功能对象2. 数据流图3 传递消息4. 对象5. 一个父类6. 超类子类7. 操作对象8 特殊类一般类第6章统一建模语言UML一. 选择题1.C2.A3.B4.B5.A6.C7.D8.D9.①D ②C ③A ④A ⑤A 10.A二. 填空题1. UML语义UML表示法2. 用例图类图对象图状态图活动图顺序图协作图构建图配置图3. 使用实例UML类图4. 用例图类图对象图构件图配置图5. 扩展使用组合6. 用例系统边界执行者7. 组合聚集8. 公有属性私有属性保护悔改9. 状态模型顺序模型协作模型活动模型10. 简单消息同步消息异步消息同步且立即返回消息第7章软件测试一. 选择题1.A2.A3.C4.B5.A6.C7.D8.D9.D 10.B二. 填空题1. 语句或条件在其他独立路径中未有过2. 非渐增式渐增式3. 黑盒测试白盒测试4. 发现错误5. 单元测试组装测试验收测试系统测试6. 集成测试软件体系结构7. 强行排错回溯法归纳法演绎法8. 驱动模块和桩模块9. 清晰10. 自顶向下结合自底向上结合第8章软件维护一. 选择题1.A2.C3.D4.B5.C6.C7.C8.D9.C二. 填空题1. 可理解性可测试性可修改性可靠性可移植性可使用性效率2. 组长副组长维护负责人维护程序员3. 质量检查表质量测试质量标准4. 生产率5. 软件问题6. 最长最多7. 软件配置评审8. 制定维护申请报告审查申请报告并批准进行维护并做详细记录复审9. 完善性维护10. 维护的副作用第9章软件项目管理一. 选择题1.B2.B3.D4.A5.B6.C7.A8.C9.B 10.B二. 填空题1. 软件开发技术软件工程管理2. 横向纵向空间时间3. 确定软件的工作范围功能性能接口可靠性4. 对完成该软件项目所需的资源进行估算5. 自顶向下估算方法自底向上估算方法差别估计法6. 主程序员组织机构7. 检查点8. 使改进变化可以更容易的被适应,并减少当变化必须发生时所需花费的工作量9. 标识版本控制修改控制配置审计配置报告10. SCM SCI11. 软件开发过程中所花费的工作量及相应的代价。
软件工程(专升本)复习题答案
软件工程(专升本)复习题答案一、选择题二、填空题1.耦合性2.数据字典3.扇入数4. 等价划分5.宽度优先策略6.输出结果7. 数据耦合8. F/(1+(n*i))9.在其他独立路径中未有过 10.数据流11. 模块独立性12. 数据存储13. 数据14. 详细设计15. 信息流动16. 经济17. 等价划分18. 输出结果三、简答题1.软件工程的定义。
软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
2.软件生命周期具体包括哪些时期和阶段?每一时期和阶段的具体任务是什么?软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成。
软件定义时期的任务是:问题定义、可行性研究和需求分析。
开发时期的任务是:总体设计,详细设计,编码和单元测试,综合测试。
其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
维护时期的主要任务是:使软件持久地满足用户的需要。
每个时期又进一步划分成8个阶段:问题定义-------要解决的问题是什么?可行性研究-----对于上一个阶段所确定的问题有行得通的解决办法吗?需求分析-------为了解决这个问题,目标系统必须做什么总体设计------概括地说,应该怎样实现目标系统?详细设计------应该怎样具体地实现这个系统呢?编码和单元测试-----写出正确的容易理解、容易维护的程序模块。
综合测试-------通过各种类型的测试(及相应的调试)使软件达到预定的要求。
软件维护------通过各种必要的维护活动使系统持久地满足用户的需要。
3.结构化设计中的逐步求精原理是什么?逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
逐步求精方法的强大作用就在于,它能帮助软件工程师把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然是必要的,然而目前还不需要考虑的细节,这些细节将留到以后再考虑。
软件工程考试试题含答案
一、填空题每空1分,共25分1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、编码、测试和____________;2.基于软件的功能划分,软件可以划分成__________、__________、__________三种;3.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究;4.系统流程图是描绘的传统工具;它的基本思想是用图形符号以描绘系统里面的每个部件;5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和;6.结构化分析方法是面向________________进行需求分析的方法;结构化分析方法使用________________与________________来描述;7.是自动地共享类、子类和对象中的方法和数据的机制;8.软件详细设计工具可分为3类,即________________、________________和________________;9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________;10.大型软件测试包括、、确认测试和四个步骤;1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试二、单项选择题每小题2分,共20分1.软件设计中划分模块的一个准则是;A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的提出的,它是一种面向的软件设计方法;A、对象B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个些是正确的4.;a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c5.是用户和设计交换最频繁的方法;A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型6.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是;A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质7.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言;A、PASCALB、VISUALBASICC、C++D、汇编语言8.软件测试的目的是A、证明软件的正确性B、找出软件系统中存在的所有错误C、证明软件系统中存在错误D、尽可能多的发现软件系统中的错误9.使用白盒测试方法时,确定测试数据应根据和指定的覆盖标准;A、程序的内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能10.软件维护工作的最主要部分是;A、校正性维护B、适应性维护C、完善性维护D、预防性维护11.PDL是语言;A、高级程序设计语言B、伪码式B、C、C、中级程序设计语言D、低级程序设计语言三、判断题正确的在括号内打上“√”,错误的打上“×”;每题2分,共20分1.用黑盒法测试时,测试用例是根据程序内部逻辑设计的;X2.发现错误多的程序模块,残留在模块中的错误也多;V3.为了加快软件维护作业的进度,应尽可能增加维护人员的数目;X4.软件维护就是改正软件中的错误;X5.质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动;V6.软件开发的主要任务是写程序;X7.测试只能证明程序有错误,不能证明程序没有错误;V8.模块化程序设计中,模块越小,模块化的优点越明显;一般来说,模块的大小都在10行以下;X9.在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等;X10.程序设计风格指导原则提出,尽量多使用临时变量;X四、简答题每题5分,共20分1.什么是软件工程软件工程是指导计算机软件开发和维护的工程学科;采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来;2.耦合性和内聚性有几种类型其耦合度、内聚强度的顺序如何低:非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合:高强:功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚:弱3.简述需求分析工作可以分成哪四个方面软件需求分析的有哪三个基本原则4.:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审;三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图;5.什么是黑盒测试法黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息;五、程序设计与算法描述题共15分1.根据下面的伪代码程序,完成相应要求;8分STARTIFC1THENWHILEC2DOfENDDOELSEBLOCKgpENDBLOCKENDIFREPEATUNTILC3qrENDREPSTOP1)画出程序流程图4分2)用N—S图描述4分2.有下列伪码程序:STARTINPUTM,NIFM>=10THENX=10ELSEX=lENDIFIFN>=20THENY=20ELSEY=2ENDIFPRINTX,YSTOP设计该程序的语句覆盖和路径覆盖测试用例;7分M=9或<l0,N=l9或<20;M=l0或>=10,N=20或>=20路径覆盖的测试用例为M=9,N=19;M=9、N=20;M=l0,N=l9;M=10,N=20要目标是提高软件质量,减少软件维护代价;软件过程五个模型对比瀑布模型、快速原型、增量、螺旋、喷泉模型可行性研究:1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决;2、四个方面:技术、经济、操作可行性3、数据流图四种成分:1、源点/终点2、处理3、数据存储4、数据流需求分析:1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求;2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法;3、实体联系图:1、数据对象2、属性3、联系1:1、1:N、M:N总体设计:任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构;系统设计阶段确定系统具体实施方案、结构设计阶段确定软件结构模块独立:内聚和耦合耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统内聚Cohesion:一个模块内各元素结合的紧密程度面向数据流的设计方法:变换流和事务流详细设计:任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序;过程设计的工具程序流程图、盒图、PAD图、判定表、判定树面向数据结构的设计方法jackson方法:程序复杂程度的定量McCabe方法:1、VG=E-N+2E是流图中边的条数,N是结点数2、VG=P+1P是流图中判定结点的个数3、流图中的区域数等于环形复杂度;编码单元测试:又称模块测试;每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试;由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性;集成测试:在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试;这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等;白盒测试技术逻辑覆盖、基本路经测试白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程;所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作;白盒测试又称为结构测试;语句覆盖就是设计足够的调试用例,使得程序中的每个语句至少执行一次;判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果;判定/条件覆盖就是设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果;条件组合覆盖就是设计足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次;基本路经测试:黑盒测试技术等价划分黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求;黑盒测试是在程序接口进行的测试,又称为功能测试;1、黑盒测试检查的主要方面有:程序的功能是否正确或完善;数据的输入能否正确接收,输出是否正确;是否能保证外部信息如数据文件的完整性等;用黑盒法设计测试用例时,必须用所有可能的输入数据来检查程序是否都能产生正确的输出2、等价类划分等价类的划分在很大程度上依靠的是测试人员的经验,下面给出几条基本原则:1如果输入条件规定了取值范围,则可划分出一个有效的等价类输入值在此范围内和两个无效的等价类输入值小于最小值、输入值大于最大值;2如果输入条件规定了输入数据的个数,则可相应地划分出一个有效的等价类输入数据的个数等于给定的个数要求和两个无效的等价类输入数据的个数少于给定的个数要求、输入数据的个数多于给定的个数要求;3如果输入条件规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处理,则可将这组可能的值划分为一个有效的等价类,而这些值以外的值划分成无效的等价类;4如果输入条件规定了输入数据的一组可能的值,但是程序对不同的输入值做不同的处理,则每个输入值是一个有效的等价类,此外还有一个无效的等价类所有不允许值的集合;5如果输入条件规定了输入数据必须遵循的规则,则可以划分一个有效的等价类符合规则和若干个无效的等价类从各种角度违反规则;维护改正性维护、适应性维护、完善性维护、预防性维护决定软件可维护性因素可理解性、可测试性、可修改性、可移植性、可重用性面向对象方法学优点:1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好对象模型1、关联2、聚集3、泛化4、依赖和细化贰软件工程软件危机1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题;熟记2、了解软件危机主要的一些典型表现;P23、出现软件危机的原因:4、消除软件危机的途径:首先,我们要对计算机软件有一个正确的认识;更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严格、各类人员协同配合、共同完成的工程项目;最后,应该开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施方法和工具,又要有必要的组织管理措施;软件工程1、软件工程:采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它;熟记2、了解软件工程的本质特征:1、软件工程关注于大型程序的构造2、软件工程的中心课题是控制复杂性3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程的领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品3、缺乏应用领域地相关知识,是软件开发项目出现问题的常见原因;4、软件工程的基本原理:1、用分阶段的生命周期计划严格管理2、坚持进行阶段审评3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组的人员应该少而精7、承认不断改进软件工程实践的必要性5、方法学范型:在软件生命周期全过程中使用的一整套技术方法的集合;6、软件工程方法学3要素:方法、工具和过程;7、目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学8、传统方法学也成为生命周期方法学或结构化范型;9、面向对象方法学具有的4个要点;P10软件生命周期1、概括地说,软件生命周期由软件定义、软件开发和运行维护也称为软件维护3个时期组成,每个时期又进一步划分成若干个阶段;2、软件定义时期的任务3、软件定义时期通常进一步划分成3个阶段:问题定义、可行性研究、需求分析4、维护时期的主要任务是使软件持久地满足用户的需要;5、软件开发时期通常分成4个阶段:总体设计、详细设计、编码和单元测试、综合测试;前两个阶段又称为系统设计,后两个阶段又称为系统实现;6、软件生命周期每个阶段的基本任务:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试;软件工程生命周期模型过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型;对各种模型要了解小结熟读,对本章系统地了解可行性分析可行性分析的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决;可行性研究的任务研究解法的可行性的三个方面:技术可行性、经济可行性、操作可行性;可行性研究最根本的任务:对以后的行动方针提出建议;可行性研究需要的时间长短取决于工程的规模;可行性研究过程复查系统规模和目标研究目前正在试用的系统导出新系统的高层逻辑模型进一步定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查系统流程图1、系统流程图:概括地描绘物理系统的工具;2、系统流程图的基本思想:用图形符号以黑盒子形式描绘组系统的每个部件程序、文档、数据库、人工过程等;3、P39符号4、系统流程图的习惯画法:使信息在图中从顶向下或从左向右流动;5、面对复杂的系统时,一个比较好的方法时分层次地描绘这个系统;数据流图数据流图DFD:一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换;数据流图的四种基本符号P41数据存储静止状态和数据流运动都是数据;数据流图的基本要点是描绘“做什么”,而不是考虑“怎么做”;星号是数据流之间的“与”关系;加号+表示“或”关系;⊕号表示只能从中选一个互斥关系;画数据流图的基本目的是利用它作为交流信息的工具;数据字典数据字典应由对下列4类元素的定义组成:数据流、数据流分量即数据元素、数据存储、处理;由数据元素组成数据的方式的三种基本类型:顺序、选择、重复;+可选用以下符号描述由数据元素组成数据的关系:=意思是等价于或定义为、+意思是和即连接两个分量、}意思是或通常用“|”号隔开供选择的分量、{}意思是重复、意思是可选;数据字典最重要的用途是作为分析阶段的工具;成本/效益分析成本/效益分析的目的:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定;软件开发成本:主要表现为人力消耗;成本估算技术:代码行技术、任务分解技术、自动估计成本技术;货币的时间价值:用利率的形式;假设年利率为i,如果现在存入P元,则n年后的价值:F=P1+i^n衡量一项开发工程的价值:投资回收期;纯收入投资回收率小结三需求分析需求分析是软件定义时期的最后一个阶段;基本任务:准确地回答“系统必须做什么”这个问题;用于需求分析的结构化分析方法必须遵守下述准则:1、必须理解并描述问题的信息域,根据这条准则应该应该建立数据模型;E-R图2、必须定义软件应完成的功能,这条准则要求建立功能模型;数据流图3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型;状态图4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展开细节;需求分析的任务对软件系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求;需求分析的任务:确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划与用户沟通获取需求的方法访谈、面向数据流自顶向下求精、简易地应用规格说明技术,快速建立软件原型;结构化分析方法就是面向数据流自顶向下求精进行需求分析的方法;快速建立软件原型是最准确、最有效、最强大的需求分析技术;分析建模与规格说明需求分析过程应建立3种模型:数据模型、功能模型、行为模型;数据流图是建立功能模型的基础;状态转换图是行为建模的基础;实体-联系图E-RE-R图中包含着实体即数据对象、关系和属性3种基本成分;数据规范化第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构;第二范式:满足第一范式的条件,而且每个非关键字都由整个关键字决定而不是由关键字的一部分来决定;第三范式:符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述即一个非关键字属性值不依赖于另一个非关键字属性值;状态转换图状态转换图简称状态图:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为;在状态图中定义的状态主要有:初态即初始状态、终态即最终状态和中间状态;在状态图中只能有一个初态,而终态则可以有0至多个;事件就是引起系统做动作或和转换状态的控制信息;在状态图中,初态用一对同心圆内圆为实心圆表示;中间状态用圆角矩形表示;如图:/动作表达式3种标准事件:EntryExitDo;/动作表达式事件说明与守卫条件同时使用时,则当且仅当事件发生且布尔表达式为真时,状态转换才发生;如果只有守卫条件没有事件说明则只要守卫条件为真,状态转换就发生;守卫条件是一个布尔表达式;动作表达式是一个过程表达式,当状态表达式开始时执行该表达式;其他图形层次方框图、warnier图、IPO图输入、处理、输出图的简称验证软件需求从四个方面进行验证:一致性、完整新、现实性、有效性小结五总体设计设计过程总体设计过程通常有两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件的结构;典型的总体设计过程包括下述9个步骤:1、设想宫选择的方案需求分析阶段得出的数据流程图是总体设计的极好的出发点;2、选择合理的方案对每个合理的方案,分析员都应准备下列四份材料:A.系统流程图B.组成系统的物理元素清单C.成本/效益分析D.实现各个系统的进度计划3、推荐最佳方案4、功能分解5、设计软件结构软件结构可以用层次图或结构图来描绘;6、设计数据库7、制定测试计划8、书写文档这个阶段完成的文档有:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果;9、审查和复查设计原理模块化、抽象、逐步求精、信息隐藏和局部化、模块独立模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它;模块是构成程序的基本构件;模块化就是把程序分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求;抽象:把相似的方面集中和概括起来,暂时忽略它们之间的差异,或者说,抽出事物的本质特性而暂时不考虑它们之间的细节;逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础;定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑;信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息过程和数据对于不需要这些信息的模块来说,是不能访问的;局部化:把一些关系密切的软件元素物理地放得彼此靠近;模块独立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果;模块独立化重要性的原因:第一,有效地模块化的软件比较容易开发出来;第二,独立的模块化比较容易测试和维护;模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合;耦合是对一个软件结构内不同模块之间互连程度的度量;耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据;如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合;如果传递的信息中有控制信息尽管有时这种控制信息以数据的形式出现,则这种耦合称为控制耦合;数据耦合是低耦合;公共环境耦合、最高程度的耦合式内容耦合;内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展;偶然内聚、逻辑内聚、时间内聚低内聚、中内聚、高内聚的分类;启发规则/软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入都应适当模块的应用域应该在控制域之内力争降低模块接口的复杂程度设计单入口单出口的模块模块功能应该可以预测。
软件工程试题含答案
软件工程期末试题(1)一, 判断题(正确的在括号内打上"√",错误的打上"×".每题1.5分,共15分)Warnier方法也是一种面向数据结构的设计方法,其逻辑更严格.(×) PAD图在设置了五种基本控制结构后,还允许递归调用. (×) 你为了加快软件维护作业的进度,应尽可能增加维护人员的数目.(×) 当验收测试通过,软件开发就完成了.(×)完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×) 系统结构图是精确表达程序结构的图形表示法.因此,有时也可以将系统结构图当作系统流程图使用.(×)在程序调试时,找出错误的位置和性质比改正该错误更难.(√) 以对象,类,继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一.(√)二,单项选择题(每小题2分,共10分)试判断下列叙述中,哪个(些)是正确的(D)a,软件系统中所有的信息流都可以认为是事务流b,软件系统中所有的信息流都可以认为是变换流c,事务分析和变换分析的设计步骤是基本相似的A,a B,b C,c D,b和c进行需求分析可使用多种工具,但(B)是不适用的.A,数据流图B,PAD图C,判定表D,数据词典在详细设计阶段,经常采用的工具有(A).A,PAD B,SA C,SC D,DFD详细设计的结果基本决定了最终程序的(C)A,代码的规模B,运行速度C,质量D,可维护性使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准. A,程序的内部逻辑B,程序的复杂程度C,该软件的编辑人员D,程序的功能三,多项选择题(每题2分,共10分.注:正确得2分,漏选得1分,多选,错选不得分.)(ABCD)可以作为模块.A,子程序B,函数C,过程D,编译文件下面哪些测试属于黑盒测试(BCD).A,路径测试B,等价类划分C,边界值分析D,错误推测E,循环测试下列属于度量效益方法的是(ABCD).A,货币的时间价值B,投资回收期C,收入D,投资回报率软件维护的策略包括(BCD).A,定期检测维护B,改正性维护C,适应性维护D,完善性维护下列属于软件测试过程的是(ABE).A,单元测试B,组装测试C,内核测试D,法律验证E,确认测试四,简答题(每题6分,共24分)1、耦合性和内聚性有几种类型其耦合度,内聚强度的顺序如何答案:低:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:高强:功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚:弱2、请举例说明什么是多态,什么是重载答案:多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象.也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为.当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法.3、重载是指一个类中有多个同名的方法,但在操作数个数或类型上有区别.例: public class A{int age;String name;public void setValue(int i) {age=i; }public void setValue(String s) {name=s; }4、什么是数据字典简述数据字典与数据流图的关系.答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格, 然而没有数据流图数据字典也难于发挥作用. 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分)5、简述编码风格的重要性.答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量.面向对象的测试和传统开发方法的测试有什么不同答案:(1)二者都可以分成四个阶段进行.但传统测试最小单元是模块,而在面向对象环境下,最小的可测试的单元是封装了的类或对象,而不是程序模块.(2)因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和自底向上的组装策略意义不大. 每次将一个操作组装到类中(像传统的增殖式组装那样)常常行不通,因为在构成类的各个部件之间存在各种直接的和非直接的交互.对于面向对象系统的组装测试,存在两种不同的测试策略.软件工程期末试卷(2)(开放教育本科)计算机科学与技术专业《软件工程》试题B一、填空题(每空1分,共20分)1.软件生存周期一般可分为__问题定义__、可行性研究、__需求分析_、设计编码、_测试_、运行与维护阶段。
软件工程师自测题
软件工程师自测题一、选择题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. 所有选项都是二、填空题1. 软件工程的常见模型之一是_______模型。
2. 代码错误的原因可能包括_______、_______和_______。
3. 软件生命周期包括需求分析、_______、编码、_______和维护等阶段。
4. 在软件测试中,黑盒测试主要关注_______,而白盒测试主要关注_______。
5. 软件工程师的主要职责之一是_______软件。
三、简答题1. 请解释什么是软件需求分析,并简要描述需求分析的过程。
2. 请描述软件设计的过程,并简要介绍软件设计中常用的设计模式。
3. 请解释什么是软件测试,以及为什么软件测试在软件开发中非常重要。
4. 请列举并解释三个软件工程师应具备的基本能力。
5. 请简要描述概要设计和详细设计的区别。
四、编程题请用你熟悉的编程语言编写一个简单的计算器程序,实现基本的加、减、乘、除功能。
五、论述题请结合你在实际项目中的经验,论述软件工程师在软件开发过程中应该如何保证代码质量。
六、综合题根据你对软件工程的理解和认识,总结并评价软件工程对软件开发的意义和重要性,并提出你认为可以改进的地方。
以上是软件工程师自测题,请按要求完成题目,并自行评估答题时间。
祝你成功!。
软件工程试卷附答案
一、单项选择题(每题2分,共40分)1.软件生存周期模型有多钟,下列选项中,(C)不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型2.以下说法错误的是(C)。
A.增量模型是在瀑布模型的基础上加以修改而形成的B.增量模型推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件C.瀑布模型和增量模型都属于整体开发模型D.瀑布模型规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节3.可行性分析中,系统流程图用于描述(A)。
A.当前运行系统B.当前逻辑模型C.目标系统D.新系统4.研究软硬件资源的有效性是进行(A)研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.操作可行性5、数据字典中,一般不包括下列选项中的(D)条目。
A.数据流B.数据存储C.加工D.源点与终点6、SA方法的分析步骤是首先调查了解当前系统的工作流程,然后(A)。
A.获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型B.获得当前系统的物理模型,抽象出目标系统的逻辑模型,建立目标系统的物理模型C.获得当前系统的逻辑模型,抽象出目标系统的物理模型,建立目标系统的逻辑模型D.获得当前系统的逻辑模型,抽象出目标系统的物理模型,建立目标系统的物理模型7、通过(B )可以完成数据流图的细化。
A.结构分析B.功能分解C.数据分析D.系统分解8、对软件进行分解,是为了(C)。
A.降低模块的复杂程度B.降低模块间接口的复杂程度C.降低模块的复杂程度,并降低模块间接口的复杂程度D.降低模块的复杂程度,并提高模块间接口的复杂程度9、为了提高模块的独立性,模块内部最好是(C)。
A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚10、在软件结构设计完成后,对于下列说法,正确的是(C)。
A.非单一功能模块的扇入数大比较好,说明本模块重用率高B.单一功能的模块扇入高时应重新分解,以消除控制耦合的情况C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层11、在软件开发过程中,以下说法正确的是(B)。
软件工程习题附答案
软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题1、软件生命周期中所花费用最多的阶段是()A 详细设计B 软件编码C 软件测试D 软件维护答案:D解析:软件维护阶段需要对软件进行修改、优化和修复,由于软件在使用过程中可能会遇到各种问题和需求变更,所以维护阶段通常会花费大量的时间和资源。
2、下面不属于软件工程的 3 个要素的是()A 工具B 过程C 方法D 环境答案:D解析:软件工程的三要素是方法、工具和过程。
方法为软件开发提供了“如何做”的技术;工具为方法的运用提供了自动的或半自动的软件支撑环境;过程是将方法和工具结合起来,以达到合理、及时地进行软件开发的目的。
3、软件可行性研究实质上是要进行一次()需求分析和设计过程。
A 简化、压缩的B 详细的C 彻底的D 深入的答案:A解析:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其实质是进行一次简化、压缩的需求分析和设计过程。
4、软件测试的目的是()A 证明软件的正确性B 找出软件中的所有错误C 尽可能多地发现软件中的错误D 调试程序答案:C解析:软件测试的目的是尽可能多地发现软件中的错误,而不是证明软件的正确性,也不可能找出软件中的所有错误。
5、下面描述中,不符合结构化程序设计风格的是()A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 自顶向下C 注重提高程序的执行效率D 限制使用 goto 语句答案:C解析:结构化程序设计强调清晰的结构和良好的可读性,注重程序的可理解性和可维护性,而不是过于追求执行效率。
二、填空题1、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。
软件工程习题答案
软件⼯程习题答案第1章软件⼯程概述参考答案⼀. 选择题1. B2. A3. B4. B5. D6. B7. D8. A9. D⼆. 填空题1. 设计编码测试2. 软件费⽤可靠性可维护性可重⽤性及⽣产率等3. 计算机软件开发和维护4. 分解抽象和信息隐蔽⼀致性确定性5. 软件的总⽬标待开发软件的需求6. ⼆三7. 计划阶段开发阶段维护阶段8. 软件需求明确9. 制定计划风险分析开发实施⽤户评估三. 名词解释1. 软件的定义如下:在运⾏中能提供所希望的功能和性能的指令集,使程序能正确运⾏的数据结构,描述程序研制过程和⽅法所⽤的⽂档。
2. 软件⼯程是指导计算机软件开发和维护的⼀门学科。
3. 软件危机指的是软件开发和维护过程中遇到的⼀系列严重问题。
4. 就是从提出软件产品开始,直到该软件产品被淘汰的全过程。
5. 瀑布模型⼜称⽣存周期模型,由B.M.Boehm提出,是软件⼯程的基础模型。
其核⼼思想是按⼯序将问题化简,将功能的实现与设计分开,便于分⼯协作。
6. 螺旋模型将瀑布模型与演化模型结合起来,并且加⼊两种模型均忽略了的风险分析,弥补了两者的不⾜。
四. 简答题1. 软件既是知识产品,⼜是与汽车,建筑物⼀样的⼯业产品,此外,软件还具有类似艺术,学术那样的知识性创造和特点,软件的特点如下:软件是⼀种逻辑实体,⽽不是具体的物理实体,因⽽它具有抽象性;软件是通过⼈们的智⼒活动,把知识与技术转化成信息的⼀种产品,是在研制、开发中被创造出来的;在软件的运⾏和使⽤期间,没有硬件那样的机械磨损、⽼化问题;软件的开发和运⾏经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系;软件的开发尚未完全摆脱⼿⼯的开发⽅式;软件的开发费⽤越来越⾼,成本相当昂贵;软件的开发是⼀个复杂的过程,因⽽管理是软件开发过程中必不可少的內容。
2. 软件危机主要表现如下:产品不符合⽤户的实际需要;软件开发⽣产率提⾼的速度远远不能满⾜客观需要,软件的⽣产率远远低于硬件⽣产率和计算机应⽤的增长速度,使⼈们不能充分利⽤现代计算机硬件提供的巨⼤潜⼒;软件产品的质量差;对软件开发成本和进度的估计常常不准确;软件的可维护性差;软件⽂档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的⽐例逐年上升。
软件工程试卷及答案
一、单项选择题(本大题共 20 小题,每小题 1 分,共 20 分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1. “软件工程的概念是为解决软件危机而提出的”这句话的意思是 ( )A.强调软件工程成功解决了软件危机的问题B.说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理C.说明软件工程这门学科的形成是软件发展的需要D.说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护存在的问题2.瀑布模型的主要特点是 ( )A.将开发过程严格地划分为一系列有序的活动B.将开发过程分解为阶段C.提供了有效的管理模式D.缺乏灵活性3.在软件工程的需求分析阶段,不属于问题识别内容的是 ( )A.功能需求B.性能需求C.环境需求D.输入/输出需求4.画某系统的数据流图时,顶层图有 ( )A.0 张B.1 张C.2 张D.3 张及其以上5.软件模块内聚性最强的是 ( )A.功能内聚B.通信内聚C.偶然内聚D.逻辑内聚6.最早提出软件系统维护问题的阶段是 ( )A.可行性分析B.需求分析C.概要设计D.详细设计7.SD(结构化设计)方法设计的结果是( )A.模块B.模块结构图C.模块的算法D.数据流图8.在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试( )A.单元测试B.系统测试C.集成测试D.确认测试9.软件详细设计阶段的任务是 ( )A.算法与数据结构设计B.功能设计C.调用关系设计D.输入/输出设计10.下列属于静态测试方法的是 ( )A.黑盒法B.路径覆盖C.白盒法D.人工检测11.Fortran 语言主要作为以下哪个方面的语言 ( )A.科学工程计算B.系统软件C.事务处理D.人工智能12.用结构化语言来描述加工逻辑的外层结构时,以下不属于基本结构的是 ( )A.顺序结构B.选择结构C.嵌套结构D.重复结构l3.可维护软件的主要特性包括 ( )A.可理解性、可修改性、可移植性B.可使用性C.可维护性、可使用性、可靠性D.可测试性14.程序设计语言不具有的特性是 ( )A.心理特性B.工程特性C.应用特性D.技术特性15.下列不属于项目进度安排主要方法的是 ( )A.工程网络图B.Gantt 图C.进度结构图D.任务资源表16.下列不属于通常冗余技术的是 ( )A.结构冗余B.信息冗余C.时间冗余D.代码冗余17.下列工具中,属于需求追踪工具的是 ( )A.在 DBMS 上的应用运行工具B.追踪和状态报告C.访问和版本控制机构D.文件和修改管理18.关于软件测试的目的,下面观点错误的是 ( )A.为了发现错误而执行程序的过程B.一个好的测试用例能够发现至今尚未发现的错误C.证明程序是正确、没有错误的D.一个成功的测试用例是发现了至今尚未发现的错误的测试19.在制定项目开发计划文档时,不包含的内容是 ( )A.项目概述B.实施计划C.测试计划D.交付期限20.面向对象的开发方法中,以下哪种方法原是面向 Ada 语言的,并处于面向对象开发方法的奠基性地位( )A.Booch 方法B.Coad 方法C.UML 语言D.OMT 方法二、填空题(本大题共 10 小题,每小题 2 分,共 20 分)请在每小题的空格中填上正确答案。
软件工程选择题和简答题
1.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了软件危机2.经济可行性3.数据流图不反映这个系统功能是如何实现的4.模块的内聚性最高的是功能内聚5.在结构系统分析方法中全面指导模块划分的最重要原则模块独立性6.软件详细设计主要采用的方法是结构化设计7.黑盒测试在设计测试用例时,主要需要研究需求规格说明与概要设计说明8.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试:-1.001,-1.0,1.0,1.001,设计这组测试用例的方法是边界值分析法9.下列属于维护阶段的文档是软件问题报告 10.快速原型模型的主要特点之一是及早提供工作软件11.因计算机硬件和软件环境的变化而作出的修改软件的过程称适应性维护12.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为可用性13.下列文档与维护人员有关的有软件需求说明书14.采用Gantt图表示软件项目进度安排下列说明不正确的能表示哪个任务是关键任务15.下列模型属于成本估算方法的有COCOMO模型质量保证---McCall模型规模度量法-----McCabe度量法1.在软件开发中,成本-效益分析是指对将要开发的系统的开发成本进行估算,然后与可能取得的效益进行比较和权衡2.软件危机3.程序的三个基本控制结构的共同特点单入口单出口4.在需求分析中,开发人员要从用户那里解决的重要问题要计软件做什么(需求分析)5.需求规格说明书的作用不包括软件可行性研究的意义6.下面等价类划分方法能够有效的检测输入条件的各种组合可能引起的错误7.数据字典是用来定义数据流图中的各个成份的具体含义的8.为高质量地开发软件项目,在软件结构设计时必须遵循信息隐蔽原则9.当一个模型直接使用另一个模块的内部数据,这种模块之间的耦合为内容耦合10.软件结构图的形态特征能反映程序重用率的是扇入11.设在一个模块有2个判定,若受其中一个判定影响到模块集合A,而受另一个判定影响到模块集合为B,则该模块的作用范围是(A∪B)∪(A∩B)12.为了提高模块的独立性,模块内部最好是功能内聚13.软件测试中根据测试设计方法的不同可分为黑白盒测试两种它们黑为动态测试,白为静态测试14.提高测试的有效性非常重要,成功的测试是指发现了至今为止尚未发现的错误15.确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于确认测试16.维护中因删除一个标识符而引起的错误是代码副作用17.软件生存同期中时间最长的是维护阶段18.单元测试阶段主要涉及编码和详细设计的文档19.程序流程图(框图)中的箭头代表控制流20.程序设计主要强调的是程序易读性简答题1.如何理解模块的独立性?衡量模块独立性的两个标准是什么?它们各表示什么含义?模块独立:模块完成独立的功能并且与其他模块的接口简单,符合信息隐蔽和信息局部化原则,模块间关联和依赖程度尽可能小。
最新软件工程(答案)
一、填空题1、在信息处理和计算机领域内,一般认为软件是程序、数据和文档的集合。
2、软件生存周期的8个阶段分别是问题定义、可行性研究、需求分析、概要设计、详细设计、编码与模块测试、综合测试、维护。
3、可行性研究的目的不是去开发一个软件项目,而是研究这个项目是否能够开发,是否值得开发。
4、可行性研究中,成本-效益分析的目的是从经济角度论证开发一个特定的新系统开发是否划算。
5、需求分析的基本任务是准确定义新系统的目标,为了满足用户的需要,回答系统必须“做什么”的问题。
6、结构化分析方法是面向数据流的,自顶向下、逐步求精进行分析的方法。
二、单项选择题1、软件工程与计算机科学的性质不同,软件工程着重于( B )A.理论研究 B.建造软件系统 C.原理探讨 D.原理的理论2、软件工程学科出现的直接原因是( C )。
A.计算机的发展 B.其它工程学科的影响C.软件危机的出现D.程序设计方法学的影响3、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C )。
A.详细设计阶段 B.概要设计阶段C.需求分析阶段 D.测试和运行阶段4、下列不属于成本-效益分析的度量指标是( C )。
A.货币的时间价值B.投资回收期C.性质因素D.纯收入5、软件需求分析阶段建立原型的主要目的时( A )。
A.确定系统的功能和性能要求B.确定系统的运行要求C.确定系统是否满足用户需要D.确定系统是否满足开发人员需要6、需求分析阶段的研究对象是( A )。
A.用户要求B.分析员要求C.系统要求D.软硬件要求三、简答题1、什么是软件工程过程模型?瀑布、增量、原型和螺旋模型各自有什么特点?答:软件过程模型也叫软件生存期模型、软件工程范型,是软件过程的一种抽象表示。
瀑布模型:严格按照软件生存期的阶段划分顺序和各阶段的目标、任务、文档的要求来进行开发。
该模型以文档为驱动。
每一活动结束后,通过严格的阶段复审和确认,得到一致、完整、准确的良好文档,以“冻结”这些文档为该阶段结束的标志,并作为下一阶段活动的唯一基础;以每一步的正确性和完整性来保证最终系统的质量。
软件工程师试题
软件工程师试题一、选择题1. 下面哪个选项不是软件工程的基本原则?A. 迭代式开发B. 持续集成C. 面向对象编程D. 稳定性优先2. 软件需求工程的主要任务是什么?A. 分析用户需求B. 设计软件架构C. 编写代码D. 进行软件测试3. 下列哪个设计模式用于处理对象之间的一对多关系?A. 单例模式B. 观察者模式C. 适配器模式D. 原型模式4. 在软件测试中,白盒测试是指什么?A. 测试人员对待测试系统一无所知B. 测试人员知道系统的内部结构和实现C. 测试人员只关注系统的功能是否符合需求D. 测试人员只进行黑盒测试5. 下面哪个版本控制工具是分布式的?A. SVNB. GitC. CVSD. Mercurial二、填空题1. 软件生命周期的基本阶段包括需求分析、设计、________、部署和维护。
2. 面向对象编程的基本原则是封装、继承和________。
3. 敏捷开发的核心理念是________。
4. 瀑布模型中,下一个阶段的开始依赖于________。
5. 在软件测试中,黑盒测试是指________。
三、简答题1. 请简要解释软件工程的概念。
2. 请列举至少三个软件项目管理工具,并简要介绍它们的特点。
3. 请解释什么是软件架构,并举例说明软件架构的重要性。
四、论述题软件工程师的核心职责是什么?并从以下几个方面进行论述:1. 软件开发与编码2. 软件测试与质量保障3. 软件需求工程4. 软件项目管理5. 软件维护与升级以上是本次软件工程师试题的内容,请根据题目要求进行回答。
软件工程考试试题与答案
专业:移动通信科目:软件工程一、单项选择题1.好的软件结构应该是〔〕A.低耦合、低内聚B.高耦合、高内聚C.高耦合、低内聚D.低耦合、高内聚答案:D2.需求分析中开发人员要从用户那里了解〔〕A.软件的规模B.软件做什么C.用户使用界面D.输入的信息答案:B3.软件调试技术包括〔〕A.演绎法B.循环覆盖C.边界值分析D.集成测试答案:A4.软件需求规格说明书的内容不应包括对〔〕的描述。
A.用户界面及运行环境B.主要功能C.算法的详细过程D.软件的性能答案:C5.常用动词或动词词组来表示〔〕A.属性B.关联C.类D.对象答案:B6.软件可行性研究实质上是要进行一次〔〕需求分析、设计过程。
A.详细的B.深入的C.彻底的D.简化、压缩的答案:D7.软件部分的内部实现与外部可访问性别离,这是指软件的〔〕A.继承性B.共享性C.抽象性D.封装性答案:D8.软件部分的内部实现与外部可访问性别离,这是指软件的〔〕A.共享性B.继承性C.抽象性D.封装性答案:D9.在详细设计阶段,经常采用的工具有〔〕A.PDLB.DFDC.SCD.SA答案:A10.数据字典是对数据定义信息的集合,它所定义的对象都包含于〔〕A.软件结构B.程序框图C.方框图D.数据流图答案:D11.软件工程结构化生命周期方法,提出将软件生命周期划分为计划、开发和运行三个时期,下述〔〕工作应属于软件开发期的内容。
A.问题定义B.可行性研究C.都不是D.总体设计答案:D12.应用执行对象的操作可以改变该对象的〔〕A.功能B.数据C.属性D.行为答案:C13.软件质量因素不包括〔〕A.可理解性B.可测试性C.正确性D.高性能答案:D14.软件可行性研究实质上是要进行一次〔〕需求分析、设计过程。
A.详细的B.彻底的C.深入的D.简化、压缩的答案:D15.结构化设计是一种面向〔〕的设计方法。
A.数据结构B.数据流C..程序D.数据库答案:B16.结构分析法就是面向〔〕自顶向下逐步求精进行需求分析的方法。
软工选择填空简答
1.()是指在软件的开发和维护过程中遇到的一系列严重问题,表现为软件开发的成本和进度严重超过预算,软件无法更新和维护等等。
2.()需求描述系统所预期提供的功能和服务。
()需求对系统如何提供服务和功能给出限制条件。
3.系统建模是对问题领域中的本质信息进行()和()的过程。
4.可用于需求收集和用户通信的主要技术手段包括()、()、()、构造原型、JAD等等。
5.()是对目标系统的部分实现,作为一种尝试和探索的手段,可以应用到软件开发的各个阶段;根据其用途和作用不同,大致可分为()和()两种类型。
6.在用例模型中,若用例A的执行必然激活用例B,则二者之间应定义为()关系,若用例A的执行在某个条件点上激活用例B,二者之间应定义为()关系。
7.软件测试阶段的主要依据是()8.UML的4+1视图分别是()、()、()、()、()。
其中的“1”指()视图。
9.UML中定义的基本关系形式有(),(),(),(),其中()关系表达了特殊事物与一般性事物之间“is a kind of”的语义。
10.结构化的系统分析方法中,对目标系统的功能域建模主要使用()图;对行为域建模主要使用()图,对数据域建模主要使用()图。
11.结构化分析方法将目标系统分解为()的集合,而面向对象的分析方法则将系统分解为()的集合,它们之间通过()进行通信和协作。
12.统一建模语言的英文缩写是();它是一种定义良好、功能强大且普遍适用的可视化建模语言。
13.()是处于最高抽象层次的数据流图,它给出目标系统全部的数据源点/终点和代表全部系统功能的一个(),可以有效地表示出目标系统的应用范围。
14.SRS的中文含义是();它是用户和开发组织对于目标系统的要求所达成的正式契约;也是后续开发活动参考的基本依据。
15.UML规定使用()、()和()符号来对应表示类内部成员的public, private和protect可见性。
16.(组合)和(聚合)用于描述事物间“整体/部分”的特殊结构关系,其中(组合)使用实心菱形符号。
软件园专业课软件工程填空-判断-简答题软备选
填空题1.基于计算机系统的软件要素中的软部件由程序、数据和文档组成。
(程序、数据、文档)2.软件工程方法学分两类:结构化方法学和面向对象方法学。
(传统or结构化or软件生命周期、面向对象)3.软件工程的目标是在给定成本、开发进度的前提下开发出高质量的、满足用户要求的软件产品。
(开发进度、满足用户要求)4.软件过程是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
(软件过程)5.软件工程釆用层次化的方法,每个层次都包括工具、方法、过程三要素。
(工具、过程)6.使用快速原型这一软件过程模型可以让用户更多、更早地参与需求分析过程。
(快速原型)7.描绘物理系统的传统工具是系统流程图。
(系统流程图)8.需求分析阶段产生的文档是软件需求规格说明书,它的主要组成部分是数据流图,数据字典。
(软件需求规格说明书、数据流图、数据字典)9.数据流图用图形符号表示数据元素、处理过程、数据源及数据存储。
(数据源、加工/处理)10.实体—关系图是数据模型的基础,它描述数据对象、属性及其关系。
(数据模型、数据对象)11.软件设计的主要任务是根据软件需求规格说明书导出系统的实现方案。
(软件需求规格说明书)12.一个模块拥有的直属下级模块的个数称为模块的扇出,一个模块的直接上级模块的个数称为模块的扇入。
(模块的扇出、模块的扇入)13.将数据流图映射为软件结构时, 所用映射方法涉及信息流的类型。
其信息流分为变换型数据流图和事务型数据流图两种类型。
(变换型、事务型)14.耦合的强弱取决于模块接口的复杂性、进入或调用模块的位置以及通过界面传送数据的多少等。
(模块间接口)15.总体设计确定模块的外部结构,而详细设计确定模块的内部结构。
(外部结构、内部结构)16.软件结构是以模块为基础而组成的一种控制层次结构。
(模块)17.详细设计的工具可分为图形类、表格类和语言类三大类。
(图形类、表格类、语言类)18.软件过程设计中最常用的技术和工具主要为程序流程图、判定表、判定树、盒图、PAD图和PDL语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.()是指在软件的开发和维护过程中遇到的一系列严重问题,表现为软件开发的成本和进度严重超过预算,软件无法更新和维护等等。
2.()需求描述系统所预期提供的功能和服务。
()需求对系统如何提供服务和功能给出限制条件。
3.系统建模是对问题领域中的本质信息进行()和()的过程。
4.可用于需求收集和用户通信的主要技术手段包括()、()、()、构造原型、JAD等等。
5.()是对目标系统的部分实现,作为一种尝试和探索的手段,可以应用到软件开发的各个阶段;根据其用途和作用不同,大致可分为()和()两种类型。
6.在用例模型中,若用例A的执行必然激活用例B,则二者之间应定义为()关系,若用例A的执行在某个条件点上激活用例B,二者之间应定义为()关系。
7.软件测试阶段的主要依据是()8.UML的4+1视图分别是()、()、()、()、()。
其中的“1”指()视图。
9.UML中定义的基本关系形式有(),(),(),(),其中()关系表达了特殊事物与一般性事物之间“is a kind of”的语义。
10.结构化的系统分析方法中,对目标系统的功能域建模主要使用()图;对行为域建模主要使用()图,对数据域建模主要使用()图。
11.结构化分析方法将目标系统分解为()的集合,而面向对象的分析方法则将系统分解为()的集合,它们之间通过()进行通信和协作。
12.统一建模语言的英文缩写是();它是一种定义良好、功能强大且普遍适用的可视化建模语言。
13.()是处于最高抽象层次的数据流图,它给出目标系统全部的数据源点/终点和代表全部系统功能的一个(),可以有效地表示出目标系统的应用范围。
14.SRS的中文含义是();它是用户和开发组织对于目标系统的要求所达成的正式契约;也是后续开发活动参考的基本依据。
15.UML规定使用()、()和()符号来对应表示类内部成员的public, private和protect可见性。
16.(组合)和(聚合)用于描述事物间“整体/部分”的特殊结构关系,其中(组合)使用实心菱形符号。
17.软件工程的三要素是指()、()、()。
18.()模型按线性关系组织过程活动,强调活动执行次序的单向性和相邻依赖性。
该过程模型的焦点是文档和可交付产品。
19.CMM的中文含义是(),它是SEI制订的一个用于对软件过程标准化和规范化程度进行评估的方法。
20.()是对结构化分析模型中全部元素的一个有组织的列表以及精确、严格的定义。
21.在UML中类被表示为一个三栏的矩形,类的()列在第一栏中,类的()列在第二栏中,类的()列在第三栏中。
22.UML的顺序图和协作图可以展现()之间的动态协作和消息通信过程,其中()图更直观的表现了消息通信的时序。
23.结构化程序设计强调使用()入口和()出口的基本控制结构,即()、()、和()结构,通过组合嵌套,形成程序的控制结构;尽可能避免使用GOTO语句。
在程序设计过程中尽量采用自()向()和逐步()的原则。
24.动态测试中,()测试法主要检查程序是否满足功能要求25.用等价类划分法设计一个测试用例,使其只覆盖()不合理等价类。
26.结构化分析方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。
这些描述工具是:数据字典;( );描述加工逻辑的结构化语言PDL,( )、( )。
27..在软件项目进度安排及跟踪方面,常常使用两种图。
一种是用来定义任务网络的,做作PERT图;另外一种是用来定义项目时间进度的,叫做( )。
28.传统的软件设计方法是出于解决()语言系统的设计问题为目的。
主要是那些基于功能分析或数据分析基础上的()。
把算法作为基本构造单元。
1概要设计的基本任务有哪些?2什么是软件设计?3软件测试是为了发现错误而执行程序的过程,软件测试时需要哪三类信息?45举例说明软件工程过程模型的种类并绘制瀑布模型。
6试述结构化分析模型构成及分析模型同设计模型关系7简述调试和测试的区别?8简述需求工程的主要活动?9 UML的四种主要关系及图标?10什么是用户界面设计的“黄金规制”?11软件需求分析能够被分为哪几个工作区域?12试述软件体系结构设计的风格和模式。
13简述集成测试的常用方法?14关于软件项目组的组织方式,请解释什么是民主分散式(Democratic Decentralized, DD)和控制集中式(Controlled Centralized, CC),并说明二者各自的适用领域。
15 什么是软件?什么是软件工程?16软件测试过程一般可划分为哪四个主要阶段?17 CMM是什么?共分几级?18在UML包括的各种图中,哪些是用于表现系统动态行为特征的?19软件危机的原因和表现20面向对象三要素?封装、继承和多态2122软件工程三要素:过程、方法和工具2324什么是需求工程25需求工程的最终产品是需求规格说明书(SRS)26需求工程的目标27.需求工程的主要活动28有效获取用户需求的方法:访谈,调查表、现场观察、原型、联合应用开发(JAD)29结构化程序设计方法的基本要点是: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) 高级PC机B) 企业服务器C) 软件工程师D) 项目管理规范7.软件神话之一是,“即使进度拖后,也可以增加更多的人手,在项目后期赶上进度”。
但是,实际上往往达不到预期目标,原因在于________。
A) 新来者技术水平不佳B) 新来者与原来者沟通能力有问题C) 新来者外语平不佳D) 新来者与原来者沟通增加通信成本8.版本管理属于以下那种领域?________A) SCM B) SQA C) OOA D) WEB9.在产品工程层次中,系统构造与集成活动不包括以下那类活动?________A) 代码生成B) 系统测试C) 技术支持D) 系统建模10.以下关于实体-关系图(ERD)的说法哪个是正确的?________A) ERD只能用在数据库设计领域B) ERD中的关系(用菱形表示)不可能有属性C) ERD中的各个实体之间可以形成层次结构,类似于UML中的类图(Class图)D)ERD中的各个关系可以表达动态信息(数据的流动)11.以下关于接口设计的说法哪个正确?________A) 接口设计要在概要设计之前完成B) 接口设计就是用户界面设计C) 接口设计和数据流图(在分析模型中)有密切的映射关系D) 接口设计和状态变迁图(在分析模型中)有密切的映射关系12.白盒测试属于以下哪种测试?________A) 单元测试B) 系统测试C) 集成测试D) 确认测试13.独立测试组(ITG)为何比公司内部员工更适合来做一些测试?________A) 他们的水平更高B) 他们靠找出错误来拿工资C) 他们很懂得黑盒测试D) 他们不参与项目的整个过程14.Beta测试是在以下哪个场所进行的?________A) 客户的单位B) 野外C)网络中心D) 开发者的场所15.面向对象的软件工程更加侧重以下哪个方面?________A) 系统的数据B) 系统的界面C)系统的行为D) 系统的性能16.在面向对象设计(OOD)模型中,消息设计(message design)对应面向对象分析(OOA)模型中的哪一个部分?________A) 用例(use cases) B) CRC索引卡片C) 对象-关系模型D) 对象-行为模型17.OO测试与传统测试在以下哪个方面存在区别?________A) 测试目标发生变化B) 包括测试OOA与OOD模型C) 确认测试发生变化D) 不再存在单元测试18.当前的客户机/服务器(C/S)应用更多采用以下哪种软件构件的分布?________A) “胖”服务器/“胖”客户机B) “瘦”服务器/“胖”客户机C) “瘦”服务器/“瘦”客户机D) “胖”服务器/“瘦”客户机19.以下那种Web应用体系结构最适合电子商务站点销售图书商品?________A) 线性结构B) 网格(grid)结构C) 层次结构D) 网络(networked)结构20.代码行(LOC)是被用于进行软件度量的一个参量,它是用于________的。
A) 公共度量B) 私有度量C) 直接测量D) 间接策测量21.概要设计一般不包括以下哪个内容?________A) 项目背景介绍B) 伪码实现C) 子系统划分D) 具体模块描述22.比较测试属于以下哪种测试?________A) 黑盒测试B) 灰盒测试C) 白盒测试D) 蓝盒测试23.用例图中,()关系意味着某个用例的执行必然激活另一个用例。
A、包含B、扩展C、泛化D、关联24.类图中,类被表示为三栏的矩形,类的方法写在()中A、第一栏B、第二栏C、第三栏D、随便25.如果数据加工的策略中包含复杂的嵌套条件判断和多目标动作,则更适合使用()描述其计算策略。
A. 判定表B. 结构化英语C. 定义式D. 协作图26.下列属于非功能需求的是()A、对系统发布时间的限制B、对开发工具的限制C对系统性能的要求D、其上全是27.在以下()情况下,更适合以调查表作为需求获取的主要手段A、需要与用户就某些功能的细节进行协商。
B、需要了解目标系统的应用范围、战略目标和商业价值C、需要从大量用户那里获取关于需求的统计性信息D、需要实际了解用户日常的工作过程和工作习惯。
28.()技术强调应该使程序具有单一的访问点和结束点,并且仅仅使用三种最基本的控制流程,以提高程序的可靠性和可理解性。
A、结构化分析B、结构化设计C、结构化编程D、都不是29.顺序图能够直观的体现()之间动态协作的时序关系A、对象B、类C、包D、用例30.关于用例图以下说法不正确的是()A、每个用例至少要关联到一个参与者B、每个参与者至少要关联到一个用例C、扩展关系指向扩展用例D、包含关系指向基础用例31.下列软件开发过程模型中,以风险控制为焦点的是()。
A. 瀑布模型B. V模型C. 螺旋模型D.组件开发模型32.在下列收集需求的方式中,与用户直接沟通的方式是()。