1.什么是面向对象的特征?
抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是实现代码复用的重要手段。
封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象,这些对象通过一个受保护的接口访问其他对象。
多态性:多态性是指允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为参数的多态性和返回类型的多态性。
2.三种面向对象模型的主要功能是什么
对象模型:
主要表示静态的、结构化的系统的数据性质。它映射现实世界中实体的对象以及这些对象之间的关系,从而描述系统的静态结构。在面向对象方法中,类图是构建对象模型的核心。
对象模型的功能在于它提供了一个清晰的方式来理解和表示系统中的对象及其关系。这对于理解系统的整体结构和数据组织至关重要。
动态模型:
描述系统的动态结构和对象之间的交互过程。它表示瞬时的、行为化的系统的控制性质,并规定了对象模型中对象的合法变化序列。
动态模型的功能在于它展示了系统中对象如何交互以及它们的行为如何随时间变化。这对于理解系统的运行机制和业务流程至关重要。
功能模型:
功能模型描述了系统应该做什么,即系统的功能。它关注系统如何响应来自外部的各种事件,以及系统内部的状态如何改变以响应这些事件。
功能模型的功能在于它提供了对系统功能的全面描述,帮助开发人员明确系统的需求和行为。这对于确保系统满足用户需求并正确实现预期功能至关重要。
这三种模型在面向对象分析和设计中是不可或缺的,它们共同构成了对系统的全面描述,为开发人员提供了理解和实现系统的框架。
3.什么是软件工程?软件工程面临的问题是什么?
软件工程是一门研究应用计算机科学理论、技术和管理方法来构建和维护软件的工程学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等多方面内容,旨在以系统性的、规范化的、可定量的过程化方法去开发和维护软件,确保软件的质量、效率和安全性。
然而,软件工程在实施过程中面临着诸多问题:
需求变化:软件开发过程中,客户的需求可能会频繁变更,这要求软件工程师能够快速适应并捕捉这些变化,确保软件的开发与实际需求保持一致。
工期管理:软件项目的开发周期可能受到需求变化、技术难度、团队协作等多种因素的影响,导致开发进度难以控制。
人员协作:软件工程项目通常需要多人协同合作,但团队成员之间的沟通不畅、任务分配不均等问题可能导致项目延误甚至失败。
质量保证:软件质量是软件工程的核心要求之一。如何在确保需求满足的前提下,开发高质量的软件,一直是软件工程师面临的挑战。
技术更新:软件工程领域的技术发展非常迅速,新技术层出不穷,如何跟上技术更新的步伐,将新技术应用于实际项目中,也是软件工程面临的问题之一。
此外,软件工程还面临着软件开发成本和进度估计不准确、软件产品难以维护、缺乏适当的文档资料等问题。为了应对这些挑战,软件工程师需要不断学习和掌握新技术,提高团队协作和沟通能力,同时采用有效的项目管理方法和质量保证措施,确保软件开发的顺利进行和高质量完成。