一、名词解释:
1、重构(Refactoring):就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。
2、多态(Polymorphism):接口多种不同的实现方式即为多态。
3、泛化(Generalization):泛化是一般性事物(称为超类或父类)和它的较为特殊种类(称为子类)之间的一种关系,有时称为“is-a-kind-of”关系。
4、依赖(Dependency):依赖是一种使用关系,用于描述一个事物使用另一事物的信息和服务。
二、选择题:
1、下列关于单元测试的说法,不正确的是(B)
A. 单元测试应该在最基本的功能/参数上验证程序的正确性。
B. 单元测试过后,机器状态可能会发生改变。
C. 单元测试应该产⽣可重复、⼀致的结果。
D. 单元测试应该覆盖所有代码路径。
解析:单元测试过后,机器状态保持不变。
2、(中国大学mooc,北京大学-软件工程课后题)Jack在Google工作,是公司市场组的一名成员。那么描述Jack的类目Employee和描述Google的类目Company之间是(A)关系。
A.关联 B.泛化 C.细化(实现)D.依赖
3、软件生命周期中所花费用最多的阶段是( D )。
A、详细设计 B、软件编码 C、软件测试 D、软件维护
4、(中国海洋大学, 2009,软件工程期末)面向对象的分析方法主要是建立三类模型,即( B )。
A、系统模型、E-R模型、应用模型 B、对象模型、动态模型、功能模型
C、E-R模型、对象模型、功能模型 D、对象模型、动态模型、应用模型
5、(中国海洋大学,2014,软件工程期末)瀑布模型的关键不足在于( B )
A、过于简单 B.不能适应需求的动态变更
C.过于灵活 D.各个阶段需要进行评审
6、(牛客网)下面不是面向对象的基本原则的是(C)?
A、单一职责原则(Single-Resposibility Principle)
B、开放封闭原则(Open-Closed principle)
C、抽象类原则(Abstract-Class principle)
D、依赖倒置原则(Dependecy-Inversion Principle)
E、接口隔离原则(Interface-Segregation Principle)
解析:、五大基本原则:单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)。
7、(中国海洋大学,2014,软件工程期末)结构化分析方法以数据流图、__D__和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。
A.DFD图 B.PAD图 C.IPO图 D.数据字典
8、(牛客网)系统软件中主要包括操作系统,语言处理程序和(C)
A、用户程序 B、实时程序 C、实用程序 D、编程程序
解析:系统软件包括操作系统,语言系统和工具系统,工具系统也称为实用系统
9. (牛客网)工厂模式是比较常用的设计模式,它遵循了如下设计原则中的?( A )
A、单一职责原则 B、开放-封闭原则 C、依赖倒置原则 D、里氏代换原则
解析:单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。
10、两个模块彼此传递的信息中有控制信息,这种耦合称为( D )
A 数据耦合 B 公共环境耦合 C 内容耦合 D 控制耦合
三、判断题:
1、 linux的find和grep指令,区别在于find是用来搜索文件内部文本的,grep是用来搜索文件的。(F)
解析:linux的find和grep指令,区别在于find是用来搜索文件的,grep是用来搜索文件内部文本的。
2、在设计需求分析的过程中,功能需求是主体,没有功能需求就没有非功能需求。(T)
3、是一种描述数据变换的图形工具,它包含的元素可以使数据流、数据存储、加工、数据源、数据潭等。(T)
4、(中国大学mooc,北京大学-软件工程课后题)所有的数据流图都可以看作变换型数据流图。(T)
5、编码风格由个人喜好决定,没有固定格式。(F)
6、软件工程学只有理论意义,没有实际用途。(F)
7、类图用来表示系统中类和类与类之间的关系,是对系统动态结构的描述。( F )
解析:类图用来表示系统中类和类与类之间的关系,是对系统静态结构的描述。
8、(中国海洋大学, 2009,软件工程期末)软件测试只能证明程序有错误,不能证明程序没有错误。( T )
9、UML 是一种面向对象的分析设计方法,即OOA/OOD 方法。(F)
解析:UML是一种面向对象的统一建模语言。
10、scrum模型是一个非敏捷的瀑布式开发模型。(F)
解析:scrum模型是一个敏捷开发模型。
四:简答题:
1、用例建模的步骤:
步骤1)从需求中派生(抽象)用例,
步骤2)描述每个用例何时何地开始以及何时结束(高级用例)。
步骤3)根据描述用例上下文使用用例图访问子系统/方面。
步骤4)关联用例,并在需要时与参与者进行关联。
步骤5)逐步指定参与者和系统如何交互以完成业务任务(扩展用例)。
2、领域建模的步骤:
1)收集应用程序领域信息
-集中于功能需求
-还考虑其他需求和文档
2)头脑风暴
--列出重要的应用领域概念
--列出它们的属性/属性
-列出它们彼此之间的关系
3)将域概念分类为:类-属性/属性值-关系:关联、继承、聚合
4) 使用UML类图记录结果
3、多态的三个必要条件是什么?
1.要有继承
2.要有方法的重写
3.父类引用指向子类对象
4、软件测试的步骤以及测试的对象是什么?
①单元测试,测试对象为单元模块
②集成测试:测试对象是组装后的程序模块
③确认测试:测试对象是可运行的目标软件系统。
5、软件生命周期 8 个时期?
问题定义,可行性研究,需求分析,总体设计(概要设计),详细设计,编码与单元测试,综合测试,运行维护。
6、(中国海洋大学,06-07,软件工程期末)培训中心要研制一个计算机管理系统,它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理,
(1)如果是报名的,则把报名数据送给负责报名事务的职员,他们将查询课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单给财务部门,财务人员开发票给学员。
(2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。
(3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。
要求:(1)对以上问题画出数据流程图
(2)画出该培训管理的软件结构图的主图。