vlambda博客
学习文章列表

软件评测师写作专栏之敏捷开发方法和数据流图22

各位学员大家好,大家在学习软件工程知识时,会涉及到敏捷开发方法和数据流图等知识。为了让大家快速掌握这方面的知识点,接下来就带领大家一起来学习一下!


例题1:以下关于极限编程(XP)的叙述中,正确的是( 1 )。XP的12个最佳实践,不包括( 2 )。

1、A、XP是激发开发人员创造性、使管理负担最小的一组技术

   B、每一个不同的项目都需要一套不同的策略、约定和方法论

   C、多个自组织和自治小组并行地递增实现产品

   D、有一个使命作为指导,它设立了项目的目标,但并不描述如何达到这个目标

2、 A、重构  

B、结对编程  

C、精心设计  

D、隐喻


【昊洋详解】:本题考查敏捷开发方法的基础知识。

常见的敏捷开发方法包括以下四种:

极限编程XP:ExtremeProgramming,简称XP,是由KentBeck在1996年提出的。极限编程是一个轻量级的、灵巧的软件开发方法,同时它也是一个非常严谨和周密的方法。极限编程是激发开发人员创造性、使得管理负担最小的一组技术。核心价值观是沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage)、谦逊(Modesty)。XP的12个最佳实践为:

1)、简单设计:为明确的功能进行最优的设计,不考虑未来可能需要的功能。

2)、测试先行(测试驱动开发):先写测试,后写代码。

3)、重构:不断优化系统设计,使之保持简单。

4)、结对编程:系统的每一行代码都是两个人用一个键盘完成的。

5)、集体代码所有制(代码集体所有权):开发队伍中任何人可以修改任何其他人的代码,代码不属于某个个人。

6)、持续集成:至少每天将整个系统集成一次,保持一个能运转的系统。

7)、每周工作40小时(每周40小时工作制):保证休息,保持体力。

8)、现场客户(客户测试):客户自己也是软件开发队伍的重要一份子。

9)、编码标准:必须有统一的编码规范,确保代码的可读性。

10)、规划策略(计划游戏):计划是持续的、循序渐进的。每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。

11)、小型发布(小版本发布):尽快发布,尽早发布。

12)、隐喻(系统隐喻):将整个系统联系在一起的全局视图;它是系统的未来影像,是它使得所有单独模块的位置和外观变得明显直观。如果模块的外观与整个隐喻不符,那么你就知道该模块是错误的。

 

水晶法Crystal:由Alistair Cockburn在20世纪90年代末提出。他把开发看做是一系列的协作游戏,而写文档的目标是帮助团队在下一个游戏中取得胜利。水晶方法的工作产品包括用例、风险列表、迭代计划、核心领域模型,以及记录了一些选择结果的设计注释。水晶方法也为这些产品定义了相应的角色。值得注意的是这些文档没有模板,描述也不太规范,但目标清晰,能够满足下次游戏开始的条件。水晶法认为每—个不同的项目都需要一套不同的策略、约定和方法论。


并列争球法(scrum):在Scrum的工作方式下,总共只有三个角色, 这三个角色分别是产品负责人(PO),Scrum Master和开发团队。Scrum的开发团队对实现Sprint目标需要做的所有事情负责,包括技术方案和决策,团队分工(谁做什么),执行Sprint开发任务等,而且作为自组织的团队,他们也对他们的工作进度的跟踪和管理负责。scrum使用迭代的方法,其中把每30天一次的迭代称为个冲刺, 并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。


自适应软件开发(ASD)有六个基本的原则:

1)、在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但不描述如何达到这个目标;

2)、特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征;

3)、过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中;

4)、变化不视为是一种更正,而是对软件开发实际情况的调整;

5)、确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求;

6)、风险也包含其中,它使开发人员首先跟踪最艰难的问题。

综上所述,第一空中,选项A描述的是极限编程XP,选项B描述的是水晶法Crystal,选项C描述的是并列争球法(scrum),选项D描述的是自适应软件开发(ASD)的第一个原则。故第一空的正确答案为A。

第二空中,C选项的精心设计显然是错误的,极限编程的最佳实践之一是简单设计。故第二空的正确答案为C。

 

例题2:对某商店业务处理系统采用数据流图(DFD)进行功能建模,其中“检查订货单”是其中一个( 1 )。由于在进行订货单检查时,需要根据客户的欠款情况、订单金额等多个条件判断是否采取发出催款单、准备货物、发出发货单等行为,此时适合采用(2 )进行描述。

1、 A、外部实体  

B、加工       

C、数据流     

D、数据存储

2、 A、流程图       

B、决策树  

C、伪代码     

D、程序语言代码

 

【昊洋详解】:本题考查结构化分析方法中数据流图的基础知识。

数据流图:Data Flow Diagram,简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。


数据流程图中有以下几种主要元素(下面的名称的斜杠前面表示图示):

→/数据流:数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。


□/数据源或宿(“宿”表示数据的终点):代表系统之外的实体,可以是人、物或其他软件系统。


○/对数据的加工(处理):加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。描述加工的方式有决策树(判定树)、决策表(判定表)和结构化语言。


〓/数据存储:表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。


综上所述,“检查订货单”表示了对数据检查处理,是一个加工,故该题目的第一空正确答案为B。

描述加工的方式有决策树、决策表和结构化语言。由于在进行订货单检查时,需要根据客户的欠款情况、订单金额等多个条件判断是否采取发出催款单、准备货物、发出发货单等行为,所以采用决策树刚好可以解决分支判定的问题,故该题目的第二空的正确答案也为B。

 

巩固练习题

(1)银行系统数据流图中,某个加工根据客户的多个不同属性的值来执行不同的操作,则对该加工最适宜采用(  )描述。

A、结构化语言 

B、判定表 

C、自然语言 

D、流程图

 

(2)以下关于数据流图的叙述中,不正确的是(  )。

A、每条数据流的起点或终点必须是加工

B、应该保持父图与子图平衡 

C、每个加工必须有输入数据流,但可以没有输出数据流

D、应该画出数据流而不要画控制流

 

 

练习题参考答案

(1)解析:本题考查结构化分析方法中数据流图的基础知识。

数据流图中描述加工的方式有决策树(判定树)、决策表(判定表)和结构化语言。

结构化语言是一种介于自然语言和形式化语言之间的半形式化语言,并没有严格的语法。其结构通常分为内层和外层,外层用来描述控制结构,采用顺序、选择和循环三种基本结构,而内层可以用接近自然语言的描述。在加工的一组动作依赖于多个逻辑条件的取值时用自然语言和结构化语言不易清晰表达,而判定树和判定表则可以很好的表示。自然语言具有二义性,不适合用来描述加工。流程图不用于描述加工。

故该题目的正确答案为B。

 

(2)解析:本题考查结构化分析方法中数据流图的基础知识。

数据流图是结构化分析方法的重要模型,用于描述系统的功能、输入、输出和数据存储等。在绘制数据流图中,每条数据流的起点或者终点必须是加工,即至少有一端是加工。在分层数据流图中,必须要保持父图与子图的平衡。每个加工必须既有输入数据流又有输出数据流。必须要保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。

故该题目的正确答案为C。


写于2020年9月24日

版权所有,侵权必究