"国科大软件工程期末复习题参考答案涵盖了敏捷开发、软件设计原则、编程语言特性、版本控制和软件开发过程等多个方面。"
在软件工程领域,这些概念是核心知识点:
1. **敏捷开发方法与Scrum**:敏捷开发强调适应变化,快速迭代,以用户需求为中心。Scrum是敏捷开发的一种实践,通过短周期的Sprint来管理项目,包含产品待办列表、冲刺待办列表和每日站会等元素。
2. **基于计划-文档开发方法**:传统的开发方式,强调详细的规划和文档编写,但在应对变化上不如敏捷方法灵活。
3. **DRY (Don’t Repeat Yourself)**:避免代码重复,提倡重用,以提高效率和代码质量。
4. **MVC(Model-View-Controller)**:这是一种软件架构模式,将应用逻辑分为模型、视图和控制器三部分,使各部分职责分明。
5. **SMART用户故事**:具体、可衡量、可实现、相关性强、时限明确的需求描述,便于理解和执行。
6. **TDD(Test-Driven Development)和红-绿-重构**:先写失败的测试(红),然后编写最小的代码使其通过(绿),最后重构代码以保持简洁。
7. **FIRST测试原则**:Fast、Independent、Reproducible、Self-verifying、Timely,用于编写高效单元测试的标准。
8. **代码味道及SOFA原则**:S(Separate Concerns,分离关注点)、O(Open for Extension, Closed for Modification,开放封闭原则)、F( Favor Composition over Inheritance,优先使用组合而非继承)、A(Against Duplication,反对重复)。违反这些原则的代码可能导致维护困难,重构是改善的关键。
9. **SOLID原则**:
- **单一责任原则**:一个类应该只有一个引起变化的原因。
- **开闭原则**:软件实体应对于扩展开放,对于修改关闭。
- **里氏替换原则**:子类型必须能够替换掉它们的基类型。
- **依赖注入原则**:依赖于抽象,而不是具体实现。
- **迪米特法则**:一个对象应该对其他对象有最少的了解。
10. **持续集成及开发**:频繁地将开发人员的改动集成到主分支,及时发现并解决问题。
11. **文档对象模型(DOM)**:表示HTML或XML文档的结构,jQuery则是一个简化JavaScript操作DOM的库。
12. **JavaScript函数特点**:包括函数是第一类对象,可以作为值传递,也可以作为参数和返回值。
13. **Ruby面向对象**:Ruby是一种强面向对象语言,所有一切都是对象。
14. **Ruby访问控制**:`public`、`private`和`protected`定义方法的可见性。
15. **Ruby中的数组**:一种有序的数据集合,可以存储任意类型的对象。
16. **Ruby哈希(Hash)**:键值对的集合,类似于字典。
17. **Ruby迭代器**:如`each`和`collect`,用于遍历数据结构。
18. **Git工作流程**:包括提交、分支、合并、拉取请求等,用于协同开发和版本控制。
19. **低内聚高耦合原则**:理想的软件设计应具有高内聚(模块内部紧密相关)和低耦合(模块之间相互独立)的特性。
20. **RUP与UML**:RUP是过程模型,指导软件开发流程;UML是建模语言,用于描绘系统结构和行为。两者相辅相成,RUP常使用UML进行建模。