软件工程概要_第1页
软件工程概要_第2页
软件工程概要_第3页
软件工程概要_第4页
软件工程概要_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程概要数据库原理课程补充知识1背景软件危机软件开发周期大大超过规定日期软件开发成本严重超标软件质量难于保证软件的发展大体上经历了三个阶段:程序设计阶段、软件阶段、软件工程阶段。2程序设计时代名称程序生产方式个人质量取决于个人水平设计对象以硬件为中心开发工具无维护无设计方法无以技巧为主软件时代软件项目组取决于小集团水平硬件/软件为中心无系统工具,工具为个人所有由开发者进行维护,在设计中不重视维护设计问题自顶向下有质量保证问题和持续性问题软件工程时代软件产品软件组织软件生产管理以软件为中心软件生成器设计与制作过程中均考虑维护问题,维护成本占很大比重结构化设计、原型设计从程序设计到软件工程时代

2、3软件工程的定义 IEEE【IEE93】定义:“将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。”软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。4两种软件工程方法传统软件工程软件分析 总体设计 详细设计 面向过程的编码 测试 面向对象软件工程软件分析与对象抽取 对象详细设计 面向对象的编码 测试 5结构化分析模型的组成结构数据流图 (DFD)E-R图状态变迁图(STD图)加工说明控制说明数据对象说 明数据字典(DD)6面向对象分析模型的组成结构对象-关系模型类/对象 模型对象-行

3、为模型使用实例(Use Case)操作、属性、协作者对象模型动态模型功能模型7传统软件工程中的瀑布模型可行性研究与计划需求分析总体|详细设计编码运行维护测试定义阶段开发阶段维护阶段81. 问题定义关键问题:“要解决的问题是什么?”主要结果:提出关于问题的性质、工程目标和规模的书面报告。内容及步骤(一)系统任务的提出(二)初步调查(三)系统目标的确定92 可行性研究可行性、可行性研究的含义可行性的含义包括可能性、必要性。可行性分析的对象是系统目标。评价总体方案(系统目标)的可能性、必要性。可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能够解决,是否有必要去解决。10可行性研究的内容1

4、.技术上的可行性2.经济上的可行性3.操作可行性4.时间可行性5.组织与管理上可行性6.社会、政策允许的可行性113. 需求分析的任务准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。基本任务:准确地回答“系统必须做什么?”12需求分析的具体任务1.确定对系统的综合需求:(1)系统功能要求(2)系统性能要求(3)运行要求(4)将来可能提出的要求2.分析系统的数据要求:采用建立“概念模型”的方法,并辅助图形工具,如:层次方框图、Warnier图等。3.导出系统的逻辑模型:数据流程图、数据字典、主要算法4.修正系统开发计划5.开发原型系统134.

5、总体设计的过程设想供选择的方案 选取合理的方案 推荐最佳方案 功能分解 设计软件结构 数据库设计 制定测试计划 书写文档 审查和复审145. 详细设计的基本任务回答的关键问题:“怎样具体地实现这个系统”主要任务是设计出程序的“蓝图”,供程序员日后根据这个蓝图编写出实际的程序代码。注意:设计程序的蓝图,不是具体地编写程序。设计程序主要采用结构化的程序设计方法。15详细设计主要任务:编写详细设计说明书为此,设计人员应:(1)确定每个模块的算法,用工具表达算法的过程,写出模块的详细过程性描述。(2)确定每一模块的数据结构。(3)确定模块接口细节。详细设计是编码的先导。16详细设计具体任务确定模块如何

6、实现编写详细设计说明书制定单元测试计划详细设计评审176. 编码程序写作风格程序设计方法论自顶向下的程序设计方法自底向上的程序设计方法程序设计自动化程序设计工具187. 测试软件测试是为了发现错误而执行程序的过程。软件测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入的数据及其预期的输出结果),并利用这些用例去运行程序,以发现程序错误的过程。19软件测试的目的测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。20测试设计中需要考虑的22种测试类型黑盒测试白盒测试单元测试累计综合测试集成测

7、试功能测试系统测试端到端测试健全测试衰竭测试接受测试负载测试强迫测试性能测试可用性测试安装/卸载测试恢复测试兼容测试安全测试比较测试Alpha测试Beta测试218. 运行维护本质上是修改和压缩了的软件定义和开发过程分析设计编码测试验收配置复审可靠性可移植性可用性可理解性可修改性可测试性可理解性可修改性可移植性效率可靠性效率完整性一致性可理解性22 几种典型的开发方法:模块化方法(modular method)结构化方法面向数据结构方法面向对象方法软件开发方法23结构程序设计结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。24逐步求精的含义总体设计阶

8、段逐步求精的含义把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。详细设计阶段逐步求精的含义把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。25结构程序设计优越性自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。不使用GO TO语句,仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。26传统方法学的缺点瀑布模型的缺点:僵化瀑布模型要求:生命周期各阶段间遵

9、守严格的顺序。实际情况是:软件开发往往在反复实践中完成。瀑布模型要求:预先定义并“冻结”软件需求。实际情况是:某些系统的需求的一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时。27结构化技术的缺点(SA-SD-SP)本质上是功能分解,以实现功能的过程为中心。而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好。系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改。数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差.28软件工程的新途径之一:快速原型法适用于用

10、户驱动的系统(即需求模糊或随时间变化的系统)建造/修改 原型用户测试运行原型 听取用 户意见29传统方法和面向对象方法的比较传统方法系统是过程的集合过程与数据实体交互过程接受输入并产生输出面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息30传统方法数据与过程是分离的过程1输入输出过程2过程3数据实体属于该对象的数据对象处理数据的方法消息消息对象把数据和处理数据的方法封状成一个单元31为什么对面向对象方法感兴趣? 面向对象方法的主要优点:自然性:追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。软件复用 :可复用性(可重用性) 可扩

11、展性可管理性32面向对象分析面向对象分析的关键:识别出问题域内的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。面向对象方法最基本的原则:按照人们习惯的思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求解方法的软件。33面向对象建模用面向对象方法开发软件,通常需要建立三种形式的模型:对象模型:描述系统数据结构动态模型:描述系统控制结构功能模型:描述系统功能34一些具体工具介绍35A Room hierarchy based on an interior designers perspectiveRoomRoom with lightsRoom wi

12、th windowsGarageBasementKitchenBathroomRoom withFurnitureLivingRoomFamilyRoomBedRoomDiningRoom层次方框图36数据流程图DFD是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能数据流程图的特性(1)抽象性:具体的组织机构、工作场所、物质流等等都去掉,仅剩下信息和数据存储、流动、使用以及加工的情况。(2)概括性:它把系统对各种业务的处理过程联系起来考虑,形成一个总体,具有概括性。(3)数据流程图描述的主体是抽象出来的数据。(4)数据流程图具有层次性,一个系统将有许多层次的

13、流程图。37数据流程图的用途系统分析员用这种工具可以自顶向下分析系统信息流程可在图上画出需要计算机处理的部分根据数据存贮,进一步作数据分析,向数据库设计过渡根据数据流向,定出存取方式对应一个处理过程,用相应的语言、判定表等工具表达处理方法38程序流程图、伪码、盒图、问题分析图开始PGQ and P停止FFdefkx2de123 While x3cx21cDo-While x323dek :PROCEDURE spell_check IS BEGIN Split document into single words Look up words in dictionary Display word

14、s which are not in dictionary Create a new dictionary END spell_check39几种表示工具比较40判定表判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系,而其它的工具不易表示。一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。41例子:航空行李托运费的算法按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。 42RulesRule numbers Condition rowsAction rows43行李费算法

温馨提示

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

评论

0/150

提交评论