第1讲 软件工程课程介绍_第1页
第1讲 软件工程课程介绍_第2页
第1讲 软件工程课程介绍_第3页
第1讲 软件工程课程介绍_第4页
第1讲 软件工程课程介绍_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SoftwareEngineering

软件工程蒲蔚CollegeofComputerScienceandSoftwareEngineering四川大学计算机(软件学院)

E-Mail:puwei@CellPhone1讲软件工程课程介绍主要内容1.1课程学习目的1.2第一个事实:软件的重要性和软件危机催生了软件工程1.2.1软件1.2.2软件危机1.2.3软件工程1.3再谈课程目标1.4课程内容与课程安排1.5课程信息1.6补充1.7习题与思考题WhydoIneedtolearnsoftwareengineering?1.1课程学习目的development=Programming?场景:做一个软件(developsoftware)需求分析人员过程技术设计人员架构师项目经理测试人员高管市场人员人……开发,需求分析,设计……项目管理测试,单元测试、集成测试、系统测试……过程管理配置管理……质量管理怎么做开发(/建模),怎么做需求分析,怎么做设计……怎么实施项目管理怎么做测试,单元测试、集成测试、系统测试……怎么进行配置管理……怎么进行质量管理质量保证人员配置管理人员1.1课程学习目的Development≠programming.Onepurposeofthiscourseistoconvinceyouthatallofthecontentofthiscoursearetrue,andonceyouareconvinced,giveyouabasicknowledgesothatyoucanapplyityourself.Inanotherword,youwilllearnhowtothinkandtosolveproblem.

软件的重要性和软件危机

催生了软件工程1.2“软件工程”告知的第一个事实1.2.1软件计算机软件计算机软件=程序+数据结构+文档1.2.1软件计算机系统适当地组织在一起的一系列系统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标。计算机系统元素计算机软件:程序+数据结构+文档计算机硬件:提供计算能力的设备+外设人员:硬、软件的用户和操作者数据库:大型的有组织的数据集合文档:系统的描述信息过程:一系列的步骤1.2.1软件计算机软件的双重作用作为一个产品,软件扮演着信息交换的角色。作为产品生产的载体,软件提供了计算机控制(操作系统)、信息通信(网络)以及应用程序开发和控制(软件工具和环境)的基础平台。1.2.1软件计算机软件的特征软件是设计开发的,而不是传统意义上生产制造的。软件不会“磨损”。虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。1.2.1软件软件应用领域P5以及应全部或部分具备的属性系统软件应用软件工程/科学软件嵌入式软件产品线软件Web应用软件(属性)人工智能软件开放计算网络资源开源软件新的挑战:“开放计算”、“网络资源”和“开源软件”网络密集性并发性无法预知的负载量性能数据驱动可用性内容敏感性持续演化即时性美观性安全性1.2.2软件危机软件生产发展程序设计时代(1946~1956)程序系统时代(1956~1968)软件工程时代(1968至今):软件工程的发展大致可以划分为两个阶段60年代末~80年代初80年代初~现在状况软件系统的规模、复杂性以及在关键领域的广泛应用,促进了软件开发过程采纳工程化的方法进行管理。“软件工厂”的概念已经提出。研究开发模型、支持工具、开发方法。软件生产技术,特别是软件复用技术和软件生产管理的研究和实践。成果瀑布模型、结构化语言(pascal等)、结构化方法、各种管理方法(如费用估算、文档复审)。提出了具有广泛应用前景的面向对象方法和相关的编程语言。事件前期主要研究系统实现技术;后期则开始强调管理和软件质量。软件过程改进。在工业实践中建立起一种量化的评估程序,判定软件组织成熟的程度。关注的焦点软件项目软件过程1.2.2软件危机软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。1.2.2软件危机软件危机的具体表现对开发成本和开发进度难以进行准确地估计用户对软件产品不满意软件产品的质量难以保证软件产品维护非常困难软件产品没有适当的文档资料软件成本在计算机系统总成本中所占的比例逐年上升软件开发效率的提高远远跟不上计算机应用快速普及的趋势下一页用户对软件产品不满意返回1.2.2软件危机软件危机的成因硬件生产效率的快速提高软件产品的规模越来越大软件产品开发的复杂度越来越高用户需求不明确软件开发技术落后软件产品生产效率较低整个软件开发过程缺乏正确的理论指导1.2.3软件工程克服软件危机人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败。要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。在技术上,应该采用基于重用的软件生产技术;在管理上,应该采用多维的工程管理模式。1.2.3软件工程软件工程概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。1.2.3软件工程软件工程层次图工具质量关注点过程方法图软件工程层次图1.2.3软件工程软件工程:过程开发要遵循一系列的可预测的步骤,也要灵活。软件工程过程方法:过程框架过程模式指导过程的原则1.2.3软件工程软件工程:方法实践的精髓:要构建能够适应现代挑战的软件产品,需要在软件工程实践的框架之下,遵循如下的原则理解问题(沟通和分析)计划解决方案(建模和软件设计)实施计划(代码生成)检查结果的正确性(测试与质量保证)一般原则:指导实践的原则:指导每个框架活动的原则沟通原则:策划原则:建模原则:构造原则:部署原则:原则的层次体现具体的建模方法(技术)和建模表示法1.2.3软件工程软件工程:方法需求模型到设计模型的转化:需求模型的每个元素都提供了创建4种设计模型(元素)所必须的信息,这4种设计模型(元素)是完整的设计规格说明所必须的。软件设计过程的信息流如图所示,由基于场景的(需求模型)元素、基于类的元素、面向流的元素和行为元素所表示的需求模型是设计任务的输入。使用软件工程学科提供的设计方法和设计表示法,将得到数据或类的设计、体系接口设计、接口设计和构件设计。需求模型到设计模型的转化基于场景的元素用例文本用例图活动图基于类的元素类图分析包CRC模型协作图面向流的元素数据流图控制流图处理叙述行为元素状态图顺序图构件级设计接口设计体系结构设计数据/类设计需求模型设计模型1.2.3软件工程软件工程层次图工具质量关注点过程方法图软件工程层次图1.3再谈课程目标希望:正确理解软件开发的真实情况,不要“神话”不要理解不透的概念,要技术应用的执行力(以此去促进概念的理解)会依据项目团队和要开发的产品特点,遵循过程实践的指导原则选用调整过程模型。建模技术应用,比方说,会用UML进行用例建模、体系结构建模等等。做做游戏:场景1:假设你是一个项目经理,想在你接到一个软件开发项目,你首先需要思考的问题是什么?你如何在《软件工程》中寻求解决的灵感?场景2:假设你拿到了书面的对用户需求的文字陈述,你如何建立需求模型?你如何在《软件工程》中寻求解决的技术?1.4课程内容和课程安排序名称时间安排第1讲软件工程课程介绍4课时;9月2日;第1周第2讲软件过程4课时;9月9日;第2周第3讲面向对象概念和UML知识点讲解4课时;9月16日;第3周第4讲面向数据流的结构化分析和设计知识点讲解4课时;9月23日,第4周第5讲需求工程8课时;9月30日,10月7日;第5周,第6周4课时,10月14日,按大纲要求:Lab1UMLmodelingofsystem;第7周4课时,10月21日,按大纲要求:期中测验;第8周第6讲设计工程8课时;10月28日,11月4日;第9周,第10周4课时,11月11日,按大纲要求:Lab2GUIDesign;第11周第7讲评审和测试4课时,11月18日,第12周4课时,11月25日,按大纲要求:Lab3SoftwareTesting;第13周第8讲Web介绍4课时,12月2日,第14周4课时,12月9日,按大纲要求:Lab4Webapplication;第15周4课时,12月16日,按大纲要求:FinalCourseReview,第16周下一节1.4.1第1讲:软件工程课程介绍Introduction:Softwareengineeringanditsplaceasanengineeringdiscipline.Introducethesoftwareengineeringandthebackground,thereferredknowledge.Introducethedevelopmentprocessesofthesoftwareindustry,analyzethereasonstobringoutthesoftwarecrisis,andintroducethebasicconceptsofsoftwareengineeringandthepurposetouseit.TextBook:Chap.14课时;9月2日;第1周返回1.4.2第2讲:软件过程ProcessModels:Introducethethreelayersofsoftwareengineering:Process,MethodsandTools,introducetheCommonProcessFrameworkandthetasksofeachphase,analyzethesignificationandcharacteristicsoftheprocessmodels,includingtheLinearSequentialModel、PrototypingModel、RADModel、IncrementalModel、SpiralModel、AgileModel,etc.TextBook:Chap.2,34课时;9月9日;第2周返回1.4.3第3讲:面向对象概念和UML知识点讲解从本讲开始,我们进入“建模”内容的讲解。讲解从建模的3W+1H开始.而本讲立足“面向对象开发的观点”,来了解“一门面向对象建模技术”的建模语言:UML(UnifiedModelingLanguage,统一建模语言)TextBook:Part24课时;9月16日;第3周返回1.4.4第4讲:面向数据流的结构化分析和设计知识点讲解本讲基于“结构化开发的观点”,介绍面向数据流的建模方法和表示法。TextBook:Part24课时;9月23日,第4周返回1.4.5第5讲:需求工程RequirementsEngineering:Introducethemethodsanddisciplinestoacquireandanalyzetherequirements.Presentstherequirementsengineeringtasks:Inception,Elicitation,Elaboration,Negotiation,Specification,Validationandrequirementmanagement.Moreover,weprovidetheprocesstoinitiatetherequirementsengineering.TextBook:Chap.5BuildingtheAnalysisModeling:IntroducethemethodsofStructuralAnalysisModeling,aswellasthedesignmethodsanddisciplinesofthedatamodeling,suchasERD、DFD,etc;IntroducetheconceptsofDataDictionary,themethodstodoBehavioralModeling.TextBook:Chap.6,78课时;9月30日,10月7日;第5周,第6周返回1.4.6(1)第6讲:设计工程DesignConceptsandPrinciplesIntroducetheconceptsofthedesignprocess,suchasDataDesign、ArchitecturalDesign、InterfaceDesign、Component-LevelDesign,analyzetherelationshipbetweenthesoftwaredesignanditsquality,thenintroducethePrinciplesofAbstraction、Refinement、Modularity、Cohesion、Couplinginthedesignprocess.TextBook:Chap.8ArchitecturalDesign:IntroducetheSoftwareArchitecture,analyzetheDataDesignintheArchitecturalDesign,introducethevarioussystemstructures,aswellasthemethodstomaptheanalysismodeltosystemstructures.TextBook:Chap.9Component-levelDesign:Introducethecomponentfromobject-oriented,conventionalandprocess-relatedviews;Discusshowtodesigntheclass-basedcomponents,conductthecomponent-leveldesignanddesigntheconventionalcomponents.TextBook:Chap.10(Chap.10大纲未要求)UserInterfaceDesign:IntroducetheprocessandPrinciplesoftheuserinterfacedesign;analyzetheimportantproblemsinthisdesign,aswellasthedesignguideandestimationmethods.TextBook:Chap.118课时;10月28日,11月4日;第9周,第10周1.4.6(2)第6讲:设计工程学习金字塔听讲阅读视听演示讨论实践教授给别人主动学习被动学习学习内容平均留存率5%10%20%30%50%75%90%1.4.6(3)第6讲:设计工程所以,做出如下安排:将23种设计模式分配给23位同学们来讲解,预计6课时,第11周,第12周。模式名讲解人模式名讲解人创建型模式FactoryMethodPatternAbstractFactoryPatternBuilderPatternPrototypePatternSingletonPattern结构型模式AdapterPatternDecoratorPatternBridgePatternFacadePatternCompositePatternFlyweightPatternProxyPattern行为型模式ChainofResponsibilityPatternStatePatternCommandPatternStrategyPatternInterpreterPatternTemplateMethodPatternMediatorPatternVisitorPatternMementoPatternIteratorPatternObserverPattern返回1.4.7第7讲:评审和测试SoftwareTestingStrategiesandTechniquesIntroducetheimportance,thepurposeandtheprinciplesofsoftwaretesting,thefactorwhichaffectsthetestability,thevariouskindsoftesting,andthewaystodesignthetestingcase.Introducethedifferencebetweenverificationandvalidation,thesoftwaretestingstructure,thewaystoperformthetesting,andtheintegrationtesting.IntroducethestrategiesofAlpha、Beta、System、Configuration、Compatibility、ForeignLanguagetesting.TextBook:Chap.17,18,194课时,11月18日,第12周返回1.4.8第8讲:Web介绍IntroductiontoWebEngineering:Introducethewebengineeringanditslayers:Process,methods,toolsandtechnology;Discusshowtoinitiate,analysis,designandtestforthewebapplications.TextBook:Chap.13,204课时,12月2日,第14周返回1.5课程信息课程名称:软件工程导论(IntroductiontoSoftwareEngineering)课程性质:专业必修课程理论:16周,48学时实验:16学时,4个实验学分:4开设学期:大学二年级秋季学期开设对象:本科先行课程:C语言程序设计,面向对象程序设计导论工具和环境:Project2007,RationalRose/MSVisio2003,MSOffice2003,VC++/Eclipses,Junit/Boundscheck,CVS,etc.教材:《SoftwareEngineering--APractitioner‘sApproach》

(《软件工程——实践者的研究方法(第7版)》)评分规则:Midterm(10%),Finalexam(40%),ClassParticipation(10%),Assignments(20%),Labs(20%)1.6补充关于“意外效应法则”1.6补充关于“通用软件工程过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论