程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

【学习笔记】第5章第1节:软件工程(P129~144)

balukai 2025-02-26 10:53:16 文章精选 7 ℃

软考高项:信息系统项目管理师第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级】创新引领级:创新手段实现软件过程能力的持续提升,引领行业发展。


由科科过软考培训根据课程讲义整理。

第二部分:思维导图

最近发表
标签列表