面向对象与经典软件工程解析

需积分: 44 0 下载量 8 浏览量 更新于2024-07-24 收藏 6.41MB PDF 举报
"面向对象与经典软件工程" 《面向对象与经典软件工程》第八版由史蒂芬·R·施查赫(Stephen R. Schach)撰写,他是范德堡大学的教授。这本书全面介绍了程序设计的全过程,并通过具体实例帮助读者理解编程中的复杂概念。本书由麦格劳-希尔公司出版,版权归属2011年,之前的版本分别在2007、2005和2002年发布。 面向对象编程(Object-Oriented Programming, OOP)是一种流行的编程范式,它基于“对象”的概念,对象是数据结构和操作这些数据的方法的组合。在OOP中,程序员创建类,类是对象的蓝图,它们定义了对象可以拥有的属性(数据成员)和行为(方法)。对象是类的实例,它们之间可以通过消息传递进行通信,这种通信方式允许对象间的数据交互和功能调用。 本书深入探讨了以下OOP的关键概念: 1. 封装:封装是将数据和操作数据的方法绑定在一起的过程,使得数据对外部世界隐藏,只暴露必要的接口。这样可以保护数据免受意外修改,增强代码的安全性和可维护性。 2. 继承:继承允许一个类(子类)从另一个类(父类)继承属性和方法,从而实现代码重用和模块化。子类可以扩展或修改父类的功能,实现多态性。 3. 多态性:多态性是指同一种操作可以作用于不同的对象,产生不同的效果。这使得代码更具有灵活性,能够处理多种类型的数据。 4. 抽象:抽象是将现实世界的复杂问题简化为易于理解的模型。在编程中,抽象通常通过接口或抽象类来实现,它们定义了一组方法,但不提供具体的实现。 除了OOP,书中还可能涵盖了经典软件工程的方面,如: 1. 需求分析:确定软件应该做什么,包括收集用户需求、编写需求规格说明书等。 2. 设计阶段:制定软件架构,选择合适的算法和数据结构,以及如何组织代码。 3. 实现:将设计转化为可执行代码,遵循良好的编程实践,如注释、代码风格和测试。 4. 测试:验证软件是否满足需求,包括单元测试、集成测试和系统测试。 5. 维护:修复错误,改进性能,添加新功能,以适应不断变化的需求。 6. 质量保证:确保软件符合质量标准,包括文档、可读性、可维护性和性能。 7. 项目管理:计划、调度和控制项目的进度,管理团队,分配资源,以及风险管理。 8. 软件工程方法论:包括敏捷开发、瀑布模型、迭代模型等,讨论不同开发模式的优缺点。 通过学习本书,读者不仅可以掌握面向对象编程的基本原理和技巧,还能了解软件开发的整体流程,提升软件工程的专业素养。对于想要深入理解和应用OOP,以及提升软件开发能力的读者来说,这是一本不可多得的参考资料。

Please revise the paper:Accurate determination of bathymetric data in the shallow water zone over time and space is of increasing significance for navigation safety, monitoring of sea-level uplift, coastal areas management, and marine transportation. Satellite-derived bathymetry (SDB) is widely accepted as an effective alternative to conventional acoustics measurements over coastal areas with high spatial and temporal resolution combined with extensive repetitive coverage. Numerous empirical SDB approaches in previous works are unsuitable for precision bathymetry mapping in various scenarios, owing to the assumption of homogeneous bottom over the whole region, as well as the limitations of constructing global mapping relationships between water depth and blue-green reflectance takes no account of various confounding factors of radiance attenuation such as turbidity. To address the assumption failure of uniform bottom conditions and imperfect consideration of influence factors on the performance of the SDB model, this work proposes a bottom-type adaptive-based SDB approach (BA-SDB) to obtain accurate depth estimation over different sediments. The bottom type can be adaptively segmented by clustering based on bottom reflectance. For each sediment category, a PSO-LightGBM algorithm for depth derivation considering multiple influencing factors is driven to adaptively select the optimal influence factors and model parameters simultaneously. Water turbidity features beyond the traditional impact factors are incorporated in these regression models. Compared with log-ratio, multi-band and classical machine learning methods, the new approach produced the most accurate results with RMSE value is 0.85 m, in terms of different sediments and water depths combined with in-situ observations of airborne laser bathymetry and multi-beam echo sounder.

2023-02-18 上传