《软件工程概述教学文稿.ppt》由会员分享,可在线阅读,更多相关《软件工程概述教学文稿.ppt(100页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程概述软件项目过程软件项目过程顾客 顾客需求满意产品输入 输出产品实现1软件工程三段论软件工程三段论软件开发项目管理过程改进2软件开发软件开发开发过程是软件人员生产软件的过程,例开发过程是软件人员生产软件的过程,例如需求分析、设计、编码、测试等如需求分析、设计、编码、测试等,相当相当于生产线上的生产过程。于生产线上的生产过程。3软件开发路线图软件开发路线图维维护护 产产品品 提提交交 测测试试 编编码码详详细细 设设计计 概概要要 设设计计 需需求求分分析析4软件项目管理软件项目管理 管理过程是项目管理者规划软件开发、控管理过程是项目管理者规划软件开发、控制软件开发的过程,相当于生产线上
2、的管制软件开发的过程,相当于生产线上的管理过程,管理过程是伴随开发过程进行的理过程,管理过程是伴随开发过程进行的过程。过程。5软件项目管理路线图软件项目管理路线图合同管理合同管理 生存期生存期 需求管理需求管理 任务分解任务分解项目进度项目进度项目估算项目估算质量计划质量计划 配置计划配置计划风险计划风险计划团队管理团队管理项目度量项目度量集成项目集成项目跟踪控制跟踪控制项目结束项目结束6软件过程改进软件过程改进 过程改进相当于对软件开发过程和软过程改进相当于对软件开发过程和软件管理过程的件管理过程的“工艺流程工艺流程”进行管理进行管理和改进,如果没有好的工艺生产不出和改进,如果没有好的工艺生
3、产不出好的产品,它包括对开发过程和管理好的产品,它包括对开发过程和管理过程的定义和改进过程的定义和改进。7软件过程改进路线图软件过程改进路线图启动诊断建立实施评估8软软件件工工程程过过程程(Softwareengineeringprocess):指指在在软件工具的支持下,所进行的一系列软件工程活动。软件工具的支持下,所进行的一系列软件工程活动。通常包括以下四类基本过程:通常包括以下四类基本过程:1.1.软件规格说明:软件规格说明:规定软件的功能及其运行环境。规定软件的功能及其运行环境。2.2.软件开发:软件开发:产生满足规格说明的软件。产生满足规格说明的软件。3.3.软件确认:软件确认:确认软
4、件能够完成客户提出的要求。确认软件能够完成客户提出的要求。4.4.软软件件演演进进:为为满满足足客客户户的的变变更更要要求求,软软件件必必须须在在使用的过程中演进。使用的过程中演进。9本讲核心本讲核心q一、软件工程过程q二、软件生存期模型q三、软件开发方法q四、软件工具与软件开发环境q五、路线图10软软软软件件件件生生生生命命命命周周周周期期期期(SoftwareSoftwarelifelifecyclecycle)是是指指从从软软件开始开发到报废的全过程,亦称件开始开发到报废的全过程,亦称软件生存期软件生存期软件生存期软件生存期。软件生命周期可分为软件生命周期可分为7 7个阶段:个阶段:1.
5、1.可行性研究和项目开发计划可行性研究和项目开发计划2.2.需求分析需求分析3.3.概要设计概要设计4.4.详细设计详细设计5.5.编码编码6.6.测试测试7.7.维护维护软件生存期一般用经典的瀑布模型来描述。一般用经典的瀑布模型来描述。11瀑布模型(waterfallmodel)(waterfallmodel)12 在在大大部部分分文文献献中中将将生生存存周周期期划划分分为为5 5个个阶阶段段,即即需需求求定定义义、设设计计、编编码码、测测试试及及维维护护。其其中中需需求求定定义义阶阶段段包包括括可可行行性性研研究究和和项项目目开开发发计计划划、需需求求分分析析,设设计阶段包括概要设计和详细
6、设计。计阶段包括概要设计和详细设计。为为了了描描述述软软件件生生存存期期的的活活动动,提提出出了了多多种种生生存存期期模型(也叫模型(也叫软件过程模型软件过程模型),例如:),例如:瀑布模型、瀑布模型、V V模型、原型化模型、螺旋模型模型、原型化模型、螺旋模型等。等。13常用生存期模型常用生存期模型q瀑布WaterfallqV模型V-shapedq原型Prototypingq增量Incrementalq螺旋式Spiralq.14Figure 2.1 The waterfall model.REQUIREMENTSANALYSISSYSTEMDESIGNPROGRAMDESIGNCODINGUN
7、IT&INTE-GRATION TESTINGSYSTEMTESTINGACCEPTANCETESTINGOPERATION&MAINTENANCE15瀑布模型瀑布模型是研究人员提出的第一个模型,它将开发阶段从一个阶段瀑布般转换到另一个阶段。该图暗示,一个开发阶段必须在另一个开发阶段开始之前完成。问题:并不能反映实际的代码开发方式,实际上软件是通过大量的迭代进行开发的。若不对实际的软件开发过程加以控制,开发过程可能看起来会像图2.2。16Figure 2.2 The software development process in realityREQUIREMENTS ANALYSISSYST
8、EMDESIGNPROGRAMDESIGNPROGRAMIMPLEMENTATIONUNITTESTINGINTEGRATIONTESTINGSYSTEMTESTINGDELIVERYMAINTENANCE17n瀑布模型的主要缺点是没有把软件看做一个问题求解的过程。n通过引入加强理解的活动和子活动,软件开发过程有助于控制活动之间的反反复复。n原型(prototype)就是这样的一个子过程,它使客户和开发人员能够对计划开发的系统的相关方面进行检查,以决定它对最终产品是否合适或恰当。n确认(validation)确保系统实现了所有的需求。n验证(verification)确保每项功能都是正确的。1
9、8Figure 2.3 The waterfall model with prototypingREQUIREMENTS ANALYSISSYSTEM DESIGNPROGRAM DESIGNCODINGUNIT&INTE-GRATION TESTINGSYSTEM TESTINGACCEPTANCE TESTINGOPERATION&MAINTENANCEPrototyping19WaterFall modelWaterFall model适合的项目适合的项目q在项目开始前,项目的需求很明确q在项目开始前,解决方案也很明确q类似的项目如:q公司的财务系统q库存管理系统q短期项目短期项目20F
10、igure 2.4 The V model.REQUIREMENTS ANALYSISSYSTEM DESIGNPROGRAM DESIGNCODINGUNIT&INTE-GRATION TESTINGSYSTEMTESTINGACCEPTANCE TESTINGOPERATION&MAINTENANCEVerify designValidate requirements21V V模型模型接收测试集成测试系统测试项目规化需求分析总体设计详细设计编码和调试集成测试单元测试22V模型模型nV模型使得隐藏在瀑布模型中的迭代和重做更加明确n瀑布模型关注的通常是文档和制品nV模型关注的是活动和正确性n大
11、家误认为测试是开发周期的最后一个阶段,其实早期的测试对提高产品的质量,缩短开发周期起着重要作用。nV模型正好说明的测试的重要性,它与开发是并行的。V模型体现了全过程的质量意识。23V V模型适合的项目模型适合的项目q在项目开始前,项目的需求很明确q在项目开始前,解决方案也很明确q对系统的性能安全很严格的项目q类似的项目如:q航天飞机等q公司的财务系统 实例24Figure 2.5 The prototyping modelLIST OFREVISIONSLIST OFREVISIONSLIST OFREVISIONSPROTOTYPEREQUIREMENTSPROTOTYPEDESIGNPRO
12、TOTYPESYSTEMTESTDELIVEREDSYSTEMSYSTEMREQUIREMENTS(sometimes informalor incomplete)Reviseprototypeuser/Customerreview25PrototypePrototype26Prototype Prototype 模型适合的项目模型适合的项目q在项目开始前,项目的需求不明确q需要减少项目需求的不确定性q类似的项目如:q确定显示界面q第一次开发的产品,验证可行性27Figure 2.9 the incremental and iterative models.INCREMENTAL DEVELO
13、PMENTITERATIVE DEVELOPMENT28阶段性开发阶段性开发n增量开发(incrementaldevelopment)l在增量开发中,需求文档中指定的系统按功能划分为子系统。定义发布时首先定义一个小的功能子系统,然后在每个新的发布中增加新功能。n迭代开发(iterativedevelopment)l迭代开发是在一开始就提交一个完整的系统,然后在每个新的发布中改变每个子系统的功能。29Incremental ModelIncremental Model核心功能核心功能112123第一增量第二增量第三增量核心功能11212330Incremental ModelIncrementa
14、l Model适合的项目适合的项目q项目开始,明确了需求的大部分,但是需求可能会发生变化q对于市场和用户把握不是很准,需要逐步了解q对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。增量模型实例31PLANDEVELOP AND TESTDETERMINE GOALS,ALTERNATIVES,CONSTRAINTSEVALUATE ALTERNATIVESAND RISKSstartRequirements,life-cycle planBudget1Alternatives1Constraints1Risk analysis1Risk analysis2Risk analysi
15、s3Risk analysis4Constraints2Constraints3Constraints4Budget2Budget3Budget4Alternatives2Alternatives3Alternatives4Prototype1Prototype2Prototype3Prototype4Concept ofoperationSoftwarerequirementsValidatedrequirementsDevelopmentplanIntegrationand test planSoftwaredesignValidated,verified designDetailedde
16、signCodeUnit testSystemtestAcceptancetestImplementationplanFigure 2.10 the spiral model.32螺旋模型螺旋模型(Spiral Model)n对于大型软件,只开发一个原型往往达不到要对于大型软件,只开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,求。螺旋模型将瀑布模型和增量模型结合起来,并并加入了风险分析加入了风险分析。n第一次迭代的产品是操作概念第一次迭代的产品是操作概念n第二次迭代的主要产品是需求第二次迭代的主要产品是需求n在第三次迭代中,系统开发产生设计在第三次迭代中,系统开发产生设计n
17、第四次迭代能够进行测试第四次迭代能够进行测试33Spiral ModelSpiral Model34Spiral ModelSpiral Modelqq螺旋模型沿着螺线旋转,在四个象限上分别表螺旋模型沿着螺线旋转,在四个象限上分别表螺旋模型沿着螺线旋转,在四个象限上分别表螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:达了四个方面的活动,即:达了四个方面的活动,即:达了四个方面的活动,即:qq制定计划制定计划制定计划制定计划确定软件目标,需求和选定实施确定软件目标,需求和选定实施确定软件目标,需求和选定实施确定软件目标,需求和选定实施方案,弄清项目开发的限制条件方案,弄清项目开
18、发的限制条件方案,弄清项目开发的限制条件方案,弄清项目开发的限制条件qq风险分析风险分析风险分析风险分析评估所选方案,考虑如何识别和评估所选方案,考虑如何识别和评估所选方案,考虑如何识别和评估所选方案,考虑如何识别和消除风险消除风险消除风险消除风险qq实施工程实施工程实施工程实施工程实施软件开发,编码,测试等实施软件开发,编码,测试等实施软件开发,编码,测试等实施软件开发,编码,测试等qq客户评估客户评估客户评估客户评估评价开发工作,提出修正建议,评价开发工作,提出修正建议,评价开发工作,提出修正建议,评价开发工作,提出修正建议,规划下期任务规划下期任务规划下期任务规划下期任务35n螺旋模型的
19、每次迭代都根据需求和约束进行风螺旋模型的每次迭代都根据需求和约束进行风险分析,以权衡不同的选择,并且在确定某一险分析,以权衡不同的选择,并且在确定某一特定选择之前,通过原型化验证可行性或期望特定选择之前,通过原型化验证可行性或期望度。度。n当风险确认之后,项目经理必须决定如何消除当风险确认之后,项目经理必须决定如何消除或最小化风险。或最小化风险。36Spiral ModelSpiral Model适合的项目适合的项目q风险是主要的制约因素q不确定因素和风险限制了项目进度q用户对自己的需求也不是很明确q需要对一些基本的概念进行验证q可能发生一些重大的变更q项目规模很大q项目中采用了新技术 实例3
20、7敏捷方法敏捷方法(Agile Software Development)n目的:通过过程和工具理解个人和交流的作用;通过全面的文档理解运行的软件;通过合同和谈判得到客户的协作;在计划的执行中做出对变更的响应。n极限编程(XP)n水晶法(Crystal)n并列争球法(Scrum)n自适应软件开发(ASD)nhttp:/ 结结结结构构构构化化化化开开开开发发发发方方方方法法法法(StructuredStructured DevelopingDeveloping MethodMethod)是是现现有有的的软软件件开开发发方方法法中中最最成成熟熟,应应用用最最广广泛泛的的方方法,主要特点是快速、自然
21、和方便。法,主要特点是快速、自然和方便。结结构构化化开开发发方方法法是是一一种种面面向向数数据据流流的的开开发发方方法法,它的基本原则是功能的分解与抽象。它的基本原则是功能的分解与抽象。结结构构化化开开发发方方法法总总的的指指导导思思想想是是自自顶顶向向下下、逐逐步求精步求精。结构化开发方法45 2020世世 纪纪 7070年年 代代 初初 结结 构构 化化 程程 序序 设设 计计 方方 法法 (StructuredProgram,SP)2020世世纪纪7070年年代代中中 结结构构化化设设计计方方法法(StructuredDesign,SD)2020世世纪纪7070年年代代末末 结结构构化化
22、分分析析方方法法 (StructuredAnalysis,SA)SASA,SDSD,SP SP 法法相相互互衔衔接接,形形成成了了一一整整套套开开发发方方法法。若若将将SASA,SD SD 法法结结合合起起来来,又又称称为为结结构构化化分分析析与与设设计技术(计技术(SADT SADT 技术)。技术)。一、一、结构化开发方法的组成结构化开发方法的组成46二、结构化方法的工作模型开发时期运行时期计划时期(目标与范围说明书)(可行性论证报告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型47 但从但从2020世纪世纪8080年代开始,逐渐发现其不足,软年代开始,逐渐发现其不足,
23、软件开发过程是个充满回朔的过程。而瀑布模型将其件开发过程是个充满回朔的过程。而瀑布模型将其分割为独立的几个阶段,不能从本质上反映软件开分割为独立的几个阶段,不能从本质上反映软件开发过程本身的规律。此外,过分强调复审,并不能发过程本身的规律。此外,过分强调复审,并不能完全避免较为频繁的变动。尽管如此,瀑布模型仍完全避免较为频繁的变动。尽管如此,瀑布模型仍然是开发软件产品的一个行之有效的工程模型。然是开发软件产品的一个行之有效的工程模型。48JACKSON开发方法结构化开发方法是面向数据流、数据封闭性的结构化开发方法是面向数据流、数据封闭性的开发方法,开发方法,JACKSON系统开发方法则是面向数
24、据系统开发方法则是面向数据结构的开发方法结构的开发方法。其基本思想是先建立输入输出的数据结构其基本思想是先建立输入输出的数据结构,再将再将其转换为软件结构。其转换为软件结构。49 JACKSON方方 法法 由由 JSP(JacksonstructuredProgramming)和和JSD(Jackson System Development)方法构成。方法构成。JSP法主要体现程序结构的设计,不严格区分法主要体现程序结构的设计,不严格区分软件概要设计和详细设计。软件概要设计和详细设计。JSD法是法是对对JSP法的扩充,针对法的扩充,针对JSP法的缺陷法的缺陷而提出的解决方案。其主要特点是:用而
25、提出的解决方案。其主要特点是:用“分而治之分而治之”的策略控制系统的复杂性的策略控制系统的复杂性,解决解决I/O结构的冲突问题。结构的冲突问题。1JACKSON方法的构成方法的构成502JACKSON方法的设计过程 建立数据结构建立数据结构JACKSON方方法法中中数数据据结结构构通通常常表表示示为为树树型型结结构构,有有顺顺序序、选选择择和和循循环环三种基本结构。如图三种基本结构。如图(a)所示所示,按照三种基本结构建立的文件数据结构。按照三种基本结构建立的文件数据结构。以数据结构为基础,建立相应的程序结构图以数据结构为基础,建立相应的程序结构图如如图图(b),也也称称为为JACKSON图图
26、。当当没没有有结结构构冲冲突突时时,转转换换过过程程是是简简单单的的。一一般般情情况况,数数据据结结构构与与模模块块结结构构是是相相对对应应的的,因因此此不不难难从从数数据据结结构构导导出出程程序序结构。结构。数据结构转换为程序结构文件文件记录记录*项项1项项2项项3(a)处理文件处理文件处理记录处理记录*处理项处理项1处理项处理项2处理项处理项3(b)51一、原型化方法一、原型化方法(PrototypingMethod)原原型型是是软软件件开开发发过过程程中中软软件件的的一一个个早早期期可可运运行行的的版版本本,它它反反映映了了最最终终系系统统的的部部分分重要特性。重要特性。原型化开发方法5
27、2 原原原原型型型型化化化化方方方方法法法法的的的的基基基基本本本本思思思思想想想想是是是是花花花花费费费费少少少少量量量量代代代代价价价价建建建建立立立立一一一一个个个个可可可可运运运运行行行行的的的的系系系系统统统统,使使使使用用用用户户户户及及及及早早早早获获获获得得得得学学学学习习习习的的的的机机机机会会会会,原原原原 型型型型 化化化化 方方方方 法法法法 又又又又 称称称称 速速速速 成成成成 原原原原 型型型型 法法法法(Rapid Rapid Rapid Rapid PrototypingPrototypingPrototypingPrototyping)。强强强强调调调调的的
28、的的是是是是软软软软件件件件开开开开发发发发人人人人员员员员与与与与用用用用户户户户的的的的不不不不断断断断交交交交互互互互,通通通通过过过过原原原原型型型型的的的的演演演演进进进进不不不不断断断断适适适适应应应应用用用用户户户户任任任任务务务务改改改改变变变变的的的的需需需需求求求求,将将将将维维维维护护护护和和和和修修修修改改改改阶阶阶阶段段段段的的的的工工工工作作作作尽尽尽尽早早早早进进进进行行行行,使用户验收提前,从而使软件产品更加适用。使用户验收提前,从而使软件产品更加适用。使用户验收提前,从而使软件产品更加适用。使用户验收提前,从而使软件产品更加适用。原型化方法的基本思想原型化方法
29、的基本思想531 1 1 1)快速建立需求规格原型()快速建立需求规格原型()快速建立需求规格原型()快速建立需求规格原型(RSPRSPRSPRSP 法)法)法)法)RSPRSPRSPRSP(Rapid Rapid Rapid Rapid Specification Specification Specification Specification PrototypingPrototypingPrototypingPrototyping)法法所所建建立立的的原原型型反反映映了了系系统统的的某某些些特特征征,让让用用户户学学习习,有有利利于于获获得得更更加加精精确确的的需需求求说说明明书书,待待
30、需需求求说说明明书书一一旦旦确定原型被废弃,后阶段的工作仍按照瀑布模型开发。确定原型被废弃,后阶段的工作仍按照瀑布模型开发。原型法分类原型法分类542 2 2 2)快速建立渐进原型()快速建立渐进原型()快速建立渐进原型()快速建立渐进原型(RCPRCPRCPRCP 法)法)法)法)RCPRCPRCPRCP(Rapid Rapid Rapid Rapid Cyclic Cyclic Cyclic Cyclic PrototypingPrototypingPrototypingPrototyping)法法采采用用循循环环渐渐进进的的开开发发方方式式,对对系系统统模模型型作作连连续续精精化化,将将
31、系系统统需需要要具具备备的的性性质质逐逐步步添添加加上上去去,直直至至所所有有性性质质全全部部满满足足,此时的原型模型也就是最终的产品。此时的原型模型也就是最终的产品。速速成成原原型型法法适适合合于于开开发发“探探索索型型”,“实实验验型型”与与“进化型进化型”一类的软件系统。一类的软件系统。原型法分类原型法分类55快速原型法按以下步骤循环执行:快速原型法按以下步骤循环执行:1.1.快快速速分分析析 快快速速确确定定软软件件系系统统的的基基本本要要求求,确确定定原原型型所所要要体体现现的的特特征征(界界面面,总总体体结结构构,功能,性能功能,性能)。2.2.构构造造原原型型 在在快快速速分分析
32、析的的基基础础上上,根根据据基基本本规规格格说说明明,忽忽略略细细节节,只只考考虑虑主主要要特特征征,快快速速构构造造一一个个可可运运行行的的系系统统。有有三三类类原原型型:用用户户界面原型、功能原型和性能原型。界面原型、功能原型和性能原型。3.3.运运行行和和评评价价原原型型 用用户户试试用用原原型型并并与与开开发发者者之之间间频频繁繁交交流流,发发现现问问题题,目目的的是是验验证证原原型型的正确性。的正确性。4.4.修改与改进修改与改进 对原型进行修改、增删。对原型进行修改、增删。原型的工作模型原型法工作模型原型法工作模型评评价价 构构造造快速分析或修改快速分析或修改运运行行速成原型的工作
33、模型是一个循环的模型。速成原型的工作模型是一个循环的模型。56YYYYNNNNYYNN 细化的快速原型模型细化的快速原型模型细化的快速原型模型57 OOSD(Object-OrientedSoftwareDevelopment)法法是是2020世世纪纪8080年年代代推推出出的的一一种种全全新新的的软软件件开开发发方方法法。非非常常实实用用而强有力,被誉为而强有力,被誉为20世纪世纪9090年代软件的核心技术之一。年代软件的核心技术之一。面向对象的开发方法 其其基基本本思思想想是是:对对问问题题领领域域进进行行自自然然分分割割,以以更更接接近近人人类类通通常常思思维维的的方方式式建建立立问问题
34、题领领域域的的模模型型,以以便便对对客客观观的的信信息息实实体体进进行行结结构构和和行行为为的的模模拟拟,从从而而使使设设计计的的软软件件更更直直接接地地表表现现问问题题的的求求解解过过程程。面面向向对对象象的的开开发发方方法法以以对对象象作作为为最最基基本本的元素,是分析和解决问题的核心。的元素,是分析和解决问题的核心。58一、面向对象开发方法的组成 OOSD由三部分组成:由三部分组成:OOA(Object-Oriented Analysis)面向对象的分析面向对象的分析 OOD(Object-Oriented Design)面向对象的设计面向对象的设计 OOP(Object-Oriente
35、d Program)面向对象的程序设计面向对象的程序设计59OOAOOA强调的是对一个系统中的对象特征和行为的强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。定义。建立系统的三类模型。OODOODOOD与与OOAOOA密切配合,顺序实现对现实世界的进一密切配合,顺序实现对现实世界的进一步建模。步建模。OOPOOPOOP是面向对象的技术中发展最快的,使用面是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。向对象的程序设计语言,进行编码。60二、二、二、二、OOAOOA法法法法 就就是是要要解解决决“做做什什么么”的的问问题题。OOA 法法的的基基本本任任务就是要
36、建立三种模型:务就是要建立三种模型:状态模型状态模型(动态模型)(动态模型)描描述述任任何何时时刻刻对对象象的的联联系系及及其其联联系系的的改改变变,即即时时序序。常常用用状状态态图图,事件追踪图描述。事件追踪图描述。处理模型处理模型(函数模型)(函数模型)描述系统内部数据的传送处理。描述系统内部数据的传送处理。显然,在三大模型中,最重要的是对象模型。如何建立三大模型。显然,在三大模型中,最重要的是对象模型。如何建立三大模型。对象模型对象模型(信息模型)(信息模型)定义构成系统的类和对象,它们的属性与操作。定义构成系统的类和对象,它们的属性与操作。61三、三、三、三、OODOOD 法法法法 在
37、需求分析的基础上,进一步解决在需求分析的基础上,进一步解决“如何做如何做”的问题,的问题,OOD OOD 法也分为概要设计和详细设计。法也分为概要设计和详细设计。概要设计:概要设计:概要设计:概要设计:细化对象行为,添加新对象,认定细化对象行为,添加新对象,认定类,组类库,确定外部接口及主要数据结构。类,组类库,确定外部接口及主要数据结构。详细设计:详细设计:加细对象描述。加细对象描述。三、OOD 法62四、四、四、四、OOPOOP 法法法法 使使用用面面向向对对象象的的程程序序设设计计语语言言,如如C+C+进进行行程程序序设计。设计。CoadCoad和和YourdonYourdon给出一个面
38、向对象的定义:给出一个面向对象的定义:面向对象面向对象=对象对象+类类+继承继承+消息消息 如如果果一一个个软软件件系系统统是是按按照照这这样样四四个个概概念念设设计计和和实现的,则可以认为这个软件系统是面向对象的。实现的,则可以认为这个软件系统是面向对象的。三、OOD 法63软件复用技术软件复用技术 “软件重用软件重用”或或“软件复用软件复用”(Software ReuseSoftware Reuse)是指将已)是指将已有的软件成分用于有的软件成分用于构造新的软件系统构造新的软件系统构造新的软件系统构造新的软件系统。该技术是提高软件生。该技术是提高软件生产率和质量,降低成本的有效方法。产率和
39、质量,降低成本的有效方法。复用方式复用方式复用方式复用方式复复用用程程序序 包包括括目目标标代代码码和和源源代代码码的的复复用用,可可通通过过连连接接(Link)(Link)、绑绑定定(Binding)(Binding)、包包含含(include)(include)等等功功能能支支持持及及对象链接及嵌入对象链接及嵌入(OLE)(OLE)技术实现。技术实现。复用分析复用分析 比设计复用级别更高,实现方式与设计复用类比设计复用级别更高,实现方式与设计复用类似。似。复用设计复用设计 设计结果比源程序的抽象级别高,因此复用受设计结果比源程序的抽象级别高,因此复用受环境影响小。可以通过从现有系统中提取全
40、部或者不同粒环境影响小。可以通过从现有系统中提取全部或者不同粒度的设计构件,或者独立于具体应用开发设计构件。度的设计构件,或者独立于具体应用开发设计构件。复用结构复用结构 复用模块结构或者数据结构。复用模块结构或者数据结构。可复用的构件可复用的构件可复用的构件可复用的构件构件构件是指可以被明确标识的软件制品,可以是软件开发是指可以被明确标识的软件制品,可以是软件开发不同阶段的产品。不同阶段的产品。可复用构件可复用构件是指可被其它系统复用,用于构成新系统的是指可被其它系统复用,用于构成新系统的构件。构件。可复用构件的特性:可复用构件的特性:1.独立性独立性解决相对独立的问题,与外界联系尽量少。解
41、决相对独立的问题,与外界联系尽量少。2.完整性完整性既要包括完整的解决方案,还定义相应操作。既要包括完整的解决方案,还定义相应操作。3.通用性通用性在同类应用中具有一般性。在同类应用中具有一般性。4.可标识性可标识性通过合适的命名,构件所解决的问题是可标通过合适的命名,构件所解决的问题是可标识的。识的。5.可适应性可适应性适应环境变化。适应环境变化。6.可靠性可靠性对各个使用它的系统都具有高的可靠性。对各个使用它的系统都具有高的可靠性。65本讲核心本讲核心q一、软件工程过程q二、软件生存期模型q三、软件开发方法q四、软件工具与软件开发环境q五、路线图66软件开发工具 为为为为支支支支持持持持软
42、软软软件件件件开开开开发发发发、维维维维护护护护、管管管管理理理理而而而而研研研研制制制制的的的的计计计计算算算算机程序系统称为软件工具。机程序系统称为软件工具。机程序系统称为软件工具。机程序系统称为软件工具。软软软软件件件件工工工工具具具具通通通通常常常常由由由由工工工工具具具具、工工工工具具具具接接接接口口口口和和和和工工工工具具具具用用用用户户户户接接接接口口口口3 3 3 3部部部部分分分分构构构构成成成成。工工工工具具具具通通通通过过过过工工工工具具具具接接接接口口口口与与与与其其其其他他他他工工工工具具具具、操操操操作作作作系系系系统统统统或或或或网网网网络络络络操操操操作作作作系
43、系系系统统统统以以以以及及及及通通通通信信信信接接接接口口口口、环环环环境境境境信信信信息息息息库库库库接接接接口口口口等等等等进进进进行行行行交交交交互互互互作作作作用用用用,当当当当工工工工具具具具需需需需要要要要与与与与用用用用户户户户进进进进行行行行交交交交互互互互作作作作用用用用时时时时,则则则则通通通通过过过过工工工工具具具具的用户接口来进行。的用户接口来进行。的用户接口来进行。的用户接口来进行。软软软软件件件件工工工工具具具具种种种种类类类类繁繁繁繁多多多多,涉涉涉涉及及及及面面面面广广广广,如如如如编编编编辑辑辑辑、编编编编译译译译、正正正正文文文文格格格格式式式式处处处处理理
44、理理,静静静静态态态态分分分分析析析析、动动动动态态态态跟跟跟跟踪踪踪踪、需需需需求求求求分分分分析析析析、设设设设计计计计分分分分析析析析、测试、模拟和图形交互等。测试、模拟和图形交互等。测试、模拟和图形交互等。测试、模拟和图形交互等。67在在软软件件工工程程活活动动中中,软软件件工工程程师师和和管管理理员员按按照照软软件件工工程程的的方方法法和和原原则则,借借助助于于计计算算机机及及其其软软件件工工具具的的帮帮助助,开开发发、维维护护、管管理理软软件件产产品品的的过过程程,称称为为计计算算机机 辅辅 助助 软软 件件 工工 程程(Computer-Aided SoftwareEnginee
45、ring,简称,简称CASE)。)。68n图稿绘制工具n源码浏览的工具n配置管理工具n数据库建模工具n nUML建模工具nRose与PowerDesigner两款建模工具的对比69图稿绘制工具Visio:它是最通用(MS的东西,意味着许多附带的通用的东西)的硬件、网络平台等图表设计软件。好处是易用性高,特别是对不善于自己构造图的人。但是正因为很全,所以某个方面上会造成专业程度较低。Smartdraw:提供你大堆模版,以目录树的形式放在左边。smartdraw本身是独立提供图稿绘制的工具,因而工具齐全。常用常用常用常用CASECASE工具介绍工具介绍工具介绍工具介绍 Go70VISIO的图只能以
46、对象的方式插入你的主文档,只有在它本身环境下才能修改。有关工程管理类的显然不如PROJECT2000好用;画IDEF0图显然不如BPWIN好用;画IDEF1X图显然无法与ERWIN相比;画组织机构图WORD足够用了,且普遍适用;画网络拓扑结构图只要有相应的图素,用什么画都行;画有关图表类的显然不如EXCEL好用;71IDEFIDEF(ICAM DEFinition method)ICAM(Integrated Computer Aided Manufacturing)IDEF是用于描述企业内部运作的一套建模方法。IDEF是由美国空军发明,现在则根据知识基础系统开发的。它本来只是运用在制造业上的
47、,经过改造后用途变广泛了,适用于一般的软件开发。从IDEF0到IDEF14(包括IDEF1X在内)共有16套方法,每套方法都是通过建模程序来获取某个特定类型的信息。IDEF方法是用于创建各种系统的图像表达、分析系统模块、创建系统的最佳版本和帮助不同系统之间的转换。72IDEF0:功能建模(FunctionModeling)IDEF1:信息建模(InformationModeling)IDEF1X:数据建模(DataModeling)IDEF2:仿真建模设计(SimulationModelDesign)IDEF3:过程描述获取(ProcessDescriptionCapture)IDEF4:面向
48、对象设计(Object-OrientedDesign)73IDEF5:本体论描述获取(OntologyDescriptionCapture)IDEF6:设计原理获取(DesignRationaleCapture)IDEF7:信息系统审定(InformationSystemAuditing)IDEF8:用户介面建模(UserInterfaceModeling)74IDEF9:场景驱动信息系统设计(Scenario-DrivenISDesign)IDEF10:实施体系结构建模(ImplementationArchitectureModeling)IDEF11:信息制品建模(InformationA
49、rtifactModeling)IDEF12:组织建模(OrganizationModeling)IDEF13:三模式映射设计(ThreeSchemaMappingDesign)IDEF14:网络规划(NetworkDesign)75IDEF0之基本组件图之基本组件图76IDEF0之系统功能展开之系统功能展开 77SourceInsigt:整个面板分成三个部分.左边树提供工程内的所有变量,函数,宏定义,右边提供程序阅读和编辑,下边显示你鼠标在原码触及的函数或者变量定义.最让人佩服的是SourceInsigt不仅高亮你的关键字,而且以近乎完美的板面编排让你看程序如果看报纸,好极了。SourceI
50、nsigt提供函数交叉调用的分析,并以树状的形式显示调用关系。Dia:(http:/www.gnome.org/projects/dia/)源码浏览的工具源码浏览的工具78SourceNavigator:这个是从RedhatLinux版本移植到win32下的,与SourceInsigt相比,样子土多了,处处透着Linux的乡土气息,不过是干实事的家伙。提供原码高亮显示和编辑,提供头文件的包含关系分析,提供类的层次关系,这个东西最大的特点是把原码始终和文件联系在一起,提供到文件的导航。源码浏览的工具源码浏览的工具79VirsualSourceSafe:微软的studio企业版包含的版本管理工具。