软件工程的核心知识体系,包括软件生命周期各阶段、开发模型、敏捷实践、过程改进(CMMI)、需求工程、结构化与面向对象分析设计、UML建模、测试技术、质量保障、架构模式、设计原则与配置管理等
软件工程的核心知识体系包括软件生命周期各阶段、开发模型、敏捷实践、过程改进CMMI、需求工程、结构化与面向对象分析设计、UML建模、测试技术、质量保障、架构模式、设计原则与配置管理等。这些知识点构成了系统化软件开发与管理的理论基础和实践框架。以下是对关键概念的简要归纳软件生命周期从可行性研究开始经需求获取、系统/详细设计、编码实现、多级测试单元→集成→系统→验收到交付后的维护改正性、适应性、完善性、预防性。开发模型瀑布模型强调线性顺序原型法快速验证需求螺旋模型融合风险分析增量模型分批次交付可用功能。敏捷开发以人和交互、可运行软件、客户协作、响应变化为价值观《敏捷宣言》Scrum通过Sprint、角色PO/SM/Dev Team和工件Product Backlog等实现迭代交付XP强调结对编程、TDD、持续集成迭代开发是其共性基础。CMMI能力成熟度模型集成5级成熟度1级初始→2级已管理→3级已定义→4级量化管理→5级优化管理用于过程改进评估。需求分析功能需求描述“做什么”非功能需求性能、安全、可用性、可维护性等描述“做得怎样”。结构化分析DFD数据流图分层建模系统信息流动0层→1层→…配合**数据字典DD**精确定义数据项、文件、加工逻辑。内聚与耦合“高内聚低耦合”是模块化设计黄金准则——模块内部职责单一高内聚模块间依赖松散低耦合提升可维护性与复用性。软件测试按阶段单元函数/类、集成接口/子系统、系统端到端、验收用户确认按方法黑盒不看代码如等价类划分、边界值分析白盒基于代码结构如语句/判定/条件/路径覆盖McCabe环路复杂度V(G) E − N 2PE边数N节点数P连通分量数常简化为E − N 2单连通图用于评估测试难度与风险。面向对象核心封装隐藏实现、继承代码复用与扩展、多态同一接口不同行为。UML建模类图表达静态结构含关联普通关系、聚合“整体-部分”可独立存在、组合强聚合部分随整体消亡、依赖临时使用用例图参与者Actor与用例Use Case强制包含、可选扩展序列图强调对象间消息时序含生命线、激活框控制焦点状态图刻画对象生命周期中的状态、事件触发的转移活动图流程建模支持并发泳道、分支合并决策节点/合并节点。设计模式可复用的解决方案模板如单例全局唯一实例、工厂解耦对象创建、观察者松耦合事件通知、适配器接口转换。软件质量模型ISO/IEC 25010标准定义8大特性功能性、性能效率、兼容性、易用性、可靠性、安全性、维护性、可移植性。系统架构MVC分离关注点Model-View-Controller三层架构表示层/业务逻辑层/数据访问层提升可维护与可扩展性。模块化与信息隐蔽将系统划分为独立模块隐藏内部细节如私有成员、接口抽象降低修改影响范围。容错技术N版本程序设计多个独立团队开发同功能版本投票表决输出提高可靠性。软件配置管理SCM通过版本控制Git/SVN、基线Baseline阶段性稳定配置项集合、变更控制确保产品一致性与可追溯性。以上内容构成软件工程专业能力的主干适用于课程学习、考试复习如软考高项、GCT、考研、工程实践与团队协作规范建设。# 示例计算McCabe环路复杂度简化单连通图defmccabe_complexity(edges,nodes):returnedges-nodes2# 示例简单DFD加工逻辑伪代码对应数据字典条目defprocess_order(order_data):# 校验格式 → 查库存 → 扣减库存 → 生成订单 → 发送通知ifvalidate_format(order_data):stockquery_stock(order_data.item_id)ifstockorder_data.quantity:update_stock(order_data.item_id,-order_data.quantity)order_idcreate_order(order_data)notify_customer(order_id)returnsuccessreturnfailed