软件开发模型和架构:耦合与凝聚力
添加时间:2019-03-15 21:37:25
来源:
软件开发生命周期中设计阶段的目的是为SRS(软件需求规范)文档中提供的问题提供解决方案。设计阶段的输出是软件设计文档(SDD)。
基本上,设计是一个由两部分组成的迭代过程。第一部分是概念设计,告诉客户系统将做什么。其次是技术设计,允许系统构建者了解解决客户问题所需的实际硬件和软件。
耦合和凝聚力
系统概念设计:
用简单的语言编写,即客户可理解的语言。
详细解释系统特征。
描述系统的功能。
它独立于实施。
与需求文档相关联。
系统技术设计:
硬件组件和设计。
软件组件的功能和层次。
软件架构
网络架构
数据结构和数据流。
系统的I / O组件。
显示界面。
模块化:模块化是将软件系统划分为多个独立模块的过程,其中每个模块独立工作。模块化在软件工程中有许多优点。其中一些如下:
易于理解的系统。
系统维护很简单。
模块可以根据需要多次使用。无需一次又一次地写它。
耦合:耦合是衡量模块之间相互依赖程度的指标。一个好的软件将具有低耦合。
耦合
耦合类型:
数据耦合:如果模块之间的依赖关系是基于它们通过仅传递数据进行通信的事实,那么模块就被称为数据耦合。在数据耦合中,组件彼此独立并通过数据进行通信。模块通信不包含tramp数据。示例 - 客户计费系统。
印章耦合在印章耦合中,完整的数据结构从一个模块传递到另一个模块。因此,它涉及流浪汉数据。由于效率因素,这可能是必要的 - 这是由有见地的设计师而不是懒惰的程序员做出的。
控制耦合:如果模块通过传递控制信息进行通信,则称它们是控制耦合的。如果参数指示完全不同的行为并且如果参数允许分解和重用功能则是好的。示例 - 将比较函数作为参数的sort函数。
外部耦合:在外部耦合中,模块依赖于正在开发的软件外部的其他模块或特定类型的硬件。协议,外部文件,设备格式等
公共耦合:模块具有共享数据,例如全局数据结构。全局数据的变化意味着追溯到访问该数据以评估变化影响的所有模块。因此,它具有诸如重用模块的困难,控制数据访问的能力降低和可维护性降低等缺点。
内容耦合:在内容耦合中,一个模块可以修改另一个模块的数据,或者控制流从一个模块传递到另一个模块。这是最糟糕的耦合形式,应该避免。
内聚力:内聚力衡量模块元素在功能上的相关程度。它是指执行单个任务的所有元素都包含在组件中的程度。基本上,凝聚力是将模块保持在一起的内部粘合剂。良好的软件设计将具有高凝聚力。
凝聚
凝聚力的类型:
功能性内聚:单个计算的每个基本元素都包含在组件中。功能凝聚力执行任务和功能。这是一个理想的情况。
顺序内聚:元素输出一些数据,这些数据成为其他元素的输入,即部分之间的数据流。它自然地出现在函数式编程语言中。
通信内聚:两个元素对相同的输入数据进行操作或对相同的输出数据做出贡献。示例 - 更新数据库中的记录并将其发送到打印机。
程序凝聚力:程序凝聚力的要素确保执行的顺序。行动仍然微弱联系,不太可能重复使用。计算学生GPA,打印学生记录,计算累积GPA,打印累计GPA。
时间凝聚力:元素与其所涉及的时间有关。与时间内聚相关联的模块必须在相同的时间跨度内执行所有任务。这种内聚包含用于初始化系统所有部分的代码。所有在初始阶段都会发生许多不同的活动。
逻辑内聚:元素在逻辑上相关而不是在功能上。Ex- A组件从磁带,磁盘和网络读取输入。这些函数的所有代码都在同一个组件中。操作是相关的,但功能明显不同。
巧合的凝聚力:元素不相关(无关)。除了源代码中的位置之外,元素没有概念关系。这是偶然的,也是最恶劣的凝聚力。打印下一行并反转单个组件中字符串的字符。
2019-03
软件开发生命周期中设计阶段的目的是为SRS(软件需求规范)文档中提供的问题提供解决方案。设计阶段的输出是软件设计文档(SDD)。… [了解更多]