思考题讲课教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

思考题:

1、软件项目开发首先要做的事是什么?

答:首先要做的事软件需求分析,它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。

2、你认为该软件应具备的最重要的特性是什么?

答:方便用户使用,功能界面友好,考虑各种特殊情况,有效避免发生异常。

3、你认为怎样分工是最合理的?

答:为保障软件工程的顺利实施,建立合理的角色管理体系是整个软件工程管理中一个重要的方面。我们采用角色分工的方法,首先划清角色职责,在具体的项目实施过程中为每位成员分配角色(根据项目规模和人员情况,可以一人兼多个角色和多人充当一个角色),以保证项目开发过程的各个环节责任明确、分工到人。角色数量与公司规模和项目规模有关,一般设置为项目经理、需求分析工程师、系统设计工程师、高级软件工程师、软件编码工程师、测试设计工程师、测试工程师、软件支持工程师8个角色。

通过划分软件工程角色,可以根据技术员的技能安排相关的任务,可以有目的的培训或招聘相关技能的人才,可以有重点的稳定高级人才,防止人员流动带来的风险。我有什么类型的业务,我就需要什么样的人,而不是,我有什么样的人,我就做什么样的业务。如果没有明确的角色划分,就没有合理的职责分配,一个人几乎什么都需要掌握(学习是有成本的),当他达到一定的水平之后,自然就追求更高的待遇,他具备高级软件工程师的水平,但我们更需要程序员,我们应该提供什么样的待遇呢?我们需要什么样的人,我们就提供什么样的待遇。

在传统的项目小组中,我们往往安排技术高超、经验最丰富的程序员做项目经理,这是一个误区,技术高超、经验丰富的人应该做系统分析和设计,他是技术专家,这是他的特长,项目经理应该是一个管理、协调和客户关系专家,有时,二者可以是一个人,但决不是一个角色,在大的项目中,二者更应当分开。技术人员一般不善于处理客户关系,很多项目的失败就是因为客户关系处理不好造成的。

一个人到底是什么角色,是在项目中根据项目特点和个人技能临时确定的,并不一定代表一个人的能力和未来,是因事就人,而不是因人就事。

思考题:

1、软件项目计划主要完成什么工作?

答:软件项目计划主要完成如下工作:

1.确定范围

对该软件项目的综合描述,定义起所要做的工作以及性能限制,它包括:

(1)项目目标;(2)主要功能;(3)性能限制;(4)系统接口;(5)特殊要求;(6)开发概述。

2.分配资源。

(1)人员资源;(2)硬件资源;(3)软件资源;(4)其他。

3.进度安排。

进度安排的好坏往往会影响整个项目的按期完成,因此这一环节是十分重要的。制定软

件进度与其他工程没有很大的区别,其方法主要有:

(1)工程网络图;(2)Gantt图;(3)任务资源表;(4)成本估算;(5)培训计划。

2、你认为项目开发计划中的最重要的问题是什么?

答:在项目开发流程中,影响项目成败的关键因素是需求分析和系统设计,需要由经验丰富的技术人员从事,但公司中具有这种技能的人往往不够,导致项目小组中无法进行职责分配,往往大家一块去调研、一块做设计、一块做编码,导致需求和设计风险较大、开发效率较低、开发成本较高,软件质量得不到保证。鉴于这种情况,我们可以成立软件工程小组、技术支持小组和客户服务小组三个可复用的组织,他们分别从事不同的工作,由不同技能的人组成,一个人可以参与多个组织。它们都为项目小组服务,并安排人员参与不同的项目小组,提供不同的技能,在某一方面可以做的更好。一个项目小组一般由软件工程小组和客户支持小组的部分成员,以及几名程序员临时组成,项目结束后,项目小组也随即解体。

3、你认为项目计划怎么对软件开发有意义?

答:制订软件项目计划的目的在于建立并维护软件项目各项活动的计划,软件项目计划其实就是一个用来协调软件项目中其它所有计划,指导项目组对项目进行执行和监控的文件。一个好的软件项目计划可为项目的成功实施打下坚实的基础。

软件项目有其特殊性,不确定因素多,工作量估计困难,项目初期难于制定一个科学、合理的项目计划,制定一个好的计划,可以让客户了解你的目的和客户的是不是一致,不会导致做无用功的可能。所以,制定一个项目计划对软件开发是很有意义的。

思考题:

1、需求分析在软件开发中真的有那么重要吗?

答:需求的定义包括从用户角度(系统的外部行为),以及从开发者角度(一些内部特性)来阐述需求。关键的问题是一定要编写需求文档。

需求的另外一种定义认为需求是“用户所需要的并能触发一个程序或系统开发工作的说明”。有些需求分析专家拓展了这个概念:“从系统外部能发现系统所具有的满足于用户的特点、功能及属性等”。这些定义强调的是产品是什么样的,而并非产品是怎样设计、构造的。而下面的定义则从用户需要进一步转移到了系统特性:

需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。

从上面这些不同形式的定义不难发现:并没有一个清晰、毫无二义性的“需求”术语存在,真正的“需求”实际上在人们的脑海中,这个人们主要是指客户,但一般情况下,用户并不能描述自己的需要,只就需要系统分析人员根据用户的自己语言的描述整理出相关的需要再进一步和客户核对。系统分析员和客户需要确保所有项目风险承担者在描述需求的那些名词的理解上务必达成共识。

所以,需求分析在软件开发中是必不可少的。

2、分析系统流程图,流程图和数据流图的区别和各自的特点。

答:系统流程图是在系统分析员在做系统构架阶段,或者说,在接触实际系统时,对未来构建的信息处理系统的一种描述。这种描述是相对简单且完全的,涉及到未来系统中使用的处理部件,如磁盘,显示器,用户输入以及处理过程的先后顺序表示等,标准的系统流程图应该有10种图元,具体的有国家标准。当然,系统流程图还可以用来表示现有的信息系统处理过程涉及的各个部件以及次序。系统流程图是描绘物理系统的传统工具.它的基本思想是用图形符号以黑盒子形式描述系统里面的每个部件(程

相关文档
最新文档