text: 应用软件是怎样设计的？
  软件系统的开发是按阶段进行的，一般划分为以下阶段：可行性讨论；需求分析；系统设计(概要设计、详细设计)；程序开发；编码，单元测试；系统测试；系统维护。 软件开发过程中要明确各阶段的工作目标、实现该目标所必需的工作内容以及达到的标准。只有在上一个阶段的工作完成后，才能开始下一阶段的工作。 1.可行性讨论 明确系统的目的、功能和要求，了解目前所具备的开发环境和条件，论证的内容有：① 在技术能力上是否可以支持；② 在经济上效益如何；③ 在法律上是否符合要求；④ 与部门、企业的经营和发展是否吻合；⑤ 系统投入运行后的维护有无保障。 可行性讨论的目的是判定软件系统的开发有无价值。分析和讨论的内容形成“系统开发计划书”，主要内容有： (1) 开发的目的及所期待的效果； (2) 系统的基本设想，涉及的业务对象和范围； (3) 开发进度表，开发组织结构； (4) 开发、运行的费用； (5) 预期的系统效益； (6) 开发过程中可能遇到的问题及注意事项。 2、系统需求分析 系统需求分析是软件系统开发中最重要的一个阶段，直接决定着系统的开发质量和成败，必须明确用户的要求和应用现场环境的特点，了解系统应具有哪些功能、数据的流程和数据之间的联系。需求分析应有用户参加，到使用现场进行调研学习，软件设计人员应虚心向技术人员和使用人员请教，共同讨论解决需求问题的方法，对调查结果进行分析，明确问题的所在。需求分析的内容编写成“系统需求分析报告”。 3.系统设计 可根据系统的规模分成概要设计和详细设计两个阶段。 概要设计包括：① 划分系统模块；② 每个模块的功能确定；③ 用户使用界面概要设计；④ 输入输出数据的概要设计；⑤ 报表概要设计；⑥ 数据之间的联系、流程分析；⑦ 文件和数据库表的逻辑设计；⑧ 硬件、软件开发平台的确定；⑨ 有规律数据的规范化及数据惟一性要求。 系统的详细设计是对系统的概要设计进一步具体化，其主要工作有：① 文件和数据库的物理设计；② 输入输出记录的方案设计；③ 对各子系统的处理方式和处理内容进行细化设计；④ 编制程序设计任务书。程序说明书通常包括程序规范、功能说明、程序结构图，通常用HPIPO（Hierarchy Plus Input Process Output）图描述。 4、程序开发 根据程序设计任务书的要求，用计算机算法语言实现解题的步骤，主要工作包括：① 模块的理解和进一步划分；② 以模块为单位的逻辑设计，也就是模块内的流程图的编制；③ 编写代码，用程序设计语言编制程序；④ 进行模块内功能的测试、单元测试。 程序质量的要求包括：① 满足要求的确切功能；② 处理效率高；③ 操作方便，用户界面友好；④ 程序代码的可读性好，函数、变量标识符合规范；⑤ 扩充性、维护性好。 降低程序的复杂性也是十分重要的。系统的复杂性由模块间的接口数来衡量，一般地讲，n个模块的接口数的最大值为n(n-1)/2；若是层次结构，n个模块的接口数的最小值为n-1。为使复杂性最小，对模块的划分设计常常采用层次结构。要注意编制的程序或模块应容易理解、容易修改，模块应相互独立，对某一模块的修改应对其他模块的功能不产生影响，模块间的联系尽可能少。 5.系统测试 测试是为了发现程序中的错误，对于设计的软件，出现错误是难免的。系统测试通常由经验丰富的设计人员设计测试方案和测试样品，并写出测试过程的详细报告。系统测试是在单元测试的基础上进行的，包括：① 测试方案的设计；② 进行测试；③ 写出测试报告；④ 用户对测试结果进行评价。 6、文档资料 文档包括开发过程中的所有技术资料以及用户所需的文档，软件系统的文档一般可分为系统文档和用户文档两类。用户文档主要描述系统功能和使用方法，并不考虑这些功能是怎样实现的；系统文档描述系统设计、实现和测试等方面的内容。文档是影响软件可维护性、可用性的决定因素，有句话讲，系统编程人员的每一张纸片都要保留，所以文档的编制是软件开发过程中的一项重要工作。 系统文档包括：开发软件系统在计划、需求分析、设计、编制、调试、运行等阶段的有关文档。在对软件系统进行修改时，系统文档应同步更新，并注明修改者和修改日期，如有必要应注明修改原因，应切记过时的文档是无用的文档。 用户文档包括：① 系统功能描述；② 安装文档，说明系统安装步骤以及系统的硬件配置方法；③ 用户使用手册，说明使用软件系统方法和要求，疑难问题解答；④ 参考手册，描述可以使用的所有系统设施，解释系统出错信息的含义及解决途径。 7、系统的运行与维护 系统只有投入运行后，才能进一步对系统检验，发现潜在的问题，为了适应环境的变化和用户要求的改变，可能会对系统的功能、使用界面进行修改。要对每次发现的问题和修改内容建立系统维护文档，并使系统文档资料同步更新。
  计算机语言（Computer Language）指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。 计算机程序设计语言的发展，经历了从机器语言、汇编语言到高级语言的历程。计算机语言主要分为三类：- 低级语言- 高级语言- 专用语言1、低级语言- 机器语言、汇编语言和符号语言。- 汇编语言源程序必须经过汇编，生成目标文件，然后执行。2、高级语言- BASIC（True basic、Qbasic、Virtual Basic）、C、PASCAL、FORTRAN、智能化语言（LISP、Prolog）等等。- 高级语言源程序可以用解释、编译两种方式执行。通常用后一种。我们使用的C语言就是使用的后者。3、专用语言CAD系统中的绘图语言和DBMS的数据库查询语言。1.1.机器语言机器语言是指一台计算机全部的指令集合电子计算机所使用的是由"0"和"1"组成的二进制数，二进制是计算机的语言的基础。计算机发明之初，人们只能降贵纡尊，用计算机的语言去命令计算机干这干那，一句话，就是写出一串串由"0"和"1"组成的指令序列交由计算机执行，这种计算机能够认识的语言，就是机器语言。使用机器语言是十分痛苦的，特别是在程序有错需要修改时，更是如此。因此程序就是一个个的二进制文件。一条机器语言成为一条指令。指令是不可分割的最小功能单元。而且，由于每台计算机的指令系统往往各不相同，所以，在一台计算机上执行的程序，要想在另一台计算机上执行，必须另编程序，造成了重复工作。但由于使用的是针对特定型号计算机的语言，故而运算效率是所有语言中最高的。机器语言，是第一代计算机语言。1.2.汇编语言为了减轻使用机器语言编程的痛苦，人们进行了一种有益的改进：用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串，比如，用"ADD"代表加法，"MOV"代表数据传递等等，这样一来，人们很容易读懂并理解程序在干什么，纠错及维护都变得方便了，这种程序设计语言就称为汇编语言，即第二代计算机语言。然而计算机是不认识这些符号的，这就需要一个专门的程序，专门负责将这些符号翻译成二进制数的机器语言，这种翻译程序被称为汇编程序。汇编语言同样十分依赖于机器硬件，移植性不好，但效率仍十分高，针对计算机特定硬件而编制的汇编语言程序，能准确发挥计算机硬件的功能和特长，程序精炼而质量高，所以至今仍是一种常用而强有力的软件开发工具。1.3.高级语言1.3.1.高级语言的发展 从最初与计算机交流的痛苦经历中，人们意识到，应该设计一种这样的语言，这种语言接近于数学语言或人的自然语言，同时又不依赖于计算机硬件，编出的程序能在所有机器上通用。经过努力，1954年，第一个完全脱离机器硬件的高级语言--FORTRAN问世了，40 多年来，共有几百种高级语言出现，有重要意义的有几十种，影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、Delphi、JAVA等。特别要提到的：在C语言诞生以前，系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件，其可读性和可移植性都很差；但一般的高级语言又难以实现对计算机硬件的直接操作（这正是汇编语言的优势），于是人们盼望有一种兼有汇编语言和高级语言特性的新语言——C语言。 高级语言的发展也经历了从早期语言到结构化程序设计语言，从面向过程到非过程化程序语言的过程。相应地，软件的开发也由最初的个体手工作坊式的封闭式生产，发展为产业化、流水线式的工业化生产。60年代中后期，软件越来越多，规模越来越大，而软件的生产基本上是个自为战，缺乏科学规范的系统规划与测试、评估标准，其恶果是大批耗费巨资建立起来的软件系统，由于含有错误而无法使用，甚至带来巨大损失，软件给人的感觉是越来越不可靠，以致几乎没有不出错的软件。这一切，极大地震动了计算机界，史称"软件危机"。人们认识到：大型程序的编制不同于写小程序，它应该是一项新的技术，应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性，也便于验证正确性。1969年，提出了结构化程序设计方法，1970年，第一个结构化程序设计语言--Pascal语言出现，标志着结构化程序设计时期的开始。80年代初开始，在软件设计思想上，又产生了一次革命，其成果就是面向对象的程序设计。在此之前的高级语言，几乎都是面向过程的，程序的执行是流水线似的，在一个模块被执行完成前，人们不能干别的事，也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的，对人而言是希望发生一件事就处理一件事，也就是说，不能面向过程，而应是面向具体的应用功能，也就是对象（Object）。其方法就是软件的集成化，如同硬件的集成电路一样，生产一些通用的、封装紧密的功能模块，称之为软件集成块，它与具体应用无关，但能相互组合，完成具体的应用功能，同时又能重复使用。对使用者来说，只关心它的接口（输入量、输出量）及能实现的功能，至于如何实现的，那是它内部的事，使用者完全不用关心，C++、Virtual Basic、Delphi就是典型代表。高级语言的下一个发展目标是面向应用，也就是说：只需要告诉程序你要干什么，程序就能自动生成算法，自动进行处理，这就是非过程化的程序语
  c+ 语言，编程，ASP ,java, VB 等等。。。
  应用程序分为两种: 一类是windows应用程序 另外一类是web应用程序 windows应用程序: 就是你一般在电脑里下载使用的程序,比如说qq,讯雷等等,能在本机运行出现windows窗口的程序, 如果需要连网的程序还会带上断口,这类程序称为"客户端",这类软件的开发可以使用c,vb 6.0,vb.net 等等可视化开发环境编写设计 web应用程序: 是一种通过ie浏览器,或者说白了通过网页里内嵌的程序代码,为用户或者浏览者提供某种服务,程序, 这类的程序可以通过dreamweaver visual studio 2005等网站开发和部署类软件进行开发,比如说你 现在使用的qq问问,就属于一种web应用程序,可用asp.net for c# ,asp.net for vb,jscript,html 等语言编写设计