软件工程复习.doc_第1页
软件工程复习.doc_第2页
软件工程复习.doc_第3页
软件工程复习.doc_第4页
软件工程复习.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题典型表现:(1)对软件开发成本和进度的估计常常很不准确。(2)用户对“已完成的”软件系统不满意的现象经常发生。(3)软件产品的质量往往靠不住。(4)软件通常没有适当的文档资料。(5)软件成本在计算机系统总成本中所占的比例逐年上升。(6)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。为什么会产生软件危机?在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。 (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。软件工程:软件工程是指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效地维护他,这就是软件工程。软件工程的本质特性:(1) 软件工程关注于大型程序的构造(2) 软件工程的中心课题是控制复杂性(3) 软件经常变化(4) 开发软件得效率非常重要(5)和谐的合作是开发软件的关键。(6)软件必须有效的支持他的用户。(7)在软件工程领域中通常由具有一种文化背景的人替另一种文化背景的人创造产品。怎样用软件工程消除软件危机?(软件工程的基本原理)1、 用分阶段的生命周期计划严格管理2、 坚持进行阶段评审3、 实行严格的产品控制4、 采用现代程序设计技术5、 结果应能清楚的审查6、 开发小组的人员应该少而精7、 承认不断改进软件工程实践的必要性软件工程方法学:包括3各要素:方法、工具和过程。目前使用的最广泛的软件工程方法学是:传统方法学和面向对象方法学软件生命周期:由软件定义、软件开发和运行维护3个时期组成软件生命周期每个阶段的基本任务:1、 问题定义2、 可行性研究3、 需求分析4、 总体设计5、 详细设计6、 编码和单元测试7、 综合测试8、 软件维护什么是软件过程?他与软件工程方法学有何关系?软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。什么是软件生命周期模型?试比较破布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。(作业)瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型第二章 可行性研究在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。从三个方面研究每种解法的可行性(1)技术可行性(2)经济可行性(3)操作可行性可行性研究过程的步骤1、 复查系统规模和目标2、 研究目前正在使用的系统3、 导出新系统的高层逻辑模型4、 进一步定义问题5、 导出和评价供选择的解法6、 推荐行动方针7、 草拟开发计划8、 书写文档提交审查数据流图数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图有4种基本符号:正方形(表示数据的源点或终点);圆角矩形(或圆形;代表变换数据的处理);开口矩形(或两条平行横线,代表数据存储);箭头表示数据流,即特定数据的流动方向。定义数据的方法:定义就是自顶向下的分解,所以数据字典中的定义就是对数据自顶向下的分解。那么,应该把数据分解到什么程度呢?一般说来,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时就可以了。由数据元素组成数据的方式有3种:1、顺序2、选择 3、重复 4、可选=意思是等价于(或定义为)+表示和(即连接两个分量)表示或(即,从方括弧内列出的若干个分两种选择一个),通常用“|”号个开供选择的分量。表示可选(即圆括弧里的分量可有可无)作业数据流图:1银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码) 、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能本问题中共有两类实体,分别是“储户”和“储蓄所” ,在它们之间存在“存取款”关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M N)关系。储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是联系类型存取款的属性。2目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等) ,定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统输出某个指定病人的病情报告。答:从问题陈述可知,本系统的数据源点是“病人”和“护士” ,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。系统对病人生理信号的处理功能主要是“接收信号” 、“分析信号”和“产生警告信息” 。此外,系统还应该具有“定时取样生理信号” 、“更新日志”和“产生病情报告”的功能。为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志” ,显然也是一个数据存储 第三章:需求分析为什么要进行需求分析?通常对软件系统有哪些需求?为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论人们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。需求分析是软件定义时期的最后一个阶段,他的任务是对目标系统提出完整、准确、清晰、具体的要求。需求阶段,代表性的错误或疏忽,不一致和二义性。功能需求,性能需求,可靠性和可用性需求,出错处理需求,接口需求,约束,逆向需求,将来可能提出的要求。需求分析过程应该建立3种模型:数据模型(实体-联系图)功能模型(数据流图)和行为模型(状态转换图)实体-联系图(E-R)通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形表示实体的属性,并用直线把实体与其属性连接起来。第五章 总体设计总体设计阶段的功能:通过这个阶段的工作将划分出组成系统的物理元素,总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统和的具体实现方案;结构设计阶段。确定软件结构。典型的总体设计过程:1、 设想供选择的方案2、 选取合理的方案3、 推荐最佳方案4、 功能分解5、 设计软件结构6、 设计数据库7、 制定测试计划8、 书写文档模块独立模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果模块独立的重要性主要有两点:第一,有效的模块化的软件比较容易开发出来。第二:独立的模块比较容易策四和维护。模块独立程度可以由两个定性标准度量:内聚合耦合。耦合:耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合内聚:内聚度量一个模块内的各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单的说,理想内聚的模块只做一件事情。 低耦合,高内聚内聚合耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。低内聚的分类:偶然内聚、逻辑内聚、时间内聚中内聚:过程内聚、通信内聚高内聚:顺序内聚,功能内聚功能内聚是是最高程度的内聚。对改进设计、提高软件质量启发规则:1、改进软件结构提高模块独立性2、模块规模应该适中3、深度、宽度、扇出和扇入都应适当4、模块的作用域应该在控制域之内5、力争降低模块接口的复杂程度6、设计单入口单出口的模块7、模块功能应该可以预测面向数据流的设计方法:目标是给出设计软件结构的一个系统化的途径概念:面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法,信息流有两种类型:1、变换流2、事物流。变换分析:是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。第六章、详细设计详细设计阶段的关键任务是确定怎样具体的实现用户需要的软件系统,也就是要设计出程序的“蓝图”。除了应该保证软件按的可靠性之外,使将来编写出的程序可读性好、容易理解、容易测试、容易修改和维护,是详细设计阶段最重要的目标。结构程序设计技术是实现上述目标的基本保证,是进行详细设计的逻辑基础。3中基本的控制结构:顺序、选择、循环(DO-WHILE),最基本的是顺序和循环结构。什么是结构程序设计?经典定义为:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。理论上,这3种基本控制结构就可以实现任何单入口单出口的程序,但是为了实际使用方便起见,常常还允许使用DO-UNTIL和DO_CASE两种控制结构。人机界面4个设计问题:系统响应时间、用户帮助设施、出错信息处理和命令交互。人机界面设计指南:1、一般交互指南、信息显示指南、数据输入指南。过程设计应该在数据设计、体系结构设计和接口设计完成之后进行,他的任务是设计解体的详细步骤。工具:描述程序处理过程的工具称为过程设计的工具。1、 程序流程图,他是历史最悠久、使用最广泛的描述过程设计的方法,然而也是用的最混乱的一种方法。它的主要优点是对控制流程的描绘很直观,便于初学者掌握,2、 盒图(N-S图):特点是a、功能域明确 b、不可能任意转移控制c、很容易确定局部结合全程数据的作用域d、很容易表现嵌套关系,也可以表示模块的层次结构。(p125)3、 过程设计语言 (PDL)也称为伪码第七章 实现编码和测试统称为实现软件测试的规则/目标/定义:1、 测试是为了发现程序中的错误而执行程序的过程2、 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。3、 成功的测试是发现了至今为止尚未发现的错误的测试。软件测试的目标:测试是为了发现程序中的错误而执行程序的过程。软件测试分为单元测试、集成测试和验收测试3个基本阶段测试方法:黑盒、白盒黑盒测试:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。黑盒测试又称为功能测试。确认测试通常使用黑盒测试法白盒测试:与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。单元测试主要使用白盒测试技术白盒测试与黑盒测试的区别!(同上)集成测试:是测试和组装软件的系统化技术。由模块组装成程序时有两种方法:非渐增式测试方法,渐增式测试(优)。当使用渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。自顶向下:从主控模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。在把附属于主控制模块的那些模块组装到程序结构中去时,或者使用深度优先的策略,或者使用宽度优先的策略。深度优先的结合方法先组装在软件结构的一条主控制通路上的所有模块,而宽度优先的结合方法是延软件结构水平的移动,把处于同一控制层上的模块组装起来。自底向上测试从“原子”模块开始组装和测试。调试:调试(也成为纠错)作为成功测试的后果出现,也就是说,调试是在测试发现错误之后排除错误的过程。调试途径:蛮干法,回溯法,原因排除法(书170)第八章 软件维护维护是软件生命周期的最后一个阶段,也是持续时间最长、代价最大的一个阶段定义:所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程,在软件运行阶段对软件产品进行修改即维护。软件维护的特点:1、 结构化维护与非结构化维护差别巨大2、 维护的代价高昂3、 维护的问题很多软件维护的种类:完善性维护,改正性维护,适应性维护,预防性维护软件过程有哪几种维护?软件的可维护性与哪些因素有关!?在软件开发过程中应该采取哪些措施才能提高软件产品的可维护性?基本因素:可理解性,可测试性,可修改性,可移植性,可重用性。文档是影响软件可维护性的决定因素。软件重用技术是能从根本上提高软件可维护性的重要技术。面向对象的软件技术是目前最成功的软件重用技术。在进行需求分析时同时考虑维护问题。尽可能在软件开发过程中保证各阶段文档的正确性。重视程序结构的设计,使

温馨提示

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

评论

0/150

提交评论