1、 chapter_01教材和参考书教材和参考书教材:教材:Roger S Pressman 著。软件工程:实践者的研究方法。第7版。梅宏译。北京:机械工业出版社,2011主要参考书:主要参考书:l Software Engineering(Eighth edition)作者作者 Sommervillel 软件工程案例教程软件工程案例教程 韩万江韩万江 机械工业出版社,机械工业出版社,2010年年7月月l Stephen R.Schach著,面向对象与传统软件工程:统著,面向对象与传统软件工程:统一过程的理论与实践一过程的理论与实践(原书第(原书第6版),机械工业出版社,版),机械工业出版社,2
2、006年第年第1版版 l卡耐基-梅隆大学软件工程研究所编著。能力成熟度模型(CMM):软件过程改进指南。刘孟仁等译。北京:电子工业出版社,2001lIvar Jacobson,Grady Booch,James Rumbaugh著。统一开发软件工程。周伯生,冯学民,樊东平译。北京:机械工业出版社,2002lScott W Ambler著。敏捷建模:极限编程和统一过程的有效实现。张嘉路等译。北京:机械工业出版社,2003lIBM大学站点 http:/ http:/Questions:v为什么学习本课程?为什么学习本课程?v希望从中学到什么?希望从中学到什么?v对本课程有些什么了解?诸如:软件开对
3、本课程有些什么了解?诸如:软件开发方面有什么体会?什么是软件?什么是发方面有什么体会?什么是软件?什么是工程?如何有效进行软件开发?软件就是工程?如何有效进行软件开发?软件就是程序吗?程序吗?v怎么学?怎么学?chapter_03课程目标课程目标v 是什么?是什么?v 了解了解“软件工程软件工程”学科的形成和发展,思想精髓学科的形成和发展,思想精髓 v 为什么?为什么?v 软件危机软件危机 v 怎么办?怎么办?v 学习学习“软件工程规范软件工程规范”v 掌握与大型软件系统相关的规划、分析、设计、实现、测掌握与大型软件系统相关的规划、分析、设计、实现、测试与维护等概念、原理、方法、工具与过程;试
4、与维护等概念、原理、方法、工具与过程;v 掌握掌握“软件工程软件工程”的基本管理方法;的基本管理方法;v 培养团队合作精神;培养团队合作精神;v 训练实际软件工程动手的能力。训练实际软件工程动手的能力。chapter_04课程内容目录课程内容目录v 第一部分第一部分 软件过程软件过程v 第一章第一章 软件工程概述(软件工程概述(2学时)学时)v 第二章第二章 软件过程(软件过程(6学时)学时)v 第二部分第二部分 建模建模v 第三章第三章 需求建模与分析(需求建模与分析(6学时)学时)v 第四章第四章 系统设计(系统设计(4学时)学时)v 第五章第五章 用户界面设计用户界面设计v 第六章第六章
5、 详细设计(详细设计(4学时)学时)v 第三部分第三部分 质量管理质量管理v 第七章第七章 项目编码(项目编码(2学时)学时)v 第八章第八章 项目测试(项目测试(6学时)学时)v 第九章第九章 软件项目管理与质量保障(软件项目管理与质量保障(4学时)学时)chapter_05考核方式考核方式v期末成绩(期末成绩(50)v平时(平时(50)课堂讨论、发言(课堂讨论、发言(15分)分)课后阅读材料、查阅情况(奖励课后阅读材料、查阅情况(奖励5-10分)分)项目完成质量(文档程序,按时程度)(项目完成质量(文档程序,按时程度)(15分)分)小组长适当加分(管理质量)小组长适当加分(管理质量)课堂作
6、业与考勤(课堂作业与考勤(10分)分)chapter_06关于本课程关于本课程v 项目选择项目选择 v 1电脑公司在线购物系统电脑公司在线购物系统 v 2音像商店租售系统音像商店租售系统 v 3学生信息管理系统学生信息管理系统 v 4资料室图书管理系统资料室图书管理系统 v 5航空机票预订系统航空机票预订系统 v 6教材购销系统教材购销系统 v 7企业人事信息管理系统企业人事信息管理系统 v 8高校工资管理系统高校工资管理系统 v 9小型旅行社业务管理系统小型旅行社业务管理系统 v 10零售药店管理系统零售药店管理系统 v 11小型超市管理系统小型超市管理系统 chapter_07关于本课程关
7、于本课程v 说明与要求说明与要求 v 项目规模:小型项目规模:小型 v 每组每组58人,人,1个小组长个小组长v 一个题目最多一个题目最多2个组,不得抄袭个组,不得抄袭 v 分阶段进行验收,超时没有成绩分阶段进行验收,超时没有成绩 v 教学方法教学方法 讲解讲解 自习、阅读自习、阅读 讨论讨论 chapter_08第一章第一章软件工程概述软件工程概述HeBei Normal University of Science&Technology软件工程概述软件工程概述v软件的概念、特性和分类软件的概念、特性和分类v软件危机与软件工程软件危机与软件工程v系统工程的目标系统工程的目标v软件工程三要素软件
8、工程三要素v软件工程知识体系及知识域软件工程知识体系及知识域HeBei Normal University of Science&Technology1.1软件概述软件概述v软件的概述及特点软件的概述及特点v软件的分类软件的分类典型典型helloworld程序程序太简单太简单!不要设计不要设计#include int main()printf(“helloworld!”);/输出输出helloworld!return 0;图书馆图书信息管理软件图书馆图书信息管理软件复杂复杂!需要设计需要设计图书馆信息管理系统图书馆信息管理系统-需求分析需求分析图书馆信息管理系统图书馆信息管理系统-功能设计功能
9、设计图书馆信息管理系统图书馆信息管理系统-物理模型设计物理模型设计图书馆信息管理系统图书馆信息管理系统部分逻辑模型设计部分逻辑模型设计图书馆信息管理系统图书馆信息管理系统-数据设计数据设计-过程设计图书馆信息管理系统-界面设计软件的概述及特点软件的概述及特点计算机软件与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。软件 程序及有关数据机器可执行;文档(与软件开发、运行、维护、使用、培训有关)不可执行。程序(program)用程序设计语言描述的,适合 于计算机处理的语句序列。软件的概述及特点软件的概述及特点软件是逻辑产品,硬件是物理产品。特点:(1)软件开发更依赖于开发人员的业
10、务素质、智力、人员的组织、合作和管理。软件开发、设计几 乎都是从头开始,成本和进度很难估计。(2)软件存在潜伏错误,硬件错误一般能排除。(3)软件开发成功后,只需对原版进行复制。(4)软件在使用过程中维护复杂。(5)软件不会磨损和老化。软件的概述及特点软件的概述及特点文档(document)一种数据媒体和其上所记录的数据。文档记录软件开发活动和阶段成果,具有永久性,可供 人或机器阅读。文档可用于 专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。软件的概述及特点软件的概述及特点图 1 1 硬件失效曲线图软件的概述及特点软件的概述及特点图 1 2 软件失效曲线图软件的分类软件的
11、分类图 1 3 软件的分类1.2软件危机软件危机v 软件危机的表现与原因软件危机的表现与原因v 软件危机的启示软件危机的启示HeBei Normal University of Science&Technology软件危机的表现与原因软件危机的表现与原因l软件危机暴发于上个世纪六十年代末。软件危机暴发于上个世纪六十年代末。l主要表现为:软件的发展速度远远滞后于硬件的发主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。开发周期长、成本高、质量差、维护困难。v软件危机软件危机软件
12、危机的表现与原因软件危机的表现与原因具体来说,软件危机主要有以下一些典型表现具体来说,软件危机主要有以下一些典型表现:对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。用户对用户对“已完成的已完成的”软件系统不满意的现象经常发生。软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件产品的质量往往靠不住。软件常常是不可维护的。软件常常是不可维护的。软件通常没有适当的文档资料。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,既跟不上硬件的发展速度,软件开发生产
13、率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。也远远跟不上计算机应用迅速普及深入的趋势。除了软件本身的特点,软件危机发生的主要原因有:除了软件本身的特点,软件危机发生的主要原因有:(1)(1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。工作的计划很难制定。(2)(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误存在错误 。(3)(3)软件开发过程不规范。如,没有真正了解用户的需求就开始软件开发过程不规范。如,没有真
14、正了解用户的需求就开始编程序。编程序。(4)(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。严格的管理。(5)(5)缺少有效的软件评测手段,提交用户的软件质量不能完全保缺少有效的软件评测手段,提交用户的软件质量不能完全保证。证。软件危机的表现与原因软件危机的表现与原因软件危机的启示软件危机的启示v彻底消除彻底消除“软件就是程序软件就是程序”的错误观念。的错误观念。v充分认识到软件开发应该是一种组织良好、管理充分认识
15、到软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。严密、各类人员协同配合、共同完成的工程项目。v推广和使用在实践中总结出来的开发软件的成功推广和使用在实践中总结出来的开发软件的成功技术、方法和工具。技术、方法和工具。v按工程化的原则和方法组织软件开发工作。按工程化的原则和方法组织软件开发工作。如何摆脱软件危机如何摆脱软件危机?1.3软件工程软件工程v 软件工程概念软件工程概念v 软件工程发展软件工程发展v 软件工程目标和原则软件工程目标和原则v 软件工程知识体软件工程知识体软件工程概念软件工程概念v为了克服软件危机,为了克服软件危机,1968年年10月在北大西洋公约
16、月在北大西洋公约组织(组织(NATO)召开的计算机科学会议上,)召开的计算机科学会议上,Fritz Bauer首次提出首次提出“软件工程软件工程”的概念,试图将工的概念,试图将工程化方法应用于软件开发。程化方法应用于软件开发。v在在NATO会议上,会议上,Fritz Bauer对软件工程的定义对软件工程的定义是:是:“软件工程就是为了经济地获得可靠的且能软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用在实际机器上有效地运行的软件,而建立和使用完善的工程原理。完善的工程原理。”软件工程概念软件工程概念v1993年年IEEE(Institute of Electric
17、al&Electronic Engineers,电气与电子工程,电气与电子工程师协会)给出的定义:师协会)给出的定义:v “软件工程是:软件工程是:把系统的、规范的、把系统的、规范的、可度量的途径应用于软件开发、运行和维可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;护过程,也就是把工程应用于软件;研研究究中提到的途径。中提到的途径。”软件工程概念软件工程概念图 1 4 软件工程层次图软件工程概念软件工程概念v软件工程软件工程是指导计算机软件开发和维护的一门是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方工程学科。采用工程的概念、原理、技术和方法来开
18、发和维护软件,把经过时间考验而证明法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术结正确的管理技术和当前能够得到的最好技术结合起来,以经济地开发出高质量的软件并有效合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。地维护它,这就是软件工程。软件工程目标和原则软件工程目标和原则v软件工程要达到的基本目标包括:软件工程要达到的基本目标包括:达到要求的软件功能;取得较好的软件性能;开发出高质量的软件;付出较低的开发成本;需要较低的维护费用;能按时完成开发工作,及时交付使用。软件工程目标和原则软件工程目标和原则(1)(1)按软件生存周期分阶段制订计划并认真
19、实施按软件生存周期分阶段制订计划并认真实施 (2)(2)坚持进行阶段评审坚持进行阶段评审(3)(3)坚持严格的产品控制坚持严格的产品控制(4)(4)使用现代软件开发技术使用现代软件开发技术(5)(5)明确责任明确责任(6)(6)用人少而精用人少而精(7)(7)不断改进开发过程不断改进开发过程 软件工程目标和原则软件工程目标和原则v 为了达到上述目标,软件工程设计、工程支持以及工程管为了达到上述目标,软件工程设计、工程支持以及工程管理在软件开发过程中必须遵循一些基本原则。著名软件工理在软件开发过程中必须遵循一些基本原则。著名软件工程专家程专家B.BoehmB.Boehm综合有关专家和学者的意见并
20、总结了多年综合有关专家和学者的意见并总结了多年来开发软件的经验,提出了软件工程的七条基本原则:来开发软件的经验,提出了软件工程的七条基本原则:用分阶段的生存周期计划进行严格的管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 软件工程结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件工程实践的必要性 B.Boehm指出,遵循前六条基本原则,能够实现软件的工程化生产;指出,遵循前六条基本原则,能够实现软件的工程化生产;按照第七条原则,不仅要积极主动地采纳新的软件技术,而且要按照第七条原则,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。注意不断总结经验。一些不
21、正确的观念v观点之一 我们拥有一套讲述如何开发软件的书籍,书中充满了标准与示例,可以帮助我们解决软件开发中遇到的任何问题。v观点之二 如果我们已经落后于计划,可以增加更多的程序员来赶上进度。v观点之三 有了对目标的一般描述就足以开始写程序了,我们以后可以再补充细节。v观点之四 一旦我们写出了程序并使其正常运行,我们的工作就结束了。人们有时认为,只有差的软件产品才需要维护。1.4 软件工程的三个要素软件工程的三个要素Software engineering layers软件工程三个要素:方法、工具、过程17 August 202241(1)v 常见的软件开发方法包括:常见的软件开发方法包括:结构
22、化方法面向数据结构方法面向对象方法形式化方法 从工程方法看:是一种软件开发的从工程方法看:是一种软件开发的结构化方法结构化方法,其目的在,其目的在于使高质量软件的生产性价比较高。于使高质量软件的生产性价比较高。从产品生产组织(管理)方式看:包括对软件过程的从产品生产组织(管理)方式看:包括对软件过程的建议建议、使用的使用的标记标记法、进行法、进行系统描述的规则系统描述的规则和和设计指南设计指南。方法的构成:系统的模型方法的构成:系统的模型+规则规则+建议建议+过程指南过程指南(2)软件工程工具软件工程工具v软件工程的工具对软件工程中的过程和方法软件工程的工具对软件工程中的过程和方法提供自动的或
23、半自动的支持。可以帮助软件提供自动的或半自动的支持。可以帮助软件开发人员方便、简捷、高效地进行软件的分开发人员方便、简捷、高效地进行软件的分析、设计、开发、测试、维护和管理等工作。析、设计、开发、测试、维护和管理等工作。有效地利用工具软件可以提高软件开发的质有效地利用工具软件可以提高软件开发的质量,减少成本,缩短工期,方便软件项目的量,减少成本,缩短工期,方便软件项目的管理。管理。软件工程工具软件工程工具v软件工程工具通常有三种分类标准:软件工程工具通常有三种分类标准:按照功能划分:按照功能划分:功能是对软件进行分类的最常用的标准,按照功能划分,软件工程工具可分为可视化建模工具、程序开发工具、
24、自动化测试工具、文档编辑工具、配置管理工具、项目管理工具等。按照支持的过程划分:按照支持的过程划分:根据支持的过程,软件工程工具可分为设计工具、编程工具、维护工具等。按照支持的范围划分:按照支持的范围划分:根据支持的范围,软件工程工具可以分为窄支持、较宽支持和一般支持工具。窄支持工具支持软件工程过程中的特定任务,一般将其称之为工具;较宽支持支持特定的过程阶段,一般由多个工具集合而成,称之为工作台;一般支持支持覆盖软件过程的全部或大部分阶段,包含多个不同的工作台,称之为环境。软件工程工具软件工程工具v具体的说,在实际软件工程项目执行过程中,具体的说,在实际软件工程项目执行过程中,经常会使用到的软
25、件工程工具包括:经常会使用到的软件工程工具包括:分析设计工具程序开发工具 测试工具 配置管理工具 项目管理工具 17 August 2022信息工程学院软件工程教研室45IBM RationalIBM Rational公司产品(公司产品(http:/ PVCS,RUPRUP需求管理:需求管理:IBM Rational RequisitePro IBM Rational RequisitePro 可视化建模:可视化建模:RoseRose自动测试:自动测试:Robot,Test Realtime,TestManager,XDE Robot,Test Realtime,TestManager,XDE
26、 TesterTester项目管理:项目管理:ProjectConsoleProjectConsole配置管理:配置管理:ClearCase,ClearQuestClearCase,ClearQuest开源开源CASE CASE 工具(工具(http:/ Modeler:UML Modeler:UMLUML 模型图形编辑工具模型图形编辑工具UML2EJB:UML2EJB:将将XML XML 表示的表示的UML UML 模型转换成模型转换成EJB EJB 代码的转换器代码的转换器分析设计工具分析设计工具(1)Microsoft Visio(2)Rational Rose(3)Together(4
27、)PowerDesigner(5)CASE Studio程序开发工具程序开发工具(1)Microsoft Visual Studio(2)Eclipse(3)NetBeans(4)Delphi(5)Dev C+测试工具测试工具(1)Load Runner(2)Win Rnnner(3)Segue配置管理工具配置管理工具(1)Microsoft Visual SourcesafeMicrosoft Visual SourceSafe是微软公司出品的版本控制系统,简称VSS。软件支持Windows系统所支持的所有文件格式,通常与微软公司的Visual Studio产品同时发布,并且高度集成。包括服
28、务器和通过网络可以连接服务器的客户端。VSS提供了基本的认证安全和版本控制机制,提供历史版本对比,适合于个人程序开发的版本管理。(2)ClearCaseClearCase是Rational公司开发的配置管理工具,可以与Windows资源管理器集成使用,并且还可以与很多开发工具集成在一起使用。ClearCase主要应用于复杂的产品发放、分布式团队合作、并行的开发和维护任务,包括支持当今流行软件开发环境Client/Server网络结构。它包含了一套完整的软件配置管理工具而且结构透明、界面可亲。项目管理工具项目管理工具(1)Microsoft Project(2)CA-SuperProject(3
29、)Time Line工具类型工具类型举例举例软件支持软件支持规划工具规划工具PERT工具、估算工具、工具、估算工具、电子表格工具电子表格工具Visio2007,excel2007,Project,Estimate,Exchange 2000 等。等。编辑工具编辑工具文本编辑器,图表编辑文本编辑器,图表编辑器,字处理器器,字处理器Word,smartdraw,visio等。等。变更管理工具变更管理工具需求跟踪工具,变更控需求跟踪工具,变更控制系统制系统Rational ClearCASE,Rational ClearQuest,Telelogic DOORS等。等。配置管理工具配置管理工具版本管
30、理工具,系统建版本管理工具,系统建立工具立工具SVC,CVS,SVN,Merant PVCS,Dimensions,SYNERGY/CM,。原型建立工具原型建立工具高端语言,用户界面生高端语言,用户界面生成器成器layout controllist等。等。方法支持工具方法支持工具设计编辑器,数据字典,设计编辑器,数据字典,代码生成器代码生成器Sybase PowerDesign,Rational Rose等。等。语言处理工具语言处理工具编译器,解释器编译器,解释器Visual 2005,Eclipse JBbulid,J2EE,PowerBuilder 9.0等。等。数据库工具数据库工具ER图
31、生成图生成PB8.0,Ems,MySQL,managerV0.9.6.1,Erwin4.0 sp2 quickdesk2.2,develop2000,PowerDesign,Rational Rose等。等。程序分析工具程序分析工具交叉索引生成器,静态交叉索引生成器,静态分析器,动态生成分析器,动态生成器器PREfast,FxCop(Visual Studio 2005 Team System中提供中提供),sourceNavigator,Analysistool,各种程序分析器等。,各种程序分析器等。测试工具测试工具测试数据生成器,文件测试数据生成器,文件比较器比较器Mercury公司的公司
32、的LoadRunner、WinRunner、TestDirector和和QuickTestPro,Rational 系列测试软件,、系列测试软件,、CM Synergy 和和Telelogic Tau等。等。调试工具调试工具交互式调试系统交互式调试系统集成于各类开发工具等。集成于各类开发工具等。编写文档工具编写文档工具页面输出程序,图像编页面输出程序,图像编辑器辑器Word,excel,SmartDraw,PowerPoint,PDF等。等。再工程工具再工程工具交叉索引系统,程序重交叉索引系统,程序重构系统构系统青鸟青鸟JBPAS,FAMOOS,McCabe Reengineering等。等。
33、17 August 2022信息工程学院软件工程教研室51软件过程模型软件过程模型v软件过程模型是从一个特定的角度提出软件过程软件过程模型是从一个特定的角度提出软件过程的简化描述。的简化描述。(1)工作流)工作流(2)数据流或活动)数据流或活动(3)角色)角色/动作动作(4)瀑布型开发方法)瀑布型开发方法(5)进化型开发方法)进化型开发方法(6)形式化转换)形式化转换(7)基于可复用的组件的系统组合)基于可复用的组件的系统组合1.5 软件工程知识体系及知识域软件工程知识体系及知识域v软件工程知识体软件工程知识体软件工程已从计算机科学与技术中脱离出来,逐软件工程已从计算机科学与技术中脱离出来,逐
34、渐形成了一门独立的学科。对其知识体系的研究渐形成了一门独立的学科。对其知识体系的研究从从2020世纪世纪9090年代初就开始了。年代初就开始了。标志是美国标志是美国Embry-RiddleEmbry-Riddle航空大学计算与数学系航空大学计算与数学系Thomas B.HilburnThomas B.Hilburn教授的教授的“软件工程知识体系指软件工程知识体系指南南”(Guide to Software Engineering Body Guide to Software Engineering Body of Knowledgeof Knowledge,SWEBOKSWEBOK)研究项目。
35、)研究项目。软件工程知识体系及知识域软件工程知识体系及知识域v软件工程知识体系指南的内容软件工程知识体系指南的内容 SWEBOKSWEBOK指南将软件工程知识体系划分为指南将软件工程知识体系划分为1010个知识个知识域(域(knowledge areasknowledge areas,KAKA),分为两类过程。),分为两类过程。一类是一类是开发与维护过程开发与维护过程,包括软件需求、软件设,包括软件需求、软件设计、软件构造、软件测试和软件维护;计、软件构造、软件测试和软件维护;另一类是另一类是支持和组织过程支持和组织过程,包括软件配置管理、,包括软件配置管理、软件工程管理、软件工程过程、软件工
36、程工具与软件工程管理、软件工程过程、软件工程工具与方法和软件质量。每个知识域还可进一步分解为方法和软件质量。每个知识域还可进一步分解为若干论题。若干论题。软件工程知识体系指南的内容软件工程知识体系指南的内容 “软件工程软件工程”课程课程 “软件工程软件工程”课程教学与实践的目标课程教学与实践的目标v 转变对软件开发的认识:转变对软件开发的认识:上升上升 程序程序 系统系统v 转变思维定式:转变思维定式:上升上升 程序员程序员 系统工程师系统工程师 (系统分析员系统分析员)v 工程化训练工程化训练“一个好的工业,应有一套一个好的工业,应有一套良好的标准来配套良好的标准来配套”软件的工业化生产过程应具备的特点:软件的工业化生产过程应具备的特点:明确的工作步骤明确的工作步骤详细具体的规范化文档详细具体的规范化文档明确的质量评价标准明确的质量评价标准软件产品的标准化软件开发过程的标准化软件工程过程的改进软件工程技术的两个明显特点软件工程技术的两个明显特点v 强调规范化强调规范化v 强调文档化强调文档化【第一章【第一章 软件工程概述】软件工程概述】