系统架构设计师常见考点:软件工程基础知识
每天学习一点点,距离考试通过成功拿证就更进一点点。本站编辑为大家整理了软考系统架构设计师考试中关于软件工程基础知识部分的常见考点,快来一起学习吧。
温馨提示:为了方便考生备考,右侧整理了软考系统架构设计师备考资料,点击资料下载区域可进行免费下载,希望对大家备考有所帮助!
一、软件工程定义
1.软件工程定义
核心定义:软件工程是应用系统性、规范化、可量化方法开发、运行和维护软件的学科,涵盖计算机科学、数学、管理科学等多领域知识。其核心目标是通过工程化手段解决软件危机,提升软件质量(功能性、可靠性、可维护性)并控制开发成本与周期。
关键特征:
系统化:遵循PDCA循环(计划→开发→确认→演进)
可量化:引入度量指标(如代码复杂度、缺陷密度)实现过程控制
标准化:采用ISO 9000、CMMI等国际标准规范流程
2.软件过程模型
瀑布模型:
阶段:需求→设计→编码→测试→维护(严格顺序)
适用场景:需求明确、技术成熟的中小型项目
局限性:变更成本高(需求冻结后修改代价大)、测试滞后(仅在后期介入)
增量模型:
特点:分阶段交付功能模块(如先核心功能再扩展)
优势:降低风险、快速响应部分用户需求
挑战:需高度模块化设计,架构需具备扩展性
螺旋模型:
核心机制:迭代周期=风险分析→原型开发→用户评估→计划调整
适用场景:大型复杂系统(如国防、金融核心系统),强调风险驱动
V模型:
测试对应关系:需求↔验收测试、设计↔系统测试、编码↔单元测试
价值:强调测试的早期介入,提升缺陷发现效率
3.敏捷模型
四大价值观:个体与互动 > 流程工具;可运行软件 > 详尽文档;客户协作 > 合同谈判;响应变化 > 遵循计划
Scrum框架:角色:Product Owner(需求优先级)、Scrum Master(流程协调)、开发团队(跨职能)
工件:Product Backlog(需求池)、Sprint Backlog(迭代任务)、增量交付物
事件:每日站会(15分钟)、Sprint评审会(演示成果)、回顾会(改进流程)
极限编程(XP):
实践:持续集成(每日构建)、测试驱动开发(TDD)、结对编程(知识共享)
适用性:小型团队(<10人)、需求频繁变更场景
4.统一过程模型(RUP)
四大阶段:
初始阶段:确定业务目标,识别关键用例(如电商系统的订单处理)
细化阶段:建立架构基线(如微服务架构设计)
构造阶段:增量开发(分模块并行编码)
交付阶段:用户验收测试(UAT)与部署
核心优势:
用例驱动:以用户场景为核心设计功能
架构为中心:通过4+1视图模型(逻辑/开发/进程/物理+用例)描述系统
5.软件能力成熟度模型(CMMI)
成熟度等级:
初始级:依赖个人能力,过程不可预测
可重复级:制度化项目管理(如需求管理、项目计划)
已定义级:标准化组织级过程(如SEPG制定规范)
已管理级:量化控制(如缺陷密度≤0.5/千行代码)
优化级:持续改进(引入六西格玛方法)
关键过程域(KPA):
需求管理(RM)、项目监督与控制(PMC)、过程与产品质量保证(PPQA)
二、需求工程
1.需求获取
方法技术:
用户访谈:结构化问卷 vs. 开放式讨论(适用于不同用户类型)
原型法:快速构建低保真原型验证需求(如Axure制作界面草图)
观察法:现场观摩业务流程(如银行柜台操作流程)
需求分类:
功能性需求:系统应提供的服务(如用户登录、支付功能)
非功能性需求:性能(响应时间<2秒)、安全性(SSL加密)、可维护性(模块化设计)
2.需求变更
变更管理流程:
申请:填写变更请求单(CRF),描述变更内容及影响
影响分析:评估对进度、成本、质量的影响(如导致项目延期2周)
CCB评审:变更控制委员会决策(需包含客户代表、项目经理、架构师)
实施与验证:更新需求文档并重新测试
基线管理:通过配置管理工具(如Git)冻结需求版本,记录变更历史
3.需求追踪
追踪矩阵(RTM):
纵向追踪:需求ID → 设计模块 → 测试用例
横向追踪:覆盖度分析(如需求覆盖率≥95%)
工具支持:JIRA、DOORS等需求管理平台
三、系统分析与设计
1.结构化方法
核心工具:
数据流图(DFD):分层描述数据流动(0级图→1级图→n级图)
结构化语言:伪代码描述处理逻辑(如“IF 余额≥金额 THEN 允许支付”)
模块化原则:高内聚(单一职责)、低耦合(接口标准化)
2.面向对象方法
UML建模:
用例图:识别参与者(Actor)与系统交互场景
类图:定义类属性、方法及关联关系(聚合/组合/继承)
时序图:描述对象间消息传递顺序(如订单创建流程)
设计模式:
工厂模式:解耦对象创建(如支付方式工厂生成支付宝/微信实例)
观察者模式:实现事件通知机制(如库存变化触发通知)
四、软件测试
1.测试方法
黑盒测试:
等价类划分:有效/无效类(如年龄输入:0-150为有效)
边界值分析:测试临界值(如最大值、最小值+1)
白盒测试:
路径覆盖:确保执行所有代码分支(如if-else语句)
工具:JUnit(单元测试)、Selenium(Web自动化)
2.测试阶段
单元测试:开发者编写测试用例,覆盖函数级别逻辑
集成测试:
策略:自顶向下(先测高层模块) vs. 自底向上(先测底层服务)
常见问题:接口参数不匹配、数据格式错误
系统测试:性能测试(LoadRunner)、安全测试(渗透测试)
验收测试:用户主导,验证是否符合业务需求(UAT)
五、净室软件工程
理论基础:基于数学证明(如Z语言)而非测试,追求零缺陷
技术手段:
形式化规约:用数学语言精确描述需求(如状态机模型)
统计质量模型:预测缺陷密度(如每千行代码≤0.1个缺陷)
缺点:人员数学能力要求高,难以适应快速迭代需求
六、基于构件的软件工程(CBSE)
构件标准:
CORBA:跨语言分布式对象通信
EJB:Java企业级组件规范
构件组装:
接口匹配:通过IDL(接口描述语言)定义契约
依赖注入:Spring框架实现组件解耦
CBSE过程:构件检索(如Maven仓库)→适应性修改→集成测试
七、软件项目管理
1.项目管理概述
铁三角约束:范围(需求变更)、时间(里程碑延迟)、成本(资源超支)
关键角色:项目经理(统筹)、配置管理员(版本控制)、QA(质量审计)
2.软件进度管理
工具:
甘特图:可视化任务时间线(MS Project)
关键路径法(CPM):计算最长路径确定最短工期
进度压缩:快速跟进(并行任务)、赶工(增加资源)
3.软件配置管理
配置项:代码、文档、环境配置(如Dockerfile)
基线管理:开发基线(每日构建)、产品基线(发布版本)
4.软件质量管理
质量模型:ISO 9126(功能性/可靠性/易用性/效率/可维护性/可移植性)
质量活动:代码审查(Code Review)、静态分析(SonarQube)
5.软件风险管理
风险类型:技术风险(新技术不成熟)、市场风险(需求变化)
应对策略:规避(更换技术栈)、转移(购买保险)、减轻(冗余设计)
高频考点
敏捷 vs 瀑布:案例分析中需结合项目特征(如需求稳定性、团队规模)选择模型
CMMI应用:熟记各成熟度级别的关键特征(如三级要求组织级过程定义)
需求追踪实战:RTM矩阵设计需覆盖需求→测试用例双向链接,考试可能要求补全矩阵
UML图应用:时序图描述电商订单支付流程,类图设计图书馆管理系统
测试覆盖分析:计算代码路径覆盖度(如循环嵌套导致路径爆炸)
编辑推荐:
点击查看>>系统架构设计师考试资料专区免费下载备考资料!
以上就是“系统架构设计师常见考点:软件工程基础知识”的内容了,请考生认真阅读,在规定时间内进行报名。温馨提示:为帮助各位考生更好地备考2025年软考系统架构设计师考试,环球网校为大家特意上传了很多备考资料,如历年真题、模拟试题与答案解析、考试技巧等备考资料,考生可点击下方“免费下载”进行领取哦!
最新资讯
- 2025年系统架构设计师报名时间汇总:附加备考资料免费领2025-07-14
- 一键收藏!2025年系统架构师报名时间及备考资料2025-07-02
- 2025系统架构设计师:报名时间全梳理,备考资料一键获取2025-06-25
- 2025年系统架构设计师:报名时间全梳理,备考资料一键获取2025-06-24
- 2025系统架构设计师报考必看:各地报名时间+备考资料大合集2025-06-23
- 2025系统架构设计师报考全攻略:关键时间节点+超全备考资料2025-06-20
- 系统架构设计师常见考点:软件工程基础知识2025-06-10
- 系统架构设计师常见考点:信息系统基础知识2025-05-27
- 系统架构设计师常见考点:信息系统核心理论与模型2025-05-04
- 系统架构设计师常见考点:性能与可靠性2025-04-27