第二章:软件建设的过程和工具
第二节:软件构建的过程、系统和工具
问题一:广义的软件构造过程
:Programming(coding)(编码)–>Build(构建)–>Code review Static code analysis(代码评审)–>
Dynamic code analysis /profiling(性能分析)–>Testing(测试)–>Debugging(调试和测试)–>Refactoring(重构)
问题二:各个阶段的叙述及其相关概念
1.Programming编码
- Programming languages(e.g., C, C++, Java, Python)编程语言
编程语言的工具:Integrated development environment (IDE)(集成开发环境): comprehensive facilities to programmers for software development. (such as Eclipse)
- Modeling languages 建模语言(e.g.,UML)
含义:建模语言是一种人工语言,它常用来表达信息或者知识或者系统。在一个由一致的规则定义的结构中,它的目的是可视化、推理、验证和交流系统的设计。
- Configuration languages 配置语言
配置文件(XML,YAML,JSON):配置文件用来配置程序的参数和初始设置
2.Build
- 典型的使用Build的场景:
(1)编写用传统编译语言编写的软件
(2)用Perl和Python等解释语言编写的软件的打包和测试
(3)基于web的应用程序的编译和打包
(4)执行unit测试,以及与代码的其余部分隔离,以验证软件的一部分
(5)执行静态分析工具,以识别程序源代码中的错误。
(6)生成PDF或HTML文档
- Build系统的组件
版本控制工具、原树、对象树、编译工具 (编译器、链接器、文件生成器)
Build工具:一个在编译工具之上级别的程序。它必须对源文件和对象文件之间的程序有足够的了解,它可以编排整个构建过程。构建工具调用必要的编译工具来生成最终的构建输出。
Build机器:编译和构建工具执行的机器
Release Packaging and Target Machines(发布包裹和目标机器)
- Build过程
含义:Build工具调用每一个编译工具来完成任务,这是一端到另一端的时间序列
示意图如下:
3.review Static code analysis(代码评审)
包括:结对编程、走查、正是评审会议、自动化评审
4.Dynamic code analysis / profiling(性能分析)
- 动态分析:要执行程序并观察现象、收集数据、分析不足
- 对代码的运行时状态和性能进行度量,发现代码中的潜在问题
5.Debugging and Testing(调试和测试)
- 测试(testing):发现程序是否有错误
- 调试(debugging):定位错误、发现错误根源
6.Refactoring(重构)
含义:在不改变功能的前提下优化代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!