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

一、敏捷开发

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. 接口分离

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

相关推荐
ChristopherKeith18 小时前
低代码表单配置平台替代普通表单配置平台,前端部分重构的设计和思路
前端·低代码·重构·vue·平台·表单
HUIBUR科技18 小时前
低代码+定制:优化项目管理的新方案
低代码·软件需求
百度Geek说18 小时前
低代码组件扩展方案在复杂业务场景下的设计与实践
低代码·npm
液态不合群18 小时前
低代码开发助力中小企业数字化转型难度持续降低
低代码
君擎1 天前
AI+若依框架(低代码开发)
低代码
任铄1 天前
2024年上半年网络工程师下午真题及答案解析
网络工程师·软考·答案·网络管理·2024·2024年上半年·下午真题
斐夷所非1 天前
优化页面加载时间
极限编程
jdyzzy2 天前
企业如何管理安全生产工作?(附模板)
安全·低代码·零代码开发·ehs
DJYOS都江堰操作系统3 天前
DJYGUI AI低代码图形编程开发平台:开启嵌入式软件图形编程新纪元
人工智能·低代码
kings3 天前
宜搭低代码开发高级认证例题1-待办列表
低代码