软件构造学习笔记-第三周

本周介绍了软件开发的几种模型,并重点介绍了Git。Git是分布式版本控制系统,可以通过SSH key建立远程与本地的连接,通过Git Bash中的命令进行文件的上传和下载。对于这门课程,Git的主要作用就是向TA提交实验代码。

软件开发生命周期模型

1.软件开发生命周期模型:从0到1
软件生命周期中的多版本:从1到n
2.软件是具有“生命”的,具有年龄(被制造和使用的时间)、活力(在特定时间的受欢迎程度)等。我们期望软件具有长寿命并保持活力,但是存在许多问题。比如开发的失败,运行时出错,软件功能老化等。

传统的软件开发模型

1.两个基本种类:线性和迭代性
2.目前存在的模型:瀑布型(线性且不迭代)、递增型(不迭代)、V型、原型(迭代)、螺旋型(迭代)
3.考虑的核心问题:用户参与、开发的效率、项目管理复杂度、软件质量
4.瀑布型
在概念、启动、分析、设计、构建、测试、实现和维护的各个阶段稳步向下流动(就像瀑布一样)。易于使用,但事后的改变代价高昂。

2.递增型
软件完成之前,递增地被设计、补充和测试。在这种模型下,系统被分层许多小的开发项目,然后合并生成最终的系统。首先处理最高优先级要求,一旦增加的部分被开发出来,一部分的需求就被冻结了。

3.V型
瀑布型的扩展。编码阶段结束后,处理步骤向上弯曲,呈现V形,而不是瀑布模型的线性模式。下图展示了开发生命周期的每个阶段与其相关测试阶段之间的关系。

4.原型
软件原型是创建软件应用程序原型的活动,即正在开发的软件程序的不完整版本。原型通常和最终版本存在差别。优点是开发者可以在开发最终版本的过程中获得用户反馈,并能根据反馈进行开发策略的调整。

5.螺旋型
是一种风险驱动的软件开发模型。基于给定项目的独特风险模式,螺旋模型指导团队采用一个或多个过程模型的元素,如增量、瀑布或进化原型。

敏捷开发

它提倡适应性规划、渐进式发展、早期完成和持续改进,并鼓励快速灵活地应对变化。它提倡流程和工具上的个人和交互、工作软件代替文档、合同谈判中的客户协作、按照计划应对变化。强调极端用户参与、极小的迭代。

软件配置管理和版本控制

1.软件配置管理的任务是跟踪和控制软件的变化。软件的任何组成部分(源代码、数据、文档、硬件、各种环境)都可以随着软件生命周期的时间而更新。

2.软件版本控制是将唯一版本名或唯一版本号分配给计算机软件唯一状态的过程。在给定的版本号类别(主版本号、次版本号)中,这些编号通常按递增顺序分配,并与软件的新开发相对应。

3.版本控制分为:本地版本控制系统、集中式版本控制系统、分布式版本控制系统
4.版本控制的作用:回溯到之前版本、比较两个不同的版本、将完整版本历史记录推送到另一个位置、合并同一早期版本的分支版本、多个开发人员之间的通信和共享/合并工作等
5.版本控制术语
Repository:项目中版本的本地或远程存储
Working copy:我们可以处理的项目的本地可编辑副本
File:我们项目中的一个文件
Head:当前版本

有关Git

1.对于Git的学习,非常推荐的一个教程:
Git教程 -廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/896043488029600
2.Git常用命令

3.每个文件都术语下列三种状态之一:已修改(工作目录中的文件与git存储库中的文件不同,但不在暂存区域中)、暂存(文件已修改并已添加到暂存区域)、提交(文件在工作目录和git目录中保持相同)。

4.每个提交都是整个项目的快照,Git用树节点表示它。对于任何大小合理的项目,大多数文件在任何给定的修订中都不会更改。存储文件的冗余副本是浪费,所以Git不会这样做。相反,Git对象图存储单个文件的每个版本一次,并允许多个提交共享该副本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

log4net直切ElasticSearch,小步快跑首选

很多小步快跑的公司,开发人员可能就3-4个,面对巨大业务压力,日连夜的赶着上线,快速试错,自然就没时间搭建一些基础设施,比如说logCenter,但初期项目不稳定,bug又多,每次都…

软件构造学习笔记-第四周

本周重点介绍了mutable和immutable的概念,有些抽象。对于immutable的数据类型来说,想修改其引用指向的值,必须使其指向新的内存区域,而不能在原有的内存区域做修改。mutable数据类型相反,可以在原来指向的内存区域进行…

壹佰文章总结| 关于ASP.NETCore的分享之路

公众号不让放外网链接,点击【阅读原文】,去我的博客园,可以看对应的详细文章。(关于学习ASP.NET Core需要了解和掌握的知识点图)一言不合就来图,各位博客园小伙伴大家好,感觉好久没有写文章了&a…

软件构造学习笔记-第五周

本周讲了AF、RI、Safety from rep exposure、spec等概念。这些是辅助程序设计的重要部分,需要在代码中以注释的形式体现,可以显著提高代码可读性,明确设计的目的。必须要养成写的习惯!!! 设计规约 1.规约…

EFCore之SQL扩展组件BeetleX.EFCore.Extension

EFCore是.NETCore团队开发的一个ORM组件,但这个组件在执行传统SQL的时候并不方便,因此BeetleX.EFCore.Extension的设计目的是让EFCore执行传统SQL更简单方便。引用在使用组件之前需要引用它,可以通过以下地址获取最新版本https://www.nuget.o…

软件构造学习笔记-第六周

这周的重点是重载和重写。重载要求两方法的签名必须不同,而重写则要求两方法的签名必须相同。重载可以发生在同一个类中,也可以发生在父类和子类中;重写必须发生在父类和子类中。接口/抽象类不具有构造方法,只有将内部的抽象方法全…

云原生时代,.NET5必将称王!

“ 随着互联网持续高歌猛进,相关技术名词也是层出不穷。微服务、容器化、DevOps、ServerLess、FaaS,这两年最火的,当属云原生Cloud Native!当下大部分企业还在追逐微服务架构落地,而下一代的架构云原生已如火如荼。程序…

软件构造学习笔记-实验2

P1 1.设计目标 首先对图的ADT进行两种实现(从边和顶点出发),然后选择一种实现的ADT,根据输入的文件构建语料库,再利用构建的语料库,对输入字符串进行插入操作,并返回修改后的字符串。 2.有关AF…

海棠读社小程序研发(.Net Core版)

今天这篇博文是介绍海棠读社小程序开发的技术博文,由于博主是技术出身,开发过小程序和公众号,所以从决定做海棠读社开始就写代码了。因为只有技术和文化相结合,更能使传统文化大放异彩,更好地传播、讲好中国故事。漓江…

软件构造学习笔记-第七周

本周只有一节课,内容较少。对于不可变类型的相等比较,需要重写equals和hashCode方法,实现观察等价性。对于可变类型,不建议重写以上两方法,按照默认比较方式(比较内存地址)即可。 可变类型的相…

asp.net core监控—引入Prometheus(五)

上一篇博文中说到Prometheus有四种指标类型:Counter(计数器)、Gauge(仪表盘)、Histogram(直方图)、Summary(摘要),并且我们做了一个Counter的Demo&#xff0c…

软件构造学习笔记-第八周

本周重点是Liskov可替换原则。它要求父类和子类的行为一致性,子类要有更强的不变量、更弱的前置条件、更强的后置条件。在该原则的要求下,每个子类都可以对父类进行替换。这在开发过程中会带来极大的便利,在实验3中学习并运用该原则。 有关复…

C# 中的只读结构体(readonly struct)

翻译自 John Demetriou 2018年4月8日 的文章 《C# 7.2 – Let’s Talk About Readonly Structs》[1]在本文中,我们来聊一聊从 C# 7.2 开始出现的一个特性 readonly struct。任一结构体都可以有公共属性、私有属性访问器等等。我们从以下结构体示例来开始讨论&#x…

软件构造学习笔记-第九周、第十周

因为本周五开始五一假期,所以只有一节软件构造课。因为内容还属于创建模式、结构模式、行为模式。将该堂课的内容整合到本博客中。本周的重点是程序开发模式,在写代码之前首先充分考虑采用哪种模式更有利于开发、维护。采用合适的设计模式帮助理清思路&a…

回顾 | 使用Visual Studio Code进行端到端应用程序开发

点击蓝字关注我们,获得更多课程吧~微软Reactor 为帮助广开发者,技术爱好者,更好的学习 Python,数据科学,机器学习,AI,区块链等技术,将每周三到周六,组织 3~5 场线上分享活…

软件构造学习笔记-第十一周

本周的内容是,比较各个设计模式的区别和联系,并介绍了状态模式和备忘录模式,以及正则表达式。正则表达式用于对文本文件的处理。在实验3中有一项要求是对输入文本进行解析,构造航班。要求表达式不仅要读入合法数据,还要…

实现 OutOfMemory​

通过代码实现 OutOfMemoryIntro来尝试写一个发生 OutOfMemoryException 的代码吧,开启煞笔代码第三篇 —— OutofMemoryOutOfMemoryOutOfMemory 顾名思义就是内存不足,在 .NET 中当内存不足的时候就会抛出 OutOfMemoryException 的异常。想要触发 OutOfM…

软件构造学习笔记-实验3

本次实验要求从五项要求(航班管理、高铁车次管理、操作系统进程管理、大学课表管理、学习日程管理)里完成三项要求,并且尽量实现复用。 面向可复用性和可维护性的设计:PlanningEntry 1.首先设计一个类CommonPlanningEntry来实现…

用 Span 对 C# 进程中三大内存区域进行统一访问 ,太厉害了!

一:背景 1. 讲故事前段时间写了几篇 C# 漫文,评论留言中有很多朋友多次提到 Span,周末抽空看了下,确实是一个非常????????的新结构,让我想到了当年的WCF,它统一了.NET下各种零散的分布式技术&#…

福利 | 全网疯传免费领,一整套算法课程,拿走不谢!

算法对于程序员而言,到底有多重要,这已经是一个老生常谈的话题了。我看过很多有潜力且非常努力的程序员,在进阶高级工程师或架构师的路上,栽在了“算法”上,说实话,我并不意外。如果说得功利和实际一些&…