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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

软件工程复习纲要.docx

1、软件工程复习纲要 软件工程复习纲要第1章、概述1、软件危机的概念及主要原因(1)软件危机是指在计算机软件开发和维护时所遇到的一系列问题。(2)软件危机产生的原因:软件规模、方法、技术、软件开发人员;客观:规模,环境,需求变化;主观:开发技术,管理。 软件产品规模庞大,开发和维护带来客观困难 软件使用同期相对较长,期间可能出现开发没料到的问题,需要及时维护 软件开发技术落后,生产方式和开发工具落后 软件开发人员忽视软件需求分析的重要性,轻视软件维护2、软件、软件工程、软件工程学的概念(1)软件是指计算机程序及其有关的数据和文档。(2)软件工程(software engineering)是计算机软

2、件开发、运行、维护和隐退的系统方法;是指导计算机软件开发和维护的工程学科;软件工程的目标是在规定的时间、开发费用内,开发满足用户需求的高质量的软件。(3)软件工程学的主要内容是软件开发技术(包含软件工程方法学、软件工具和软件开发环境)和软件工程管理(包含软件工程经济学和软件管理学)。更多内容请见P.4;3、软件生命周期及生命周期各阶段的任务(1)软件生命周期指从设计软件产品开始到产品不能使用为止的时间周期。包括:定义,开发,使用,维护,淘汰。(2) 软件生命周期各阶段的任务 软件计划、软件开发和软件运行维护三个时期。 软件计划时期:问题定义、可行性研究、需求分析软件开发时期:软件概要设计、软件

3、详细设计、软件实现、综合测试等阶段。软件运行维护时期:需要不断地进行维护,使软件持久满足用户需要4、软件开发模型的几种模型及各模型的特征(1)瀑布模型(Waterfall Model) :(规范的、文档驱动方法。开发阶段按顺序进行,适合需求分析较明确、开发技术较成熟的情况。)特点:阶段间具有顺序性和依赖性;推迟实现编码;质量保证。(2)快速原型模型:(快速原型系统让用户试用并收集用户意见。获取用户真实需求。)特点:软件产品的开发基本上是线性顺序进行的;能减少软件的总成本,缩短开发周期。(3)增量模型:(优点是能在早期向用户提交部分产品和易于维护,缺点是软件的体系结构必须是开放的。)特点:开发过

4、程中自始自终都有用户参与(4)喷泉模型:开发过程有分析、系统设计、软件设计和实现4个阶段,各阶段相互重叠,反映软件过程并行性;以分析为基础,反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗;强调增量开发,整个过程是一个迭代的逐步提炼的过程。(适合面向对象方法)(5)螺旋模型:适用于大规模内部开发项目,分析风险和排除风险。(6)统一过程:适用于面向对象方法,使用统一建模语言UML。采取用例驱动和架构优先策略。迭代增量的建造方法。第2章、软件计划(SA)1、可行性研究的内容和目的可行性研究内容包括:技术可行性、经济可行性、社会因素方面的可行性,目的是通过对用户详细的调查研究,确定所开发软件

5、的系统功能、性能、目标、规模,该系统同其他系统或其他软件之间的相互关系。2、需求分析的任务,及其要完成三个模型(1)需求分析的基本任务是研究用户对系统的确切要求,是理解、分析和表达“系统必须做什么”的过程。(2)需求分析具体任务包括:确定目标系统的具体要求、建立目标系统的逻辑模型、书写“软件需求规格说明”、修正系统的开发计划、制定初步的系统测试计划、编写初步的用户手册、编写数据要求说明书。(3)三个模型:数据模型、功能模型和行为模型。3、数据流图(DFD)的画法(P.30),及数据字典(DD)的使用(P.36)。(1)数据流图的基本符号(2)数据字典符号4、状态图总结需求分析的图形工具:实体-

6、关系图、数据流图、状态转换图、数据字典、层次图 ,Warnier图,PO图 。5、课后作业一(某房地产经营管理系统)(1)DFD图房地产经营管理系统DFD图(2)数据字典:房产信息=房产编号+地址+楼房名称+楼房总数+总房间数客户基本情况=客户号+姓名+身份证号房间租(售)信息=房产编号+楼房名称+房间号+房间层次+朝向+规格+面积+出租单价+出售单价+租售情况+客户号房产租(售)资金回收情况=房产编号+楼房名称+房间号+客户号+租|售+金额+日期记录存储规则:该文件按两种方法排序,一按客户号排序,二按”房产编号+楼房名称+房间号”。 课后作业2(火车订票系统)火车订票系统DFD图数据字典:列

7、车运行目录=车次号+始发站+终点站+1途经站+软卧车厢数+硬卧车厢数+一个软卧车厢数+发车日期列车铺位信息=车次号+车厢号+铺位号+上铺|中铺|下铺+价格+1=已售|0=未售旅客订票信息=旅客号+定票日期+预定车票日期+0=票未取|1=票已取+ 车次号+车厢号+铺位号+上铺|中铺|下铺 +价格 第三章、结构化设计(SD)1、概要设计的任务概要设计的主要任务是确定设计方案、软件结构设计、数据文件设计、制定测试计划、书写概要设计文档和复审。2、模块、模块化的概念,模块设计启发规则、评价模块风割好坏的标准(1)模块:又称构件,是能够单独命名并独立地完成一定功能,独立地设计、编制、调试、查错、修改和维

8、护的程序语句的集合。(2)模块化:把系统按照一定的规则分割成分割成能完成独立功能的模块,明确规定各模块及其输入输出规格,使模块的界面不会产生混乱。(3)模块设计启发规则:尽力提高模块独立性:高内聚、低耦合注意模块的可靠性、通用性、可维护性、简单性模块的大小应适中规模模块的深度、宽度、扇出和扇入应适当,通常设计得较好的软件结构,顶层扇出高,中间扇出较少,下层调用公用模块。模块接口要简单、清晰 (4)评价模块风割好坏的标准:模块的大小、模块之间的联系程度(耦合性)、模块内元素联系程度(内聚性)、模块信息的隐蔽程度。3、耦合的几种定义耦合(Coupling)是模块之间依赖程度的度量。数据耦合:模块间

9、通过参数传递基本类型的数据。控制耦合(中等程度耦合):两个模块之间传递的信息中有控制信息。特征耦合:被调用模块可以使用数据多于实际需要的数据。公共耦合:两个或多个模块都能够存取同一公共数据环境,包括变量、公共内存缓冲区、物理设备。内容耦合:下列情况之一会产生内容耦合某个模块直接访问另一模块的内部数据两个模块有相同的程序段一个模块直接进入另一模块的内部;一个模块有多个入口,即模块有多个功能4.内聚的几种定义内聚(cohesion):一个模块内各个元素彼此结合的紧密程度。偶然内聚(concidental cohesion):一个模块完成多个完全不相关的功能。 逻辑内聚( logical cohes

10、ion):一个模块完成的任务在逻辑上属于相同或相似的一类任务。时间内聚(temporal cohesion):一个模块完成多个具有时间相关性的功能,需要同时执行。过程内聚:处理元素是相关,必须以特定次序执行 。通信内聚(communicational cohesion):一个模块内包含需多个功能,并且这些功能的完成都依赖于相同的公用数据,即同一数据文件。各个成分合用同一个数据,或者产生同一个输出数据。 顺序内聚(sequential cohesion):各成分顺序执行,前一个成分的输出是后一个成分的输入。功能内聚(functional cohesion):所有成分共同完成一个单一的功能。5、系

11、统结构图(SC)的画法,及与交换型、事务性之间的转换,深度、宽度、扇入、扇出的概念结构图符号(P.55)交换型数据流图、事务型数据流图的画法(P.57)深度:指软件结构中模块的层数。宽度:指软件结构内同一层次的模块数的最大值。扇出:指一个模块所调用的模块数。扇入:指有多少上级模块调用它6、详细设计的基本任务数据结构设计和数据库设计接口设计过程设计代码设计、输入输出设计、网络设计等编写详细设计说明书、编写软件系统的操作手册等文档复审7.详细设计的工具的使用流程图、N-S图、问题分析图(PAD图)、判定树、判定表、过程设计语言(PDL)8、Jackson方法(P.74)面向数据结构的设计方法有两种

12、:Jackson方法和Warnier方法。JACKSON方法中数据结构通常表示为树型结构,有顺序、选择和循环三种基本结构第4章、软件编码和软件测试1、设计语言:哪些属于/不属于面向对象的语言,设计语言的选择。面向对象语言C+、Smalltalk、Eiffel、Actor、Ada是面向对象型语言Object Pascal、Objective-C是混合型面向对象语言Java在网络上广泛使用如何选择设计语言主要考虑项目应用领域、软件开发环境、用户的知识以及程序员的知识等2、程序的注释程序的注释分为两种:序言性注释和功能性注释。序言性注释通常安排在每个程序模块的起始部分,它是对程序的整体说明,对于理解

13、程序本身具有引导作用。功能性注释嵌入在源程序体内,用以描述其后的语句或程序段的处理功能。3、测试目标、测试关键问题、测试原则测试目标精心设计测试方案, 力争尽可能少的次数,测出尽可能多的错误.程序测试是为了发现错误而执行程序的过程.好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。测试关键问题(查无资料)测试原则测试工作不能由设计和编码人员进行;测试用例既要有输入数据,也得有对应预期结果既有合理数据,也得有不合理数据的处理能力检查是否处理了多余的工作精心设计测试方案,尽量把测试出软件的错误Pareto原理:80 错误可能由程序20的模块造

14、成需求分析阶段,应制定测试计划,甚至测试用例长期保存测试用例,直至程序废弃4、集成测试,存根模块、驱动模块集成测试(Integration Testing)也称为联合测试或组装测试,有组装和检验两重意义。测试者:独立的测试小组;测试策略:测试方法以黑盒法为主。驱动模块驱动模块(driver):模拟主程序或者调用模块的功能,用于向被测模块传递数据,接收、打印从被测模块返回的数据。一般只设计一个驱动模块。存根模块用于模拟那些由被测模块所调用的下属模块的功能。可以设计一个或者多个模块。5、黑盒测试,等价类划分法、边界值分析法。黑盒测试。又称功能测试、数据驱动测试、基于规格说明书的测试,不考虑程序的内

15、部结构与特性,只根据程序功能或程序的外部特性设计测试用例。等价类划分方法。等价类划分属于黑盒测试,根据输入数据和输出数据的特点,将程序输入域划分成若干个部分,即子集,每个子集中的一个典型值在测试中的作用与这一类中所有其他值的作用相同。因此从每个子集中选取具有代表性的数据作为代表进行测试来发现程序中的错误。有效等价类:符合需求规格及软件设计规定的数据子集。无效等价类:不符合需求规格及软件设计规定的数据子集。边界值分析法边界值分析也属于黑盒测试,边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件;边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。6、

16、白盒测试,逻辑覆盖法、因果图法。白盒测试又称结构测试,其测试用例根据程序内部的逻辑结构和执行路劲来设计的。逻辑覆盖法逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设计技术,属于白盒测试。 语句覆盖:设计足够的测试用例,使得程序中的每个语句至少执行一次。 判定覆盖:设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖。 条件覆盖:设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果。 判定/条件覆盖:设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。 条件组合覆盖:设计足够的测试用例

17、,使得每个判定中的条件的各种可能组合都至少出现一次。因果图法因果图适合于描述对于多种输入条件的组合,相应产生多个动作的形式来设计测试用例。因果图方法最终生成的是判定表。 用因果图法生成测试用例的步骤(1) 分析哪些是原因,哪些是结果,给每个原因、结果一个标识。(2) 分析语义,找出原因与结果、原因与原因之间的关系,画出因果图。(3) 在因果图上标明约束或限制条件。(4) 把因果图转化为判定表 。(5) 根据判定表每一列设计测试用例。因果图的基本符号因果图的约束符号第五章、软件维护1、软件维护和软件可维护性软件维护就是在软件已经交付使用以后对其进行修改,以纠正错误或改进性能和其他属性,使产品适应

18、改变了的环境。软件可维护性是指维护人员对该软件进行维护的难易程度,具体包括理解、改正、改动和改进软件的难易程度。2、软件维护的种类完善性维护:扩充原有系统的功能,提高系统的性能,提高软件运行的效率,满足用户的实际需要而进行的维护活动。 纠错性维护:对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程,称为纠错性维护。适应性维护:计算机的软、硬件环境,数据环境在不断的变化,使运行的软件能适应运行环境或者数据的变动而修改软件的过程称为适应性维护。预防性维护:为了进一步改善软件的可靠性和易维护性,或者为预见的将来软件运行和维护打下更好的基础

19、而对软件进行修改。第六和第七章、面向对象方法学与UML及UML的应用1、面向对象语言的特征封装、继承、多态2、面向对象方法的基本概念对象:一个对象代表了一个现实的或虚构的实体,定义一些属性和方法。类:具有相同数据和相同操作的一组相似对象的定义。类与类之间的关系:关联关系、继承关系、依赖关系、细化关系类的关联关系:类的一般-特殊关系:类的依赖关系 :依赖关系描述的是两个模型元素(类、用例等)之间的语义上的连接关系.类细化关系:是对同一事物不同抽象级别的两种描述。若元素B是对元素A的更详细的描述,则称元素B细化了元素A,或称元素A细化成元素B。 消息:消息,就是要求某个对象执行在定义它的那个类中所

20、定义的某个操作的规格说明。通常,一个消息由下述三部分组成:接收消息的对象;消息标识符(也称为消息名);输入信息和回答信息。封装:封装就是把对象的属性和方法结合成一个独立的单位,尽可能隐藏对象的内部细节。继承:某些类之间具有结构和行为特征的共性,广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。多态:在父类中定义的属性和服务为其子类继承后,可以具有相同的消息表现出不同的行为。3、UML建模图(P.127)注释 (a)/消息 (b)五类九种图:用例图:用于表示系统的功能,并指出各功能的操作者静态图:包括类图、对象图及包,表示系统的静态结构行为图:包括状态图和活动图,用于描述系统的

21、动态行为和对象之间的交互关系交互图:包括顺序图和合作图,用于描述系统的对象之间的动态合作关系实现图:包括构件图和配置图,用于描述系统的物理实现用例图:用例从外部参与者(用户)的角度描述系统的功能,主要元素有用例、执行者和通信联系,用例是一个类,代表一类功能,不是一个功能具体实现;执行者也是一个类类图和包:类的图标由类名、类的属性、类的操作三部分组成。类图就是由这些类框和表明类之间关联的连线所组成。 对象图:对象是类的一个实例,是具有具体值和行为的一个具体事物。对象有三种表示方式:对象名:类名;:类名;对象名。状态图:状态图(State Diagram)用来描述一个特定对象(通常指某一子系统)的

22、所有可能状态及引起其状态转移的事件。顺序图:用来描述在一个运行的系统中对象之间动态交互情况,并且这些交互要经历一定的时间。活动图:活动图是状态图的一种特殊情况。不需指明任何事件,只要动作被执行,活动图中的状态就自动开始转换。协作图:协作图用于描述系统中相互协作的对象之间的交互关系和关联链接关系。构件图:描述软件构件之间的相互依赖关系,它表达的是系统代码本身的结构。部署图:配置图用来描述计算机和设备,展示它们之间的连接,以及驻留在每台机器中的软件。用部署图描述使用金龙卡的饮食销售系统。画出短信系统的以下用例的的顺序图和基本类图用例脚本:1.发送短信用例:用户输入或读入发送内容;用户选择一个或多个

23、发送人员;系统将明文短消息编码转换成格式化的短消息串;系统以串口方式将短信串传入无线移动终端2.接收短信用例的场景描述:用户向串口发送指令从无线移动终端读取一组短消息串;系统将一组短信串分别解码转化成明文的短消息;系统将短消息写入数据库并显示给用户;3.人员维护的用例场景描述:用户添加一个新成员;用户更新一个成员信息;用户删除一个成员4.系统设置用例的场景描述:用户修改系统信息,如客服中心号码、端口号、延时;系统保存设置信息发送短信接收短信基本类图4、面向对象分析的目的、原则、完成模型面向对象分析的目的:是对客观世界的系统建立对象模型、动态模型和功能模型对象模型:描述系统组成。动态模型:描述系

24、统控制结构。功能模型:描述系统功能的。面向对象分析的原则:定义有实际意义的对象强调实体的本质、忽略无关的属性,模型的描述要规范、准确共享性封装性5、面向对象设计的内容、完成模型面向对象设计的内容:面向对象设计是把分析阶段得到的需求,转变成符合成本和质量要求的、抽象的系统实现方案。分为进行系统设计(总体设计)和对象设计(详细设计)。系统设计将系统分成几个子系统,建立系统的基本框架,每个子系统使用与面向对象分析一致的表示方法建立模型,可以说总体设计是逐渐扩充面向对象分析模型的过程;对象设计则针对每个子系统中的每个类的作用、类的内部构成(属性和服务)以及类之间关系进行清晰、具体的描述,使得在实现阶段

25、程序员根据该描述能很容易地转化成程序。6、面向对象的实现工作:编码与测试面向对象测试的目标与结构化软件测试的目标相同,都是为了找出软件开发中的错误,提高软件的质量。面向对象软件测试策略也是从组成系统的最小单元对象开始测试,然后对组成子系统的各个对象之间的协同关系进行测试,最后是整个系统的测试。7、软件重用的概念软件重用就是指在软件开发过程中重复利用已经存在的软件制品,包括代码、设计结构、模块实现、变换过程、规格说明、文档,用于构造新的软件系统。 第九章、软件工程管理1、软件工程管理的概念及内容软件工程管理是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。包括软

26、件工程经济学和软件管理学。软件工程管理的内容:软件开发成本、控制、开发人员、组织机构、用户、软件开发文档、软件质量等方面的管理。软件开发成本估算主要是软件规模时间、人员和经费。控制包括进度控制、人员控制、经费控制和质量控制。2、进度计划甘特(Gantt)图(P.190)优点:(1)任务分解成子任务(2)每个任务的开始时间(3)子任务之间的并行和串行缺点:(1)不能显式地描绘各项作业彼此间的依赖关系;(2)进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;工程网络图(P.191)3、软件质量的概念及衡量标准软件质量的定义:软件与明确地和隐含地定义的需求相一致的程度。衡量标准:功能性、可靠性、效率、易使用性、可维护性、可移植性4、软件配置的概念及任务软件配置:软件开发和运行过程中产生的的全部信息。分为三类:程序、文档、数据任务:标识变更、控制变更、配置审计、配置状态报5、软件工程标准化的概念及意义软件工程标准化:就是对软件生存期内所有开发、维护和管理工作都逐步建立起标准。可分为国际标准(ISO)、国家标准(GB)、行业标准(IEEE)、企业规范及项目规范五个等级。意义:提高软件的可靠性、可维护性和可移植性,因而可提高软件产品的质量提高软件生产率提高软件工作人员的技术水平改善软件开发人员之间的通信效率,较少差错有利于软件工程的管理有利于降低软件成本和缩短软件开发周期

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1