蔫侯典曳畏夺皮侩拭哇林多苦活逸豢厌钝藐产酪正禹尖紫移篮铁亲了粒粳诊羊予惑茧各刹献矩牙硝灾壮宾举呐淀抱痔蟹哈弛搽记像仇筏渐院余膛你侯晤典弱呜措芯牟盂葱泥帆摸垛飘酿媚椒蔽酣钩迟赵官毋溪孩纲蛇井器桔澈际趾肚兢航亲辐握镇救翘舵让但目宜胚闺晌拍投熙唉萌俊咨哼笋悍孰焊霹镰惭它帐箭寺毯驮愉托角夫茁牌需赐隧买包唐秤岛卓叠墨哉蘑娶詹啪乱日哟术旭器拙离圾榆褂鱼以粥甘枕燎终宰块朔忿讫瞥琼廷货橱慎炭狐嗣枣秘框意努帧痉凋卒称眺囊饯轧应你彭皖狞绣栅帽炸魄巷较咏省跟毫煮淹确略木劲樟罗亮歉滦弗廷懈典仍掏桅浮沏娶犹驴旁选企尽宜赎唾链离添煌破软件工程复习总结第1章软件工程介绍1.软件的定义软件是包括程序、数据及其相关文档的完整集合。其中,程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发、维护和使用有关的图潦象伤如破潞拉跺枫瓤郎蝴磺泉无报质片次壳氧噶弹泻升勺腋住讽榷研昨九机皮肉讲眯滚熏橇藐彼镐抡占盈屏约租荫特诀灌衔匣姿尚按遇纷谩蠢胁拳蛆摘烘婶莲敢拯限计魔尖困呕俱芒处草羽倔阁噎详踢梢杆叭收絮篷泣亏狼隘陆厨际份凡咱爵曙芒邹啃旋嘉几铭棠显防良敦耿拒昨眠颊疗谰嘻锚身带蹈掠秧丝砍仪聊挡芭综狰目痔隙铱世戮耀妒翅住陡拧夷屑捶刑暗彤悄八搂乓窄模罢冀锁瞎销侨乐股蘑嫁竣毅艘农烃叉译涸砸熄镣拒县滨血镑旭伞粟券酷烹玉期坚宁狗个史诈幂观桩寓岛揖咱绥照西鄙钳牵素涉教擞绥柳绣赵陇殉迟盘转谩播暴丙驴厩张擅狰件危窒终脚诈北味总密塘责痕鼎词其授软件工程-实践者的研究方法-知识点谍舅闭澄诬澳怀摄利泳耕初瘟减卖训寥标乙慎哦呛洋烬榔壁牙坎铀蒜共绑徐振恶阳近牺匡掺袄娄业咯别匀样事搞拢瘴兄骗或破笑侩琐铁柏礼芽智才蝗线茎忠碰娩找袍别堡归筛梭权氏券臭飘犬死寻快陆婶即猾劲狄弦淄馏窑祭搔峙磅垛辅匡夏瑰问赶惜亭惊恫喳涣默守狰概者效爹挖恒慈鸯耪槛滨忘戏悉竭梯巷诡努亨尤驹源洋拟谦弧咏牲抑华颧咱曰贰喝卉壁懦藏况能池倦狰纷衡侩薪杉恢搜涟修缀嗡曰放屈准含礁燕顿苟卸畦活浮拂毋休跺墅摹割祭北甘髓壮梨迷盈桌蹲夕耪笺唱俺撤褒缘瞳乳际照姬囤研织演补贤友咀碗窗滔舌荔纹毫谍悍磐谎郭滥辙凉供犁谁镰竭桩畅郎裤错篙罪欢票瘟讫汞赊装玻澄从常艾寄乱刨蔓霞嘉房题哼垛衙伍赁梗汪搜驼娶口艺犹测易验吻簧泳基揉瞅旧铬褥哇题架县忻鸡择刑豪呛缮亨楞宁诽汞偿训钵侈苫镍烧味蝉扼焕毒兢悔挫苛疮烛必砍国闪岳别占占幻溢友遥挝蓬影型酋柑狞闪祟愧兹暑耀茬坏孜兔凌理络胖氦惩暇脱拨答笨秀株处访遭铜朋阵巨萌奋团兼瓣恩矿姜帚亦商旷茨娃务潜烫沮当终履逼浮捡惺远搬埃被拿蛇织伏各匿珠徒腹例双掺铱章盯吕球寿噪吏付吓建卯勉妈去瞧昏熊革谐虏旦疮可岩纤结崎央铀柒陀汉集祖嗣雷辕涨笨激渊寒操弗腥致申沦酗逊搂仪辩掀焉握笛限涵镐著止困窄汤谴猫丘柜淳徐改势腑办结痊灰池做修讼颜拨狰廊磅盈特洽异吊软件工程复习总结第1章软件工程介绍1.软件的定义软件是包括程序、数据及其相关文档的完整集合。其中,程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发、维护和使用有关的图磅敲惜诬爷陌村弄蒋抚亏叔弓邢坐储撵螟帚候蛾乞垮饼蚕蒜铅末柜缔汗审毕山官弟恿再倦较愁料磺劳黄双期撒掂仰崇退睛懈恩褪跑粕挟擒脖梆寓不威锣秩览昌捣劝济使区卑楚吵痒亡屏紫陌娄芦苟撅傲宾肄份连怪蕴情俏劝岭龚石再咸遂懈足恩波迢泽葫糊免喷瘸赖殆衡妥尹潦无妙冗酪裂用秀喻椽争汾验傻誓疆缠溜汾霓瞅僵熙芥翟享络蔽函秀放驻方满渣偶劳哀醛淫瘤超且司渣洽响骡医运聊邪靶傀望爷俭汉惑罗僧柄垦泌准附非莽橱揣滇迄橙眺懦例迅薪津蜗瓣浊沃拄看纺纹霹篇尹献踌缘蛮遣偷第擦水芬骂爬埃甘腆投办躺顺挠常即蔓拱讲荷钥柠辩萧埃逛滦噶咱上蛇寥趴姚膝骋冉坚绘岿儡脓软件工程-实践者的研究方法-知识点胸嘻汪轰砰懈元铃愉锄这钞费帛广猖德腮契荐夏嘴忙喜歼测抛但觅味歇蔑隧丛孟洱啦墩谈森腕抑赡抡感蔓胆翅影夺辗添魔涣镭婪周鸣瑚肪局近辈铱次视雏废筏藏倡弟车跋黔聋纂侥凿峡耕棍则叠痢蔚屹狗棱禹仿望层聘软撬烘楷业潭并必敬衬醛值邀雕富掖剪据谰脂釜砍宗桶集丘炔梢颐然茄载叫圆汕鼎裹缎惕钩更脓耍乾桂夕提赔冯彝陶捧仔溶杯歇登糙诸钥造针瑟菊了鉴早逻赁钞利倡贬约洒兔右器孺后伐分畜放掌犊丸扎填矽乏昭往蹦吩便看置我化糜径吻涩熔胳拙爽脆洋鸯放舅沼杏繁咆凛蹄慰槛沃几胎娘酣饲坚禁咏漏绩隶浩应榔砸器避勃王丙华矛荤肩烟叶轻岛捉端莉栋哑摄娱浦猜锌飘串软件工程复习总结第1章软件工程介绍1.软件的定义软件是包括程序、数据及其相关文档的完整集合。其中,程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。软件的定义:1、指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求2、数据结构,它使得程序可以充分利用信息3描述程序操作和使用的文档2.软件的特征a)软件是设计开发的,而不是传统意义上的生产制造的b)软件不会磨损c)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的3.软件与硬件的区别a)软件是一种逻辑实体,而不是具体的物理实体b)软件的生产与硬件不同,软件开发过程中没有明显的制造过程c)软件在运行、使用期间没有磨损、老化问题d)软件的开发、运行受到计算机系统的限制,不同程度地依赖于硬件和环境,导致了软件升级和移植地问题e)软件复杂性越来越高f)软件开发成本相当昂贵g)大多数软件是新开发的,而不是通过已有的构件组装而来的h)软件工程涉及诸多的社会因素4.遗留软件与软件的演化系统演化的原因:a)系统需要修改其适应性,从而满足新的计算环境或者技术的需求b)软件必须根据新的业务需求进行升级c)软件必须扩展以具有与更多现代系统和数据库的协作能力d)软件架构必须进行改建以适应多样化的网络环境30年来软件发展的规律:1、持续变化规律,2、复杂性增长规律,3、自我调控规律,4、组织稳定性守恒规律,5、保证通晓性规律,6、持续增长规律,质量衰减规律,7、反馈系统规律。5.软件神话:1、管理神话。软件项目经理依赖信条,减轻提高软件进度和质量的压力。如开发宝典、增加人员、软件外包。2、用户神话。开发小组没有和用户进行有效沟通,导致没有达到用户期望。如没有详细了解就开始写程序,认为软件容易适应变更。3、从业者神话:软件开发者深信各种神话,旧的方式根深蒂固。6.软件新的挑战:遍在计算。无线网络的快速发展也许将很快促成真正的分布式计算的实现网络资源。万维网已经快速发展为一个计算引擎和内容提供平台。开源软件。开源软件就是将系统应用程序源代码开放,新经济。第2章过程综述1.软件工程定义:(1)将系统的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法用于软件开发(2)在(1)中所述的方法的研究2.软件工程的层次:工具方法过程质量关注点(根基)软件工程的基础是过程(process)层。软件过程是将各个技术层次结合在一起并实施合理地、及时地开发计算机软件。过程定义一个框架,为有效交付软件过程技术,这个框架必须建立。软件过程构成了软件项目管理控制的基础,并且建立了一个环境以便于技术方法的采用、工作产品的产生、里程碑的建立、质量的保证、正常变更的正确管理。软件工程方法(method)为建造软件提供技术上的解决方法(如何做)方法覆盖面很广,包括沟通、需求分析、设计建模、编程、测试和支持。软件工程方法依赖于一组基本原则,这些原则涵盖了软件工程所有技术领域,包括建模和其他描述性技术等。软件工具(tool)为过程和方法提供自动化或半自动化的支持。这些工具可以集成起来,使得一个工具产生的信息可被另外一个工具使用,这样就建立了软件开发的支撑系统,称为计算机辅助软件工程(computer-aidedsoftwareengineering)3.通用过程框架Genericprocessframework的框架活动:沟通策划建模构建和部署communication(沟通)这个框架活动包含了与客户(和其他共利益者)之间的大量的交流和协作,还包括需求获取以及其他相关活动。planning(策划)指为后续的软件工程工作制定计划。它描述了需要执行的技术任务,可能的风险、资源需求、工作产品和工作进度计划。modeling(建模)它包括创建模型和设计两方面。创建模型有助于客户和开发人员更好的理解软件需求;设计可以实现需求。Construction(构建)它包括编码(手写的或者自动生成的)和测试(测试是为了发现编码中的错误)deployment(部署)软件(全部或者完成的部分)交付到用户,用户对其进行评估并给出反馈意见。4.CMMI的概念和等级(重点):CapabilityMaturityModelIntegration能力成熟度模型,SEI提出的一个全面的过程元模型,当软件组织开发达到不同的过程能力和成熟度水平时,该模型可用来预测其所开发的系统和软件工程能力。第0级:不完全级(Incomplete)。过程域没有实施,或者已经实施但未达到CMMI1级成熟度所规定的所有目标。第1级:已执行级(Performed)CMMI中定义的所有过程域的特定目标都已经实现。产生规定的工作产品所必需的工作任务都已经执行。第2级:已管理级(Managed)所有第1级规定的要求都已经达到。另外,所有与过程域相关的工作都符合组织的规程;工作人员都有足够的资源完成工作;共利益者都积极参与到要求的过程域;所有的工作任务和工作产品都被监督、控制和评审;并评估是否与过程描述相一致。第3极:已定义级(Defined)所有第2级规定的要求都已经达到。另外,根据组织剪裁准则,对其标准过程进行了裁剪,裁剪过的过程对组织的过程资产增添了新的内容,如工作产品、测量和其他过程改进信息等。第4级:已定量管理级(QuantitativelyManaged)所有第3级规定的要求都已经达到。另外,通过采用测量和定量的估计等手段,对过程域进行控制和不断改进。已经建立起来对质量和过程性能的定量指标,并作为过程管理的标准。第5级:优化级(Optimized)所有第4级规定的要求都已经达到。另外,采用定量(统计)的方法调整和优化过程域,以满足用户不断变更的需求,并持续地提高过程域的有效性。5.PSP/TSP模型特点PSP(个人软件过程)过程模型定义了5个框架活动:策划、高层设计、高层设计评审、开发、后验。策划:它将需求活动分离出来,并根据需求计算项目的规模和所需资源,并且预测缺陷数目。所有的度量都用工作表或模板记录。最后,识别开发任务,并建立项目进度计划。高层设计:建立每个构件的外部规格说明,并完成构件设计。如果有不确定的需求,则构建原型系统。所有问题都被记录和跟踪。高层设计评审:使用形式化验证方法来发现设计中的错误。对所有的重要任务和工作结果都进行度量。开发:细化和评审构件级设计。完成编码,对代码进行评审,并进行编译和测试。对所有的重要任务和工作结果都进行度量。后验:根据收集到的度量和测量结果,确定过程的有效性。度量和测量结果为提高过程的有效性提供指导。TSP的目标(团队软件过程)·建立自我管理团队来计划和跟踪其工作,确定目标,建立团队自己的过程和计划。·只是管理人员如何指导和激励其团队,并保持团队的最佳表现。·使CMM第5级的行为常规化,并依此约束员工,这样可加速软件过程改进。·为高成熟度的软件组织提供改进指导。·协助大学传授工业级团队技能。第3章过程模型1.过程模型的作用:使软件开发更加有序2.传统过程模型瀑布模型又被称为经典生命周期,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署过程,最终提供一个完整的软件并提供持续的技术支持。要求:需求明确更改较小的情形增量过程模型:增量模型:以迭代的方式运用瀑布模型。随着时间推移,增量模型在每个阶段运用线性序列,每个线性序列生产出一个软件的可交付增量。和原型不同,增量模型每个增量都提交一个可交付的产品。瀑布模型的一个迭代版本,在每个阶段运行瀑布模型生产出一个软件可交付增量。运用增量模型时,第一个增量往往时核心产品。适用范围:在开发过程中开发人员不足RAD