软件工程知识要点

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

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

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

资源描述

《软件工程》知识要点第一章软件工程概述一、重点掌握的内容:软件和软件工程的基本概念二、一般掌握内容:传统软件工程和面向对象软件工程的比较以及软件工程的应用三、主要知识点:软件:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。可见,软件的定义由三部分组成:(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。软件是一种产品,同时又是开发和运行产品的载体。作为一种产品,它表达了由计算机硬件体现的计算潜能。作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。软件的特征:(1)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。(2)软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。(3)软件成为产品后,其生产只是简单的拷贝,不同于硬件制造。(4)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,但维护过程比硬件复杂的多,甚至会引发新的错误。软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。出现软件危机的原因:(1)软件维护费用急剧上升,直接威胁计算机应用的扩大。(2)软件生产技术进步缓慢,大大落后于需求的增长,进一步加剧了软件危机。软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。程序设计方法的两次飞跃:(1)结构化程序设计的出现,程序设计风格从“追求技巧与效率”;变为“清晰第一、效率第二”;(2)从结构化程序设计到面向对象的程序设计。面向过程的程序设计思想:程序=数据结构+算法;面向对象的程序设计思想:程序=对象+消息。第二章软件开发模型一、重点掌握的内容:软件生存周期的有关概念,面向对象的基本概念二、一般掌握的内容:软件开发的各种模型的特征三、主要知识点:软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期一般可分为以下阶段:·问题定义·可行性研究·需求分析·设计·编码·测试·运行与维护软件生存期也可以分为三个大的阶段:计划阶段、开发阶段和维护阶段。对象:是现实世界中个体或事物的抽象表示,是它的属性和相关操作的统一封装体。类:用于表示某些对象的共同特征(属性和操作),对象是类的实例。继承:是现实世界中遗传关系的直接模拟,可用来表示类之间的内在联系以及对属性和操作的共享。子类可以沿用父类的某些特征,同时子类也可以具有自己独立的属性和特征。聚集:除继承关系外,现实世界中还大量存在着“部分-整体”关系。如飞机可由发动机、机身、机械控制系统、电子控制系统等构成。在面向对象方法学中这种关系表示为类之间的聚集关系。消息:消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其他对象发送消息以请求服务,也可以响应其他对象传来的消息,完成自身固有的某些操作,从而服务于其他对象。软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。瀑布模型即生存周期模型,由B.M.Boehm提出,是软件工程的基础模型。其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。采用结构化的分析与设计方法,将逻辑实现与物理实现分开。此外,还有螺旋模型、第四代技术模型、原型模型、构件组装模型、混合模型等软件开发模型。快速原型模型的主要做法是:首先建立一个能够反映用户主要需求的原型,让用户实际看一看为了系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,最终建立完全符合用户需要的新系统。增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。这种模型把软件看成一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。螺旋模型是目前实际开发中最常用的一种软件开发模型,它在结合瀑布模型与快速原型的基础上还增加了风险分析。构件集成模型利用预先封装好的软件构件来构造应用软件系统,它融合了螺旋模型的很多特征,支持软件开发的迭代方法。第三章软件需求分析一、重点掌握的内容:两种分析模型及两种分析方法二、一般掌握的内容:需求分析的任务与步骤、需求获取的方法和软件需求说明书的内容三、主要知识点:两种分析模型:结构化分析模型和面向对象分析模型。OOA是采用面向对象的思想进行软件需求分析建模的过程。DFD、DD和PSPEC:这是早期结构化分析模型的基本组成部分;加工说明数据对象说明CFD,STD图DFD图E-R图DD控制说明属性、操作、协作者对象-行为模型对象-关系模型类/对象模型使用实例CFD、CSPEC、STD:这是对早期结构化分析模型的扩展成分,用以适应实时软件的建模需要;E-R图:适应于描述具有复杂数据结构的软件数据模型;用例图,对象-关系图,对象-行为图:适应于OOA的分析模型。数据流图:(1)组成符号:4种基本图形符号。圆框、箭头、方框、双杠(或单杠)。(2)DFD的性质:与程序流程图不同,前者是软件分析阶段的工具,只需考虑软件“干什么”,后者用于表示程序的过程设计,关心的是软件“怎么干”。需求分析是,常常用分层DFD图由粗到精地表示同一软件在不同抽象级别上的功能模型。数据字典:作用:对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。出现在软件中的数据,可分为3种情况:(1)只含一个数据的数据项(或数据元素);(2)由多个数据项组成的数据流;(3)数据文件或数据库。加工说明:是对DFD中每个加工所作的说明。由输入数据、加工逻辑或输出数据等部分组成。加工说明通常用结构化语言、判定表或判定树作为描述工具。需要注意的是:加工说明的作用是说明“做什么”,而不是“怎么做”。结构化的分析方法:结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。重点掌握结合实例画数据流图和定义数据字典。面向对象的分析方法:与结构化分析方法相比,发生了根本的变化。后者从数据的“输入-加工-输出”着眼,在分析中着重于功能的分解。而OOA则是利用对象的概念和方法来构建软件需求模型,更加关注对象的内在性质,以及对象的关系与行为。OOA从理解系统的使用实例开始,建立系统需求的静态逻辑模型和动态逻辑模型。(结合第七章统一建模语言UML)静态逻辑模型包括用例图、类图、对象图、构件图和部署图。其中用例图描述系统功能;类图描述系统的静态结构,描述各种类及其关系,结构,层次等;对象图描述系统在某个时刻的静态结构;构件图描述实现系统的元素的组织;部署图描述系统环境元素的配置。动态逻辑模型包括状态图、时序图、协作图和活动图。用以描述对象之间的互相作用。状态图描述一个特定对象的所有可能状态及引起其状态转移的事件;时序图用来描述对象之间动态的交互关系,着重体系对象间消息传递的时间顺序;协作图用于描述相互协作的对象间的交互关系和链接关系;活动图用来描述系统元素的活动,即可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程。需求分析的任务:它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。一般说来,需求分析阶段的任务包括下述几方面:①确定对系统的综合需求对系统的综合需求主要有:系统功能需求、系统性能需求、运行需求、将来可能提出的需求。②分析系统的数据需求③导出系统的逻辑模型就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质,明确目标系统要“做什么”,可以导出系统的详细的逻辑模型。具体做法是:首先确定目标系统与当前系统的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图(一般为数据流图)及对象图进行调整;最后由外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。④修正系统开发计划在经过需求分析阶段的工作,分析员对目标系统有了更深入更具体的认识,因此可以对系统的成本和进度做出更准确的估计,在此基础上应该对开发计划进行修正。⑤开发原型系统使用原型系统的主要目的是,使用户通过实践获得关于未来的系统将怎样为他们工作的更直接更具体的概念,从而可以更准确地提出和确定他们的要求。需求分析的步骤:1.调查研究;2.分析与综合;3.书写文档;4.需求分析评审需求分析的原则:其基本原则可概括为:(1)必须能够表达和理解问题的数据域和功能域;(2)按自顶向下、逐层分解问题;(3)要给出系统的逻辑视图和物理视图。结合实例画数据流图:1、一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告结定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。2、图书馆的预定图书子系统有如下功能:(1)由供书部门提供书目给订购组;(2)订书组从各单位取得要订的书目;(3)根据供书目录和订书书目产生订书文档留底;(4)将订书信息(包括数目,数量等)反馈给供书单位;(5)将未订书目通知订书者;(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。试根据要求画出该问题的数据流程图,并把其转换为软件结构图。(提示:数据流图分两步进行,先画出订书系统的顶层DFD,分析系统的源点和终点;第二层DFD图中,系统分为三个加工:选择检查、整理归类和登录书目)3、为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统。如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。第四章软件设计概述一、重点掌握内容:软件设计的概念、原理和思想二、一般掌握内容:软件设计的任务、文档和复审三、主要知识点:模块:是一个拥有明确定义的输入、输出和特征的程序实体。模块的所有输入都是实现功能必不可少的,所有输出都有动作产生。模块化:就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。模块化设计:把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。分解和模块独立性,是实现模块化设计的重要指导思想。抽象:就是抽出事物的本质特性而暂时不考虑它们的细节。信息隐藏:模块中所包括的信息不允许其它不需要这些信息的模块调用。模块独立性:是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。模块独立的概念是模块化、抽象、信息隐藏等概念的直接结果。独立性从两个方面来衡量:即模块本身的内聚和模块之间的耦合。内聚:标志一个模块内各个元素彼此结合的紧密程度。按照从弱到强的顺序,分为:偶然性内聚、逻辑性内聚、时间性内聚、过程性内聚、通信性内聚、顺序性内聚、功能性内聚。耦合:是对一个软件结构内各个模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,调用模块的方式,以及通过接口的信息。按照从弱到强的顺序,分为:非直接耦合、数据耦合、特征耦合、控制耦合、

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

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

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

×
保存成功