大学啊不错啊,好好学习,不要耽误了青春,但是是这个专业坑爹啊,,找好自己的方向,不要被这个专业误导了啊,,理工的学妹,学弟们,你说呢,,哈哈哈哈,嘿嘿联系填空10个,选择10个,名词解释5个,简答题2个,画图题2个第一章一、FAQsaboutsoftwareengineering软件工程中常见的问题1、software:Computerprogramsandassociateddocumentation软件是计算机程序和所有使程序正确运行所需要的相关文档和配置信息Softwareproducts软件产品分为:Generic通用、Bespoke(custom)定制2、Softwareengineeringisanengineeringdisciplinethatisconcernedwithallaspectsofsoftwareproduction.软件工程是一门工程学科,涉及软件生产的各个方面Softwareengineersshouldadoptasystematicandorganisedapproach软件工程人员运用的是系统的、有组织的工作方法。3、differencebetweensoftwareengineeringandcomputerscience:系统工程和计算机科学的区别:Softwareengineeringisanengineeringdisciplinethatisconcernedwithallaspectsofsoftwareproduction.计算机科学侧重于理论和基础,而软件工程侧重于软件开发和交付的实际活动。4、thedifferencebetweensoftwareengineeringandsystemengineering:软件工程和系统工程的区别:Systemengineeringisconcernedwithallaspectsofcomputer-basedsystemsdevelopmentincludinghardware,softwareandprocessengineering.Softwareengineeringispartofthisprocess系统工程侧重基于计算机系统开发的所有方面,包括硬件、软件和处理工程。软件工程只是它的一部分。5、softwareprocess:Asetofactivitieswhosegoalisthedevelopmentorevolutionofsoftware.软件工程是以软件开发和进化为目的的一系列活动Genericactivitiesinallsoftwareprocesses:软件过程的基本活动a)Specification软件描述b)Development软件开发c)Validation软件有效性验证d)Evolution软件进化6、softwareprocessmodel:软件过程模型Asimplifiedrepresentationofasoftwareprocess,presentedfromaspecificperspective.从特定角度提出的软件过程的简化表示形式Examplesofprocessperspectivesare•Workflowperspective工作流模型•Data-flowperspective数据流或活动模型•Role/actionperspective角色/动作模型Genericprocessmodels通用过程模型•Waterfall瀑布型开发方法•Iterativedevelopment迭代式开发方法•Component-basedsoftwareengineering(CBSE)基于组件的软件工程7、thecostsofsoftwareengineering软件工程的成本Roughly60%ofcostsaredevelopmentcosts,40%aretestingcosts.Forcustomsoftware,evolutioncostsoftenexceeddevelopmentcosts.软件开发成本约占60%,测试成本占40%。对于定制软件而言,进化成本常常高于开发成本。8、softwareengineeringmethods软件工程方法:Structuredapproachestosoftwaredevelopmentwhichincludesystemmodels,notations,rules,designadviceandprocessguidance.软件开发的结构化研究方法,包括:系统模型、标记法、规划、设计忠告和过程指南9、CASE(Computer-AidedSoftwareEngineering)计算机辅助软件工程:areintendedtoprovideautomatedsupportforsoftwareprocessactivities.CASEsystemsareoftenusedformethodsupport.旨在使软件过程活动自动化的软件系统。CASE常用作方法支持10、theattributesofgoodsoftware优良软件的特点:Thesoftwareshoulddelivertherequiredfunctionalityandperformancetotheuserandshouldbemaintainable,dependableandacceptable.软件应具有用户所需的功能与性能,而且应该可维护、可靠、可用11、keychallengesfacingsoftwareengineering软件工程面临的主要挑战:Legacy遗留Heterogeneity多样性挑战delivery交付上的挑战trust信任的挑战第二章一、systemengineeringprocess系统工程过程(填空)二、Systemmodelling系统建模在系统需求和设计活动中,系统被建模成一系列组件和组件间的关系。通常是以图的形式描述在系统结构模中,以便给读者一个系统组织的总体概念。Usuallypresentedasablockdiagram以方块图来描述,展现一些主要的子系统以及子系统之间的关联。三、Systemevolution系统进化Largesystemshavealonglifetime.Theymustevolvetomeetchangingrequirements.大型和复杂的系统都会有一个非常长的生存期。在整个生存期内,必须改进原有的系统需求中的错误进而满足出现的新需求。四、systemprocurementprocess系统采购过程:(考填空)以最佳方式获得系统做出决策并决定系统的最佳供应商。第四章一、软件工程模型softwareprocessmodel:isanabstractrepresentationofaprocess.Itpresentsadescriptionofaprocessfromsomeparticularperspective.二、(1)waterfallmodel瀑布模型:Separateanddistinctphasesofspecificationanddevelopment.Onephasehastobecompletebeforemovingontothenextphase.直到上一阶段完成,下一阶段才能启动劣势:Themaindrawbackofthewaterfallmodelisthedifficultyofaccommodatingchangeaftertheprocessisunderway.Inflexiblepartitioningoftheprojectintodistinctstagesmakesitdifficulttorespondtochangingcustomerrequirements(2)Evolutionarydevelopment进化式开发:Specification,developmentandvalidationareinterleaved.优势:描述可以不断补充完善劣势:a)Lackofprocessvisibility;过程不可见b)Systemsareoftenpoorlystructured;系统结构通常较差Applicability适用于:a)Forsmallormedium-sizeinteractivesystems;b)Forpartsoflargesystems(e.g.theuserinterface);c)Forshort-lifetimesystems.进化式开发的两种基本类型:Exploratorydevelopment探索式开发、Throw-awayprototyping抛弃式原型(3)Component-basedsoftwareengineering基于组件的软件工程(Reuse-orienteddevelopment面向复用的软件开发方法)其过程模型如下图:三、Spiraldevelopment螺旋式开发1、Processisrepresentedasaspiralratherthanasasequenceofactivitieswithbacktracking.Eachloopinthespiralrepresentsaphaseintheprocess.它不是将软件过程用一系列活动和活动间的回溯来表示,而是将过程用螺旋线表示。每个回路表示软件过程的一个阶段。Nofixedphasessuchasspecificationordesign-loopsinthespiralarechosendependingonwhatisrequired.Risksareexplicitlyassessedandresolvedthroughouttheprocess.2、四部分:Objectivesetting目标设置、Riskassessmentandreduction风险评估和规避、Developmentandvalidation开发和有效性验证、Planning规划.四、Softwarevalidation软件有效性验证:isintendedtoshowthatasystemconformstoitsspecificationandmeetstherequirementsofthesystemcustomer.是要看系统是否符合它的描述以及系统是否符合客观的预测目标。Involvescheckingandreviewprocessesandsystemtesting.Systemtestinginvolvesexecutingthesystemwithtestcasesthatarederivedfromthespecificationoftherealdatatobeprocessedbythesystem6、测试过程的阶段:Componentorunittesting组件测试、Systemtesting系统、Acceptancetesting接收测试五、ActivitiesinCASE(Computer-aidedsoftwareengineering)•Graphicaleditorsforsystemmodeldevelopment;•Datadictionarytomanagedesignentities;•GraphicalUIbuilderforuserinterfaceconstruction;•Debuggerstosupportprogramfaultfinding;•Automatedtranslatorstogeneratenewversionsofaprogram.六、CASEclassification分类:Functionalperspective从功能角度看;Processperspective从过程角度看;