1.软件工程由方法,工具和过程3个部分组成。
2.质量功能部署(QFD):将用户要求转化成软件需求的技术,软件需求分为三类:常规需求、期望需求、意外需求。
3.结构化分析(SA)方法其建立模型的核心是数据字典。包括:实体关系图(E-R图)表示数据模型;数据流图(DFD)表示功能模型,状态转换图(STD)表示行为模型。
4.OOA的基本原则主要包括抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制和行为分析。
5.需求规格说明书(SRS) 是在需求分析阶段需要完成的文档,
6.结构化设计(SD)是一种面向数据流的方法,其目的在于确定软件结构。它以SRS和SA阶段所产生的DFD 和 数据字典等文档为基础,是一个自顶向下,逐层分解,逐步求精和模块化的过程。
7.系统结构图:NS图,PAD图(比流程图更直观,反应自顶向下的历史和过程)
8.常用的00D原则包括
●单职原则: 一个类应该有且仅有一个引起它变化的原因,否则类应该被拆。
●开闭原则:对扩展开放,对修改封闭。当应用的需求改变时,在不修改软件实体的源代码或者二进制 代码的前提下,可以扩展模块的功能,使其满足新的需求。
●里氏替换原则:子类可以替换父类,即子类可以扩展父类的功能,但不能改变父类原有的功能。
●依赖倒置原则:要依赖于抽象,而不是具体实现;要针对接口编程,不要针对实现编程。
●接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
●组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
●迪米特原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。其目的是降低类之间的耦 合度,提高模块的相对独立性。
9.UML中的关系
(1)依赖:是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
(2)关联:是指一种对象和另一种对象有联系。
(3)泛化:是一般元素和特殊元素之间的分类关系,描述特殊元素的对象可替换一般元素的对象。
(4)实现:将不同的模型元素(例如,类)连接起来,其中的一个类指定了由另一个类保证执行的契约。
10.版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置 管理的核心思想之一
11.软件测试方法可分为静态测试和动态测试。
静态测试:桌前检查,代码走查和代码审查
动态测试:白盒测试和黑盒测试方法
12.白盒测试方法是从程序结构方面出发对测试用例进行设计,主要 用于检查各个逻辑结构是否合理,对应的模块独立路径是否正常,以及内部结构是否有效,包括控制流测试, 数据流测试和程序变异测试等。另外,使用静态测试的方法也可以实现白盒测试。例如, 使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。
13.软件测试可分为单元测试,集成测试,确认测试,系统测试,配置项测试和回归测试等类别。
14.持续部署原则
●部署包全部来自统一的存储库;
●所有的环境使用相同的部署方式;
●所有的环境使用相同的部署脚本;
●部署流程编排阶梯式晋级,在部署过程中要设置多个检查点, 一旦发生问题可有序地进行回滚操作;
●整体部署由运维人员执行:
●仅通过流水线改变生产环境,防止配置漂移;
●不可变服务器;
●部署方式采用蓝绿部署或金丝雀部署
15.部署一个可工作的软件,而是部署一套可正常运行的环境。
16.完整的镜像部署包括3个环节:Build-Ship-Run。
●Build:跟传统的编译类似,将软件编译形成RPM包或者Jar包;
●Ship:将所需的第三方依赖和第三方插件安装到环境中;
●Run:就是在不同的地方启动整套环境。
17.部署方式:蓝绿部署和金丝雀部署
蓝绿部署是指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新 版本中,当出现问题的时候,可以快速地将用户环境切回旧版本,并对新版本进行修复和调整。
金丝雀部署是指当有新版本发布的时候,先让少量的用户使用新版本,并且观察新版本是否存在问题, 如果出现问题,就及时处理并重新发布,如果一切正常,就稳步地将新版本适配给所有的用户。
18.软件过程能力成熟度CSMM