软件开发 程序开发 源代码开发

1简述软件开发工具的范围?在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程序

帮助的一类新型软件。2、简术用通用软件辅助软件开发的缺点?有许多工作是通用软件所无法完成的;用通用软件完成某些工作,只能表现出其表面的形式,而不能反映其逻辑内涵,只能做到“形似”不能做到“神似”;难于保持一致性。

3、简述集成化软件开发工具产生的背景?集成的软件开发工具称为软件开发环境,是指包括支持全过程、全阶段的软件开发工具。以往的专用软件开发工具对软件的开发缺乏全面的、统一的支撑环境。这些零散地、分散地支持各个工作阶段、各项具体工作的专用工具之间没有有机地联系起来,必然会造成冲突与矛盾。这种冲突与矛盾对于用户来说,造成了沉重的负担,使用工具越多这种负担越重,以致抵消了工具带来的益处。这种情况导致了集成化软件开发工具的产生。

4、简述第四代语言与软件开发工具的区别?软件开发工具包括4GL的功能;软件开发工具支持系统分析、设计工作:软件开发工具支持文档工作。

5、简述软件开发总体设计阶段的工作要点?是根据软件功能说明书的要求,完成软件的总体设计,包括整个软件的结构设计、公用的数据文件或数据库的设计、各部分的连接方式及信息交换的标准等。

6、简述软件开发实现阶段的工作,以及应强调之点。包括程序的编写和文档的编写,应特别强调组织与协调,及时发现并纠正背离总体设计要求的情况。

7、简述软件开发工具认识与描述客观系统的功能要求?认识与描述客观系统是软件开发第一阶段所需的重要工作。该项工作不确定程度高,更需要经验,更难规范化,需要对复杂系统认识与理解,并在此基础上抽象出信息需求与信息流程。

27、审计:指对一个系统的运行状况及效率进行检测与评价,以便进一步用好或改进这个

系统。

28、软件配置管理:是对软件的修改进行标记、组织和控制的技术,它通过追踪和控制软件变动的所有活动来协调和控制整个软件开发过程。

8、简述软件开发的项目管理功能?为项目管理人员提供支持。项目管理包括进度管理、资源与费用管理、质量管理三个基本内容。还包括需要提出测试方案,提供测试环境和测试数据,并进行版本管理。

9、从人类科学技术发展的角度论述软件的意义?软件是广大使用者与计算机之间的桥梁,软件是人类在各个领域中积累的知识结品,软件是使人类文明与知识得以延续的新的载体软件是人类进一步成为一个整体、得以进一步相互联系的纽带。10、论述第一代到第四代程序设计语言的主要特征?第一代程序设计语言就是计算机的指令系统。用户用机器指令编写程序。这种程序就是机器指令的序列,由“0”和“1”组成,难于阅读,难于维护,而且程序高度依赖于计算机硬件,难于移植。第二代语言是汇编语言,其中每个语句是用助记符动工表示的机器指令。虽然可读性和可移植性方面前进了一步,但依然依赖于计算机硬件。第三代语言也称为高级程序设计语言,其中的语句与机器指令并不-一对应,尤其是表达式的书写与人们的习惯基本相同。程序员需要逐行编写语句来实现算法的过程,因此,它属于过程化的语言。第四代语言是非过程化的程序设计语言,用户只说明要求做什么,而把具体的执行步骤交由软件自动执行。11、说明软件开发工具和新的软件开发方法的主要特点?自动化程序提高;软件开发工作包括了需求分析;软件开发工作包括了项目管理和版本管理;吸收了许多管理科学的内容和方法。

12、说明软件产品开发过程各个阶段的主要任务。需求分析阶段:根据用户的初始要求形成严格的、明确的、可供实际开发使用的功能说明书;总体设计阶段:根据软件功能说明书的要求,完成软件的总体设计;实现阶段:程序的编写和文档的编写;测试阶段:测试软件是

否达到了设计任务书的要求;运行和维护阶段:使用软件,并修改、完善、扩充软件。13、论述软件开发工具对软件开发所提供的支持,即软件开发工具的功能要求?认识与描述客观系统;存储管理开发过程中的信息;代码的编写或生成;软件项目的管理。14、论述软件开发工具的性能要求?表达能力或描述能力;保持信息一致的能力;使用的方便程序;对硬软件环境的要求。

15、论述软件开发工具的分类?按工作阶段可分为:计划工具,分析工具和设计工具;按集成程序分:专用工具和集成化工具;按与硬软件的关系分:依赖于硬软件的管理和独立于硬软件的工具。

16、软件工作人员为什么需要学习和了解软件开发工具?使用软件开发工具开发软件合开发规范化,可提高软件产品的质量,提高开发的效率,缩短开发周期,降低开发成本,使软件更适应应用需要,并易于更新版本。学习和了解软件开发工具还有助于认识软件开发的各种理论的方法。

软件开发过程及其组织、

1、说明从用户的理解转换到程序员的理解会产生什么问题?应怎样解决?问题:不同行业的人对于事物的认识方法与描述方法不同,交流协调有困难。解决:软件开发人员应多了解与熟悉应用领域,正确理解用户的信息需求和信息流程。2、说明从程序员的理解转换到计算机的理解会产生什么问题?应怎样解决?问题:人和机器之间的交流与协调。解决:提高程序员的知识水平与实际经验。3、简述保持软件一致性的困难?软件一般分多个部分,由多人编写,各部分之间需要各种信息的交流与共享。由于每个人的习惯、经验、背景不同,又需要发挥个人主动性,协调、联系与控制都存在困难。软件开发的各个阶段差异也较大,保持一致性十分困难。4、简述大型软件测试的困难?大型软件十分复杂,输入数据和程序执行路径千变万化,修改程序又会有连带影响,测试只能证明程序有错,不能证明程序无错。5、为什么软件开发的进度难以控制?因为软件十分复杂,查错纠错十分困难,测试难以按时完成。用户开发的信息需求也经常变化,开发过程中的修改会有多次重复,进度难以控制。6、软件开发包括哪些文档?功能说明书、总体设计、各模块的设计任务书,每个部分的研制报告和测试报告,最终的验收和用户手册等。7、简述代码与文档的关系?文档是编写代码的依据,有时又需要根据代码的情况编写文档

文档与代码应该保持一致性。

简述代码与文档保持一致性的困难?文档与代码应同时编写。代码经常修改,人们往往8、忘记对文档做相应修改。软件开发一般由多人参加,文档与代码不一致的情况经常出现。9、简述版本更新的主要工作,需要注意的问题?版本更新的主要工作在于审核与回顾,包括对代码与文档的认真检查。特别需要注意的问题是各部分代码的一致性,文档与代码的一致性。

10、简述软件工程思想的由来?由很多人参与开发的大型软件经常出现质量和进度问题,产生了软件危机。为引,引入了工程思想,将软件生产从个人劳动提高成为有组织、可控制的工作。从而产生了软件工程。

11、简述软件工程思想的要点?软件开发分为若干阶段;每个阶段都有明确的任务,明确的起点和终点,有明确的可以检查的成果;在质量和表达方式等方面要有统一的,为人们共同遵守的标准。

12、简述面向对象方法的基本思想?将复杂的系统作为一批对象及其关系的整体。每个对象都是某些数据结构以及相应操作的结合模块。而对象具有封装性、承性、多态性、抽象性等,对象之间要以互传信息。

13、简述即插即用程序设计的基本思想?一部分人专门生产软件组件,而另一部分人则构造整个软件的结构,并且把软件组件插入这个结构,以便迅速完成大型软件的研制工作。14、就单个程序员而言,说明好程序员的标准?具有程序设计的基本知识与技能;了解应用领域:熟悉开发环境。

14、就单个程序员而言,说明好程序员的标准?具有程序设计的基本知识与技能;了解应用领域;熟悉开发环境。

15、简述衡量软件开发项目组的cmm模型?有严格成文的工作规范和文档标准;人员有严格的分工;每个项目有详细的时间计划表,并得到严格执行。16、说明大型软件开发的困难?难于保持一致性:难于充分测试:难于控制进度:难于协调文档与代码:版本更新带来的难。

17、论述大型软件开发困难的原因?大系统的复杂性;人员间的组织与协调;各应用领域间的差异:变动的因素。18、论述用户、项目负责人、程序员和计算机四种角色在软件开发中应承担的任务?用户提出需求,验收软件,使用软件,提出修改要求;项目负责人:需求分析,分配任务,验收模块,联调,交付使用,分析修改需求,验收修改成果;程序员:编写程序,块高度,块交付检验,修改软件,修改的软件交付检验;计算机:试运行。19、论述IBMAD/CYCLE对软件开发阶段的划分以及各阶段的任务?第一阶段,需求分析阶段。其任务是了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况;第二阶段,系统分析与设计阶段。其任务是进行功能分解及数据分析,完成处理过程及数据库的逻辑设计;第三阶段,编程阶段,其任务是完成具体的程序和文档编写工作第四阶段,测试阶段。其任务是对已有的代码进行认真的检测与使用;第五阶段,使用及维护阶段。其任务是组织使用者有效地使用,并及时检查与修正发现的错误。20、论述面向对象的基本思想?客观世界的任何事物都是对象,它们都有一些静态属性,也都有一些有关的操作;对象之间的关系构成对象的网络结构(封装性);抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为它的子类的性质,不必加以说明或规定(继承性):对象之间要以互送消息。

21、论述软件质量的标准?正确实现所要求的功能;用户界面友好;合适的响应时间;足够的可靠性;程序晚读,易于修改,文档齐。22、论述软件开发项目组对成员的要求?保证严格地在本模块范围内操作;严格按总体设计的要求传递参数;严格按规定要求公共数据,决不擅自改变;按统一原则为标识符命名;保持程序设计风格的一致。15结构化程序设计的基本思想和方法是什么?把程序结构分成处理单元、循环机制、二分决策机制。方法:合理地划分模块,使得模块的功能在逻辑上尽可能单一化、明确化,即模块的凝聚性:模块之间的联系及互相影响尽可能地少,就避免逻辑耦合,而只有数据耦合;模块的规模应当足够小。三、软件开发工具的理论基础

1、软件开发过程中需要哪些信息与信息处理方面的帮助与支持?有关系统环境、现状及需

求的信息;有关软件的功能设计与物理设计的各种信息;软件成果本身,包括程序与文档:用户对系统的各种变更要求,以及系统的各种变更的记录。2、软件开发工具的理论基础包括哪些方面?认知科学中关于概念模式的概念与方法;数据库技术的理论与方法;编译技术的有关方法;关于人机界面的理论与方法;管理科学中关于项目管理与版本管理的理论与方法;系统科学与系统工程中的有关理论与方法。3、什么叫概念模式?它的作用和意义是什么?是认知科学中的一个用语,指的是人信在认识事物过程中,对于某一事物或某一系统形成的抽象的、一般化的框架。概念模式在认识过程中十分重要,同时作为交流与表达工具也是十分重要的,人们在互相配合、互相协调、共同完成某项任务的时候,需要统一认识、协同行动,就必须用某种公认的方式来进行表述,概念模式正是起了这种作用。4、举出三种常用的概念模式,说明它们的作用与使用方法?框图:把程序基本步骤分为处理、判断、输入输出、起始或终止等几个功能,并能不同的记号加以表示,用箭头表示控制或执行的顺序。结构图:它的基本图例为模块,以模块的调用关系为线索,用连线表示调用关系,并注明传递参数。基本调用方式有:顺序调用、选择调用、循环调用。数据流程图(DFD

):面对的是系统的信息流程,把信息流看作一个组织或系统运作的线索,简明扼要地勾画出全局,基本元素是外部实体,以箭头表示信息在它们之间的流动状况。实体关系图:用于描述静态数据结构的概念模式,以实体、关系、属性三个基本概念概括数据的基本结构。数据字典(DD):描述数据内容的概念模式,用表格的形式列出数据数据的基本属性及相互关系。时序网络:描述系统状态及转换方式,常用于实时控制方面的软件。数学与逻辑模型:描述客观世界的状态与规律,包括常用的决策树与决策表。计算机模拟模型:利用计算机大量、高速处理信息的能力,在计算机内设置一定的环境,以程序来实现客观系统中某些规律或规则,在二者的基础上计算机高速运行,以便观察客观系统的运行。5、什么叫信息库?它与数据库、数据仓库有什么区别?它是一个包罗万象的,随着开发项目进展而不断修改与补充的信息集合。数据库是在文件系统基础上发展起来的一种管理技术,重点在于合理地组织数据,减少冗余;数据仓库是为了使数据更接近实用,对数据进行多次加工或提炼,得出许多派生或综合的数据。区别与特点:它在规模上不一定像数据仓库那么大,分析提炼的要求也与数据仓库不同,但数据结构复杂,不断变化,分析的要求也不同,还需要保持一致性,需要供分析人员、程序员、用户、维护售货员等多种人员使用。6、为塞極仓子谎尸么信息争蓼黜一致性十分重要?一是因为信息在传递过程中,误解和丢失现象十分严重:

二是软件的修改和版本更新时,大量的工作要重复去做。6.简述信息库概念提出的背景?及特点?应具有的管理功能?其存放的内容有什么?背景:在软件开发过程中,若用文档来传递信息,则误解与丢失会十分严重,软件修改或版本更新时,往往丢失大量原始资料,各人收集的资料格式不同,体例不统一,也常常无法使用,用计算机来管理软件开发全过程中的有用信息,就产生了信息库。特点:它在规模上不一定大,但数据结构复杂,不断变化,需要供分析人员、程序员、用户、维护售货员等多种人员使用,需要保持一致性。功能:一般数据库的基本功能;对机内外的信息统一进行编目管理;供多种人员使用的界面。内容:软件工作环境、功能需求、性能要求、有关状况等外部信息;需求分析阶段中收集的各种信息;逻辑设计阶段获得的资料和文档;设计阶段的各种资料;实现阶段获得的成果;运行及使用情况的记录;维护及改的情况;项目管理的有关信息。7、人机界面设计的原则及重要性是什么?原则:输入尽量自然,输出必须准确;界面必须始终一致;界面必须使用户随时掌握任务的进展善;界面必须提供帮助;宁可让程序多做,不可让用户多干。重要性:对于用户来说,界面就是系统本身。因为用户只关心能否有效地使用软件来解决问题,用户对软件功能的理解都在界面上表现出来,用户的输入是否自然、简便,是否有充分的提示和帮助,对用户的错误是否有友好的措施,输出的形式是否易于理解,结果是否正确,都是用户关心的问题,也是界面的特点,界面不友好的软件就不是成功的软件。

8、人机界面的常用技术手段有哪些?键盘操作、屏幕滚动、菜单选择、帮助系统、鼠标操作、色彩应用、数据录入、信息显示。9、什么叫项目管理?特点和任务是什么?它是管理科学领域的一项内容,指与固定的生产线上的日常生产管理不同的,具有更大的变动性、时间性的一类管理任务。特点:子任务多、关系复杂;任务不可重复;协调组织的任务十分突出;信息处理的作用和意义更为突出。任

务:有效控制质量;保证进度;有效利用资源;控制降低成本。10什么叫版本管理?其任务是什么?版本管理是对软件更新引起的问题进行管理,关键在于保持两个一致性:从时间上关心系统的逐步完善,每一步都是与以前的工作一致,而不是破坏或降低系统的功能。从系统各部分关系来说,要保持局部与整体一致。具体方法包括规定长远的版本更新计划。

11、软件开发过程中的信息管理工作包括哪几个方面?长期保存信息,不断修改,及时检查和维护,反复调用和查询;数据的转换和加工;各种人员之间的交流。12、论述软件开发过程中保持信息一致性的重要性?作为统一的软件,各部分之间不可避免地要有各种信Π汇息的交流与共享;程序和文档是密切相关的;由于版本更新,对信息库中的各种信息还有历史的、逻辑的联系。

五、软件开发工具的使用与开发

1、怎样考虑购置软件开发工具以及自行研制工具的权衡?哪些因素是必须认真考虑的?在项目比较大时间持续比较长的情况下,使用工具可以使工作的组织管理比较规范,信息管理与检索方便,部分做到信息与知识的重用与共享。但软件开发工具比较昂贵,而且一体化的开发工具还不多,作用与可靠程度不如人意。自己开发的软件开发工具目标明确,符合需要,而且可进一步升级。从长远看,软件开发工具越来越多得到应用,自行开发的工具会减少考虑楒践癲誶含素:胲移鈿笞詔漾开发软件的性质与要求;开发人员对支持工作与支持程度的实际需要;工作环境;人员的因素。

2、为什么软件开发工具选用之前必须明确的有限的目标?为哪个软件开发项目而使用工具,为一个项目还是为一批项目,为哪一种类型的项目而购置?;在哪个工作阶段使用工具,在一个生命周期内使用,还是准备长期开发、不断更新版本?;工具将供哪些人员使用,这些人是否有使用经验,对于使用工具的态度、期望、可塑性如何?;工具将在怎样的软件、硬件环境下运行?3、购买软件开发工具时的市场调査应当包括哪些内容?开发工具的功能;这些工具的一致:这些Ž美工斎悼歸辐脶蠕疊督贗炷觌派谆镐禄境是什么?;这些工具的文档资料是否齐全?使用时的学习、掌握是否简单易行?馼关;肎假鬈騶阽嶝些工具的服务、培训条件如何?;价格。

4、购置软件开发工具的步骤应当如何安排?明确购买软件开发工具的目的与要求;明确购买软件工具的环境条件与制约条件;市场调查;对于可供选择的各种工具进行综合比较;进行测试和检验;正式签约购置;安装与试用。5、使软件开发工具得到有效使用,并真正发挥作用,需要哪些条件?一开始就要对使用过程进行认真的组织与管理。

6、引入软件开发工具之后,应当怎样进行管理?制定严格的使用制度;记录使用的详细过程;培训使用人员;经常进行审讯与评价工作。7、对开软件开发工具的使用情况进行审讯时,需要考虑哪些问题?购买时希望利用它的功能是否发挥了功效:效率、响应速度、输出方式等性能是否满足需要;多少人使用了本工具?工作方式与工作效率是否有了提高;经济效益;有无因硬软件限制而影响效果;使用的频

程度;管理信息范围;人机界面项目管理故障及处理情况;项目组成员的印象;开发软件情况。

8、自行研制软件开发工具要注意哪些问题?首先要从实际出发,设定现实的、有限的目标;要坚持短小实用、逐步积累,避免期望过高、贪大求全;要注意文档的齐全与资料的积累。9、论述购买开发工具与自行开发的优缺点购买软件开发工具的好处:在某些环节上可代替一些简单的、重复性的工作;对项目较大,周期较长的情况,还可以使工作的组织管理比较规范,信息的管理与检索比较方便,部分地做到信息与知识的重用和共享。缺点:比较昂贵

特别是项目管理和系统分析工具也不易按实际需要剪裁与扩充。自行开发的好处:目标明确,符合需要,便于扩充。缺点:规范化、商品化程度低,问题与故障多。10、引入软件开发工具后,为什么说做好组织管理工作极其重要?组织管理工作的成功与失败,直接影响着软件开发工具的作用的发挥程度。如不认真管理,就会出现混乱,以至使系统崩溃。从不规范的、立足于程序员编程技术的软件开发方式,转变到严格地、按科学方法组织管理的软件开发方式,这是一个极其深刻的变革,它必然要经历许多擦与碰撞。人们总是有意无意地采用传统的工作方式或工作习惯,违反严格的要求,导致种种信息不通、信息不一致的现象发生。因此,软件开发工具的使用过程,就是一个逐步改变旧的工作习惯,建立科学的软件开发方法的过程。如果没有认真的组织管理,也就不可能自发地、轻易地、顺利地使用开发工具,切不可低估了这一过程的困难、复杂与反复。11、为本单位使用的软件开发工具与商品化的软件开发工具有什么区别?商品化的软件各种应用项目差别很大,运行环境复杂多变,本单位使用的软件只是适用于某一应用场所。12、以自己接触过的软件开发工具为例,分析软件开发工具目前的发展水平与实际需要的差距?真正一体化而且能用于各种平台的工具不多,比较多的有两种,一种用于特定平台,主要用于设计阶段的工具。另一种侧重于分析方法,独立于平台的工具。13、购买开发工具有什好处?可以使工作的组织管理比较规范,信息的管理与检索比较方便,部分地做到信息与知识的重用和共享。

名词解释:

1、过程化程序设计语言:指需要由编写程序的人一步一步地安排程序的执行过程的语言。

2、非过程化程序设计语言:也称第四代语言,即只给机器下达做什么,由机器自动安排执行的顺序。

3、可视化编程:就是编程工作的可视化,即在编程过程中随时可以看到结果,程序的调整与后果的调整同步进行。

4、需求分析:是软件开发的第一个阶段,软件设计者需要从用户的初始要求出发,经过大量的调查研究工作,抽象出应用领域中实际信息需求,设计出在计算机系统内外的、合理的信柰汛亚鐿社簞箭流報酋螯奮千程,并规定出软件系统的功能与性能要求,写出软件功能说明书。

5、软件结构设计:把软件划分成若干个模块,指定每模块的功能要求,以及它们之间的相瓦关系。

6、CASE 工具:是计算机辅助软件工程,其基本思想是应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。7、软件工作环境:是集成化的软件开发工具,就是面对软件开发全过程的工具。软件工程将工程思想引入软件开发,使软件生产从程序员的个人劳动提高成为有组织、可控制的工程水波效应:修改程序带来的连带影响。

8、结构化程序设计:按自上向下逐步分解的方法划分模块,确保模块符合结构良好的要求9、对象:是含数据及对数据操作的方法的模块。是静态属性和有关操作的整体。10、即插即用的程序设计:一部分人专门生产软件组件,而另一部分人则构造整个软件的结构,并且把软件组件插入这个结构,以便迅速地完成大型软件的研制工作。11、可视化程序设计:用图标等可视化的元素来编制程序。12、概念模式:是认知科学的一个用语,指的是人们在认识事物过程中,对于某一事物或某

一系统形成的抽象的、一般化的框架。

软件定制.jpg

13、数据流程图:是建立系统信息流程时所用的一种概念模式,它用于描述某一业务处理系统的信息来源、存储、处理、去向的全面情况。14、实体关系图:是在数据库的设计中用于描述静态数据结构的一种概念模式,它以实体、

关系、属性三个基本概念概括数据的基本结构。15、数据字典:是一种描述数据内容的概念模式,它用表格的形式列出数据的基本属性以及相互关系。

16、时序网络:是一种描述实时控制功能的概念模式,它主要描述系统状态及其转换方式。17、数学与逻辑模型:是描述客观世界的状态与规律的一种概念模式,常用一些数学公式或逻辑表达式来描述客观系统的状态或运动规律。18、计算机模拟模型:是一种描述客观系统中的某些规律或规则的概念模式。直观模型:用可视化齔侮的元素来描述心目中的系统的概念模式。19、数据库:是在文件系统基础上发展起来的一种数据管理技术,它的重点在于合理地组织数据,体现出数据之间的逻辑关系,并尽可能地帮助用户检索,减少几余。20、数据仓库:将大量的原始数据与多次加工提炼得出的许多派生数据都存储起来,加快派生数据的存取速度,同时保持派生数据与原始数据的一致性,一旦原始数据有所变更或增添,还能自动重新计算或修改派生数据。

21、信息库:是一个包罗万象的,随着开发项目进展而不断修改与补充的信息集合。22、人机界面:是软件功能的一个重要部分,它接受人的输入,又将机内信息输出供人利用。23、耐屏软竊伽簪忭鎖置溻竦鈷騎嘯谆秋泜潠繕硝痴佚设立一个有效的总控部分,它能够在各个具体工具之上,实现信息的正确传递与转换,帮助人们完成上述协调与配合的工作,从面形成一个统一的,完整的支撑环境,并通过一个统一的,友好的人机界面与用户对话。24、信息流通模型:即信息的来源、去向、存储及处理的逻辑过程。25、信息库管理模块:各种子数据库以及处理模块保持逻辑上统一,物理上分散,由统一的信息库管理模块进行管理,对分散的各个数据库进行存取,并进行一致性的检查与维护,数据库与模块都实现了模块化,既保持了一致性,又保持了灵活性。26、项目数据库:是信息库的一个组成部分,它记录的是项目本身进展的各种有关信息


软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为“软设备”,广义地说软件是指系统中的程序以及开发、使用程序所需要的所有文档的集合。软件分为系统软件和应用软件。软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响传统软件开发的流程是:需求》设计》编程》测试

需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求你经常要和客户、项目经理等交流。

设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。

编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。测试:目的是让你知道,什么时候算是完成了。如果你聪明,你就应该先写测试,这样可以及时知道你是否真地完成了。否则,你经常会不知道,到底有哪些功能是真正完成了,离预期目标还差多远。

软件开发过程可以包括以下6个阶段:

计划对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计。制订完成开发任务的实施计划。分析

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

设计

软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。


编码

软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"源程序清单"。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。编码的质量与开发人员经验和技术水平直接关系,好的开发人员可以设计非常有弹性,容错性好,并且程序稳定,运行效率高。相反如果开发出来的代码存在稳定、性能方面的隐性问题,将对整个系统产生重大的影响,对项目的验收带来直接麻烦。

程序代码的开发是一项技术脑力活,实现一个功能有N种方法,跟人的因素是非常大,每个人开发同一个程序都有不同的思路和方式,直接造成开发出来的功能和效查千差万别很容易造成程序开发失控,如时间无限的推后,人力的不断增加,成本不断提高。测试

软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。黑盒法。

维护

维护是旨在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。

-个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。

在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。

传统软件开发的问题

传统代码级开发成本越来越高,软件的功能升级跟不上市场的变化,客户的满意度越来越低。造这方面的原因是多方面,最重要是人力成本大幅上升和企业对软件的要求越来越高通用的软件产品已无法满足企业对管理的要求,通用一款软件产品只能解决企业一项目业务70%的需求,或更少。要看企业的要求修改产品普通实施工程师根本无法完成,需求产品研发人参于项目的修改,这就造成项目成本大幅上升,同时也造成产品研发人员疲于应付项目,无法专心于产品的升级。没有新的产品适应市场,造成软件企业慢慢脱离市场,使软件公司

进入一个恶性循环。主要问题表现为:

用户的需求层出不穷,项目迟迟不能验收,成本高昂,用户还不满意;产品的开发和升级周期长,跟不上市场的需求;

重要开发人员的离职对公司产生重大影响,甚至是致命的;

产品对实施人员要求高,培养成本和人力成本高;公司有很好的行业经验,但无法落地实现转化产品;有好的产品没有本地化服务,难以推广到全国的市场。

为了摆脱这个恶性循环,市场上慢慢形成为了提高开发效率的各种工具,后来又将这些工具按整个系统开发要求重新组合,形成了目前的软件开发平台。

开发平台的现状

目前软件开发平台有两大阵营,一是基于JAVA,二是基于.NET的,这两个平台优劣是仁者见仁,智者见智。我们选择平台应更多的是关注平台本身的功能,目前软件开发平台从使用角度分为两类,一是开发工具的升级版,二是基于企业应用的支撑开发平台。

目前市场绝大部分的开发平台都是开发工具的升级版,在开发工具JAVA的Eclipse或.NET的 Visual studio 上做了很好的插件,使用界面开发或逻辑开发基本实现可视化的操作,比代码级开发大提高了效率。开发环境还是要基于Eclipse或Visual studio上。开发出来的产品还原来方式是一样需要生成源代码,做成一个安装包作为一个独立程序使用。

基于企业应用的支撑开发平台是一个全新的设计,放弃了传统的模式,是基于企业的应用为目标设计,企业应用支撑平台即是开发平台也是企业所有功能运行平台,不需要另再安装开发工具,直接在平台做的无限制扩展开发,为企业构建I支撑平台,使企业的所有业务系统和业务需求按管理要求融为一体,真正实现企业完整的业务流和数据流。咨微OBPS企业支撑平台就是基于此设计开发出来的。

OBPS 快速开发平台介绍

咨微 OBPS企业支撑开发平台是领先SOA应用级业务开发平台,创新的解释引擎和纯WEB可视化开发,通过解释引擎将开发出来的功能直接解释成用户的操作界面和后台的业务逻辑,不再需要生成原代码和编译,开发出来功能即插即用。OBPS平台集企业门户、流程定制、业务开发、业务集成整合、知识文档多重功能于一身的软件开发工具,保障支撑企业 I 长期的建设。咨微 OBPS 开发平台不再要关心对象、类、组件、继承等这些复杂I 知识,你只需要了解数据库的基本操作和网页的脚本,剩下的OBPS开发平台完成。咨微海信科技公司经过十年在软件快速开发领域研究和客户实践中,取得了革命性的技术突破:以软件构件引擎为核心,采用以业务流程驱动,面向服务(SOA)的基础应用框架技术,构建企业业务支撑开发平台,使业务开发从事务对象开发转变面向配置开发的质变模式,从而彻底地改变软件的生产方式,从根本上提高软件生产的效率和质量,因此也使快速开发平台进入了配置型开发平台时代。咨微 OBPS 开发平台由门户管理、集成引擎、流程引擎、开发引擎、文档引擎组成,通过这四大引擎和门户快速低成本构建企业I战略,快速定制业务系统,OBPS开发平台框架如下图所示。

开发平台框架.jpg

OBPS 快速开发平台特点

纯 WEB 可视化设计,不再需要安装开发环境,开发不再受环境、地点的限制,一条1)网线搞定。

开发完成的功能不需编译、生成代码和部署,通过解释引擎就可完成,支持动态更2)新、远程更新。

3)在平台上开发的功能无需升级,升级只需升级平台就可,在平台开发的功能不要任何改变,没有升级之苦。

4)功能快速迁移,在OBPS平台上开发好的产品一键式导出,再一键式导入到客户在用的OBPS平台中,与客户平台中系统融为一体,新的功能自然使用平台用户、组织构架、权限体系和各引擎。

5)对开发人员要求低,只需熟悉 SQL语言和网页前台脚本语言。不再要熟悉对象、类组件、继承这些复杂T知识,开发和维护成本大幅降低。

强大流程定义功能,对于业务逻辑、业务流程梳理再造提供快速低成本的实现。6)7)提供大量通用构件,用户可维护自己独有公共构件,提高构件重用性。

海量用户的支持、集群服务器部署支持,支持大型企业复杂应用需求8)

9)完美的将企业中业务系统和管理系统整合一起,实现企业级信息平台和构建企业战略。

软件开发平台未来发展

软件开发平台的发展方向是开发将越来越简单,不久的将来代码开发将成为历史,未来智能化开发、云开发是重点发展的领域。以后每个人只要对业务需求足够熟悉,就能开发出套完美的应用程序,应用程序将快速的增长,新的软件应用式将不断更新。