📚 IB Computer Science: Software Engineering Key Exam Points | IB 计算机:软件工程考点精讲
Software engineering is a core topic in IB Computer Science, encompassing methodologies, design, testing, and project management that are essential for both Paper 1 and Paper 2. This article distills key concepts, models, and examination tips to help you master the syllabus with clarity and confidence.
软件工程是 IB 计算机科学的核心主题,涵盖方法学、设计、测试和项目管理等内容,对试卷一和试卷二都至关重要。本文提炼关键概念、模型和应试技巧,帮助你清晰自信地掌握考纲。
1. Software Development Life Cycle (SDLC) | 软件开发生命周期
The Software Development Life Cycle (SDLC) is a structured process for planning, creating, testing, and deploying information systems. It typically includes phases such as planning, analysis, design, implementation, testing, and maintenance.
软件开发生命周期(SDLC)是一个结构化的流程,用于规划、创建、测试和部署信息系统。通常包括计划、分析、设计、实施、测试和维护等阶段。
Different SDLC models exist to suit project needs; the two most examined in IB are the Waterfall model and Agile approaches.
存在不同的 SDLC 模型以适应项目需求;IB 考试中最常考察的是瀑布模型和敏捷方法。
2. Waterfall vs. Agile Models | 瀑布模型与敏捷模型对比
The Waterfall model follows a linear sequential flow. Each phase must be fully completed before the next begins, and going back to a previous phase is difficult and costly. It is suitable for projects with well-defined requirements and low uncertainty.
瀑布模型遵循线性顺序流程。每个阶段必须完全完成后才能进入下一阶段,回到前一阶段困难且成本高。它适用于需求明确定义且不确定性低的项目。
In contrast, Agile models emphasize iterative development, collaboration, and flexibility. Small increments are delivered in short cycles (sprints), with continuous feedback from stakeholders. Changes are welcomed even late in development.
相比之下,敏捷模型强调迭代开发、协作和灵活性。在短周期(冲刺)内交付小增量,并持续接收利益相关者的反馈。即使在开发后期也欢迎变更。
IB often asks you to compare these two paradigms. Key points: Waterfall offers predictability and documentation, while Agile offers adaptability and customer involvement.
IB 常要求比较这两种范式。要点:瀑布模型提供可预测性和文档,而敏捷提供适应性和客户参与度。
3. Agile Methodologies in Depth | 深入敏捷方法
Scrum is a popular Agile framework. It defines roles: Product Owner, Scrum Master, and Development Team. Work is organized into sprints (commonly 2-4 weeks), with daily stand-up meetings, sprint planning, review, and retrospective.
Scrum 是一种流行的敏捷框架。它定义了角色:产品负责人、Scrum Master 和开发团队。工作被组织为冲刺(通常 2-4 周),包括每日站会、冲刺计划、评审和回顾。
Kanban focuses on visualizing workflow and limiting work in progress (WIP). Tasks move across a board from “To Do” to “Doing” to “Done”. It promotes continuous delivery and is less prescriptive than Scrum.
看板(Kanban)侧重于可视化工作流并限制在制品(WIP)。任务从”待办”移动到”进行中”再到”完成”。它促进持续交付,且比 Scrum 更少规定性。
Extreme Programming (XP) emphasizes technical practices like test-driven development, pair programming, and continuous integration to improve software quality and responsiveness.
极限编程(XP)强调技术实践,如测试驱动开发、结对编程和持续集成,以提高软件质量和响应能力。
4. Requirements Engineering | 需求工程
Requirements engineering involves eliciting, analyzing, specifying, and validating what the software must do. Functional requirements describe system behaviors, while non-functional requirements define constraints like performance, security, and usability.
需求工程包括获取、分析、规格说明和验证软件必须做什么。功能需求描述系统行为,而非功能需求定义约束,如性能、安全性和可用性。
Techniques include interviews, surveys, observation, and prototyping. A requirement specification document (SRS) serves as a formal agreement between client and developers.
技术包括访谈、调查、观察和原型设计。需求规格说明文档(SRS)作为客户与开发人员之间的正式协议。
IB exams may test how to identify stakeholders and manage changing requirements, especially in Agile contexts.
IB 考试可能考查如何识别利益相关者和管理需求变更,特别是在敏捷上下文中。
5. System Modeling with UML | 用UML进行系统建模
Unified Modeling Language (UML) is a standard way to visualize system design. IB expects familiarity with class diagrams, use case diagrams, and sequence diagrams.
统一建模语言(UML)是可视化系统设计的标准方法。IB 要求熟悉类图、用例图和顺序图。
A class diagram shows classes, attributes, methods, and relationships (association, inheritance, aggregation). Visibility modifiers (+ public, – private, # protected) are used.
类图展示类、属性、方法以及关系(关联、继承、聚合)。使用可见性修饰符(+ 公共, – 私有, # 受保护)。
Use case diagrams illustrate actors (users or external systems) and use cases (functionalities) connected by associations. It captures functional requirements at a high level.
用例图通过关联连接参与者(用户或外部系统)和用例(功能),以高层次捕捉功能需求。
Sequence diagrams show object interactions over time, with lifelines and messages, useful for describing dynamic behavior.
顺序图显示对象随时间交互,具有生命线和消息,适用于描述动态行为。
6. Software Design Principles | 软件设计原则
Good design reduces complexity and enhances maintainability. Modularity means breaking a system into smaller, self-contained modules with clear interfaces.
良好的设计可降低复杂性并提高可维护性。模块化意味着将系统分解为更小、独立的模块并具有清晰接口。
Encapsulation hides internal details and protects data integrity. Cohesion measures how closely related the responsibilities of a module are; high cohesion is desirable. Coupling refers to the degree of interdependence between modules; low coupling is preferred.
封装隐藏内部细节并保护数据完整性。内聚度衡量模块内部责任的相关程度;高内聚是理想的。耦合指模块之间的相互依赖程度;低耦合是首选。
Abstraction allows a programmer to focus on what an object does instead of how it does it, which simplifies problem solving.
抽象允许程序员关注对象做什么而不是如何做,从而简化问题解决。
7. Software Testing Strategies | 软件测试策略
Testing is crucial to verify that the software meets requirements and to find defects. Levels of testing include unit testing (individual components), integration testing (combined modules), system testing (complete system), and acceptance testing (by end-users).
测试对于验证软件是否满足需求并发现缺陷至关重要。测试级别包括单元测试(单个组件)、集成测试(组合模块)、系统测试(完整系统)和验收测试(由最终用户进行)。
Test-driven development (TDD) requires writing automated tests before the functional code. It encourages simple design and incremental development.
测试驱动开发(TDD)要求在功能代码之前编写自动化测试。它鼓励简单设计和增量开发。
Debugging is the process of identifying and fixing errors. Techniques include using breakpoints, stepping through code, and examining variable states.
调试是识别和修复错误的过程。技术包括使用断点、单步执行代码和检查变量状态。
8. Black-box and White-box Testing | 黑盒与白盒测试
Black-box testing examines functionality without knowledge of internal code. It focuses on inputs and expected outputs. Equivalence partitioning and boundary value analysis are common techniques.
黑盒测试在不了解内部代码的情况下检查功能。它关注输入和预期输出。等价类划分和边界值分析是常用技术。
White-box testing uses knowledge of internal structure to test paths, branches, and statements. It aims for high code coverage. Statement coverage, branch coverage, and path coverage are metrics.
白盒测试利用对内部结构的了解来测试路径、分支和语句。它旨在实现高代码覆盖率。语句覆盖、分支覆盖和路径覆盖是度量指标。
Black-box testing is typically performed by testers without programming insight, while white-box testing is often done by developers who understand the codebase.
黑盒测试通常由没有编程洞察的测试人员执行,而白盒测试常由了解代码库的开发人员完成。
9. Version Control and Collaboration | 版本控制与协作
Version control systems (VCS) like Git track changes to source code over time. They allow multiple developers to collaborate, revert to previous versions, and manage branches.
版本控制系统(VCS)如 Git 随时间跟踪源代码变更。它们允许多个开发人员协作、回退到先前版本并管理分支。
Key concepts include repository, commit, push, pull, merge, and conflict resolution. Branching enables parallel development of features without disturbing the main codebase.
关键概念包括仓库、提交、推送、拉取、合并和冲突解决。分支允许并行开发功能而不会干扰主代码库。
In IB exams, you may be asked to explain the benefits of version control for team projects, such as accountability, backup, and experimentation.
在 IB 考试中,你可能需要解释版本控制对团队项目的好处,如问责、备份和实验。
10. Project Management and Risk | 项目管理与风险
Software project management involves planning, scheduling, resource allocation, and risk management. Tools like Gantt charts help visualize timelines and dependencies. Critical path analysis identifies tasks that directly impact project duration.
软件项目管理涉及规划、排期、资源分配和风险管理。甘特图等工具有助于可视化时间线和依赖关系。关键路径分析识别直接影响项目工期的任务。
Risk management includes identifying potential risks (technical, personnel, schedule), assessing their impact and probability, and planning mitigation strategies. Agile approaches manage risk through frequent iterations and feedback.
风险管理包括识别潜在风险(技术、人员、进度),评估其影响和概率,并规划缓解策略。敏捷方法通过频繁迭代和反馈来管理风险。
The role of a project manager includes communication, team motivation, and stakeholder management. IB may ask about the importance of that role in software success.
项目经理的角色包括沟通、团队激励和利益相关者管理。IB 可能会问及这一角色在软件成功中的重要性。
11. Software Quality and Standards | 软件质量与标准
Software quality attributes include reliability, efficiency, maintainability, usability, and portability. Quality assurance (QA) encompasses the entire development process, while quality control (QC) focuses on product testing.
软件质量属性包括可靠性、效率、可维护性、可用性和可移植性。质量保证(QA)涵盖整个开发过程,而质量控制(QC)专注于产品测试。
Standards such as ISO 25010 define quality models. Coding standards (indentation, naming conventions) and documentation standards improve consistency and maintainability.
ISO 25010 等标准定义了质量模型。编码标准(缩进、命名约定)和文档标准提高了一致性和可维护性。
Reviews (code reviews, walkthroughs) and formal inspections are static testing techniques that find defects early without executing code.
评审(代码审查、走查)和正式检查是静态测试技术,可在不执行代码的情况下及早发现缺陷。
12. Ethical and Social
Published by TutorHao | IB Computer Science Revision Series | aleveler.com
更多咨询请联系16621398022(同微信)
屏轩国际教育cambridge primary/secondary checkpoint, cat4, ukiset,ukcat,igcse,alevel,PAT,STEP,MAT, ibdp,ap,ssat,sat,sat2课程辅导,国外大学本科硕士研究生博士课程论文辅导