软件构造第二章第二节 软件构造的过程系统和工具
Posted hithongming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件构造第二章第二节 软件构造的过程系统和工具相关的知识,希望对你有一定的参考价值。
第二章第二节 软件构造的过程、系统和工具
Outline
- 广义的软件构造过程
- 编程
- 静态代码分析
- 动态代码分析
- 调试与测试
- 重构
- 狭义的软件构造过程
- 构造系统:经典BUILD场景
- 构造系统的组件
- 构造过程和构造描述
- Java编译工具
- 子目标和结构变体
- 构造工具
Notes
## 广义的软件构造过程
【编程(Coding)】
- 开发语言:如Java、C、Python
- 使用IDE(集成开发工具)的优势(组成)
- 方便编写代码和管理文件(有代码编辑器,代码重构工具、文件和库(Library)管理工具)
- 能够编译、构建(有编译器、解释器、自动构建工具)
- 结构清晰(有面向对象的类层次结构图和类浏览器)
- 有GUI界面
- 支持第三方扩展工具
- 建模语言:UML(Unified Modeling Language,统一建模语言)
- UML是用来对软件系统进行可视化建模的一种语言;
- UML的结构由一组一致的规则定义;
- 建模的目的:
- 有助于按照需求对系统进行可视化分析
- 能够理解系统的结构或行为
- 给出了构造系统的模板
- 对做出的决策进行文档化
- 更多关于UML,参考 jiuqiyuliang的博客专栏
- 配置语言:键值文件(.ini;.properties;.rc);XML,YAML,JSON
- 配置语言用于配置程序的参数和初始设置
- 目的:
- 部署环境设置
- 应用程序功能的变体
- 组件之间连接的变体
【静态代码分析】
- 定义:静态代码分析是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
- 静态分析检查的类型
- 语法错误,例如多余的标点符号或者错误的关键词。即使在动态类型的语?例如Python中也会做这种检查:如果你有?个多余的缩进,在运?之前就能发现它。
- 错误的名字,例如Math.sine(2) . (应该是 sin )
- 参数的个数不对,例如 Math.sin(30, 20)
- 参数的类型不对 Math.sin("30")
- 错误的返回类型 ,例如?个声明返回 int 类型函数 return "30”
- 注:该过程提供了对代码结构的理解,有助于确保代码符合行业标准
- 注:自动化的工具可以帮助程序员和开发人员进行静态代码分析
【动态代码分析】
- 定义:动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。
- 动态分析检查的类型:
- ?法的变量值。例如整型变量x、y,表达式x/y 只有在运?后y为0才会报错,否则就是正确的。
- ?法表?的返回值。例如最后得到的返回值?法?声明的类型来表?。
- 越界访问。例如在?个字符串中使??个负数索引。
- 使??个null 对象解引?。( null 相当于Python中的None )
- 注:必须执行足够的测试输入,使用诸如代码覆盖率之类的软件测试措施有助于确保已经观察到程序的一组可能行为的足够部分。
- 注:配置文件(“程序配置文件”,“软件配置文件”)是一种动态程序分析形式,用于度量程序的空间(内存)或时间复杂度,特定指令的使用情况,函数调用的频率和持续时间。
- 更多 关于静态\\动态检查 请查看 MIT Software Construction Reading 1
【调试与测试】
- 测试(Test)
- 狭义:程序是否正常运行、能否满足所有需求
- 广义:
- 调试(Debug):识别错误的根本原因并对其进行纠正的过程。
【重构】
- 重构它不会改变代码的外部行为,但会改进其内部结构。
- 投入短期时间/工作成本以获得长期收益,并对系统的整体质量进行长期投资。
- 重构需要保持代码正常工作,只需要用一些小步骤保留语义
- 需要进行单元测试来证明代码正常工作
## 狭义的软件构造过程
以上是关于软件构造第二章第二节 软件构造的过程系统和工具的主要内容,如果未能解决你的问题,请参考以下文章