软件构造笔记 2.2 Process, Systems, and Tools of Software Construction

1.软件构造过程(Design-> Programming -> Debug -> Testing-> Build -> Release)

编码(Programing)

从用途上划分

Programminglanguages  编程语言(e.g., C, C++, Java,Python)

Modelinglanguages 建模语言  (e.g., UML)

Configurationlanguages 配置语言 (e.g., XML)

Build languages构建语言(e.g., XML)

从形态上划分

Linguistic-based基于语言学的构造语言

Mathematics-based基于数学的形式化构造语言 (formal)

Graphics-based基于图形的可视化构造语言(visual)

代码评审(Review and static code analysis)

方法有:结对编程;走查;正式评审会议;自动化评审。

动态分析(Dynamic code analysis / profiling):要执行程序并观察现象、收集数据、分析不足,对代码的运行时状态和性能进行度量,发现代码中的潜在问题

测试和调试(Debuggingand Testing)

测试:发现程序是否有错误

调试:定位错误、发现错误根源

重构(Refactoring):在不改变功能的前提下优化代码。

2.狭义的软件构造build

粗略理解build:build-time -> run-time

借助于工具,将软件构造各阶段的活动“自动化”:(编译、打包、静态分析、测试、生成文档、部署、...)尽可能脱离“手工作业”,提高构造效率。


软件构造笔记 2.2 Process, Systems, and Tools of Software Construction