`
小鑫的java
  • 浏览: 143225 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

软件开发流程(转载)

 
阅读更多

1. 产品需求定义

产品需求定义的目标是:“清楚地描述要做的产品是什么样的?不涉及具体实现方法。”,其定义过程如下图所示。

 

 此产品需求定义包括:软件+硬件

 

2. 结构化设计方法的基本思路

    按照需求,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务(即接受调用),也接受一个或多个子模块的服务(即调用子模块)。模块的概念,和编程语言中的子程序或函数是对应的。

 

3. 架构设计/概要设计

       架构设计或概要设计的目标是:“为系统需求或产品需求提供解决方案”。

       概要设计:把软件按照一定的原则分解为模块层次,赋予每个模块一定的任务,并确定模块间调用关系和接口。通常输出的为:“软件结构图”。 

       在架构设计或概要设计,设计者会大致考虑并照顾模块的内部实现,但不过多纠缠于此。主要集中于:

       (1)划分模块

       (2)分配任务

       (3)定义调用关系

        模块间的接口与传参在这个阶段要定得十分细致明确,应编写严谨的数据字典,避免后续设计产生不解或误解。概要设计一般不是一次就能做到位,而是反复地进行结构调整。典型的调整是合并功能重复的模块,或者进一步分解出可以复用的模块。在概要设计阶段,应最大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量。

        概要设计文档最重要的部分是:

        (1)分层数据流图

        (2)结构图

        (3)数据字典

        (4)相应的文字说明

        以概要设计文档为依据,各个模块的详细设计就可以并行展开了。

4.详细设计

       详细设计的目标是:“提供编码的依据(数据结构+流程)”。

       详细设计:依据概要设计阶段的分解,设计每个模块内的算法、流程等。通常采用“流程图”进行描述。 

       在详细设计阶段,各个模块可以分给不同的人去并行设计。在详细设计阶段,设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的以下内容:

        (1)算法

        (2)流程

        (3)状态转换(状态机)

        注意:如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不能就地解决,不打招呼。

        详细设计文档最重要的部分是模块的以下内容:

        (1)流程图

        (2)状态图

        (3)局部变量及相应的文字说明。

        一个模块一篇详细设计文档。

       概要设计文档相当于机械设计中的装配图,而详细设计文档相当于机械设计中的零件图。概要设计中较顶层的部分便是所谓的方案。方案文档的作用是在宏观的角度上保持设计的合理性。

        有的项目采用面向对象的分析、设计方法。可能在概要设计、详细设计的分工上疑问更多。其实,面向对象的分析、设计方法并没有强调结构化方法那样的阶段性,因此一般不引入概要、详细设计的概念。如果按照公司的文档体系,非要有这种分工的话,可以将包的划分、类及对象间的关系、类的对外属性、方法及协作设计看做概要设计;类属性、方法的内部实现看做详细设计。

  

5. 需要分析&概要设计&详细设计 

   1)需求分析:产生软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。


   2)概要设计:产生软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。  


   3)详细设计:产生软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。

6. 瀑布模型

瀑布模型如下图所示:

 

1)可靠性研究与计划:做还是不做

2)需求分析:都有什么功能

3)概要设计:共有多少子功能

4)详细设计:子功能怎么实现

5)编码:子功能实现了吗?

6)测试:功能完备吗?

7)部署:需要多少设备和软件的支持

8)维护:软件运动得正常吗?

 

 

分享到:
评论

相关推荐

    2.2 日志消息类型 深入理解Qt日志系统的另一个关键方面是分辨和使用不同类型的日志消息 每种日志类型都有其特定的用途和上下文意

    在软件开发中,正确地使用不同类型的日志消息可以看作是一种心理策略。普通和信息性消息让开发者保持对程序流程的清晰认识;警告消息像是直觉的提醒,引导开发者关注可能的问题点;错误消息则激发危机感,促使紧急...

    EDA/PLD中的CPLD/FPGA器件的开发过程

    实现PLD器件功能最关键的技术是计算机辅助设计(CAD)。CAD技术和设计软件及开发环境对于 CPLD/FPGA的设计至关重要,尤其是...图1 GPLD/FPGA器件的开发流程  欢迎转载,信息来源维库电子市场网(www.dzsc.com) 

    工业4.0智能制造方案及流程图.docx

    软件编程的发展也有几个阶段:面向机器、面向过程、面向结构程序化设计、面向对象、面向网络,我也在想是不是也有智能化的编程工具,安卓是智能手机的操作系统,为开发者提供了很好的编程环境,相信今后还有更加智能...

    我国GIS软件的发展现状

    这种数据管理的不一致性,一方面增加了GIS软件开发的复杂性,另一方面也不易保证数据管理的可靠性,给使用带来不便。多年来,GIS软件人员尝试在商用关系数据库上管理空间数据,但结果是事倍功半,难以构造复杂的空间...

    CPLD/FPGA器件的开发过程

    实现PLD器件功能关键的技术是计算机辅助设计(CAD)。CAD技术和设计软件及开发环境对于 CPLD/FPGA的设计至关重要,尤其是FPGA器件...图1 GPLD/FPGA器件的开发流程  欢迎转载,信息维库电子市场网(www.dzsc.com) :

    基于SIP开发软件电话的一些资源(转自YOUTOO)

    其主要流程为: 初始化eXosip库-启动事件监听线程-向SIP Proxy注册-向某SIP终端(电话号码)发起呼叫-建立连接-结束连接 初始化代码: int ret = 0; ret = eXosip_init (); eXosip_...

    敏捷开发交流

    敏捷的诞生经历了五个阶段第一阶段20世纪60年代 关键词:软件作坊 特征:规模小,以作坊开发为主,没有任何流程可言第二阶段20世纪70年代 关键词:软件危机 特征:随着硬件的飞速发展,软件的规模和复杂度增加,...

    PowerDesigner使用教程

    利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:...

    自动升级源码(delphi版)

    在进行cs系统开发时,当系统进行升级时,必不可少需要进行软件的升级,常用的方式是: 1,把开发好的升级包或dll打包上传至升级服务器,更新服务器的版本号,这里最好是有个系统来维护这个更新,如一个bs版本的页面...

    计算机二级C语言考试题预测

    (6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B) A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (7) 在软件开发中,下面任务不属于设计阶段的是(D) A. 数据结构设计 B. 给出系统...

    java商品购物系统

    编辑环境:JDK1.6 开发工具:JBuilder2006 压缩包内容:jar(所需的外部类库);WareForClient(用户端);WareForManage(管理端);wareDB(SQLServer2000数据库文件) <br>说明: 1.本软件分为用户端和管理端...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...

    asp.net知识库

    从NUnit中理解.NET自定义属性的应用(转载) 如何在.NET中实现脚本引擎 (CodeDom篇) .NET的插件机制的简单实现 我对J2EE和.NET的一点理解 难分难舍的DSO(一) InternalsVisibleToAttribute,友元程序集访问属性 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该文献之人无任何关系。谢谢合作 本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地...

    JSP网上招标系统源码

    论文首先较为详尽地介绍了面向对象分析与设计的有关概念与技术,特别深入介绍了在本系统中运用到的知识,如:面向对象的分析设计流程;系统中所用到的开发技术JSP以及java的特点、结构框架以及使用方法。接着对下沙...

    基于IOS上MDM技术相关资料整理及汇总

    一、MDM相关知识: MDM (Mobile Device Management ),即移动设备管理。在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之...转载自:移动互联百科 本文固定链接:http://www.mbaike.net/special/1542.html

    心理咨询网站设计方案(1).doc

    这种开发模式显然 已经不适合于现代软件系统开发的要求。而面向对象的设计以软件的组装式生产为目标 ,强调各种粒度的软件重用、接口与表示和实现分离、统一对象模型,继承和发展了传 统软件工程。面向对象技术将...

Global site tag (gtag.js) - Google Analytics