这里的结构并不是指程序语言中的结构,那个结构是一种数据类型,我们这里的结构是指软件概要设计、详细设计中经常提到的一个概念,比如功能结构、系统结构等。结构经常和架构被混用,导致很多人认为是一个概念,实际上,结构和架构还是有些区别的,架构更侧重于框架布局和各组成部分之间的关系,而结构更侧重于内部构成,可见这是两个概念,举一个很平常的例子,网页的框架图是指网页的元素布局,而网页的结构则表示网页的元素构成。所以我们以后不能将业务框架叫成业务结构,显然是不对的。

再说功能结构,功能结构实际上就是描述一个系统或者模块内部的功能构成,就是有哪些功能。这个功能结构图很重要,因为单纯去看功能的文字描述,是很难让人有个比较直观的感觉,如果将这些功能用一个结构图表示出来就清晰多了。功能结构图一般会需求文档、实施方案、概要设计、详细设计都可能会涉及,但主要还是用在概要中。下面我针对功能结构图分享一些建议。

1、功能结构图尽量使用PPT画。实际上比较简单的图或者能够使用PPT画出来的图尽量用PPT来画,因为一般汇报用PPT比较多,这样既方便展示又方便修改。当然也可以使用脑图,但是脑图并不适用正式场合的展示,内部讨论是可以的;

2、功能结构图只需要画出功能的构成就可以,建议只需要画出2~3级即可,最多不要超过四级,太多了就看不明白了,有些乱。什么意思呢?就是假如模块有4级,我们只画出2~3级,如果非要画第四级,可以另外用一张图来表现;

3、功能结构图的表现形式有很多种,有树状图、框图等,树状图一般是类似组织结构图一样的,即倒树状结构,或者是金字塔结构的,这种的展现比较多。也有类似脑图的那种辐射图,那到底用哪一个比较合适呢?一般的规则是,不太复杂的、尤其用于汇报用的结构图,建议使用框图;对于复杂度中等、正式文档中使用的建议使用金字塔结构图;如果非常复杂的、内部交流使用的,建议使用脑图的辐射状展现方式。这里强调一下,到底使用哪种方式,并没有行业约束,你可以从展示难度、用户体验上去综合考虑。

4、功能结构图也有很多的变种,就是将功能结构图与流程图、框架图结合在一起,虽然感觉有些别扭,但是既然存在,也有它合理的地方。但是对于复杂系统来说,还是要分开用功能结构图和业务流程图、框架图来表示,这样会更加清晰。

5、功能结构图是对功能结构的展现,本质上要求我们对功能的划分有深入的理解,就是说我们得先了解系统和模块可以由哪些功能构成,比如说,用户管理模块由注册、登陆、修改密码等功能构成。弄明白这些,就可以画功能结构图了。如果对功能的划分没把握,建议使用脑图画个初稿,定稿后再转为PPT。

上面描述的是功能结构图,系统结构图是类似的,只不过系统结构内部元素是模块而已,其他的没什么不同。举一反三,类似的结构图也是如此。

关于结构的讲述就到此为止,下节我们聊聊网络拓扑图。欢迎大家阅读。

idea项目结构树状展示_「软件项目管理入门」(26)如何做功能结构设计?相关推荐

  1. 用户需求说明书_「软件项目管理入门」(21) 需求调研和需求分析怎么做?

    需求分析,在大公司可能并不需要项目经理主导,有专门的需求分析师和架构师去完成这个工作,中小公司可能仍然需要项目经理充当主角,由项目经理负责与甲方业务人员共同完成需求的收集.整理以及分析工作. 不管哪种 ...

  2. 计算机硬件结构中负责识别,计算机硬件基本结构树状图

    <计算机硬件基本结构树状图>由会员分享,可在线阅读,更多相关<计算机硬件基本结构树状图(2页珍藏版)>请在人人文库网上搜索. 1.计算机硬件基本结构计算机的5个基本组成部分:运 ...

  3. 「软件项目管理」项目初始——项目确立与生存期模型

    「软件项目管理」项目初始阶段--项目确立与生存期模型

  4. mysql树状数据结构_树状结构的数据表如何设计?

    使用Modified Preorder Tree简直是必须的.网上可以搜一下modified preorder tree travesal找到相关资料.参考 http://www.sitepoint. ...

  5. 聚类树状图_聚集聚类和树状图-解释

    聚类树状图 Agglomerative Clustering is a type of hierarchical clustering algorithm. It is an unsupervised ...

  6. python 树状数组_【算法日积月累】19-高级数据结构:树状数组

    树状数组能解决的问题 树状数组,也称作"二叉索引树"(Binary Indexed Tree)或 Fenwick 树. 它可以高效地实现如下两个操作: 1.数组前缀和的查询: 2. ...

  7. ext springmvc mysql_基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)...

    先从后台讲起 1.表的设计 2.mysql查询很容易,关键是要把id,text,parentId查出来 /p> "http://mybatis.org/dtd/mybatis-3-ma ...

  8. echart关系树状图_干货 | 25个常用Matplotlib图的Python代码

    50个Matplotlib图的汇编,在数据分析和可视化中最有用.此列表允许您使用Python的Matplotlib和Seaborn库选择要显示的可视化对象. 1.关联 散点图 带边界的气泡图 带线性回 ...

  9. 代码 纪录 软件_「软件资料」-「资讯动态」-软件开发类项目关键文档内容要求...

    1 软件开发计划 2 需求规格说明书 3 软件概要设计说明 4 数据库设计说明 5 软件详细设计说明 6 可执行程序生成说明 7 软件测试计划 8 软件测试说明 9 软件测试报告 10 安装部署手册 ...

最新文章

  1. Linux那些事儿 之 戏说USB(26)设备的生命线(九)
  2. 剑指offer-反转链表
  3. 在Centos中安装aria2c
  4. 从厕所排队引发的产品设计方案思考
  5. Tomcat配置多个端口号或多个应用
  6. SpingMVC之拦截器
  7. oracle中字符串连接
  8. JS如何判断一个对象是否为JSON对象
  9. java封装继承多态
  10. 在word中插入分页符,多出一行
  11. 联想微型计算机u盘启动,联想ThinkCentre一体机如何设置U盘启动_联想ThinkCentre电脑怎样从USB启动...
  12. Java 微信对账单
  13. Android 复杂的列表视图新写法 MultiType
  14. 剖析Linux的守护神
  15. html表ge模板_40多个漂亮的网页表单设计实例
  16. LTspice基础教程-008.LTspice PWL设置
  17. Chrome审查元素一些介绍
  18. Eclipse 中WebService简单应用:手机归属地查询
  19. python调用阿里云sdk
  20. 谷歌云wordpress搭建博客网站

热门文章

  1. 华为手机8.0.0怎么找到云相册_华为G9怎么找到云相册_失而复得 华为“查找手机”功能有多强大?快来了解一下......
  2. nginx设置跨域问题
  3. java二嗨租车项目_JAVA第二季项目实战———答答租车系统代码
  4. 推动半导体产业发展,华微电子CCT MOS产品发布
  5. c语言判断二叉树是不是二叉排序树_C语言:数据结构-树表的查找
  6. 【OPTEE开发】从TA到PTA的功能设计
  7. 十七、二分查找法(java)
  8. 【数据库题型大总结】名词解释总结
  9. Celery参数详解、配置参数
  10. Celery 框架学习笔记(分布式框架)