哈工大2019软件构造期末试题解析

需积分: 0 12 下载量 137 浏览量 更新于2024-08-05 5 收藏 856KB PDF 举报
"2019年哈尔滨工业大学软件构造期末试题1" 这是一份2019年哈工大春季学期软件构造课程的期末考试试卷,主要考察学生对软件构造相关概念的理解和应用。试题包括单项选择题,涵盖多个知识点。 1. 软件构造实体分类:题目询问哪种组合中的软件构造实体,一个属于构建时视图(build-time view),另一个属于瞬时视图(moment-view)。选项中A选项的Software Configuration Item (SCI)通常在构建时视图中,而StackTrace则是在程序运行时出现;B选项的CodeSnapshot和TestCase都是在运行时刻产生的;C选项的Static linking library与Memory Dump也是在程序运行时才涉及;D选项的Abstract Syntax Tree (AST)是编译时产生的,属于构建时视图,而CodeChurn是代码变化度量,可能发生在任何时间。正确答案是D,AST与CodeChurn。 2. 不需执行代码的工具/命令:问题是哪些工具或命令可以在不执行代码的情况下获得期望结果。A选项的JUnit和Eclipse Memory Analyzer (MAT)需要执行测试代码;B选项的Checkstyle是静态代码分析工具,gitcommit是版本控制操作,都不需执行代码;C选项的Eclipse Memory Analyzer (MAT)和jmap用于分析内存,不需要运行代码;D选项的SpotBugs和VisualVM也需要分析运行中的Java应用。正确答案是B,Checkstyle和gitcommit。 3. 变与不变性(immutability and mutability):题目涉及对变与不变性的理解。A选项,被static和final修饰的变量不一定是不可变的,它们只是不能被重新赋值;B选项,State设计模式可以使对象有状态转换,但不是变与不变性的定义;C选项,Collections.unmodifiableList返回的列表是不可变的,其内容不能更改;D选项,迭代器本身不是不可变的,它可以被用来修改列表。正确答案是C。 4. 关于ADT(抽象数据类型)的Rep、AF(抽象函数)和RI(代表实现):题目询问关于这些概念的正确说法。A选项是正确的,Immutable类的对象在其创建后rep不能改变;B选项,Repexposure是对于所有ADT都重要的,不只限于immutable ADT;C选项,RI是ADT的实现细节,不是对外公开的;D选项,关于ADT的代表实现,如果泄露可能会导致问题,但选项没有完整表述。正确答案是A。 这份试题深入考察了软件工程中的基本概念,如软件生命周期中的视图、代码分析工具、对象的变与不变性以及抽象数据类型的内部表示和接口。学习者需要对这些概念有扎实的理解才能正确答题。
2015-06-28 上传
1. 构件:是指语义完整,语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述通信接口和实现代码的复合体。2. 构件模型:是对构件本质特征的抽象描述。3. 构件组装:是指将库中的构件经适当修改后相互连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件。4. 软件体系结构:Hayes Roth认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。5. 面向服务体系结构(SOA):本质上是服务的集合,服务间彼此通信,这种通信可能是简单地数据传送,也可能是两个或更多的服务协调进行某些活动。6. 可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统特性的基本能力。7. 可修改性:是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。可修改性包括:可维护性、可扩展性、结构重组、可移植性。8. 敏感点:是一个或多个构件(和/或构件之间的关系)的特性。9. 权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。10. 软件产品线:就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合。11. 框架:是封装了特定应用族抽象设计的抽象类的集合,框架又是一个模板,关键的方法和其他细节在框架实例中实现。