快速阅读《软件工程技术与应用》产生的问题与思考

《软件工程技术与应用》一书为读者提供了丰富的理论知识和实践指导,本书旨在介绍软件的基本概念和软件工程的目标。以及通过对软件开发过程和过程管理技术的学习,学生可以了解如何进行软件度量和管理怎样进行质量保障活动,从而能够有效的策划和管理软件开发活动等等。

以上是本书前言部分的内容,方便我们对这本书要讲的内容有个概念,同时也是编者和读者的一次“面对面交流”。作为一名大二学生,真心实意的讲面对庞杂的、陌生的文字性内容。是很难去阅读的。开始读就意味着劝退。所以以下产生的问题与思考仅仅局限于本人能看懂的部分。

1.简述结构化方法(面相过程)和面对对象方法的联系与优缺点。

联系:

1. 模块化思想:无论是结构化方法还是面向对象方法,都强调软件设计的模块化。结构化方法通过函数或过程划分任务,形成相互独立的模块;面向对象方法则以类和对象作为基本模块,每个类封装了数据(属性)和操作(方法)。两者均旨在提高代码的可读性、可维护性和可重用性。

2. 层次化组织:两者都支持自顶向下、逐步细化的设计思路。结构化方法通过功能分解形成层次结构,而面向对象方法通过类的继承关系构建类层次结构。这种层次化有助于复杂问题的简化和管理。

3. 程序设计原则的共通性:尽管实现方式不同,但两者都遵循诸如高内聚、低耦合等通用的程序设计原则,旨在提高代码的健壮性、灵活性和可扩展性。

4. 问题求解视角:虽然关注点不同,但都是为了有效解决实际问题。结构化方法侧重于对问题的逻辑流程进行分析和建模,而面向对象方法则倾向于从现实世界的实体及其行为出发,模拟现实世界的组成和交互。

结构化方法(面向过程)的优缺点

优点:

清晰流程:强调程序的逻辑流程,适合解决过程性强、步骤明确的问题,代码结构清晰易懂。

执行效率:对于一些简单、执行密集型的任务,尤其是嵌入式系统,结构化方法产生的代码往往更直接、高效。

初期学习曲线平缓:相对于面向对象方法,结构化方法的概念相对简单,对于初学者来说更容易入门。

缺点:

可扩展性和灵活性受限:当需求发生变化时,结构化程序可能需要大量修改,因为数据和操作通常是紧密耦合的,不易适应变化。

-重用性不高:模块间的耦合度较高,难以实现跨模块的高度复用,导致软件开发和维护成本增加。

缺乏对现实世界的直接映射:对于复杂系统,特别是那些具有丰富实体和交互的系统,结构化方法可能难以直观地表达其内在结构和行为。

面向对象方法的优缺点

优点:

模拟现实世界:通过封装、继承和多态等机制,能够很好地模拟现实世界的实体及其行为,使得软件设计更符合人类认知习惯。

高可扩展性和灵活性:通过继承和多态,可以轻松地添加新功能或修改现有功能,适应需求变化。模块间的耦合度较低,有利于系统的演化。

高重用性:对象作为独立的软件构件,可以在不同上下文中重复使用。通过抽象和继承,可以实现代码的复用,减少开发时间和成本。

缺点:

初期学习曲线陡峭:面向对象的概念(如封装、继承、多态)相对较复杂,初学者需要投入更多时间理解和掌握。

执行效率:在某些情况下,面向对象的间接性和额外的开销(如虚函数调用)可能导致执行效率略低于同等的结构化代码。

过度设计风险:如果不恰当地使用面向对象特性,可能导致设计过于复杂,增加不必要的抽象层级,反而影响代码的简洁性和可维护性。

综上所述,结构化方法(面向过程)和面向对象方法各有优势,适用于不同的应用场景。在实际开发中,常常结合使用这两种方法,取长补短,以实现软件工程的最佳实践。

 

最后我还想说,学习了这门课,我了解到软件工程不仅涉及个人的编程能力,还涉及项目管理、人机交互、数据科学等等领域。以后应注重拓宽知识视野来应对更复杂的问题。

 

 

690d7b6664f64988886c05ec19028eaf.jpg

 

 

 

 

 

 

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值