软件工程总结_第1页
软件工程总结_第2页
软件工程总结_第3页
软件工程总结_第4页
软件工程总结_第5页
全文预览已结束

下载本文档

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

文档简介

第一章软件工程学概述软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关;生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃所经历的漫长的时期;软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料;软件工程的本质特性:软件工程关注于大型程序的构造;软件工程的中心课题是控制复杂性;软件经常变化;开发软件的效率非常重要;和谐地合作是开发软件的关键;软件必须有效地支持它的用户;在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品;软件工程方法学包含3个要素:方法、工具和过程。其中方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的步骤;软件生命周期由软件定义、软件开发和运行维护3个时期组成;软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的工程;估计完成该项工程需要的资源和成本,并且指定工程进度表。划分为3个阶段,即问题定义、可行性研究和需求分析;开发时期具体设计和实现在前一个时期定义的软件,它由4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现;维护时期的主要任务是使软件持久地满足用户的需要。问题定义:必须回答的关键问题:“要解决的问题是什么?”,通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认;可行性研究:回答的关键问题:“对于上一个阶段所确定的问题有行得通的解决方法吗?”需求分析:“为了解决这个问题,目标系统必须做什么”、总体设计:“概括地说,应该怎样实现目标系统?”详细设计:“应该怎样具体地实现这个系统?”编码和单元测试:写出正确的容易理解、容易维护的程序模块;综合测试:集成测试,验收测试;软件维护:通过各种必要的维护活动使系统持久地满足用户的需要;为了改正软件系统中潜藏的错误而进行的维护活动称为:纠错性维护;为了适应软件运行环境的变化而修改软件的活动称为:适应性维护;根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为:改善性维护;为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为:预防性维护;软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤;瀑布模型快速原型模型增量模型螺旋模型喷泉模型螺旋模型的适应场合有哪些?适应场合:支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。原型法模型一般适应哪些场合?它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。人机界面的风格大致经过了4代的演变:第一代命令和询问方式;第二代简单的菜单式;第三代是面向窗口的点选界面;第四代自然语言;第二章可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能得到解决;任务:首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。(1)技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。(2)经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。(3)社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行系统路程图:是概括地描绘物理系统的传统工具。数据流图(DFD):描绘信息流和数据从输入移动到输出的过程中所经受的变换。是系统逻辑功能的图形表示(正方形(或立方体)表示数据的原点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。)数据流图的基本要点是描绘“做什么”,而不考虑“怎样做”;目的是利用它作为交流信息的工具;另一个主要用途是作为分析和设计的工具;数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型(5分)。数据流图有四种基本图形符号:“〜”箭头表示数据流;“O”圆或椭圆表述加工;“=”双杠表示数据存储;“口”方框表示数据的源点或终点。数据字典:是关于数据的信息的集合。数据流图和数据字典共同构成系统的逻辑模型;数据字典由下列4类元素的定义组成:数据流、数据流分量(即数据元素)、数据存储和处理;数据字典(简称DD)是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,故一般不在字典中说明。第三章需求分析基本任务:是要准确的定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工作:(1)问题识别。双方确定对问题的综合需求,这些需求包括:功能需求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。(2)分析与综合,导出软件的逻辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型。(3)编写文档。编写“需求规格说明书”、编写初步用户使用手册、编写确认测试计划、修改完善软件开发计划实体联系图(ER图):包含了实体(即数据对象)、关系和属性3种基本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来;状态转换图:通过描绘系统的状态及引起系统状态转换的事件来表示系统的行为;状态图中定义的状态主要有:初态,终态,中间状态;初态只能有一个,终态则可有0至多个;初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示;中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3各部分;上面部分为状态的名称;这部分是必须有的。中间部分为状态变量的名字和值,是可选的;下面部分是活动表,是可选的;IPO图:是输入、处理、输出图的简称。第四章形式化说明技术按照形式化的程度,可以把软件工程使用的方法划分成非形式化、半形式化和形式化3类;用自然语言描述需求规格说明,是典型的非形式化方法。用数据流图或实体-联系图简历模型,是典型的半形式化方法。所为的形式化方法,是描述系同性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的;Petri网:一组位置P、一组转换T、输入函数I以及输出函数0第五章总体设计典型的总体设计过程包括下述9个步骤:1.设想供选择的方案。2.选取合理的方案。3.推荐最佳方案。4.功能分解。5.设计软件结构。6.设计数据库。7.制定测试计划。8.书写文档。9.审查和复审。对每个合理的方案分析员都应该准备下列4份资料:(1)系统流程图;(2)组成系统的物理元素清单;(3)成本/效益分析;(4)实现这个系统的进度计划。在这个阶段应该完成的文档通常有下述几种:(1)系统说明;(2)用户手册;(3)测试计划;(4)详细的实现计划;(5)数据库设计结果;概要设计阶段的基本任务:⑴设计软件系统结构(软件结构):①采用某种设计方法,将一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确定模块之间的调用关系。④确定模块之间的接口,即模块之间传递的信息。⑤评价模块结构的质量。⑵数据结构及数据库设计。⑶编写概要设计文档。主要有:概要设计说明书;数据库设计说明书;用户手册;修订测试计划。⑷评审模块的独立程度由两个定性标准度量:内聚和耦合;耦合衡量不同模块彼此互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度;数据耦合是低耦合,控制耦合是中等程度的耦合,最高程度的耦合是内容耦合;发生内容耦合的情况:一个模块访问另一个模块的内部数据;一个模块不通过正常入口而转换到另一个模块的内部;两个模块有一部分程序代码重叠(只可能出现在汇编程序中);一个模块有多个入口;坚决避免使用内容耦合;内聚标志着一个模块内各个元素彼此结合的紧密程度,设计时琉球做到高内聚,功能内聚是最高程度的内聚;深度表示软件结构中控制的层数;宽度是软件结构内同一个层次上的模块总数的最大值;扇出是一个模块直接控制(调用)的模块数目;平均扇出通常是3或4;第六章详细设计描述程序处理过程的工具称为过程设计的工具,分为图形、表格和语言3类;程序流程图又称为程序框图:五种基本控制结构:判定表:4部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作;右半部的每一列实质是一条规则,规定了与特定的条件组合相对应的动作;Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法;Jackson图:数据元素彼此间的逻辑关系:顺序、选择、重复3种结构;程序复杂度度量:McCabe方法和Halstead方法;McCabe方法:环形复杂度:V(G)=E-N+2,其中E是流图中边的条数,N是结点数;V(G)=P+1,其中P是流图中判定结点的数目;程序的环形复杂度取决于程序控制流的复杂程度,即取决于程序结构的复杂程度,实践表明,模块规模以V(G)小于等于10为宜;第七章实现实现:通常把编码和测试统称为实现;黑盒测试:测试产品的每个功能是否能正常使用;白盒测试:测试产品内部动作是否按照规格说明书的规定正常进行;白盒测试:1逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖2控制结构测试:基本路径测试、条件测试、循环测试黑盒测试:1等价划分2边界值分析3错误推测非渐增式测试与渐增式测试有什么区别?答:非渐增式测试与渐增式测试的测试方法有以下区别:(1)非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同时完成。(2)非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块

温馨提示

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

评论

0/150

提交评论