Chapter01IntroductiontoSoftwareEngineering

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Chapter1.IntroductiontoSoftwareEngineeringSoftwareCollegeofNankaiUniversityshiwx@nankai.edu.cn《SoftwareEngineering》SoftwareCollegeofNankaiUniversity2IntroductiontoSoftwareEngineering1.Software2.SoftwareMyths3.SoftwareCrisis4.SoftwareEngineering5.Professionalandethicalresponsibility《SoftwareEngineering》SoftwareCollegeofNankaiUniversity31.Software1.1Whatissoftware?1.2ThefeaturesofSoftware?1.3SoftwareCategory1.4ThesizeofSoftware1.5LegacySoftware《SoftwareEngineering》SoftwareCollegeofNankaiUniversity41.1WhatisSoftware?-Asetofinstructionsthatcauseacomputertoperformoneormoretasks.-ScienceandTechnologyEncyclopedia-Thevariousprogramsbywhichacomputercontrolsaspectsofitsoperations,suchasthosefortranslatingdatafromoneformtoanother-Wikipedia-Instructionsthattellacomputerwhattodo.-Computerinstructions.-computerprogramthatcontrolsthefunctionsofacomputer.《SoftwareEngineering》SoftwareCollegeofNankaiUniversity5•软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。•程序(instructions)是按事先设计的功能和性能要求执行的指令序列•数据(data)是使程序能正常操纵信息的数据结构•文档(documents)是与程序开发,维护和使用有关的图文材料1.1WhatisSoftware?《SoftwareEngineering》SoftwareCollegeofNankaiUniversity61.1Whatissoftware?•Softwareengineersviewsoftwareasbeingmadeupoftheprograms,documents,anddata.•Softwareusersareonlyconcernedwithwhetherornotsoftwareproductsmeettheirexpectationsandmaketheirtaskseasiertocomplete.《SoftwareEngineering》SoftwareCollegeofNankaiUniversity7software=program+data+documentIn1950’s:Software=programIn1960’s:Software=program+documentearly--Veryfewlargesoftwareprojectsweredonebysomeexperts.middletolate--Trulylargesoftwaresystemswereattempted.late—softwarecrisisIn1970’s:Software=program+document+dataProgramdesignProgramsystemSoftwareengineeringTheEvolvingRoleofSoftware《SoftwareEngineering》SoftwareCollegeofNankaiUniversity8Software’sDualRole•Softwareisaproduct–Deliverscomputingpotentialofhardwareandnetworks–Informationtransformer-producing,managing,acquiring,modifying,displaying,ortransmittinginformation•Softwareisavehiclefordeliveringaproduct–Thebasicforthecontrolofthecomputer(operatingsystems)–Thebasicforthecommunicationofinformation(networks)–Thebasicforthecreationandcontrolofotherprograms(softwaretoolsandenvironments)《SoftwareEngineering》SoftwareCollegeofNankaiUniversity9Softwareisdevelopedorengineered,itisnotmanufacturedintheclassicalsense.Softwaredoesn’twearout.Butitdoesdeteriorate!Althoughtheindustryismovingtowardcomponent-basedassembly,mostsoftwarecontinuestobecustombuilt.1.2TheFeaturesofSoftware《SoftwareEngineering》SoftwareCollegeofNankaiUniversity10Manufacturingvs.Development•Onceahardwareproducthasbeenmanufactured,itisdifficultorimpossibletomodify.Incontrast,softwareproductsareroutinelymodifiedandupgraded.•Inhardware,hiringmorepeopleallowsyoutoaccomplishmorework,butthesamedoesnotnecessarilyholdtrueinsoftwareengineering.•Unlikehardware,softwarecostsareconcentratedindesignratherthanproduction《SoftwareEngineering》SoftwareCollegeofNankaiUniversity11Softwaredoesn’twearout.FailurerateTimeInfantmortalityWearoutFailurecurveforhardwareidealizedcurvechangeincreasedfailurerateduetosideeffectsactualcurveButitdoesdeteriorate!“Wearout”vs.Deterioration《SoftwareEngineering》SoftwareCollegeofNankaiUniversity12ComponentBasedvs.CustomBuilt•Hardwareproductstypicallyemploymanystandardizeddesigncomponents.•Mostsoftwarecontinuestobecustombuilt.•Thesoftwareindustrydoesseemtobemoving(slowly)towardcomponent-basedconstruction.《SoftwareEngineering》SoftwareCollegeofNankaiUniversity131.3SoftwareCategories•systemsoftware(系统软件)–服务于其他程序的程序–编译器、编辑器、文件管理程序–操作系统构件、驱动程序、网络软件•applicationsoftware(应用软件)–可以满足特定业务需要的独立应用程序–数据处理、实时控制•engineering/scientificsoftware(工程计算软件)–“数字计算”–计算机辅助设计、系统仿真、Matlab•embeddedsoftware(嵌入式软件)–存在于某个产品或者系统中,可实现和控制面向最终使用者和系统本身的特性和功能。–手持PDA、刹车系统《SoftwareEngineering》SoftwareCollegeofNankaiUniversity141.3SoftwareCategories•product-linesoftware(产品线软件)–为多个不同的用户的使用提供特定功能,关注有限的特定市场或者大众消费市场–Word,excel,多媒体,个人或公司财务应用•WebApps(网络应用)–超文本文件–发展为复杂的计算环境–与企业数据库和商务应用程序相结合•AIsoftware(人工智能软件)–利用非数值算法解决计算和直接分析无法解决的复杂问题–机器人、专家系统、模式识别、神经网络《SoftwareEngineering》SoftwareCollegeofNankaiUniversity151.3Software—NewCategories•Ubiquitouscomputing(普适计算)–开发系统和应用软件,使得小型设备、个人电脑和企业应用可以通过大量的网络设施进行通信。•Opensource(开源软件)–将系统应用程序的源代码开放,并允许用户自行修改•Also…–Datamining–Gridcomputing《SoftwareEngineering》SoftwareCollegeofNankaiUniversity16类别参加人员数开发期限源程序行数微型11~4周0.5k小型11~6月1k~2k中型2~51~2年5k~50k大型5~202~3年50k~100k甚大型100~10004~5年1M(=1000k)极大型2000~50005~10年1M~10M1.4TheSizeofSoftware《SoftwareEngineering》SoftwareCollegeofNankaiUniversity17DramaticimprovementsinhardwareperformanceProfoundchangesincomputingarchitecturesVastincreasesinmemoryandstoragecapacityWidevarietyofexoticinputandoutputoptionsMoresophisticatedandcomplexcomputer-basedsystemsToday:Windows95-1000万行代码Windows2000-5000万行代码Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人1.4TheSizeofSoftware《SoftwareEngineering》SoftwareCollegeofNankaiUniversity181.5Legacysystems(遗留系统)•遗留系统是以计算机为基础的社会-技术系统(Socio-technicalsystems),是在过去开发出来的,往往采用在今天看来是旧的和不再使用的技术。•Crucialtotheoperationofabusiness(关键

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功