是记录过程,我不保证其正确性
思维导图
净室软件工程
在形式化开发中有所提及,了解一下就行,选择题
是软件开发的一种形式化方法
- 使用
盒结构规约进行分析和建模
知道黑盒测试与白盒测试吧,就是盒结构的一种
- 正确性验证排除错误
即用一些数学的工具来验证排除错误
- 统计测试
- 质量控制
软件重用与逆向工程
大概率是选择题,你留一个印象就行
软件重用
我自己地理解:重用即重复地使用
在软件开发过程中重复的使用相同或类似软件元素的过程。
软件元素包括以下内容
- 需求分析文档
- 设计过程
- 设计文档
- 程序代码
- 测试用例
- 领域知识
分类
- 横向重用:不同应用领域中的软件元素,例如数据结构,分类算法和人机界面构件等等,就比如函数库,每个语言都有自己地函数库
- 纵向重用:即在一类具有较多公共性地应用领域之间进行软件重用
就比如支付组件,这个你电商、医疗、保健领域都要用
逆向工程
英文名: 了解一下 举一个例子即你买来一部手机,拆开看看有什么东西,怎么拼起来来的,然后自己山寨一个
四个步骤
- 重构 ,这个官方解释是指在同一抽象级别上转换系统描述形式。说人话重新构造
- 设计恢复,借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面的信息,说人话就是借助工具抽象出来数据结构是怎么设计的,总体怎么设计的
- 再工程,即修改或重构已有的系统,产生系统的一个新版本,包括逆向工程、新需求的考虑过程和正向工程
正向工程是再工程的一部分
- 正向工程 从现有系统中恢复设计信息,而且使用该信息去改变或重构现有系统,以改善其整体质量。
四个层次
实现级别最低,领域级别最高
实现级别,即汇编语言那一层次,官方解释是抽象的语法树,符号表,过程的设计表示结构界别,若是Java,就是用了哪些变量,等等。
官方解释:反映程序分量之间相互依赖关系的信息,如调用图、结构图、程序和数据结构。
功能级别,就是类方法之间的调用关系,官方解释反映程序段功能及程序段之间关系的信息,如数据和控制流模型。领域级别,反映程序分量或程序实体与应用领域概念之间对应关系的信息,如E-R图
逆向工程的完备性:某一个抽象层次上提供信息的详细程度描述
抽象层次越高完备性越低,通过逆向工程恢复的难度越大,抽象层次就是上面的那四个层次