版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章软件工程学概述软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。实际上,几乎所有软件都不同程度地存在这些问题。软件危机包含下述两方面的问题:如何开发软件,满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。产生软件危机的原因;与软件本身的特点:有关软件是逻辑部件。软件不会被“用坏”,如果发现了错误,很可能是开发时期引入。软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上。与软件开发与维护的方法不正确有关与软件开发与维护的方法不正确有关:忽视软件需求分析的重要性。认为软件开发就是写程序并设法使之运行。轻视软件维护。消除软件危机的途径1对计算机软件有正确的认识。2认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。3应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。4应该开发和使用更好的软件工具。5总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。怎样用软件工程消除软件危机软件工程以软件产品化、系列化、工程化、标准化为特征。采用工程化方法和工程途径来研制与维护软件。摆脱软件危机的途径就是软件工程生成的过程消除软件危机,既要有技术措施又要有必要的组织管理措施软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。本质特征:1关注于大型程序的构造2中心课题是控制复杂性3软件经常变化4开发软件的效率非常重要5和谐的合作是开发软件的关键6软件必须有效的支持它的用户7在软件工程领域中通常由一种具有文化背景的人替另一种具有文化背景的人创造产品基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性基本原则:1局部化 要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。这有助于控制解的复杂性。2确定性 软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。3一致性整个软件系统的各个模块应使用一致的概念、符号和术语。程序内部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一致。4完备性 软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。5可验证性 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统。易于检查、测试、评审的原则,以确保系统的正确性软件工程包括技术和管理两方面的内容。管理:通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。技术(软件工程方法学):通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。软件工程方法学包括:传统方法学(生命周期方法学或结构化范型)一一强调自顶向下面向对象方法学一一强调主动地多次反复迭代传统方法学:采用结构化的技术来完成软件开发的各项任务,并用适当的软件工具或软件工程环境来支持结构化技术的运用。面向对象方法:把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。(对象,类,继承,消息)面向对象方法学的优点:1面向对象方法学的尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。2面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程,保证了在各项开发活动之间的平滑过渡。3促进了软件重用。软件工程方法学3要素:工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境;(CAse工具)方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;过程:需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。三个时期:八个阶段:/软件定义J问题定义1可行性研究需求分析软件生命周期]软件开发概要设计 }玄牡、八、丄详细设计了系统设计L编码和单元测试 }系统实现综合测试 系统实现'软件维护运行维护
软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤软件工程过程内容:软件规格说明书,软件开发,软件确认,软件演进软件工程过程特性:1)可理解性; 2)可见性;3)可支持性; 4)可接受性;5)可靠性; 6)健壮性;7)可维护性; 8)速度。软件生命期;一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程称为软件生存期或叫生命期。生命期的划分:定义阶开发阶段定义阶开发阶段软件生存期模型:瀑布,快速原型,增量,螺旋,喷泉,构件组装,统一过程模型,第四代技术瀑布模型特点:.1.阶段间具有顺序性和依赖性(前一阶段的输出文档就是后一阶段的输入文档。)推迟实现的观点(规模较大的软件项目往往开始编码的时间越早,最后。。)质量保证的观点(每个阶段必须完成规定的文档,并对文档进行审核)瀑布模型优点;1•可强迫开发人员采用规范的方法;2•严格地规定了每个阶段必须提交的文档;3•要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。瀑布模型缺点:只能通过文档了解产品,不经过实践的需求是不切实际的。实际项目很少按照该模型给出的顺序进行;用户常常难以清楚地给出所有需求;用户必须有耐心,等到系统开发完成瀑布模型适用于:需求是预知的;软件实现方法是成熟的;项目周期较短。快速原型模型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。快速原型模型特点:快速原型模型不带反馈环,软件产品的开发基本上是线性顺序进行的。快速原型的本质是“快速”。应该尽可能快地建造出原型系统,以加速软件开发过程,节约成本。根据原型的不同作用,有三类原型模型:探索型原型,实验型原型,演化型原型。快速原型模型的运用方式:抛弃策略,附加策略增量模型增量模型把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能增量模型的优点人员分配灵活,刚开始不用投入大量人力资源。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品。增量模型的难点:软件体系结构必须是开放的。模型本身是自相矛盾的。整体——独立构件。不同的构件并行地构建有可能加快工程进度,但是冒无法集成到一起的风险。增量模型适用于:适用于需求经常改变的软件开发过程。在项目既定的商业要求期限之前不可能找到足够的开发人员。螺旋模型螺旋模型的基本思想:使用原型及其他方法来尽量降低风险。把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。螺旋模型的优点:主要优势在于它是风险驱动的。对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;减少了过多测试或测试不足所带来的风险;维护只是模型的另一个周期,维护和开发之间没有本质区别。螺旋模型的缺点:采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间。螺旋模型适用于:特别适用于庞大、复杂并具有高风险的系统。适用于内部开发的大规模软件项目。喷泉模型;是典型的面向对象生命周期模型。喷泉模型的优点:该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。多次反复地增加或明确目标系统,而不是本质性的改动,降低错误的可能性。喷泉模型的缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,不利于项目的管理。要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。喷泉模型适用于:适用于面向对象的软件开发过程。
第二章可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。研究哪些可行性:技术可行性,经济可行性,操作可行性,从法律社会效益等更广的方面。根本任务:对以后的行动方针提出建议研究过程;1、 复查系统规模和目标2、 研究目前正在使用的系统3、 导出新系统的高层逻辑模型4、 进一步定义问题5、 导出和评价供选择的解法6、 推荐行动方针7、 草拟开发计划8、 书写文档提交评审系统流程图:概括的描述物理系统的传统工具,用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。表达的是数据在系统各部件之间的流动情况,而不是对数据进行加工处理的控制过程。因此尽管系统流程图某些符号和程序流程图的符号形式相似,但他却是物理数据流图而不是程序流程图。常用符号:换页题数据流图(Dgp)数据扌CZ联机存储是描述数据从输入到输出的移动变换过程.卑程的工具它从数据传递和加工的角度换页题数据流图(Dgp)数据扌CZ联机存储是描述数据从输入到输出的移动变换过程.卑程的工具它从数据传递和加工的角度,以图形的方式刻画数据流是系统逻辑功能的图形表示图中没有具体的物理元素,只是描绘信息在系统中流动和处理的情况。
有A则有B或G或两者都有有有A则有B或G或两者都有有A则有]J与G两者同时有A/ 有A则有B或「但数据流图分层:在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可以继续细化,形成子图。数据流图绘制步骤首先确定系统的输入和输出,画出顶层数据流图然后从输入端开始,根据业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图对数据流图进行检查和修改。数据流图的用途交流信息的工具分析和设计的工具进一步设计的依据数据流图和程序流程图的区别:数据流图是业务分析用的,主要在分析阶段,经过事务性分析可以转换为概要设计,程序流程图和N-S框图一样是用作详细设计的。数据流图没有控制结构,基本是一种静态结构,没有语法控制。程序流程图是动态的程序状态的描述数据字典:数据字典是关于数据的信息的集合,即对数据流图中包含的所有元素的定义的集合数据词典与数据流图配合,能清楚地表达数据处理的要求数据字典的作用:在软件分析和软件设计过程中给人提供关于数据的描述信息。作为分析阶段的工具数据字典包含的每个元素的控制信息是很有价值的数据字典是开发数据库的第一步,而且是很有价值的一步。数据字典是把数据模型,功能模型和行为模型黏合在一起的“黏合剂”,是分析模型的核心定义元素:数据流,数据流分量,数据储存,处理数据流词条描述数据流名:订单别名:简述:顾客订货时填写的项目来源:顾客去向:加工1“编辑订单”定义:编号+订货日期+顾客编号+地址+电话+银行帐号+货物名称+规格+数量数据流量:1000份/每周数据元素词条描述数据元素名:别名:简述:类型:数字(离散值,连续值),文字(编码类型)长度:取值范围:相关的数据元素及数据结构:数据存储(文件)词条描述:数据存储名:别名:简述:存放的是什么数据定义:数据结构存储方式:顺序,直接,关键码存取频率或查询要求:加工词条描述:加工名:检查订单编号:1.3输入数据流:订单输出数据流:可满足订单、不能满足订单加工逻辑:根据商品库存需求分析:基本任务:准确的回答:“系统必须做什么”这个问题,确定系统的逻辑功能。任务:仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整,准确,清晰,具体的要求。确定对系统的综合要求:功能需求,性能需求,可靠性和可用性需求,出错处理需求,接口需求,约束,逆向需求,将来可能提出的需求分析系统的数据要求导出系统的逻辑模型修正系统开发计划需求分析的原则:深入浅出的原则。就是说,需求获取要尽可能全面,细致。获取的需求是个全集,目标系统真正实现的是个子集。以流程为主线的原则。与用户交流过程中,应该用流程将所有的内容串起来,如信息,组织结构,处理规则等。这样便于交流沟通。流程的描述既有宏观描述,也有微观描述。获取需求分析的方法:1) 与用户沟通获取需求分析:1,访谈,2,结构化分析方法(面向数据流自顶向下求精)。简易的应用规格说明书快速建立软件模型2) 功能分析法3) 信息建模法4) 面向对象分析法5) 结构化分析方法分析建模需求分析过程应该建立3种模型,数据模型,功能模型和行为模型。实体联系图(E-R图):数据对象,属性,联系,实体联系图符号。第五章总体设计:设计过程:1,设想供选择的方案2,选取合理的方案3,推荐最佳方案4,功能分解5,设计软件结构6,设计数据库7,制定测试计划8,书写文档(系统说明,用户手册,测试计划,详细的实现计划,数据库设计结果)9,审查和复审设计原理:1•模块化模块化就是把程序划分为独立命名且可独立访问的模块,每个模块完成一个子功能。1尽管模块分解可以简化要解决的问题,但模块分解不是越小越好。2,模块数量增加时,模块之间的复杂程度也会增加,设计模块间借口所需的工作量也将增加。2..模块独立:模块化,抽象,信息隐藏和局部化概念的直接结果。3.抽象模块:模块是程序对象有名字的集合模块独立性:软件系统结构中每个模块只涉及软件要求的具体子功能,而和软件系统中的其他模块接口是简单的。为什么模块独立性重要:1,有效模块化的软件比较容易开发2,独立的模块比较容易测试和维护定性标准度量:耦合,内聚。耦合块间联系,对一软件结构内不同模块之间互连程度的度量。耦合的强弱模块接口的复杂程度,一模块对另一模块的引用,以及通过接口的数据量。(高---低)内容耦合,公共耦合,外部耦合,控制耦合,标记耦合,数据耦合,非直接耦合内聚块内联系,标志着一个模块内各个元素彼此结合的紧密程度内聚(高-低)功能内聚,顺序内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚(3个低内聚,两个中内聚,两个高内聚)模块划分要高内聚,低耦合启发规则:1,改进软件结构提高模块独立化,2模块规模应该适中,3深度宽度,扇出和扇入都应适当(顶层扇出比较高,中层扇出比较少,底层模块有高扇入)模块作用域应在控制域之内力争降低模块接口复杂度设计单入口,单出口的模块模块功能应该可以预测描绘软件结构的图形工具:层次图和HIPO图(带编号的层次图),结构图,数据流:数据流类型:变换型:具有顺序处理的特点事务型:具有平行分别处理的特点。数据沿输入通路到达一个处理T,这个数据根据输入数据的类型在若干个动作序列中选择一个来执行事物中心任务:接收输入输出数据分析每个事务以确定类型根据事务类型选取一条活的通路面向数据流的设计方法:目标:给出设计软件结构的一个系统化的途径。输入^ 变换 '输出事务型数据流图基本模型变换分析设计:把具有变换流特点的数据流图按预先确定的模式映射成软件结构。不具有显著的事务特点。虽然在任何情况下都可以使用变换分析方法设计软件结构,但是在数据流具有明显的事务特点时,也就是有一个明显的“发射中心”(事务中心)时,还是以采用事务分析方法为宜。两者的主要差别仅在于由数据流图到软件结构的映射方法不同。第六章详细设计:详细设计的基本任务:为每个模块进行详细的算法设计(用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。)为模块内的数据结构进行设计对数据库进行物理设计,即确定数据库的物理结构编写详细设计说明书评审目标:不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读结构化程序设计是实现该目标的关键技术之一过程设计的工具:程序流程图,盒图,PAD图,判定表,判定树。结构程序设计基本控制结构:顺序结构:先执行A再执行BIF—Then—else结构,DO-While结构。第七章:实现编码:把软件设计结果翻译成用某种程序语言书写的程序。测试:软件测试的目的是在软件投入生产性运行前,尽可能多的发现软件中的错误。软件测试:为发现程序中的错误而执行程序的过程。软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求)测试方法(黑盒测试和白盒测试)测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。调试(也称为纠错)作为成功测试的后果出现,也就是说,调试是在测试发现错误之后排除错误的过程。调试目标:都是寻找软件错误的原因并改正错误。3种调试途径:蛮干法,回溯法,原因排除法软件可靠性的定义:对于软件可靠性有许多不同的定义,其中多数人承认的一个定义是:软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率软件可用性的一个定义:软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。第七章软件维护软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。按照不同的维护目的,维护工作可分成4类。1完善性维护(PerfectiveMaintenance):扩充原有系统的功能,提高原有系统的性能,满足用户的实际需要。2纠错性维护(CorrectiveMaintenance):对在测试阶段未能发现的,在软件投入使用后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年南通客运资格证考试题目
- 吉首大学《家具设计》2021-2022学年第一学期期末试卷
- 吉首大学《插画设计B》2021-2022学年第一学期期末试卷
- 吉林艺术学院《艺术概论》2021-2022学年第一学期期末试卷
- 吉林艺术学院《曲式基础》2021-2022学年第一学期期末试卷
- 吉林艺术学院《行草临摹与创作》2021-2022学年第一学期期末试卷
- 吉林艺术学院《CG美宣图创作实践》2021-2022学年第一学期期末试卷
- 2024年大众帕萨特购买协议书模板
- 引进外劳协议书范文模板范文
- 吉林艺术学院《节奏训练II》2021-2022学年第一学期期末试卷
- 提高工作中的决策与执行能力
- TSAWS 002-2023 涉爆粉尘除尘系统验收规范
- 国家职业技术技能标准 6-29-02-06 凿岩工(试行) 2024年版
- 观文化昌盛延传承火炬
- 狄金森诗全集
- 诚信在我身边+高二上学期诚实守信教育主题班会
- 神话故事后羿射日
- 《印刷知识介绍》课件
- 法院安全生产管理制度
- 经典成语故事叶公好龙
- 店长例会培训课件
评论
0/150
提交评论