软件工程实训心得体会

软件工程实训心得体会

软件工程实训心得体会一:软件工程实训心得体会

这次软件工程实训是从2010.12.26号开始的,截至2010.12.31号。实训内容是用java相关知识(主要是jsp)做一个物流配送系统。下面谈谈对这次实训的看法。

因为自己平时对java知识储备不足,特别是jsp这一块基本不了解怎么回事,所以一拿到这个项目,我心里都是没有底的,再加上我被分到的那个组,我知道就意味着是我一个人在战斗了。呵呵,26号,实训开始了,我们的老师是来自中软国际公司的程序员,一个是周褀,一个是朱映,都是一身朴素的着装,让我感觉做软件的也没什么两样。老师介绍了自己之后,就直接切入正题了,分析了下我们各个组的系统,即将用到的知识,然后就总体把觉得需要补充的知识(jsp和数据库连接等这几块)给我们实际操作了下,因为当时看到用jsp,还讲的那么认真,当时我就后悔了,平时要是多听点,现在老师这么认真的给我们讲,这是一个多么难得的机会啊。后悔也没用啊,开始还勉强能理解一点,后来就直接晕了。然后再给大家介绍了一些即将用到的工具,比如rationalRose,SVN,MyEclipse等等。接下来的几天就不再细讲了。下面谈谈通过这次实训的心得体会吧。

通过这次实训,让我了解到工程开发的过程,可行性分析——>需求分析——>概要设计——>详细设计——>代码编写——>测试——>验收。从技术方面上,我开始jsp基础基本上就是零的,在老师和syz2(另外一个物流小组,我一个人基本上是跟她们做的,或者说是看着她们做的)的帮助下,对jsp有了一个大概的认识。其实实训开始前,我还以为做个系统没什么大不了,可是当真正拿到一个项目,我却真的无从下手了,而且就是在知道需求分析和详细设计,在代码编写时,一样寸步难行。通过这个实训,也让我了解到,团队协作是多么的重要。一个人的精力是多么的有限。进一步理解到,企业为什么如此重视团队协作。同时借用老师的话就是团队协作固然重要,但是是建立在个人素质的基础上,假设你个人素质不行,将会影响到整个团队,就别提对团队作更多贡献了。**老师说这几句话的时候,朝向了我,估计是有特殊意义的吧,所以,我将谨记老师的教导。

还有一个收获是从一个同学(小胖)那里得到的,他的那组成员跟我的这组大体一样,我倒是觉得没什么了,不过他倒是很重视这个问题吧。然后他说出来,我也觉得这个问题确实其实是个大的问题。就是不管你会不会这门技术,会不会做这个东西,态度要正确才好,就算你不会做,你也应该认真的对待,将来 出身到社会,就不是说像你现在,不会做就不做,跑去玩游戏了。小胖说出了这段话,也在我身上有了一个印证,虽然我jsp技术知识为0,但我也还是在认真的跟着他们一起做,不会做,就多问,毕竟现在

我们是学生,可以毫不顾忌的询问各种问题,老师也会尽力为你回答。将来出身社会就不一样了。虽然,我就算个打酱油的水平,但是这个酱油也要打得有涵量啊。不管怎么样,我能对自己有个交待,虽然我不会,但是这次实训我确实是认真对待了,六天的实训,除了晚上加班外,还花了2个通宵来完成不同阶段的任务,完成与否也不重要了,我至少我做了,这点,是这次我应该对自己的一个肯定。

这次实训的心得基本上就是这些了,最后特别感谢中软国际带我们的那两个老师(周褀,朱映),这两个老师对待我们很平易近人,对我们提出的问题,总是不光解决了,还进行了扩展,晚上也跟我们一起加班加到很晚,印象尤其深刻就是朱映老师为了给小胖解决一个问题,脸都变红了,还在继续努力,这点我并不会觉得老师知识储备不够,我想应该是这个问题的突发吧,一时没想到怎么处理。相反让我感觉更多的就是老师很认真,很负责。还要感谢就是syz2小组的倾力支持,辅导。

>软件工程实训心得体会二:软件工程实践学习心得>>(2607字)

这学期学习了软件工程实践这门课,我觉得这是对上学期的软件工程课程学习的检验,上学期学习软件工程只是我们浅显的认识,相比之下,这学期就更加全面的说明了开发一个项目所需要的步骤以及开发项目过程中所需要注意的诸多细节。如果说上学期的课程注重理论基础的话,那么这学期的软工实践,顾名思义,就是侧重我们动手操作的能力。

原来我认为开发一个项目最重要的就是写代码,似乎整个软件都是编代码,因为自己动手能力不强所以就很排斥做项目。可是经过我们学习软工课程到团队做项目再到学习软件工程实践课程之后,我才真正意识到实施一个软件工程项目并不是说简单的会编码就能够解决问题的,因为一个软件的生命周期分为三个时期:软件定义时期、开发时期、维护时期,而这三个时期整体又分为七个阶段,他们分别是:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试,由此可看出,当我们开发一个项目时,更多的精力不是放在编码上,编码只是一个很小的模块,而是项目的整体结构上。

在写软工实践体会之前,我想在这里总结一下上学期三人团队做 项目的相关事宜。上学期我们三人团队根据软件开发的步骤开发一个名为“西大老乡‘荟’”的社交系统,主要是为西大学子提供一个找老乡的平台。虽然只进行到详细设计阶段,没有进一步实现,但是我还是从中学到很多东西的。首先要先确定项目主题,也就是这个项目用来做什么,可以解决什么问题。接着就是这个项目是否有研究的必要以及是否有解决的办法,

针对我们的项目,我们对西大的一些学生做了问卷调查,并从调查中继续完善系统本身的做用户。第三步根据我们确定的项目主题进行需求分析,这一步骤当时做的不是很好,比如所画E-R图、数据流图等都有考虑不周的问题,导致接下来的概要设计、详细设计进行的很困难,有些步骤甚至还需要返工。

从我们在需求分析中出现的问题,使我们明白了软件定义阶段对于一个项目的开发是至关重要的,当软件定义阶段完成时必须要用正式的文档准确的地记录目标系统的需求。只有前期的准备工作做得好,后面的工作才能顺利进行。虽然项目最后没有完全实现,但是起码我们已经初步体会到软件项目开发的步骤,以及每一步所需要完成的文档等内容。

这学期的软件工程实践虽然不是亲自动手开发一个系统,但是张元平老师以“物联网物流仓储管理系统”为主给我们讲解了一个真实系统的开发过程,从计划到项目系统的发布实施,以及每一步必须生成的文档。我主要从以下五个方面谈一下我的心得体会。

第一、行业背景说明方面

对于一个软件系统的开发,第一步就是问题定义,了解所开发系统的行业背景,制定计划。当我们计划确定以后就要对项目系统本身进行可行性研究,主要从技术可行性、经济可行性和操作可行性三个方面着手。就比如《物联网物流仓库管理系统》的行业背景说明文档中非常详细地分析了当下物联网物流行业的整体业务说明、应用背景、未来发展趋势以及相关应用案例等四个方面,项目团队中系统分析员就可以根据这份文档以及相关的调查资料对将要开发系统的进行定义等工作。

原来我们写这类文档的时候就是草草了事,不会做得这么详细,而这次看到大型项目的行业背景说明也是这么详细,也让自己认识到不管是软件开发的那个阶段都要认真对待,这些琐碎的文档都是后期开发项目的支撑,只要它们做的透彻,后面的开发工作才能更顺利的进行。

第二、项目需求说明方面

这部分项目需求说明就是软件定义时期中需求分析阶段,而该阶段的主要目的就是了解用户的需要,根据用户的需要确定系统必须完成那些工作,并对目标系统提出完整、准确、清晰、具体的要求。在需求分析结束之前系统分析人员要写出一份需求规格说明,即为《物联网物流仓储管理系统》项目需求说明文档。我们可以看出该文档也是非常详细,相比之下我们之前做项目时写的需求规格说明书就非常不合格,不仅格式不正确内容也是少之又少。

在这方面,这篇文档给我启发很大。首先就是文档的格式,要美观整齐,让人看着舒服方便。其次就是文档的内容,原来它不是很重要,写文档的时候也不知道怎么写就借鉴下网上的内容,结果根本就没有把自己项目的需求写明白,以至于自己最后都有些糊涂,所以根据以前的经验教训我会对这部分更加重视。

第三、系统概要设计方面

这部分内容分说的是软件设计时期的概要设计阶段,该阶段的主要目的就是实现系统的功能、设计软件的结构、模块组成以及模块之间的关系。在概要设计阶段,我们可以站在全局的高度上,花较少的成本,从抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的结构。在这个阶段还会具体画出E-R图、数据流图等方面的设计。

比如《物联网物流仓库管理系统》的系统概要设计从项目概述、设计约束、功能单元与功能模块设计、数据E-R图设计、总体设计、界面设计等六个方面介绍,通过读这个文档,我觉得最重要的还是总体设计,分别从逻辑架构设计、物理架构设计、技术架构设计设计系统。在这个阶段中模块要做到高内聚低耦合,这样开发出来的系统才会具有更高的独立性。

在原来做项目时没有编写过这类文档,在该阶段只是画了结构图、层次图以及相关的模块划分,对该类文档尚未重视。通过张老师的讲解和自己的学习,我相信在以后做项目的时候一定会注意到这类文档的编写。

第四、详细设计与分析方面

详细设计阶段就是把概要设计阶段的每个模块进一步设计,确定每个模块所需要的算法和数据结构。在这个阶段还是需要我们设计出程序的详细规格说明,而不是编写程序。在详细设计阶段,系统设计人员可以通过使用程序流程图、盒图、PAD图等过程设计的工具和Jackson图等面向数据结构的设计工具进一步设计系统相关接口,主要包括界面设计接口、业务单设计接口、单元模块设计接口等,这些对于以后的编码工作都是极其重要的。

第五、编码和测试方案方面

关于编码,我认为编码要想做的完美必备条件就是前面的软件定义和软件设计时期要按部就班的做,文档一定要按要求书写,不能偷懒也不能草草书写。对于编码也要有相应的文档书写规范,要使源程序代码的逻辑简明清晰、易读易懂。这样尽管我们不是设计系统的人员,当看到源程序代码的时候也能容易读懂代码的意思。

其次就是测试的内容,从测试的文档中我们可以得出,其实测试在软件开发中同样占据了重要的地位,它主要就是尽可能多的找到问题并排除其中的潜藏的错误,最终把一个高质量的软件系统交给用户使用。它要求测试人员也要有很高的技术水平。

>软件工程实训心得体会三:软件公司工程实训心得体会>>(1300字)

我们是20XX年3月7号进入宏天实训公司参加软件开发实训的,在此次实训中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心就由然而生,这应该就是工作的乐趣。有时候不懂的就需要问别人了,虚心请教,从别人的身上真的能学到自己没有的东西,每一次的挫折都会使我更接近成功。还有学会了在工作中与人的合作与交流,同乐同累,合作互助,这是团体的精神,也是必须学习的东西。

经过之前的在校学习,对程序设计有了一定的认识与理解。在校期间,一直都是学习理论知识,没有机会去参与项目的开发。所以说实话,在实训之前,软件项目开发对我来

说是比较抽象的,一个完整的项目要怎么分工以及完成该项目所要的步骤也不是很明确。而经过这次实训,让我明白了一个完整项目的开发,必须由团队来分工合作,并在每个阶段中进行必要的总结与论证。

一个完整项目的开发它所要经历的阶段包括:远景范围规划和用例说明、项目结构和风险评估、业务功能说明书、详细设计说明书、代码实现、测试和安装包等等。一个项目的开发所需要的财力、人力都是很多的,如果没有一个好的远景规划,对以后的开发进度会有很大的影响,甚至会出现在预定时间内不能完成项目或者完成的项目跟原来预想的不一样。一份好的项目结构、业务功能和详细设计说明书对一个项目的开发有明确的指引作用,它可以使开发人员对这个项目所要实现的功能在总体上有比较明确的认识,还能减少在开发过程中出现不必要的麻烦。代码的实现是一个项目开发成功与否的关键,也就是说,前期作业都是为代码的实现所做的准备。

我深刻的认识到要成为一名优秀的软件开发人员不是一件容易的事情,不仅要有足够的干劲和热情,还要有扎实的编写代码基础,必须要有事先对文档进行可靠性报告,功能说明书,详细设计说明书等的编写和一些风险评估的编写的能力。

除了图书馆,最能让我感觉到身在大学的就是实训机房,在匆匆过去的两个月内,我往返于实训机房与宿舍之间,使我享受了一个充实的学习时期,让我感受到了大学的魅力,对自己充满信心,对大学充满信心,以积极的心态迎接明天挑战。

实训中要求有扎实的理论基本知识,操作起来才顺心应手,我这时才明白什么是“书到用时方恨少”。这就激发了学习的欲望。

“学以致用”,就是要把学来的知识能运用到实际操作当中,用实践来检验知识的正确性。我想,这是实训的最根本目的。

“纸上得来终觉浅,绝知此事要躬行!”,在短暂的实训过程中,让我深深感受到自己在实际运用中专业知识的匮乏。以前总以为自己学的还不错,一旦应用到实际就大不一样了,这时才真正领悟“学无止境”的含义。

经过为期两个月的电子政务服务平台系统开发的实训,我对Visual 软件开发平台有了更深一步的了解,对微软基础类库的认识与使用也有了大大的提高。以及如何使用SQL Server数据库进行连接操作方面有了本质的提高。

短短的实训结束了,为我将来的就业打下了良好的基础,也提高了我的软件开发的水平,今后我将会更加努力的学习,不断提高自身素质,开拓创新,与时俱进,做一个优秀的软件开发工程师。

 

第二篇:软件工程方法与实训

软件工程方法与实训

习题答案

                                     20##-9-22

习题一... 3

1 软件是什么?软件有那些特点?. 3

2 按照功能层次,软件可分为那些层次的软件?. 3

3 按照服务对象,软件可分为用户定制软件通用商业软件.举例说明两类软件的区别... 3

4 什么是软件工程,其对软件产业化发展有什么积极意义?. 3

5 软件工程涉及工程,方法,工具三个方面的技术问题.这三个方面存在着什么相互关系? 试举例说明它们之间的联系    3

6 软件工程管理主要体现在四个p上,简述各个管理,并谈谈自己的认识... 4

7对工程目标进行优先级排序... 4

8 结构化方法有什么特点?. 4

9操作Microsoft Visio  谈谈你自己的感受... 4

习题二... 4

1 软件开发期的目标任务是什么?概要设计需要完成什么任务?. 4

2瀑布模型的一大特点是里程碑管理机制,对此,你有什么认识?. 5

3为什么瀑布模型不能很好的适应用户需求变更?. 5

4 试说明抛弃型原型与进化型模型的异同... 5

5一般认为,原型进化模式不能适应较大型软件项目的开发,原因是什么?. 5

6增量模式可体现出那些方面的优越性?. 5

7开发一个”综合信息管理系统”,选择一个比较合适的过程模式,说明理由.. 6

习题三... 6

1 软件开发机构内都设有质量控制部,并将其防灾开发部服务部之上,对此,你什么看法... 6

2 通常认为,项目负责人不一定是技术专家,但必须是管理专家,对此,你有什么看法?. 6

3 你将如何管理项目小组,以使其具有较高的工作热情?. 6

4是比较民主分权制与住程序员负责制的优劣?为什么?. 6

5 需要开发一个学生管理系统,对该项目作出比较合理的任务及进度安排.. 7

6 用c语言开发一个矩阵运算程序,计算工期和人力成本... 7

7 开发一个设备监控程序,并计算人力成本... 7

8 软件项目中主要有那些技术文档,管理文档和用户文档... 7

9 为什么软件开发需要有配置管理,其主要包括那些方面的管理?. 7

10 为什么配置管理中需要有开发库,基线库和产品库这三个配置库?. 7

11 什么是质量标准?. 7

习题四... 8

1 计算机系统有哪些元素组成?特征是什么?. 8

2 举例说明Client/Server 结构的系统扩充性... 8

4 B/S结构有哪些特点?与C/S相比有哪些优势?. 8

4 对于网络商务软件,你将如何考虑其体系结构?说明理由... 8

5 对于网络游戏软件,你将如何考虑其体系结构?说明理由... 8

6软件开发为什么要做高层分析?需要进行哪些方面的高层分析?. 8

7开发一个网上商品订购系统... 8

8 软件项目实施前为什么要进行可行性分析?涉及那些方面的可行性分析?. 8

9 如果软件开发所采用的技术既先进有成熟,该技术是否一定具备可行性?. 9

10 browser|server结构有哪些特点?与client、server结构比较,有哪些. 9

习题一

1 软件是什么?软件有那些特点?

   答:软件是计算机系统中的逻辑成分,是程序,数据,文档等这多逻辑元素的集合,需要有物理硬件的支持才能产生作用.  软件具有以下三个特点:一,软件有对硬件不可缺失的依赖.二,软件有不同于硬件的生产流程.三,软件有不同于硬件的生命过程.

2 按照功能层次,软件可分为那些层次的软件?

   答:SQL Server是系统软件,ADO.NET是支撑软件,VisualC++是应用软件.

3 按照服务对象,软件可分为用户定制软件通用商业软件.举例说明两类软件的区别

答:用户定制软件大多是以招标方式获得开发任务.开发机构受特定客户委托开发的软件,并以合同形式的确定开发机构与客户直接按的责权关系,且定制软件有特定用户独享,因此需要针对特定用户进行专门的需求分析,以满足特定用户的特殊应用需要.

  通用商业软件是开发机构根据社会需求自主开发的软件大多有广泛的用户群,为了满足通用性,通用商业软件往往需要面向用户的应用配置,以使软件能适应各种不同的工作环境和满足不同的应用需要.通用商业软件一般比用户定制软件有更高的技术要求,因此开发周期更长开发费用更高.

4 什么是软件工程,其对软件产业化发展有什么积极意义?

答:软件工程是将系统的受规范约束的可量化的方法应用于软件的开发,运行与维护,即将工程方法应用与软件;对工程方法的研究,应该说这个定义对软件工程的工程学科特性有了更完整和更清晰的表述,如软件工程的作用范围,软件工程基于工程应用的研究途径都有比较具体的说明.

5 软件工程涉及工程,方法,工具三个方面的技术问题.这三个方面存在着什么相互关系? 试举例说明它们之间的联系

答:软件过程是软件开发与维护的实施路线和具体步骤,并且是软件开打是的工程化框架,是工程方法与软件工具的以有效应用的基础.  软件工程方法是指开发和为软件是英爱如何做的一系列技术性方法.工程方法涉及的内容有工程规范技术手段,软件工程方法需要适应软件构成因此也就需要考虑不同过程中的工程方法的关联性.  软件工具用于对软件工程方法与软件过程的自动化或半自动化进行支持,软件工具也像工程方法一样,要求能够覆盖整个软件过程,如项目管理,软件分析,软件涉及,程序创建,软件测试等,都要求有合适的软件工具支持.同时软件工具分为高端工具和低端工具.

6 软件工程管理主要体现在四个p上,简述各个管理,并谈谈自己的认识

答:软件工程管理主要体现在四个p上,即项目(Project),人员(People)产品(Produc)t过程(Process),它们是软件工程管理中必然涉及的四个要素. 

项目是一个工程单位,软件开发即以软件项目为单位实施,应该说,软件项目使软件开发中的各种因素(如人物,人员,设备,费用,产品等)集中到了一起,它使软件件开发有了管理的必要,并使软件开发有了管理的便利,项目管理的首要工作是制定项目计划,在软件开发工作起步的时候,就应以项目人物,工程环境为依据,制定出科学合理的软件开发计划,它是让软件开发的工作指南,内容涉及项目任务分解,人员配置,资源配置,成本估算,进度安排等.

软件开发的人员组织结构是软件项目组,他是一个软件开发团队,其成员包括项目负责人,开发人员,资料管理员,软件测试员等.软件项目组有许多不同形式的组织结构如民主分散形式,控制集中形式等.

过程管理是软件工程的技术基础,是一个工程框架,可将软件开发分解解为多个任务阶段或过程域..过程管理的第一项工作是选择一个与所承担的软件项目相适应的过程模式.可供选择的过程模式有瀑布模型,原型模型,增量模型,螺旋模型.   过程管理的第二项工作是基于所选过程模式制定出更加详细的里程碑计划,以便于软件开发能将给予各个里程碑获得有效的过程控制.

产品管理包括产品质量管理和产品配置管理.产品质量管理 是为了确保产品质量而建立的一个有效的产品质量保证体系,他又质量标准,质量计划,质量控制等要素组成..产品配置管理是为使产品及其配套资源具有一致性必须建立完善的配置管理.产品配置管理的主要内容如下:标识软件配置项,控制软件变更.控制软件版本

7对工程目标进行优先级排序

8 结构化方法有什么特点?

答:结构化方法的特点是以实现软件功能为基本目标.经过对软件分析,涉及,可逐步明确功能目标.其中,结构化分析的任务是搞清楚软件需要哪些功能要素,结构化涉及则分析获取的功能要求为依据,定义功能化程序模块,设计程序算法.

面向对象工程方法的基本特征是程序系统可给予显示尸体构建,其中,类体被用来定义尸体,由类体生成的对象则被用来进行实体行为仿真.

9操作Microsoft Visio  谈谈你自己的感受

习题二

1 软件开发期的目标任务是什么?概要设计需要完成什么任务?

答:软件开发期的目标任务包括软件概要设计,软件详细设计,编码和单元测试,系统集成以及系统验收

概要设计需要提交概要设计说明书,它将作为详细设计与系统集成的依据.

2瀑布模型的一大特点是里程碑管理机制,对此,你有什么认识?

答:瀑布模型可带来基于阶段任务的里程碑管理,这是一种可量化的并能适应大型项目的管理机制,科技与阶段设定和度量项目进程,可以按照阶段进行项目任务分配以及估算项目任务完成比例.通常,项目管理者可事先估算出每个阶段的任务量,并以此为依据规定每个阶段的任务时限,然后即可按阶段部署任务与监督项目进程.

3为什么瀑布模型不能很好的适应用户需求变更?

答:受限于线性过程,瀑布模式中的软件过程只能按照规程推进,而且必须等到所有开发任务完成以后,才能获得可以交付使用的软件产品.而且瀑布模式的灵活性不是很好,如果已经开始设计,则;来自于用户的一个很小的需求变更请求,也可能给软件项目带来大难题,由此导致项目延期.

原型进化是指对已建原型的逐步修正,并通过逐步发布新的软件版本而使软件系统逐步完善,实际上,一个并不完整的初始版本即可投入使用,以满足软件应用继续,然后通过新版本对旧版本的更替而逐步的满足用户对于软件的多方面需要.原型进化模式只需对软件问题做初步分析,并在获得有关软件的需求框架之后,即可进行原型创建.原型创建包括需求细化,产品开发和产品验证等多项任务,这些任务是在同一个工作进程内并行或交替进行的.

4 试说明抛弃型原型与进化型模型的异同

答很多情况下,为需求分析与软件设计而建立的原型,在需求与设计问题确定下来之后,就失去了使用价值,因此被叫做抛弃型原型.它具有以下一些特点:抛弃型原型是用来对需求进行评价或对设计进行试探的,为使需求与设计问题尽快确定下来,并尽量减少原型成本抛弃型原型往往利用第四代语言或软件快速生成工具等创建. 抛弃型原型不需要投入实际应用,因此可以只针对某个专门的问题建立局部模型,而无需考虑完整性,抛弃型原型也可能是一个较完整的系统,但却是一个无需投入实际应用的试验品.

软件原型也可考虑不断改进,它不会被抛弃,并需要最终演变为可交付的产品,这样的原型被叫做进化型原型.进化型原型由于将演变为可被用户使用的产品,因此一般要求最终产品开发平台上创建,开发者大多选择可视化开发工具创建进化模型,因为这些可视化开发工具不仅能快速创建模型,而且还能使原型投入实际应用,并逐步演变成为最终目标系统 .通常情况下.开发者西安建立界面原型供用户评价,并获得用户对原型的确认后,再逐步设计与实现诸多功能执行模块.

5一般认为,原型进化模式不能适应较大型软件项目的开发,原因是什么?

答:原型进化模式缺少瀑布模式所具有的里程碑管理机制不便于估算项目进度,不便于项目任务量化,并使软件质量难以得到控制.虽然可通过原型初始版本使软件尽早投入使用,但什么时候能够获得可满足全面需求的最终版本则搬移确定下来.

原型进化模式对于面向用户的中小软件开发会有一定的优势,但却因为管理规程上的不足,而不能有效保证软件质量,不能适应大型软件系统的开发.

6增量模式可体现出那些方面的优越性?

答:增量模式结合了瀑布模式和原型进化模式的优点,并体现出以下方面的优越性:

增量模式提供了基于增量的需求适应性,能面向用户需求进行系统开发,同时又具有良好的里程碑机制,能够基于里程碑管理软件项目,可使项目进程与任务量化,可提供有效的质量保证,因此能很好的适应大型应用软件系统的开发.

增量模式在开发初期只需获取需求框架就可使软件项目顺利启动.

增量模式中的软件规格细节定义是结合到增量构建的开发中进行的,因此可通过增量构建而逐渐完善需求.

软件开发可按照增量构件的功能价值安排优先顺序,并逐个实现与交付.

增量模式下的软件系统是基于增量构件逐渐扩充的,这种开发模式显然有利于开发者构件创建与系统集成的经验积累.

增量模式还有利于从整体上降低软件项目的技术风险.

7开发一个”综合信息管理系统”,选择一个比较合适的过程模式,说明理由.

习题三

1 软件开发机构内都设有质量控制部,并将其防灾开发部服务部之上,对此,你什么看法

答:质量控制部提供软件质量标准,负责各阶段软件成果评审,负责软件开发过程质量控制以及产品服务质量监督.质量控制不大多置于组织结构的较高层次,以获得整个项目有效的质量监控.质量控制部的固定成员可能不多,主要任务是进行质量管理,当需要技术专家进行质量评审或质量鉴定时,则从产品开发部,产品支持部以及产品服务部邀请技术骨干,或是从有关科研院邀请技术专家临时担任.

2 通常认为,项目负责人不一定是技术专家,但必须是管理专家,对此,你有什么看法?

答:项目组是最小的软件开发团队,通常因项目任务而创建,项目负责人负责制定工序哦计划,负责任务分配与协调,负责项目成果评审.

3 你将如何管理项目小组,以使其具有较高的工作热情?

4是比较民主分权制与住程序员负责制的优劣?为什么?

答:民主分权的特点是项目组成员完全平等,享有充分民主,通过协商作出项目决策.民主形势下也有项目负责人,但并不固定,可随时有其他成员替代.民主分权制的有点事,项目组成员的个人作为你那个狗较好表现,它们有较高的工作热情,成员之间有较好的民主交流,并有很好的技术协作.民主分权制的项目组对成员素质有较高的要求

主程序员负责制是一种对项目组实施几圈控制的管理体系,项目组主要成员有主程序员后备程序员,资料管理员与一般程序员等.主程序员处于组织的绝对核心位置,负责整个项目计划的制定与实施,负责软件体系结构与接口设计,负责额关键部分的程序算法设计,还可能需要指导一般程序员完成一般算法设计和编码工作.

主程序员负责制的优点是有严密的组织结构,相比民主分权制,这种管理机制更加规范,项目组成员的任务分工更加明确,项目中各项工作的开展更有条理和次序,因此往往能带来更高的开发效率与开发质量..

5 需要开发一个学生管理系统,对该项目作出比较合理的任务及进度安排.

6 用c语言开发一个矩阵运算程序,计算工期和人力成本

7 开发一个设备监控程序,并计算人力成本

8 软件项目中主要有那些技术文档,管理文档和用户文档

答:技术文档:软件开发人员的技术性工作成果,如需求规格说明书,数据库设计说明书,概要设计说明书,详细设计说明书

管理文档:软件开发人员的工作计划或工作报告,如项目开发计划,测试计划,开发进度月报,项目开发总结报告.

用户文档:软件开发人员为用户准备的软件操作使用说明,如用户手册,操作手册,系统维护手册.

9 为什么软件开发需要有配置管理,其主要包括那些方面的管理?

答:软件配置叶儿就是基于软件生产轨迹进行过程控制与产品追踪,其贯穿于整个软件生存周期,因此可使软件开发中产生的各种成果具有一致性.

软件配置的主要任务有配置规划,软件变更控制,软件版本控制.

10 为什么配置管理中需要有开发库,基线库和产品库这三个配置库?

答:开发库是一个面向开发人员的成果库,里面的成果一般是临时的,大多是有待进一步完善的半成品.每个开发人员都因该有属于自己的开发库,以防止出现成果混乱.当开发人员进入开发环境时,可以从开发库中提取开发资源进行系统创建,当开发人员退出开发环境时则可以吧新建资源或经过更新的资源保存在开发的库中.可通过开发库动态追踪到开发人员的工作轨迹,或还原其以前的工作状态,实际上,由于有了开发库,开发过程中的软件变更会变得相对容易管理一些.

基线库是一个面向项目组的成果库,用来保存被确认的基线成果,通常情况下,如果开发库中的软件半成品进过评审而确认达到了基线标准,就可以从开发库移到基线库.基线库的操作方式类似开发库,但这是一个受到严格变更控制的配置库,里面的配置项处于半冻结状态,只有项目组配置管理员或项目负责人具有操作权限,并需要经过严格评审才能发生变更.也就是说,若非有十分充分的变更理由,否则基线库中等的内容是不允许改变的.

产品库是一个面向软件开发机构的成果库,用来保存最终产品,产品库的管理员一般属于软件机构中的配置管理部门,只有该部门的工作人员才具有操作权限.当软件开发任务全部完成之后,最终产品中的一切成果,如程序,数据,文档等都需要有基线库移入产品库.产品库要求处于完全冻结状态,里面的配置原则上不允许变更.通常情况下,只有当软件需要进行错误修正或进行版本更新时,才允许进行变更.

11 什么是质量标准?

答:软件质量标准是有关软件质量的纲领性规定,是建立有效的质量保证体系的基础,是评价软件质量好坏的基本而依据.根据指定质量标准机构的不同,可分为国际标准,国家标准,地区标准,行业标准,分别由国际机构,国家行政部门,地区行政部门或行业组织指定.

国家标准将基于国际标准,同时根据自己国家的特定需要,加进了一些特别限制,因此国家标准往往高于国际标准,实际上,一些较大的软件开发机构也可根据自身特点,并参照国际标准,国家标准,制订除有自己企业特征的质量标准.

习题四

1 计算机系统有哪些元素组成?特征是什么?

答:计算机系统由硬件,软件,数据资源,网络资源,使用系统的人等诸多元素构成,计算机系统可分为硬件系统,软件系统,网络系统,人工系统等.

2 举例说明Client/Server 结构的系统扩充性

答:一个多媒体应用C/S系统,能够提供视频与图片多媒体信息服务,该系统有三台服务器,可分别提供目录查询服务,图片数据服务和视频数据服务.客户机可访问这些服务器,并从中获得图片信息,视频信息,目录查询等服务支持. C/S结构的优势是又很好的系统扩充性,因此有利于系统的逐步创建于逐步完善.正因为如此,C/S结构有较低的初期建设成本.,所提到的多媒体应用系统初期应用吃需要提供图片信息服务,因此初期系统只建立了图片服务器.然而,该系统扩充性好,虽然初期系统中没有视频服务,目录服务,但却可以在系统后续完善建设中添加进来,已提供更全面的多媒体应用服务.

4 B/S结构有哪些特点?与C/S相比有哪些优势?

答;B/S结构的核心是Web服务器,其基于IIS建立互联昂信息服务,通过HTTP协议实现客户端与服务器的信息交互,并通过ASP,JSP等实现Web动态服务.B/S结构可最大限度的减轻客户端的计算负担.B/S结构一般应用与外部客户访问

在B/S结构中,客户端与Web 服务器通过HTML协议间接的进行交互,并且客户算与Web放服务器之间是间断性链接,因此这种结构的性能,稳定性,操作灵活性都不如传统的C/S结构

4 对于网络商务软件,你将如何考虑其体系结构?说明理由

5 对于网络游戏软件,你将如何考虑其体系结构?说明理由

6软件开发为什么要做高层分析?需要进行哪些方面的高层分析?

答;软件开发需要立项,并需要有立项依据.诸多依据来自系统高层分析.

一百来说哦,可以从以下方面对系统进行高层分析(1)软件系统的业务领域,业务边界与业务流程(2)软件系统对硬件设施,网络环境,数据环境的依赖(3)软件系统的安全层级,措施与防范机制(4)软件系统与其他相关系统之间的协作关系(4)软件按系统与用户组织及其工作任务的协调性和适应性.

7开发一个网上商品订购系统

8 软件项目实施前为什么要进行可行性分析?涉及那些方面的可行性分析?

答;可行性分析的目的是以少量的时间及人力成本为代价,对项目是否可着手实施作出有依据的判断,以避免因项目实施条件不具备而造成的大量的人力物力与时间的浪费

可行性分析所涉及的问题有:项目实施条件是否具备?问题解决方案是否合理

9 如果软件开发所采用的技术既先进有成熟,该技术是否一定具备可行性?

答:不一定 技术可行性需要确认的是项目所采用的技术是否先进并且成熟?是否能够充分满足用户系统在应用上的需要?是否足以从技术上支持系统成功实现,因此,单从一个方面说是不成立的

10 browser|server结构有哪些特点?与client、server结构比较,有哪些.

答:Browser、server结构是一种可以很好适应基于互联网的远程交互特性clieent、server结构基于web服务器构建,其中brower指web游览器,server指web服务器。