如何讲授软件工程基础要点?

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

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

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

资源描述

24小时教学方式:授课时间:设计时间:52小时授课+课程设计003。7。13第一章软件工程概述§1.1软件工程1.软件需求规格(A)总体设计(B)详细设计(C)工程的设计书设计图纸蓝图软件是软件工程产品有三要素:程序+数据+文档程序不是蓝图,蓝图不是程序2.软件工程的定义从产品目标的观点看,软件工程是研究如何开发出满足用户需求的、低成本、高质量的大型软件产品的工程学科。软件工程是一门交叉学科,它所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应以发展的眼光看待它。软件工程分代:工程化,面向对象,过程,构件一代二代三代四代需求综合逆向复用软件工程—一种层次化技术工具方法过程软件工程三要素:方法工具过程工具观点的方法分类非形式化(自然语言方式)半形式化(图形方式)形式化(基于数学方式)方法:开发的技术工具:开发软件的辅助手段过程:传统现代面向对象(对象驱动)工具(适于特定领域小任务)平台(工具组合,适合中小任务)环境(工具集成,适合大型任务)Pplan计划描述定义,管理过程Aaction执行演进过程面向数据流(过程驱动)面向数据结构(数据驱动)Ccheck确认检查过程Ddevelop开发软件开发过程设计观点的方法分类为什么要分周期,分阶段,分模块?答:从工程化的角度,为了保证软件工程的质量。所谓工程化:是指必须计划在先,需求在先,分阶段,流水依赖。工程化三要点:时间上分阶段逻辑上分模块阶段有评审子阶段功能作用基线计划Plan开发运行Action问题定义要做功能的界定问题定义报告可行性分析可做高层逻辑可行性分析报告项目计划进度计划安排项目进度计划,项目实施方案设计需求分析必做问题模型需求规格说明书,用户说明书总体设计如何做软件结构总体设计说明书,接口说明(体系结构,分模块)详细设计具体做过程结构详细设计说明书实现编码翻译源程序模块说明测试验证找出错误验收报告维护改进改进总结总结报告,修改报告退役版本版本分界版本说明DevelopCheckEvolution文档:Document软件开发过程的图文描述,分三类:用户,管理,开发.关键文档项叫基线(KeyItemBaseline)基线的作用:1、阶段的分界标志2、配置管理的检查点3、质量评审的阶段成果4、发行的阶段版本软件与程序的区别:成分周期过程软件程序+数据+文档全周期全过程程序程序+数据子阶段翻译过程软件分类:功能系统工具应用商业计算智能嵌入个人规模大中小微范围项目产品频度高频偶尔可靠高可靠低可靠方式实时分时批处理交互定制面向客户软件工程的目标:折衷优化低成本、高质量、按时交付。软件危机:软件生产、开发过程中出现的供不应求的严重问题。旧危机:新危机:非工程化工程化、结构化以个人要求为开发目标。不能满足大型软件要求解决方法:结构化面向对象方法软件开发的动力——软件危机(用户对软件低成本高质量的需求)面向对象有四要素:对象+类+继承+通讯问题:1。软件的三要素是什么?2。软件工程三要素是什么?生存周期阶段、功能、基线?3。软件开发过程包括哪几个子阶段?4。软件工程与其它区别?区别原理设计管理计算机科学具体不具体不具体系统工程应用广泛应用项目管理应用实施具体软件工程应用具体应用5。面向对象四要素?软件为什么难开发,永远处于危机状态?客观原因:四个本质特征难满足方法、工具、本身有局限主观原因:乙方(开发方)组织水平局限甲方(需求方)难沟通软件特点:逻辑产品,抽象、易复制、可维护、依赖、可移植、复杂、昂贵、社会性。基本特征(本质特征):复杂性可变性不可见性一致性(社会性)§1.2软件开发模型软件工程研究的内容软件开发理论开发技术(方法论)管理技术四个原则:分解抽象确定性一致性模型方法原则抽象归纳分解演绎计划阶段开发阶段听用户评价请用户验收1、瀑布模型(WaterfallModel)设计实现运行退役可行性分析项目计划需求分析总体设计详细设计编码测试维护问题定义瀑布模型提出背景针对旧危机的主要问题,忽视需求质量差。解决办法工程化的观点(包括三个要点)时间上分阶段——克服盲目性逻辑上分模块——克服复杂性阶段有评审——保证质量成功点:就是工程化的三要点缺点:与用户见面晚,造成错误放大难题:数据与操作分开抽象,难检测阶段间模型不统一,难转换接口复杂,静态联编,难复用语义断层,难实现适用:中小型,需求确定的小系统开发作用:奠定了整个软件工程的基础2.原型模型(或称演化、样机模型)快速原型模型(RapidPrototypeModel)是其中一种改进模型,其它见后。原型快速分析修改评价构造运行开始结束问题定义可行性分析进度安排需求分析(原型)总体设计详细设计编码测试维护退役(快速原型)快速原型评价线原型评价线针对:瀑布模型的缺点,需求不准特点:自顶向下,自外向内;逐渐确定需求(验收产品)(原型核心思想)优点:易成功,不容易失败,克服需求不准缺点:工期长,成本高关于改进缺点的策略:验收评审完成(见改进原型1-4)评价意见结束成本周期限定内适用:大型的软件开发(尤其是需求变化的)改进1:快速原型,以产品是不是满足用户要求作为评价产品是不是完成。针对产品就是把评价线拿到维护阶段(见上图)本质上是结构化方法。改进2:演化原型,(试验原型)就是为了确定需求,对大型的新领域用这个来定需求。改进3:喷泉原型,主要为了保证复用和集成,合理的保留,不合理的改进。改进4:增量原型,阶段产品,分阶段完成。原型开发何时结束:验收评审完成评价意见结束成本周期限定内3.组合模型两种以上组合起来叫组合模型螺旋四阶段:制定计划风险分析实施工程用户评价组合条件:两种模型能组合意味着生存周期阶段间的文档可以转换,必须找到两种文档可以相互转换的技术点。螺旋模型瀑布模型原型模型风险分析=++模型迭代评价4。面向对象模型实质:综合抽象,无缝联接,复用迭代,为螺旋+喷泉+对象的组合优点:综合抽象,模型统一,符合人的分解抽象思维动态联编,复用性好局限:语言工具不完善,不适合并行动态,长期复用难OMT,3VD,Coad’sreuse,UML模型:计划面向对象分析面向对象总体设计面向对象详细设计面向对象实现面向对象维护类库创建对象发消息复用释放识别对象界定高层类问题域类模型解域类层次类具体解封装引用迭代遗产复用实例类引用或者无重点软件二维过程(工程化工作流过程)表时间阶段软件成分计划需求总体详细编码测试维护退役要做可做立项进度必做标准合同如何做体系结构具体做控制结构具体做选语言风格效率验收动静可靠正确评审改进总结版本人工流图推荐流图DFD0SA细化DFDnSCHC独立SPPADNSD结构化白盒黑盒用例回归复审Jachson3VDJachson3VDJachson3VD对应PC3VDcoadIsahasa封装强耦合复用构件问题:1。UML属于软件工程三要素哪一个?有了工具可以不用方法吗?。2。组合模型的优点?使用条件?。3。模型、方法、原则的关系?原则有哪些?4。面向对象模型的特点?模型两个迭代含义?5。原型开发何时结束?原型改进类型?。第二章面向数据流方法§2.1结构化分析(SA)人工流图四要素:外部项,文件,人工操作,信息流1.问题定义问题定义由人工流图+取代人工流图+数据流图组成取代人工流图要素:外部项,文件,人工操作,取代逻辑,信息流数据流图要素:外部项,文件,加工,数据流画图规则:外部项、文件可重复,数据流名不许重复,流线不许交叉操作间有文件,文件间有操作,操作、加工为动宾结构描述步骤:系统分析员向甲方调查人工流程后用人工流图表示,理解要求用取代工流图表示,确定总体要求用数据流图表示。以杨辉三角系数求解为例说明:(a+b)n的展开系数求解为二项式定理,手工的求解用为多项式乘法,合并同类项,排列系数:.(a+b)0=1①(a+b)1=11②(a+b)2=(a+b)x(a+b)③多项式乘法=a2+ab+ab+b2.合并同类项=a2+2ab+b2.排系数=121.(a+b)3=(a+b)2x(a+b)④=a2+2ab+b2x(a+b).=a3+3a2b+3ab2+b3.=1331。算法归纳:P[i,j]=p[i-1,j-1]+p[i-1,j]P[i,j]=(i-1)!/((j-1)!(i-j)!)。1...Ⅰ11.121.1331.目标系数:1111211331由上页①至④归纳画出人工流图不合理阶数二项式阶数合理阶数展开算法展开式积多项式合理阶数判断阶数手工求积合并同类项学生算法展开正三角系数斜三角系数系数排法排列系数二项式阶数要求判断阶数、用算法计算系数、排列系数,不用多项式乘法,理解确定要求,画出取代人工流图.。二项式阶数学生终端求解杨辉三角系数算法排法不合理阶数斜三角系数正三角系数人工流图⊕⊕2.结构化分析SA(StructuredAnalysis)用细化的DFDn图+数据字典DD+加工说明来说明市场需求(数据要求,功能要求,性能、环境要求)理解问题定义取代人工的逻辑是否合理完整,细化DFDn要遵循数据守恒从取代人工的方框中抽象数据流图DFD0学生学生求杨辉三角系数阶数不合理阶数算法排法系数0高层数据流DFD0图内容:步骤:打法1打法2学生学生求杨辉三角系数阶数不合理阶数算法排法系数0DFD0细化不合理阶数学生检验阶数13计算系数2学生系数系数表算法DFD1阶数排列系数合理阶数细化1.1DFD2系数系数表系数学生学生3。13。22。23。3输入阶数1。2检验阶数计算12。1选算法2。3计算2选打法打法1打法2阶数阶数n不合理n合理n算法算法2算法1系数排法系数表学生计时1计时2计时1计时2排法算法定义数据字典:加工说明:§2。2结构化设计步骤:根据独立性高内聚低耦合原则切断DFD2的网状联系构造层次结构图SC(StructuredChart).阶数n={整数},合理n=1{正整数}13,系数=1{正整数}924……1.1与1.2:当n1或n13时循环……结构图要素:模块调用通讯流分支循环映射:DFD2SC♂切断DFD加工映射SC模块DFD数据流对应SC通讯流1。结构化设计SD(StructuredDesign)结构图SC合理阶数n♂合理阶数n系数阶数n系数求解杨辉系数♂选算法取合理阶数选打法阶数阶数♂♂阶数n输入阶数检验阶数系数♂法1法2系数法1法2打印2打印1系数1系数2计算1计算2计时1计时2不合理阶数n输入♂深度=3宽度=6结构化总体设计质量判断:满足体系结构优化、模块独立性原则2.结构化过程设计SP(StructuredProgram)步骤:由SA的加工说明,SD的接口说明总结算法,取最简算法,选图形、伪码、表格描述每个模块。PFCISOPFCPADNSDABPABCTFTPSFNABABPTFABCPABTFWilepSLoopvN顺序分支循环图形主程序名untile(ch!=‘Y’||‘y‘)输入n计算系数打印系数重复Y/nScanf(ch)主程序PAD图startStopstartreturnuntil(n1||n13)输入显示scanf(n)N1FFTTError!TryagainN13Nistoobig,Tryagain调用计算,打印取合理阶数nPAD图startreturnForA=1,MB=1B=B*A求M!PAD图start提示选择计算方法1=递推算法,2=通项算法UntilM=1,2Scanf(m)Switch(m)计时,延迟CasemM=1M=2Fori=0,nFori=2,nS[i][i]=1S[i][0]=1Forj=1,iS[i][j]=S[i-1][j-1]+S[I-1][j]Fori=1,nForj=1,iS[i][j]=xfac(i-1)/(xfac(j-1)*xfac(i-j))Break计时return计算系数PADPrintf(‘%6d’,s[i][j]startUntilm=1orm=2选择,1斜三角系数,2正三角系数Scanf(m)Switch(m)延迟,计时CasemM=1M=2Fori=0,nForj=1,iPrintd(‘\n‘)Fori

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

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

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

×
保存成功