精华内容
下载资源
问答
  • 话说软件详细设计工具

    千次阅读 2012-10-06 17:09:59
     程序流程图又称为程序框图,它是最古老,应用最广泛且最争议描述详细设计工具.它易学,表达算法直观,缺点是 不够规范,特别是使用箭头会使质量受到很大的影响. 为了使它能够描述结构化的程序,限制只能用

          在软件设计是需要写软件详细说明书,设计此文档的时候,肯定少不了工具.现在我们就来了解一下软件详细设计的


    工具.


    1)程序流程图

       

          程序流程图又称为程序框图,它是最古老,应用最广泛且最有争议描述详细设计的工具.它易学,表达算法直观,缺点是


    不够规范,特别是使用箭头会使质量受到很大的影响.


    为了使它能够描述结构化的程序,限制只能用以下所述的三种基本结构:

     

    (a)顺序结构图

     


    (b)选择结构



     

    (c) "当型"结构




    (d)"直到型"循环


          


    2)N-S图


         为了克服流程图在描述程序逻辑时的随意性等缺点,1973年 ,Nassi 和Shneiderman代表了题为"结构化程序的流程


    图技术"的文章,提出用盒式图来代替传统的流程图,又称


    为"N-S图",N-S图的主要特点就是只能藐视结构化程序所允许的标准结构.


    N-S图基于三种基本程序结构的表现方法如下所示:


    (1)顺序结构


     


    (2) 选择结构


     


    (3) 循环结构




    3)PAD图


         问题分析图(Problem Analysis Diagram,PAD)采用一种由左向右展开的二维树形结构图来描述程序的逻辑.用PDA图


    描述程序的流程能使程序一目了然.根据PDA图编出的程序,


    不管由谁来编写,都会得到风格相同的源程序.


    例如:将数组A(1)~A(10)从大到小进行选择法排序的算法.如下两个图所示:


     



     

    4)过程设计语言


         过程设计语言(Process Design Language,PDL),也称为伪码,是一种用于描述模块算法设计和处理细节的语言.一方


    面,PDL具有严格的关键字外层语法,用于定义控制结构和数


    据结构;另一方面,PDL表示实际操作和条件的内层语法又是灵活自由的,以便可以适应各种工程项目的需要

    .

           因此,PDL 是一种混杂语言,它在使用一种语言词汇的同时有使用另一种语言的语法.PDL与实际的高级程序设计语


    言的区别在于:PDL的语句中嵌有自然语言的叙述,故PDL是不能被编译的.

     


    展开全文
  • 详细设计

    千次阅读 热门讨论 2018-12-23 19:42:02
    详细设计工具: 1、传统程序流程图(程序框图) 2、N-S结构流程图(盒图) 3、PAD图 4、PDL(过程设计语言) 5、HIPO图 详细设计规格说明书: 1、详细设计说明书 2、详细设计评审: ...

    目录

     

    详细设计的任务:

    详细设计的原则:

    详细设计的方法:

    详细设计的工具:

    1、传统程序流程图(程序框图)

    2、N-S结构流程图(盒图)

    3、PAD图

    4、PDL(过程设计语言)

    5、HIPO图

    详细设计规格说明书:

    1、详细设计说明书

    2、详细设计评审:

    详细设计文档的编写:


    详细设计的任务:

    1、为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述。

    2、确定每一模块使用的数据结构,为以后的编写程序做好充分的准备。

    3、确定模块接口的细节。

    4、要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码进行预订测试。

    详细设计的原则:

    1、模块的逻辑描述要清晰易读、正确可靠。

    2、采用结构化设计方法,改善控制结构,降低程序的复杂程度,提高程序的可读性、可测试性、可维护性。

          A、少使用GoTo语句,保证程序结构的独立性。

          B、使用单入口单出口的控制结构,确保程序的静态结构和动态执行情况一致,保证程序易理解。

          C、控制结构采用顺序、选择和循环三种。

          D、用自顶向下逐步求精方法进行程序设计。

          E、经典的控制结构有顺序、IF THEN ELSE 分支、DO-WHILE循环、CASE、DO-UNTIL循环。

    3、选择恰当描述工具来描述各模块算法。

    详细设计的方法:

    详细设计的工具:

    图形工具、表格工具、语言工具。

    1、传统程序流程图(程序框图)

    主要符号:

    5种基本控制结构:

    (a)顺序型、(b)选择型、(c)while型循环、(d)until循环、(e)多种情况选择。

    2、N-S结构流程图(盒图)

    3、PAD图

    基本符号:

    主要优点:

    A、程序从最左边竖线上端开始执行,自上而下、自左向右执行。

    B、结构化程序结构。

    C、结构清晰、层次分明。

    D、既可以表示程序逻辑,也可以用于描绘数据结构。

    E、用DEF逐步详细描述,可支持自动向下、逐步求精的设计方法,

    4、PDL(过程设计语言)

    5、HIPO图

    详细设计规格说明书:

    1、详细设计说明书

    包括表示软件结构的图表、对逐个模块的程序描述,包括算法和逻辑流程。

    2、详细设计评审:

    A、复审的指导原则:a、一般不让用户和其他领域的代表参加。b、欢迎别人提出批评和建议,防止把复审编程辩论。c、提出的问题应详细记录,但不要当场解决问题。c、复审结束前做出本次复审能否通过的结论。

    B、复审的主要内容:通过采用答辩方式,与会者要提前审阅文档资料,设计人员对设计方案详细说明后,回答与会者的问题并记录各种重要的评审意见。

    详细设计文档的编写:

    展开全文
  • 这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的所有工具包,主要内容包括PyQt5、PyQt5-tools的依赖包安装和Qt Designer、PyUIC、PyRcc三个工具的设置。最后简单演示了PyQt5的调用方式及三个工具...

    首页图
    摘要:Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合。这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的所有工具包,主要内容包括 P y Q t 5 \color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{Q}\color{#4285f4}{t}\color{#34a853}{5} PyQt5 P y Q t 5 \color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{Q}\color{#4285f4}{t}\color{#34a853}{5} PyQt5- t o o l s \color{#4285f4}{t}\color{#ea4335}{o}\color{#fbbc05}{o}\color{#4285f4}{l}\color{#34a853}{s} tools的依赖包安装和 Q t \color{#4285f4}{Q}\color{#ea4335}{t} Qt D e s i g n e r \color{#4285f4}{D}\color{#ea4335}{e}\color{#fbbc05}{s}\color{#4285f4}{i}\color{#34a853}{g}\color{#ea4335}{n}\color{#fbbc05}{e}\color{#4285f4}{r} Designer P y U I C \color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{U}\color{#4285f4}{I}\color{#34a853}{C} PyUIC P y R c c \color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{R}\color{#4285f4}{c}\color{#34a853}{c} PyRcc三个工具的设置。最后简单演示了PyQt5的调用方式及三个工具的使用方法,其目录如下:

    ➷点击跳转至主要安装步骤介绍部分☇


    前言

        很多情况下需要为程序设计一个GUI界面,在Python中使用较多的用户界面设计工具是PyQt。由于通常我们使用较多的IDEPyCharm,为了方便地使用PyQt进行用户界面设计,这里总结了在PyCharm安装配置的简单安装方法。可能有人还不清楚这几个工具的用途,这里对要安装配置的依赖包和工具简介如下:

    PyQt5PyQt5是一套Python绑定Digia QT5应用的框架。Qt库是最强大的GUI库之一,PyQt5做为Python的一个模块,它有620多个类和6000个函数和方法。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIXWindowsMac OSPyQt5是双重许可。开发者可以在GPL和商业许可之间进行选择,详细可访问PyQt5的官方网站。——PyQt5中文教程
    PyQt5-toolsPyQt5中没有提供常用的Qt工具,比如图形界面开发工具Qt DesignerPyQt5-tools中包含了一系列常用工具。——PyQt5工具文档
    Qt Designer:可以通过Qt Designer来编写UI界面,Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。Qt DesignerPyQt5-tools包一起安装,其安装路径在 “Python安装路径\Lib\site-packages\pyqt5-tools”下。——PyQt5速成教程
    PyUICQt Designer生成的.ui文件(实质上是XML格式的文件)可以通过pyuic5工具转换成.py文件。——PyQt5速成教程
    PyRcc:在使用PyQt开发界面时,在Qt Designer中使用的图片等资源需要将其编译为py文件,这时需要用到PyRcc工具方便地将qrc文件转换为py文件。——PyQt5安装教程

        作者本人已经进行配置测试了多台Windows 10电脑,特通过本教程将安装配置过程展现给大家,本教程持续更新,如果你有更好的方法或问题,欢迎大家留言。


    1. 工具包安装

        对于一个新创建的Python环境,首先需要安装PyQt的相关工具包,因为是Python的依赖包所有可以通过pip进行安装,由于我们在PyCharm中进行程序设计,这里我们可以通过PyCharm中的环境管理界面进行安装。对于新建的项目test,其文件界面如下图(点击可放大查看)所示:

    初始项目
    一、点击菜单栏“File”,选择弹出的“Setting”选项,如下图(点击可放大查看)所示:

    环境配置1
    二、选择“Project”,选择弹出的“Project Interpreter”选项,点击可看到当前已安装的环境和依赖包,如下图(点击可放大查看)所示,点击右侧“加号”按钮可添加新的依赖包:

    目前安装的依赖包界面

    PyQt5

    三、可以看出当前尚未安装pyqt5的依赖包,点击“加号”按钮弹出安装界面如下图(点击可放大查看)所示,在搜索框输入“PyQt5”可以搜索到对应的依赖包,点击“Install Package”按钮进行安装(绿色框处可选择安装版本),等待安装完成:

    安装pyqt5

    PyQt5-tools

    四、同样地安装PyQt5-tools工具包,在搜索框中输入“PyQt5-tools”,选中要安装的依赖包,点击“Install Package”进行安装,如下图中所示的步骤所示:

    pyqt5-tools安装过程
    五、这两个工具包安装完成,返回上一界面可以看到依赖包管理界面中出现了这两个依赖包,如下图所示:

    安装完成界面
        至此PyQt的工具包安装完成,在编辑器或命令行可以通过“import PyQt5”调用该库。这里确定一下安装位置,正常情况下这两个包的安装位置在Python的安装目录下的“\Lib\site-packages\”目录,如我这里的两个安装位置如下图所示(我这里Python为虚拟环境,安装位置在“E:\test\venv”):

    安装位置


    2. 设计工具配置

        依赖包安装完成,接下来介绍如何在PyCharm中添加工具,其实这几个工具在安装PyQt5-tools的时候已经包括在目录中,只不过要在PyCharm中方便使用还需要一些配置步骤。首先为了保证Windows系统能够正确识别PyQt5-tools的常见命令,还需要将PyQt5-tools的安装目录添加到系统环境变量Path中。

    环境变量设置

    一、在文件管理器中右击“我的电脑”,弹出快捷菜单,选择“属性”→“高级系统设置”弹出系统属性对话框,如下图所示:

    配置系统变量
    二、选择“高级”,点击下面的“环境变量”,弹出环境变量设置框,选择系统变量中的“Path”变量,如下图所示:

    环境变量
    三、双击“Path”环境变量,进入环境变量编辑界面,点击“编辑”在最后添加pyqt5-tools的安装位置,点击确定,如下图所示:

    添加path环境变量
    这一步也可以选择“浏览”,通过文件夹选择对话框选中pyqt5-tools的安装位置,其安装路径在 “Python安装路径\Lib\site-packages\pyqt5-tools”(需根据实际情况进行修改),如下图(点击放大图片)所示:

    浏览选择安装位置
    三、在环境变量界面中点击“新建”,在系统环境变量中新建名为“QT_PLUGIN_PATH”的变量,如下图所示:

    创建变量
    该变量值为Qt插件的安装位置,可通过“浏览目录”依次找到“plugins”文件夹,通常其位置在“Python安装路径\Lib\site-packages\PyQt5\Qt\plugins\”位置(需根据实际情况修改),点击“确定”,如下图所示:

    变量位置
        环境变量设置完成,接下来介绍在PyCharm中设置Qt工具,主要包括Qt DesignerPyUICPyRcc这三个工具,前言中已介绍其作用,下面依次介绍工具设置过程。

    Qt Designer

    一、点击菜单栏“File”,弹出下拉框,选择“Setting”,弹出设置界面。在设置界面中选择“Tools”→“External Tools”,该部分操作如下图所示:

    添加工具
    点击“加号”按钮新建工具,弹出工具配置界面:在“Name”一栏填写“Qt-Designer”;在“Program”一栏填写designer.exe文件位置,我这里位置为:“E:\test\venv\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe”(需根据实际情况填写);在“Working directory”一栏填写“$FileDir$”。最后点击“OK”,如下图所示:

    Designer配置
    二、点击菜单栏“Tools”,弹出下拉框,选择“External Tools”,弹出工具选择框。选择“Qt-Designer”并点击,若出现Qt Designer的软件界面则表示配置成功,当然也可能出现如下的问题框:

    运行Qt-Designer
    若出现以上问题,解决方案是将pyqt5_tools\Qt\plugins文件夹进行复制,覆盖到site-packages\pyqt5_tools\Qt\bin目录下,覆盖后的文件夹如下:

    覆盖文件夹
    以上操作后,再次按照步骤二的操作即可打开Qt Designer软件界面。

    PyUIC

    一、同样按照以上方式添加PyUIC工具,点击“加号”按钮,在弹出的编辑设置框中Name一栏填写“PyUIC”;

    二、Program中填写pyuic5.exe这个程序的文件路径,一般在“Python环境目录\Scripts\pyuic5.exe”(此处需根据实际情况修改),也可以点击右侧的文件夹选择按钮浏览文件夹选中该位置;

    PyUIC配置

    三、在Arguments中内容填写如下:

    $FileName$
    -o
    $FileNameWithoutExtension$.py
    

    四、Working directory内容填写如下:

    $FileDir$
    

    五、完成填写后,点击“OK”,以上步骤参考图片中的步骤。

    PyRcc

    一、PyRcc工具的配置方式与PyUIC相似,同样在“External Tools”设置中点击“加号”按钮,在设置框中“Name”一栏填写“PyRcc”;

    PyRcc配置
    二、Program中填写pyrcc5.exe这个程序的文件路径,一般在“Python环境目录\Scripts\pyrcc5.exe”(此处需根据实际情况修改),也可以点击右侧的文件夹选择按钮浏览文件夹选中该位置;

    三、在Arguments中内容填写如下:

    $FileName$
    -o
    $FileNameWithoutExtension$_rc.py
    

    四、Working directory内容填写如下:

    $FileDir$
    

    五、完成填写后,点击“OK”,以上步骤参考图片中的步骤。


    3. 使用演示

        依赖包和工具安装配置完成,下面简单演示一下如何使用。首先打开或新建一个Python项目,点击菜单栏中的“Tools”,选择“External Tools”,可以看到之前设置好的三个工具,选择“Qt Designer”打开Qt设计工具,步骤如下图所示:

    打开工具
        打开软件后,在弹出的引导界面选择“Main Window”,然后点击“Create”按钮,创建一个窗体界面,如下图所示:

    在这里插入图片描述
        在软件界面左侧的控件选择栏中拖动三个“Push Button”到中间的设计框中,双击按钮依次修改显示字符,如下图所示:

    在这里插入图片描述
        在软件界面左侧的控件选择栏中拖动两个“Label”控件到中间的设计框中,如下图所示:

    拖动图片

        如下图所示,点击“Resource Browser”下的铅笔图表,弹出新建qrc文件的编辑框。

    新建qrc文件
        如下图所示,点击新建(1号标注)按钮新建一个qrc文件,创建qrc文件后点击添加文件(2号标注),向qrc资源文件中添加两张图片,最后点击“OK”确定。

    添加文件
        选中添加进来的label窗体,在右侧属性编辑栏中的“text”属性中“pixmap”一栏选择“Choose Resource”,如下图所示:

    选择资源
        在资源选择框中选择刚刚添加进qrc的图片,点击确定,对另一个label也进行同样的操作,如下图所示:

    在这里插入图片描述
        最终完成后的界面如下图所示,点击菜单栏“File”下“Save”将该界面保存为ui文件并置于项目目录下。

    最终界面
        在PyCharm中选中保存的ui文件,使用“Tools”下的“External Tools”中的“PyUIC”工具将该文件转换为需要的py文件。

    在这里插入图片描述
        在PyCharm中选中保存的qrc文件,使用“Tools”下的“External Tools”中的“PyRcc”工具将该资源文件转换为需要的py文件。

    在这里插入图片描述
        在PyCharm中打开使用“PyUIC”工具转换的py文件,在下面添加如下代码:

    if __name__ == '__main__':
        import sys
        from PyQt5.QtWidgets import QApplication, QMainWindow
        import pics_ui_rc # 导入添加的资源(根据实际情况填写文件名)
        app = QApplication(sys.argv)
        MainWindow = QMainWindow()
        ui = Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()
        sys.exit(app.exec_())
    

        在PyCharm中点击运行该文件,最终运行界面如下所示:

    运行界面


    结束语

        因为本博文主要介绍安装步骤,关于PyQt的设计博文中介绍较简单,更加详细的讲解将在后面的教程中介绍。由于博主能力有限,博文中提及的方法即使经过试验,也难免会有疏漏之处。希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的实现方法也请您不吝赐教。

    展开全文
  • 软件概要设计与详细设计

    万次阅读 多人点赞 2018-09-29 21:22:44
    (一) 概要设计的任务与步骤 1、总体设计的必要性:可以站在全局角度上,花较少成本,从抽象的层次上分析对比多种可能性的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高...

    (一) 概要设计的任务与步骤

    1、总体设计的必要性:可以站在全局角度上,花较少成本,从抽象的层次上分析对比多种可能性的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。

    2、总体设计的两个阶段:

    (1)系统设计阶段:确定系统的具体实现方案

    (2)结构设计阶段:确定软件结构。

    3、总体设计的9个步骤:

    (1)设想供选择的方案

    (2)选取合理的方案

    (3)推荐最佳方案

    (4)功能分解

    (5)设计软件结构

    (6)设计数据库

    (7)制定测试计划

    (8)书写文档

    (9)审查和复审

    (二) 软件设计的基本原则、抽象与逐步求精方法

    传统软件工程方法学采用结构化设计方法(SD)

    1、从工程管理角度结构化设计分为两步:

    ①概要设计:讲软件需求转化为数据结构和软件系统结构

    ②详细设计:过程设计,通过对结构细化,得到软件详细数据结构和算法

    2、设计原理

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

            ①模块定义:又称“构件”一般指用一个名字调用的相邻程序元素序列。

            ②模块化设计:按适当的原则把软件划分为一个个较小的、相关而又相对独立的模块。

            但无线的划分模块会导致接口成本提高。

    (2)抽象:抽出事物的本质特性,暂不考虑细节

    (3)求精:能集中精力解决主要问题,尽量推迟对细节问题的考虑,实际上是一个细化的过程与抽象是互补的概念

    (4)信息隐藏:每个模块的实现细节对于其他模块来说是隐藏的。模块中所有包含的信息是不允许其他不需要这些信息的模块访问的。每个客户只能通过接口来了解该模块,而所有的实现都隐藏起来的。

    (5)局部化:把一些关系密切的软件元素物理地址放的彼此靠近

    (6)模块独立:是模块化、抽象、信息隐藏和局部化概念的直接结果。具有独立功能且和其他模块没有过多作用

                  为什么模块独立?两条理由:容易分工合作;容易测试和维护,修改工作量比较小,错误传播范围小,扩充功能容易。

    3、两个定性度量标准:耦合、内聚

    (1)耦合:软件结构中间不同模块间互联程度度量

        取决:模块接口复杂程度,通过接口数据。追求尽可能松散耦合系统。

        耦合的三大类:无耦合、松散耦合、紧密耦合(避免)

        常见:

            非直接耦合:两模块分别能独立地工作不需要另一个模块存在

            数据耦合:两模块通过参数交换数据信息

            控制耦合:两个模块通过参数交换控制信息(包括数字形式)。如:依赖控制信息决定执行步骤

            公共耦合:

                两种可能:①(松散)一模块送数据,一模块取数据,等价数据

                                  ②(紧密)两个模块既往公共环境送又从里面取,介于数据耦合和控制耦合之间

            内容耦合(相当紧密):

                ①一模块访问另一模块内部数据

                ②一模块不通过正常入口转到另一模块内部

                ③两模块有部分程序代码重叠(汇编程序)

                ④一模块有多个入口

        原则:尽量使用数据耦合,少使用控制耦合,限制使用公共环境耦合,完全不用内容耦合。

    (2)内聚:模块内各元素彼此结合紧密程度

           功能内聚(10分):一模块中各部分是完成某一功能必不可少的组成部分

           顺序内聚(9分):模块内处理元素功能紧密相关,顺序执行。如:修改学生信息,先查找后修改

            通信内聚(中等7分):一模块内各功能部分都使用相同输入数据,或产生相同输出数据。如:根据编号获得配件单价和库存量输出“库存量”、“单价”

            过程内聚(中等5分):模块内处理元素相关,特定次序执行。如:把流程图中循环部分、判定部分,计算部分分成三个模块,这三个模块内聚为过程内聚

            时间内聚(3分尽量不出现):多为多个功能模块,要求所有功能在同一时间内执行。如:初始化模块

            逻辑内聚(1分尽量不出现):一模块完成功能在逻辑上属相同类似一类。

            偶然内聚(0分尽量不出现):模块内各部分没有联系,即使有也很松散

    4、启发规则

    (1)改进软件结构提高模块独立性

    (2)模块规模应适中:通常语句行数在50~100行(一页纸),最多500行

    (3)深度、宽度、扇出和扇入都应适当

    深度:软件结构控制层数,标志一系统大小和复杂程度

    宽度:软件结构同一层模块最大值,越大系统越复杂

    扇出:一模块直接控制(调用)模块数3~9

    扇入:有多少上级模块直接调用它,越大共享该模块上级模块越多(能直接调用该模块的数目)

    (4)模块作用域应在控制域内

    作用域:受该模块内判定影响的所有模块

    控制域:模块本身及所有直接或间接从属它的模块集合

    改善一:判定点上移

    改善二:将在作用域不在控制域内的模块下移

    (5)降低模块接口复杂程度

    (6)设计单接口,单出口模块

    (7)模块功能可预测:输入数据相同,产生同样输出;模块功能防止过分受限。

    (三) 详细设计的任务

    1、任务:确定模块算法;确定模块使用数据结构;确定接口(系统外部接口、用户界面、内部模块间接口细节、输入数据和输出数据)

    2、人机界面设计

    ①系统响应时间:长度0.1~1秒正常;处理1-10秒鼠标显示成沙漏;处理10~18秒由为帮助显示成处理进度;18秒以上显示处理窗口或显示进度条

    ②用户帮助措施:手册和联机帮助两种

    ③出错信息处理:以用户可以理解的术语;提供清楚,易理解报错信息;从错误中恢复的建设性意见;可造成负面后果。

    ④命令交互:建议保留命令形式交互方式(控制序列、功能键、控制宏机制、键入命令)

    3、程序流程图

    优点:对控制流出层的描述很直观,便于初学者

    缺点:①程序流程图本质上不是逐步求精的好工具,它诱使程序员过早的考虑程序的控制流程,而不考虑程序的全局结构

    ②程序流程图中箭头代表控制流,因此程序有不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制

    ③程序流程图不易表示数据结构

    4、盒图(N-S图)

    特点:

    ①功能域明确

    ②不可能任意转移控制

    ③很容易确定局部和全程数据的作用域

    ④很容易表现嵌套关系,也可以表示模块的层次

    5、PAD图

    特点:

    ①设计出的程序必然是结构化程序

    ②描绘的程序结构十分清晰

    ③表示程序逻辑,易读、易懂、易记

    ④容易将PAD图转换成高级语言源程序

    ⑤可用于表示程序逻辑,也可用于描绘数据结构

    ⑥支持自顶向下、逐步求精方法的使用

    6、判定表:能够清晰表示复杂条件组合与应做动作间对应关系

    四部分

    左上:列出所有条件

    左下:所有可能的动作

    右上:表示各种条件组合的矩阵

    右下:和每种条件组合相对应的动作

    例:

    7、判定树

    优点:形式简单,易看出含义,易于掌握和使用

    缺点:简介性不如判定表,相同数据重复写多遍,越接近叶端重复次数越多

    8、PDL:伪码,用正文形式表示数据和处理过程设计工具

    PDL具有严格关键字外部语法,定义控制结构和数据结构

    PDL表示实际操作和条件的内部语法灵活自由,适应各种工程项目需要。

    9、程序复杂度(小于等于10)

    使用比较广泛的cCabe方法

    根据过程设计结果画出相应的流图

    流图描述程序控制流,基本图形符号

    计算环形复杂度:

    三种方法:V(G)=区域数;V(G)=E-N+2(E为流图边数,N为流图节点数);V(G)=P+1(P为判定点数)

    (四) 结构化程序设计的概念和思想

    1、结构化程序设计

    (1)经典定义:如果一个程序的代码块仅仅通过顺序、选择、和循环3种基本控制结构进行连接,并每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

    (2)扩展定义:可限制使用GOTO语句,DO_UNTIL、DO_CASE

    (3)修正定义:leave和break,可从循环中转移出来。

    (五) 面向对象程序设计的概念和思想

    数据结构既是影响程序的结构也是影响程序处理过程,可以数据结构导出程序的处理过程,适合详细设计

    两种面向数据结构设计方法:Jackson和Warnier方法

    1、Jackson图

    优点:

    ①便于表示层次结构,是对结构进行自顶向下分解的有力工具

    ②形象直观可读性好

    ③既能表示数据结构也能表示程序结构

    步骤:

    ①确定输入数据和输出数据逻辑结构,用Jackson图表达

    ②确定输入结构和输入结构中有对应关系(因果)的单元

    ③描绘数据结构的Jason图导出描绘程序结构的Jason图

    ④列出所有操作和条件,分配到Jason图中

    ⑤用伪码表示

    描述数据结构图形符号:顺序、选择、重复

    改进:变成直线

    (六) 程序流程图

    (七) 模型-视图-控制器框架(MVC)

    本节参考《百度百科》

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

    Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
      通常模型对象负责在数据库中存取数据。

    View(视图)是应用程序中处理数据显示的部分。
      通常视图是依据模型数据创建的。

    Controller(控制器)是应用程序中处理用户交互的部分。
      通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

    优点

    耦合性低

    视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

    模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果把数据库从MySQL移植到Oracle,或者改变基于RDBMS数据源到LADP,只需改变模型即可。一旦正确的实现了模型,不管数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松耦合的构件。 

    重用性高

    随着技术的不断进步,需要用越来越多的方式来访问应用程序。MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。由于已经将数据和业务规则从表示层分开,所以可以最大化的重用代码了。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。

    生命周期成本低

    MVC使开发和维护用户接口的技术含量降低。

    部署快

    使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。

    可维护性高

    分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

    有利软件工程化管理

    由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。

    缺点

    没有明确的定义

    完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。

    不适合小型,中等规模的应用程序

    花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。

    增加系统结构和实现的复杂性

    对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

    视图与控制器间的过于紧密的连接

    视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

    视图对模型数据的低效率访问

    依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

    一般高级的界面工具或构造器不支持模式

    改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,会造成MVC使用的困难。

    展开全文
  • 详细设计说明书

    万次阅读 多人点赞 2019-06-22 23:08:06
    目的是对该项目进行详细设计,在概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试做准备。本详细设计说明书的预期读者为本项目小组的成员以及对该小程序感兴趣,在以后想对...
  • 软件界面设计工具_3款合集

    千次下载 热门讨论 2010-06-29 03:52:47
    在软件设计阶段,交互设计师或者产品经理等常常需要使用一些工具(比如Visio、Axure RP、Flash或者OmniGraffle等)制作出静态稿或者原型来表达设计思想。这些工具是各各的优势,当然也各各的缺点啦。那么腾讯CDC...
  • Axure RP一个专业的快速原型设计工具

    千次阅读 2014-10-25 22:25:46
    Axure RP是一个专业的快速原型设计工具。Axure(发音:Ack-sure),代表美国Axure公司;RP则是Rapid Prototyping(快速原型)的缩写。Axure RP--是一个非常专业的快速原型设计的一个工具,客户提出需求,然后根据...
  • 软件工程——总体设计与详细设计

    千次阅读 2020-05-14 11:12:37
    需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计
  • 数字IC前端后端的区别,数字IC设计流程与设计工具

    万次阅读 多人点赞 2018-11-27 19:57:23
    数字IC就是传递、加工、处理数字信号的IC,是...主要包括:基本的RTL编程和仿真,前端设计还可以包括IC系统设计、验证(verification)、综合、STA、逻辑等值验证 (equivalence check)。其中IC系统设计最难掌握,它需...
  • 滤波器设计分析工具FDATOOL

    千次阅读 2017-04-23 16:57:58
    FDATOOL(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具。 FDATOOL界面如图所示,总共分两大部分:一部分是Design Filter,在界面的下半部,用来设置滤波器的设计参数;另一...
  • 软件工程导论—详细设计

    千次阅读 多人点赞 2020-05-09 12:47:52
    1. 结构程序设计 2. 人机界面设计 3. 过程设计工具 4. 面向数据结构的设计方法 5. 程序复杂程度的定量度量
  • 详细设计不一定是一份文档,也不一定是Word文档,详细设计也不一定叫“详细设计”,时候“编码就是设计”也是未尝不可的。对于MIS类型系统来说,架构设计和数据库设计做好的前提下,详细设计的难度其实是比较小的...
  • DirectX修复工具

    万次阅读 多人点赞 2011-11-12 11:10:55
    最后更新:2019-9-5 For English version, ...DirectX修复工具最新版:DirectX Repair V3.9 标准版NEW! 版本号:V3.9.0.29371 大小: 30.7MB/7z格式压缩,98.7MB/zip格式压缩 ,231MB/解压后 其他版本:增强版 在...
  • 推荐的四款产品原型设计工具

    千次阅读 2017-02-12 23:11:53
    天天和产品打交道,不时要做一些页面原型、离不开各种工具,工欲善其事必先利其器,好的工具软件可以大大提高工作效率,工具优劣,大家按需取之。原型设计工具我暂时把它分为两类,Web应用原型设计工具及软件...
  • 详细设计模板

    千次阅读 2019-06-19 16:20:12
    说明编写详细设计方案的主要目的。 说明书编制的目的是说明一个软件系统各个层次中的每个程序(每个模块或子程序)和数据库系统的设计考虑,为程序员编码提供依据。 如果一个软件系统比较简单,层次很少,本文件...
  • 思考详细设计

    万次阅读 2006-08-02 18:59:00
    架构设计主要从系统整体上来考虑使用什么样的架构、如何划分模块以及制定模块间的通信规则。因此架构设计从规模或者粒度上都比较好把握。而详细设计则与架构设计不同,它的工作量通常不小而且粒度不好把握。所以详细...
  • 如何撰写软件详细设计内容?

    万次阅读 2018-06-21 10:38:48
    1 引言1.1 编写目的说明编写详细设计方案的主要目的。说明书编制的目的是说明一个软件系统各个层次中的每个程序(每个模块或子程序)和数据库系统的设计考虑,为程序员编码提供依据。如果一个软件系统比较简单,...
  • Winform可视化打印模板设计工具(含源码)

    千次下载 热门讨论 2014-08-25 11:10:36
    然后这种方法的也一个棘手问题 :如何让用户快速、方便地设计打印模板,本示例就是为了解决这个问题。 二、实现思路与原理 功能概要:设计一个界面,支持用户自由添加 要打印的项,文本,直线,图片 等,并且...
  • 虽然我们也可以直接编辑XML... 主要有两种工具:官方提供的Activiti Modeler和Eclipse的Activiti designer插件。 1、Activiti BPMN 2.0 designer  还是先说说这款Eclipse的插件吧,毕竟我们开发已经比较依赖Eclip
  • 推荐一款界面原型设计工具-axure

    千次阅读 2013-05-11 12:32:45
    Axure RP是美国Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。...
  • 如何写模块的详细设计

    千次阅读 2013-09-01 22:28:47
     传统软件开发方法的详细设计主要是用结构化程序设计法。详细设计的表示工具有图形工具和语言工具。图形工具有程序流程图、PAD(Problem Analysis Diagram)图、NS(由 Nassi和 Shneidermen开发,简称 NS)图...
  • FDATool工具箱简单设计方法

    千次阅读 2014-12-08 14:35:57
    本篇文章的主要目的是简单介绍FDATool工具箱迅速上手方法。     FDATool工具的具体打开步骤如下图所示,在各个版本中可能会有所不同。在2010b中具体步骤是:“开始”——“工具箱”——“滤波器设计”——...
  • 软件设计可以进一步地 分为两个阶段:总体设计和详细设计。 总体设计又称概要设计,即确定系统的具体实现方案、给出软件的模块结构、编写总体设计说明书。 详细设计又称过程设计,这一步的工作,就是要对系统中...
  • 话说软件结构设计的图形工具

    千次阅读 2012-10-04 21:43:32
    一个好的软件,文档很重要,在软件的总体设计中,需要对软件的总体结构进行设置,下面接受三...结构图的主要内容三个:   1)模块.用方框表示,方框中写上模块的名字,模块名最好能反映模块功能   2)模块的调用关系.两
  • python界面设计工具-wxFormBuilder

    千次阅读 2019-10-24 14:02:52
    wxFormBuilder是一款可视化的GUI设计工具,界面设计后可以自动生成代码,免去了手工码gui的繁琐,一套界面可支持生成C++\Python\PHP\Lua\XRC等代码形式,可以极大提升python GUI开发效能。 项目发布网址: ...
  • MATLAB系统辨识工具箱学习,详细教程!

    千次阅读 多人点赞 2021-02-02 22:29:28
    MATLAB系统辨识工具箱学习,详细教程!进入统辨识工具箱主界面进入方式及界面介绍:打开方式:界面介绍:运行程序,加载数据辨识输入信号区域:输入数据预处理:参数辨识系统阶次的选择:模型结构的配置:分析: ...
  • 前面写了两篇软件架构设计的文章,今天Relax想跟大家聊一聊如何通过具体的工具去画出软件架构设计中的那些图,那么今天主要给大家分享的是一个好用的架构设计画图工具——Enterprise Architect(后面都简称EA)。...
  • 如何写模块的详细设计

    千次阅读 2008-06-25 16:42:00
    传统软件开发方法的详细设计主要是用结构化程序设计法。详细设计的表示工具有图形工具和语言工具。图形工具有程序流程图、PAD(Problem Analysis Diagram)图、NS(由 Nassi和 Shneidermen开发,简称 NS)图。语言工...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 332,915
精华内容 133,166
关键字:

属于详细设计的主要工具有