软件工程概述教学文稿.ppt
《软件工程概述教学文稿.ppt》由会员分享,可在线阅读,更多相关《软件工程概述教学文稿.ppt(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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图图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概述 教学 文稿
限制150内