zoukankan      html  css  js  c++  java
  • 软件设计

    1.软件设计

    好的软件设计就是把一个问题清楚地分解为模块,然后再整体地排列这些模块

    高内聚:是一个模块功能强度的度量;

    低耦合:涉及两个模块,是它们之间相互依靠或相互作用的程度的度量。

    #功能独立性

    定义:指的是一个内聚的模块执行单个任务或函数,若模块满足该特性,那它跟其他模块的互动是最小的。

    用途:错误隔离;能增加被重用的次数;增加可理解性。

    #扇入:直接调用一个给定模块的模块数量。高扇入表示代码的重用率高。

    扇出:一个给定模块直接控制的模块数量。高扇出表示该模块缺乏内聚。

    2.UML建模语言

       5类图(用例图,静态图,行为图,交互图,实现图),9种图。(可见:http://m.blog.csdn.net/article/details?id=8552956)

    (1)用例图:站在用户的角度,而不是开发者角度。

        用例图中存在的关系 (可见:http://m.blog.csdn.net/article/details?id=8567448)

    • 1 角色与用例:关联关系(实直线或者带箭头的实线)
    • 2 用例之间:包含(《include》,带箭头的虚线),扩展(《extend》)[关于箭头的指向存在疑惑]。有包含用例才是完整的用例。
    • 3 角色之间:泛化(实线空三角箭头,指向父类,这点与c++中的理解有点不一样)

    (2)类之间存在的4种关系(可见:http://m.blog.csdn.net/article/details?id=8568303)

    #BD-基本设计 ,DD-详细设计,FD-结构设计

    3.面向功能的软件设计与面向对象的软件设计

    #面向功能的软件设计

    结构化分析(SA):将问题描述中的那套高级功能自上而下地分解,并吧它们图形化地表示出来。

    结构化设计(SD):在SA中识别出来的所有功能都会被映射到一个模块结构上。和面向对象。

    基于上述特性可认为这种设计是面向功能的软件设计。其特点为:一个系统被认为能执行一系列函数;系统状态是集中的,数据可在不同的函数之间共享。

    #面向对象的软件设计

    特点:系统被认为是一个对象的集合,对象间通过传播信息来交流;系统状态在对象中是分散的,每个对象可以控制自己的状态。

    回顾一些类的知识

    #函数的重载

    定义:在声明对象是,编译器会根据调用者传递的参数自动匹配函数。

    条件:函数的参数类型不同,参数个数不同(只有返回值不同的两个函数不算)。

    #函数的覆盖

    条件:发生在基类和子类之间;基类必须为虚函数(用virtual进行声明);函数名称与参数列表完全相同。

    #函数的多态性

    1)静态绑定:同样的消息被不同的对象获取就会产生不同的行动。当一个操作拥有多个方法是就会发送静态绑定,即涉及函数重载。

    2)动态绑定:涉及函数的覆盖,把处理消息确切的方式留给接收消息的对象。

  • 相关阅读:
    GitHub常用 库
    App性能优化
    iOS App性能优化
    UIButton图片与文字位置调整
    Mac常用目录
    js数字转金额,ajax调用接口,后台返回html(完整页面),打开新窗口并写入html
    js坑 把数字型的字符串默认为数字 把前面的0给去掉了("001")
    url跳转路径参数获取
    常用正则表达式,手机号,邮箱,网址
    Js获取操作系统版本 && 获得浏览器版本
  • 原文地址:https://www.cnblogs.com/QFighting/p/5410648.html
Copyright © 2011-2022 走看看