精华内容
下载资源
问答
  • 软件概要设计做什么,怎么做

    千次阅读 2016-10-19 19:03:22
    软件概要设计做什么,怎么做 博客分类: 项目管理工具 概要设计 作者:赵磊 博客:http://elf8848.iteye.com   软件概要设计做什么,怎么做 一、软件设计一般流程: 1、先前的软件需求分析阶段...
    
    

    作者:赵磊

    博客:http://elf8848.iteye.com

     

    软件概要设计做什么,怎么做


    一、软件设计一般流程:

    1、先前的软件需求分析阶段,已经搞清楚了 “要解决什么问题”,并输出了《软件需要说明书》。这时一切都是理想。
    2、现在进入概要设计阶段,重点说清楚“总体实现方案”,确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系。有一些研究与论证性的内容。并输出《软件概要设计说明书》。这时一切都是概念。
    3、最后进入详细设计阶段,重点说清楚“每个模块怎么做”,是“程序”的蓝图,确定每个模块采用的算法、数据结构、接口的实现、属性、参数。并输出《软件详细设计说明书》。这时一切都是实现。


    二、《概要设计说明书》的一般结构:
       1、总述:需求或目标(讲一下事情的起源)、环境、局限;
               ----主要交代背景与大环境。(非重点)
       2、总体设计:从全局的角度说一下 总体结构、功能、处理流程、有哪些模块、模块间的关系;
               ----使读者有“全局”观,为下一步深入各个模块做好准备。
       3、外部接口:总体说明外部用户、软、硬件接口(可用资源);(这个接口不是java的interface) 。
               ----使读者了解可以利用的外部资源。
       4、模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块或系统的接口),处在什么逻辑位置、物理位置; (重点)
       5、数据结构:逻辑结构、物理结构(存储在数据表中,还是缓存中); 
       6、容灾设计:出错信息、出错处理; (可选)
       7、监控设计:运行模块组合、控制、时间;(可选)
       8、用户界面设计:(可选)
       9、安全设计:(可选)
       10、其它设计:(可选)
       11、制定规范(附录): 设计原则,代码规范、接口规约、命名规则。--是小组协同开发的基础

    三、模块设计是重点,多说几句:

       可以写以下内容:
       1、模块描述:说明哪些模块实现了哪些功能;
       2、模块层次结构:可以使用某个视角的软件框架图来表达;
       3、模块间的关系:模块间依赖关系的描述,通信机制描述;
       4、模块的核心接口:说明模块传递的信息、信息的结构;
       5、处理方式设计:说一些满足功能和性能的算法;


    四、怎么使用概要设计:
       1、用来评价总体设计的可行性。
       2、用来检查设计的模块是否完整,保证每一个功能都有对应的模块来实现。
       3、用来评估开发工作量、指导开发计划(在不写详细设计的情况下)。


    五、最后提醒:
       1、概要设计阶段过于重视业务流程是个误区.
       2、概要设计阶段过于重视细节实现是个误区.

     

    转载请注明出自:http://elf8848.iteye.com/
    展开全文
  • 软件设计—怎么做

    热门讨论 2016-10-26 20:27:14
    进入了设计阶段,要把软件“做什么”的逻辑模型变化为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映到“设计说明书”文档中,所以设计软件是一个把软件需求转换为软件表示的过程,最初这种表示...

    在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并通过需求说明书将这些需求描述了出来,这也是目标系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变化为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映到“设计说明书”文档中,所以设计软件是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件设计或结构设计。然后对结构进一步细化,称为详细设计或过程设计。

    软件设计中用到的图:

    结构图:是软件系统的模块层次结构


    HIPO:是美国IBM公司20世纪70年代发展来的表示软件系统结构的工具。它可以描述软件总的模块层次结构—H图(层次图),有可以描述每个模块输入/输出数据,处理功能及模块代用的详细情况——IPO图。HIPO图以模块分解的层次性以及模块内部输入,处理及输出三大基本部分为基础建立的。


    两者比较:HIPO图因为图上无过多的符号显得教为清晰易读,作为概要设计的文档比较合适。在反应软件结构的控制关系方面,如重复调用,选择电泳,调用公共模块以及模块之间的信息传递,使用结构图能较好地表达出来,有利于评价系统的软件结构质量。

    程序流程图:又称程序框图

    描述程序逻辑结构的工具

    优点:直观清晰,易于使用,是开发者普遍采用的工具

    缺点:

    1.可以随心所欲的画控制流程线的流向,容易造成非结构化的程序结构,编码是势必不加限制的使用GOTO语句,导致基本控制块多入口多出口。这样会使软件设计的原则相违背。

    2.流程图不能反映逐步求精的过程,旺旺反映的是最后的结果。

    3.不易表示数据结构。


    PAD:指问题分析图,是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。PAD图的控制流程为自上而下、从左到右地执行。

    优点:1.清晰的反映了程序的层次结构。图中竖线为程序的层次线,最左边竖线是程序的主线,气候一层一层展开,层次关系一目了然。

    2.支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。

    3.易读一些,使用方便。

    4.支持结构化的程序设计原理

    5.可自动生成 程序。



    展开全文
  • 怎么做共享软件

    2007-06-03 10:33:00
    我还有2个月的时间……现在流行什么样的软件啊, 做共享软件具体怎么做啊?CSDN能帮助卖个人软件吗?

    我还有2个月的时间……

    现在流行什么样的软件啊, 做共享软件具体怎么做啊?

    CSDN能帮助卖个人软件吗?

    展开全文
  • 当我们一个需求明确的项目的时候,会感觉编程一点儿也不难。但不幸的是,业务需求100%是不断变化的,这样导致项目后来越修改越乱,越乱BUG越多,新加入功能越来越难,这样的软件就是不可持续发展的软件。有人可能...

    编程可以说是一个很简单的事情,也可以说是一个很复杂的事情。当我们做一个需求明确的项目的时候,会感觉编程一点儿也不难。但不幸的是,业务需求100%是不断变化的,这样导致项目后来越修改越乱,越乱BUG越多,新加入功能越来越难,这样的软件就是不可持续发展的软件。有人可能会觉得采用敏捷开发嫩解决这个问题,但敏捷开发只是一个开发的流程模型,软件是否可以持续发展关键还是软件自身的代码结构是否是健康的。软件的核心就是数据结构,算法和设计模式,而采用恰当的数据结构和设计模式对于软件的可持续发展是至关重要的。

    下面我使用一个简单ANDROID开发实例来说明一下什么是好的设计,好的设计就在于怎么把众多的问题进行抽象化处理,使功能可以最大化的集中和重用。


    上面是一个很普通的ANDROID输入界面,里面有要输入数据的控件EditText,还有Button按钮控件,一个项目当中类似的Activitiy可能会很多,每个Activitiy可能需要处理对应的一个数据模型MODEL,我看到的全部项目的代码都和下面类似,


    这个代码里面控件已经算很少的了,很多项目里面控件的声明,初始化,设值和取值满天飞,还有OnClickListener也是满天飞,这些都给代码的阅读和后期代码维护带来了很多的问题。

    我们怎么来解决这个问题呢?其实我们可以通过选择合适数据结构和抽象来解决这个问题,使代码扩展性和重用性得到极大的提升。我们下面就展示说明下面的例子,这部分代码和上面实现的相同功能,但代码的质量是远远超越上面代码的,这部分代码大量使用了JAVA的反射原理,如果你不懂JAVA反射原理,请自己学习。



    我们设计了一个BaseActivity的基类,这个基类实现了对任何组件界面的设值和取值操作,不依赖任何数据模型,前面的例子是依赖于UserInfo模型的,这样这个基类就具备了更大额灵活性,细心的人可能会发现这个类里面数据模型的类型是Object,做抽象化的时候我们是千万不能有具体类出现的,UserInfo是具体化的基类是不能放在我们一个抽象化的基类里面的,如果加入进去,我们的抽象就失去了意义。

    这个基类当中关键的方法有两个,一个是把GUI的输入值取出赋给我们的MODEL,如下图:




    这个方法当中我们使用了命名规则和反射原理对MODEL进行了设值,其实这就是GETTER和SETTER的原理,很多框架如STRUTS,SPRING都大量使用了这种规则,通过这个方式我们把具体的MODEL类和这个基类的COUPLING解除了。

    还有一个方法是读取MODEL的值把数据设值到GUI控件上面,如下图


    上面两个例子当中都使用了一个重要的数据接口MAP,m_viewMap, 这个MAP是需要在继承类里面进行数据填充的,这里保存了模型对象里面的属性名称和控件ID之间的对应关系,也是这个设计的精华之一。下面是子类对m_viewMap进行了数据填充。


    第一个例子当中不是OnClickListener满天飞吗,第二个例子当中我们只在基类创建了一个OnClickListener,下面的继承类都可以使用,大大减少了代码量,但这么多BUTTON都一起使用这个OnClickListener实例,命令怎么得到分发和处理呢?这里我们使用了COMMAND设计模式和反射原理。



    里面有一个重要的数据MAP, m_BtnlistnerMap,这里把BUTTON的ID和命令处理方法名称进行了关联,是我们可以通过反射激活相应的方法名称。

    通过上面的设计,我们把很多很多的类变量缩减到了3个,把监听器缩减到了一个,而且通过继承这个基类,子类自然获得了GUI和MODEL之间进行数据交换的功能,那些大量的取值和赋值也都砍掉了,代码阅读顿然减少了很多,是不是心情大悦呀。

    其实这个案例当中还有很多不足的地方,至少是有两个问题是需要大大改进的,可以使代码质量进一步提升,因为需要细化东西比较多,这里就不在多讲了。


    展开全文
  • 软件测试之安全怎么做

    千次阅读 2020-06-08 11:17:59
    安全测试在什么?2.安全测试者是怎样定位自己的?3.安全的本质是什么?4.概念定义5.我们应该如何去着手5.1.测试的特性5.1.1.操作系统安全5.1.2.数据库5.1.3.web安全5.1.4.软件的发布与安装安全5.1.5.协议与接口...
  • 软件测试工作没有性别优势一说,相对于软件开发,测试工作强度没那么大。测试的主要工作是查找软件缺陷,对细致、耐心有要求,而这恰好是女生擅长的。 简介 软件测试分手工测试、自动化测试。 手工测试分功能测试、...
  • 软件公司怎么做

    千次阅读 2016-11-26 18:36:26
    在我们身边,你会发现存在着很多小型软件公司,他们少则几人,多则几十人。他们在苦苦地经营着,有的不断壮大,有的也在不断衰弱。但是随着中小型企业对信息技术重视程度的提高,小型软件公司也会有更多的机遇。那么...
  • 类似货拉拉的货运APP...它的出现,也弥补了物流行业的空缺,那么,货运APP开发怎么做?随着现在的物流行业的发展,为了更好地整合线下的运输资源,以及是满足人们的互联网消费需求,类似货拉拉APP这样的货物运输平...
  • 我们首先还是使用pip进行安装:pipinstallPyInstaller安装完成后,直接打开命令行,输入pyinstaller,如果显示如下界面,说明安装成功。然后就可以进行我们小程序的封装了。pyinstaller-F-wsome.py-F与-w的含义:-F...
  • 不知道ERP软件到底该怎么做,希望能和大家一起讨论下。 以下是我想到的一些问题: 最首要的问题是产品的标准化与项目的交付如何区分与保证。销售人员为了销售业绩一般都会过度承诺,而标准产品的功能又有限...
  • GIF用什么软件 怎么制作QQ表情包

    千次阅读 2018-12-21 17:24:23
    Gif作为全民都在使用的一个有趣的动态图,不仅增加了生活的情趣,还活跃了聊天的氛围,我们经常使用的GIF应该都是软件中自带的,但是其实制作GIF很简单,那GIF用什么软件怎么制作QQ表情包呢? 了解GIF: 1、...
  •  不能冲动,稳重,这牵涉到个人的性格问题,但在项目的过程中,应尽量避免这些因素对项目的影响,比如,有了问题,应先通过分析确定问题的原因,再根据原因确定出解决问题的办法。而不是冲动的去某个决定。作为...
  • 关于数据库设置以及登录之后,怎么把数据库里的题目和选项显示出来
  • 怎么样才算软件做得好?

    千次阅读 2019-02-27 22:54:10
    前段时间,我做为软件工程顾问...这个陷阱就是认为我们做软件就是为了开发特性,做得好就是以很快的速度开发了很多特性。真相是:做软件是为了满足用户需要。考虑到投入产出比,我们的目标应该是:做尽可能少的特...
  • 软件开发成本评估怎么做软件开发成本评估从哪些方面进行? 软件开发成本(software development cost)是指为达成软件开发项目目标开发方所需付出的各种资源代价总和。这里的资源包括人、财、物和信息等。软件开发...
  • 怎么做一个电脑exe在软件里打开网页 像洋葱学院那种 打开软件就在软件里访问到了他们的网站。
  • 那么这些漂亮的软件是怎样出来的,使用了哪些技术呢? 二、分析软件“吃藕”的原因 “看这个软件做的这么吃藕,是哪个程序员开发的?” “软件做的丑,关程序员什么事!” 程序员只负责开发代码和功能实现。哪懂...
  • 本人是今年的应届毕业生,签了中兴通讯的软件测试的工作,准备做软件测试,我是男生,但看很多人都说软件测试比较适合女孩子,而且有人说很多公司内部的工作人员都瞧不起测试人员,是这样吗?但是我看一些专业的分析...
  • 一些个人现在也在用这方面的软件,店铺一般使用的会配合收银方面的进销存软件,现在随着信息化的普及,各大软件公司也有自已的进销存软件品牌了,那么进销存软件怎么制作的,使用什么来进销存。一些简单的进销存...
  • 软件渠道怎么做

    2006-08-25 15:46:00
    做软件渠道却要求更多的耐心,要说服用户明确软件价值,要和硬件区分开来。培养用户软件意识比较重要,用软件就是用信息化手段来工作,不是用电脑工作。 其次,对用户的需求把握到卖出产品直至后期服务,都不能求...
  • 收到offer了 很担心这个公司不好,请以前员工给个中肯的建议吧,,,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,999
精华内容 5,999
关键字:

做软件怎么做