




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、 概述1、 软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。2、 软件工程的内容:(1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。(2)软件开发管理:软件管理学、软件经济学、软件心理学。3、 软件的生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。软件生命周期是由:软件定义时期;软件开发时期;软件维护时期三个时期组成的。又划分为:(1)问题定义、(2)可行性研究、(3)需求分析、(4)总体设计、(5)详细设计、(6)编码和单元测试、(7)综合测试、(8)维护八个阶段。4、软件生存周期模型:确立了软件开发和演绎中个阶段的次序限制以及个阶段活动的准则,如:瀑布模型(属于整体生存周期)、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。5、 软件工程的目标:是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:(1)付出较低的开发成本;(2)面到要求的软件功能;(3)取得较好的软件性能;(4)开发的软件易于移植;(5)需要较低的维护费用;(6)能按时完成开发任务,及时交付使用;(7)开发的软4、软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。6、 软件工程的框架可概括为:(1)目标、(2)过程和(3)原则。7、 软件工程方法学:软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。软件工程方法学包括:传统方法学(结构化范型)和面向对象方法学。软件工程方法学三要素是:(1)方法;(2)工具;(3)过程。8、 面向对象的要点:(1)把对象作为融合了数据及在数据上的操作行为的统一的软件构件。(2)把所有对象都划分成类。(3)按子类与父类的关系,把类组成一个层次结构。(4)对象彼此之间仅能通过传递消息互相联系。9、 软件开发环境:由于工具箱存在的问题,人们在工具系统的整体化及集成化方面展开一系列研究工作,使之形成完整的软件开发环境。10、 结构化方法:由结构化分析SA、结构化设计SD和结构化程序设计SP构成其总的指导思想是:自顶向下、逐步求精。基本原则是功能的分解和抽象。11、 软件危机:(1) 软件危机:指在计算机软件开发和维护过程中所遇到的一系列严重问题,这是软件产生与市场需求极不适应的严重现象。(2) 表现:软件代价高、开发进度难以控制、工作量估计困难、质量差、修改维护困难。c)(3) 产生的原因:用户的需求不明确、缺乏正确的理论指导、软件规模越来越大、软件的复杂度越来越大、软件灵活行要求高、影响软件生产率与质量因素十分复杂。二、 可行性研究1、 可行性研究的目的:是用最小的代价在尽可能短的时间内确定该软件项目是否值得去开发。2、 可行性研究的任务:首先需要进行概要分析。初步确定项目的规模和目标,确定项目的约束和限制,将他们清楚的列举出来。然后分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,摸索出若干种可供选择的主要解决办法,对每种办法都研究它的可行性。(1) 技术可行性:对要开发项目的功能、性能、限制和条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。(2) 经济可行性:进行开发成本的估算以及了解效益取得的评估,确定要开发的项目是否值得投资开发。(3) 社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行的通,现有管理制度、人员素质、操作方法是否可行。3、 可行性研究的步骤:(1) 确定项目规模和目标(2)研究正在运行的系统(3)建立新系统的高层逻辑模型(4)导出评价各种方案(5)推荐可行的方案(6)编写可行性研究报告。4、 可行性研究报告的主要的内容:(1) 引言(2)可行性研究前提(3)对现有系统的分析(4)所建议系统的技术可行性分析(5)所建议系统的经济可行性分析(6)社会因素可行性分析(7)其他可供选择的方案(8)结论意见三、软件需求分析1、需求分析的任务:确定系统必须完成哪些工作。提出并确认系统逻辑模型(数据流图、数据字典、算法描述)。2、 结构化分析SA基本思想:是面向数据流进行需求分析的方法,是一种建模活动,自顶向下逐层分解功能要求。其描述工具有:数据流图DFD;数据字典DD;描述加工逻辑的结构化语判定表、判定树。3、 DFD:数据流图,是SA方法中标识系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,市一中功能模型。它有四种基本图形符号:箭头表示数据流;椭圆表示加工(还应该有编号);双杠表示数据存储;方框表示源点或终点。4、 画DFD的步骤:(1)先画系统的输入和输出即顶层数据流图;(2)画系统内部即画下层数据流图(0层、1层)。注意分清只画数据流,且父图和子图需要平衡:子图的输入和输出据 流同父图相应加工的输入输出数据流必须一致。5、 数据字典:用来定义数据流图种的各个成分的具体含义。由数据项组成;一般有数据流条目、数据存储条目、数据项条目和加工条目等内容。具体的可以用相关的符号和数据项来定义。如: 姓名字母182,表示姓名由218个字母组成。6、 判定树与判定表:判定树是判定表的变形,一般情况下比判定表更直观且易于理解和使用。也可二者结合,先用判定表作底 稿,在此基础上产生判定树。四、概要设计1、概要设计:描述软件的总的体系结构,基本任务有:软件结构设计(关键);数据结构和数据库设计(概念、逻辑和物理上的);编写概要设计文档;评审。(1)设计软件系统结构(简称软件结构)采用某种设计方法,将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。软件结构设计是以模块为基础的,在需求分析阶段,已经把系统分解为层次结构。设计阶段,以需求分析的结果为依据,从实现的角度进一步划分划分为模块,并组成模块的层次结构。(2)数据结构及数据库设计:数据库的设计指数据存储文件的设计(概念设计、逻辑设计、物理设计),数据库的“概念设计”、“逻辑设计”分别对应于系统开发中的“需求分析”与“概要设计”,数据库的“物理设计”与模块的“详细设计”相对应。(3)编写概要设计文档(概要设计说明书、数据库设计说明书、用户手册、修订测试计划,对测试策略、方法、步骤提出明确要求。)(4)评审:对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性、有效性,各部分之间的一致性等等都一一进行评审。2、模块独立性:每个模块只完成系统要求的独立子功能,并且与其他模块的练习最少且接口简单。它是模块化、抽象、信息隐蔽的产物。可以用两个定性的度量标准来衡量:(1)耦合性:软件系统结构中各模块间相互练习紧密程度的一种度量。无直接耦合 数据耦合 标记耦合 控制耦合 公共耦合 内容耦合(低高)数据耦合指两模块间传递简单的数据值,而控制耦合指传递的是控制变量,所以可以将被调用模块内的判定上移到调用模块中去,同时将被调用模块按其功能分解为若干单一功能的模块。()内聚性:模块的功能强度的度量即模块中个元素彼此结合的紧密程度。偶然内聚 逻辑内聚 时间内聚 通信内聚 顺序内聚 功能内聚(低高)(3)将软件系统划分模块时,尽量做到高内聚低偶合,提高模块的独立性。3、软件结构图SC:软件系统的模块层次结构,反映了整个系统的功能实现。SC 图的形态特征有:()深度:模块的层次,根算一层;()宽度:一层中最大的模块个数;()扇出:一个模块直接诶下属模块的个数。()扇入:一个模块直接上属模块个数。画结构图时应该注意:同一名字的模块在结构图中仅出现一次; 调用关系只能从上到下;习惯上从左到右表示模块的调用次序。 4模块的作用范围(作用域):指模块内一个判定影响的所有模块的集合。模块的控制范围(控制域):指模块本身及其所有下属模块的集合。软件结构设计的一个优化准则就是一个模块的作用范围应该在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。因此同常可以采用上移判断点和下移受判断影响的模块来满足要求。5数据流图的类型:()变换型。由输入、变换和输出组成,是顺序结构。变换分析的步骤:确定变换中心、逻辑输入和逻辑输出。设计软件结构的顶层和第一层变换结构。设计中下层模块。()事务型。某加工将输入数据流分离成许多发散的数据流,形成许多加工路径,并根据输入值选择一个路径执行。事务分析步骤:确定事务中心和加工路径。设计软件结构的顶层和第一层事务结构。中下层模块的设计与优化。五、详细设计1、详细设计的基本任务(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。(3)对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。(4)其他设计:根据软件系统的类型,还可能要进行以下设计:代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。输入/输出格式设计。人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。(5)编写详细设计说明书。(6)评审。对处理过程的算法和数据库的物理结构都要评审。2、结构化程序设计方法详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”,详细设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。过程设计中采用的典型方法是结构化程序设计(简称SP)方法,最早是由E.W.Dijkstra在60年代中期提出的,它是实现详细设计目标的关键技术之一。3、结构化程序设计方法的基本要点是:(1)采用自顶向下,逐步求精的程序设计方法在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。(2)使用三种基本控制结构构造程序任何程序都可由顺序、选择、重复三种基本控制结构构造。主程序员组的组织形式指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。4、详细设计描述法详细描述处理过程常用三种工具:图形、表格和语言。5、PAD图的应用:排序算法。6、过程设计语言过程设计语言(ProblemDesignLanguage,简称PDL),也称程序描述语言(ProblemDescripitionLanguage),又称为伪码。它是一种用于描述算法设计和处理细节的语言。7、用PDL表示的程序结构一般有以下几种:(1)顺序结构:采用自然语言描述。(2)选择结构:1、IF-ELSE结构IF条件IF条件处理S1或处理SELSE处理S2ENDIFENDIF2、IF-ORIF-ELSE结构IF条件1处理S2ORIF条件2处理S2.ELSE处理SnENDIF3、CASE结构CASEOFCASE(1)处理S1CASE(2)处理S2.ELSE处理SnENDCASE(3)重复结构:1、FOR结构FORi=1TOn循环体ENDFOR2、WHILE结构WHILE条件循环体ENDWHILE3、UNTIL结构REPEAT循环体UNTIL条件(4)出口结构:1、ESCAPE结构(退出本层结构)WHILE条件处理S1ESCAPELIF条件处理S2ENDWHILEL:2、CYCLE结构(循环内部进入循环的下一次)L:WHILE条件处理S1CYCLELIF条件处理S2ENDWHILE8、Jackson方法Jackson方法是面向数据结构的设计方法。Jackson方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构Jackson设计步骤Jackson方法一般通过以下五个步骤来完成设计:(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图来表示这些数据结构。(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。(3)按一定的规则由输入、输出的数据结构导出程序结构。(4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。(5)用伪码写出程序。六、软件编码程序设计语言的选择关键因素:是项目的应用领域。()科学工程计算:如FORTRAN,Pascal,C,PL/1;()数据处理与数据库应用:如Cobol广泛用于商业数据处理;SQL为IBM卡发的数据库查询语言;4GL第4代语言;FoxPro等;()实时处理:汇编语言;Ada等;()系统软件:汇编、C、Pacal、Ada等;()人工智能:Prolog,Lisp。程序设计风格:指一个人编制程序时所标心出来的特点、习惯、逻辑思路等。良好的编成风格可以减少编码的错误,减少读程序的时间,提高软件的开发效率。()源程序文档化;()数据说明条理化;()语句结构规格化;语句构造原则:简单直接,不能为了追求效率才而使代码复杂化;()输入输出的工程学化;()可读性第一,效率第二。七、软件测试1.软件测试是根据软件开发各个阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。2.设计测试的目的是想以最少的时间和人力系统地找出程序的各种错误和缺陷。3、测试的原则:1应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。2测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。3程序应避免检查自己的程序。4在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。5充分注意测试中的群集现象。6严格执行测试计划,排除测试的随意性。7应当对每一个测试结果作全面检查。8妥善保存测试计划,测试用例,出错统计和最终分析报告,为未来实施的维护提供方便。 4、动态测试:通过运行程序发现错误得测试。一般有两种方法:一是测试产品得功能(黑盒法),二是测试产品内部结构及处理过程(白盒法)。5、黑盒测试:等价类划分;边界值分析;错误推测;因果图;综合策略。6、软件测试的策略:单元测试(模块接口,路径,边界,错误处理),组装测试(一次性,增殖性)确认测试(和)系统测试(区分功能,回归,可靠性,强度,性能的不同。7、集成测试的方法:()非渐增式测试:首先对每个模块分别进行单元测试,然后把所有的模块按设计要求组装在一起进行测试。()渐增式:逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试。以此重复直至程序组装完成。又分自顶向下结合和自底向下结合。8、人工测试:桌面检查、代码评审、走查9、调试(纠错)目的:在成功的测试之后,确定错误的原因和位置,并改正错误。尽可能多地发现程序中的错误,调试技术:简单的调试方法,归纳调试法,演绎调试法和回溯调试法。八、软件维护软件维护:是软件生存周期中时间最长的一段,所花费的精力和费用也是最多的一个阶段。2、内容:校正性维护,适应性维护,完善性维护和预防性维护。其中完善性维护是为了适应这些变化,应用软件原来的功能和性能需要扩充和增强。这种增加软件功能、增强软件功能、提高软件运行效率而进行的维护活动称完善性维护。3、 维护性困难性:由于软件需求分析和开发方法的缺陷。读懂别人的程序是困难的;文档的不一致性;软件开发和软件维护在人员和时间上的差异;软件维护不是一项吸引人的工作。4、维护的副作用:编码副作用;数据副作用;文档副作用。5、软件的可维护性:软件能够被理解、校正、适应及增强功能的容易程度。软件的可维护性、可使用性、可靠性是衡量软件质量的几个主要特性,可维护性是软件开发阶段的关键目标。6、软件维护的过程:(1)建立维护的机构(2)规范维护流程(3)编写维护报告(4)进行软件修改(5)保存维护记录(6)评价维护结果九、面向对象1、面向对象是以问题空间中出现的物体为中心进行模型化的一种技术。面向对象技术通过抽象化现实世界中的物体,来描述一个系统。2对象是客观世界的实体或概念在计算机中的表示。一个对象是具有唯一对象名和固定对外接口的一组属性和操作集合,用来模拟组成或影响现实世界的一个或一组因素。3面向对象的基本特征:抽象、封装、集成、多态。4面向对象开发的优点:提高软件系统的可复用性、可扩展性、可维护性。5类与对象的关系:可看成是抽象与具体的关系。组成类的每个对象都是该类的实例,实例是类的具体事务,类是各个实例的综合抽象。通过类还可以生成许多同类型的对象。6UML的组成:UML的模型元素、UML的元模型结构、图和视图。7UML的4个抽象层次:用户模型、模型、元模型、元元模型。8UML的2类图:静态图(用例图、类图、对象图、构件图、部署图);动态图(状态图、时序图、协作图、活动图)5种视图:用例视图、逻辑视图、进程视图、构件视图、部署视图。9UML的特点:同意标准、面向对象、表达能力强,可视化。10用例图就是由主角、用例以及它们之间的关系构成的图。该图说明了用例模型中的关系。用例模型由一组用例图组成,其基本组成部件是用例、参与者和系统。11类图:是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图最基本的元素是类或者接口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- i期病区管理制度
- 专家智库管理制度
- 专项设备管理制度
- 业主反馈管理制度
- 业主活动管理制度
- 业务岗位管理制度
- 严格个人管理制度
- 幼儿园中班社会教案快乐的动物园
- 中国房产管理制度
- 中天项目管理制度
- 福建省福州市2023−2024学年高一下册期末考数学试卷附解析
- 全国导游人员资格考试单科综合测试卷(科目一:政策与法律法规)
- 2024年中国铁路成都局集团有限公司招聘考试《铁路基本常识》真题库及答案
- 生态草场使用权转让协议
- 第18课清朝的边疆治理教学设计-统编版七年级历史下册
- 物流实操试题及答案详解
- 播出设备检修管理制度
- 医院医保奖惩管理制度
- 2025年中级经济师之中级经济师金融专业题库练习试卷A卷附答案
- Python数据科学与机器学习结合试题及答案
- 海鲜水产电商商业计划书
评论
0/150
提交评论