📚 A-Level WJEC Computer Science: Software Engineering Revision Guide | A-Level WJEC 计算机:软件工程 考点精讲
Software engineering is about applying disciplined, systematic approaches to the design, development, testing, and maintenance of software systems. For WJEC A-Level Computer Science, you need to understand the full software life cycle, from initial feasibility studies through to decommissioning, and to compare modern development methodologies such as Agile with traditional models like Waterfall. This guide distils each key topic into clear English and Chinese explanations, helping you master the terminology and concepts required for success in your examinations.
软件工程是将严谨、系统化的方法应用于软件系统的设计、开发、测试和维护。针对 WJEC A-Level 计算机课程,你需要理解从最初可行性研究到最终退役的完整软件生命周期,并能比较敏捷等现代开发方法与瀑布等传统模型的异同。本指南将每个关键主题提炼为清晰的中英文双语解释,助你掌握考试所需的核心术语与概念。
1. Software Development Life Cycle (SDLC) | 软件开发生命周期
The Software Development Life Cycle is a structured framework that describes the stages involved in creating a software product, from initial planning to final retirement. Typical phases include feasibility study, requirements analysis, system design, implementation, testing, deployment, and maintenance. Understanding the SDLC helps project teams manage complexity and deliver reliable software on time and within budget.
软件开发生命周期是一个结构化框架,描述了从最初规划到最终退役的软件创建阶段。典型阶段包括可行性研究、需求分析、系统设计、实现、测试、部署和维护。理解 SDLC 有助于项目团队管理复杂性并按时、按预算交付可靠的软件。
2. The Waterfall Model | 瀑布模型
The Waterfall model is a linear sequential approach where each phase must be fully completed before the next one begins. Phases flow downwards like a waterfall: requirements → design → implementation → testing → maintenance. It works well for projects with stable, clearly defined requirements, but it is inflexible — returning to an earlier phase is costly and difficult once development has moved on.
瀑布模型是一种线性顺序法,每个阶段必须完全完成后才能进入下一阶段。各阶段如瀑布般向下流动:需求 → 设计 → 实现 → 测试 → 维护。它适用于需求稳定且定义清晰的项目,但缺乏灵活性——一旦开发进入下一阶段,返回到较早阶段的成本和难度都很高。
3. Agile Methodologies | 敏捷方法
Agile software development emphasises iterative progress, collaboration, and flexibility. Instead of delivering the whole system at once, Agile breaks the project into small, time-boxed iterations (often called sprints of 2-4 weeks). Each sprint produces a potentially shippable increment of the product. Popular frameworks include Scrum, Kanban, and Extreme Programming (XP). Agile welcomes changing requirements, even late in development.
敏捷软件开发强调迭代进展、协作和灵活性。敏捷不一次性交付整个系统,而是将项目拆分为小的、有时间限制的迭代(常称为 2-4 周的冲刺)。每个冲刺产出产品的一个潜在可交付增量。流行框架包括 Scrum、看板和极限编程(XP)。敏捷欢迎需求变更,即使是在开发后期。
4. Requirements Engineering | 需求工程
Requirements engineering is the process of identifying, documenting, and maintaining the needs of stakeholders. It typically involves elicitation (interviews, questionnaires, observation), analysis (removing conflicts and ambiguities), specification (producing a requirements document), and validation (ensuring the documented requirements reflect true needs). Poor requirements are a leading cause of project failure.
需求工程是识别、记录和维护利益相关者需求的过程。通常包括需求获取(访谈、问卷、观察)、分析(消除冲突和歧义)、规约(产出需求文档)和确认(确保文档化的需求反映真实需要)。糟糕的需求是项目失败的主要原因之一。
5. System Design | 系统设计
System design transforms the requirements into a blueprint for construction. It covers architectural design (high-level structure, module decomposition), interface design (user interfaces, APIs), and detailed design (algorithms, data structures, database schemas). Design principles like modularity, cohesion, and coupling guide developers to build systems that are easier to understand, test, and maintain.
系统设计将需求转化为构建蓝图。包括架构设计(高层结构、模块分解)、接口设计(用户界面、API)和详细设计(算法、数据结构、数据库架构)。模块化、内聚和耦合等设计原则指导开发者构建更易于理解、测试和维护的系统。
6. Implementation | 实现
Implementation is the stage where the design is translated into working code. Good programming practices such as using meaningful identifiers, consistent indentation, commenting, and adhering to coding standards are vital. The choice of programming language and platform should be justified by project requirements, not personal preference. Code reviews and pair programming can improve quality early.
实现是将设计转化为可运行代码的阶段。良好的编程实践至关重要,如使用有意义的标识符、一致的缩进、注释和遵循编码标准。编程语言和平台的选择应以项目需求为依据,而非个人偏好。代码审查和结对编程能早期提升质量。
7. Software Testing | 软件测试
Testing verifies that the software meets its requirements and finds defects before release. Testing levels include unit testing (testing individual functions or methods), integration testing (testing combined modules), system testing (testing the complete integrated system), and acceptance testing (ensuring the system is ready for delivery). Test plans should include test data for normal, boundary, and erroneous cases.
测试验证软件是否满足需求,并在发布前发现缺陷。测试级别包括单元测试(测试单个函数或方法)、集成测试(测试组合后的模块)、系统测试(测试完整的集成系统)和验收测试(确保系统准备好交付)。测试计划应包含正常、边界和异常情况的测试数据。
8. Software Maintenance | 软件维护
After deployment, software enters the maintenance phase — often the longest and most expensive part of the life cycle. Maintenance can be corrective (fixing bugs), adaptive (modifying the software to work with new hardware or operating systems), perfective (improving performance or usability), or preventive (restructuring code to prevent future faults). Documenting changes carefully is essential for long‑term maintainability.
部署后,软件进入维护阶段——通常是生命周期中最长、最昂贵的部分。维护可以是纠正性(修复缺陷)、适应性(修改软件以适应新硬件或操作系统)、完善性(提升性能或可用性)或预防性(重构代码以防未来故障)。仔细记录变更对长期可维护性至关重要。
9. Project Management | 项目管理
Software project management involves planning, scheduling, risk management, and resource allocation. Tools like Gantt charts and PERT diagrams help visualise timelines and dependencies. The project manager must balance the ‘iron triangle’ of scope, time, and cost (often extended to include quality). Effective communication and regular progress reviews keep the team aligned with stakeholder expectations.
软件项目管理涉及计划、调度、风险管理和资源分配。甘特图和 PERT 图等工具有助于可视化时间线和依赖关系。项目经理必须平衡范围、时间和成本的“铁三角”(常扩展为包括质量)。有效的沟通和定期的进度评审使团队与利益相关者的期望保持一致。
10. Version Control | 版本控制
Version control systems (VCS) track changes to source code and other project files. Git is the most widely used distributed VCS; it allows developers to work on separate branches, merge changes, and revert to previous states. Key concepts include commits, repositories, branches, merging, and resolving conflicts. Using version control is essential for collaboration and preserving the history of a software project.
版本控制系统(VCS)跟踪源代码及其他项目文件的变更。Git 是使用最广泛的分布式 VCS;它允许开发者在独立的分支上工作、合并更改并回退到先前状态。关键概念包括提交、仓库、分支、合并和冲突解决。使用版本控制对于协作和保存软件项目历史至关重要。
11. Software Quality Assurance | 软件质量保证
Quality assurance (QA) is a proactive process that focuses on preventing defects through defined standards, reviews, and audits, rather than relying solely on testing. Attributes of quality include reliability, efficiency, usability, maintainability, and portability. QA activities like walkthroughs and inspections apply to all products, not just code — requirements documents and design diagrams also undergo reviews.
质量保证(QA)是一个主动过程,侧重于通过定义标准、审查和审计来预防缺陷,而不仅依赖测试。质量属性包括可靠性、效率、可用性、可维护性和可移植性。走查和检查等 QA 活动适用于所有产品——不仅仅是代码,需求文档和设计图表也需要经过评审。
12. Ethical and Legal Issues | 道德与法律问题
Software engineers must navigate ethical dilemmas such as data privacy, algorithmic bias, and intellectual property rights. Legislation including the Data Protection Act (DPA) and the Computer Misuse Act sets legal boundaries. Professional bodies like the BCS promote codes of conduct that emphasise public interest, competence, and integrity. Designers should consider inclusivity and accessibility from the earliest stages (inclusive design).
软件工程师必须应对数据隐私、算法偏见和知识产权等道德困境。包括《数据保护法》(DPA)和《计算机滥用法》在内的立法设定了法律界限。BCS 等专业组织推行的行为准则强调公共利益、能力和诚信。设计者应早在最初阶段就考虑包容性与可访问性(包容性设计)。
Published by TutorHao | WJEC Computer Science Revision Series | aleveler.com
更多咨询请联系16621398022(同微信)
屏轩国际教育cambridge primary/secondary checkpoint, cat4, ukiset,ukcat,igcse,alevel,PAT,STEP,MAT, ibdp,ap,ssat,sat,sat2课程辅导,国外大学本科硕士研究生博士课程论文辅导