版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程第1章软件工程概论宁夏医科大学理学院杨德仁
提纲*序论*教学目的和策略*虚拟项目介绍软件定义,应用、编程语言;软件的特征软件开发与软件危机软件工程重要性本质,目标与方法,内容软件工程的实施及其挑战软件工程学科及其演变软件工程发展新方向*相关概念绪论:教学参考书杨德仁,软件工程讲义。参考资料<美>Mark,Priestley,PracticalObject-orientedDesignwithUML,清华大学出版社Craig
Larman
著;李洋
等译;UML和模式应用,机械工业出版社,2006<美>stephhen,软件工程,机械工业出版社,2011。潘加宇,软件方法(上册),清华大学出版社,2013年UsecasedrivenobjectmodelingwithUML-Theoryandpractice(电子版)
孙家广,软件工程,高教出版社,2005年UML风格(第二版),清华大学出版社,袖珍版。绪论:传统软件工程教材中的缺陷某些关键概念混淆不清,如软件工程框架、软件过程模型和方法、软件过程范型、模型;体系结构的逻辑性差,面面俱到,主次不分,逻辑性差,主线不明确,知识及其应用之间存在“鸿沟”;一些关键环节缺乏理论性研究,如软件过程范型,达不到指导实践的目的。
没有使用价值,达不到学以致用的目的,不适合于培养研究性和应用型人才;绪论:课程的目的目的:达到学以致用讲解一种软件过程范型(MDA),熟悉一种建模语言(UML)学会一、两种工具(EA与starUML),实践一个虚拟项目(分组),应用一种编程语言(JAVA)。
绪论:教学目的和策略策略:系统地介绍软件工程理论与实践技能基于MDA软件范型采用面向对象方法和UML建模语言*以starUML、EA为工具,以虚拟项目为导向;*绪论:虚拟项目(第三周起)分成5组,每组设1组长:互联网+O2O医疗系统绪论:课程的目的目的:理解、掌握和应用理解是什么?为什么?问题是什么?理论与方法是什么?掌握概念、技术、过程、工具、团队……应用在过程中,目的在于成功地开发软件高质量、低费用、按进度……绪论:课程的基础语言基础C(C++、C#)/JAVA,HTML5工具基础编码Eclipse框架JAVAEE设计工具Powerdesigner,Erwin,starUML,EA推荐下载starUML,EA数据库理论与应用基础设计与优化数据库表模式SQL10多年前的论文:大型数据库优化设计方案,2001年绪论:课程的基础计算模式的演变Frame(主机)Client/ServerBrowser/ServerRIA(昙花一现),HTML5App(手机应用软件)application绪论:课程的安排教学内容与课时安排
56+16第1章软件工程概述,3课时第2章软件过程,6课时第3章MDA软件范型,3(实验+3)课时第4章业务模型,6(+9)课时第5章系统需求模型(CIM),12(6+6)课时第6章鲁棒分析模型(PIM),14(8+6)课时第7章设计模型(PSM),12(6+6)课时(OO原理与模式)*模型优化0+2课时第8章系统用例驱动的软件测试3课时(1含复习)*第9章软件工程新技术6课时(0)*实施模型与物理组织1课时绪论:课程的安排*实验教学内容:1虚拟项目安排工具安装与试用2-3基于虚拟项目的业务建模4-5基于虚拟项目的系统需求建模6-7基于虚拟项目的鲁棒建模8-9基于虚拟项目的设计建模10-11模型优化绪论:课程的评估与考试期末考试,70%期中考试,0%平时成绩,30%*课堂表现(虚拟项目),15%*考勤(与作业),15%要求不能旷课。绪论:课程的要求听课与复习*作业*实践分组虚拟项目阅读课件简本与参考资料软件:定义软件的重要性软件与民生软件与经济软件与教育软件与国防、战略软件定义、分类与应用语言、特征与开发与危机成本与质量:问题所在软件工程学科的诞生与发展软件:定义软件早期:软件=代码!程序、数据及相关文档的完整集合(《IEEE软件工程术语标准词汇》)software:Computerprograms,procedures,andpossiblyassociateddocumentationanddatapertainingtotheoperationofacomputersystem.Computersoftware,orsimply
software,isthenon-tangible形状componentof
computers.Softwareisstoredin
computermemory
andcannotbetouched,justasa3Dmodelshowninanillustrationcannotbetouched.软件是一种逻辑产品。Computersoftwarecontrastswithcomputerhardware,hardware.Physicalequipmentusedtoprocess,store,ortransmitcomputerprogramsordata.Thephysicalcomponentofcomputers.Computerhardwareandsoftwarerequireeachotherandneithercanberealisticallyusedwithouttheother.软件:定义Computersoftwareincludesallcomputerprogramsregardlessoftheirarchitecture;forexample,
executablefiles,
libraries
and
scripts
arecomputersoftware.Yet,itsharestheirmutualproperties:softwareconsistsofclearly-definedinstructionsthatuponexecution,instructshardwaretoperformthetasksforwhichitisdesigned.Softwareisusuallywrittenin
high-levelprogramminglanguages
thatareeasierandmoreefficientforhumanstouse(closerto
naturallanguage)thanmachinelanguage.
High-levellanguagesarecompiledorinterpretedintomachinelanguageobjectcode.Softwaremayalsobewritteninalow-level
assemblylanguage,essentially,avaguely
mnemonic
(依稀
记忆)representationofamachinelanguageusinganaturallanguagealphabet.Assemblylanguageisconvertedintoobjectcodeviaanassembler.软件:分类软件的用途工程与科学计算(Fortran)实时和嵌入处理(控制、监视)办公处理(office)智能处理企、事业单位的信息处理管理信息系统(MIS)按功能分为系统软件:OS,DBMS支撑软件():开发工具应用软件软件:分类按规模分为微型,小型,中型,大型按客户范围通用软件:如操作系统用户定制的软件:如电信业务支撑系统按工作方式实时系统(工业控制)交互系统(常用)批处理系统(少)软件:分类Purpose,ordomainofuseApplicationsoftware
usesthecomputersystemtoperformusefulworkorprovide
entertainmentfunctions
beyondthebasicoperationofthecomputeritself.Systemsoftware
isdesignedtooperatethe
computerhardware,toprovidebasicfunctionality,andtoprovideaplatformforrunningapplicationsoftware.[3]
Systemsoftwareincludes:Operatingsystem,anessentialcollectionofcomputerprogramsthatmanagesresourcesandprovidescommonservicesforothersoftware.
Supervisoryprograms,
bootloaders,
shells
and
windowsystems
arecorepartsofoperatingsystems.Inpractice,anoperatingsystemcomesbundledwithadditionalsoftware(includingapplicationsoftware)sothatausercanpotentiallydosomeworkwithacomputerthatonlyhasanoperatingsystem.Devicedriver,acomputerprogramthatoperatesorcontrolsaparticulartypeofdevicethatisattachedtoacomputer.Eachdeviceneedsatleastonecorrespondingdevicedriver;thusacomputerneedsmorethanonedevicedriver.Utilities,softwaredesignedtoassistusersinmaintenanceandcareoftheircomputers.Malicioussoftware
or
malware,computersoftwaredevelopedtoharmanddisruptcomputers.Assuch,malwareisundesirable.Malwareiscloselyassociatedwithcomputer-relatedcrimes,thoughsomemaliciousprogramsmayhavebeendesignedas
practicaljokes.软件:分类Nature,ordomainofexecutionDesktopapplications
suchas
webbrowsers
and
MicrosoftOffice,aswellas
apps.ServersoftwareScripts,suchas
JavaScript
scriptsarepiecesofsoftwaretraditionallyembeddedin
webpages
thatarerundirectlyinsidethe
webbrowser
whenawebpageisloaded.Webapplications
usuallyrunonthe
webserver
andoutputdynamically-generatedwebpagestowebbrowsers,usinge.g.
PHP,
Java
or
ASP.NET,orevenJavaScriptthatrunsontheserver.Plugins
andextensionsaresoftwarethatextendsormodifiesthefunctionalityofanotherpieceofsoftware,andrequirethatsoftwarebeusedinordertofunction;Embeddedsoftware
residesasfirmwarewithin
embeddedsystems,devicesdedicatedtoasingleuseorafewusessuchas
cars
and
televisions
.Microcode
isaspecial,relativelyobscuretypeofembeddedsoftwarewhichtellstheprocessor
itself
howtoexecutemachinecode,soitisactuallyalowerlevelthanmachinecode.
软件的应用
软件:应用软件是国民经济发展的需要,提高管理水平和效率的必备手段,已经与民生戚戚相关数字化校园问题:那些领域还没有用到软件?社会需要及时生产出软件可靠的有价值的面向未来,按软件工程(SE)生产的软件具有经济性,也便于后期维护(另一种售后服务)……软件业的战争与机遇:微软软件:语言编程语言及其发展与分类机器语言(因机器而已):下页汇编语言高级语言过程语言面向对象语言脚本语言标记语言SQL软件:语言Atthelowestlevel,executablecodeconsistsofmachinelanguageinstructionsspecifictoanindividual
processor
–typicallya
centralprocessingunit
(CPU).A
machinelanguage
consistsofgroupsofbinaryvaluessignifyingprocessorinstructionsthatchangethestateofthecomputerfromitsprecedingstate.Forexample,aninstructionmaychangethevaluestoredinaparticularstoragelocationinsidethecomputer–aneffectthatisnotdirectlyobservabletotheuser.Aninstructionmayalso(indirectly)causesomethingtoappearonadisplayofthecomputersystem–astatechangewhichshouldbevisibletotheuser.Theprocessorcarriesouttheinstructionsintheordertheyareprovided,unlessitisinstructedto"jump"toadifferentinstruction,orinterrupted.软件的特征计算机系统硬件:存储、计算和显示软件:基于硬件,解决各种问题的逻辑产品处理各种信息,或控制硬件操作,或进行智能控制软件的组成程序(代码)、数据设计文档(模型):含数据模式(库表模式)如何创建?谁设计和实施软件?软件工程师区内缺口很大,就业前景乐观。相关人员:甲方的业务人员软件的特征软件的特征抽象,无形(不可见),逻辑产品复杂复杂性导致的开发复杂性(费用、进度和质量难以控制)多样性,高投资,昂贵大多是用户定制的不怕磨损,使用周期长,维护问题:不断变化性改错、改善、适应新环境维护成本高(是开发费的70%)软件的特征好软件的基本特征功能:能满足用户需求存款、取款、转账性能:可使用响应性、并发性、可访问性、安全性等等可维护使用周期长,要适应业务的变化和更新,如利率变化可信(把握、牢靠):Dependable杜绝隐患和事故:哥伦比亚航天飞机爆炸:7宇航员丧生;86年挑战者号航天飞机爆炸事故2014年10月29日美国“天鹅座”航天飞船点火后不久发生爆炸软件开发CharacteristicsofSoftwareDevelopmentComplexlogically,
Expensive,
High-risk,容易失败,成功率底
Maintenanceproblems开发过程依赖于开发者的技能和素质团队的管理和协作客户的配合与参与软件开发ComplexExtremelycomplexinlogic,MuchmorecomplexthathardwaresystemsComplexityindevelopment,Toestimatecosts,Tocontrolprogress, Toguaranteequality软件开发:软件危机HighRisks(RisksMeansPotentialFailures)ReportsfromAmericaStandishCompanyin1995,Untiltoearlyof1990’s,Success:16.2%,Failure:31%,Challenging:53.8%Recentyears(2006):StandishGroupSuccess:35%,Failure:19%,Challenging:46%软件工程问世的直接背景软件开发:软件危机MaintainabilityVarietyofmaintainabilityCorrecterrors,Improvefunctionsand/orperformances,AdapttoenvironmentsCoststomaintainsoftwareareveryhigh,55%to75%,Maintainingsoftwarewillbringnewproblems软件开发:软件危机Symptoms:Unmanageable:Overbudget,Late,PoorqualityCauses:Oneword:Complexity新需求不断涌现,向来被业界轻视。缺乏应对复杂性的、支持开发过程的方法、技术、工具、质量控制机制等Howtoguaranteethequalityofthesoftwaresystems?Howtodevelopsuchsoftwaresystems?Problems?Skills?
Approaches?Technologies?
Stepsandprocesses?软件开发:软件危机解决方案两种解决方案软件工程Softwareengineering(SE)isanattempttosolvetheseproblems.开发不仅仅是编程,按项目来实施形式化方法可信软件用数学语言描述软件过程FormalmethodsFormalmethodsaremathematicalapproachestosolvingsoftware(andhardware)problemsattherequirements,specification,anddesignlevels.Formalmethodsaremostlikelytobeappliedtosafety-criticalorsecurity-criticalsoftwareandsystems,suchasavionicssoftware.Softwaresafetyassurancestandards,suchasDO-178B,DO-178C,andCommonCriteriademandformalmethodsatthehighestlevelsofcategorization.Forsequentialsoftware,examplesofformalmethodsincludetheB-Method,thespecificationlanguagesusedinautomatedtheoremproving,RAISE,andtheZnotation.Formalizationofsoftwaredevelopmentiscreepingin,inotherplaces,withtheapplicationofObjectConstraintLanguage(andspecializationssuchasJavaModelingLanguage)andespeciallywithmodel-drivenarchitectureallowingexecutionofdesigns,ifnotspecifications.Forconcurrentsoftwareandsystems,Petrinets,processalgebra,andfinitestatemachines(whicharebasedonautomatatheory-seealsovirtualfinitestatemachineoreventdrivenfinitestatemachine)allowexecutablesoftwarespecificationandcanbeusedtobuildupandvalidateapplicationbehavior.Anotheremergingtrendinsoftwaredevelopmentistowriteaspecificationinsomeformoflogic—usuallyavariationoffirst-orderlogic(FOL)—andthentodirectlyexecutethelogicasthoughitwereaprogram.TheOWLlanguage,basedonDescriptionLogic(DL),isanexample.ThereisalsoworkonmappingsomeversionofEnglish(oranothernaturallanguage)automaticallytoandfromlogic,andexecutingthelogicdirectly.ExamplesareAttemptoControlledEnglish,andInternetBusinessLogic,whichdonotseektocontrolthevocabularyorsyntax.AfeatureofsystemsthatsupportbidirectionalEnglish-logicmappinganddirectexecutionofthelogicisthattheycanbemadetoexplaintheirresults,inEnglish,atthebusinessorscientificlevel.SoftwareDevelopmentSoftwareDevelopmentasGoal-directedCooperativeGameofInventionandCommunication[Cockburn].Thecooperativegamemodelprovidesthebenefitsthatthesoftwareengineeringmodelmisses:Itraisestotheproperprioritylevelissuescrucialtosuccessfulsoftwareprojects;itexplainshowteamswithmessy-lookingprocessessometimesoutperformotherswithtidierprocesses;ithelpsbusypractitionersdecidehowtorespondtounexpectedsituations.itisseenthatmuchofengineeringinthegeneralbelongsinthecategoryofresource-limited,cooperativegames.2软件工程Contemporarysystemdevelopershavesomeseriousproblemstocopewith.Thesystemstheydeveloparebecomingincreasinglycomplexascustomersdemandricherfunctionalitydeliveredinevershortertimescales.Theyareexposedtoahugediversityofimplementationtechnologies,designtechniquesanddevelopmentprocesses,particularlythelatest’silverbullet’designabstraction-ModelDrivenSoftwareDevelopment.2软件工程起源:国际学术会议:软件工程问世1968NATO(MilitaryallianceofdemocraticstatesinEuropeandNorthAmerica)SoftwareEngineeringConferences,Garmisch,GermanyAim:Tosolvethesoftware
crisis应用工程学原理、技术和方法,科学地组织、管理软件生产和运行软件危机表象:低质量、超期、超支2003年,第35届会议持续9天,旧金山2软件工程发展过程程序设计阶段(1946~1955)。特点是:尚无软件概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料,主要用于科学计算。软件设计阶段(1956~1970)。特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。开始广泛使用产品软件(可购买),建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率底下,从而导致了“软件危机”的产生。2软件工程发展过程(续)软件工程阶段(1970年~)。硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;(软件方法学问世)第二代软件技术:软件测试技术、方法、原理用于软件生产过程;(软件测试)第三代软件技术:处理需求定义技术用于软件需求分析和描述。(需求工程的问世)MDA。万物皆模型2软件工程定义繁多而不一,涉及面广,侧重点不同,因学科发展程度而异(过度定义!)FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济手段获得能在实际机器上有效运行的可靠软件的一系列方法。软件工程是为了经济地获得能够在实际机器上高效运行的、可靠的软件而建立和应用一系列坚实的软件工程原则。Softwareengineering(SE)isaprofessiondedicatedtodesigning,implementing,andmodifyingsoftwaresothatitisofhigherquality,moreaffordable,maintainable,andfastertobuild.IEEEdefinesSEastheapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware,andthestudyoftheseapproaches;thatis,theapplicationofengineeringtosoftware.2软件工程BarryBoehm:运用现代科学技术知识来设计并构造计算机程序,为开发、运行和维护这些程序提供必需的文档。而美国梅隆卡耐基大学软件工程研究所(SEI):以工程形式应用计算机科学和数学原理,从而经济有效地解决软件问题。计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本:计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。目前比较认可的定义:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。2软件工程TheIEEEstandard:SoftwareEngineering:(1)Theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operationandmaintenanceofsoftware,thatis,theapplicationofengineeringtosoftware.(2)Thestudyofapproachesasin(1).过度定义,无所适从?softwareengineeringisthestudyoftheprocesses,methods,toolsandtechniquesforachievingsuchcontroloverthequalityandoutcomesinsoftwaredevelopment.Softwareengineeringistheestablishmentanduseofsoundengineeringprinciplesinordertoobtaineconomically,softwarethatisreliableandworksefficientlyonrealmachines.哪些原理?2软件工程Thecontroloverthequalityandtheoutcomesoftheprojectinthedefinitionabovemeansthatsoftwaredevelopersareableto:repeatedlydetermineandachievethedesiredlevelofqualityfortheirproducts;measureandimprovethequalityoftheirsoftwareproducts;andpredict,planandmanagethedevelopmentoftheirsoftwareproducts.2软件工程软件工程要素之殇!三要素还是四要素?软件工程三要素(孙广家教、国外教材) 过程、方法、工具2软件工程软件工程的四要素及其统一性:技术与方法标准与规范工具与环境组织与管理本软件工程课程的主要研究内容(过程中的)技术、方法与工具2软件工程软件工程的特点规范化有章可循:标准化工程文档化/敏捷化*描述现状:业务定制产品:需求规范化设计:设计业界的尴尬局面简述无章可循,如同无头苍蝇2软件工程TheEssenceofSEPracticeUnderstandtheproblemCommunicationandanalysisPlanasolutionModelingandsoftwaredesignsolution:Answer(s)suggestedorimplementedtotryandsolveaquestionorproblem.Asolutioncanbeeithersimpleorcomplexandmayrequirefewresourcesormanyresources.Forexample,thesolutiontoamathquestionmaybeaddressedquicklywithacalculatorbutthesolutiontopreventingaccountingfraudmaybemorecomplexandrequireagreatdealoftimetofind.Carryouttheplan……CodegenerationExaminetheresultforaccuracyTestingandqualityassurance2软件工程Why到How(工程)TodevelophighqualitysoftwaresystemsthatsatisfythecustomersrequirementsinthecontrolofschedulesandcostsToestimatecosts,
Tocontrolprogress,
Toguaranteequalitytoovercomecomplexity2软件工程软件工程的国际标准ISO9000-1,9001,12207IEEESTD1074.1-1995SW-CMM(SEI)国内企业开始用ITU国标,滞后!国内软件业的软肋实践中,没有标准可遵行2软件工程的本质SE面临的主要挑战要迎合软件的多样性技术,运行平台急速的上市时间有价值的软件SE的总体目标降低成本、提高速度和质量、可用,可维护,可重用3软件工程的目标与原则随着技术进步,人们对软件及其运行环境的要求越来越高软件工程的目标是:在给定成本、进度前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。因此,软件工程的目标在进化着目标0:按期在预算内开发出用户满意的高质量软件,目标1:可靠性、经济性、可理解性、可维护性的软件目标2:自适应性、可扩展性(维护性)、可复用性、可移植性的软件。要实现目标,就要基于相应的、进化着的目标、方法和原则3软件工程的目标与原则目标0:按期在预算内开发出用户满意的高质量软件,原则0:应用基本的软件工程知识,如软件过程模型3软件工程的目标与原则目标1:可靠性、经济性、可理解性、可维护性的软件原则1:化解复杂性,把问题域映射到方案域:需求分析、设计应用软件方法学3软件工程的目标与原则第二次软件危机随着计算机技术不断发展,终端设备、编程语言和技术平台呈现多样化,软件开发日趋复杂化。信息技术在国民经济中不可或缺,随着市场竞争的日趋激烈,用户对软件的上市时限和拥有软件的成本等要求日趋苛刻旧系统的升级与移植、软件的互操作性等复杂应用需求;软件开发企业面临着如何迎接用户上述复杂需求和提高软件生产率等严峻技术和市场挑战。解决软件复杂性的原则、方法和机制?3软件工程的目标与原则目标2:自适应性、可扩展性、可复用性、可移植性的软件。原则2:基于论域和视角的建模,逐步细化分层化块3软件工程的目标与原则几个典型原则:分解与简化分层(抽象),抽象与封装大脑瞬间可处理的信息单元为:7加减2先简化,再逐步细化可复用前期(上层)的模型化块:分而治之,分解(如模块化)不同视角解决软件设计复杂性的机制3软件工程的目标与原则*其它原则信息隐藏局部化一致性:工作流程完整性可验证性有价值简单性开放性复用性标准性软件工程的内容软件开发技术:方法、过程、模型、模式工具和环境*管理在软件生产中,引入:原理、过程、方法、技术、工具和评估机制(review)管理机制建立软件开发的基础长期过程:需要理解、掌握、应用和积累经验4软件工程的实施及其挑战软件业不同于一般制造业没有模具缺乏规范的生产线,甚至没有统一的规范从业人员培养代价高,培训难十年难树木,百年在树人(终生学习):新技术不断涌现工程而非儿戏与用户沟通与获取对软件的需求,逐步设计软件,编码,测试使用与维护要采用一些原理和分析构造的技术、工具,工件(作品)4软件工程的实施及其挑战软件工程的实施需要建立模型(文档不够)建模工具?自动化?抽象方法?映射很复杂描述语言?实施技术?5软件工程学科HistoryofsoftwaredevelopmentasaprofessionalagestartswiththeformulationofSoftwareEngineeringBodyofKnowledge(SWEBOK).In1958,JohnWilderTukey,oneofthemostinfluentialstatisticians,hasintroducedthetermsoftware.ISO/IEC/IEEESystemsandSoftwareEngineeringVocabulary(SEVOCAB)definessoftwareengineeringas“theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware”.5软件工程学科Softwareengineeringhasevolvedfromaconferencecatchphrase(thetermsoftwareengineeringwasusedinthetitleofaNATOconferenceheldinGermanyin1968.)intoanmaturedengineeringprofession,characterizedby:aprofessionalsociety(TheIEEEComputerSocietyfirstpublisheditsTransactionsonSoftwareEngineeringin1972);standardsthatspecifygenerallyacceptedprofessionalpractices(AcommitteefordevelopingsoftwareengineeringstandardswasestablishedwithintheIEEEComputerSocietyin1976.Thestandardwascompletedin1995withdesignationISO/IEC12207andgiventhetitleofStandardforSoftwareLifeCycleProcesses.)SoftwareEngineeringBodyofKnowledge(SWEBOK)Thecurrentversionof12207isdesignatedasISO/IEC12207:2008andIEEE12207-2008andprovidesthebasisforSWEBOKV3.conferenceproceedings;textbooks;5软件工程学科软件工程是交叉性工程学科,将计算机科学、数学、工程学和管理学等基本原理应用于软件的开发与维护中,软件工程的核心知识(SoftwareEngineeringBodyofKnowledge,SWEBOK)把软件工程相关学科列为知识域:计算机工程、计算机科学、数学、管理学、项目管理、质量管理、系统工程学和软件人类工程学八个领域。重点在大型软件的分析与评价、规格说明、设计和演化,还涉及管理、质量、创新、标准、个人技能、团队协作和专业实践等。软件工程可以看作由下列3部分组成。计算机科学和数学用于构造软件的模型与算法;工程科学用于制定规范、设计范型、评估成本以及确定权衡等;管理科学用于计划、资源、质量、成本等管理。软件件工程专业是2002年国家教育部新增专业,目录外软件工程硕士专业5软件工程:核心知识ACM与IEEEComputerSociety联合修定的SWEBOK(SoftwareEngineeringBodyofKnowledge)提到,软件工程领域中的核心知识包括:*软件需求(Softwarerequirements)*软件设计(Softwaredesign)软件建构(Softwareconstruction)软件测试(Softwaretest)软件维护与更新(Softwaremaintenance)软件配置管理(SoftwareConfigurationManagement,SCM)软件工程管理(SoftwareEngineeringManagement)*软件开发过程(SoftwareDevelopmentProcess)软件工程工具与方法(SoftwareEngineeringToolsandmethods)软件质量(SoftwareQuality)5软件工程学科:演化过程程序设计语言程序设计方法学软件工程需求工程信息系统分析与设计面向对象与UML软件测试代码重构软件体系结构软件生产自动化longwaytogo软件演化6软件工程发展新方向软件复用技术(框架\
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床病例分析与诊断思路
- 青岛农业大学海都学院《工程项目经济与管理》2023-2024学年第一学期期末试卷
- 心理疾病预防与心理健康促进汇报
- 教育领域中自动化教学研究
- 手绘水彩珠宝课程设计
- 农村电子商务发展趋势分析
- 个性化礼品市场的机遇与挑战分析
- 不同地域文化下的骨科疾病防治策略研究
- 职业性格测试与选择
- 幼儿教师微课程设计
- 地弹簧行业分析
- 如何发挥采购在公司高质量发展中作用
- 民事纠纷及其解决机制课件
- 美术高考总结汇报
- 北宋词之临江仙夜归临皋【宋】苏轼课件
- 监理质量评估报告
- 《中国封建社会》课件
- 药物代谢动力学-中国药科大学中国大学mooc课后章节答案期末考试题库2023年
- 血液科护士的营养与膳食指导
- 建筑与建材行业设计与工程技术培训资料
- 铁路押运培训课件
评论
0/150
提交评论