软考之零碎片段记录(三)

一、敏捷开发

1. 并列争求法

注:类比橄榄球中的并列争球打法。精彩刺激
注:多个自组织小组并行递增按照优先级实现产品,小组之间相互协调通过简短的日常情况会议来进行。如把30天一次的迭代成为一个冲刺来迭代产品

橄榄球中并列争球发

在橄榄球中,并列争球(Scrum)是一种特殊的争球方式,尤其在英式橄榄球中非常常见。它被认为是规模最大的争球方法。

在并列争球时,双方各出八名球员,排成三排(3-3-2)的阵型。球从双方的中间投入,然后双方以类似"顶牛"的方式争球。橄榄球的规则要求,球不能从对方后面被抢走。因此,进攻方的目标是想尽办法让对方后退,或者把球往前传,以达到快速向前推进的目的。

这种争球方式不仅考验球员的体力和力量,还需要良好的团队协作和策略规划。在并列争球的过程中,球员们需要紧密配合,通过协同努力来争夺控球权,为后续的进攻或防守创造有利条件。

总之,并列争球是橄榄球比赛中一种重要且独特的争球方式,它充分展示了橄榄球运动的激烈和精彩。

2. 极限编程

四个价值观。强调简单性、反馈、尊重和勇气这四个核心价值观

关键实践

以下是极限编程的一些关键实践:

简单设计:保持设计的简单性,避免过度设计和不必要的复杂性。通过不断重构代码,确保系统始终保持简洁和易于理解。

小步快跑:将大型项目分解为一系列小的、可管理的任务(即"用户故事")。通过迭代的方式完成这些任务,并尽快交付有价值的软件增量。

结对编程:两名开发人员共同工作在同一台计算机上,轮流担任"驾驶员"和"观察员"的角色。这种方式有助于知识共享、提高代码质量,并减少错误。

持续集成:开发人员频繁地将代码集成到共享的代码库中,并通过自动化测试来验证集成结果。这有助于及早发现问题,减少集成风险。

测试驱动开发:在编写实际功能代码之前,先编写测试代码。这有助于确保代码的正确性,并降低后期修改和重构的风险。

现场客户:邀请客户参与开发过程,以便及时反馈需求变化,确保软件能够满足客户的实际需求。

可持续开发:保持开发人员的工作节奏和精力,避免过度加班和疲劳。通过合理安排工作和休息时间,确保团队能够持续、高效地工作。

3. 水晶法

创建水晶法的目的。其目的在于发展一种提倡"机动性"的方法,这种方法包含具有共性的核心元素,每个元素都包含独特的角色、过程模式、工作产品和实践
水晶法的区名含义。水晶法之所以命名为"水晶",是因为它强调透明度和清晰性,正如水晶一样。透明水晶方法(Crystal Clear)特别适合于小团队进行敏捷开发,人数在6人以下为宜
Crystal Clear:这是Crystal家族中最简单、最基础的方法。它适用于小型、自组织团队,强调团队之间的沟通和交互,以提高软件开发的效率。Crystal Clear注重保持透明度,确保团队成员能够及时了解项目的进展和变更。

Crystal Yellow:相对于Crystal Clear,Crystal Yellow更加复杂一些,适用于稍大或更复杂的项目。它增加了更多的管理实践和角色,以应对项目中的更多挑战。Crystal Yellow同样强调团队成员之间的沟通和协作,以确保项目的顺利进行。

Crystal Orange:这种方法适用于更大规模的团队和更复杂的项目。Crystal Orange在Crystal Yellow的基础上进一步增加了管理层的角色和责任,以确保项目能够有序进行。它同样注重团队的透明度和协作,通过频繁的交流和反馈来推动项目的进展。

二、控制变量

  1. 语义上可以理解为两种:控制变量、控制->变量。
  2. 解释:可以决定使用不同功能的可变变量。例如要测试两种算法谁产生的效果更好,可以控制处算法以外的变量均不变,支队算法的选择做更改来进行测试。

三、管道-过滤器软件体系风格

这种风格的优点包括:

良好的隐蔽性和高内聚、低耦合:每个过滤器都是封装好的实体,彼此独立,降低了系统各部分之间的耦合度,提高了系统的可维护性和可重用性。

支持并发:由于每个过滤器都是单独工作的,它们可以并行处理数据,从而提高系统的处理速度。

方便维护和升级:可以随时删除旧的过滤器或添加新的过滤器,以满足系统的新需求。
然而,这种风格也存在一些缺点:

不适合处理有交互的应用:由于数据的单向流动和缺乏直接的交互机制,管道-过滤器风格在处理需要用户交互的应用时可能不够灵活。

系统性能不高:由于数据缺乏统一的标准,每个过滤器都需要进行数据转换,这可能导致大量的时间和处理能力被用于数据转换,而不是实际的业务处理。

四、白盒测试

最强覆盖:路径覆盖

复杂度:可以通过几个实例完成测试,即复杂度等于几

McCabe公式:V(G)=m-n+2,其中m和n分别代表图中的边数和顶点数。
怎样知道边的个数:

它是一个带箭头的弧线。

它连接了两个节点。

它表示了控制流的方向。

五、软件修改维护

A.改正性维护:是指修复软件系统中已知的问题或缺陷

B.适应性维护:是指对软件系统进行适应性修改,以适应变化的环境、硬件、操作系统等

D.预防性维护:是指在软件系统还没有发生实际问题之前,对可能发生问题的代码进行被动或主动的检查和改进,以预防未来可能出现的问题

C. 改善性维护:使系统易用、提升性能、效率、质量、可维护性等方面特征

六、软件测试所分层级

1. 算法层:类中方法

2. 类层:方法与属性之间相互作用

3. 模板层:类之间协同交互

4. 系统层:模板之间交互测试

七、UML序列描述

1. 共同重用

共同重用原则就是要求把经常一起使用的类放在一起,形成一个组件或包

2. 共同封闭

封闭中的功能修改不会对封闭外的功能产生影响

3. 开发-封闭

对修改封闭,对拓展开放

4. 接口分离

不强迫使用着使用他们用不到的方法。应该面向抽象编程,而不是面向具体编程

相关推荐
breaksoftware17 小时前
低代码开源项目Joget的研究——基本概念和应用
低代码
不止会JS18 小时前
软考:系统架构设计师教材笔记(持续更新中)
系统架构·软件工程·软考
算法小白(真小白)1 天前
低代码软件搭建自学第二天——构建拖拽功能
python·低代码·pyqt
码农君莫笑1 天前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
低代码布道师1 天前
从用户视角出发:用例图分析家政预约小程序
低代码·小程序
GitCode官方1 天前
GitCode 光引计划投稿|智能制造一体化低代码平台 Skyeye云
低代码·制造·gitcode
轻流Qingflow5 天前
数字化制造新生态:共话无代码+AI落地实践
人工智能·低代码·ai·轻流
Nodejs_home5 天前
创建学员信息列表页面
低代码
夏子曦5 天前
低代码开发
低代码