毕业论文:基于ASP技术的网站的设计与开发


    基于ASP技术的网站的设计与开发 目录 第一章 绪论 1 1.1引言 1 1.2网站的简介 1 1.3网站开发的意义 2 1.4网站的特点及实现目标 2 1.4.1网站的特点 2 1.4.2网站的实现目标 2 1.5本文的主要工作 3 第二章 相关理论与关键技术介绍 4 2.1软件工程 4 2.2 HTML简介 4 2.3 ASP技术 5 2.3.1ASP技术的优点 5 2.3.2ASP技术的缺点 6 2.4配置ASP网站 6 2.5ASP的运行环境 6 2.6 ASP内建对象 7 2.6.1 Application对象 7 2.6.2Session对象 7 2.6.3Server对象 8 2.6.4Request对象 8 2.6.5Response对象 9 2.7 Web数据库技术 9 2.7.1 Web 数据库 9 2.8开发与运行环境的选择 10 第三章 动态网站需求分析 11 3.1网站需求分析 11 3.2网站的功能需求 11 3.3数据流图及其描述 12 3.4数据字典 13 3.5系统流程图 14 3.6层次图 15 3.7各页面间的关系图 16 3.8网站实体的E-R图 17 第四章 网站总体设计 21 4.1系统设计 21 4.1.1网站设计的目标 21 4.1.2网站结构分析 21 4.1.3各子模块功能详细说明 22 4.2数据库的设计 23 4.2.1数据库系统 23 4.3数据库的连接 24 4.3.1使用连接字符串 24 4.4数据库结构设计 25 4.4.1数据库需求分析 25 4.4.2数据库逻辑设计 25 第五章 详细设计与编码实现 27 5.1系统登录界面 27 5.2信息维护模块 28 5.2.1管理后台 28 5.2.2信息添加 29 5.2.3保存信息 32 5.2.4编辑信息 32 5.3信息显示模块 35 5.3.1页面显示 35 5.4信息查询模块 37 5.4.1页面显示 37 第六章 网站的测试 38 6.1静态测试 38 6.2动态测试 38 6.2.1 黑盒测试 39 6.2.2 白盒测试 39 结束语 41 致谢 42 参考文献 43 附录 44 第一章 绪论 1.1引言 当今世界已经跨入了信息时代,计算机科学与技术正在迅猛发展,尤其是以计算机为核心的信息技术正在改变整个社会的生产方式、生活方式和学习方式。网站的设计与开发是当中的的一项重要工作。在设计过程中涉及大量的数据处理。随着Internet的迅速发展,基于Web 的信息服务方式得到了广泛的应用。 ASP是Microsoft 公司动态服务器页面(Active Server Pages)的最新版本,用于为万维网站点或企业的内部网创建动态的、交互的HTML页面。ASP的主要特点:第一,多种语言支持。ASP支持Visual Basic、C#、C++和Jscript等编程语言,用户可以根据自己特长和实际需要进行选择。第二,兼容性。在IIS环境下ASP文件以新的扩展名出现,即.ASP,可以清楚的区分新老文件。第三,分离程序代码和网页内容。在ASP中引进了全新的HTML编程模型,将程序代码与UI接口清楚地分开。使网页更易编写和维护,同时这些特色使B/S三层结构更加容易实现。由于ASP的数据源既可以是关系数据库又可以是XML,利用其ADO可以方便地实现对这些类型的数据的操作,因此在建设网站中使用ASP非常有利。 本文在对网站的开发设计的基础上,主要介绍了开发此网站中常用的一些技术和方法,并进行了网站的总体设计,最后编码实现了网站的重要模块:信息查询模块,信息浏览模块和信息维护模块。 1.2网站的简介 从技术方面来看,Microsoft 公司推出的ASP作为新一代的网络开发工具,它作为整个网页制作的一部分,能够开发功能强大的、安全的Web应用程序。在Microsoft Visual Studio 2003开发环境下,学习其相关技术,特别是掌握访问数据库的ADO技术,并在开发网站中得以应用。 从网上信息管理方面,随着多媒体和网络技术的日益普及,特别是网站开发的日趋庞大,越来越多的信息资源共享,方便广大网站信息的管理,迫切需要开发适合各类人群的网站。 1.3网站开发的意义 随着人们对各种网站的需求,网站的建设也日趋庞大,为了使广大网络用户的需要得到满足,各网站建设者也随着需求的增大而日趋全面,无论在信息量,信息内容,信息需求量等方面,都尽可能的满足用户。 1.4网站的特点及实现目标 1.4.1网站的特点 网站的目的是将本站作成一个简单的信息查询系统,并有以下特点: (1)系统实现了一个完整的信息查询过程。 (2)为使用户尽快掌握和使用整个系统,系统结构简单但功能齐全,简洁的页面设计使操作起来非常简便。 (3)作为一个实例,文中的代码规范简洁,清晰易懂。 本站是一个小型的信息搜索类信息查询系统网站。 1.4.2网站的实现目标 基于ASP的网站设计的基本出发点在于: (1)方便用户在线浏览基本信息; (2)要求可以使网站的用户可以查询所有信息和类别信息; (3)要求管理员统一管理信息,包括信息的添加与修改及删除; 系统最基本的功能包括:用户可以通过网页查找信息或类别信息,管理员可以对信息进行修改,删除和添加。 1.5本文的主要工作 为了完成本网站的管理后台,用户使用界面的设计,主要应做的工作有: (1)查阅相关文献资料,通过互联网收集各种组建动态网站及数据库连接的信息, 结合实际情况,进行较为详细的需求分析,确定系统的总体结构和功能。 (2)掌握开发Web数据库应用程序的技术和方法,进行具体的功能模块划分,进行Access数据库设计及数据库访问技术。 (3)实现了网站的三大模块:信息管理模块,信息显示模块,信息查询模块。 (4)进行整个系统的测试,提供给用户一个具有一定实用价值的信息浏览动态网站。 在系统开发过程中认真学习了基于Web的数据库应用开发技术,数据绑定,Access的应用,访问数据库以及权限设置的探讨等。 第二章 相关理论与关键技术介绍 本章介绍了开发本系统所用到的理论和关键技术,包括软件工程、标记语言(HTML)、ASP技术,Web数据库技术,这些是开发网站不可缺少的理论与技术,下面做详细介绍。 2.1软件工程 软件工程是一门从技术和组织管理两个角度研究如何用系统化、规范化和数量化等工程原理与方法去进行软件开发和维护的学科。软件工程学研究的范围非常广泛,包括技术方法、工具、和管理等许多方面。软件生命周期的各个阶段可分为: (1)问题定义: 确定系统的基本功能 (2)可行性研究: 确定系统是否能够实现及是否值得实现 (3)需求分析: 确定系统必须完成的各种功能 (4)总体设计: 确定如何实现软件 (5)详细设计: 详细设计实现系统 (6)编码和单元测试: 写出正确的容易理解和维护的程序模块 (7)综合测试:通过各种类型的测试及调试使软件达到预定的要求 (8)软件维护:通过各种必要的维护活动使系统持久地满足用户需要 采用软件工程的技术方法开发本网站,通过以上八个阶段组成软件的生存期。它是指从提出开发要求开始直到该软件报废为止的整个时期。分阶段进行,就把规模庞大、结构复杂和管理复杂的软件变得容易控制和管理。正是基于此思想,本网站开发实际可行的软件,方便网站信息的管理。 2.2 HTML简介 超文本标记语言HTML是Hyper Text Markup Language 的缩写,它是网页构成的最基本元素,通过HTML精简却强大的文件设置功能可以轻松地设计出多姿多彩的超文本文件,通过各种浏览器浏览HTML文件的内容。 HTML是纯文本类型的语言,使用HTML编写的网页文件也是标准的纯文本文件,可以用任何文本编辑器,例Windows的“记事本”程序打开它以查看其中的HTML源代码;也可以在浏览器打开网页时,通过相应的“查看/源文件”命令查看网页中的HTML代码。 HTML文件可以直接由浏览器解释执行,无需编译,当用浏览器打开网页时,浏览器读取网页中的HTML代码,分析其语法结构,然后根据解释的结果显示网页内容,正是因为如此,网页显示的速度同网页代码的质量有很大关系!其缺点是:它把结构和显示部分混在一起,给浏览器太大的解释灵活性。 2.3 ASP技术 ASP是微软开发的动态网页技术标准,全称为Active Server Page 其原理是在原来的页面中加入JavaScript或VBScript代码,服务器在送出网页之前先执行这些代码,完成诸如查询数据库之类的任务,再将执行结果以HTML的形式返回浏览器。 ASP不需要重新翻译成可执行文件就可以直接运行,允许用户通过客户端浏览器访问各种数据库。 2.3.1ASP技术的优点 ASP程序的优点: (1)ASP所使用的VBScript脚本语言直接来源于VB语言,秉承了VB简单易学的特点,学习起来非常容易。 (2)把脚本语言直接嵌入HTML文档中,不需要编译和连接就可以直接解释运行。 (3)利用ADO技术轻松存取数据库。 (4)面向对象编程,可扩展ActiveX Server组件功能,可以使用第三方组件或自己开发ActiveX Server组件。从理论上说,可以实现任何功能。 (5)不存在浏览器兼容问题,由于ASP程序是在服务器端运行的,当客户端浏览器浏览ASP网页时,服务器会将该网页文件重新解释一遍,并生成的标准HTML文件发送给客户端浏览器,因为送出的是标准的HTML文件,当然不会存在浏览器兼容的问题了。 (6)可以隐藏程序代码,在客户端仅可看到由ASP输出的动态的HTML文件,可以保护你的劳动成果。 2.3.2ASP技术的缺点 ASP程序的缺点: (1)运行速度比起HTML程序来比较慢,因为每当客户端打开一个ASP网页时,服务器都必须将该ASP程序从头到尾重读一遍,并加以编译执行最后再送出标准的HTML格式文件给客户端,从而影响了运行速度。不过,由于服务器硬件技术的更新和网络速度的提高,速度上的影响是很小的,得别时当同时上网人数较少时, 这种影响更可以忽略不计了。 (2)有的网络操作系统不支持ASP,这样用ASP开发Web程序一般来说最好选用Windows系列的操作系统。 2.4配置ASP网站 浏览器从ASP服务器上请求.ASP文件时,ASP脚本开始运行.然后Web服务器调用ASP,ASP全面读取请求的文件,执行所有的脚本命令,并将Web页传送给浏览器。 由于脚本在服务器上而不是在客户端运行,传送到浏览器上的Web页在Web服务器上生成,所以不必担心浏览器能否处理脚本,Web服务器已经完成了所有脚本的处理,并将标准的HTML页传送到浏览器.由于只有脚本的结果返回到浏览器,因此用户看不到创建页的脚本命令。 开发ASP,需要1个Web服务器,1个应用程序服务器,1个数据库和1个用来驱动数据库的驱动程序。 2.5ASP的运行环境 表2.1开发ASP的典型配置 操作系统 Web服务器 应用程序服务器 数据库驱动程序 Windows 95/98或Windows 2000/XP工作站 本地运行的PWS 本地运行的PWS Microsoft Access驱动器 (ODBC) Windows NT服务器或Windows 2000/XP 本地运行的IIS 本地运行的IIS ADOBC 2.6 ASP内建对象 2.6.1 Application对象 是否使用Application对得到给定的应用程序所有用户的共享信息。 (1)集合 Application对象提供了两个集合,可以用来访问存储于全局应用程序空间中的变量和对象。 (2)方法 Application对象的方法允删除全局应用程序空间中的值,控制在该空间内对变量的并发访问。 (4)事件 Application对象提供了在其启动和结束时触发的两个事件。 2.6.2Session对象 可以使用Session对象存储待定的用户会话所需的信息。 (1)集合 Session对象提供了两个集合,可以用来访问存储于用户的局部会话空间中的变量和对象。 (2)特性 Session对象提供了4个属性。 (3)方法 Session对象允许从用户级的会话空间删除指定值,并根据需要终止会话。 (4)Session对象的事件 Session对象提供了在启动和结束时触发的两个事件。 2.6.3Server对象 Server对象提供对服务器上的方法和属性进行访问。Server对象是专为处理服务器上的特定任务而设计的,特别是与服务器的环境和处理活动有关的任务,因此提供信息的属性只有一个,却有7种方法用来以服务器特定的方法格式化数据,管理其他网页,管理外部对象和组件的执行以及处理错误等。 (1)属性 Server对象的唯一一个属性用于访问一个正在执行的ASP网页的脚本超时值。 (2)方法 Server对象的方法用于格式化数据,管理网页执行和创建其他对象实例。 2.6.4Request对象 可以使用Request对象访问任何使用HTML请求传递的信息,包括从HTML表OST方法或GET方法传递的参数,cookie和用户认证。 (1)集合 Request对象提供了5个集合,可以用来访问客户端对Web服务器的请求的各类信息。 (2)属性 Request对象提供了用户请求的字节数量的信息,并很少用于ASP页,通常关注的是指定值而不是整个请求字符串。 (3)方法 Request对象唯一的方法允许访问一个<FROM>段中传递给服务器的用户请求部分的完整内容。 2.6.5Response对象 可以使用Response对象控制发送给用户的信息,摆阔直接发送信息给浏览器,重定向浏览器到另一个URL或设置cookie的值。 (1)集合 Response对象只有一个集合,该集合可以设置客户端的Cookies的值。直接等同于Response.Cookies集合。 (2)属性 Response对象也提供一系列的属性,可以读取和修改,使响应能够适应请求。这些由服务器设置,用户不需要设置。需要注意的是,当设置某些属性时,使用的语法可能与通常所使用的有一定差异。 (4)方法 Response对象提供一系列的方法,允许直接处理为返回给客户端而创建的页面内容。 2.7 Web数据库技术 2.7.1 Web 数据库 在信息管理过程中,数据的存取要涉及到Web 数据库。与普通数据库管理系统一样,Web 数据库也是个数据存储库或信息库,可以通过查询语句来访问它。但是,与普通数据库不同的是,Web 数据库是通过其他Web 应用程序、用标准化的HTML语言开发的应用程序来访问数据库的。使用HTML形式的界面,可以创建集成了数据库功能的应用程序,并可代表Web客户访问数据库。可专门设计一些应用程序,用于查询数据库和返回相应的信息。 这种将数据库与用户可使用的Web应用程序相集成的能力,使数据库变成了Web 数据库。这种将Web数据库与数据库技术相结合,开发动态的Web数据库应用,已成为当今的热门话题。 2.8开发与运行环境的选择 硬 件 32MB以上内存 Intel Pentiun 586以上处理器 150MB以上的剩余硬盘空间 800*600VGA彩色显示器 2倍或更高倍速光驱 16位及以上声卡 表2—2硬件设备 表2—3软件设备 软 件 Windows 95/98/2000/NT/XP中文版或更高版操作系统 PWS或IIS5.0 Access2000或更高版本 第三章 动态网站需求分析 3.1网站需求分析 网站需求的日益扩大,信息管理已成为网站管理的一项重要工作。而目前我们国家大多数网站的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,随着网站规模的不断扩大,数量急剧增加,各种信息也成倍的上涨。面对如此海量的信息,网站在日常工作中需要信息管理系统,以便对信息等进行管理,减少不必要的资源浪费,从而达到精简机构,提高办事效率的目的。在信息时代这种传统的管理方法必然被以计算机为基础的信息管理所取代。 优点如下: (1)可以存储所有信息,安全性好,效率高; (2)可以存储类别信息,信息全面,查询方便; (3)可以加强信息交流,使用方便; (4)操作系统方便简单,节省大量人力。 本网站的开发宗旨以及总体任务就是要实现网站的自动化、规范化、系统化。所以为了能够实现编制这个软件设定的目标,在程序的开发之前,需求分析是必不可少的,而且非常的重要。 需求分析主要是确定目标系统必须具备的功能、性能、运行规格要求,即对目标提出完整、准确、清晰、具体的要求。通过定义系统中的关键类域来建立模型。分析的根本目的是在开发者和提出需求的用户之间建立一种理解和沟通的机制。 3.2网站的功能需求 对于复杂的问题,人们首先将该复杂的问题分解成若干子问题,然后对每个子问题进行研究,在充分了解每个子问题的基础上将子问题结合起来达到对整个问题认识的目的。通过对该系统的分析: 管理涉及三个模块:信息维护模块,信息查询模块和信息浏览模块。 管理用户是网站管理员。网站管理员负责日常的信息管理工作,如各种基本信息的添加、删除和修改等操作;用户使用该网站可完成基本信息、详细信息、类别信息的查询,浏览等。经过实际考察与分析,网站应具有以下功能: (1)网站用户管理:包括管理员管理和网站维护。管理员管理有信息添加,信息修改,信息浏览和信息删除。 (2)用户管理:用户登陆系统后可浏览基本信息,可以精确查询基本信息,系统管理员负责添加基本信息以及维护等。 3.3数据流图及其描述 根据上述的功能需求,画出了数据流图。数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理情况,是软件开发人员和用户在可行性和需求分析阶段进行交流的比较好的一种工具。 数据流图在结构化的程序设计中具有十分重要的位置,它贯穿软件生命周期的各个阶段。在数据流图中要尽可能地描绘所有的数据流向。它有四种成分:数据的源点和终点、数据处理、数据存储和数据流。从较高的层次开始画数据流图是一种比较好的方法。在高层次的数据流图的基础上可对模块进行进一步的细化。当对数据流进行细化时要遵循一个原则:当把一个处理细化成一系列的处理之后,细化前和细化后的输入/输出数据流必须相同。数据流图还是以后进行更详细设计的起点。 这次设计中有信息维护模块,信息查询模块和信息浏览模块。下面是具体图形描述。 1 身份验证 网站管理员 用 户 验证信息 验证信息 验证结果 验证结果 输入信息 信息查询 进入 4 信息浏览 2 信息查询 3 信息维护 信息添加添加结果 查询信息 查询信息 浏览信息 D1 基本信息 D2 分类信息 信息添加 图3.1数据流程图 网站管理员通过用户名和密码的验证进入管理界面,对其中的信息进行一系列的维护,如把过期的,已无用处的信息删除,把有变化的信息进行修改,添加一些新的信息内容。当用户登陆到主页面时可以进行信息浏览,可对信息进行查询,并可以找到分类信息,按内容不同进行浏览及查询。 3.4数据字典 数据流程图中的数据流表示系统中的流动的信息,数据存储表示系统中静态的信息。数据字典就是对这些信息进行定义的集合。数据字典经常与数据流程图一起使用,凡是在数据流程图出现的信息都应在数据字典中。根据网站的数据流图,我对主要的数据元素进行确切的定义,写出如下的数据字典卡片: 名字:网页信息 别名:用户登陆信息页 描述:用户所能访问及查询的信息列表 定义:网页信息=信息内容+信息出处+信息显示+信息大小+信息级别+信息分类+链接信息 位置:网址链接处 名字:管理信息 别名:管理员登陆信息页 描述:管理员进行信息维护的领域 定义:管理信息=信息添加+信息删除+信息修改 位置:管理后台网址链接处 名字:查询信息 别名: 描述:用户根据自己的需求对网站执行的操作 定义:查询信息=查询全部信息+分类查询+关键字查询 位置:用户浏览页 名字:维护信息 别名: 描述:管理员根据信息情况所执行的操作 定义:维护信息=信息添加+信息修改+信息删除+信息浏览 位置:管理后台 名字:浏览信息 别名: 描述:用户根据自己的需求对信息的浏览 定义:浏览信息=全部信息浏览+分类信息的浏览 位置:用户浏览页 图3.2数据字典 3.5系统流程图 对于具有查询功能的系统流程图: 用户根据要查询的对象将查询要求输入网站的文本框,网站的系统对要求进行处理,并在网站的数据库中进行查找,然后数据库将查找到的信息上交,传递出来,最后由一生成的页面显示出来,如果查找的结果为空的话,就在主页面上显示为无任何相关信息。 网站原有信息主文件 事 务 网站信息程序 查询信息 结果查找信息 所求信息网页显示 图3.3基于查询功能的系统流程图 对于具有维护功能的系统流程图: 事务 网站原有信息主文件 网站信息程序 维 护 信 息 维护结果信息 维护页 面显示 图3.4基于维护功能的系统流程图 管理员根据目前的信息情况在管理后台对信息进行处理,即添加新出现的信息内容,对已经过期或无用的信息进行删除,把信息内容改变的信息内容进行修改。还可以在管理后台对信息进行浏览,在浏览的过程中,发现信息的内容的改变,如出现错误便及时改正。 3. 6层次图 信息查询网站 用户登陆页 管理后台 信息显示 信息删除 信息添加 信息修改 按关 键字查询 信息分类 信息显示 信息查询 图3.5层次图 本网站共有两层,一个是用户登陆页面,一个是管理员登陆页面。对于用户登陆页面来说,在页面上可以执行信息查询,信息浏览等功能。而对于管理员登陆后台来说,管理员可以在管理后台对信息进行添加,删除和修改等操作。 3.7各页面间的关系图 当管理员登陆到管理后台时,经网站审核。如果密码正确,页面则跳到管理后台页,若密码不正确,则页面将跳到用户登陆页。登陆成功后,管理员可以在管理后台进行信息的维护和浏览,点击管理后台的相关键时,界面就会自动跳到相关界面,即添加界面,删除界面,修改界面。 管理员登陆 login.asp 审核帐号 chklogin.asp 正确 错误 网站页面 index.asp 管理员管理页面 manage.asp 信息删除 delete.asp 信息修改 edit.asp 信息添加 add.asp 图3.6关系图 3.8网站实体的E-R图 概念模型是对信息世界建模,所以概念模型应该能够方便﹑准确地表示出信息世界中的常用概念. 概念模型的表示方法很多,其中最为著名最为常用的是E-R图。 E-R图提供了表示实体﹑属性和联系的方法: (1)实体:用矩形表示,矩形框内写明实体名 (2)属性:用椭圆形表示,并用无向边将其与相应的实体连接起来 (3)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n,m:n). 如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。 首先是系统各个实体描述的E-R图: 1)管理员实体: 信息发布 信息浏览 网站维护 网站管 理员 信息删除 信息添加 信息修改 图3.7管理员实体E-R图 本实体描述的就是作为网站管理员要做的事情,即网站的信息添加,删除,修改,和浏览及一些维护工作。 2)用户实体: 信息浏览 关键字信息查询 网站用户 分类信息查询 全部信 息查询 图3.8用户实体E-R图 本实体所描述的就是作为登陆网站的用户来说,所进行的活动有信息的浏览,全部信息,分类信息和关键字查询等。 3)信息查询实体: 查询信息 关键字 查询 全部信息查询 分类信息查询 图3.9查询信息E-R图 4)添加信息实体: 相关主页 信息评价 信息说明 信息名称 添加信息 信息大小 链接地址 信息类型 图3.10添加信息实体E-R图 5)修改信息实体: 信息名称 信息大小 相关主页 修改信息 信息说明 链接地址 图3.11修改信息实体E-R图 6)信息浏览实体: 信息类型 信息评价 信息名称 相关链接 信息浏览 信息大小 次数 时间 相关简介 图3.12信息浏览实体E-R图 第四章 网站总体设计 总体设计的基本目的就是回答“概括的说,系统应该如何实现?”这个问题。因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互之间的关系。 总体设计工程通常有两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计确定软件结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块之间的关系。在详细设计之前进行总体设计可以站在全局的高度上,花较少的成本,从中选出最佳方案和最合理的软件结构,从而用较低的成本开发出高质量的软件系统。 4.1系统设计 4.1.1网站设计的目标 我们所设计的网站主要目的在于使用户和管理员对于信息的管理和操作变的更为快捷、方便从这方面考虑,所以该网站在设计过程中,应实现以下目标: 全面实现网站的规范化管理: (1)能准确、及时地实现对网站的基本信息的维护和查询。 (2)能准确、及时地实现对分类信息的维护和查询。 (3)能准确、及时地实现对关键字信息的维护和查询。 4.1.2网站结构分析 根据在需求分析阶段所制定出的该网站所应该具有的功能,经过系统模块化的分析设计将系统分为:信息浏览模块,信息查询模块和信息维护模块。模块不同,它的具体功能也不同。 以下是网站的功能模块结构图: 信息添加 信息修改 信息维护模块 信息删除 显示全部信息 按类别显示信息 信息浏览模块 按关键字显示信息 按关键字站内查询 信息查询模块 图4.1功能模块图 4.1.3各子模块功能详细说明 (1)信息维护模块:管理员首先通过用户名和密码进入管理界面,在管理界面中进行网站信息的维护,主要的维护功能有信息的添加,即在添加界面按要求步骤输入添加信息的具体内容,然后保存到网站。信息的删除,即把过期的信息删除出网站。信息的修改。即把信息内容有变化的信息把变化的部分改正。 (2)信息浏览模块:用户登陆到网站主页面,可以查看全部信息的详细内容,还可以按类别进行查看。方便了用户的信息浏览。 (3)信息查询功能:用户登陆到网站的主页面,可以查找任何想要的信息,若全部查找起麻烦,还可以进行关键字查询,把要查找的信息的主要内容输入到关键字查找文本框,点击查询即可,就可以查找到相关内容。 网站管理员在这个系统中的权限最大,他除了以上人员所拥有的权利之外还,主要从事于对系统的授权维护。她可以对基本信息进行查询、维护、浏览。 4.2数据库的设计 数据库在一个网站中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。 开发一个基于Web 的数据库,最重要的一步就是后台数据库的结构设计,而后台数据库的设计原则中最重要的一条就是必须符合整个系统的需求。在网站的数据库当中分别对基本信息、分类信息进行存储,便于网站的分块开发、调试和维护,同时也可以使得各个模块能够相互独立的运行,这也符合软件工程的思想。由于该网站的数据库的稳定性、数据量、访问的用户数目和并行性的要求,本系统采用Access 2003。 4.2.1数据库系统 数据库系统是指在计算机支持环境下由数据库、数据库管理系统(DBMS)、数据库管理人员(DMA)和应用程序组成的集合。 DBMS数据库管理系统,由许多程序组成。是支持用户建立、访问及维护数据库的一组软件,是数据库技术的直接体现。 DBMS主要包括以下功能: (1)数据定义功能:用户通过数据定义语言(DDL)对数据库中的数据对象进行定义。 (2)数据操纵功能:用户使用数据操纵语言(DML)操纵数据实现数据库的基本操作。 (3)数据库的运行管理:数据库在建立、运行和维护时由DBMS统一管理、统一控制,保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。 (4)数据库的建立和维护功能:包括数据库初始数据的输入、转换功能,数据库的 转储、恢复功能,数据库的重组功能和性能监视、分析功能等。 数据库中的管理员信息表如下: 名 称 表单元素类型 含 义 最大长度 Username Text 管理员名称 25 Password password 管理员密码 25 表4—1管理员信息表 数据库中关于信息内容的信息表如下: 名 称 表单元素类型 含 义 最大长度 Txttitle text 信息名称 70 Txturl text 链接地址 70 Typename list 信息类型 Txtcontent textarea 信息说明 350 Big text 信息大小 10 Vote radio 信息评价 From text 相关主页 10 Fromurl text 相关地址 70 表4—2信息内容的信息表 4.3数据库的连接 首先要了解数据库系统的概念。数据库系统是指采用了数据库技术的计算机系统,他包括数据库,数据库管理系统,计算机系统,应用程序,数据库管理员及终端用户等。数据库及数据库管理系统负责数据的存储及更新。在数据库管理系统的支持下,计算机系统及应用程序负责完成用户针对数据库的各种操作。 4.3.1使用连接字符串 〈% dim conn dim connstr on error resume next set conn=server.createobject(“ADODB>CONNECTION”) conn.open “DRIVER={Microsoft Acess Driver (*.mdb)};DBQ=” & DefaultDir &server.mappath(“downloadlu.mdb”)&”:” 它的各个步骤及参数意义如下: 第一行程序利用Server对象的MapPath函数,取得要打开的数据库的完整文件路径,并存储在变量DbPath中。 第二行程序建立一ADO对象集中的Connection对象,也即连接对象。这是建立数据库连接的初始步骤。 第三行程序利用连接对象Conn的Open方法打开一个指定的数据库。 第四行程序建立一个ADO对象集中的Recordset对象,以便利用Recordset对象操作数据库。 第五行程序利用rs对象的Open方法打开数据库中的数据表。 4.4数据库结构设计 根据网站功能设计要求和模块划分,信息查询网站主要包含信息记录数据项和数据结构。 4.4.1数据库需求分析 信息记录包含以下内容: (1)信息记录编号:是网站自动生成的,在添加信息的同时,就有一个记录编号自动跟随着这个信息了。 (2)信息名称,信息类别:是由网站管理员编写的部分,在添加信息时必须要添加的信息。 (3)信息描述:指添加信息的具体内容。 (4)信息大小:指所添加的信息所占的网站的内存环境的多少。 (5)信息时间和浏览次数:指信息添加的时间和用户浏览率。 4.4.2数据库逻辑设计 信息记录表learning : 表 4—1信息记录表 articleid 自动编号 type 文本 title 文本 url 文本 content 备注 hits 数字 big 文本 vote 文本 from 文本 fromurl 文本 dateandtime 日期/时间 第五章 详细设计与编码实现 根据前几章对网站的需求分析和总体设计,得到了网站的功能模块和系统的体系结构,详细设计阶段的根本目标是确定应该怎样具体地实现所要求的网站,也就是说,经过这个阶段的设计工作,应该得出对目标网站的精确描述,进而在编码阶段可以把这个描述翻译成用某种程序设计语言书写的程序。 这个网站主要完成的是信息管理模块,信息查询模块。下面在此基础上,对各个模块进行详细设计以及编码实现。 5.1系统登录界面 为了方便用户使用,将用户分为系统管理员和登陆用户。网站管理员通过登陆窗口进性身份验证的,输入帐号和密码进入网站后将获取的登陆信息与数据库里相应的登陆信息进行比较,不同的用户将获得不同的权限。这里是以网站管理员身份进入系统. 下面是登陆界面: 图5.1登陆界面 代码如下: <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>ASP信息查询系统</title> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <link rel="stylesheet" href="css/style.css"> </head> <boky> <body bgcolor="#FFFFFF"> <div align="center"><br> <font color="#000000">管理系统</font> <br> </div> <form method="post" action="chklogin.asp"> <div align="center"> <p>用户名称 <input class=TextBorder maxlength=25 name=username size=13 value=""> </p> <p> 管理密码 <input class=TextBorder maxlength=25 name=password size=13 type="password" value=""> </p> <p> <input type="submit" value="确定" name="cmdOk" class="buttonface"> &nbsp; <input type="reset" value="重填" name="cmdReset" class="buttonface"> &nbsp; </p> </div> </form> <div align="center"> <p>&nbsp;</p> </div> 5.2信息维护模块 5.2.1管理后台 图5.2管理界面 5.2.2信息添加 图5.3信息添加界面 代码如下: <% if request.cookies("adminok")="" then response.redirect "login.asp" end if %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> <title>信息查询系统信息添加界面</title> <script LANGUAGE="javascript"> <!-- function FrmAddLink_onsubmit() { if (document.FrmAddLink.txttitle.value=="") { alert("Sorry,信息名称没有输入!") document.FrmAddLink.txttitle.focus() return false } else if(document.FrmAddLink.txturl.value==""document.FrmAddLink.txturl.value.toUpperCase()=="HTTP://") { alert("Sorry,链接地址没有输入!") document.FrmAddLink.txturl.focus() return false } else if(document.FrmAddLink.txtcontent.value=="") { alert("Sorry,信息简介没有输入!") document.FrmAddLink.txtcontent.focus() return false } else if(document.FrmAddLink.big.value=="") { alert("Sorry,信息大小没有输入!") document.FrmAddLink.big.focus() return false } else if(document.FrmAddLink.from.value=="") { alert("Sorry,信息来源没有输入!") document.FrmAddLink.from.focus() return false } else if(document.FrmAddLink.fromurl.value=="") { alert("Sorry,信息来源地址没有输入!") document.FrmAddLink.fromurl.focus() return false } } <td width="15%" align="right" height="9" valign="middle"><b><font color="#0080C0">信息名称:</font></b></td> <td height="9" colspan="3" width="85%"> <input class=TextBorder name=txttitle size=70 maxlength="70"> <font color="#FF0000"> </font></td> </tr> <tr> <td width="15%" align="right" height="2" valign="middle"><b><font color="#0080C0">链接地址:</font></b></td> <td height="2" colspan="3" width="85%"> <input class=TextBorder name=txturl size=70 maxlength="70" value="http://"> </td> </tr> <tr> <td width="15%" align="right" height="2" valign="middle"><b><font color="#0080C0">信息类型:</font></b></td> <td height="2" colspan="3" width="85%"><font color="#0099CC"> <select class="smallSel" name="typename" size="1"> <option value="国内信息">国内信息</option> <option value="国外信息">国外信息</option> <option value="热点信息">热点信息</option> <option value="工具信息">工具信息</option> <option value="其他类别信息">其他类别信息</option> <option value="站内信息">站内信息</option> <option value="站外信息">站外信息</option> </select> </font></td> </tr> <tr> <td width="15%" align="right" height="19" valign="top"><b><font color="#0080C0">信息说明:</font></b></td> <td height="19" colspan="3" width="85%"> <textarea class="TextBorder" name="txtcontent" cols="70" rows="5"></textarea> <font color="#FF0000"> </font></td> </tr> <tr> <td width="15%" align="right" height="19" valign="top"><font color="#FFFFFF"><b><font color="#0080C0">信息评价:</font></b></font></td> <td height="19" colspan="3" width="85%"><font color="#0099CC"> <input type="radio" name="vote" value="★"> </font><font color="#FF0000">★</font><font color="#0099CC"> <input type="radio" name="vote" value="★★"> </font><font color="#FF0000">★★</font><font color="#0099CC"> <input type="radio" name="vote" value="★★★"> </font><font color="#FF0000">★★★</font><font color="#0099CC"> <input type="radio" name="vote" value="★★★★"> </font><font color="#FF0000">★★★★</font><font color="#0099CC"> <input type="radio" name="vote" value="★★★★★"> </font><font color="#FF0000">★★★★★</font></td> </tr> <tr> <td width="15%" align="right" height="19" valign="top"><b><font color="#0080C0">相关主页:</font></b></td> <td height="19" colspan="3" width="85%"><b><font color="#0080C0"> </font><font color="#0080C0"> <input class=TextBorder name=from size=20 maxlength="10" value="本地"> </font><font color="#0099CC"> </font></b></td> </tr> <tr> <td width="15%" align="right" height="19" valign="top"><b><font color="#0080C0">相关地址:</font></b></td> 5.2.3保存信息 图5.4保存界面 5.2.4编辑信息 图5.5信息修改界面 代码如下: <% if request.cookies("adminok")="" then response.redirect "login.asp" end if %> <!--#include file="articleconn.asp"--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> <title>信息查询系统信息修改</title> <script LANGUAGE="javascript"> <!-- function FrmAddLink_onsubmit() { if (document.FrmAddLink.txttitle.value=="") { alert("Sorry,信息名称没有输入!") document.FrmAddLink.txttitle.focus() return false } else if(document.FrmAddLink.txturl.value=="" || document.FrmAddLink.txturl.value.toUpperCase()=="HTTP://") { alert("Sorry,链接地址没有输入!") document.FrmAddLink.txturl.focus() return false } else if(document.FrmAddLink.txtcontent.value=="") { alert("Sorry,信息简介没有输入!") document.FrmAddLink.txtcontent.focus() return false } else if(document.FrmAddLink.big.value=="") { alert("Sorry,信息大小没有输入!") document.FrmAddLink.big.focus() return false } else if(document.FrmAddLink.from.value=="") { alert("Sorry,相关主页没有输入!") document.FrmAddLink.from.focus() return false } else if(document.FrmAddLink.fromurl.value=="") { alert("Sorry,相关来源地址没有输入!") document.FrmAddLink.fromurl.focus() return false } } dim sql dim rs sql="select * from learning where articleid="&request("id") set rs=server.createobject("adodb.recordset") rs.open sql,conn,1,1 %> <tr bgcolor="#0099CC"> <td width="100%" height="20" bgcolor="#B5D85E"> <p align="center"><b><font color="#FFFFFF"> 信 息 修 改</font></b> </td> </tr> <tr align="center"> <td width="100%" height="102"> <table border="0" cellspacing="1" width="93%"> <tr> <td width="15%" align="right" height="9" valign="middle"><b><font color="#0080C0">信息名称:</font></b></td> <td height="9" colspan="3" width="85%"> <input class=TextBorder name=txttitle size=70 maxlength="255" value="<%=rs("title")%>"> <font color="#FF0000"> </font></td> </tr> <tr> <td width="15%" align="right" height="2" valign="middle"><b><font color="#0080C0">链接地址:</font></b></td> <td width="15%" align="right" height="23" valign="top"><b><font color="#0080C0">信息说明:</font></b></td> <td height="23" colspan="3" width="85%"> <td width="15%" align="right" height="19" valign="top"><font color="#0080C0"><b> </b></font><b><font color="#0080C0"> </font><font color="#FFFFFF"><b><font color="#0080C0">信息大小:</font></b></font></b></td> <td width="15%" align="right" height="19" valign="top"><b><font color="#0080C0">相关主页:</font></b></td> <td width="15%" align="right" height="19" valign="top"><b><font color="#0080C0">相关地址:</font></b></td> <td colspan="4" align="right" height="19" valign="top"> <div align="center"></div> <div align="center"><font color="#0099CC">ID号:<%=rs("articleid")%> 类型:<%=rs("type")%> 评价:<font color="#FF0000"><%=rs("vote")%> </font>创建日期:<%=rs("dateandtime")%> 访问量:<%=rs("hits")%></font></div> </td> </tr> </table> </td> </tr> </table> </center></div><div align="center"><center><p><input type="submit" value=" 修 改 " name="cmdok" class="buttonface">&nbsp; <input type="reset" value=" 复 原 " name="cmdcancel" class="buttonface"></p> 5.3信息显示模块 5.3.1页面显示 (1)为全部信息显示所看到的页面效果: 图5.6全部查询界面 (2)为类别信息显示所看到的页面效果: 图5.7类别查询界面 (3)为关键字搜索信息显示所看到的页面效果: 图5.8关键字查询界面 5.4信息查询模块 5.4.1页面显示 图5.9关键字界面 第六章 网站的测试 进行网站的测试,经过上述对网站的分析、设计和编码后,应对网站进行详细的测试,这是软件投入使用前尽可能多的发现软件中的错误,并对错误进行修改,以达到系 统在正式运行时性能等各方面状况良好。 按照测试过程是否在实际应用环境中运行来分类,可将测试方法分为静态测试与动态测试。首先采用静态测试,然后运行整个程序,对重点模块采用动态测试。下面介绍静态测试和动态测试的具体过程。 6.1静态测试 静态测试是通过对需求分析文件、系统设计文件及源程序的阅读和分析,找出其中的错误或可疑之处。本系统测试是完全按照这样的步骤进行测试的。 首先根据用户需求来检查需求分析文件,看系统功能是否有遗漏的地方,根据数据流图和数据字典来检查数据库设计是否合理。其次是反复阅读源程序和数据流图,对照模块功能说明、算法和语法规则来检查程序的语法错误及逻辑错误。最后自己来充当计算机的角色,按照程序的逻辑步骤用头脑来执行程序,以检查程序的逻辑与功能并从中发现错误。 通过静态测试,把那些在设计和编码中的逻辑设计错误和编码错误找出来,来减少在动态测试中遇到的错误。本次测试检查出了数据库中的数据结构和数据流图中的数据不对应的错误。发现的这些错误,通过修改、调试使之数据一致,程序功能完整。 6.2动态测试 首先把系统应用程序放在一台电脑上,这台电脑即作为客户端,又作为服务器端。通过在一台电脑上运行系统,来测试系统。按产生测试数据的不同方式,动态测试可分为功能测试和结构测试。功能测试又称为“黑盒测试”,结构测试又称为“白盒测试”。 6.2.1 黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、错误推测等,主要用于软件确认测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。 6.2.2 白盒测试 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动,主要用于软件验证。 “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。下面是具体测试实例: 图6.1测试界面 当输入的关键字为空或没有相关信息时,网站就会自动显示无任何信息的提示。 结束语 毕业设计,是一次很好地提高实践能力和自我发展能力的机会,我们可以综合运用所学专业知识分析、解决问题。为今后的研究开发工作打下了基础,积累了难得的宝贵经验,这是一笔无形的财富。 本系统为一个简单的小型数据库应用系统,是在基于微软的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的动态网页发布模式。 ASP程序就是沟通客户端和后台数据库之间的桥梁。在ASP程序中,通过VBScript,建立对Access数据库的连接,是客户能够访问后台数据库的前提。 经过将近四个月的设计开发,学习了ASP技术,对Web应用程序的开发有了进一步的了解,尤其是在编写、调试程序的能力有了明显提高,并在整个设计开发过程中掌握了许多解决问题的方法。使得自己得到了很好的锻炼,利用软件工程的思想进行系统的需求分析和设计、运用正确的设计方法,结合网站设计知识,提高系统设计实践能力,完成了对系统各功能模块的管理。 但今后系统还需要进一步完善,要做的工作还很多,这些只是实现了模块的简单功能,并没考虑其复杂功能,没有设计一些系统参数,来灵活网站,这需要今后去设计实现。 毕业设计,是一次很好地提高实践能力和自我发展能力的机会,我们可以综合运用所学专业知识分析、解决问题。为今后的研究开发工作打下了基础,积累了难得的宝贵经验,这是一笔无形的财富。 致谢 衷心感谢薛老师在毕业设计和完成论文期间给予我的亲切关怀和精心指导 。在整个设计过程中,薛老师给我提出许多宝贵的意见,他细心讲解每一个问题,更正了我在设计初期犯的一系列错误,通过和同学们的交流,我们的系统得到不断完善,同时我学到了许多新的学习方法、全新的设计理念和设计思想。薛老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。再次感谢薛老师给予我的帮助。 由衷地感谢信管专业的老师们四年来的辛勤培养。 感谢我的学友和朋友对我的关心和帮助。 最后,我衷心向在毕业设计中所有给予我帮助的老师和同学表示最真挚的谢意! 参考文献 [1]李福荣, 曹庆臻.ASP动态网站之旅. 人民交通出版 .2000-07-01 [2]陈建军, 李美军 ,施建强等. ASP动态网站开发教程. 北京:清华大学出版社. 2005-01 [3]周纳.ASP动态网站编程与应用. 北京:清华大学出版. 2005-08-01 [4]梁建斌, 李元林, 姚雪祥. ASP程序设计实用教程. 北京:电子工业出版社.2006-05 [5]周新会, 傅立宏. ASP通用模块及典型系统开发实例导航 .北京:人民邮电出版社.2006-05 [6]龙马工作室. ASP+Access组建动态网站实例精讲(第一版). 北京:人民邮电出版社. 2005-01 [7]张海藩. 软件工程导论(第四版). 北京:清华大学出版社. 2003-12 [8]曾建潮. 软件工程. 武汉市:武汉理工大学出版社.  2003年8月 [9]杨开英.数据库系统概论.武汉市:武汉理工大学出版社.2003年1月 [10] 白尚旺.Power Designer 软件分析设计技术.北京:电子工业出版社.2002年6月 [11] 李劲.精通ASP数据库程序设计.北京:科学出版社. 2001 附录 英文原文: Chapter 3. Software Systems Development Process All my life I've known better than to depend on experts. How could I have been so stupid, tolet them go ahead? —President John F. Kennedy, conversation with Theodore C. Sorensen concerning the Bay ofPigs invasion; Quoted in Sorensen, Kennedy, p. 309 (1965). 3.1 Introduction One measure of successful software systems development is the ability to produce goodproducts (i.e., products with integrity) with good processes (i.e., processes with integrity)consistently. Achieving this type of consistency depends primarily on the presence of thefollowing two factors: • People with know-how. Skilled people are the most important part of successful software systemsdevelopment. But having people with the necessary know-how to turn out goodproducts is not sufficient if good products are to be turned out consistently. • An understanding of the "organizational way of doing business," that is, "process" of building software systems. Left to their own devices, people do things their own way. Consistency requires anorganizational way of doing things. Furthermore, from a long-term businessviewpoint, understanding the software process cannot be limited to a few keyindividuals. Successful software systems development is a delicate balance among (1) enabling peopletogrowprofessionally, (2) documenting processes embodying the experiences and knowledge ofthe people in the organization, (3) using know-how to apply such processes appropriately to aset circumstances, and (4) refining processes based on the experience gained by applyingthe processes. What do we mean by "software process"? In this book, we define a software process as "a setof activities, methods, practices, and transformations that people use to develop and maintainsoftware and the associated products (e.g., project plans, design documents, code, test cases,and user's manuals)."[1] Figure 3-1 illustrates people using a software process to develop andmaintain software and associated products. However, many software developmentorganizations do not follow a documented process or way of doing business. "Good" productscan be produced; nevertheless, without a documented process, it is difficult, if not impossible,for an organization to institutionalize a software process that consistently produces products that do what they are suppose to do, on time, and within budget. 1 ] M.C. Paulk et al., "Capability Maturity Model for Software, Version 1.1," Software EngineeringInstitute Report CMU/SEI-93-TR-24, CarnegieMellon University, Pittsburgh, PA, February 1993, p. 3. Successful Software Development, Second Edition Figure 3-1 People use a software process to develop and maintain software and associated products. Our concept of a software systems development process is tied to the concept of organization.In this book, organization means "an administrative and functional structure that operates toproduce systems wisoftware content." Figure 3-2 gives examples of this concept in terms offive software project combinations. A software project is "a planned undertaking whosepurpose is to produce a system or systems with a software content." Successful Software Development, Second Edition Figure 3-2 This figure shows five example software organizations based on software project groupings. Project combination One represents an organization that consists of one software project,wherecombination Two consists of two projects. Combination Three represents a programthat is "a collection of software projects bound by a common goal or a commoncustomer/seller agreement." Combination Four represents an organization with multipleprograms. Finally, combination Five represents an organization that may cut across companySuccessful Software Development, Second Edition(or government agency) lines. In the case of companies, this cross-cutting situation can arisewhen multiple contractors support a program or project. This chapter describes an example organizational software systems development process. Youcan use this example as a starting point to formulate (or enhance) a corresponding process foryour environment. By formulate we mean "documenting a software systems developmentprocess that your organization may already use or would like to use." Such an organizational process provides an integrating framework for developing andimplementing a systems engineering environment (SEE). Once the process is documented inan Application Development Process Environment (ADPE) element and implemented, otherelements can be developed to provide additional detail. For example, our example processncludes a change control board (CCB), but this chapter's discussion does not contain thedetailed guidelines one would expect for setting up and running a CCB. We recommend thatdetailed guidance be contained in another ADPE element (e.g., a CCB guideline). Ourexample process also requires peer reviews, but this chapter's discussion does not containdetailed peer review guidance. The point is that once the organizational software systemsdevelopment process is defined, additional detail can be provided in other ADPE elements.[2]The plan for this chapter is the following: • In Section 3.2—Software Systems Development Process Key Ideas, we present thekey ideas that you can expect to extract from this chapter. • In Section 3.3—Software Systems Development Process Overview, we introducekey software systems development principles and a software systems developmentprocess. This process sets the context of discussion for the rest of the chapter. Theprocess offers you a starting point for developing a similar software systemsdevelopment process for your place of business. Without a documented process,heroes make "it" happen. When the heroes move on, the organization generallyregresses, and success becomes chancey until new heroes emerge. A documentedprocess helps an organization avoid an overreliance on heroic efforts. The followingmajor process elements are introduced: customer, seller process engineering group;customer/seller development team; change control board (CCB); seller seniormanagement; and the major communication paths. Each of these elements issubsequently described in following sections. • In Section 3.4—Customer, we provide tips for the customer for writing a "good"statement of work (SOW) that tells a seller what the customer wants. The SOWinitiates the software systems development process. Writing a "good" SOW is noteasy. Goodness is defined at the topmost level to mean "avoiding ambiguity andstipulating deliverables consistent with available time and money." Without a goodSOW, a software systems development effort is in trouble at its inception. We call outissues for the customer to consider when writing an SOW. • In Section 3.5—Seller Process Engineering Group, we discuss how theorganizational software systems development process is taken into account when theseller develops a project plan in response to a customer's SOW. This section augmentsthe Chapter 2 discussion of the project planning process. We point out those seller 2 In this book, we provide additional insight into our example organizational software systemsdevelopment process in other chapters. For example,Section 3.5 discusses the seller process engineegroup'sresponsibility for project planning. However, Chapter 2 provides the lower-level planningdetails and responsibilities. In effect, Chapter 3 is an ADPE element (i.e., Organizational Software Systems Development Process Policy) that issupported by a Chapter 2 ADPE element (i.e., Project Planning Procedure). Successful Software Development, Second Edition activities that we believe should be planned for, regardless of specific life cycle. Forexample, regardless of life cycle, we believe the seller should conduct peer reviews forthe evolving products. • In Section 3.6—Customer/Seller Development Team and Change Control Board(CCB), we focus the discussion on customer and seller communication and also onseller development team activities. We address the following:o Customer project managero Seller development team activities that include communicating with thecustomer; evolving software products (i.e., documents, computer code,databases); conducting peer reviews; providing independent product assurance;performing technical editing; and performing project-level technical oversighto Product tracking formo Change control board (CCB) Some of these concepts are treated in more detail in subsequent chapters (e.g., Chapter4 examines CCB mechanics). • In Section 3.7—Seller Senior Management, we highlight the organizational softwaresystems development process review and approval responsibilities of these managers. • In Section 3.8—Software Systems Development Process Summary, we summarizethe key points developed in the chapter. We include an annotated outline of anApplication Development Process Environment (ADPE) policy for defining a softwaresystems development process. 3.2 Software Systems Development Process Key Ideas Figure 3-3 lists the key ideas that you can expect to extract from this chapter. To introduceyou to this chapter, we briefly explain these key ideas. Their full intent will become apparentas you go through the chapter.Successful Software Development, Second Edition Figure 3-3 Successful software systems development is repeatable if an organization has a well-understood and documented product development process that it follows. Without such a process, the organization must rely on the heroics of individuals. Here are key processconcepts exaplained in this chapter. 1. If you are a customer, specify in your request for proposal (RFP) that the seller definea software systems development process that involves you via a CCB-like mechanism.You should structure your RFP to require the seller to define the particulars of theseller's software systems development process. Have the seller document this processin an ADPE element signed by you and the seller. This element should be revisited and updated no more frequently than every year. 2. The software systems development ADPE element should contain the following: (1)generic activities performed by seller organizational elements (including thedevelopment, management, and product assurance activities) in developing softwareproducts for delivery to the customer and (2) the roles of the customer and the sellerorganizational elements in performing these activities.The generic activities should encompass the spectrum of activities from the receipt ofa customer SOW to customer feedback on the delivered products. 3. Include in the ADPE process element a figure showing the process in terms of the (1)generic activities, (2) major communications paths connecting the activities, (3)organization responsible for performing each activity, and (4) products produced.The software systems development process figure establishes the "way" business is tobe conducted between the customer and seller. The explicit labeling of activities and Successful Software Development, Second Edition 138 communication paths and detailing organizational responsibilities defines the terms tobe used by everyone. People understand what individual responsibilities are and howtheir particular contribution fits into the bigger picture. 4. Seller senior management should empower the project manager to applyprescriptively the generic activities in the ADPE process element.he software systems development process element should therefore be written so thatit allows the project manager to perform the activities in the order and to the extent consistent with project schedules and available resources. The process ADPE elementshould not be written as a cookbook. There is no one way to build software. Step-bystepprocesses that are to be mechanically followed simply cannot account for thespectrum of contingencies that can arise during software systems development. Peopleare the most important part of the process. However, the process helps to provide consistent software development. When people make a considered decision to applyprescriptively the documented process, the decision needs to be communicated so thateveryone understands what resources the process requires and what products are to beproduced. 5. Concurrent with development of the process ADPE element, the seller should developand periodically present briefings to the customer and seller personnel on theelement's contents. People need an opportunity to ask specific questions on how the software systemsdevelopment process affects their day-to-day activities. 6. To establish closure between the seller and customer regarding product delivery andacceptance, include in the ADPE process element a form that the customer returnsupon product receipt and a form that the customer returns stating whether the productis accepted as delivered or requires changes.Customer satisfaction is tied, in part, to customer feedback. Customer acceptanceforms provide the customer (i.e., buyer/user) another opportunity to comment on thedelivered product. As subsequently explained, we suggest that customer feedbackconcerning a delivered product can be expressed as (1) accepted as delivered, (2)accepted with minor changes, or (3) rejected. 3.3 Software Systems Development Process Overview As stated earlier, there is no one way to build software systems. If there were, softwaresystems development would have been reduced to an assembly-line operation long ago. However, we believe there are fundamental development principles that help increase thelikelihood of software systems development success. Software systems developmentprinciples provide the foundation for (1) examining an existing organizational softwaresystems development process, or (2) defining an organizational development process. Assubsequently described, we believe the following principles provide this foundation: • Plan the work to be done before doing it. • Obtain agreement on defined responsibilities. • Establish and empower self-directed work teams. Successful Software Development, Second Edition • Establish checks and balances. • Maintain continual customer and seller interaction. • Monitor project progress. • Mentor project managers and train work teams. • Provide interim review on project progress. • Provide feedback on deliverables. • Improve the software systems development process. We believe these principles are fundamental to an organization's way of doing softwaresystems development business. In what sense does software systems development involve a "process" or "a way of doingbusiness"? If an organization is in its beginnings or infancy, there may be an idea or conceptof how to conduct the software systems development business, but the process may not bewelldefined. However, the concept may be well understood by a few key individuals. As theorganization matures, the development process may mature, and more individuals mayunderstand the process. At the other end of the spectrum are well-established organizations. Insuch organizations, there may be a "defined" development process, but it may not be documented. Of course, there are organizations, both new and well established, that do havedocumented organizational software systems development processes. Regardless of what yourparticular situation may be, the concept of "process" can be viewed as a tool to communicateand explain the activities involved with consistently developing software systems that (1) aredelivered on time, (2) are delivered within budget, and (3) do what the customers want thesystems to do. Figure 3-4 is an overview of our example organizational software systems developmentprocess. Our example process starts with a customer's statement of work (SOW) and endswith customer feedback regarding the delivered products (and supporting services). Thisprocess allows for the planning, evolving, and reviewing of products (i.e., documents,computer code, data) for delivery to the customer. The figure has round-edged rectangles,rectangles, and labeled arrows. The round-edged rectangles represent customer-relatedresponsibilities, and the rectangles represent the seller-related responsibilities. The labeled arrows represent major communication paths and associated information.Successful Software Development, Second Edition Figure 3-4 Our example organizational software systems development process is a closedlooped process that starts and ends with the customer. As shown in Figure 3-4, our example organizational process consists of the following majorelements: • Customer • Seller Process Engineering Group • Customer/Seller Development Team (i.e., customer project manager, sellerdevelopment team) • Change Control Board (CCB) • Seller Senior Management • Major communication paths Successful Software Development, Second Edition Figure 3-4 also shows the following responsible agents and associated process activities: • Customer. Prepares SOW, Negotiates Agreement, and Reviews Delivered Products forAcceptance. • Seller Process Engineering Group. Plans the Work to Accomplish the Customer's SOW Tasks. • Customer Project Manager. Communicates with Seller Project Manager. • Seller Project Manager. Communicates with Customer Project Management and Evolves Software Product(s). • Lead Developer. Establishes Project Files. • Lead Developer or Moderator. Conducts Peer Reviews. • Product Assurance Manager. Provides Independent Product Assurance. • Technical Editor. Performs Technical Editing. • Seller Management. Performs Project-level Technical Oversight. The software systems development process activities are linked together by the majorcommunication paths. As shown in Figure 3-4, along each communication path information istransferred from one process element to another. The information transferred consists of thefollowing items: • Statement of Work (SOW) • Seller Project Plan • Negotiated Agreement • Items for the Record • Technical Guidance and Evolving Products • "Day-to-Day" Coordination and Technical Guidance Successful Software Development, Second Edition • Items for the Record and Issues for Customer Concurrence • Evolving Products and Technical Guidance • Tracking Form • Evolving Products (i.e., documents, computer code, or data) • Technical Feedback • Audited Material • Edited Material • Reviewed Material • Deliverable Coordinated at Project Level • Items to Be Resolved • Approved Deliverable • Deliverable Status As shown in Figure 3-4, the process starts in the upper right-hand cornerwhen the customerprepares a statement of work (SOW) that details what the customer wants. The seller's processengineering group "plans the work to accomplish the customer's SOW tasks" and provides thecustomer with a seller project plan. Upon mutual agreement, the customer provides the sellerwith a negotiated agreement which triggers the customer and seller development activities.[3]These activities involve management, development, and product assurance systemsdisciplines. The seller project manager "communicates with the customer and evolves the softwareproduct(s)." Regardless of how the products evolve, the seller development team (1)establishes project files, (2) conducts peer reviews, (3) provides independent productassurance,[4] (4) performs technical editing, and (5) performs project-level technical oversight.The seller development team evolves the products and communicates with the customerproject manager to discuss issues that require customer concurrence. The customer project manager "provides technical guidance to the seller project manager" ashe project unfolds. Both the customer and the seller project managers "hold project CCBs,project reviews, and decide what to do next." After the project products are coordinated by thecustomer and seller project managers, the products are sent to the seller senior managementor review and approval before being delivered to the customer. The seller senior management may identify items to be resolved before the product isdelivered to the customer. In this case, the seller development team resolves the items andresubmits the product to the seller senior management for approval. If all items are resolved,the approved deliverable is provided to the customer for acceptance. The customer providesfeedback on the deliverable status with respect to its acceptability. One question someone may ask is, "How could my existing organizational life cycledevelopment activities and technologies fit into the example organizational software systemsdevelopment process?" As shown in Figure 3-5, your existing life cycle development activities plug into the following seller development team activities:3 Notice that the customer/seller development team encompasses both customer and seller activities. We believe that both parties must activelyparticipate in the development process. Without such joint participation, the risk of the project failing increases. The notion that a customer providesthe seller with an SOW containing requirements and then checking on the project, say, six months later, is a prescription for disaster. At the same time,the customer needs to be careful not to get so involved that such involvement gets in the way of the seller doing the job. 4 Notice that this seller rectangle has a drop shadow. As we subsequently explain, we use this shadow to denote independent product assurancesupport provided to the Seller Project Manager. Successful Software Development, Second Edition Figure 3-5 The software systems development process is independent of product development life cycle and specific product development technologies. The figure shows where you would introduce your life cycle(s) to adapt the process to your organization. • Seller Process Engineering Group. Plans the Work to Accomplish the Customer's SOW Tasks. • Seller Project Manager. Communicates with the Customer Project Management and Evolves Software Product(s). Successful Software Development, Second Edition Our example organizational process is independent of a specific life cycle. The processrequires, regardless of life cycle and supporting technology, that the preceding processactivities be performed to some degree. Your existing life cycle may be traditional systemsengineering, prototyping, or information engineering. As subsequently explained, regardlessof the life cycle, as a minimum, the project plan and the corresponding negotiated agreementshould take into consideration these process activities. Each of the major elements, corresponding information, and their interaction with one anotheris detailed in the next four sections. 3.4 Customer Our organizational software systems development process begins with the customer. Asshown in Figure 3-4, the customer, among other responsibilities, prepares an SOW detailingwhat the customer wants the seller to do. In the software industry, the SOW can manifestitself in widely different ways. An SOW is called by a variety of different names, such asrequest for proposal, request for contractor services, or solicitation. In some environments, theSOW may be as short as one sentence or a couple of paragraphs. In other environments, theSOW can manifest itself as a detailed document consisting of hundreds or even thousands ofpages. Other SOWs fall somewhere in between. There are many types of SOWs. Specific SOW types include the following: • Firm fixed price • Fixed price redetermination • Fixed price incentive • Fixed price level of effort • Time and material • Cost plus incentive fee • Cost plus award fee • Cost plus fixed fee • Letter contracts • Delivery order • Basic ordering agreement • Government owned, contractor operated Regardless of the type of SOW, in general, SOWs contain the same basic elements. Becauseof the varying risks associated with software systems development efforts, SOWs may specifydifferent management approaches and incentives. However, writing a good SOW is difficult.It is difficult to know exactly what is needed. We all get smarter about what we are doing aswe do it, but no matter how well an SOW is written, change happens. The flip side of thissituation is that writing a corresponding project plan is also difficult. Therefore, dependingupon the software systems development effort, the SOW can allow for change as the projectproceeds by calling for revisits to tasks to update previously developed products. Figure 3-6 summarizes twelve tips that are intended to help people who are writing SOWs toovercome the blank-page syndrome. These tips derive from lessons learned using SOWs to doproject planning. Successful Software Development, Second Edition Figure 3-6 The SOW (Statement of Work) is the customer's statement of what the customerwants the seller to do. The figure gives tips to help buyers/users write an SOW.SOW Tip 1—Background The first tip encourages the customer to provide background on the organization, its mission,policies, etc. Background establishes the authority for the work and lets the potential sellersknow the SOW is probably real. The background also helps to set some context for the seller. However, as any experienced seller would say, if the SOW is the first time the sellerunderstands the potential customer's background, the likelihood the seller will "win" the workis slim. It helps if the seller understands the potential customer. 中文翻译: 第三章 电脑软件系统的发展 过程: 在我的生活中我通常会信赖专家多一些,我怎么会那么愚蠢的让他们在我之前? ——约翰。肯尼迪总统与西奥多C的会话中表现出对阻止这种愚蠢侵略的担心引用自,西奥多,肯尼迪,第309页(1965年) 3.1引言: 一个成功的电脑软件系统的发展的方法是如果好产品使结果一致的话。用一贯的充分的准备生产好的产品的能力实现这种始终一贯的相信即将出现的两个因素知道如何做的人类对一个成功的电脑软件系统发展来说有能力的人是重要的一部分。需要人类有需要的知道如何做去避免好的产品是不够的建立电脑软件系统来说,做商业的组织方法是需明了的地方。依靠他们自己的设备,人们按自己的方法做自己的事情。始终一贯的用组织的方法做事情,而且,从一个长远的商业观点看,了解电脑软件的作用不能限制一些个别个体。成功的电脑软件系统的发展是一个微妙的(1)在赋予人们权利之中职业的成长的(2)用文件证明练习的含义和人们的知识在组织中的作用(3)使用知道任何做去应用于物质环境的适当的加工,和(4)根据获得的收益的使用的加工对其进行净化,就是电脑软件活动的含义。在本书中,我们定义电脑软件活动为活动,方法,练习,变换使人们用于发展和维持电脑软件的联合产品(例:计划,构思密码,译为密码,测试事例和使用者手册)3-1举例说明人们使用电脑软件活动去发展和维持电脑软件以及联合产品,然而,很多电脑软件发展组织并不是随密码活动或者做生意的方法,“好”产品会被生产,尽管如此,没有密码活动,是很困难的,如果是可能的话,对于一个组织去建立一个电脑软件活动和始终一贯的生产,他们都会做准时的和在预算之内的事情。 图3-1人们使用电脑软件活动用于发展和维护电脑软件和联合产品。 我们对于电脑软件系统开发活动的思想是组织的概念。 在这本书里, 组织意味"操作的一种行政和功能构造产物系统以软件内容。"图3-2 给出这个概念例子根据五个软件项目组合。 软件项目是"计划的事业目的将导致一个系统或系统软件内容。" 图3-2 这个图显示五例子软件组织根据软件项目分组。 项目组合你代表包括一个软件项目的组织,但是组合二包括二个项目。 组合三代表节目,那是"软件项目的一件收藏品由一个共同目标或共同性一定顾客卖主协议。"组合四代表组织倍数节目。 终于, 组合五代表也许切开横跨公司的组织。 在公司情况下, 这个cross-cutting 情况可能出现当多承包商支持节目或项目。 这个章节描述一个例子组织软件系统发展过程。 您可能使用这个例子作为起点公式化(或提高) 一个对应的过程为您的环境。 由公式化我们意味"提供软件系统发展处理, 您的组织也许已经使用或会想使用。" 这样一个组织过程为显现出提供一个集成的框架和实施系统工程环境。 一旦过程被提供应用开发过程环境(ADPE) 元素和实施, 其他元素可能被开发提供附加明细。 例如, 我们的例子过程包括变动控制板(CCB), 但这个章节的讨论不包含详细的指南你会期望为安装和赛跑CCB 。 我们推荐那详细的教导包含在其它ADPE 元素(例, CCB 指南)。我们例子过程并且要求同事评审, 但这个章节的讨论不包含详细的同事评审教导。 点是一次组织软件系统发展过程被定义, 附加明细可能被提供在其它ADPE 元素。[ 2 ]计划为这个章节是如下: 在部分3.2..电脑软件系统开发过程钥匙想法, 我们提出您能盼望从这个章节提取的关键想法。 在部分3.3.电脑软件系统开发过程概要, 我们介绍关键软件系统发展原则和软件系统发展过程。 这个过程设置讨论上下文为章节的剩余。 过程提供您一个起点为显现出的一相似的软件系统发展过程为您的营业场所。 没有一个被提供的过程,英雄做"它" 发生。 当英雄搬走, 组织一般退步, 并且成功成为chancey 直到新英雄涌现。 被提供过程帮助一个组织避免一overreliance 在英勇努力。 以下主要处理元素被介绍: 顾客, 卖主程序工程小组;顾客卖主开发小组; 改变控制板(CCB); 卖主前辈管理; 并且主要通信通道。 每个这些元素是随后描述在以下部分。 在部分3.4..顾客, 我们为顾客提供要诀为写"好"工作报表(SOW) 告诉卖主什么顾客想要。 SOW创始软件系统发展过程。 写"好" SOW 不是容易。 善良被定义在最上面的水平意味"避免二义性和规定deliverables 一致与可用时间语和金钱。"没有好SOW, 软件系统开发努力是在麻烦在它的开始。 我们召集问题使顾客考虑当写SOW 。 在部分3.5..Seller 程序工程小组, 我们谈论怎么组织软件系统发展过程被考虑到当卖主开发一个项目计划以回应顾客的SOW 。 这个部分增添关于项目计划过程的章节2 讨论。 我们指出那些卖主2 在这本书里, 我们提供另外的洞察入我们的例子组织软件系统发展过程在其它章节里。 例如,部分3.5 谈论对项目计划的卖主程序工程小组的责任。 但是, 章节2 提供底层计划细节和责任。 实际上, 章节3 是ADPE 元素(i.e., 是的组织软件系统发展过程政策)由章节2 ADPE 元素(i. 支持e., 项目计划做法) 。成功的软件开发, 我们相信的活动应该计划为, 不管具体生命周期。 为例子, 不管生命周期, 我们相信卖主应该举办同事评审为演变的产品。 在部分3.6..Customer/卖主开发小组和变动控制板(CCB), 我们集中讨论于顾客和卖主通信和还卖主开发小组活动。 我们演讲以下: 顾客项目负责人 卖主包括通信与的开发小组活动 顾客; 演变的软件产品(i.e., 文件, 计算机编码, 数据库); 举办的同事评审; 提供独立产品保证; 进行技术编辑; 并且执行项目级技术失察 产品跟踪形式 改变控制板(CCB) 这些概念较详细地被对待在随后章节(例, 章节4审查CCB 机械工) 。 在部分3.7..Seller 高级管理, 我们突出组织软件系统开发过程这些经理的回顾和认同责任。 部分3.8..Software 系统开发过程总结, 我们总结关键显现了出在章节。 我们包括一个附注的概述应用开发过程环境(ADPE) 政策为定义软件系统开发过程。 3.2 软件系统发展过程钥匙法: 图3-3 列出您能盼望从这个章节提取的关键想法。 介绍您对这个章节, 我们简要地解释这些关键想法。 他们充分的意向将变得明显如同您审阅章节。成功的软件开发. 图3-3 成功的软件系统发展是反复性的如果组织有a它跟随的很好被了解的和被提供的产品开发过程。 没有这样的a过程, 组织必须依靠个体heroics 。 这关键过程概念exaplained 在这个章节里。 1. 如果您是顾客, 指定在您的请求为卖主定义的提案(RFP)涉及您通过a CCB 象机制的软件系统发展过程。 您应该构造您的RFP 要求卖主定义特殊性卖主的软件系统发展过程。 让卖主提供这个过程 在ADPE 元素签了字由您和卖主。 这个元素应该再访并且更加频繁地更新比每年。 2. 软件系统发展ADPE 元素应该包含以下: (1)普通活动由卖主组织元素执行(包括发展, 管理, 并且产品保证活动) 在显现出的软件产品为交付对顾客和(2) 顾客和卖主的角色组织元素在执行这些活动。普通活动应该包含范围活动从收据一名顾客SOW 对用户反映在被交付的产品。 3. 包括在ADPE 处理元素一个图显示过程根据(1)普通活动, (2) 少校通信通道连接活动, (3)组织负责任对执行各活动, 并且(4) 产品被生产。软件系统发展过程形象建立"方式" 事务是被举办在顾客和卖主之间。明确标记活动和成功的软件开发通信通道和选派的组织责任定义期限由大家使用。 人们了解是什么各自的责任并且怎么他们的特殊贡献适合入更大的图片。 4. 卖主高级管理应该授权项目负责人申请prescriptively 普通活动在ADPE 处理元素。 软件系统发展过程元素应该因此被写以便它允许项目负责人执行活动在次序和在程度上 一致与项目日程表和可利用的资源。 过程ADPE 元素不如果被写作为菜谱。 有没有方式建立软件。 步bystep将简单地机械上被跟随的过程无法占可能出现在软件系统发展期间的范围意外情况。 人们是过程的最重要的部份。 但是, 过程帮助提供一致的软件开发。 当人们做出一个被考虑的决定申请prescriptively 被提供的过程, 决定需要通信以便大家了解什么资源过程要求并且什么产品将是生产。 5. 并发以过程ADPE 元素的发展, 卖主应该显现出并且阶段性地当前简报对顾客和卖主人员在元素的内容。居于需要机会问具体问题关于怎样软件系统发展过程影响他们的每日活动。 6. 建立关闭在卖主和顾客之间关于产品交付和采纳, 包括在ADPE 处理元素顾客退回的一个形式在产品开收据和顾客退回陈述是否产品的形式被接受依照被交付或要求变动。用户满意被栓, 一部分, 对用户反映。 顾客采纳形式提供顾客(i.e., 买家用户) 其它机会评论被交付的产品。 依照随后被解释, 我们建议那用户反映关于一个被交付的产品能被表达作为(1) 接受依照被交付, (2)接受以次要变化, 或(3) 拒绝。 3.3 软件系统发展过程概要: 依照陈述及早, 有没有方式建立软件系统。 如果有, 软件系统开发从前会被减少到装配线操作。但是, 我们相信有根本发展原则帮助增量软件系统发展成功可能。 软件系统发展原则为(1) 审查提供基础现有的组织软件系统开发过程, 或(2) 定义一个组织发展过程。 随后描述, 我们相信以下原则提供这个基础: 计划工作做在做它之前。 获得关于被定义的责任的协议。 建立和授权self-directed 工作队。 成功的软件开发. 建立检查和平衡。 维护连续顾客和卖主互作用。 监测项目进展。 辅导者项目负责人和火车工作队。 提供暂时的回顾在项目进展。 提供反馈在deliverables 。 改进软件系统发展过程。 我们相信这些原则对做软件组织的方式是根本的系统开发事务。在什么感觉做软件系统发展介入一个"过程" 或"方式做事务"? 如果组织是在它的起点或初期, 那里也许是想法或概念怎样做软件系统发展生意, 但过程不能是welldefined 。 但是, 概念也许由几关键个体很好了解。 作为组织成熟, 发展过程也许成熟, 并且更多个体可以了解过程。 光谱在另一边是源远流长的组织。 在这样组织, 那里也许是"被定义的" 发展过程, 但它不能是提供。 当然, 有组织, 新和源远流长, 那有被提供的组织软件系统发展过程。 不管什么您特殊情况也许是, "过程的" 概念可能被观看作为工具通信并且解释活动被介入以一致地显现出的软件系统, (1) 是准时交付, (2) 被交付在预算之内, 并且(3) 做什么顾客想要系统做。 图3-4 是我们的例子组织软件系统发展概要过程。 我们的例子过程开始以顾客的工作报表(SOW) 并且末端以用户反映关于被交付的产品(和支助性业务) 。 这过程考虑到计划, 演变, 并且回顾产品(文件,计算机编码, 数据) 为交付对顾客。 图圆渐近了长方形,长方形, 并且被标记的箭头。 圆渐近的长方形代表与顾客相关责任, 并且长方形代表与卖主相关的责任。 被标记箭头代表主要通信通道和伴生的信息。成功的软件开发 图3-4 我们的例子组织软件系统过程是a 的发展closedlooped处理开始和末端与顾客。 依照被显示在上图3-4, 我们的例子组织过程包括以下少校元素: 顾客 卖主程序工程小组 顾客卖主开发小组(顾客项目负责人, 卖主开发小组) 改变控制板(CCB) 卖主高级管理 主要通信通道 成功的软件开发 图3-4 并且显示以下负责任的代理和伴生的处理活动: 顾客。准备SOW, 谈判协议, 并且回顾交付了产品为采纳。 卖主程序工程小组。计划工作完成顾客的SOW 任务。 顾客项目负责人。与卖主项目负责人通信。 卖主项目负责人。与顾客项目管理通信和演变软件Product(s) 。 主角开发商.建立项目计划文件。 主角开发商或调解人。品行同事评审。 产品保证经理。提供独立产品保证。 技术编辑。进行技术编辑。 卖主管理。执行项目级技术失察。软件系统发展过程活动由少校一起连接通信通道。 依照被显示在上图3-4, 沿各条通信通道信息是从一个处理元素转移到另一个。 信息转移包括 以下项目: 工作报表(SOW) 卖主项目计划 谈判的协议 项目正式记录在案 技术教导和演变的产品 "天对天" 协调和技术教导成功的软件开发 项目正式记录在案和问题为顾客同时发生 演变的产品和技术教导 跟踪形式 演变的产品(文件, 计算机编码, 或数据) 技术反馈 被验核的材料 被编辑的材料 被回顾的材料 交付被协调在项目水平 项目被解决 批准交付 交付的状态 依照被显示在上图3-4, 处理开始在上部右手cornerwhen 顾客准备工作报表(SOW) 细节什么顾客想要。 卖主的过程工程学小组"计划工作完成顾客的SOW 任务" 和提供顾客以卖主项目计划。 在相互协议, 顾客提供卖主以触发顾客和卖主发展活动的一个谈判的协议。 这些活动涉及管理, 发展, 并且产品保证系统学科。 卖主项目负责人"与顾客通信和演变软件product(s) 。"不管怎样产品演变, 卖主开发小组(1)建立项目计划文件, (2) 品行同事评审, (3) 提供独立产品保证,[ 4 ] (4) 进行技术编辑, 并且(5) 执行项目级技术失察。卖主开发小组演变产品和与顾客通信项目负责人谈论要求顾客同时发生的问题。 顾客项目负责人"提供技术教导对卖主项目负责人" 项目展开。 顾客和卖主项目负责人"举行项目CCBs,项目回顾, 并且决定什么其次做。"在项目产品以后由协调顾客和卖主项目负责人, 产品被送到卖主高级管理为回顾和认同在被交付对顾客之前。卖主高级管理也许辨认项目被解决在产品是之前交付对顾客。 在这种情况下, 卖主开发小组解决项目和再传送产品对卖主高级管理为获得批准。 如果所有项目是解决,批准交付被提供对顾客为采纳。 顾客提供反馈在交付的状态谈到它的可接受性。某人也许问的一个问题是, "怎么能我现有的组织生命周期发展活动和技术适合入例子组织软件系统发展过程?"依照被显示在上图3-5, 您现有的生命周期发展活动塞住入以下卖主开发小组活动: 3 通知顾客卖主开发小组包含顾客和卖主活动。 我们相信, 两个党活跃地必须参加发展过程。 没有这样的联合参与, 项目失败增量的风险。 顾客提供的概念卖主与SOW 包含要求和然后检查项目, 言, 六个月以后, 是一张处方为灾害。 同时,用户需求小心不得到很包含, 这样的介入得到用卖主的方式做工作。 4 通知, 这个卖主长方形有下落阴影。 如同我们随后解释, 我们使用这个阴影表示独立产品保证支持提供了对卖主项目负责人。 图3-5 软件系统发展过程是独立产品开发生命周期和具体产品开发技术。 图展示您会的地方介绍您的生活cycle(s) 适应过程您的组织。 卖主程序工程小组。计划工作完成顾客的SOW 任务。 卖主项目负责人。与顾客项目管理通信和演变软件Product(s) 。 我们的例子组织过程是独立具体生命周期。 过程要求, 不管生命周期和支持的技术, 在先的过程活动执行对某一程度。 您现有的生命周期也许是传统系统设计, prototyping, 或信息工程学。 依照随后被解释, 不管怎么样生命周期, 作为极小值, 项目计划和对应谈判了协议如果考虑到这些处理活动。每个主要元素, 对应的信息, 并且他们的互作用互相被选派在下四个部分。 3.4 顾客: 我们的组织软件系统发展过程从顾客开始。 显示在上图3-4, 顾客, 在其它责任中, 准备一SOW 选派什么顾客要卖主做。 在软件产业, SOW 可能体现本身用广泛不同的方式。 SOW 由各种各样不同的名字叫, 譬如要求提案, 要求承包商服务或垦请。 在一些环境里, SOW也许是一样短的象一个句子或两三段。 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    毕业论文:基于ASP技术的网站的设计与开发

    当今世界已经跨入了信息时代,计算机科学与技术正在迅猛发展,尤其是以计算机为核心的信息技术正在改变整个社会的生产方式、生活方式和学习方式。网站的设计与开发是当中的的一项重要工作。在设计过程中涉及大...

    2年前   
    942    0

    论文:基于ASP的甜品店网站系统

    Internet 以惊人的速度对经济活动和社会活动产生日益广泛的影响,internet加剧了企业的生存环境,加快了整个市场的结构变革。为了在市场竟中生存和发展,企业必须实现信息化。企业网站是企业...

    2年前   
    2247    0

    基于ASP门户网站毕业设计开题报告书

    基于ASP门户网站毕业设计开题报告书  课题准备情况  所谓门户网站,是指通向某类综合性互联网信息资源并提供有关信息服务的应用系统。门户网站最初提供搜索发动机和网络接入服务,后来由于市场竞争日...

    9年前   
    284    0

    ASP.NET的网站新闻管理系统设计与实现

    ASP.NET的网站新闻管理系统设计与实现  【摘要】利用asp.net和技术开发的网站新闻管理系统,实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率。同时对系统的开发...

    7年前   
    193    0

    基于Android Studio的饼图账单的设计与开发Android毕业论文

    毕 业 论 文 基于Android Studio的饼图账单的设计与开发Design and Development of PieChart Billing Based on Android S...

    10个月前   
    265    0

    基于ASP.NET的在线考试系统设计与实现

    毕业设计说明书(论文)中文摘要考试是教育工作中重要的一环,帮助考生发现自己的知识盲点,促进学习进步。但随着信息化时代的到来,传统的考试方式迫切地需要结合互联网技术,以推进教育的进步,提升考试效...

    2周前   
    43    0

    基于asp.net的矿山物料管理系统的设计与实现

    随着计算机技术特别是网络技术的飞速发展,计算机的应用领域不断扩大,各行各业都离不开计算机,企业仓储管理也不例外。仓储管理被认为是企业继降低物质消耗和提高劳动生产率之后的“第三利润源泉”。在电子商...

    2年前   
    764    0

    基于ASP.net网上鞋店系统的设计

    随着Internet的飞速发展,互联网成为越来越多的人们快速获取、发布和传递信息的重要途径。足不出户地完成工作、学习、娱乐、购物等已经成为人们对快生活节奏的一种必然需求,“好乐买”网上鞋店系统的...

    2年前   
    909    0

    0105098基于集成设计和过程技术(IDPT)的产品开发过程管理研究

    基于集成设计和过程技术(IDPT)的产品 开发过程管理研究¶ 本文是国家863/CIMS重点应用工程研究课题资助项目 胥悦红· 胥悦红,女,博士 通讯地址(100039)北京市玉泉...

    10年前   
    17832    0

    基于Android的教学课程系统设计与开发

    摘 要移动应用已经成为人们生活必不可缺的一部分,大学生身为移动应用的最大用户群体,在生活学习娱乐各个方面都与移动应用有着紧密联系,然而针对大学生校园学习的移动应用却寥寥无几,因为不同的...

    2周前   
    44    0

    网站设计毕业论文(精选多篇)

    网站设计毕业论文(精选多篇)第一篇:物流网站设计与实现毕业论文答辩演讲稿从连云港的港口报告数据来看随着近年来连云港港口的迅速发展港口货物吞吐量由2014年3058.11万吨增加到2014年的1...

    7年前   
    215    0

    2018年毕业论文开题报告-ASP

    毕业论文开题报告-ASP  1.开题报告作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。此报告应在指导教师指导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签署意见及教...

    3年前   
    115    0

    毕业论文:基于plc的电子密码锁毕业论文设计

    本毕业设计介绍了可编程序控制器(PLC)和PLC控制系统的基本知识,包括PLC的定义、特点、分类、技术指标、基本结构、工作原理、硬件知识及PLC控制系统等相关知识。采用松下公司系列的PLC,设计...

    2年前   
    1144    0

    基于zigbee技术的“事故黑点”碰撞预警设计

    基于zigbee技术的“事故黑点”碰撞预警设计 摘要 基于ZigBee技术与GPS网络相结合,基于ZigBee无线传感器汇节点数据,组建无线传感器网络数据传输网,所有路由器组成一个蜂窝网状...

    4年前   
    2217    0

    毕业论文(设计)基于安卓的多功能时钟app设计与实现

    目 录摘 要 1ABSTRACT 2第1章 绪论 31.1 开发背景 31.2 研究现状 51.3 本文的主要工作 61.4 论文的组织结构 6第2章 安卓相关介绍 72.1 安卓系统...

    11个月前   
    473    0

    文学网站的设计说明书软件项目开发课程设计

    ******************* 实践教学 ******************* XX大学 计算机与通信学院 20XX年春季学期 软件开发综合训...

    2年前   
    800    0

    基于Web技术的驾校考试系统的设计与实现毕业设计

    基于Web技术的驾校考试系统的设计与实现毕业设计 摘 要 在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网上考试则是网络技术一个很重要的发展方向。网上考试一...

    2年前   
    996    0

    设计开发技术部工作总结

    设计开发技术部工作总结        从质量管理体系,环境管理体系实施三个月以来了,本部门的工作得到了提高,和完善。同时也取得了不少的成绩。当然也存在一些问题有待进一步完善。 回顾三个月来...

    11年前   
    16208    0

    建筑工程技术毕业论文设计

    目前,随着我国经济的快速发展,大规模工程建设的进行,建筑行业规模日益扩大,安全管理已成为了现代施工企业必须重视的课题,要防范安全事故的发生,就必须提高自身的安全管理水平。本文首先介绍了安全风险的...

    2年前   
    907    0

    基于java的坦克大战游戏开发毕业设计

     毕业设计说明书(论文) 作 者: 学 号: 院 系: 专 业...

    2年前   
    736    0

    文档贡献者

    z***u

    贡献于2019-04-25

    下载需要 10 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档