第一讲:软件工程概述软件的定义软软件件是是计计算算机机系系统统中中与与硬硬件件相相互互依依存存的的另另一一部部分分,,它它是是包包括括程程序序,,数数据据及及其其相相关关文文档档的的完完整整集集合合。。程程序序是是按按事事先先设设计计的的功功能能和和性性能能要要求求执执行行的的指指令令序序列列数数据据是是使使程程序序能能正正常常操操纵纵信信息息的的数数据据结结构构文文档档是是与与程程序序开开发发,,维维护护和和使使用用有有关关的的图图文文材材料料软件危机软件危机是指计算机软件开发和维护过程中所遇到的一系列严重问题。概括的说即为:能否满足对软件日益增长的需求?能否维护数量日益增长的现有软件?软件工程的定义BBooeehhmm::运运用用现现代代科科学学技技术术知知识识来来设设计计并并构构造造计计算算机机程程序序及及为为开开发发、、运运行行和和维维护护这这些些程程序序所所必必需需的的相相关关文文件件资资料料IIEEEEEE::软软件件工工程程是是开开发发、、运运行行、、维维护护和和修修复复软软件件的的系系统统方方法法FFrriittzzBBaauueerr::建建立立并并使使用用完完善善的的工工程程化化原原则则,,以以较较经经济济的的手手段段获获得得能能在在实实际际机机器器上上有有效效运运行行的的可可靠靠软软件件的的一一系系列列方方法法软件工程要素三三要要素素::方方法法、、工工具具和和过过程程((缺缺乏乏一一个个过过程程,,洗洗厕厕所所的的都都有有方方法法和和工工具具,,但但没没有有一一个个好好的的过过程程))软软件件工工程程方方法法为为软软件件开开发发提提供供了了““如如何何做做””的的技技术术软软件件工工具具为为软软件件工工程程方方法法提提供供了了自自动动的的或或半半自自动动的的软软件件支支撑撑环环境境软件生命周期(LifeCycle)软软件件有有一一个个孕孕育育、、诞诞生生、、成成长长、、成成熟熟、、衰衰亡亡的的生生存存过过程程。。这这个个过过程程即即为为计计算算机机软软件件的的生生命命周周期期软软件件生生存存期期的的六六个个步步骤骤,,即即制制定定计计划划、、需需求求分分析析、、设设计计、、实实现现、、测测试试及及运运行行维维护护软件生命周期:制订计划确确定定要要开开发发软软件件系系统统的的总总目目标标给给出出功功能能、、性性能能、、可可靠靠性性以以及及接接口口等等方方面面的的要要求求完完成成该该软软件件任任务务的的可可行行性性研研究究估估计计可可利利用用的的资资源源((硬硬件件,,软软件件,,人人力力等等))、、成成本本、、效效益益、、开开发发进进度度制制定定出出完完成成开开发发任任务务的的实实施施计计划划,,连连同同可可行行性性研研究究报报告告,,提提交交管管理理部部门门审审查查软件生命周期:需求分析对对用用户户提提出出的的要要求求进进行行分分析析并并给给出出详详细细的的定定义义,,得得到到系系统统逻逻辑辑模模型型,,可可用用数数据据流流程程图图、、数数据据字字典典和和简简要要算算法法加加以以表表示示。。编编写写软软件件需需求求说说明明书书或或系系统统功功能能说说明明书书及及初初步步的的系系统统用用户户手手册册提提交交管管理理机机构构评评审审软件生命周期:软件设计概概要要设设计计——把把各各项项需需求求转转换换成成软软件件的的体体系系结结构构。。结结构构中中每每一一组组成成部部分分都都是是意意义义明明确确的的模模块块,,每每个个模模块块都都和和某某些些需需求求相相对对应应。。详详细细设设计计——对对每每个个模模块块要要完完成成的的工工作作进进行行具具体体的的描描述述,,为为源源程程序序编编写写打打下下基基础础。。通通常常用用的的HHIIPPOO((层层次次图图加加输输入入//处处理理//输输出出图图))或或PPDDLL((过过程程设设计计语语言言))描描述述。。编编写写设设计计说说明明书书,,提提交交评评审审。。软件生命周期:实现编码把把软软件件设设计计转转换换成成计计算算机机可可以以接接受受的的程程序序代代码码,,即即写写成成以以某某一一种种特特定定程程序序设设计计语语言言表表示示的的““源源程程序序清清单单””写写出出的的程程序序应应当当是是结结构构良良好好、、清清晰晰易易读读的的,,且且与与设设计计相相一一致致的的软件生命周期:测试单单元元测测试试,,查查找找各各模模块块在在功功能能和和结结构构上上存存在在的的问问题题并并加加以以纠纠正正组组装装测测试试,,将将已已测测试试过过的的模模块块按按一一定定顺顺序序组组装装起起来来按按规规定定的的各各项项需需求求,,逐逐项项进进行行有有效效性性测测试试,,决决定定已已开开发发的的软软件件是是否否合合格格,,能能否否交交付付用用户户使使用用,,亦亦可可称称为为验验收收测测试试软件生命周期:运行与维护改改正正性性维维护护::运运行行中中发发现现了了软软件件中中的的错错误误需需要要修修正正适适应应性性维维护护::为为了了适适应应变变化化了了的的软软件件工工作作环环境境,,需需做做适适当当变变更更完完善善性性维维护护::为为了了增增强强软软件件的的功功能能需需做做变变更更预预防防性性维维护护::修修改改软软件件为为将将来来的的维维护护做做准准备备软件生存期模型软软件件生生存存期期模模型型是是跨跨越越整整个个生生存存期期的的系系统统开开发发、、运运作作和和维维护护所所实实施施的的全全部部过过程程、、活活动动和和任任务务的的结结构构框框架架瀑瀑布布模模型型\\演演化化模模型型\\螺螺旋旋模模型型\\喷喷泉泉模模型型\\智智能能模模型型瀑布模型的特点演化模型由由于于在在项项目目开开发发的的初初始始阶阶段段人人们们对对软软件件的的需需求求认认识识常常常常不不够够清清晰晰,,因因而而使使得得开开发发项项目目难难于于做做到到一一次次开开发发成成功功,,出出现现返返工工再再开开发发在在所所难难免免。。做做两两次次::第第一一次次只只是是试试验验开开发发,,其其目目标标只只是是在在于于探探索索可可行行性性,,弄弄清清软软件件需需求求第第二二次次则则在在此此基基础础上上获获得得较较为为满满意意的的软软件件产产品品螺螺旋旋模型螺螺旋旋模模型型沿沿着着螺螺线线旋旋转转,,在在四四个个象象限限上上分分别别表表达达四四个个方方面面的的活活动动,,即即::制制定定计计划划────确确定定软软件件目目标标,,选选定定实实施施方方案案,,弄弄清清项项目目开开发发的的限限制制风风险险分分析析────分分析析所所选选方方案案,,考考虑虑如如何何识识别别和和消消除除风风险险实实施施工工程程────实实施施软软件件开开发发客客户户评评估估────评评价价开开发发工工作作,,提提出出修修正正建建议议螺螺旋旋模型的特点把软件开发过程组成为一个逐步细化的可定义周期(螺旋周期)序列,每经历一个周期,系统就得到进一步的细化和完善;本质上,具有上述特征的螺旋是一直运转的直到软件退役。有时这个过程处于睡眠状态,但任何时候出现了改变,过程都会从合适的入口点开始;紧密围绕开发中的风险问题,用风险分析推动软件设计向深一层扩展、求精;强调持续地判断、确定和修改用户任务目标,并按成本、效益来分析候选的软件产品性质对任务目标的贡献;可结合采用多种软件开发方法,但究竟结合哪一种方法仍由风险分析来决定。喷泉模型迭迭代代重重复复\\演演进进无无间间隙隙各各阶阶段段间间无无明明显显界界限限,,支支持持分分析析和和设设计计结结果果的的自自然然复复用用。。适适用用面面向向对对象象的的软软件件开开发发过过程程。。RationalUnifiedModel软件工程的基本原则11、、抽抽象象。。采采用用分分层层次次抽抽象象,,自自顶顶向向下下、、逐逐层层细细化化的的办办法法控控制制软软件件开开发发过过程程的的复复杂杂性性。。22、、信信息息隐隐蔽蔽。。将将模模块块设设计计成成““黑黑箱箱””,,实实现现的的细细节节隐隐藏藏在在模模块块内内部部,,不不让让模模块块的的使使用用者者直直接接访访问问。。这这就就是是信信息息封封装装,,使使用用与与实实现现分分离离的的原原则则。。33、、模模块块化化模模块块化化有有助助于于信信息息隐隐蔽蔽和和抽抽象象,,有有助助于于表表示示复复杂杂的的系系统统。。44、、局局部部化化要要求求在在一一个个物物理理模模块块内内集集中中逻逻辑辑上上相相互互关关联联的的计计算算机机资资源源,,保保证证模模块块之之间间具具有有松松散散的的耦耦合合,,模模块块内内部部具具有有较较强强的的内内聚聚。。这这有有助助于于控控制制解解的的复复杂杂性性。。55、、确确定定性性软软件件开开发发过过程程中中所所有有概概念念的的表表达达应应是是确确定定的的、、无无歧歧义义性性的的、、规规范范的的。。66、、一一致致性性整整个个软软件件系系统统的的各各个个模模块块应应使使用用一一致致的的概概念念、、符符号号和和术术语语。。程程序序内内部部接接口口应应保保持持一一致致。。软软件件和和硬硬件件、、操操作作系系统统的的接接口口应应保保持持一一致致。。系系统统规规格格说说明明与与系系统统行行为为应应保保持持一一致致。。用用于于形形式式化化规规格格说说明明的的公公理理系系统统应应保保持持一一致致。。77、、完完备备性性软软件件系系统统不不丢丢失失任任何何重重要要成成分分,,可可以以完完全全实实现现系系统统所所要要求求功功能能的的程程度度。。为为了了保保证证系系统统的的完完备备性性,,在在软软件件开开发发和和运运行行过过程程中中需需要要严严格格的的技技术术评评审审。。88、、可可验验证证性性开开发发大大型型的的软软件件系系统统需需要要对对系系统统自自顶顶向向下下、、逐逐层层分分解解。。系系统统分分解解应应遵遵循循系系统统易易于于检检查查、、测测试试、、评评审审的的原原则则,,以以确确保保系系统统的的正正确确性性。。第二讲:软件分析需需求求分分析析的的任任务务••需需求求分分析析的的任任务务就就是是借借助助于于当当前前系系统统的的逻逻辑辑模模型型导导出出目目标标系系统统的的逻逻辑辑模模型型,,解解决决目目标标系系统统的的““做做什什么么””的的问问题题。。需求分析的任务••深深入入描描述述软软件件的的功功能能和和性性能能••确确定定软软件件设设计计的的约约束束和和软软件件同同其其它它系系统统元元素素的的接接口口细细节节••定定义义软软件件的的其其它它有有效效性性需需求求••准准确确地地表表达达被被接接受受的的用用户户要要求求••确确定定被被开开发发软软件件系系统统的的系系统统元元素素••将将功功能能和和信信息息结结构构分分配配到到这这些些系系统统元元素素中中弄弄清清需需求求的的分分析析技技巧巧需求分析的过程••问问题题识识别别••分分析析与与综综合合••编编制制需需求求分分析析阶阶段段的的文文档档资资料料••需需求求分分析析评评审审需求分析的过程—问问题题识识别别从从系系统统的的角角度度来来理理解解软软件件并并评评审审软软件件范范围围是是否否恰恰当当确确定定对对目目标标系系统统的的综综合合要要求求,,即即软软件件的的需需求求提提出出这这些些需需求求实实现现条条件件,,以以及及需需求求应应达达到到的的标标准准需求分析的过程—分析与综合从从信信息息流流和和信信息息结结构构出出发发,,逐逐步步细细化化所所有有的的软软件件功功能能,,找找出出系系统统各各元元素素之之间间的的关关联联、、接接口口特特性性和和设设计计上上的的约约束束,,分分析析它它们们是是否否满满足足功功能能要要求求,,是是否否合合理理。。剔剔除除其其不不合合理理的的部部分分,,增增加加其其需需要要部部分分。。最最终终综综合合成成系系统统的的解解决决方方案案,,给给出出目目标标系系统统的的详详细细逻逻辑辑模模型型。。需求分析的过程—编编制制需需求求分分析析文文档档软软件件需需求求说说明明书书数数据据要要求求说说明明书书初初步步的的用用户户手手册册修修改改、、完完善善与与确确