软件工程期末复习_第1页
软件工程期末复习_第2页
软件工程期末复习_第3页
软件工程期末复习_第4页
软件工程期末复习_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、1.什么是软件工程?1968年,在德国召开的北大西洋公约组织会议上首次提出“软件工程”概念,希望用工程化的原则和方法来克服软件危机。2.软件危机的表现(5方面)(1) 对软件开发的成本估计不正确(2) 对软件开发的进度估计不准确(3) 软件产品质量不可靠(4) 软件可维护性差,软件的文档资料不完整和不合格(5) 软件开发生产率不高,不能满足软件生产的需要3. 常见的软件生命周期模型(4种)瀑布生命周期模型,迭代与递增模型,快速原型开发生命周期模型,螺旋生命周期模型4瀑布模型的各个阶段(6个阶段)软件计划,需求分析和定义,软件设计,软件实现,软件测试,软件运行和维护各个阶段的作用:分析阶段:弄清

2、楚软件系统需要做什么,有哪些功能设计阶段:对软件系统的体系结构,数据,构件,各模块的实现算法进行设计。编码阶段:使用程序设计语言,编写程序实现各模块测试阶段:验证各模块功能是否正确,模块间接口是否正确,软件硬件是否能协同工作,各项功能,性能是否符合需求。5. 瀑布模型是什么驱动的?分析和设计两个阶段的成果是什么?答:瀑布模型是文档驱动的,成果是:需求说明书(需求规约),设计说明书6. 软件开发流程:需求-分析-设计-实现7. 软件工程是通过科学知识和过程的实际应用,进行软件开发,运行,维护和停用的严格的系统化方法。8. 各生命周期模型的优点和缺点生命周期模型优点缺点瀑布生命周期模型纪律性强制方

3、法,文档驱动交付的产品可能不符合客户要求迭代与增量模型与现实世界软件开发最接近的模型,蕴含统一过程方法自始至终开发者和客户纠缠在一起,直到完全版出来螺旋模型风险驱动适合较小规模的开发项目敏捷开发模型迭代开发,更快得到用户/客户的反馈对开发团队人员的综合素质要求高9. 生命周期模型是对构建一个软件产品时的应完成的步骤的描述。10. 面向对象的三大特征:封装性,继承性,多态性封装是指把相关数据(属性)和这些数据的操作结合在一起,组成一个独立的对象。什么是多态?多态性是指同一个消息被不同的对象接收时,可产生不同的动作或执行结果。11. UML统一建模语言 RUP统一过程 USDP统一软件开发过程RU

4、P的三个基本特征(1)用例和风险驱动(2)以构架为中心(3)迭代和增量统一过程是需求驱动的12. 软件生命周期模型各个阶段的时间比例开发阶段:分析 30% 设计 25% 编码 30% 测试 15%维护阶段:五年-十年13. 统一过程的5个核心工作流:需求流,分析流,设计流,实现流,测试流;统一过程的4个阶段:开始阶段,细化阶段,构建阶段,转换阶段。14. 软件测试的阶段:单元测试,集成测试,系统测试,验收测试15. 什么是UML?UML是一种对面向对象系统进行可视化,详述,构造和文档化的统一建模语言,是一种直观化,明确化,构建和文档化软件系统产物的通用可视化建模语言。16. 4+1模型观五个视

5、角:用例视图,逻辑视图,构件视图,进程视图,配置视图逻辑视图 构件视图进程视图 配置视图用例视图 17. UML的四种关系关联,泛化,实现,依赖(“实”“依”“关”“泛”)18. 类图中,一个类包含哪三个部分?类名,属性,操作19. 类与类之间的关系有:20. 关联/泛化/依赖/实现,其中有一种特殊的表示整体部分关联,是聚合与组合。21. 聚合与组合有什么区别?聚合关系中的整体与部分,不具有相同的生命周期,例如班级与学生,组合关系中的整体和部分,具有相同生命周期,例如人与人的各部分。22. 用例图中的用例之间,有哪几种关系?(1) 泛化:如付款用例与现金付款父BA子用例指向父用例<<

6、;include>>BA(2) 包含:用图书馆信息管理用例包含新图书信息,修改图书信息用例(3) 扩展:还书用例扩展出交罚款用例<<extends>>交罚款还书23. 用例描述(使用模板)用例名称表明用户的意图或用例的用途标识符可选惟一标识符, 便于引用该用例用例描述概述用例的几句话参与者与此用例相关的参与者前置条件一个条件列表, 这些条件必须在访问用例前得到满足后置条件一个条件列表, 这些条件必须在用例完成之后得到满足基本操作流程描述用例中各项工作都顺利进行时用例的工作方式可选操作流程描述变异工作方式、出现异常或发生错误的情况下的路径24. 顺序图有几个元

7、素?对象,时间线,控制焦点(激活条),消息25. UML中,交互图包括哪两种?顺序图,协作图都能表示对象间的交互关系26. 在面向对象软件开发的业务建模,分析,设计,编码,测试5个阶段中是如何使用UML图的?(1) 业务建模:用对象图和类图表示目标软件系统所基于的应用领域中的概念与概念之间的关系;用活动图刻画领域中的工作流。(2) 分析:用活动图描述用例;用用例图表示参与者与用例之间,用例与用例之间的关系;用顺序图图形描述参与者和系统之间的系统事件。(3) 设计:用包图设计软件体系结构;用协作图或顺序图寻找参与用例实现的类及其职责;用类图描述这些类及其关系;状态图描述那些具有复杂生命周期行为的

8、类;用活动图描述复杂的算法过程和有多个对象参与的业务处理过程;用部署图描述硬件的拓扑结构以及软件和硬件的映射问题。(4) 实现:把设计得到的类转换成代码(5) 测试:单元测试使用类图和类的规格说明;集成测试使用构件图和协作图,用用例图和用例文本描述来确认系统的行为是否符合这些图中的定义。27. 类图:画出某个用例(功能)的设计类图,要求能体现软件架构28. 顺序图:能画出某个用例(功能)的顺序图,根据类图,能体现软件体系架构29. 衡量模块独立性的两个指标:内聚度,耦合度好的模块独立性:高内聚,低耦合30. 复用的两种方式:继承,组合,优先使用组合31. 五大设计原则,以及各原则的内涵(1)

9、单一职责原则职责单一不要存在多于一个导致变更的原因,即一个类只负责一个职责(2)封闭原则开闭原则是指类、模块、方法是可以扩展的,但不可以修改(3) 里氏替换原则不要破坏继承体系子类可以实现父类的抽象方法,但不可以覆盖(4)依赖倒置原则要面向接口编程高层模式不应该依赖底层模块,两者都应该依赖抽象,(5) 接口隔离原则设计接口时要精简单一客户端不应该依赖他不需要的原则,一个类对另一个类的依赖应该建立在最小接口上32. 讲过的设计模式(1) 单例模式定义:它保证一个类有且仅有一个实例,并提供一个访问它的全局访问点。适用场合:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时;当这个唯一的实

10、例是通过子类化可扩展的,并且客户无须更改代码就能使用一个扩展的实例。类图:代码:public class SingletonClass    private static SingletonClass instance=null;    public staticsynchronizedSingletonClass getInstance()         

11、;   if(instance=null)                       instance=new SingletonClass();               &

12、#160;return instance;        private SingletonClass()    (2) 适配器模式定义:将一个类的接口转换成客户希望的另一个接口适用场合:1、已经存在的类的接口不符合我们的需求;2、创建一个可以复用的类,使得该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作;3、在不对每一个都进行子类化以匹配它们的接口的情况下,使用一些已经存在的子类。类图:类适配器模式对象适配器模式代码:类适配

13、器:/ 已存在的、具有特殊功能、但不符合我们既有的标准接口的类class Adaptee public void specificRequest() System.out.println("被适配类具有 特殊功能.");/ 目标接口,或称为标准接口interface Target public void request();/ 具体目标类,只提供普通功能class ConcreteTarget implements Target public void request() System.out.println("普通类 具有 普通功能."); 

14、/ 适配器类,继承了被适配类,同时实现标准接口class Adapter extends Adaptee implements Targetpublic void request() super.specificRequest(); / 测试类public class Client public static void main(String args) / 使用普通功能类Target concreteTarget = new ConcreteTarget();concreteTarget.request();/ 使用特殊功能类,即适配类Target adapter = new Ad

15、apter();adapter.request();对象适配器:/ 适配器类,直接关联被适配类,同时实现标准接口class Adapter implements Target/ 直接关联被适配类private Adaptee adaptee;/ 可以通过构造函数传入具体需要适配的被适配类对象public Adapter (Adaptee adaptee) this.adaptee = adaptee;public void request() / 这里是使用委托的方式完成特殊功能this.adaptee.specificRequest();/ 测试类public class Client pu

16、blic static void main(String args) / 使用普通功能类Target concreteTarget = new ConcreteTarget();concreteTarget.request();/ 使用特殊功能类,即适配类,/ 需要先创建一个被适配类的对象作为参数Target adapter = new Adapter(new Adaptee();adapter.request();(3)工厂模式:定义:创建实例,代替new方法进行实例化;封装实例的创建过程。三种形式:简单工厂,工厂方法,抽象工厂适用场合:1.类不知道自己要创建哪一个对象2.类用它的子类来指定

17、创建哪个对象3.客户需要清楚创建了哪一个对象(4)观察者模式定义:定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。适用场合:1、 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。 2、 对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。 类图:(5) 策略模式定义:定义了一系列算法,把他们一个个封装起来,并使他们可以相互替换适用场合:1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。3、 对客户隐藏具体策略(算法)的实现细节,彼此完全独立。类图:(6)装饰者模式定义:动态的给一个对象添加一些额外的职责,这种添加不是通过继承实现的,而是通过组合。适用场合:为了软件新增新的功能操作类图:33. 设计模式重用的是设计经验,而不是代码34. CMM 能力成熟度模型(5个等级)初始级:最低级别,有效的管理方法在本质上没有获得使用。可重复性级:建立管理软件项目的方针以及贯彻执行这些方针的措施。已定义级:将管理和工程活动两个方

温馨提示

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

评论

0/150

提交评论