精华内容
下载资源
问答
  • 软件工程-软件结构图层次图、层次方框图的关系

    万次阅读 多人点赞 2018-10-10 23:19:08
    (在学习了软件工程这门课,太多的知识点,而且有些知识点很容易混淆,下面就将之前经常混淆的一些知识点还有细节进行总结因为初学软件工程这本书,...用此表示自顶向下分解所得系统的模块层次结构,H又可称为...

     

    (在学习了软件工程这门课,太多的知识点,而且有些知识点很容易混淆,下面就将之前经常混淆的一些知识点还有细节进行总结因为初学软件工程这本书,能力有限尚且不能完全归纳出来,望见谅!希望在一次次总结中不断增加巩固自己的知识点吧)

    1、层次图(H)

              层次图用来描绘软件的层次结构。很适于在自顶向下设计软件的过程中使用。用此图表示自顶向下分解所得系统的模块层次结构,H图又可称为模块层次图。H图中一个方形的方块代表一个模块,方块内可写出标识此模块的处理功能或模块名。模块间的调用关系,用联结两模块的直线表示。

     

    层次图和层次方框图的区别:

     

    2、结构图

    Yourdon提出的结构图是进行软件结构设计的另一个有力工具。

    结构图和层次图类似,也是描绘软件结构的图形工具。

     

    基本符号:

    • 方框代表一个模块;

    • 方框之间的直线表示模块的调用关系;

    • 尾部是空心圆箭头表示传递的是数据;

    • 尾部实心圆箭头表示传递的是控制信息。

     

    四种模块

     

    层次图和结构图的相同点:

    • 层次图和结构图并不严格表示模块的调用次序,多数人习惯按调用次序从左到右画模块;

    • 层次图和结构图并不指明何时调用下层模块;

    • 两者都是描绘软件结构的图形工具

    • 层次图和结构图只表明一个模块调用那些模块,没有表示模块内还有没有其他成分;

    层次图和系统结构图的不同点:

    • 系统结构图的出发点是数据流图,但如果已具备H图,则在此基础,上加注模块间的控制与通信标志就成了系统结构图

      (通常用层次图作为描绘软件结构的文档)

     

     

     

    展开全文
  • java集合的接口和类层次结构图

    千次阅读 2018-04-10 09:25:25
    正如下面的层次结构图中看到的那样,“Collection”是Collection层次结构中的根接口,但“Collections”是一个提供静态方法来处理某些Collection类型的类。 2. Collection类层次结构图 下图演示了Collec...

    1. Collection vs Collections

    首先,“Collection ”和“Collections”是两个不同的概念。 正如下面的层次结构图中看到的那样,“Collection”是Collection层次结构中的根接口,但“Collections”是一个提供静态方法来处理某些Collection类型的类。
    这里写图片描述

    2. Collection类层次结构图

    下图演示了Collection的类层次结构。
    这里写图片描述

    3. Map类层次结构图

    这里写图片描述

    4. 总结

    interfaces hash table Resizable array Tree Linked list Hash table + Linked list
    Set HashSet TreeSet LinkedHashSet
    List ArrayList LinkedList
    Queue
    Map HashMap TreeMap LinkedHashMap

    5. 代码实例

    List<String> a1 = new ArrayList<String>();
    a1.add("Program");
    a1.add("Creek");
    a1.add("Java");
    a1.add("Java");
    System.out.println("ArrayList Elements");
    System.out.print("\t" + a1 + "\n");
    
    List<String> l1 = new LinkedList<String>();
    l1.add("Program");
    l1.add("Creek");
    l1.add("Java");
    l1.add("Java");
    System.out.println("LinkedList Elements");
    System.out.print("\t" + l1 + "\n");
    
    Set<String> s1 = new HashSet<String>(); // or new TreeSet() will order the elements;
    s1.add("Program");
    s1.add("Creek");
    s1.add("Java");
    s1.add("Java");
    s1.add("tutorial");
    System.out.println("Set Elements");
    System.out.print("\t" + s1 + "\n");
    
    Map<String, String> m1 = new HashMap<String, String>(); // or new TreeMap() will order based on keys
    m1.put("Windows", "2000");
    m1.put("Windows", "XP");
    m1.put("Language", "Java");
    m1.put("Website", "programcreek.com");
    System.out.println("Map Elements");
    System.out.print("\t" + m1);

    输出:

    ArrayList Elements
        [Program, Creek, Java, Java]
    LinkedList Elements
        [Program, Creek, Java, Java]
    Set Elements
        [tutorial, Creek, Program, Java]
    Map Elements
        {Windows=XP, Website=programcreek.com, Language=Java}
    展开全文
  • java异常类层次结构图

    千次阅读 2016-10-11 18:20:21
    java异常类层次结构图: 异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用、数组下标...

    java异常类层次结构图:

    这里写图片描述

    异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用、数组下标越界、内存溢出错误等,这些都是意外的情况,背离我们程序本身的意图。错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误,在编译期间出现的错误有编译器帮助我们一起修正,然而运行期间的错误便不是编译器力所能及了,并且运行期间的错误往往是难以预料的。假若程序在运行期间出现了错误,如果置之不理,程序便会终止或直接导致系统崩溃,显然这不是我们希望看到的结果。因此,如何对运行期间出现的错误进行处理和补救呢?Java提供了异常机制来进行处理,通过异常机制来处理程序运行期间出现的错误。通过异常机制,我们可以更好地提升程序的健壮性。 
     unchecked exception(非检查异常),也称运行时异常(RuntimeException),比如常见的NullPointerException、IndexOutOfBoundsException。对于运行时异常,java编译器不要求必须进行异常捕获处理或者抛出声明,由程序员自行决定。 
    checked exception(检查异常,编译异常),也称非运行时异常(运行时异常以外的异常就是非运行时异常),java编译器强制程序员必须进行捕获处理,比如常见的IOExeption和SQLException。对于非运行时异常如果不进行捕获或者抛出声明处理,编译都不会通过。 
    Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。 
    Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError)、类定义错误(NoClassDefFoundError)等。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。 
    Exception(异常):是程序本身可以处理的异常。 
    Exception 类有一个重要的子类 RuntimeException。RuntimeException 类及其子类表示“JVM 常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。 
    注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。 
    通常,Java的异常(包括Exception和Error)分为可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)。 
    可查异常(编译器要求必须处置的异常):正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。 
    除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。

    应该catch什么

    其实只要是Throwable和其子类都是可以throw和catch的,那么如果在需要统一处理异常的地方,我们应该catch (Throwable th) 还是 catch (Exception)呢? 
    这两种处理的区别在于,catch throwable会把Error和其他继承Throwable的类捕捉到。而catch Exception只会捕捉Exception极其子类,捕捉的范围更小。先不考虑有其他的类继承了Throwable的情况下,第一种catch相当于比第二种catch多捕捉了把Error和其子类。 
    那么究竟Error是否需要捕捉呢?JDK中Error类的的注释(如下)里提到过,Error是一种严重的问题,应用程序不应该捕捉它。 
    An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions. The ThreadDeath error, though a “normal” condition, is also a subclass of Error because most applications should not try to catch it. 
    A method is not required to declare in its throws clause any subclasses of Error that might be thrown during the execution of the method but not caught, since these errors are abnormal conditions that should never occur. 
    Java Lanuage Spec 7 中也提到:Error继承自Throwable而不是继承自Exception,是为了方便程序可以使用 “catch (Exception)“来捕捉异常而不会把Error也捕捉在内,因为Exception发生后可以进行一些恢复工作的,但是Error发生后一般是不可恢复的。 
    The class Error is a separate subclass ofThrowable, distinct from Exception in the class  
    hierarchy, to allow programs to use the idiom “} catch (Exception e) { ” (§11.2.3)  
    to catch all exceptions from which recovery may be possible without catching errors from which recovery is typically not possible. 
    已经不难看出,Java本身设计思路就是希望大家catch Exception就足够了,如果有Error发生,catch了也不会有什么作用。

    Error可以catch吗? 可以catch了后做些其他处理吗?

    Error是可以catch的,而且也可以向常规Exception一样被处理,而且就算不捕捉的话也只是导致当前线程挂掉,其他线程还是可以正常运行,如果有需要的话捕捉Error之后也可以做些其他处理。但是Error是一种系统内部的错误,这种错误不像Exception一样是可能是程序和业务上的错误是可以恢复的。

    参考链接: 
    http://blog.csdn.net/hguisu/article/details/6155636 
    http://www.cnblogs.com/dolphin0520/p/3769804.html 
    http://doc.okbase.net/foxty/archive/120046.html

    展开全文
  • 软件工程:数据流图和结构图怎么

    万次阅读 多人点赞 2020-09-01 18:43:03
    文章目录Step 1:根据软件的功能描述,绘制数据流图:Step 2:根据数据流图,分级绘制结构图:•边界划分:•第一级分解:•第二级分解:•精化减少耦合: Step 1:根据软件的功能描述,绘制数据流图: 问题表述: ...

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,(ノ´▽`)ノ♪-》点击这里->一个宝藏级人工智能教程网站

    Step 1:根据软件的功能描述,绘制数据流图:

    问题表述

    假设的仪表板将完成下述功能:(1) 通过模数转换实现传感器微处理机接口;(2) 在发光二极管面板显示数据;(3) 指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;(4) 指示加速减速;(5) 超速警告:如果车速超过55英里/小时,则发出超速警告铃声。

    首先了解数据流图的4种基本符号

    在这里插入图片描述

    然后,对从问题描述中提取数据流图的4种成分

    数据流图的成分 映射—>方法或实体
    数据处理: 读取(轮胎)旋转信号,读取(尾气)燃料流信号,计算gph,计算燃料消耗mpg,计算里程,产生mpg显示,产生mpg显示,产生里程显示,发出超速警告,产生加速/减速显示等等。
    数据源点: 传感器
    数据终点: 发光二极管面板
    数据存储文件:
    数据流: (轮胎)旋转信号,(尾气)燃料流信号,每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等。

    难点在于我们是否在进行问题的描述之后对问题的流程有详细的理解我们很难通过单一的问题描述去把所有的数据流图的成分去映射完整,从而对问题的描述到实际的系统流程设计发生概念性的理解错误

    总而言之,对问题的描述部分的理解决定了一个系统的框架走向,因此,对问题的描述进行深入的咨询专业人士在实际的工业生产中也是必不可少的

    在这里插入图片描述

    是的,我们只考虑系统的设计部分,省略了数据源点和数据终点。术业有专攻,在实际的数据流图的绘制中加入了一些我们外行人根本看不懂的东西(“读和校验”,“收集和求平均”等等),学习的是思想,切勿纠结于细枝末节,我们继续,看完我们会有所收获的

    在这里插入图片描述

    伏尔泰说过,常识并不是大家都知道的,常见的东西。

    Step 2:根据数据流图,分级绘制结构图:

    •边界划分:

    接下来,确定输入流和输出流的边界,从而孤立出变换中心

    在这里插入图片描述

    •第一级分解:

    软件结构代表对控制的自顶向下的分配,所谓分解就是分配控制的过程(说白了,就是把系统分成3个部分,输入部分,转换处理部分,输出部分):

    在这里插入图片描述

    •第二级分解:

    把数据流图中的每个处理映射成软件结构中一个适当的模块(说白了,就是针对已经划分好的输入部分,转换处理部分,输出部分进行内部的结构划分):

    以“接收传感器信号”部分为例,进行结构图的绘制,仔细观察结构图的层次关系,不就是把数据流图中接收传感器信号的部分按箭头顺序拎起来了嘛??是这样吧<—doge.gif)

    在这里插入图片描述

    “数据转换控制”的结构图如下:

    在这里插入图片描述

    “驱动仪表板”的结构图如下:

    在这里插入图片描述

    •精化减少耦合:

    软件结构进一步精化,对初步分割得到的模块进行再分解或合并

    具体到数字仪表板的例子,可做如下某些可能的修改:(1)输入结构中的模块“转换成rpm”和“收集sps”可以合并;(2)模块“确定加速/减速”可以放在模块“计算mph”下面,以减少耦合;(3)模块“加速/减速显示”可以相应地放在模块“显示mph”的下面

    在这里插入图片描述

    •添加数据/控制信号流向:

    结构图中一个方框代表一个模块,框内注明模块的名字或主要功能。

    方框之间的箭头(或直线)表示模块的调用关系。位于上方的方框代表的模块调用下方的模块。(尾部是空心圆表示传递的是数据。实心圆表示传递的是控制信息。)
    在这里插入图片描述

    最后,希望这篇博文对你有实际的帮助和加深理解。软件工程,画图并不难,难的是如何将问题描述转化为项目功能的具体需求,难的是结构的设计和统筹

    都看到这里了,确定不点赞收藏再走嘛==(ಥ_ಥ)== !

    在这里插入图片描述

    展开全文
  • 1、软件设计的启发规则有那些? 答:1.改进软件结构提高模块独立性 2. 模块规模应该适中 ...​ 层次模块结构图主要关心的是模块的外部属性,即上下级模块、同级模块之间的数据传递和调用关系,而并...
  • Javascript中文档对象模型(DOM)的层次结构图,是开发人员清楚的知道DOM的层次机构。
  • GUI组件类层次结构图

    千次阅读 2010-04-19 14:01:00
    轻量级组件略。
  •   软件工程中应用到的图全部有:系统流程图、数据流图、数据字典、ER图、状态转换图、层次方框图、Warnier图、IPO图、层次图、HIPO图、结构图、程序流程图、盒图、PAD图、判定表、判定树、过程设计语言、jackson图...
  • 总结前文的内容,出Gallery的基本架构层次图如下: 这里我省略了ActionBar等内容,只说主要界面。Activity主界面对应于GLRootView(继承自GLSurfaceView)。 由于Gallery的Activity使用了ActivityState这一类来...
  • 总体设计-模块化 层次结构图   1、模块化设计的原理包括什么?为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。 模块化就是把程序划分成独立命令且可独立访问的模块,...
  • 2.二叉树结构图的打印 结语 1.二叉树层次遍历 主要用到队列操作,先入队根结点,再不断出队,判断出队结点是否有左右孩子,有则入队,直到队列空为止。 层次遍历挺简单,但是如果要输出结点序列时分清该结点...
  • 出软件结构图

    2012-06-28 21:18:12
    我校要开发一套办公自动化系统,其中...(软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表示,其主要内容有模块及模块的控制关系)
  • 如何出FPN论文中的金字塔结构图

    千次阅读 2019-03-21 21:01:51
    首先对上进行分析,这个分为左边的特征提取过程和右边的上采样过程,其结构类似金字塔,一眼看去给人一种层次感。我们将这个的完成分为四个部分: 1、首先是左边的特征提取过程,在这个部分之前先分析一下...
  • 使用GraphVizcaffe/torch的网络结构图

    千次阅读 2016-10-19 15:14:16
    caffe的Python接口中有一个很不错的功能:网络结构图,虽然得并不好看,但可以给人一种直观的感受。 一、准备  首先caffe的python接口当然是必备的了,还没有生成python接口的同学可以参照我的上一篇博客来...
  • 层次和HIPO层次用来描述软件的层次结构。虽然层次的形式和描绘数据结构的层次方框相同,但是表现的内容却完全不同。层次中的一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框那样表示...
  • 相对于人类的自然语言,描绘复杂结构具有直观和整体的特征,有着不可替代的表现力。软件开发是创造性的劳动,开发人员几乎在每一分钟都要做出某些选择,每一个选择都好像决定着最后的结果。绘图的时候也是如此,...
  • iOS操作系统的层次结构

    千次阅读 2014-12-19 10:31:51
    iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心...下面是IOS系统结构图。 iOS结构图  1、Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件
  • iOS的层次结构概述

    千次阅读 2016-08-01 21:39:18
    在学习iOS开发之前,我们有必要了解一下iOS的层次结构,这样也可以让自己对整个系统有清晰的认识,能够对自己所从事的工作有一个合理的定位。
  • WORD2007 结构层次图的画法

    千次阅读 2013-05-03 15:06:34
    2.点击插图中的“SmartArt”选项,弹出如下对话框,选择组织结构图。如图1  如图1 3.选择后,word中就会出现,已选择的组织结构样式。 4.增加、删除同一级(即同事框)的框。单击选中本级里面的一个...
  • 用VisioUML图 类结构图(基本篇)

    千次阅读 2012-08-03 10:15:32
    ...因为类图很直观,所以恐怕C++成员首先接触到的应该就是类图...在这篇文章中我们要将下面一个在MFC程序中随处可以见到类用UML表现出来. class CGraphicObject {  CRect m_rectBound; public:  BOOL Set
  • 数据流图以及结构图

    千次阅读 2019-01-07 18:03:58
    某大学教学管理系统子系统的功能说明如下: 首先接受学生提交的学生证和申请单,根据学生档案文件检验学生证的有效性和申请单是否填写的正确,如果有误则拒绝,如果无误根据学生的...要求:用结构化方法学对教...
  • I/O子系统的层次结构 I/O软件涉及的面非常广,往下与硬件有着密切的联系,往上又与用户直接交互,它与进程管理、存储器管理、文件管理等都存在着一定的联系,即它们都可能需要I/O软件来实现I/O操作。 为了使...
  • 计算机组成及层次结构

    千次阅读 热门讨论 2019-03-29 16:23:04
    计算机组成中最经典的体系结构就是冯诺依曼体系,打心眼儿里欣赏老爷子,下为示,图片来自百度 其实操作系统再难脱离不了这个体系,把这个进行拆分,分为主机及外设 因为运算器及控制器的结构(其实里面都是...
  • 计算机组成原理-存储器的层次结构

    千次阅读 2018-07-31 13:17:55
    第三章 存储器的层次结构 (一)存储器的分类 按存储介质分类 (1)半导体存储器:  TTL,MOS,SSD。  易失 (2)磁表面存储器:  磁头,载磁体  非易失 (3)磁芯存储器:  硬磁材料,环状元件  非...
  • 存储器层次结构(一)

    千次阅读 2017-05-25 18:52:57
    1、存储器层次结构: 2、静态RAM: 3、动态RAM: 4、DRAM阵列: 5、南北桥: 6、磁盘: 7、对扇区的访问时间: 8、格式化的磁盘容量: 9、操作系统执行读数据到主存的底层: 10、读文件时间: 11、适配器: 12、固态...
  • 数据结构 的遍历

    千次阅读 多人点赞 2018-05-11 18:34:15
    的遍历分为深度优先遍历(Depth_First_Search)和广度优先遍历(Breadth_First_Search),分别简称为DFS和BFS。的遍历是从某一个顶点出发,访问其他顶点,但是不能重复访问(每个顶点只能访问一次)。深度优先...
  • 使用visio 2010绘制组织结构图

    万次阅读 2017-05-03 11:39:14
    visio组织结构图
  • 功能结构图就是以功能模块为类别,介绍模块下其各功能组成的图表,体现了产品功能的同时,也展示了功能的从属关系。 2. 作用: 产品设计时,辅助思路梳理,避免功能概念模糊、缺失。 3. 注意点: 绘制功能结构时,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,798
精华内容 30,319
关键字:

层次结构图怎么画