一、请简述软件开发的生命周期p>
答:软件分析-设计-编码-测试-部署-维护。
软件分析:分析问题领域,了解用户需求;
软件设计:确定软件的总体架构,把整个软件系统划分为大大小小的多个子系统,设计每个子系统的具体结构;
软件编码:用选定的编程语言来编写程序代码;
软件测试:是否实现特定的功能,以及测试软件的运行性能;
软件部署:为用户安装软件系统,帮助用户正确的使用软件;
软件维护:当用户需求发生变化时,修改相应的软件。
二、请问一个优良的软件系统应该具备什么特点p>
答:可重用性-可扩展性-可维护性。
可重用性:减少软件中的重复代码,避免重复编程;
可扩展性:当软件必须增加新的功能时,能够在现有系统结构的基础上,方便地创建新的子系统,不需要改变软件系统现有的结构,也不会影响已经存在的子系统。
可维护性:当用户需求发生变化时,只需要修改局部的子系统的少量代码,不会牵一发而动全身,修改软件系统中多个子系统的程序代码。
三、请问软件中的子系统具有什么特点p>
答:结构稳定性-可扩展性-内聚性-可组合性-松耦合性。
四、请问在软件开发领域中有哪些主流的开发方法p>
答:结构化开发(面向过程开发)和面向对象开发。
五、请你简述一下你对结构化软件开发的认识p>
答:结构化开发方法首先用结构化分析对软件进行需求分析,然后用结构化设计方法进行总体设计,最后是结构化编程。
结构化开发方法主要是按照功能来划分软件结构的,它把软件系统的功能看作是根据给定的输入数据,进行相应的计算,然后输出结果。
进行结构化设计时,结构化设计属于自顶向下的设计,首先考虑整个软件系统的功能,然后按照模块划分的一些基本原则,对功能进行分解,把整个软件系统划分成多个模块,每个模块实现特定的子功能。在完成所有的模块设计后,把这些模块拼接起来,就构成了整个软件系统。软件系统可看作是多个子系统的集合,每个子系统都是具有输入/输出功能。
在进行结构化编程时,程序的主体是方法,方法是最小的功能模块,每个方法都具有输入/输出功能的子系统,方法的输入数据来自方法参数、全局变量和常量。方法的输出数据包括方法返回值,以及指针类型的方法参数。一组相关的方法组合成大的功能模块。
六、请你简述一下结构化软件开发的缺点及其根本原因p>
答:缺点:制约了软件的可维护性和可扩展性,模块之间的松耦合性不高,修改或增加一个模块,会影响到其他的模块。
原因:①自顶向下地按照功能来划分软件模块,而软件的功能不是一成不变的,会随着用户的需求变化而变化,这使得软件在设计阶段就难以设计出稳定的系统结构。
②软件系统中最小的子系统是方法。方法和一部分与之相关的数据分离,全局变量数据和常量数据分散在系统的各个角落,这消弱了各个系统之间的相对独立性,从而影响了软件的可维护性。
七、请简述一下面向对象的软件开发方法p>
答:面向对象的开发方法把软件系统看成是各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。
面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。
八、请简述面向对象开发方法具有哪些优点p>
答:①把软件系统看成是各种对象的集合,这更接近人类认识世界的自然思维方式。
②软件需求的变动往往是功能的变动,而功能的执行者-对象一般不会有大的变化。
③对象包括属性和行为,对象把数据及方法的具体实现方式一起封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。
④支持封装、抽象、继承和多态等各种特征,提高了软件的可重用性、可维护性和可扩展性。
九、请简述一下对象具有哪些特性p>
答:①万物皆对象。
②每个对象都是唯一的。
③对象具有属性和行为。
④对象具有状态。
⑤对象都属于某个类,每个对象都是某个类的实例。
十、请简述一下你对类的理解p>
答:类是一组具有相同属性和行为的对象的抽象。
十一、请你简述一下你对接口的理解p>
答:①指系统对外提供的所有服务,在对象中表现为public类型的方法的声明。
②指用interface关键字定义的实实在在的接口,也称为接口类型,它用于明确的描述系统对外提供的服务,它能够更加清晰地把系统的实现细节与接口分离。
十二、请你简述一下你对封装的理解和封装的优点p>
答:封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。
①便于使用者正确、方便的理解和使用系统,防止使用者错误修改系统的属性;
②有助于建立各个系统之间的松耦合关系,提高系统的独立性。
③提高软件的重用性,每个系统都是一个相对独立的整体,可以在多种环境中得到重用。
④降低了构建大型系统的风险,即使整个系统不成功,个别的独立子系统有可能依然是有价值的。
十三、请你简述一下你对抽象的理解p>
答:①抽象是一种由具体到抽象、由复杂到简洁的思维方式。
②可以用来修饰类和方法。
当一个方法被abstract修饰时,表明这个方法没有具体的实现;
当一个类被abstract修饰时,表明这个类不能被实例化。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树类和接口类和面向对象93120 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!