📚 IB & OCR Software Engineering Exam Points Review | IB OCR 软件工程考点精讲
Software engineering is a core topic in both IB Computer Science and OCR A-Level specifications. It covers the systematic development of reliable software, from initial planning through maintenance. This revision guide highlights essential concepts, models, and practices you need to master for your exams.
软件工程是IB计算机科学和OCR A-Level课程中的核心主题,涵盖了从最初规划到维护的系统化软件开发方法。本复习指南重点讲解考试必须掌握的关键概念、模型和实践。
1. Software Development Life Cycle (SDLC) | 软件开发生命周期
The SDLC is a structured framework that defines the stages involved in developing a software system, from initial planning to maintenance and eventual retirement. It ensures a systematic approach to software creation.
SDLC 是一个结构化框架,定义了从最初规划到维护直至最终退役的软件开发阶段,确保以系统化的方式创建软件。
Typical phases include: planning, feasibility study, requirements analysis, system design, implementation (coding), testing, deployment, and maintenance. Some models also include an evaluation phase after deployment.
典型阶段包括:计划、可行性研究、需求分析、系统设计、实施(编码)、测试、部署和维护。有些模型在部署后还包括评估阶段。
In iterative models the phases repeat in cycles, while in linear models like Waterfall each phase is completed once before moving to the next.
在迭代模型中,各阶段循环重复;而在瀑布模型等线性模型中,每个阶段只完成一次便进入下一阶段。
2. Software Development Models | 软件开发模型
The Waterfall model is a linear sequential approach where each phase must be completed before the next begins. It is suitable for projects with well-defined, stable requirements but is inflexible when changes arise.
瀑布模型是一种线性顺序方法,每个阶段必须在开始下一个阶段前完成。它适用于需求明确且稳定的项目,但面对变更时缺乏灵活性。
Agile methodologies emphasise iterative development, collaboration, and responsiveness to change. Frameworks like Scrum and Kanban deliver software in short cycles (sprints), allowing continuous feedback and adaptation.
敏捷方法强调迭代开发、协作和对变化的快速响应。Scrum 和看板等框架在短周期(冲刺)内交付软件,支持持续反馈和适应。
The Spiral model combines iterative development with systematic risk analysis. Each cycle involves planning, risk analysis, engineering, and evaluation, making it ideal for large, high-risk projects.
螺旋模型将迭代开发与系统化的风险分析相结合。每个周期包含规划、风险分析、工程和评估,非常适合大型高风险项目。
3. Requirements Engineering | 需求工程
Requirements engineering involves eliciting, analysing, documenting, and validating stakeholder needs. Functional requirements specify what the system should do, while non-functional requirements define constraints such as performance, security, and usability.
需求工程涉及引出、分析、文档化和验证利益相关者需求。功能性需求说明系统应该做什么,而非功能性需求则定义性能、安全性和可用性等约束条件。
Techniques for gathering requirements include interviews, questionnaires, observation, and use case modelling. A Software Requirements Specification (SRS) document is produced to serve as a formal contract between client and developer.
收集需求的技术包括访谈、问卷调查、观察和用例建模。生成的软件需求规格说明(SRS)文档是客户与开发者之间的正式合同。
Ambiguous or incomplete requirements are a leading cause of project failure; validation through prototyping, reviews, or walkthroughs is therefore critical.
需求模糊或不完整是项目失败的主要原因,因此通过原型、评审或走查进行验证至关重要。
4. Design Principles and Modularity | 设计原则与模块化
Good software design aims for high cohesion within modules and low coupling between modules. Cohesion refers to how closely related the elements inside a module are; high cohesion improves maintainability and readability.
良好的软件设计追求模块内部高内聚和模块之间低耦合。内聚是指模块内部元素相互关联的程度;高内聚能提升可维护性和可读性。
Coupling measures the degree of interdependence between modules. Low coupling reduces the ripple effect of changes and promotes reuse. Abstraction hides complex implementation details, while encapsulation bundles data and methods.
耦合衡量模块间相互依赖的程度。低耦合减小变更引起的连锁反应并促进复用。抽象隐藏复杂的实现细节,封装则将数据和方法捆绑在一起。
Design patterns such as Model-View-Controller (MVC) separate concerns for easier management. Modular decomposition breaks a system into smaller, self-contained components that can be developed and tested independently.
诸如模型-视图-控制器(MVC)的设计模式分离关注点,便于管理。模块化分解将系统拆分为更小、独立的组件,可单独开发和测试。
5. Software Testing Strategies | 软件测试策略
Testing is essential to verify that the software meets its requirements and to uncover defects. Verification asks ‘Are we building the product right?’, while validation asks ‘Are we building the right product?’
测试对于验证软件是否满足需求并发现缺陷至关重要。验证询问“我们是否正确地构建了产品?”,而确认询问“我们是否构建了正确的产品?”。
Black-box testing examines functionality without knowledge of internal structures; common techniques include equivalence partitioning and boundary value analysis. White-box testing uses internal code logic to design test cases, covering statements, branches, and paths.
黑盒测试在不了解内部结构的情况下检查功能,常用技术包括等价类划分和边界值分析。白盒测试利用内部代码逻辑设计测试用例,覆盖语句、分支和路径。
Testing levels consist of unit testing (individual modules), integration testing (interaction between modules), system testing (the entire integrated system), and acceptance testing (by the client). Alpha and beta testing involve end users in real environments.
测试级别包括单元测试(单个模块)、集成测试(模块间交互)、系统测试(整体集成系统)和验收测试(由客户执行)。Alpha和Beta测试让最终用户在真实环境中参与。
6. Software Maintenance | 软件维护
Maintenance is the phase after deployment during which software is updated and improved. The four recognised types are corrective (fixing bugs), adaptive (modifying to work in new environments), perfective (enhancing functionality), and preventive (improving future maintainability).
维护是部署后对软件进行更新和改进的阶段。公认的四种类型是:纠正性(修复缺陷)、适应性(修改以在新环境中工作)、完善性(增强功能)和预防性(提高未来可维护性)。
Legacy systems often demand substantial effort because of outdated documentation or the absence of original developers. Reverse engineering recovers design information from existing code, while re-engineering restructures the system without changing its external behaviour.
遗留系统因文档过时或开发人员流失往往需要大量维护工作。逆向工程从现有代码中恢复设计信息,再工程则在不改变外部行为的情况下重构系统。
7. Project Management and Planning | 项目管理与规划
Project management ensures that software is delivered on time, within budget, and to the required quality. Core activities include scheduling, resource allocation, risk management, and progress tracking.
项目管理确保软件按时、在预算内交付并达到所需质量。核心活动包括进度安排、资源分配、风险管理和进度跟踪。
Gantt charts display tasks along a timeline, showing start and end dates, dependencies, and milestones. PERT (Program Evaluation and Review Technique) charts use network diagrams to analyse task sequences and identify the critical path – the longest sequence of dependent tasks that determines the overall project duration.
甘特图沿时间线显示任务,标明起止日期、依赖关系和里程碑。PERT(计划评审技术)图使用网络图分析任务序列并找出关键路径——即决定项目总工期的依赖任务最长序列。
Critical Path Method (CPM) helps managers determine which tasks cannot be delayed without impacting the project’s completion date.
关键路径法(CPM)帮助管理者确定哪些任务延迟将影响项目完成日期。
8. Version Control Systems | 版本控制系统
Version control tracks changes to source code and documentation, enabling collaboration and rollback. Centralised systems (e.g., Subversion) rely on a single shared repository, while distributed systems (e.g., Git) give each developer a full repository copy.
版本控制系统跟踪源代码和文档的变更,支持协作和回滚。集中式系统(如Subversion)依赖单一共享仓库,分布式系统(如Git)则为每位开发者提供完整仓库副本。
Essential concepts include commit (saving changes), branch (parallel line of development), merge (integrating changes), and conflict resolution (handling incompatible edits). Using a VCS is crucial for team-based development and preserving project history.
基本概念包括提交(保存变更)、分支(并行开发线)、合并(整合变更)和冲突解决(处理不兼容的编辑)。使用版本控制系统对团队开发和保留项目历史记录至关重要。
9. Software Quality Assurance (SQA) | 软件质量保证
SQA encompasses the entire development process to ensure that defined quality standards are met. It includes process audits, code reviews, testing standards, and adherence to methodologies. Unlike testing, which is product-oriented, SQA is process-oriented.
软件质量保证贯穿整个开发过程,确保达到既定质量标准。它包括过程审计、代码审查、测试标准和方法遵循。与面向产品的测试不同,SQA是面向过程的。
Quality metrics such as defect density, mean time to failure, and customer satisfaction ratings are used to measure and improve software quality. Reviews like inspections and walkthroughs help detect defects early, reducing later rework costs.
缺陷密度、平均无故障时间和客户满意度评分等质量度量,用于衡量和改进软件质量。检查与走查等评审有助于尽早发现缺陷,降低后期返工成本。
10. User Interface (UI) Design Principles | 用户界面设计原则
A well-designed UI should be intuitive, consistent, and responsive. Jakob Nielsen’s heuristics include visibility of system status, match between system and the real world, user control and freedom, error prevention, and recognition rather than recall.
设计良好的用户界面应直观、一致且响应迅速。Jakob Nielsen的启发式原则包括系统状态可见性、系统与现实世界匹配、用户控制和自由、错误预防以及识别而非回忆。
Accessibility considerations – such as screen reader compatibility, keyboard navigation, and sufficient colour contrast – are essential to accommodate diverse users. User-centred design involves iterative prototyping and usability testing to refine the interface based on feedback.
可访问性考虑——如屏幕阅读器兼容性、键盘导航和充足的色彩对比度——对满足多样化的用户需求至关重要。以用户为中心的设计通过迭代原型和可用性测试,根据反馈持续完善界面。
Published by TutorHao | Computer Science Revision Series | aleveler.com
更多咨询请联系16621398022(同微信)
屏轩国际教育cambridge primary/secondary checkpoint, cat4, ukiset,ukcat,igcse,alevel,PAT,STEP,MAT, ibdp,ap,ssat,sat,sat2课程辅导,国外大学本科硕士研究生博士课程论文辅导