《软件工程综述.docx》由会员分享,可在线阅读,更多相关《软件工程综述.docx(21页珍藏版)》请在优知文库上搜索。
1、软件工程复习提纲第1章软件工程简介3软件是什么3第2章过程综述4软件工程定义4层次化4通用过程框架4第3章过程模型6多木中ii36第4章敏捷视角下B过程8敏捷宣言8第5章系统工程10第6章需求工程11质量功能布署(QFD)11分析模型的元素14第7章构建分析模型14第8章设计工程15第9章进行体系构造设计16体系构造风格的分类16第10章构件级设计建模17第Il章完毕顾客界面设计17黄金规则17第12章软件测试方略18软件测试需要计划和执行一系列的测试环节18第13章测试技术19两个不同样日勺测试用例设计技术19第14章产品度量20第1章软件工程简介软件是什么软件是形成配置的J一组术语或对象,
2、包括:程序(计算机程序):指令的集合,通过执行这些指令可以满足预期的特性、功能和性能需求数据构造:它使得程序可以充足运用信息文档:描述程序操作和使用B文档(图文资料)1. 举例阐明“意外效应法则”(IaWofUnintendedConSeqUenCeS)在计算机软件方面B应用。某些新科技的发明发明会给其他某些看似无关的技术领域、商业企业、公众甚至整个社会文化带来深远而出人意料的影响和作用。如:2. 用自己B语言描述保证通晓规律(TheLawofConservationofFamiliarity)质量衰减规律(TheLawofDecliningQuality)以及组织稳定性守恒规律(TheLaW
3、OfConservationofOrganizationalStability)。保证通晓性规律(1980):伴随E类型系统的J演化,所有有关人员(如开发人员、销售人员和顾客)都必须清晰地理解演化的内容和过程,以便抵达满意时演化效果。质量衰减规律(1996):假如没有严格的维护和适应性调整使之适应运行环境的变化,E类型系统日勺质量有衰减的趋势。组织稳定性守恒规律(1980):一种不停演化的E类型系统,其组织在全球范围内的平均有效活动率在产品的生命周期中是保持不变的。3. 在交付最终顾客之前,或者第1个版本投入使用之后,许多应用程序都会有频繁的变更。为防止变更引起软件失效,请提出某些有效的处理措
4、施。首先从心态上承认变化是必然的,我们可以通过在软件公布之前进行alpha,beta测试,运用迭代模式,在吸取测试过程中的经验之后,立即改善软件。同步保持和顾客的良好沟通,在提交顾客时进行合适培训,让顾客按照开发思绪进行试用,可以见减少因使用措施不妥引起0变化。第2章过程综述软件工程定义软件工程是:(1)将系统化、规范的、可量化的措施应用于软件的开发、运行和维护,即将工程化措施应用于软件。(2)在(1)中所述日勺措施B研究。层次化工具方法过程模型质量关注点软件工程层次图通用过程框架1.沟通(Communication)2.筹划(Planning)3.建模(Modeling)a)需求分析(Ana
5、lysisofrequirements)b)设计(DeSign)4 .构建(Construction)a)代码生成(COdegeneratiOn)b)测试(TeSting)5 .布署(Deployment)重点:1. Baetjer说过“软件过程为顾客和设计者之间、顾客和开发工具之间以及设计者和开发工具之间提供交互的途径技术。”设计下面问题“设计者应当问顾客的;顾客应当问设计者的;顾客对将要构建的软件H自问;设计者对于软件产品和建造该产品采用的软件过程B自问。(怎样获取需求)2. 为沟通活动设计一种任务集1 .识别重要客户和其他共利益者2 .与客户会谈环境无关日勺话题3 .写一页项目范围4 .
6、评审范围阐明5 .讨论项目大体的阶段6 .约定各个部门日勺代表,并使他们互相认识7 .为计划活动做准备3 .用自己的话描述过程框架。当我们谈到框架活动合用于所有的项目时,与否意味着对于不同样规模和复杂度的项目,可应用相似的工作任务?请解释。过程框架定义了若干小的框架活动,为完整的软件开发过程建立的基础,这些框架活动可以广泛用于所有B软件开发项目,无论这些项目0复杂性和规模怎样,此外,还包括某些合用于各个软件过程的普适性活动。虽然过程框架是普适性的,不过对于不同样规模和复杂度的项目不能应用相似的工作任务。首先在软件开发0不同样阶段,工作任务不同样。另首先不同样B软件项目有不同样日勺需求,有特殊的
7、背景,找不到一种通用日勺工作任务。4 .图21中,基于“质量关注点”指明了软件工程三个层次。这意味着在整个开发组织内采用质量管理活动,如“全面质量管理”。仔细研究,并列出全面质量管理活动中关键原则B大纲。第3章过程模型多种过程模型通例软件过程模型力图给软件开发带来秩序和构造。尽管每一老式过程模型都提议了一种不同样的过程流,但均实现了同样的一组通用框架活动:沟通、计划、建模、构建和布署。瀑布模型提议线性流程的框架活动,与软件世界里现代软件开发实际(持续的变更、演化日勺系统、紧迫的开发时间)不符;但瀑布模型确实合用于需求定义清晰且稳定的软件开发;增量软件过程模型通过一系列B增量公布产生软件。RAD
8、模型迅速应用程序开发,是为大型且必须在严格日勺时间内提交的项目而设计日勺;演化过程模型认识到大多数软件工程项目的迭代特性,其设计的目的是为了适应变更演化模型(如原型模型、螺旋模型),其迅速产生增量的工作产品(或是软件的工作版本),这些模型可以应用于所有的软件工程活动一一从概念开发到长期的J软件维护。基于构建的模型强调构件复用及组装。形式化措施模型倡导采用数学的措施进行软件开发和验证。面向方面的模型目的是处理跨整个软件体系构造的横切关注点;统一过程模型是一种“用例驱动、以体系构造为关键、迭代及增量”日勺软件过程框架,由UML措施和工具支持。统一过程是一种增量模型,定义了五个阶段:起始阶段:包括顾
9、客沟通和计划活动两个方面,强调定义和细化用例,并将其作为重要模型;细化阶段:包括顾客沟通和建模活动,重点是创立分析和设计模型,强调类的定义和体系构造出J体现;构建阶段:细化设计模型,并将设计模型转化为软件构建实现;转化阶段:将软件从开发人员传递给最终顾客,并由顾客完毕Beta测试和验收测试;生产阶段:持续地监控软件日勺运行,并提供技术支持。重点:1. 开发质量“足够好”的软件,其长处和缺陷是什么?当我们追求开发速度胜过产品质量的时候,会产生什么后果?我们总在质量和开发速度之间做取舍,开发质量“足够好”的软件,明显强调质量,长处是使软件符合或超过客户的预期,在性能上,交互上力图做到尽善尽美。缺陷
10、是忽视了开发成本,很轻易导致开发时间延期,影响软件工程后几种阶段B工作,对全局导致不利影响。2. 当沿着螺旋过程流发展B时候,你对正在开发或者维护B软件B见解是什么?在螺旋模式下,开发过程是迭代式日勺,采用循环的方式逐渐加深系统定义和实现的深度,同步减少风险。当软件交付使用后,螺旋模式没有停止,它将永远保持可操作性,每一圈完毕后都会计算成本,可以更好依J维护软件。3. 可以合用几种过程模型吗?假如可以,举例阐明。可以。几种过程模型,都是互相兼容可以互相扩展日勺,如螺旋模型结合了原型的迭代性质和瀑模型的系统性和可控性的特点。在详细项目实行中,对于某一部分可以合用几种过程模型,例如形式语言与自动机
11、演示软件在算法开发过程,就需要使用形式化措施模型,用严格的数学符号定义形式语言和自动机。尚有某些桌面应用程序0前台Ul部分,可以单独使用RAD模型,例如用delphi语言开发桌面窗体就是一种RAD实现。而其他部分可以使用其他如瀑布式模型等措施。第4章敏捷视角下的过程敏捷宣言 个体和交互胜过过程和工具(IndiVidUalSandinteractionsoverprocessesandtools) 可工作软件胜过宽泛的!文档(Workingsoftwareovercomprehensivedocumentation) 客户合作胜过协议谈判(CUStomercollaborationovercon
12、tractnegotiation) 响应变化胜过遵照计划(ReSPOndingtOehaIlgeoVerfolk)WingaPIan)重点:1. 与否每一种敏捷过程都可以用第2章所提及的通用框架性活动来描述?建一张表,将通用活动和每个敏捷过程所定义B活动对应起来。2. 用自己的语言描述(用于软件项目的)敏捷性?普遍存在0变化是敏捷0基本动力,敏捷需要有效日勺响应变化,它鼓励在共利益者之间进行更便利的沟通和协作,强调可运行软件的迅速交付。敏捷容许项目团体调整并合理安排任务,理解易变性并制定计划。精简并维持最基本的工作产品,强调增量交付,迅速提供可运行软件。3. 许多敏捷过程模型推荐面对面交流,实
13、际上,目前软件开发团体组员及其客户在地理上是分散的。你与否认为这意味着这种地理上的分散应当防止?能否想出一种措施克服这个问题。我认为这种地理上的分散是现实,是无法防止的。我认为可以分为客户和开发人员的分散,开发人员内部分散两种状况。对于第一种:产品经理需要同客户建立一条良好的通信信道,如通过email,即时聊天工具进行定期沟通。对于第二种:开发人员需定期组织交流,通过Webgroup消除地理上0分散。4. 为何需求变化这样大,人们究竟无法确定他们想要什么吗?我认为是这样的。其实需求是客户对他们心目中软件的一种描述,由于软件还没有实现,这种描述便是不确定B,模糊的。同步当今世界处在高速变化之中,
14、人们B需求会伴随环境B变化而变化。因此敏捷开发承认变化,认为普遍存在的变化是敏捷的基本动力。第5章系统工程在写下每行代码之前 理解所要处理日勺问题(详见沟通与建模) 理解基本日勺设计原则和概念 选择一种可以满足软件构建以及运行环境规定的编程语言 选择一种能提供工具以简化工作的编程环境 构件级编码完毕后进行单元测试系统工程层次图重点:1 .对你熟悉的系统、产品或服务,建立它们的层次系统。层次应当向下扩展到简朴系统要素(硬件、软件等),至少得到层次树的一种分支。即时聊天系统2 ,系统工程师由3种来源:系统开发人员、顾客或某些外部组织。讨论一下每种来源B利与弊。描述一种理想B系统工程师。3 .研究文
15、献并写出一篇简短文章描述建模和模拟工具是怎样工作的。或者是搜集两个或更多的商用建模或模拟工具B文献,并且比较它们的相似处与不同样处。第6章需求工程质量功能布署(QFD)是一种将客户规定转化成软件技术需求的技术。QFD“目B是最大程度地让客户从软件工程过程中感到满意”,并强调“什么是对客户有价值的”。确认三类需求:正常需求:反应了在和客户开会时确定日勺针对某产品或系统日勺目日勺。假如实现了这些需求,将满足客户(例如:所规定日勺图形显示类型、特定日勺系统功能以及已定义日勺性能级别)。期望需求:隐含在产品或系统中,并且也许是非常基础的以至于客户没有显式地阐明,但缺乏这些将导致客户明显不满(例如:易交互性、可操作性、可靠性、易安装等)。令人兴奋的需求:反应了客户期望之外B特点,但假如实现了这些特点,将会使客户非常满意。重点:1. 为如下活动之一开发一