ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:35.78KB ,
资源ID:9345851      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9345851.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程学习笔记.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

软件工程学习笔记.docx

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)开发的风险

7、2)资源的有效性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

8、-21 14:50: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、作进一步的补充和优化四、什么是数据流图?其作用是什么?其中的基本符号各表示什么含义

10、?1、数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,是一种功能模型。2、作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。3、基本符号及含义箭头:数据流圆或椭圆:加工双杠:数据存储方框:数据的源点和起点五、画数据流图的步骤1、首先画系统的输入输出,即先画顶层数据流图2、画系统内部,即画下层数据流图。一般将层号从0开始编号,采用自顶向下,由外向内的原则六、画数据流图就注意的事项1、命名:合适的命名使人们易于理解其含义。2、画数据流而不是控制流,反映做什么,数据流名称只能是名词或名词短语。3、一般不画物质流4、每个加工至少有一个输入流和一个输出流

11、5、编号6、父图与子图平衡:了图的输入输出数据流同父图相应加工的输入输出数据流必须一致。7、局部数据存储当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,即为局部数据存储8、提高数据流图的易理解性七、什么是数据字典?其作用是什么?它有哪些条目?1、数据字典简称DD,用来定义数据流图中各个成分的具体含义的,它以一种准确的、无二义的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述2、作用1)为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述2)为分析人员查找数据流图中有关名字的详细定义而服务的3)它有数据流图共同构成了系统

12、的逻辑模型,是需求规格说明书的主要组成部分3、条目数据流、数据项、数据存储、基本加工八、描述加工逻辑有哪些工具1、结构化语言是介于自然语言和形式语言之间的一种半形式语言。它的结构分为外层和内层1)外层:用来描述控制结构,采用顺序、选择、重复三种基本结构2)内层:采用祈使语句的自然语言短语。2、判定表3、判定树九、什么是IDEF方法?IDEF0方法有什么特点?1、IDEF方法是在结构分析与设计技术的基础上提出来的,用于进行复杂系统分析和设计的方法。它分为三个部分:1)IDEF0:描述系统的功能活动及其联系,建立系统的功能模型。2)IDEF1:描述系统的信息及其联系,建立系统的信息模型3)IDEF

13、2:进行系统模拟,建立系统动态模型。2、特点1)采用方框和箭头等简单图形符号描述系统的活动和数据流,描述活动所受到的约束和实现机制2)采用严格的自顶向下、逐层分析的方式建立系统功能模型。十、简述SA方法的优缺点1、优点1)公认的、有成效的、技术成熟、使用广泛的一种方法。它比较适合于开发数据处理类型软件的需求分析2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试提供了有利条件2、缺点1)传统的SA方法主要用于数据处理方面的问题,它仅是一个静态模型,没反映处理顺序即控制流程。因此,不适合描述实时控制系统。2)SA方法在使用DFD在分析与描述“数据要求”方面有局

14、限的3)DFD不适合描述人机界面系统的要求4)为了更精确地描述软件包需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式方法结合起来。作者:思渊 提交日期:2006-10-21 14:51:00第四章一、什么是软件概要设计?该阶段的基本任务是什么?1、软件概要设计在需求分析的基础上通过抽象和分析将系统分解成模块,确定系统功能的实现即把软件需求转换为软件包的过程。2、基本任务21设计软件体系结构1)采用某种设计方案,将一个复杂的系统按功能划分成模块2)确定每个模块的功能3)确定模块之间的调用关系4)确定模块之间的接口5)评价模块结构的质量22数据结构及数据库设计1)数据结构设计

15、2)数据库设计:概念设计、逻辑设计、物理设计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)深度:模块的

19、层数2)宽度:最大的模块个数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、描述模块功能

21、6、复杂十一、变换分析的设计步骤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)可以随心所欲地画流程线的流向,容易

23、造成非结构化的程序结构。2)流程图不易反映逐步求精的过程,往往反映的是最后的结果3)不易表示数据结构。四、什么是PAD图,其优点是什么?1、PAD图指问题分析图,是日本日立公司1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。控制流程为自上而下、从左到右地执行。2、优点1)清晰地反映程序的层次结构2)支持逐步求精的设计方法3)易读易写,使用方便4)支持结构化的程序设计原理5)可自动生成程序五、什么是过程设计语言?其优点是什么?1、过程设计语言PDL也称程序描述语言,又称伪码。它是一种用于描述模块算法设计和处理细节的语言。2、优点1)提供的机制比图形全面,为保证详细设计与编码

24、的质量创造了有利条件2)可作为注释嵌入在源程序中一起作为程序文档并可同高级语言一样进行编辑、修改,有利于软件的维护3)可自动生存程序代码,提高软件生产率。六、什么是JACKSON方法Jackson方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件体系结构,因此该方法适用于详细设计阶段。七、JACKSON结构图的优点1、能对结构进行自顶向下分解,因此可以表示层次结构2、结构易读,形象直观3、即能表示数据结构也能表示程序结构,且表示的是组成关系。八、简述JSP的设计步骤1、分析并确定输入数据和输

25、出数据的逻辑结构,并用Jackson结构图表示这些数据结构。2、找出输入数据结构和输出数据结构中有对应关系的数据单元。3、按一定的规则由输入、输出的数据结构导出程序结构。4、列出基本操作与条件,并把它们分配到结构图的适当位置。5、用伪码写程序。作者:思渊 提交日期:2006-10-21 14:52:00第六章一、程序语言有哪些共同的特征?1、心理特性岐义性简洁性局部性和顺序性传统性2、工程特性可移植性开发工具可利用性软件的可重用性可维护性4、技术特性二、在项目开发时,选择程序设计语言通常考虑哪些因素?1、项目的应用领域1)科学工程计算领域Fortran:第一个被正式推广应用的计算机语言Pasc

26、al:第一个体现结构化编程思想的语言,有利于培养良好的编程风格。CPL.1等2)数据处理和数据库应用CobolSQL4GL(VFUnifaceowerBuilderInformix4GL等)3)实时处理汇编语言Ada等4)系统软件汇编语言Adaascal等5)人工智能Lisp函数型语言Prolog:逻辑型语言、软件开发方法快速模型开发:4GL语言面向对象:C+Java、软件执行环境、算法和数据结构的复杂性5、软件开发人员的知识三、第4代语言(4GL)有哪些特征?1、友好的界面2、兼有过程性和非过程性双重特性3、高效的程序代码4、完备的数据库5、应用程序生成器四、什么是程序设计风格?为了具有良好

27、的设计风格,应注意哪些方面的问题?1、程序设计风格一个人编程序时所表现出来的特点、习惯、逻辑思路等。2、应注意的问题1)源程序文档化标识符应注意取名程序应注释2)数据说明3)语句构造:简单直接4)输入和输出。5)效率作者:思渊 提交日期:2006-10-21 14:53:00第七章一、软件测试的目的是什么?在软件测试中,应注意哪些原则?1、目的GJMyers对软件测试的目的提出了以下观点:1)、软件测试的目的是为了发现错误而执行程序的过程。2)、一个好的测试用例能够发现至今尚未发现的错误3)、一个成功的测试是发现了至今尚未发现的错误的测试因此测试阶段的基本任务应该是根据软件开发各阶段的文档资料

28、和程序的内部结构,精心设计一组“高产”的测试用例,找出软件中潜在的各种错误和缺陷。2、软件测试的原则1)测试用例应由输入数据和预期的输出数据两部分组成。2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事4)应制定测试计划并严格执行5)长期保留测试用例6)对发现错误较多的程序段,应进行更深入的测试。7)程序员避免测试自己的程序。二、测试方法1、静态测试1)人工检测2)计算机辅助静态分析2、动态测试1)白盒法:测试产品内部结构及处理过程2)墨盒法:测试产品功能。三、什么是白盒测试?有哪些覆盖标准?试对质它们的检错

29、能力进行比较?1、白盒测试把测试对象看作一个打开的盒子,测试人员必须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据是否错误,实际运行状态与预期是否一致。2、覆盖标准21逻辑覆盖1)语句覆盖设计足够的测试用例,使被测试程序中每个语句至少执行一次。2)判定覆盖设计足够测试用例,使被测试程序中每个判定表达式至少获得一次“真”值或“假”值。3)条件覆盖设计足够测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。4)判定/条件覆盖设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果至少出现一次。5)条件组合覆盖设计足够的测试用例,使得每个判定表达式条件的各种可能的值的组合都至少出现一次。6)路径覆盖设计足够的测试用例,覆盖被测试程序中所有可能的路径

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2