﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-飘羽</title><link>http://www.cppblog.com/xmh79/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 21 Apr 2026 10:49:03 GMT</lastBuildDate><pubDate>Tue, 21 Apr 2026 10:49:03 GMT</pubDate><ttl>60</ttl><item><title>软件的开发过程</title><link>http://www.cppblog.com/xmh79/archive/2006/02/17/3304.html</link><dc:creator>飘羽</dc:creator><author>飘羽</author><pubDate>Fri, 17 Feb 2006 02:47:00 GMT</pubDate><guid>http://www.cppblog.com/xmh79/archive/2006/02/17/3304.html</guid><wfw:comment>http://www.cppblog.com/xmh79/comments/3304.html</wfw:comment><comments>http://www.cppblog.com/xmh79/archive/2006/02/17/3304.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/xmh79/comments/commentRss/3304.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xmh79/services/trackbacks/3304.html</trackback:ping><description><![CDATA[软件系统的开发是按阶段进行的，一般划分为以下阶段：可行性讨论；需求分析；系统设计(概要设计、详细设计)；程序开发；编码，单元测试；系统测试；系统维护。
<P>&nbsp;&nbsp;&nbsp; 软件开发过程中要明确各阶段的工作目标、实现该目标所必需的工作内容以及达到的标准。只有在上一个阶段的工作完成后，才能开始下一阶段的工作。</P>
<P><STRONG>1.可行性讨论</STRONG></P>
<P>&nbsp;&nbsp;&nbsp; 明确系统的目的、功能和要求，了解目前所具备的开发环境和条件，论证的内容有：① 在技术能力上是否可以支持；② 在经济上效益如何；③ 在法律上是否符合要求；④ 与部门、企业的经营和发展是否吻合；⑤ 系统投入运行后的维护有无保障。</P>
<P>&nbsp;&nbsp;&nbsp; 可行性讨论的目的是判定软件系统的开发有无价值。分析和讨论的内容形成“系统开发计划书”，主要内容有：</P>
<P>&nbsp;&nbsp;&nbsp; (1) 开发的目的及所期待的效果；<BR>&nbsp;&nbsp;&nbsp; (2) 系统的基本设想，涉及的业务对象和范围；<BR>&nbsp;&nbsp;&nbsp; (3) 开发进度表，开发组织结构；<BR>&nbsp;&nbsp;&nbsp; (4) 开发、运行的费用；<BR>&nbsp;&nbsp;&nbsp; (5) 预期的系统效益；<BR>&nbsp;&nbsp;&nbsp; (6) 开发过程中可能遇到的问题及注意事项。</P>
<P><STRONG>2、系统需求分析</STRONG></P>
<P>&nbsp;&nbsp;&nbsp; 系统需求分析是软件系统开发中最重要的一个阶段，直接决定着系统的开发质量和成败，必须明确用户的要求和应用现场环境的特点，了解系统应具有哪些功能、数据的流程和数据之间的联系。需求分析应有用户参加，到使用现场进行调研学习，软件设计人员应虚心向技术人员和使用人员请教，共同讨论解决需求问题的方法，对调查结果进行分析，明确问题的所在。需求分析的内容编写成“系统需求分析报告”。</P>
<P><STRONG>3.系统设计</STRONG></P>
<P>&nbsp;&nbsp;&nbsp; 可根据系统的规模分成概要设计和详细设计两个阶段。</P>
<P>&nbsp;&nbsp;&nbsp; 概要设计包括：① 划分系统模块；② 每个模块的功能确定；③ 用户使用界面概要设计；④ 输入输出数据的概要设计；⑤ 报表概要设计；⑥ 数据之间的联系、流程分析；⑦ 文件和数据库表的逻辑设计；⑧ 硬件、软件开发平台的确定；⑨ 有规律数据的规范化及数据惟一性要求。</P>
<P>&nbsp;&nbsp;&nbsp; 系统的详细设计是对系统的概要设计进一步具体化，其主要工作有：① 文件和数据库的物理设计；② 输入输出记录的方案设计；③ 对各子系统的处理方式和处理内容进行细化设计；④ 编制程序设计任务书。程序说明书通常包括程序规范、功能说明、程序结构图，通常用HPIPO（Hierarchy Plus Input Process Output）图描述。</P>
<P><STRONG>4、程序开发</STRONG></P>
<P>&nbsp;&nbsp; 根据程序设计任务书的要求，用计算机算法语言实现解题的步骤，主要工作包括：① 模块的理解和进一步划分；② 以模块为单位的逻辑设计，也就是模块内的流程图的编制；③ 编写代码，用程序设计语言编制程序；④ 进行模块内功能的测试、单元测试。</P>
<P>&nbsp;&nbsp;&nbsp; 程序质量的要求包括：① 满足要求的确切功能；② 处理效率高；③ 操作方便，用户界面友好；④ 程序代码的可读性好，函数、变量标识符合规范；⑤ 扩充性、维护性好。</P>
<P>&nbsp;&nbsp;&nbsp; 降低程序的复杂性也是十分重要的。系统的复杂性由模块间的接口数来衡量，一般地讲，n个模块的接口数的最大值为n(n-1)/2；若是层次结构，n个模块的接口数的最小值为n-1。为使复杂性最小，对模块的划分设计常常采用层次结构。要注意编制的程序或模块应容易理解、容易修改，模块应相互独立，对某一模块的修改应对其他模块的功能不产生影响，模块间的联系尽可能少。</P>
<P><STRONG>5.系统测试</STRONG></P>
<P>&nbsp;&nbsp; 测试是为了发现程序中的错误，对于设计的软件，出现错误是难免的。系统测试通常由经验丰富的设计人员设计测试方案和测试样品，并写出测试过程的详细报告。系统测试是在单元测试的基础上进行的，包括：① 测试方案的设计；② 进行测试；③ 写出测试报告；④ 用户对测试结果进行评价。</P>
<P><STRONG>6、文档资料</STRONG></P>
<P>&nbsp;&nbsp;&nbsp; 文档包括开发过程中的所有技术资料以及用户所需的文档，软件系统的文档一般可分为系统文档和用户文档两类。用户文档主要描述系统功能和使用方法，并不考虑这些功能是怎样实现的；系统文档描述系统设计、实现和测试等方面的内容。文档是影响软件可维护性、可用性的决定因素，有句话讲，系统编程人员的每一张纸片都要保留，所以文档的编制是软件开发过程中的一项重要工作。</P>
<P>&nbsp;&nbsp;&nbsp; 系统文档包括：开发软件系统在计划、需求分析、设计、编制、调试、运行等阶段的有关文档。在对软件系统进行修改时，系统文档应同步更新，并注明修改者和修改日期，如有必要应注明修改原因，应切记过时的文档是无用的文档。</P>
<P>&nbsp;&nbsp;&nbsp; 用户文档包括：① 系统功能描述；② 安装文档，说明系统安装步骤以及系统的硬件配置方法；③ 用户使用手册，说明使用软件系统方法和要求，疑难问题解答；④ 参考手册，描述可以使用的所有系统设施，解释系统出错信息的含义及解决途径。</P>
<P><STRONG>7、系统的运行与维护</STRONG></P>
<P>&nbsp;&nbsp; 系统只有投入运行后，才能进一步对系统检验，发现潜在的问题，为了适应环境的变化和用户要求的改变，可能会对系统的功能、使用界面进行修改。要对每次发现的问题和修改内容建立系统维护文档，并使系统文档资料同步更新。</P><img src ="http://www.cppblog.com/xmh79/aggbug/3304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xmh79/" target="_blank">飘羽</a> 2006-02-17 10:47 <a href="http://www.cppblog.com/xmh79/archive/2006/02/17/3304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>