软考高项:信息系统项目管理师第4版官方教材对应页码,专题为系列学习笔记。本文第5章第1节:软件工程(P129~144)
第一部分:历年章节考试占分(重点章节)
第5章分别在2024年5月第一批考试占4分;第二批考试占:4分;
第二部分:章节重点知识记忆
一、架构设计(P129~131)
1、架构设计:解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。
2、架构设计:软件架构设计的一个核心问题是能否达到架构级的软件复用。
3、架构风格(惯用模式)
ü 数据流风格:批处理序列(顺序执行)和管道/过滤器(数据流);
ü 调用/返回风格:主/子程序(调用)、数据抽象和面向对象及层次结构;
ü 独立构件风格:进程通信(远程调用)和事件驱动(注册和触发);
ü 虚拟机风格:基于规则和解释器;
ü 仓库风格:超文本(超链接)、黑板系统及数据库系统;
4、软件架构评估方式:基于调查问卷(或检查表)方式、基于场景的方式【最为常用】针对特定领域的支持程度、基于度量的方式。
二、需求分析(p131~138)
5、质量功能部署(QFD):将【用户要求】转化成【软件需求】的技术。
6、质量功能部署(QFD)分类:
ü 【常规需求】用户认为系统应该达到的功能或性能;
ü 【期望需求】无需用户明确,系统就应具备的功能或性能;
ü 【意外需求】用户要求范围之外的功能或性能。
7、需求过程:需求获取(杂乱无章):看似简单,其实很难。
8、需求分析(用户需求视角)-结构化分析方法(SA)(数据字典是核心):
ü 【数据模型】采用实体关系图(ER)表示
ü 【功能模型】采用数据流图(DFD)表示
ü 【行为(状态)模型】采用状态转换图(STD)表示
9、需求分析(用户需求视角)-面向对象分析方法(OOA):用例模型(前3个阶段是必须的)
ü 识别参与者
ü 合并需求获得用例
ü 细化用例描述
ü 调整用例模型
10、需求分析(用户需求视角)-面向对象分析方法(OOA):分析模型
ü 【静态模型】展示对象和类如何组成系统
ü 【动态模型】描述他们如何保持【通信】,实现系统【行为】
11、需求规格说明书(SRS)(系统需求视角):【目的】开发团队与项目干系人对系统有一个初始的、共同的理解。【注意】任何规模和性质的软件项目都不应缺少SRS。
12、需求验证与确认:一般通过需求评审(技术评审)和需求测试工作进行验证(需求的遗漏、错误等)。
13、UML(建模语言):一种可视化的【建模】语言,但【不是程序设计语言】,适用于各种软件开发方法及各个生命周期阶段。
14、UML(建模语言)-【类之间】的关系:
ü 依赖关系:A变化则B变化(例如课程与学生);
ü 关联关系:参与者与用例之间的关系(例如学生与选课);
ü 泛化关系:一般与特殊之间的关系(特殊继承一般,一般是特殊的泛化);
ü 实现关系:将说明和实现联系起来【接口】(例如通过高级考试,但证书不同);
ü 共享聚集(聚合关系):整体和部分是可以分离的(例如教室与讲桌)
ü 组合聚集(组合关系):"部分"不能脱离"整体"单独存在(例如眼睛与张三);
15、UML(建模语言)-14种图:
ü 类图:静态视图
ü 对象图: 静态视图
ü 构件图: 静态视图;
ü 组合结构图:描述结构化类的内部结构;
ü 用例图:描述参与者和用例(关联关系),需求建模(应用场景)【静态视图】;
ü 顺序图(交互图(动态视图)):强调消息的时间次序;
ü 通信图(交互图(动态视图)):强调收发消息的对象或参与者的结构组织(关系);
ü 定时图(交互图(动态视图)):强调消息跨越不同对象或参与者的实际时间;
ü 状态图:一个状态到另一个状态的流程,需要外部事件触发【动态视图】;
ü 活动图:强调对象间的控制流、数据流【动态视图】;
ü 部署图:静态视图;
ü 制品图:静态视图;
ü 包图:静态视图;
ü 交互概览图:活动图+顺序图的混合物
16、5种视图
ü 逻辑视图【设计视图】:类图、对象图等
ü 进程视图【进程和线程】:状态图、活动图,交互图等
ü 实现视图【文件和构件】:构件图
ü 部署视图【映射和分布】:部署图
ü 用例视图【需求分析】:用例图
三、软件设计(P138)
17、软件设计-结构化设计:
ü 一种面向数据流的设计方法,是以SRS和SA阶段所产生的DFD和数据字典等为基础,自顶而下、逐步求精和模块化,遵循原则【高内聚,低耦合】;
ü 概要设计,形成软件的模块结构图(系统结构图);
ü 详细设计,包括输入输出、处理流程、数据存储、用户界面等设计。
18、软件设计-面向对象设计:常用的OOD原则
ü 单职原则,功能单一【高内聚原则】
ü 开闭原则,对扩展功能开放,但不能修改
ü 李氏替换原则,子类可以扩展父类功能,但不改变原有功能
ü 依赖倒置原则,针对接口编程,不针对实现编程
ü 接口隔离原则,多个专门的接口比单一的总接口要好
ü 组合重用原则,尽量使用组合,而不是继承关系达到重用
ü 迪米特原则(最少知识法则),应当对其他对象尽可能少的了解【低耦合原则】。
19、软件设计-面向对象设计:设计模式
ü 前人经验的总结,人们可以方便地复用成功的软件设计;
ü 处理范围:类模式【静态关系】、对象模式【更具动态性】;
ü 目的用途:创建型模式、结构型模式、行为型模式。
四、软件实现(P140)
20、软件实现-测试方法:
静态测试:【程序不在机器上运行的测试】,包括桌前检查(单人)、代码走查(开发人员向他人阐述)、代码审查(同行评审)。可以发现大约30%-70%的错误。
动态测试:【程序在机器上运行的功能测试】,一般采用白盒测试和黑盒测试;白盒测试,主要用于软件单元测试,最常用的技术是【逻辑覆盖】;黑盒测试(又称功能测试),主要应用于集成测试、确认测试和系统测试。
五、部署交付(P142)
21、部署交付-(持续)部署:
部署技术(容器):常用持续部署方案【Kubernetes+Docker和Matrix】。
部署方式:蓝绿部署【部署时准备新旧两个部署版本】;金丝雀部署【新版本试用,如无问题则部署】。
六、过程管理(P144)
22、过程管理(CSMM)软件过程成熟度模型(能力域及其子域(图5-1)):治理、开发与交付、管理与支持、组织管理。
23、(CSMM)软件过程成熟度等级:
【1级】初始级:没有完整管理规范,依赖于个人主动性和能力;
【2级】项目规范级:管理规范
【3级】组织改进级:【持续改进】组织标准过程和资产;
【4级】量化提升级:使用统计分析技术,在制定业务战略时可获得数据支持;
【5级】创新引领级:创新手段实现软件过程能力的持续提升,引领行业发展。
由科科过软考培训根据课程讲义整理。
第二部分:思维导图