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