软件工程学习笔记.docx
《软件工程学习笔记.docx》由会员分享,可在线阅读,更多相关《软件工程学习笔记.docx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章一、软件的特点1、软件:计算机程序及其说明程序的各种文档2、程序:是计算机任务的处理对象和处理规则的描述3、文档:是有关计算机程序功能、设计、编制、使用的文字或图形资料4、软件的特点:1)软件是一种逻辑产品2)软件产品的生产主要是研制3)软件产品不会用坏,不存在磨损、消耗问题4)软件产品的生产主要是脑力劳动5)软件费用不断增加,软件成本相当昂贵二、软件生产有几个阶段,各有何特征1、程序设计时代生产方式:个体手工劳动工具:机器语言、汇编语言开发方法:追求程序运行效率硬件特征:价格贵、存储容量小、运行可靠性差软件特征:只有程序、程序设计概念,不重视程序设计方法2、程序系统时代生产方式:作坊式
2、的小集团合作生产生产工具:高级语言开发方法:个人技巧,开始提出结构法方法硬件特征:速度、容量、工作可靠跃居第一明显提高软件特征:程序员数量猛增加,导致软件危机出现。3、软件工程时代生产方式:工程化的生产生产工具:数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件硬件特征:向超高速、大容量、微型化以及网络化方向发展三、什么是软件危机,其产生的原因是什么?1、软件危机软件发展到第二阶段末期,一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术进步一直不能满足发展的要求。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。2、软件危机的表现
3、1)经费预算经常突破2)开发的软件不能满足用户的要求3)开发的软件可维护性差4)软件的软件可靠性差3、原因1)软件的规模越来越大,结构越来越复杂2)软件开发管理困难而复杂3)软件开发费用不断增加4)软件开发技术落后5)生产方式落后6)开发工具落后四、什么是软件工程,其目标和内容是什么?1、软件工程用科学知识和技术原理来定义、开发、维护软件的一门学科2、目标建造一个大型软件系统,一般有以下几个目标1)付出较低的开发成本2)达到软件要求的功能3)取得较好的软件性能4)开发的软件易于移植5)需要较低的维护费用6)能按时完成开发任务及时交付使用7)开发的软件可靠性高3、内容软件开发技术:主要研究软件开
4、发方法、软件开发过程、软件开发工具和环境软件开发管理:软件管理学、软件经济学、软件必理学4、面临的问题1)软件的费用2)软件的可靠性3)软件的维护4)软件的生产率5)软件的重用五、什么是软件的生存周期,它有哪几个活动1、软件的生存周期一个软件从提出开发要求开始直到该软件报废为止的整个日期。2、活动1)可行性分析和项目开发计划2)需要求分析3)概要设计4)详细设计5)编码6)测试7)维护六、什么是软件生存周期模型,有哪些主要的模型1、生存周期模型是描述软件开发过程中各种活动如何执行的模型2、主要的模型1)瀑布模型将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它是一种理想的线性开发模
5、式,缺乏灵活性,特别是不支解决软件需要不明确或不准确的问题2)增量模型是一种非整体开发模型。开发出一部分向用户展示一部分。具有较大的灵活性,适合于软件需要不明确,设计方案有一定风险的软件项目3)螺旋模型是一种风险驱支模型。适合于大型软件的开发。4)喷泉模型是一种以用户需要为动力,以对象作为驱动的模型。适合于面向对象的开发方法5)基于知识的模型它把瀑布模型和专家系统结合在一起。6)变换模型是一种适合于形式化开发方法的模型。七、什么是软件开发方法,有哪些方法1、软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程2、有如下主要的方法1)结构化方法结构化方法是由结构化分析、结构
6、化设计、结构化程序设计构成。它是一种面向数据流的开发方法数据流图建立功能模型软件结构图建立物理模型结构化程序设计来实施详细设计对于特别复杂的项目不太适应2)Jackson方法是一种面向数据结构的开发方法3)维也纳开发方法(VDM)VDM是一种基于模型的方法。它的主要思想是将软件系统当作模型来描述,把软件的输入、输出看作模型对象。4)面向对象的开发方法基本出发点:尽可能按照人类认识世界的方法和思维来分析和解决问题包括:面向对象分析、面向对象设计、面向对象实现。作者:思渊 提交日期:2006-10-21 14:49:00第二章一、可行性研究的任务是什么?1、技术可行性1)开发的风险2)资源的有效性
7、3)技术4)开发人员的评估可行性2、经济可行性3、社会可行性二、可行性研究有哪此步骤1)确定项目规模和目标2)研究正在运行的系统3)建立新系统的高层逻辑模型4)导出和评价各种方案5)推荐可行性方案6)编写可行性报告三、可行性研究报告有哪些内容?1、引言2、可行性研究前提3、对现有系统的分析4、所建议系统的技术可行性5、所建议系统的经济可行性分析6、社会因素可行性分析7、其它可供选择方案8、结论意见四、成本、效益分析有哪些指标1、货币时间价值2、投资回收期3、纯收入五、项目开发技术有哪些内容1、项目概述2、实施计划3、人员组织及分工4、交付期限作者:思渊 提交日期:2006-10-21 14:5
8、0:00第三章一、什么是需求分析?需求分析阶段的基本任务是什么?1、需求分析开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换为相应的形式功能规约的过程。11需求分析的难点1)问题的复杂性2)交流障碍3)不完备性和不一致性4)需求易变性12适用的基本原则1)必须能够表达和理解问题的数据域和功能域2)可以把子个复杂问题功能进行分解并可逐层细化3)建模2、基本任务1)问题识别这些需求包括:功能需求,性能需求,环境需求,用户界面需求2)分析与综合,导出软件的逻辑模型3)编写文档主要包括:编写需求规则说明书,初步用户使用手册,确认测试计划,修
9、改完善软件开发计划二、什么是结构化分析方法?该方法使用什么描述工具?1、结构化分析方法(SA)是面向数据流进行需求分析的方法2、策略自顶向下逐层分解的分析策略3、描述工具利用图形等半形式化的描述方式表达需求1)数据流图描述系统的分解即系统由哪几个部分组成,各部分之间有什么联系2)数据字典数据流图中每一个图形元素。3)描述逻辑加工的结构化语言,判定表,判定数三、结构化分析方法通过哪些步骤来实现1、了解当前系统的工作流程,获得当前系统的物理模型2、抽象出当前系统的逻辑模型3、建立目标系统的逻辑模型4、作进一步的补充和优化四、什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?1、数据流图,
10、简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,是一种功能模型。2、作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。3、基本符号及含义箭头:数据流圆或椭圆:加工双杠:数据存储方框:数据的源点和起点五、画数据流图的步骤1、首先画系统的输入输出,即先画顶层数据流图2、画系统内部,即画下层数据流图。一般将层号从0开始编号,采用自顶向下,由外向内的原则六、画数据流图就注意的事项1、命名:合适的命名使人们易于理解其含义。2、画数据流而不是控制流,反映做什么,数据流名称只能是名词或名词短语。3、一般不画物质流4、每个加工至少有一个输入流和一个输出流5、编号6、父图
11、与子图平衡:了图的输入输出数据流同父图相应加工的输入输出数据流必须一致。7、局部数据存储当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,即为局部数据存储8、提高数据流图的易理解性七、什么是数据字典?其作用是什么?它有哪些条目?1、数据字典简称DD,用来定义数据流图中各个成分的具体含义的,它以一种准确的、无二义的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述2、作用1)为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述2)为分析人员查找数据流图中有关名字的详细定义而服务的3)它有数据流图共同构成了系统的逻辑模型,是需
12、求规格说明书的主要组成部分3、条目数据流、数据项、数据存储、基本加工八、描述加工逻辑有哪些工具1、结构化语言是介于自然语言和形式语言之间的一种半形式语言。它的结构分为外层和内层1)外层:用来描述控制结构,采用顺序、选择、重复三种基本结构2)内层:采用祈使语句的自然语言短语。2、判定表3、判定树九、什么是IDEF方法?IDEF0方法有什么特点?1、IDEF方法是在结构分析与设计技术的基础上提出来的,用于进行复杂系统分析和设计的方法。它分为三个部分:1)IDEF0:描述系统的功能活动及其联系,建立系统的功能模型。2)IDEF1:描述系统的信息及其联系,建立系统的信息模型3)IDEF2:进行系统模拟
13、,建立系统动态模型。2、特点1)采用方框和箭头等简单图形符号描述系统的活动和数据流,描述活动所受到的约束和实现机制2)采用严格的自顶向下、逐层分析的方式建立系统功能模型。十、简述SA方法的优缺点1、优点1)公认的、有成效的、技术成熟、使用广泛的一种方法。它比较适合于开发数据处理类型软件的需求分析2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试提供了有利条件2、缺点1)传统的SA方法主要用于数据处理方面的问题,它仅是一个静态模型,没反映处理顺序即控制流程。因此,不适合描述实时控制系统。2)SA方法在使用DFD在分析与描述“数据要求”方面有局限的3)DFD不
14、适合描述人机界面系统的要求4)为了更精确地描述软件包需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式方法结合起来。作者:思渊 提交日期:2006-10-21 14:51:00第四章一、什么是软件概要设计?该阶段的基本任务是什么?1、软件概要设计在需求分析的基础上通过抽象和分析将系统分解成模块,确定系统功能的实现即把软件需求转换为软件包的过程。2、基本任务21设计软件体系结构1)采用某种设计方案,将一个复杂的系统按功能划分成模块2)确定每个模块的功能3)确定模块之间的调用关系4)确定模块之间的接口5)评价模块结构的质量22数据结构及数据库设计1)数据结构设计2)数据库设计:
15、概念设计、逻辑设计、物理设计23编写概要设计文档主要有:1)概要设计说明书2)数据库设计说明书3)用户手册4)用户测试计划24评审二、软件设计的基本原理包括哪些内容1、模块化1)模块:是可组合、分解和更换的单元2)基本属性接口:指模块的输入和输出功能:模块实现什么功能逻辑:如何实现要求的功能及所需要的数据(内部特性)状态:该模块的运行环境,即模块调用和被调用关系2、抽象是认识复杂现象过程中使用的思维工具,即抽出事物的本质的共同特性而暂不考虑它的细节,不考虑其它因素。3、信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息,对于不需要这些信息的其它模块来说,是不能访问的。4、模块的独立性指每个
16、模块只完成系统要求的独立的子功能,并且与其它模块的联系最少且接口简单。三、模块独立性的两个标准是什么?它们各表示什么含义?1、标准1)耦合性2)内聚性2、含义1)耦合性也称块间联系指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性越强,模块的独立性越差。耦合性取决于模块接口之间的复杂性、调用的方式及传递的信息。3)内聚性也称块内联系模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素联系的越紧密,则它的内聚性就越高。四、模块间的耦合性有哪几种?它们各表示什么含义?1、无直接耦合两个模块之间没有直接关系。2、数据耦合两个模块之间有调
17、用关系,传递的是简单的数据值。3、标记耦合两个模块之间传递的是数据结构4、控制耦合一个模块是调另一个模块时,传递的是控制变量,被调模块通过该控制变量的值有选择地执行块内某一功能。5、公共耦合通过一个公共数据环境相互作用的那些模块的耦合。公共耦合随着耦合模块的个数增加而增加。6、内容耦合最高程度的耦合,也是最差的耦合。一个模块直接使用另一个模块内部数据或通过非正式入口而转入另一个模块内部。五、模块的内聚性由哪几种?各表示什么含义?1、偶然内聚指一个模块内的各个处理元素之间没有任何联系。2、逻辑内聚指模块内执行几个逻辑相似的功能,通过参数确定该模块完成哪一个功能。3、时间内聚把需要同时执行的动作组
18、合在一起形成的模块。4、通信内聚模块块内所有处理元素都在同一个数据结构上操作。或者指各处理使用相同的输入数据或者产生相同的输入数据。5、顺序内聚一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。6、功能内聚这是最强的内聚。模块内所有元素共同完成一个功能,缺一不可。六、什么是软件结构?简述软件结构优化准则?1、软件结构图是软件系统的模块层次图,反映了整个系统功能实现,即将来程序的控制层次体系。软件结构往往用树状或网状结构的图形来表示。2、结构图的内容1)模块2)模块的控制关系3)模块间的信息传递3、结构图的形态特征1)深度:模块的层数2)宽度:最
19、大的模块个数3)扇出:模块直接下属模块个数4)扇入:一个模块直接上属模块个数4、画结构图注意事项1)、同一名字的模块在结构图中仅出现一次2)调用关系只能从上到下3)不严格表示模块的调用次序。5、软件结构优化设计准则1)划分模块时,尽量做到高内聚,低耦合保持模块相对独立。2)一个模块的作用范围应在其控制范围之内。3)软件结构的深度、宽度、扇入、扇出应当适当。4)模块大小适中5)模块的接口要简单、清晰、含义明确、便于理解、易于实现、测试和维护。七、什么是模块的影响范围?什么是模块的控制范围?它们之间应该建立什么关系?1、模块的影响范围受该模块内一个判定影响的所有模块的集合。2、模块的控制范围模块本
20、身以及其所有下属模块的集合。3、它们之间应建立的关系一个模块的影响范围应在其控制范围内,且判定所在的模块应与受其影响的模块在层上尽量靠近。八、结构化设计以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构即结构化设计(SD)九、什么是变换流?什么是“事物流”?1、变换流是由输入、变换、和输出三个部分组成的DFD。2、事物流若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择一个路径来执行。这种牲的DFD称为事物数据流图。十、面向数据流设计法的过程1、精化DFD2、确定DFD类型3、分解上层模块4、根据优化准则对软件结构求精5、描述模块功能6、复杂十一、变
21、换分析的设计步骤1、确定DFD中心,逻辑输入和逻辑输出2、设置软件结构的顶层和第一层:变换结构第一层一般至少要有三种功能模块:输入、输出和变换模块。3、设置中、下层模块输入模块:接收数据;转换成调用模块所需信息输出模块:将数据转换成下属模块所需的形式;发送数据4、变换模块下属模块的设计5、设计的优化十二、事务分析设计步骤1、确定DFD中的事务中心和加工路径2、设计软件结构的顶层和第一层:事务结构。事物型软件结构应该包括两个部分:一个接收分支和一个发送分析(包含一个高度模块)。3、事务结构中、下层模块的设计、优化作者:思渊 提交日期:2006-10-21 14:52:00第五章一、软件详细设计的
22、基本任务是什么?有哪几种描述方法?1、软件详细设计的基本任务1)为每个模块进行详细的算法设计2)为模块内的数据结构进行设计3)对数据库进行物理设计4)其它设计:代码设计输入/输出格式设计人机对话设计5)编写详细设计说明书6)评审2、描述方法1)程序流程图2)PAD图3)过程设计语言二、结构化程序设计的基本要点是什么?1、采用自顶向下、逐步求精的程序设计方法2、使用三种基本控制结构构造程序3、主程序员组的组织形式。三、程序流程图1、程序流程图又称为程序框图,它是历史最悠久,使用最广泛的一种程序逻辑结构的工具2、优点:直观清晰,易于使用3、缺点1)可以随心所欲地画流程线的流向,容易造成非结构化的程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 学习 笔记
限制150内