面向对象软件工程知识点

面向对象软件工程知识点 

1.封装是指把对象的(A)结合在一起,组成一个独立的对象。

A.属性和操作 B.信息流 C.消息和事件 D.数据的集合

2.状态图和活动图建立了UML面向对象开发过程中的对象动态(B)模型。

A.交互      B.状态       C.体系结构     D.软件复用

3.UML的(C)模型图由活动图、顺序图、状态图和合作图组成。

A.用例 B.静态
C.动态 D.系统

4.在UML的需求分析建模中,对用例模型中的用例进行细化说明应使用(A)。

A.活动图     B.状态图       C.配置图    D.构建图

5.设计模式就是对(D)的描述或解决方案,往往直接对应一段程序代码。

A.某个构件 B.成熟的设计 C.一个用例
D.特定问题

6.类和对象都有属性,它们的差别是:类描述了属性的类型,而对象的属性必须有(C)。

A.正负号        B.动作            C.具体值          D.私有成员

7.顺序图的模型元素有(A)、消息、生存线、激活期等,这些模型元素表示某个用例中的若干个对象和对象之间所传递的消息,来对系统的行为建模。

A.对象        B.箭头        C.活动        D.状态

8.状态图可以表现(B)在生存期的行为、所经历的状态序列、引起状态转移的事件以及因状态转移而引起的动作。

A.一组对象      B.一个对象       C.多个执行者      D.几个子系统

9.使得在多个类中能够定义同一个操作或属性名,并在每一个类中有不同的实现的一种方法是(B)。

A.继承
B.多态性 C.约束 D.接口

 

二.面向对象软件工程概述_2

1.封装是指把对象的(A)结合在一起,组成一个独立的对象。

A.属性和操作 B.信息流

C.消息和事件 D.数据的集合

2.类和对象都有属性,它们的差别是:类描述了属性的类型,而对象的属性必须有(C)。

A.正负号     B.动作       C.具体值        D.私有成员

3.在下列软件生存周期模型中,规定了由前至后、相互衔接的固定次序的模型是(A)。

A.瀑布模型   B.增量模型     C.喷泉模型    D.螺旋模型

4.使得在多个类中能够定义同一个操作或属性名,并在每一个类中有不同的实现的一种方法是(B)。

A.继承
B.多态性 C.约束 D.接口

5.下列关于面向对象的分析与设计的描述,正确的是(B)。

A.面向对象设计描述软件要做什么

B.面向对象分析不需要考虑技术和实现层面的细节

C.面向对象分析的输入是面向对象设计的结果

D.面向对象设计的结果是简单的分析模型

6.通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中类成员访问限定性(D)

A.Public  B.Protected C.Private
D.friendly

7.一个对象和另一个对象之间,通过消息来进行通信。消息通信在面向对象的语言中即(B)

A.方法实现   B.方法调用
  C.方法嵌套 D.方法定义

8.(C)不是软件需求规格说明书中应包括的内容。

A.功能需求    B.性能需求      C 数据结构      D 验收标准

9.软件复用技术的目的是降低软件(C)、提高软件开发的效率和缩短软件开发周期。

A.技术难度 B.资源浪费
C.开发和维护的成本 D.代价

10.面向对象方法中(D)机制是子类可以自动拥有父类的全部操作。

A.约束 B.对象映射 C.信息隐藏
D.继承

11.在UML中面向对象的概念有很多,下列哪个不是(D)

A.抽象 B.继承 C.封装
D.线程

12.在软件的需求分析中,开发人员要通过用户解决的最重要的问题是(A)。

A.要让软件做什么  B.要给该软件提供哪些信息

C.要求软件达到的工作效率为多大

D.要使软件具有何种结构

13.下列关于面向对象的分析与设计的说法中,不正确的是(B)。

A.面向对象分析侧重于理解问题        

B.面向对象设计不需要考虑技术和实现层面的细节

C.面向对象分析描述软件要做什么   

D.面向对象设计侧重于理解解决方案

14.内聚性和耦合性是度量软件模块独立性的重要准则,进行软件设计时应力求(B)

A.高内聚、高耦合     
B.高内聚、低耦合   

C.低内聚、高耦合        D.低内聚、低耦合

15.软件构件是已经通过全面测试并在(A)中运行的可复用、功能独立、完整且具有通用性的程序模块。

A.实际系统      B.试验室

C.系统测试        D.用户测试

16.在软件开发中,下面不属于设计阶段的任务的是(B)。

A.定义模型算法          B.定义需求并建立系统模型

C.数据结构设计          D.给出系统模块结构

17.软件的集成测试工作最好由(D)承担,以提高集成测试的效果。

A.该软件的设计人员          B.该软件开发组的负责人

C.该软件的编程人员       

D.不属于该软件开发组的软件设计人员

18.一个对象和另一个对象之间,通过消息来进行通信。消息通信在面向对象的语言中即(B)

A.方法实现
B.方法调用 C.方法嵌套 D.方法定义

 

 

1.软件由 程序 、数据、 文档  三部分组成。

2.在UML软件开发过程的系统分析阶段,产生的对象模型有三种分别为对象的 静态 模型、对象的  动态 模型和对象的 系统功能 模型。

3. 软件工程 是指导计算机软件开发和维护的一门工程学科。

4.软件工程包括3个要素:方法、 工具  、过程。

 

 

一.简述面向对象系统开发过程。

 

1.面向对象的分析(OOA)

2.面向对象的设计(OOD)(高层设计和类设计)

3.面向对象实现与测试

4.维护阶段

 

二.什么叫软件生命周期,可将软件生命周期分为哪3个时期,每个时期又包含哪些阶段?

 

1.一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个时期称为软件生命周期 。

2.由软件定义、软件开发和运行维护三个时期组成。

 

3.问题定义,可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试,软件维护。(包含关系的话自己画一下,留空了)

 

三.简述面向对象方法的优点。

 

1.与人类习惯的思维方法一致(渐进的认识过程、抽象、归纳、演绎)。

2.稳定性好

3.可重用性好

4.较易开发大型软件产品

5.可维护性好(稳定性、容易修改、容易理解)

 

四.面向对象方法学的4个要点是什么?

 

面向对象方法=对象+类+继承+消息  

(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。

(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。

(3)按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。

(4)对象彼此之间仅能通过传递消息互相联系。

 

 

三. UML-4

 

1.状态图和活动图建立了UML面向对象开发过程中的对象动态(B)模型。

A.交互      B.状态       C.体系结构     D.软件复用

2.UML的(C)模型图由活动图、顺序图、状态图和合作图组成。

A.用例 B.静态
C.动态 D.系统

3.顺序图的模型元素有(A)、消息、生存线、激活期等,这些模型元素表示某个用例中的若干个对象和对象之间所传递的消息,来对系统的行为建模。

A.对象     B.箭头        C.活动        D.状态

4.在UML的需求分析建模中,对用例模型中的用例进行细化说明应使用(A)。

A.活动图     B.状态图      C.配置图   D.构件图

5.状态图可以表现(B)在生存期的行为、所经历的状态序列、引起状态转移的事件以及因状态转移而引起的动作。

A.一组对象    B.一个对象  C.多个执行者   D.几个子系统

6.UML中,用例图展示了外部Actor与系统所提供的用例之间的链接,UML中的外部Actor是指(D)

A.人员 B.单位   C.人员和单位
D.人员和外部系统

7.UML的(B)模型图由类图、对象图、包图、构件图和部署图组成。

A.用例
B.静态 C.动态 D.系统

8.(A)模型是开发者与客户交流的纽带。

A.用例      B.类          C 状态         D 交互

9.自行车是一种交通工具,自行车和交通工具之间的关系是(D)

A.组合 B.关联    C.依赖      D.泛化

10.UML的系统分析进一步要确立三个系统模型是(D)、对象动态模型和系统功能模型。

A.数据模型        B.体系结构模型

C.对象关系模型    D.对象静态模型

11.下面(C)不是类图中类与类之间的关系。

A.依赖关系      B.关联关系

C.扩展关系    D.泛化关系

12.类图中关联的重数是指(B)。

A.一个类有多个方法被另一个类调用。

B.一个类的实例能够与另一个类的多个实例相关联。

C.一个类的某个方法被另一个类调用的次数。

D.两个类所具有的相同的方法和属性。

13.一个(C)迁移图符可以有多个目标状态,它们可以把一个控制分解为并行运行的并发线程,或将多个并发线程接合成单个线程。

A.状态      B.对象      C.活动      D.同步并发

14.UML客户需求分析产生的用例模型描述了系统的(D)。

A.状态     B.体系结构   C.静态模型     D.功能要求

15.UML的系统分析进一步要确立的三个系统模型是(B)、对象动态模型和系统功能模型。

A.数据模型
B.对象静态模型     C.对象关系模型    D.体系结构模型

16.(C)不是用例图的主要成分。

A.用例        B. 执行者         C.状态      D.系统

17.UseCase用来描述系统在事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是(C)关系。

A.聚集(aggregation )B.扩展(extend)

C.包含(include)    D.分类(classification)

18.顺序图描述(D)对象之间消息的传递顺序。

A.某个  B.单个    C.一个类产生的       D.一组

19.状态图描述一个对象在不同(A)的驱动下发生的状态迁移。

A.事件      B.对象      C.执行者      D.数据

20.顺序图和合作图建立了UML面向对象开发过程中的对象动态(B)模型。

A.交互
  B体系结构   C.软件复用        D.状态

21.活动图中动作状态之间的迁移不是靠(B)触发的,当活动(动作)状态中的活动完成时迁移就被触发。

A.对象      B.事件       C.执行者     D.系统

22.下列关于状态图的说法中,正确的是(B)。

A.状态图是UML中对系统的静态方面进行建模的五种图之一。

B.状态图是活动图的一个特例,状态图中的多数状态是活动状态。

C.活动图和状态图是对一个对象的生命周期进行建模,描述对象随时间变化的行为。

D.状态图强调对有几个对象参与的活动过程建模,活动图更强调对单个反应型对象建模。

 

1.   组合  是指“整体”拥有它的“部分”,它具有强的物主身份,表示事物的整体/部分关系较强的情况,整体不存在了部分也会随之消失。

2.活动图既可以描述对象的动态行为,还可以用来描述   用例
     

3.用例模型中的执行者可以是 人员   也可以是 外部系统   。

4.  顺序   图和  合作   图用来表达对象之间的交互,是描述一组对象如何合作完成某个行为的模型化工具。

5.用例图中以实线方框表示系统的范围和边界,在系统边界内描述的是 用例  ,在边界外面描述的是  执行者
  

6.软件构件分为  源代码  构件、 二进制 构件和  可执行 构件。

7.交互模型描述系统中对象间的交互行为。每一个交互都有  (发送者)   和  (接收者)    ,它们可以是整个系统、一个子系统、一个用例、一个对象类或一个操作。

8.活动图中活动状态的迁移不是由事件进行触发,一个活动执行完毕
         自动 进入 下一个 活动状态。

 

1.简述系统动态建模包括哪些模型。

 

交换模型和状态模型

 

2.简述用例建模的步骤。

 

(1)定义系统的边界和范围

(2)寻找和确定系统的执行者

(3)寻找和确定用例

(4)对用例进行描述

(5)定义用例之间的关系

(6)审核用例模型

 

3.聚集和组合是关联的特例。聚集表示类与类之间的关系是整体和部分的关系。请分别举一组合聚合和组合的例子,并使用类图中的符号表示出来,并用代码实现。

(1)聚合

 

 

(2)组合

 

 

4.对于交通信号灯,每次红灯只持续30秒,然后绿灯亮。绿灯持续25秒,黄灯亮。黄灯闪烁5秒后红灯再一次亮。请用状态图描述信号灯。

                    

 

四.面向对象设计模式-2

 

1.设计模式就是对(D)的描述或解决方案,往往直接对应一段程序代码。

A.某个构件 B.成熟的设计

C.一个用例
D.特定问题

2.(C)是指以设计复用为目的,采用一种良好定义、正规的、一致的方式记录的软件设计经验。

A.架构 B.模型    C.设计模式 D.一个对象成员

3.软件复用是面向对象系统分析与设计的核心支持技术之一,软件复用的核心是(D)。

A.对象类 B.模块 C.设计模式     D.软件构件技术

4.(C)是在不改变代码外在行为的前提下,对代码做出修改,以改进程序内部结构。

A.版本控制    B.代码调式
C.代码重构    D.代码走查

5.(B)不是敏捷软件开发所突出强调的。

A.个体和交互 B.面面俱到的文档  C.客户合作  D 响应变化

6.设计模式的作用不包括(C)。

A.优化的设计经验  B.极高的复用性  C.极高的耦合度  D.丰富的表达能力

7.设计模式在面向对象系统设计中是(D)的一种形式。

A.软件调用   B.设计方法   C.子系统       D.软件复用

8.设计模式的作用不包括(C)。

A.优化的设计经验     B.极高的复用性

 C.极高的耦合度     D.丰富的表达能力

9.关于工厂模式下列说法正确的是(C)。

A.当面临一系列相互依赖的对象的创建工作时使用工厂方法模式较适合。

B.当面临一系列相互依赖的对象的创建工作时使用简单工厂模式较适合。

C.当面临一系列相互依赖的对象的创建工作时使用抽象工厂模式较适合。

D.以上都不对

10.一个设计模式的基本要素不包括(D)。

A.模式名称      B.问题     C.解决方案        D. 程序代码

11.(B)不是敏捷软件开发所突出强调的。

A.个体和交互     B.面面俱到的文档 

 C.客户合作       D 响应变化

12.(D)不是好的极限编程实践。

A.客户作为团队成员    B.短交付周期

 C.结对编程    D.极高的开发速度

13.对依赖倒置原则(DIP)的理解,(A)是错误的。

A.高层模块调用低层模块,从而产生依赖

 B.低层模块应该依赖于抽象   C .抽象不应该依赖于细节        

 D .细节应该依赖于抽象

14.(A)模式属于创建型设计模式。

A.抽象工厂     B.适配器     C.代理      D.策略

15.在面向对象设计中,设计模式是系统(B)的基础,正确的使用设计模式,有助于快速开发出可复用的系统。

A.分析
B.可复用 C.设计 D.实现(编程)

16.设计模式( B)具体的编程语言。

A.依赖于
B.独立于       C.依附于    D.指定了

 

 

1. 单例
模式属于对象创建型模式,它保证一个类仅有一个实例。

2.设计模式按照模式的目的将其分为创建型、  结构型
   
  行为型    。这三种类型的设计模式,分别描述了对象在创建、组合以及以及相互作用的过程中如何降低它们之间的耦合性、提高复用性的种种方案。

3.  重构  是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

4. 命令  模式的动机是将调用操作的对象与知道如何实现该操作的对象解耦。

5.创建型模式就是描述怎么创建一个 对象 ,它隐藏了其创建的具体细节,使程序代码不依赖具体的对象。

6.行为型模式就是描述算法以及对象之间的 职责
分配

 

 

1.简述面向对象设计原则有哪些?

 

(1)单一职责原则

(2)开闭原则

(3)里氏代换原则

(4)依赖倒转原则

(5)接口隔离原则

(6)合成复用原则

(7)迪米特法则

 

2.简述什么是面向对象设计模式及抽象工厂模式的意图。

(1)面向对象软件开发领域中,设计模式包括一些规则来完成一定任务。设计模式针对一些特定的问题,提出一种解决方案。

(2)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

 

3.简述观察者模式的动机和意图。

 

    意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。

    动机:在软件构建过程中,我们需要为某些对象建立一种"通知依赖关系"。一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好的抵御变化。

使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。

 

4.简述适配器模式的动机和意图。

 

    意图:将一个类的接口转换成客户希望的另外一个接口,使得原本由于 接口不兼容而不能一起工作的那些类可以一起工作。

    动机:在软件系统中,由于应用环境的变化,常常要将一些显存的对象放在新的环境中应用,但是新环境要求的接口是这些显存对象所不满足的。

 

 

 

五.极限编程和RUP(新)

 

1.(B)不是敏捷软件开发所突出强调的。

A.个体和交互    B.面面俱到的文档      C.客户合作      D. 响应变化

2.(B)不是敏捷软件开发应该遵循的原则。

A.软件交付的时间间隔从几周到几个月,越短越好
 B.开发后期,应尽量避免变化

C.尽早的、持续的交付有价值的软件             D.业务人员和开发人员一起工作

3.(D)不是好的极限编程实践。

A.客户作为团队成员  B.短交付周期  C.结对编程  D.极高的开发速度

 

1.极限编程是以测试开始的,测试程序优先设计,测试成为开发的基准,      测试驱动开发也就是客户的需求驱动软件的开发。

 

1.极限编程有哪些最佳实践?

 

需求方面(客户故事和客户全程参与)

设计方面(简单设计)

测试方面(测试驱动开发)

编码方面(最佳实践1:代码重构

       最佳实践2:结对编程

       最佳实践3:集体代码所有权

       最佳实践4:强调编码标准)

项目管理方面(最佳实践1:持续集成

             最佳实践2:短期交付

             最佳实践3:可持续的开发速度

             最佳实践4:系统隐喻

             最佳实践5:计划游戏

             最佳实践6:完整的团队)

 

2.试对极限编程和RUP进行比较。

 

(1)敏捷开发与RUP相比裁剪了很多内容。

(2)敏捷过程中客户的位置与作用是重要的,不可替代。

(3)在RUP中大量使用了UML建模,敏捷过程中不提倡面面俱到的文档所谓敏捷建模就是不依赖于专业的建模工具(如Rational Rose,Microsoft Visio),而是大量使用白板(也可以是白纸,黑板等等)画草图。而且草图也不一定完全遵循UML文法,只要是方便团队成员之间的沟通和理解均可。

(4)在RUP中很注重软件过程的管理,开发的监视和控制。所以会产生很多的相关文档,而在敏捷项目中,我们团队每个成员都是积极主动的参与者。所以我们最后的集成文档是可以略掉的。同时我们还避免了很多监控和测试的文档。

(5)一般来说,对于小型项目,硬件要求和系统复杂度都相对较低。所以很多团队都省去了配置与变更管理这项工作流,而且效果很好。

(6)在敏捷钟我们主张快速交付原型软件,这就意味着我们必须对设计过程进行适当的简化,越是简单的设计就越容易开始项目。

(7)项目的需求是不可能一蹴而就的。迭代式的发现需求,响应需求是RUP和敏捷过程共同包含的。

 

3.简述RUP有哪些最佳实践?

 

迭代式开发

管理需求

使用基于构件的体系结构

可视化建模

检验质量

控制变更

 

六.测试

1.一个成功的测试可以(C)。

A.表明程序没有错误       B.发现所有错误  

C.发现尚未发现的错误    D.提高软件可靠性

2.在下列软件生存周期模型中,哪一个是由Rational公司推出的软件过程?(D)

A.瀑布模型    B.极限编程  

C.喷泉模型     D.RUP统一过程

3.在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……” ,则在测试时可以划分:(A)。

A.一个有效等价类和两个无效等价类  

B.一个有效等价类和一个无效等价类

C.两个有效等价类和两个无效等价类  

D.两个有效等价类和一个无效等价类

4.从测试完成程度来看,下列选项中测试覆盖率最高的是(D)。

A.语句覆盖      B.分支覆盖   

C.条件组合覆盖    D.路径覆盖

5.一个程序只有一个输入S,其取值范围是-60≤S≤60。现从输入的角度设计了一组测

试数据:-200,20,200,设计这组测试用例的方法是(B)。

A.条件覆盖            B.等价类划分
  

C.边界值分析      D.错误推断

6.使用(D)设计测试用例时,要选择临近边界的合法数据和非法数据。

A.因果图法               B.错误猜测法  

C.等价类划分法       D.边界值分析法

7.例如:在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理,则在测试时可以划分(A)。

A.4个有效等价类和1个无效等价类   

B.1个有效等价类和1个无效等价类

C.5个有效等价类和1个无效等价类   

D.2个有效等价类和1个无效等价类

8.从测试完成程度来看,下列选项中测试覆盖率最低的是(A)

A.语句覆盖
  B.分支覆盖    C.条件组合覆盖 D.路径覆盖

9.使用(D)设计测试用例时,要选择临近边界的合法数据和非法数据。

A.因果图法              B.错误猜测法  

C.等价类划分法        D.边界值分析法

 

1.在集成测试中,模块的组装方法分为非渐增式和渐增式两种方法。在渐增式测试方法中包括 自顶向下
 
 自底向上 两种集成策略。

2.测试任何软件产品都有两种基本的方法,通常,在测试过程的早期阶段主要使用  白盒测试  ,而在测试的后期阶段主要使用黑盒测试。

3.  Alpha   测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试;  Beta   测试由软件的最终用户们在一个或多个客户场所进行,即在开发者不能控制的环境中“真实”的应用。

4.在测试阶段,测试步骤分为模块测试、  集成测试   、系统测试、验收测试。

 

1.什么是白盒测试技术、黑盒测试技术?

 一.(1)语句覆盖

     (2)判定覆盖

   (3)条件覆盖

   (4)判定/条件覆盖

   (5)条件组合覆盖

   (6)路径覆盖

   (7)点覆盖

   (8)边覆盖

 

二.(1)等价划分

   (2)边界值分析

   (3)错误推测

 

2.等价类划分是一种黑盒测试技术,它把程序的输入域划分成若干个数据类,据此导出测试用例。若在程序的规格说明书中对输入条件有这样一句话:“……项数可以从1到999…….”,则需划分几个等价类,分别是什么?

 

     则有效等价类是“1≤项数≤999”

 两个无效等价类是“项数<1”或“项数>999

 

3.什么是Alpha测试?什么是Beta测试?

 

    Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试;

    Beta测试由软件的最终用户们在一个或多个客户场所进行,即在开发者不能控制的环境中“真实”的应用.

 

 

 

 

时间: 2024-10-15 00:18:09

面向对象软件工程知识点的相关文章

PHP面向对象关键知识点回顾

一,类中的析构函数(__destruct): 析构函数是自动调用的 析构函数主要用于销毁资源 析构函数的调用顺序是先创建的对象最后被销毁(原理是栈的先进后出) 析构函数什么时候被调用 (1)当程序(进程结束)推出时 (2)当一个对象成为垃圾对象时候,该对象的析构方法也会被调用 (3)所谓垃圾对象,就是指没有任何变量再引用它(没有变量再只指向堆中的对象) (4)一旦对象成为垃圾对象,析构函数就会立即被调用 二,类中使用静态变量(static) 静态变量的引入是为了解决不同的对象实例能够共享同一个变

java面向对象编程知识点总结

一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类型. 常用成员有四种:类字段.类方法.实例字段.实力方法. 其它引用类型还包括数组.接口.枚举和注解. 2)字段和方法 示例:一个简单的类和成员 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class Circle{

面向对象软件工程与UML

软件工程基本概念 软件危机 软件的功能.规模及复杂性与日俱增,软件的复杂性达到了它的开发者难以控制的程度 这种情况导致了严重的后果: 软件可靠性下降 开发效率低下 维护极为困难 这使软件开发者陷入困境,人们称之为“软件危机” 解决软件危机 软件开发行业的研究 1. 程序设计方法学的研究 结构化程序设计方法 面向对象程序设计方法 2. 软件工程学的研究 用工程学的方法进行软件的开发与维护,并对软件生产过程进行工程化的管理 3. 其它方面 并发程序设计 数据结构与算法 编程语言 …… 软件工程的定义

软件工程知识点总结

软件的概念: 软件是计算机系统中与硬件相互依存的另一部份,是程序.数据.以及相关文件的完整集合.程序是事先设计的功能要求执行的序列.数据是使得程序能征程操作信息的数据结构.文档是程序开发,维护和利用的有关图文和材料.软件的表现形式分为有形和无形,软件的有形表现在软件的的文档.程序.代码.用户界面.输出表报.等.软件的无形部分表现在:软件的内部逻辑,是软件自身的设计思想. 软件危机:软甲危机是软甲开发和软件维护.具体产生的原因有对软件的成本和进度的估计不是准确,项目管理经验缺乏.用户对已完成的软件

php面向对象基础知识点总结

下面是一些PHP面向对象基础知识的摘录,摘录内容来自PHP5.1手册. 1.类的变量成员叫做“属性”,或者叫“字段”.“特征”,在本文档统一称为“属性”. 2.属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指php脚本在编译阶段时就为常数,而不是 在编译阶段之后在运行阶段运算出的常数. 3.在类的成员方法里面,可以通过$this->property(property是属性名字)这种方式来访问类的属性. 方法,但是 要访问类的静态属性或者在静态方法里面却不能使用,而是使用self:

面向对象<基础>知识点

1 使用了未实例化的对象会出现java.lang.NullPointException 2 一个栈内存空间只能指向一个堆内存空间,如要指向其他堆内存空间,需先断开当前指向 3 只要是被封装的属性就必须通过gette/setter方法设置和取得 4 匿名对象就是没有明确给出名字的对象.一般匿名对象只使用一次,而且匿名对象只在堆内          存中开辟空间,而不存在栈内存的引用  在实际开发中基本上都是作为其它实例化对象的参数传递 5 ==是比较内存地址,.equals()比较值 6 Stri

面向对象<高级>知识点

继承: 通过子类继承父类扩展父类的功能 通过接口继承多个接口扩展接口的功能 通过抽象类实现接口扩展抽象类的功能 多态: 主要体现: 1.方法的重载与覆写  2.对象的多态性:a)向上转型:父类 父类对象 = 子类实例 ----------调用子类的覆写后的方法   b)向下转型:子类 子类对象=(子类)父类实例 3.发生向下转型前必须先发生向上转型以保证有父子类关系 设计模式: 工厂设计: 代理设计:通常代理的存在是扩展真实操作的作用 适配器设计:一个接口有10个方法,我只需要5个,可以创建一个

4.【推荐】在实际项目中,结合软件工程知识点,提出作业

自从有了要做的项目后,每天都有在想,要怎么才能把项目做好.哪些是第一版,是必不可少的,哪些是第二版甚至是三,四,让整个项目变得更完善.在设计代码之前,我们要先写出需求说明书,只有完备的准备,才会让项目能够顺利进行下去.然而在写出需求说明书之前我们还要大概描写出例向说明书,大体了解下其项目的可行性,模型的选择,有计划的分工及分期等等. 首先,我们组打算做一个旅游介绍的项目,其中可以为其旅游地方点评,中和点评后显示其中合评价.当然,评价需要注册登录.也许,只是普通的点评为目标,游客们并不会为了其而去

软件工程知识点整理

1.指针和数组的区别: 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建.数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变. 指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存.指针远比数组灵活,但也更危险. (1)修改内容 示例1中,字符数组a的容量是6个字符,其内容为hello\0.a的内容可以改变,如a[0]= ‘X’.指针p指向常量字符串“world”(位于静态存储区,内容为world\0),常量字符串