资源描述
副教授第1计算机网络 软件工程是一门工程科学,他告诉我们如何规范化地开发软件。软件工程的目的是支持专业化的软件开发,而不是个体编程。课件制作人:谢希仁1.1 软件与软件危机1.2 软件工程学的范畴1.3 传统软件工程和面向对象软件工程1.4 软件工程的应用课件制作人:谢希仁1.1 软件与软件危机1.1.1 软件的定义l 指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求。l数据结构,使得程序可以充分利用信息。l描述程序操作和使用的文档。课件制作人:谢希仁1.1.2 软件的特点l软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。l软件是设计开发的,而不是传统意义上生产制造的。l软件不会磨损。l虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。课件制作人:谢希仁l软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。l软件的开发至今尚未完全摆脱手工艺的开发方式。l软件本身是复杂的。u实际问题的复杂性。l软件维护困难。u程序逻辑结构的复杂性。l软件成本相当昂贵。l相当多的软件工作涉及到社会因素。课件制作人:谢希仁软件与硬件故障率的关系课件制作人:谢希仁软件特性的变化l应用软件l工程/科学软件l嵌入式软件l产品线软件lWEB应用软件l人工智能软件软件的分类新的挑战l普适计算l网络资源l开源软件课件制作人:谢希仁遗留系统 在几十年前诞生,他们不断地被修改以满足商业需要和计算平台的变化。这一系统给的繁衍使得大型结构十分头痛,因为他们的维护代价高昂且系统演化风险较高。l设计难以扩展l代码令人费解l文档混乱甚至没有l测试用例和结果从未归档l变更的历史管理混乱l支撑核心的应用并必不可少课件制作人:谢希仁软件神话 软件神话即关于软件及其开发过程的一些说法被人盲目相信,这可以追溯到信息处理技术发展的初期。在缺少有意义的规范标准的情况下,像软件这样的新兴产业转而依靠民间传说。课件制作人:谢希仁管理神话 神话:我们已经有了一本写满软件开发标准和规程的宝典。难道不能提供我们所需要了解的所有信息吗?事实:这本宝典也许的确已经存在,但它是否已在实际中采用?从业人员是否知道这本书的存在呢?它是否反映了软件工程的现状?是否全面?是否可以适应不同的应用环境?是否在缩短交付时间的同时还关注保证产品的质量?在很多情况下,问题的答案是否定的。课件制作人:谢希仁 神话:如果我们未能按时完成计划,可以通过增加程序员人数而赶上进度。(即所谓的蒙古游牧概念)。事实:软件开发并不是像机器制造那样的机械过程。Brooks曾说过:“在软件工程中,为赶进度而增加人手,只能使进度更加延误。”初看起来,这种说法似乎与直觉不符。然而,当新人加入到一个软件项目中后,原有的开发人员必须要牺牲本来的开发时间对后来者进行培训,因此减少了本应用于高效开发的时间。只有有计划、有序的进行,增加人员对项目进度才有意义。课件制作人:谢希仁 神话:如果决定将软件外包给第三方公司,就可以放手不管,完全交给第三方公司开发。事实:如果开发团队不了解如何在内部管理和控制软件项目,那无一例外地将在外包项目中遇到困难。课件制作人:谢希仁用户神话 神话:有了对项目目标的大概了解,便足以开始编写程序,可以在之后的项目开发过程中逐步充实细节。事实:虽然通常很难得到综合全面且稳定不变的需求描述,但是对项目目标模糊不清的描述将为项目实施带来灾难。要得到清晰的需求描述(经常是逐步变得清晰的),只能通过客户和开发人员之间保持持续有效的沟通。课件制作人:谢希仁 神话:虽然软件需求不断变更,但是因为软件是弹性的,因此可以很容易地适应变更。事实:软件需求的确在随时变更,但随变更引入的时机不同,变更所造成的影响也不同。如果需求变更提出得较早(比如在设计或者代码开发之前),则费用的影响较小;但是,随着时间的推移,变更的代价也迅速增加因为资源已经分配,设计框架已经建立,而变更可能会引起剧变,需要添加额外的资源或者修改主要设计架构。课件制作人:谢希仁从业者神话 神话:当我们完成程序并将其交付使用之后,我们的任务就完成了。事实:曾经有人说过,对于编程来说,开始得越早,耗费的时间就越长。业界的一些数据显示,60%80%的工作耗费在软件首次交付顾客使用之后。神话:直到程序开始运行,才能评估其质量。事实:最有效的软件质量保证机制之一技术评审,可以从项目启动就开始实行。软件评审作为“质量过滤器”,已经证明可以比软件测试更为有效地发现多种类型的软件缺陷。课件制作人:谢希仁 神话:对于一个成功的软件项目,可执行程序是唯一可交付的工作成果。事实:软件配置包括很多内容,可执行程序只是其中之一。各样工作产品(如模型、文档、计划)是成功实施软件工程的基础,更重要的是,为软件技术支持提供了指导。神话:软件工程将导致我们产生大量无用文档,并因此降低工作效率。事实:软件工程并非以创建文档为目的,而是为了保证软件产品的开发质量。好的质量可以减少返工,从而加快交付时间。课件制作人:谢希仁1.1.3软件危机与软件问题1.1.3.1 软件危机l许多软件项目不能满足客户的要求。l许多软件项目超出预算和时间安排。l软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。课件制作人:谢希仁1.1.3.2软件危机的表现l对软件开发成本和进度的估计常常很不正确。l用户对“已完成的”软件系统不满意的现象经常发生。l软件产品的质量往往靠不住。l软件常常是不可维护的。l软件通常没有适当的文档资料。l软件成本在计算机系统总成本中所占的比例逐年上升。l软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。课件制作人:谢希仁课件制作人:谢希仁1.1.3.3软件危机的原因l软件是逻辑产品,开发进度、成本难以估计。l缺乏或不完整、不一致的文档给维护带来困难。l用户对软件需求的描述往往不够精确,有遗漏,有二义。l软件开发人员对需求的理解与用户的本来愿望有差异。l大型软件项目需多人协同完成,缺乏管理经验。l开发人员不能有效地、独立自主地处理大型软件的全部关系。l缺乏有力的方法学和工具的支持。l软件项目的特殊性和人类智力的局限性。课件制作人:谢希仁1.2 软件工程学的范畴n软件工程学n指导计算机软件开发和维护的工程学科 n工程管理+开发技术课件制作人:谢希仁1983年B.W.Boehm提出了软件工程的七条基本原理:1.用分阶段的生存周期计划严格管理;用分阶段的生存周期计划严格管理;2.坚持进行阶段评审;坚持进行阶段评审;3.严格实施的产品控制;严格实施的产品控制;4.采用现代程序技术;采用现代程序技术;5.结果应能清楚地审查;结果应能清楚地审查;6.开发小组的成员应该少而精;开发小组的成员应该少而精;7.承认不断改进软件工程的必要性。承认不断改进软件工程的必要性。课件制作人:谢希仁n于1968年在联邦德国召开的北大西洋公约软件可靠性会议(NATO)上,首次提出“软件工程”的概念,提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。n了解有关软件、软件生存期及软件工程过程等重要的概念,对掌握、学习和应用软件工程的方法、技术等对于计算机科学与技术专业的学生都是非常必要的。课件制作人:谢希仁l由于认识到软件的设计、实现、维护和传统的工程规则有相同的基础,于是北大西洋公约组织(NATO)于1967年首次提出了“软件工程(Software Engineering)”的概念。l关于编制软件与其他工程任务类似的提法,得到了1968年在德国召开的NATO软件工程会议的认可。委员会的结论是,软件工程应使用已有的工程规则的理论和模式,来解决所谓的软件危机。l软件危机至今仍然困绕着我们,这表明软件生产过程在许多方面和传统的工程相似,但却具有独特的属性和问题。课件制作人:谢希仁软件工程概念 基本思想是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。课件制作人:谢希仁lFritz Bauer:软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。lIEEE:软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;(2)(1)中所述方法的研究。l计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程。课件制作人:谢希仁“工程”的含义l工程是按照事先制定的计划进行的工作和活动。l工程是将理论和知识应用于实践的科学。l就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。l计算机科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡。l管理科学用于计划、资源、质量和成本的管理。课件制作人:谢希仁软件工程的内容l软件工程借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。l计算机科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡。l管理科学用于计划、资源、质量和成本的管理。课件制作人:谢希仁软件工程学软件工程学软件工程学软件工程学软件开发技术软件开发技术软件工程管理软件工程管理软件开发方法学软件开发方法学软件工具软件工具软件工程环境软件工程环境软件管理学软件管理学软件经济学软件经济学软件度量学软件度量学课件制作人:谢希仁软件工程三要素l软件工程是一种层次化的技术l软件工具为软件工程方法提供了自动的或半自动的软件支撑环境l软件工程方法为软件开发提供了“如何做”的技术课件制作人:谢希仁1.3 软件工程的发展由于软件开发方法可分为三大类:由于软件开发方法可分为三大类:由于软件开发方法可分为三大类:由于软件开发方法可分为三大类:面向过程的开发方法(传统的)面向过程的开发方法(传统的)面向对象的开发方法面向对象的开发方法 基于构件的开发方法基于构件的开发方法相应地软件工程方法也分为三大类:相应地软件工程方法也分为三大类:相应地软件工程方法也分为三大类:相应地软件工程方法也分为三大类:面向过程的面向过程的软软件工程件工程(传统的)(传统的)面向对象的面向对象的软软件工程件工程 基于构件的基于构件的软软件工程件工程课件制作人:谢希仁传统软件工程传统软件工程传统的软件工也称为传统的软件工也称为面向过程的面向过程的软件开发方软件开发方法,这类开发方法都典型地包含了分析、设计、法,这类开发方法都典型地包含了分析、设计、实现、确认(测试)、演化(维护)等活动。实现、确认(测试)、演化(维护)等活动。典型的传统软件开发方法有:典型的传统软件开发方法有:Jackson方法、结构化开发方法、方法、结构化开发方法、原型化方法、原型化方法、HIPO法、法、IDEF法等。法等。课件制作人:谢希仁一、结构化开发方法一、结构化开发方法 是一种是一种面向数据流面向数据流的开发方法,是现有的软件的开发方法,是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。是快速,自然和方便。结结构构化化方方法法总总的的指指导导思思想想是是自自顶顶向向下下、逐逐步步求求精精,以以数数据据流流,数数据据的的封封闭闭性性准准则则来来逐逐层层分分解解的的,它的基本原则是功能的分解与抽象。它的基本原则是功能的分解与抽象。结构化方法强调结构的合理性。提出了一组提结构化方法强调结构的合理性。提出了一组提高软件结构质量的准则,如高软件结构质量的准则,如功能的分解与抽象、模功能的分解与抽象、模块独立性、信息屏蔽等。块独立性、信息屏蔽等。课件制作人:谢希仁JACKSON方法是一种方法是一种面向数据结构面向数据结构的设计方的设计方法。强调程序结构与问题结构相对应。法。强调程序结构与问题结构相对应。JACKSON方法由两部分构成:方法由两部分构成:1 1、JSP(Jackson structuredProgramming)(杰克逊结构程序设计(杰克逊结构程序设计)2、JSD(Jackson System Development)二、二、Jackson方法方法课件制作人:谢希仁三、原型化方法三、原型化方法原原原原型型型型是是是是软软软软件件件件开开开开发发发发过过过过程程程程中中中中,软软软软件件件件的的的的一一一一个个个个早早早早期期期期可可可可运运运运行行行行的的的的版本,它反映了最终系统的部分重要特性。版本,它反映了最终系统的部分重要特性。版本,它反映了最终系统的部分重要特性。版本,它反映了最终系统的部分重要特性。原原原原型型型型化化化化方方方方法法法法的的的的基基基基本本本本思思思思想想想想是是是是花花花花费费费费少少少少量量量量代代代代价价价价建建建建立立立立一一一一个个个个可可可可运运运运行行行行的的的的系系系系统统统统,使使使使用用用用户户户户及及及及早早早早获获获获得得得得学学学学习习习习的的的的机机机机会会会会,原原原原型型型型化化化化方方方方法法法法又又又又称称称称速速速速成成成成原原原原型型型型法法法法(Rapid Rapid Rapid Rapid PrototypingPrototypingPrototypingPrototyping)。强强强强调调调调的的的的是是是是软软软软件件件件开开开开发发发发人人人人员员员员与与与与用用用用户户户户的的的的不不不不断断断断交交交交互互互互,通通通通过过过过原原原原型型型型的的的的演演演演进进进进不不不不断断断断适适适适应应应应用用用用户户户户任任任任务务务务改改改改变变变变的的的的需需需需求求求求。将将将将维维维维护护护护和和和和修修修修改改改改阶阶阶阶段段段段的的的的工工工工作作作作尽尽尽尽早早早早进行,使用户验收提前,从而使软件产品更加适用。进行,使用户验收提前,从而使软件产品更加适用。进行,使用户验收提前,从而使软件产品更加适用。进行,使用户验收提前,从而使软件产品更加适用。课件制作人:谢希仁四、四、HIPOHIPO法法HIPOHIPO法(法(Hierarchy Plus InputProcessHierarchy Plus InputProcessOutputOutput),按功能层次结构分析法,),按功能层次结构分析法,7474年由年由IBMIBM公司推出公司推出的软件分析及设计方法,又称的软件分析及设计方法,又称HIPOHIPO图。图。HIPOHIPO图是以功能、功能完备性准则逐层分解的。图是以功能、功能完备性准则逐层分解的。由直观目录表(由直观目录表(H H图),概要图),概要HIPOHIPO图,详细图,详细IPOIPO图三图三部分组成。部分组成。课件制作人:谢希仁面向对象软件工程面向对象软件工程 OOSDOOSD(Object-Oriented Object-Oriented Software Software DevelopmentDevelopment)法法这这是是8080年年代代推推出出的的一一种种全全新新的的软软件件开开发发方方法法。非非常常实实用用而而强强有有力力,被被誉誉为为9090年年代代软软件件的的核核心技术之一。心技术之一。其其基基本本思思想想是是:对对问问题题领领域域进进行行自自然然的的分分割割,以以更更接接近近人人类类通通常常思思维维的的方方式式建建立立问问题题领领域域的的模模型型,以以便便对对客客观观的的信信息息实实体体进进行行结结构构和和行行为为的的模模拟拟,从从而而使使设设计计的的软软件件更更直直接接地地表表现现问问题题的的求求解解过过程程。面面向向对对象象的的开开发发方方法法以以对对象象作作为为最最基基本本的的元元素素,是是分分析析和和解解决决问问题题的的核核心心。课件制作人:谢希仁软件复用技术(基于构件的软件工程)软件复用技术(基于构件的软件工程)“软件重用软件重用”或或“软件复用软件复用”(Software ReuseSoftware Reuse)是)是指将已有的软件成分用于指将已有的软件成分用于构造新的软件系统构造新的软件系统构造新的软件系统构造新的软件系统。该技术是。该技术是提高软件生产率和质量,降低成本的有效方法。提高软件生产率和质量,降低成本的有效方法。一、复用方式一、复用方式一、复用方式一、复用方式复复用用程程序序:包包括括目目标标代代码码和和源源代代码码的的复复用用,可可通通过过连连接接(Link)(Link)、绑绑定定(Binding)(Binding)、包包含含(include)(include)等等功功能能支持及对象链接及嵌入支持及对象链接及嵌入(OLE)(OLE)技术实现。技术实现。复用设计复用设计:设计结果比源程序的抽象级别高,因此复设计结果比源程序的抽象级别高,因此复用受环境影响小。可以通过从现有用受环境影响小。可以通过从现有系统系统中提取全部或中提取全部或者不同粒度的设计构件,或者独立于具体应用开发设者不同粒度的设计构件,或者独立于具体应用开发设计构件。计构件。课件制作人:谢希仁复用分析复用分析 比设计复用级别更高,实现方式与设计复用类似。比设计复用级别更高,实现方式与设计复用类似。复用结构复用结构 复用模块结构或者复用模块结构或者数据结构数据结构。课件制作人:谢希仁二、可复用的构件二、可复用的构件二、可复用的构件二、可复用的构件 构件构件是指可以被明确标识的软件制品,可以是是指可以被明确标识的软件制品,可以是软件开发不同阶段的产品。软件开发不同阶段的产品。可复用构件可复用构件是指可被其它系统复用,用于构成新是指可被其它系统复用,用于构成新系统的构件。系统的构件。课件制作人:谢希仁可复用构件的特性:可复用构件的特性:1.独立性独立性 解决相对独立的问题,与外界联系尽量少。解决相对独立的问题,与外界联系尽量少。2.完整性完整性 既要包括完整的解决方案,还定义相应操既要包括完整的解决方案,还定义相应操作。作。3.通用性通用性 在同类应用中具有一般性。在同类应用中具有一般性。4.可标识性可标识性 通过合适的命名,构件所解决的问题是通过合适的命名,构件所解决的问题是可标识的。可标识的。5.可适应性可适应性 适应环境变化。适应环境变化。6.可靠性可靠性 对各个使用它的系统都具有高的可靠性。对各个使用它的系统都具有高的可靠性。课件制作人:谢希仁两种程序设计方法n程序设计的两次飞跃程序设计的两次飞跃 程序设计从主要依赖于程序员个人的自由活动变成有章可循的一门学科结构化程序设计l面向过程的程序面向过程的程序=算法算法+数据结构数据结构结构化程序设计到面向对象程序设计,是程序设计方法的又一次飞跃l面向对象的程序面向对象的程序=对象对象+消息消息课件制作人:谢希仁面向过程和面向对象的编码存款取款利息结算帐户余额帐户余额利息结算存 款取 款例例:VB:VB的对象的对象Form1Form1下下课件制作人:谢希仁两类软件工程方法传统软件工程软件分析 总体设计 详细设计 面向过程的编码 测试 系统设计面向对象软件工程软件分析与对象抽取 对象详细设计 面向对象的编码 测试建立模型运行与维护运行与维护课件制作人:谢希仁面向对象的系统分析与设计方法课件制作人:谢希仁1.4 软件工程的应用一、软件的分类一、软件的分类1 1、按照软件功能划分、按照软件功能划分系统软件系统软件 如操作系统、设备驱动程序等。如操作系统、设备驱动程序等。支支撑撑软软件件(实实用用软软件件)协协助助用用户户开开发发的的工工具具软件,如编辑程序、程序库、图形软件包等。软件,如编辑程序、程序库、图形软件包等。应应用用软软件件 如如工工程程与与科科学学计计算算软软件件、CAD/CAMCAD/CAM软软件、件、CAICAI软件、信息管理系统等。软件、信息管理系统等。课件制作人:谢希仁2 2 2 2、按照软件规模划分、按照软件规模划分、按照软件规模划分、按照软件规模划分类类 别别参加人数参加人数研制期限研制期限产品规模(源代码行)产品规模(源代码行)微微 型型11 4 周周0.5K小小 型型11 6 月月1K 2K中中 型型2-51 2 年年5 50 K大大 型型5-202 3 年年50 500 K甚大型甚大型100-10004 5 年年1M极大型极大型2000-50005 10 年年1M 10 M3 3 3 3、按照软件工作方式划分、按照软件工作方式划分、按照软件工作方式划分、按照软件工作方式划分实时处理软件实时处理软件交互式软件交互式软件批处理软件批处理软件4 4 4 4、按照软件服务对象的范围划分、按照软件服务对象的范围划分、按照软件服务对象的范围划分、按照软件服务对象的范围划分项目软件项目软件 由客户委托开发的软件。由客户委托开发的软件。产品软件产品软件 由软件开发机构开发,提供给市场的。由软件开发机构开发,提供给市场的。课件制作人:谢希仁1.4 软件工程的应用n软件工程指导中小型软件n软件工程指导大型软件n软件工程的成就n软件工程的局限课件制作人:谢希仁软件工程的最新发展动向软件工程研究的最新动向软件工程研究的最新动向n软件形式语言的研究软件形式语言的研究n构件技术构件技术n质量管理质量管理提高工作效率计算机辅助软件工程环境工具箱软件工具模型课件制作人:谢希仁1.5 应正确认识和处理好的几个关系 1.1.传统软件工程与现代软件工程的关系传统软件工程与现代软件工程的关系 虽然两类工程规范存在很大的差异,但他们还虽然两类工程规范存在很大的差异,但他们还有不少共同点,许多在传统软件工程中总结的指导有不少共同点,许多在传统软件工程中总结的指导思想在面向对象软件工程中仍具有指导意义。有些思想在面向对象软件工程中仍具有指导意义。有些在传统软件工程中行之有效的分析和设计方法(如在传统软件工程中行之有效的分析和设计方法(如模块化设计、抽象与细化等)在面向对象中继续适模块化设计、抽象与细化等)在面向对象中继续适用,有些方法(如分析与设计建模)在面向对象中用,有些方法(如分析与设计建模)在面向对象中还有发展。并且,面向对象软件工程还有所发展,还有发展。并且,面向对象软件工程还有所发展,在面向对象软件工程趋于成熟的同时,新一代软件在面向对象软件工程趋于成熟的同时,新一代软件工程工程“构件工程构件工程”正在逐步扩大其应用范围。正在逐步扩大其应用范围。课件制作人:谢希仁 2.2.软件工程原理与软件工程方法的关系软件工程原理与软件工程方法的关系 软件工程总结了大量的精辟原理(清晰第一,软件工程总结了大量的精辟原理(清晰第一,效率第二;设计优先编码;使程序结构适合问效率第二;设计优先编码;使程序结构适合问题结构;开发伴随复用,开发伴随复用等)和题结构;开发伴随复用,开发伴随复用等)和科学方法(结构化分析;结构化设计;科学方法(结构化分析;结构化设计;OOOO分析;分析;OOOO设计;设计;UMLUML语言;白盒测试和黑盒测试等)。语言;白盒测试和黑盒测试等)。要注意原理(指导)和方法(应用)的结合。要注意原理(指导)和方法(应用)的结合。课件制作人:谢希仁 3.3.软件工程技术与软件工程管理的关软件工程技术与软件工程管理的关系系 软件工程技术与管理是软件开发的两个方软件工程技术与管理是软件开发的两个方面,没有管理,再好的技术都不能充分发挥作面,没有管理,再好的技术都不能充分发挥作用。管理离不开度量,用。管理离不开度量,“靠度量来管理靠度量来管理”已经已经成为现代管理的一条重要原则。软件度量学和成为现代管理的一条重要原则。软件度量学和软件经济学是该原则在软件工程中的具体体现。软件经济学是该原则在软件工程中的具体体现。课件制作人:谢希仁 4.4.形式化方法与非形式化方法的关系形式化方法与非形式化方法的关系 形式化方法是软件工程的高级研究课题之一,形式化方法是软件工程的高级研究课题之一,是一种基于数学的开发方法,它采用数学方是一种基于数学的开发方法,它采用数学方法来描述系统的性质。非形式化方法主要用法来描述系统的性质。非形式化方法主要用图、表、文本、符号等来描述系统模型。图、表、文本、符号等来描述系统模型。课件制作人:谢希仁 5.5.小程序设计与大程序设计的关系小程序设计与大程序设计的关系 不论大小软件,都应使用软件工程的原理不论大小软件,都应使用软件工程的原理方法来指导开发,只有学会有效地编写小程方法来指导开发,只有学会有效地编写小程序,才可能有效地编写大程序。序,才可能有效地编写大程序。课件制作人:谢希仁结束语当你尽了自己的最大努力时,失败也是伟大的,所以不要放弃,坚持就是正确的。When You Do Your Best,Failure Is Great,So DonT Give Up,Stick To The End感谢聆听不足之处请大家批评指导Please Criticize And Guide The Shortcomings演讲人:XXXXXX 时 间:XX年XX月XX日
展开阅读全文