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