软件工程复习知识点_第1页
软件工程复习知识点_第2页
软件工程复习知识点_第3页
软件工程复习知识点_第4页
全文预览已结束

下载本文档

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

文档简介

概论软件的特点:(1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。(2)软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。(3)软件的使用没有硬件那样的机械磨损和老化问题。软件的分类:系统软件,居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用;支撑软件,支撑软件的开发和维护;应用软件,特定应用领域的专用软件。软件工程定义:(1)将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;(2)在(1)中所述方法的研究。软件工程框架:目标、过程和原则。目标指生产具有正确性、可用性和开销合宜的产品;过程指生产一个最终满足需求且达到工程目标的软件产品所需要的步骤;原则为选择适宜的开发模型、采用合适的设计方法、提供高质量的工程支撑、重视软件工程的管理。软件生存周期:软件产品或软件系统从产生、投入使用到被淘汰的全过程。大致分为六阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。能力成熟度模型CMM五个等级:初始级、可重复级、已定义级、已管理级、优化级。常见模型优缺点:螺旋模型:螺旋模型是将瀑布模型与原型模型结合起来,加入风险分析环节,是一种风险驱动模型。包括4个工作步骤:1)需求定义、2)风险分析、3)工程实现、4)评审。瀑布模型:瀑布模型是将软件生存周期各活动规定为以线性顺序连接的若干阶段的模型;强调阶段的严格顺序和每一阶段的严格性。前一阶段的输出是后一阶段的输入;每阶段要进行文档的复审与确认。增量模型:融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征,强调每一个增量都发布一个可运行的产品,能有计划地管理技术风险;喷泉模型:一种支持面向对象开发的模型,体现迭代和无间隙特征;基于构件的开发模型:支持复用;形式化方法模型:建立在严格数学基础上;Agile方法的价值观:个人和交互高于过程和工具;可运行软件高于详尽的文档;与客户协作高于合同(契约)谈判;对变更及时做出反应高于遵循计划。XP方法的4个价值观:交流、简单、反馈、勇气。XP方法的12个核心实践:完整的团队、计划对策、系统比喻、小发布、测试、简单设计、结对编程、设计改进、持续集成、代码全体共有、编码标准、可持续步调。系统工程组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程。系统工程的任务:识别用户的要求,系统建模和模拟,成本估算及进度安排,可行性分析,生成系统规格说明。可行性分析:经济可行性(成本,效益,货币的时间价值,投资回收期,纯收入);技术可行性(风险分析,资源分析,技术分析);法律可行性;方案的选择和折中。需求工程1.六阶段:需求获取,需求分析与协商,系统建模,需求规约,需求验证,需求管理。设计工程结构化程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连结,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。耦合:模块之间的相对独立性(互相连接的紧密程度)的度量内聚:一个模块内部各个元素彼此结合的紧密程度的度量结构化分析与设计结构化分析步骤:(1)理解当前的现实环境,获得当前系统的具体模型(物理模型)(2)从当前系统的具体模型抽象出当前系统的逻辑模型(3)分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型(4)为目标系统的逻辑模型作补充。数据字典:模型的核心,它包含了软件使用和产生所有数据的描述。数据流图(DFD)基本元素:数据流、加工、文件、源或宿。数据字典字典条目种类:数据流、文件、数据项、加工、源或宿。结构化设计步骤:建立初始结构图、对结构图进行改进、书写设计文档、设计评审。面向对象的分析与设计分析(OOA)步骤:(1)获取客户对系统的需求(2)用基本的呃需求为指南来选择类和对象(3)定义类的结构和层次(4)建造对象关系模型(5)建造对象行为模型(6)利用用况/场景来复审分析模型。设计(OOD)步骤:系统设计,对象设计,消息设计,复审。人机界面设计界面风格:第一代,命令和询问方式的界面;第二代,简单的菜单式界面;第三代,窗口、图标、菜单、指示器四位一体的界面;第四代,第三代界面与超文本、多任务概念相结合的界面,用户可同时执行多个任务。人机界面分类:语言界面,图形用户界面,直接操纵用户界面,多媒体用户界面,多通道用户界面。人机界面设计过程:用户、任务和环境分析及建模;界面设计;界面构造;界面确认。黄金原则:让用户拥有控制权,减少用户记忆负担,保持界面一致。软件测试白盒测试:(又称结构测试)对软件的过程性细节做仔细的检查;把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。白盒测试包括:(1)程序模块中的所有独立路径至少执行一次(2)对所有逻辑判定的取值(“真”与“假”)都至少测试一次(3)在上下边界及可操作范围内运行所有循环(4)测试内部数据结构的有效性等。黑盒测试:(又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。黑盒测试试图发现以下类型的错误:不正确或遗漏的功能;接口错误,如输入/输出参数的个数、类型等;数据结构错误或外部信息(如外部数据库)访问错误;性能错误;初始化和终止错误。常用白盒测试方法:逻辑覆盖测试、基本路经测试、数据流测试和循环测试。V模型:描述软件开发各阶段与测试策略之间的对应关系系统工程系统工程需求分析设计编码系统测试确认测试集成测试单元测试α测试:由一个用户在开发者的场所进行的,软件在开发者对用户的“指导下”进行测试。经α测试后的软件称为β版软件.β测试:由软件的最终用户在一个或多个用户场所进行的,与α测试不同,开发者通常不在测试现场,因此,β测试是软件在一个开发者不能控制的环境中的“活的”应用,用户记录所有在β测试中遇到的(真正的或想象的)问题,并定期把这些问题报告给开发者,在接到β测试的问题报告后,开发者对软件进行最后的修改,然后着手准备向所有的用户发布最终的软件产品。主要调试方法:蛮力法、回溯法、原因排除法。蛮力法:一种最省脑筋但又最低效的方法。它通过在程序中设置断点,输出寄存器、存储器的内容,打印有关变量的值等手段,获取大量现场信息,从中找出错误的原因。回溯法:从错误的征兆出发,人工沿着控制流程往回跟踪,直至发现错误的根源。这种方法适用于小型程序,对大型程序,由于回溯的路径太多,难以彻底回溯。原因排除法:又可分为归纳法和演绎法。(1)归纳法是一种从特殊推断一般的系统化思考方法。其基本思想是:从一些线索(错误征兆)着手,通过分析它们之间的关系来找出错误的原因。(2)演绎法从一般原理或前提出发,假设所有可能出错的原因,排除不可能正确的假设,最后推导出结论。软件维护与再工程软件维护:指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程。软件维护分类:纠错性维护、适应性维护、改善性维护和预防性维护。逆向工程:指在软件生存周期中,将软件的某种形式描述转换成更抽象形式的活动。重构:在同一抽象级别上转换系统的描述形式。如把C++程序转换成Java程序。设计恢复:指借助工具从已有程序中抽象出有关数据结构设计、总体结构设计和过程设计的信息。再工程:在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。再工程的主要目的:为遗留系统转化为可演化系统提供一条现实可行的途径。软件项目管理软件项目管理:指软件生存周期中软件管理者所进行的一系列活动。项目管理目的:在一定的时间和预设范围内,有效地利用人力、资源、技术和工具,使软件系统或软件产品按原定计划和质量要求如期完成。项目管理的关注点:4P:人员、产品、过程、项目。项目管理中五类人员:项目管理人员、高级管理人员、开发人员、客户、最终用户。软件度量分类:第一种分类:面向规模的度量、面向功能的度量、面向人的度量。第二种分类:软件生产率度量、软件质量度量、技术度量。计算功能点FP:FP=CT*(0.65+0.01*F)软件质量要素:正确性、可靠性、效率、完整性、可用性、可维护性、灵活性、可测试性、可移植性、可复用性、可互操作性。程序复杂性度量原则:(1)程序理解的难度(2)纠错、维护程序的难度(3)向他人解释程序的难度(4)按指定方法修改程序的难度(5)根据设计文件编写程序的工作量(6)执行程序时需要资源的程度。McCabe环形复杂度度量V(G)=e-n+p(e弧数n结点数p强连通分量个数)V(G)=e-n+2。基本CoCoMo模型:E=aLbD=cEdE表示工作量,单位是人月;D表示开发时间,单位是月;L是项目的源代码行估计值,单位是千行代码;a、b、c、d是常数。Putnam模型:L=CK(E1/3)(td4/3)。L表示源程序代码行数(LOC)td表示开发持续时间(年)E是包括软件开发和维护在整个生存期所花费的工作量(人年)CK表示技术状态常数,其值依赖于开发环境:2000,8000,11000软件项目管理过程示例:名词解释:1.SOA模式面向服务的体系结构(SOA)是一种用于构建分布式系统的方法,其中服务指是一种封装成实现某种软件功能的可重用构件,其通常表现为一组方法的集合(2分)。采用SOA这种方法构建的分布式应用程序可以将功能作为服务交付给终端用户,也可以构建其他的服务(1分)。2.工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类(2分)。FactoryMethod使一个类的实例化延迟到其子类(1分)。3.软件危机:六十年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,由于软件生产的复杂性和高成本,使大型软件的生产出现了很大的困难,即出现软件危机。软件工程正是为克服软件危机而提出的一种概念,并在实践中不断地探索其原理、技术和方法。简答题部分1软件设计的基本原理有哪些?抽象与逐步求精,模块化,信息隐藏,模块独立。2快速原型法有什么优缺点?主要用于什么场合?原型是预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型。可用于探索和实验,使用后可丢弃,然后根据探索或实验的结果用良好的结构和设计思想重新设计目标系统;用于演化,最终得到目标系统。5调试的目的是什么?调试有哪些基本的方法?目的:确定错误的原因和准确位置,并加以纠正。主要调试方法:蛮力法、回溯法、原因排除法。6CASE工具在软件工程中有什么作用?分类列举常用的CASE工具。用来辅助计算机软件的开发、运行、维护、管理、支持过程中的活动或任务开发过程:需求分析工具,设计工具,编码工具,测试工具维护过程:版本控制工具,文档分析工具,逆向工程工具,再工程工具管理过程:项目管理工具,配置管理工具,软件评价工具应用类工具1软件工程包括哪三要素?简要说明它们之间的关系。方法、工具和过程。16.可行性研究包括哪几方面的内容?答:可行性研究内容包括:(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;通常包括:开发的风险、资源的有效性、技术(2)经济可行性:经济效益是否超出开发成本;(3)操作可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。17.什么是面向对象方法学?面向对象方法的要点和主要优点。答:面向对象方法学是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合,应该使解空间对象与问题空间对象尽可能一致。面向对象方法不是把程序看作是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合。(2分)面向对象方法的要点与主要优点是:(1)以数据为中心:围绕数据协调处理,不设置与数据无关的操作;(2)对象是生动的:进行处理的主体;(3)实现了数据封装:将数据封装在盒子中,对外是隐藏的、不可见的;(4)本质上具有并行性;(5)模块独立性好。(3分)18.UML软件分析方法的特点及主要建模视图。答:统一建模语言UML是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。UML标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。它是为支持大部分现存的面向对象开发过程而设计的。(2分)UML建模视图被划分成三个视图域:结构分类、动态行为和模型管理。(1)结构分类描述了系统中的结构成员及其相互关系。类元包括类、用例、构件和节点。类元为研究系统动态行为奠定了基础。类元视图包括静态视图、用例视图和实现视图。(2)动态行为描述了系统随时间变化的行为。行为用从静态视图中抽取的瞬间值的变化来描述。动态行为视图包括状态机视图、活动视图和交互视图。(3)模型管理说明了模型的分层组织结构。包是模型的基本组织单元。特殊的包还包括模型和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。(3分)19.请简述CMM分为哪几个等级?其中已管理级(Managed)具有哪些特征?答:CMM(CapabilityMaturityModelForSoftware软件生产能力成熟度模型,以下简称“CMM”),是1987年由美国卡内基梅隆大学软件工程研究所研究出的一种用于评价软件承包商能力并帮助改善软件质量的方法。(1分)CMM标准共分五级。其中,五级为最高级,即优化级;四级称为已管理级;三级为已定义级,即过程实现标准化;二级为可重复级;一级为初始级。(2分)已管理级(Managed)具有如下特征:产品和过程已建立了定量的质量目标;过程中活动的生产率和质量是可度量的;已建立过程数据库;已实现项目产品和过程的控制;可预测过程和产

温馨提示

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

评论

0/150

提交评论