--- title: 软件工程 tags: - topic - software-engineering - joplin type: topic source_type: reconstructed created: 2026-04-23 updated: 2026-04-23 aliases: - 软件工程重构 --- # 软件工程 > [!abstract] > 本主题重构自 `软件工程` 系列笔记,重点不是零散背诵术语,而是把“软件为什么需要工程化、如何组织生命周期、如何做设计与测试、为什么维护成本高”整理成一套可复习框架。 ## 这门主题在解决什么问题 - 为什么软件开发会出现 [[软件危机]],以及为什么必须引入工程化方法。 - 软件从立项到退役要经历哪些阶段,哪些开发模型适合不同场景。 - 需求、设计、测试、维护这些关键过程如何协同,才能把复杂软件做成可交付产品。 - 为什么 [[高内聚低耦合]]、测试分层和维护分类会反复出现在考试与项目实践中。 ## 推荐复习顺序 1. [[软件工程核心概念]] 2. [[软件生命周期与开发模型]] 3. [[软件工程关键过程与设计]] 4. [[软件测试与维护]] ## 模块地图 - [[软件工程核心概念]]:软件定义、软件危机、软件工程目标与三要素。 - [[软件生命周期与开发模型]]:生命周期阶段、瀑布、原型、增量、螺旋、敏捷、喷泉等模型。 - [[软件工程关键过程与设计]]:可行性研究、需求分析、建模工具、结构化设计、模块独立性。 - [[软件测试与维护]]:测试层级、黑盒白盒、覆盖率、维护类型、维护策略。 ## 关键概念 - [[软件危机]] - [[软件生命周期]] - [[软件开发模型]] - [[高内聚低耦合]] - [[软件测试]] - [[软件维护]] ## 常见误区 - 把软件工程理解成“会写代码”而不是“能稳定交付软件”。 - 只记开发模型名字,不理解它们是在处理需求稳定性、风险和迭代速度的不同权衡。 - 把需求分析、概要设计、详细设计混成一个阶段,不区分各自产出。 - 把测试理解成上线前一次性检查,而不是贯穿开发全过程的质量保证。 - 只背维护四分类,不理解为什么维护才是生命周期成本的大头。 ## 来源范围 - [[raw/Joplin/计算机专业基础/软件工程/_软件工程考研复试终极整理版.md]] - [[raw/Joplin/计算机专业基础/软件工程/1.软件工程——核心概念.md]] - [[raw/Joplin/计算机专业基础/软件工程/2.软件工程——软件生命周期.md]] - [[raw/Joplin/计算机专业基础/软件工程/3.软件工程——关键过程与工具.md]] - [[raw/Joplin/计算机专业基础/软件工程/4.软件工程——软件测试与维护.md]] ## 相关入口 - [[joplin-overview]] - [[joplin-rebuild-schema]]