今日软件工程课后作业什么是模块化?为什么要模块化?等

什么是模块化?为什么要模块化?

模块化就是把程序划分为独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求

模块是由边界元素限定的相邻程序元素的序列,而且总有一个总体标识符代表它。

模块化可以能够提高软件的可修改性;模块化有助于软件开发工程的组织管理。

衡量模块独立的定性标准是什么?用自己的话表达其含义。

定性标准就是耦合和内聚性

模块划分的原则:低耦合,高聚合原则

耦合是表示模块之间联系的程度。紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,非耦合则表示模块之间无任何联系,是完全独立的。模块耦合度越低,说明模块之间的联系越少,相互间的影响也就越小,产生连锁反应的概率就越低,在对 — 个模块进行修改和维护时,对其他模块的影响程度就越小,系统可修改性就越高。聚合则用来表示一个模块内部各组成成分之间的联系程度。一般说来,在系统中各模块的聚合度越大,则模块间的耦合度越小。耦合度小使得模块间尽可能相对独立,从而各模块可以单独开发和维护。聚合度大使得模块的可理解性和维护性大大增强。因此,在模块的分解中应尽量减少模块的耦合度,力求增加模块的聚合度。

如何理解信息隐藏和局部化?用自己的话或例子表达其含义

信息隐藏原理:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
局部化是指把一些关系密切的软件元素物理地放得彼此靠近。
如果在测试期间和以后的软件维护期间需要修改软件,使用信息隐藏原理作为模块化系统设计的标准就会带来极大好处。

为什么软件开发方法论让你觉得糟糕

一、问题是我们如何找到有技能的开发人员?由于信息技术中个人生产力的概念从未得到令人满意的定义,这是一个特别难以解决的问题。代码行仍然是一个流行的衡量标准,遭受了一个毁灭性的缺陷,即一行代码是一种负债,而不是人们通常认为的资产。衡量工作时间会鼓励英雄行为,但经验表明“英雄”通常是那些在早期就承担不可接受的风险而导致项目延期的人长时间工作会使人变得愚蠢,并导致软件质量低下。对于IT专业人士,目前还没有一套公认的专业标准或特许制度,招聘优秀人才在很大程度上是一门艺术,而不是一门科学。

二、传统的软件项目与常规的、可预测的环境是相反的。衡量项目成功与否的唯一标准——最终结果是否在其生命周期内创造了预期价值与导致成功或失败的关键决策相距甚远,以致于原始团队中的任何人都很少能在场获得反馈。几乎不可能确定哪一个这些决定中的任何一个都会导致成功或失败。

在人工智能中,这被称为信用分配问题。

三、开发人员获得的技能使他们能够最有效地实现激励他们的目标——通常尽可能快地宣布他们的工作“开发完成”,而不管功能是否已集成和生产就绪,在其他功能领域也会出现类似的问题。软件项目是一个复杂的系统而不是常规的环境,这一事实导致了另一个问题:收集技术、实践和方法实际有效的数据非常困难,并且几乎不可能在收集数据的上下文之外概括这些数据。

四、软件方法学:是“雇佣一群优秀的人,让他们自我组织”的方法都很糟糕,因为它们常常会导致货物崇拜行为:我们做的是站起来,我们有一个优先的积压工作,我们甚至为了上帝的缘故在实践持续的集成——为什么我们制作的东西仍然是肮脏和迟来的?因为你忘了最重要的事情:建立一个组织它能尽快学习和适应。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值