在学习完软件构造的第二章内容后,鉴于有个写博客的机会,准备对第二章软件构造课程所讲述内容进行一些简单的总结,笔者水平属实有限,有不当之处请尽情指出。
总的来说,第二章内容并不复杂,主要讲述了软件开发过程中的生命周期以及配置管理,介绍了一些软件构造的系统和工具,下面我将从这两个方面进行一些阐述:
1.软件生命周期与配置管理:这一节中主要阐述的是一些传统软件开发过程模型和敏捷开发,并且以Git为例介绍了配置管理工具。
(1)传统软件开发过程模型:总的来说分为两种模式,分别为线性过程和迭代过程,线性过程主要指从设计分析完成代码到完成测试最后交付软件整个一条龙完成的方式,而迭代过程却是在以上过程中不断迭代回去进行修改最后完成软件。
a.瀑布模型:线性整体推进,每个阶段都划分非常清楚,没有迭代过程,但是缺点是无法适应需求的改变。
b.增量模型:将整个产品分成不同的分量,也是线性的推进,不过是多个瀑布的串行进行,虽然还是没有迭代,但由于任务的分开,导致比较容易的适应需求的增加。
c.v模型:是瀑布模型的扩展,强化测试。不是以线性方式向下移动,而是在编码阶段之后向上弯曲工艺步骤,以形成典型的V形。展示开发生命周期的每个阶段与其相关测试阶段之间的关系。水平轴和垂直轴分别表示时间或项目完整性(从左到右)和抽象级别(最粗糙的抽象最粗)。
d.原型法(迭代):迭代:开发出来之后由用户试用/评审,发现问题反馈给开发者,开发者修改原有的实现,继续交给用户评审。循环往复这个过程,直到用户满意为止。时间代价高,但开发质量也高。其实主要是首先将开发出的界面给用户检查是否符合需求,不断迭代修改直到满足需求为止。
e.螺旋模型:是一种风险驱动的过程模型,多轮迭代基本遵循瀑布模式,每轮迭代有明确的目标,遵循“原型”过程,进行严格的风险分析,方可进入下一轮迭代。
(2)敏捷开发:通过快速迭代和小规模的持续改进,以快速适应变化,在每次迭代只助理一个小规模增量,文档在此不再重要,与客户的不断够偶同合作和对变化的响应成为主流。
(3)Git:
Git存储库有三个部分:
– .git目录(存储所有版本控制数据的存储库)
– 工作目录(本地文件系统)
– 临时区域(内存中)
?每个文件属于以下三种状态之一:
– 已修改(工作目录中的文件与git存储库中的文件不同,但不在暂存区域中)
– 分阶段(文件已修改并已添加到临时区域)
– 已提交(文件在工作目录和git目录中保持相同)
2.软件构造的系统和工具:
(1)语言:从用途上划分:编程语言如C、C++、Java、Python等,建模语言如UML,配置语言如XML,构建语言如XML。
从形态上划分:基于语言学的构造语言,基于数学的形式化构造语言,基于图形的可视化构造语言。
(2)集成开发环境:实验主要建议ecilpse。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!