




已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java项目实战 实训教材 主 编:徐翠娟、王 琼、陈慧强 副主编:杨 文、宿佳宁、宋 磊、马慧娟目 录课题一 需求分析3课题二 项目计划安排6课题三 概要设计11课题四 详细设计13课题五 数据库设计20课题六 开发前期项目准备25课题七 系统功能设计27课题八 项目的测试116课题九 实战演练118课题一 需求分析一套软件是否有市场,满足用户需求是关键因素,所以搞清楚用户到底需要什么是软件开发的头等大事。用户需求如何得来?用户有没有把需求描述清楚?如何把用户需求转化成自动化方式?软件的开发其实就是从一个个问题开始,再一个个地解决地过程。整个需求的过程如图:用户需求分析流程图开始需求用户提出需求分析人员体验用户工作流程分析人员确定调研结果并写报告项目组分析并确定最终需求与用户共同确定工作环境结束需求准备进入设计1.1 用户提出自己的需求本例用户是职业技术学院,目前使用的是手工记录学生的信息。随着学校规模的增大以及新增学生选课的影响,手工方式已经无法记录学生的实时信息,该学校决定用一套新的学生信息管理系统软件,并要求满足以下条件。(1)学生卡使用磁卡及防伪标志,学生卡如有遗失,学校方面可以补办、原资料需重新录入。(2)学生卡不能转借给他人使用,如违反给予相应处罚。(3)学生可以选课,并查看个人信息。(4)对学生信息、选课信息、课程信息进行记录。学校需要的就是能满足以上需求的软件。需求就是一套软件的终极目标,但并不是每一个需求都能达到的,分析人员还要根据开发环境一条条地分析这些需求。1.2 系统分析人员分析用户的需求1.2.1 分析人员体验用户环境当软件公司在接到用户的需求时,不是盲目地进行开发,而是应该对需求进行调研。需求的调研就是亲自到用户那里体验整个工作过程,掌握软件的运行环境以及人员操作水平等。系统分析员的任务就是了解并确认用户的需求,最终做出系统的流程设计。分析人员如何快速有效地掌握用户的整体情况,最好的方法就是提问题,然后找到这些问题的答案,不管什么样的软件系统,都可以从以下问题出发。(1)用户为什么要引入系统?这个问题的答案将最终决定软件的定位。一套软件系统可繁琐可简单,根据用户需要软件的原因制定快速的开发计划,既满足了用户需求又节省了开发时间,降低了双方的成本。(2)软件要实现什么功能?用户最初的需求列表是否可行,分析人员要深入到用户的工作流程中,亲自体验工作环境,对照用户需求来分析各个流程是否有局限性,并与用户的管理层多进行沟通,对需求有异议的地方力求妥善解决。(3)操作人员有哪些?对于一个完善的软件系统来说,安全是不可缺少的一部分。并不是所有的人都能管理软件系统,不同的人应该具备不同的权限。从软件角度讲,就是角色分配问题。管理人员有编辑删除的权限,而普通人员只能查看。分析人员要时刻与管理人员进行沟通,了解用户的组织管理机构,掌握用户角色的精确划分。(4)如何满足用户的需求?一个完整的软件系统,首先功能要完整,即用户的需求必须满足。软件该使用什么样的方式来满足用户的需求,并在满足需求的同时,提高用户的工作效率,节约用户的工作成本。分析人员要理清思路,清晰地处理与用户之间的每个问题,并将结果记录,为以后设计用例图准备好详细资料。因为不可能所有的开发人员都去用户那里体验工作流程,所以分析人员要力求实现需求的准确性和详细性。1.2.2 分析并确定调研结果分析人员将需求调研的结果带回公司,写出调研报告、召开会议研讨,开发人员和项目经理等所有参与项目的人都要参加。根据报告一条条地分析具体流程的有效性和可行性,从软件的角度完善其中的细节,并将不清晰的地方再与用户进行沟通,争取做到每个人都清楚地明白用户究竟要什么样的功能。研讨完毕后,将可行需求和不可行需求(包括有局限性的需求)分别记录,并在不可行需求中详细注明原因,最后说明软件的目的及功能。在本例中,不可行的需求的列表如下。(1)学生卡使用磁卡及防伪标志。使用磁卡可以,但必须具备扫描卡专用设备,仅仅靠软件无法实现。防伪标志的使用由用户自己决定,也不能通过软件实现。(2)学生卡不能转借他人使用。软件不是万能的,无法判断学生卡是否是本人使用,此需求只能由用户管理部分实施各种监管制度来满足。(3)学生卡补办需重新输入资料,学生资料已存储在数据库中,无需重新输入所有资料。对于局限性的需求一定要仔细推敲,并与用户紧密沟通,以达成改善的意见。可行性列表将在后面介绍。软件的目的是提高用户的工作效率,细分员工的工作职责,协调部分之间的业务往来,监督业务运行的过程。该软件的主要功能包括。(1)对学生信息的管理(2)对教师信息的管理(3)对课程信息的管理(4)对选课信息的管理1.3 用户与项目管理人员确定最后的需求整个项目组已经讨论并确定了需求,对于不清晰的地方也与用户进行了沟通,最后需要列出软件的最终需求。(1)学生卡使用磁卡,允许手工输入学生证号和扫描器输入两种方式。学生证号的长度为10:1-2位是专业编号,3-6位是入学年份,7-10连续编号(2)学生卡办理之前需登记学生的详细资料,其中包括学生的学号、姓名、性别、生日、地址、电话、身份证号等,并且系统还应能够修改输入错误的学生个人信息记录 (3)可以对学生所选的课程进行管理,包括学生的可选课程和个人已选课的信息,并可以进行选课。(4)可以对课程进行管理,课程管理包括增加课程,该课程包括任课教师和所属专业。(5)根据学号、身份证号查询学生信息。根据学号查询选课信息。(6)软件使用权限管理方式。根据工作流程,软件有2种角色:管理员、学生和教师。管理员允许对课程信息、教师信息、学生信息的管理。学生可以进行选课和查看课程信息的操作。教师可以查看本人所授课程的学生信息(7)本软件从签字起二个月内交付。确定需求时,要从用户实际需求和工作环境出发,本着一切为用户着想的原则,尽量满足用户的需求。为了用户成本方面的考虑,尽量与用户已有软件系统不冲突,在可能的情况下,尽量实现两个系统的融合。需求在整个开发过程中相当重要,一旦与实际情况出现偏差,则会造成整个工程的反复。确定需求后,项目经理开始组织项目开发小组讨论需求以及用户工作环境的注意事项。1.4 根据最终需求确定工作环境1.4.1 软件环境除了要安装学生管理系统外,还必须具备相应的软件环境,才能更好地运行。(1)Java虚拟机,支持Java开发的软件。(2)应采用统一的软件操作系统(XP),这是为了更好地管理。(3)服务器上安装数据库系统(SQL Server 2000或2005),从而实现信息资源安全化管理。(4)安装防病毒软件,病毒防火墙等。因为所有的机器都是互连的,一旦有病毒侵入,容易造成整个系统的瘫痪。1.4.2 硬件环境软件不是一套可独立运行的系统,必须依托在完善的硬件设备上。本例从实际应用角度考虑,要使软件正常有效地运行,还必须具备以下硬件环境。(1)操作系统必须是586以上,64MB内存配置。为了更好更快地运行,如果情况允许,建议尽量采用内存较大的电脑。(2)运行通畅的网络环境。所有的内容都通过网络传输,如果网络出现问题,则系统将无法正常工作。(3)服务器:由于系统采用C/S结构,为了数据安全和速度问题,数据库和系统文件等要求单独安装在一台机器上,服务器的选择是系统稳定性的关键因素。(4)写卡器及刷卡器:学生卡全部采用新版磁卡,必须具备读写磁卡的设备才能进行正确的扫描。写卡器一般用于向学生卡内写入学生学号等简单信息。以上这些软硬件环境一定要跟用户及时沟通,如果用户保证不了这些环境要求,软件不能很好地运行,后果责任等一定提前说清楚。确定一切内容之后,双方在最终需求书上签字,软件进入实质开发阶段。因为需求是整个软件的基础,从开始到了解到分析是一个异常慎重的过程,每一步的失误都可能导致软件的重新开发。为了更好、更快地开发系统,项目小组要在开发前进行充分的讨论,有问题的地方一定要跟用户及时沟通。最后要做出需求说明书,供将来设计、开发和测试等人员查看。需求说明书一般采用IEEE标准830-1998(IEEE 1998)描述的需求规格说明书模板,如表所示。需求说明书根据模板格式书写清楚,放在公司的共享资料库内,整个需求分析过程就结束了,项目进入第二阶段。课题二 项目计划安排一项任务的成功完成,必须依靠合理的计划安排以及各种资源的有效利用。有计划、有步骤地进行软件开发,除了可以提高开发进度外,更能明确项目组各成员之间的职责及任务。项目进度表要安排每个成员的任务,并要求成员每天修改自己的进度,保证项目管理人员可以随时查看整个项目的进度,以及时发现问题,调整工作策略。2.1 项目计划软件对于项目计划软件,主要使用的是Microsoft提供的Project。Project 2003是Office 2003中带的一项,安装比较简单,所以安装过程不作介绍。2.1.1 创建一个进度表Project项目软件是一个可以直观显示项目进度和管理项目资源的软件。下面创建一个本例的初期进度安排表。(1)打开Project,选择“文件|新建”菜单命令,出现窗口如图2-1所示。默认情况下开打4个区域:视图、任务定义、任务列表、图形任务显示。一般,所有的任务都在任务列表区完成,图形任务显示区只用于显示,不能修改。图2-1 Project的工作界面(2)新建一个任务,双击任务列表区的第一行,出现对话框,如图2-2所示。这里有6个选项卡:常规、前置任务、资源、高级、备注、自定义域,通常情况下只设置前4个即可。常规选项卡中要求写明任务的名称,工期长短,开始日期和结束日期;前置任务选项卡中要求写明必须完成什么任务后才可以进行此项任务;资源选项卡中写明此项任务需要的资源,包括人员、设备等。高级选项卡一般指明此任务的一些限制。图2-2 任务信息图(3)填写任务名称和任务所需资源后,就粗略完成了一项任务,如图2-3所示。图2-3 填写好任务的工作界面2.1.2 使用不同的图表显示项目进度为了更加直观地显示任务安排,Project提供了多种图形供选择。有甘特图、跟踪甘特图、日历图、网格图等,默认的图形是甘特图。下面分别介绍各种图形的显示方式。在“视图栏”中有一些变换图形显示的快捷按钮。(1)单击“日历”按钮,界面变化为如图2-4所示的效果。这主要是以日历的形式展现每个任务以及任务的工期。图2-4 日历式显示任务(2)单击“网格”按钮,以分段的形式展示任务列表,如图2-5所示。这样更直观地显示了有多少任务以及任务的安排时间图2-5 网络式显示任务(3)单击“跟踪甘特图”按钮,以进度比例的方式显示每个任务,如图2-6所示。这个图和甘特图是十分相似的,只是有个进度跟踪显示,其他没什么区别。图2-6 跟踪甘特图式显示任务每种图都从不同的角度显示了进度安排情况,但只有甘特图的方式可以清晰地显示任务的前置关系(必须完成的前提任务)、任务的进度等。其他几种图只是比较简单直观的显示任务名称及任务的时间安排。2.2 实现此项目需要的资源一个项目,必须包括人员和设备。在项目进度表中所说的资源,就是完成该项目需要的人员和设备。每个阶段分配不同的资源,什么职责该干什么,用多长时间,就是一个项目安排进度的过程。(1)单击“视图栏|资源工作表”列表按钮,显示如图2-7所示界面图2-7 资源工作表(2)添加资源的操作方式与添加任务是相同的,双击表格第一行,出现对话框,如图2-8所示。资源信息分5项:常规、工作时间、成本、备注和自定义区域。常规选项卡中主要说明资源的名称、类型等,一般写人名。工作时间选项卡定义工作日和非工作日以及工作日中几点到几点属于工作时间。成本选项卡设置某资源1小时的费用,通常用来作成本控制。一般小型软件不需要设定。图2-8 资源属性信息(3)根据情况填写资源信息,项目组的人员名称,笔记本等设备名称。人员的类型是“工时”,设备的类型一般选择“材料”。(4)单击“甘特图”界面转换到任务列表。(5)双击要分配资源的任务,打开任务信息,选中“资源”选项卡,此时就可以在资源名称处选择此任务需要的资源。如图2-9所示。图2-9 资源选项卡的内容(6)给所有的任务分配好资源后,可以通过“任务分配情况”和“资源使用情况”来查看和调节每项任务的资源。除了可以用以上方式添加资源外,Project提供了更简便的方式:资源可以从公司的电子通讯簿导入。安排好任务和资源后,其实就完成了一个项目进度安排表。因为Project是一个比较简单的工具,十分容易上手,真正功能完善的进度表还得在实践中不断地探索。2.3 如何写好项目计划安排表项目计划不仅仅安排工作日期,还代表了很多在软件开发过程中的关键因素,比如成本、资源等。项目计划主要内容包含以下内容。(1)估计任务工期。根据资源的安排情况和任务的多少以及任务的完成期限可以估算出整个项目的工期。(2)分阶段地明确项目的进度。可以将任务标记为里程碑,在甘特图中就能很明显地看到所分的阶段以及每个阶段的任务。(3)考虑管理成本。在资源中可以设置每项资源的工时费,Project会根据任务中此项资源的使用情况自动核算此项资源在整个项目中占多大成本。(4)优化项目计划,控制项目风险,满足预算要求,保证完成日期。通过以上几点分析,可以看到项目计划既是给管理层人员的一份报告,又是控制项目小组成员进度的一份跟踪表,起到了承上启下的作用。知道了项目计划可以为系统做什么,那么该如何做好呢?这应该全面考虑本项目的各个方面。(1)是否考虑成本预算问题。如果考虑,则在人员和设备的选择上要精确计算。(2)此项目是否与其他项目有关联。如果有,那需要判断是否有相冲突的资源,是否可以共享其他的资源以节约时间。(3)要及时记录任务进度,尤其是在开发一个有前置任务的资源时。(4)各阶段的里程碑要设置明确,而且要恰到好处。例如分析是一个阶段,开发是一个阶段,测试是一个阶段,这样看起来层次分明,对各阶段的资源也有个详细的划分。(5)任务列表不要一个层级往下走,要精确划分,每个任务都不能包括太多的功能,有层次的显示任务,让其他成员能一目了然。2.4 前期的项目计划表由于在做项目进度安排时,并不知道详细的软件模块,只知道具体需要哪些功能,所以初期无法详细地描述开发进度,而只是给出一个开发的时间段,由分析人员做完具体的模块划分后,再在项目计划安排表中予以补充。下面是学生信息管理系统前期的项目进度表。如图2-10所示。图2-10 前期计划表在这里,大的任务主要有6个。(1)需求分析:分解需求,画出用例图,分出类模块。(2)模块划分:将分析出的类分配给不同资源(3)开发:进入编写代码阶段,并要求开发人员自己进行初步测试。(4)测试:测试人员分两步完成测试。单元测试并不要求所有模块都完成,而集成测试则是所有模块完成后统一进行的测试。(5)部署:将开发完成的代码部署到服务器或互联网中。(6)材料准备:相关资料以及帮助性的说明文档。在甘特图中,菱形黑点标示里程碑,此进度表分了3个里程碑。(1)模块划分完毕(2)开发完毕(3)测试完毕从甘特图中可以很明显的看出任务的资源、任务的进度以及某项任务的前置任务,如此直观的图例方便了管理人员的监督和开发人员的计划安排。越详细的项目计划表就越能说明整个软件系统开发流程及资源利用率,所以在实际应用中应尽可能详细地描述各个任务及任务的辅助信息。课题三 概要设计概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。3.1 概要设计的原则概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。概要设计要坚持以下几个原则。(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。(2)提高代码重用性:在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。(3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。(4)一致性原则:概要设计要求所有功能模块在定义时使用统一的规范。(5)提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能。(6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。经验表明,一个模块的规模不应过大,模块的总行数应控制在10100行的范围内,最好为3060行,这样理解和阅读都较方便。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。3.2 将用户需求模块化根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。什么样的需求才是一个模块?模块应该具备如下3个特征。(1)输入和输出:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。(2)处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。(3)程序代码:用来实现模块功能的源代码。3.3 确定系统最终模块概要设计中最重要的就是确定此项目包括哪些模块。根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。(1)管理员模块:是本系统的核心模块,该模块又包括对学生管理和课程管理2个子模块,功能如下:1)学生管理子模块:实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。查询学生信息删除学生信息修改学生信息学生管理子模块添加学生信息图3-1 学生管理子模块2)课程管理子模块:实现对课程的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除,查看某个课程的详细信息等。查询课程信息删除课程信息修改课程信息课程管理子模块添加课程信息图3-2 课程管理子模块(2)教师模块:实现查看自己所教授的课程、课程有哪些学生选修,以及利用本系统提交学生的成绩。教师模块查看所授课程录入学生成绩图3-3 教师管理模块(3)学生模块:实现学生的选课,查看、修改自己的选课信息。学生模块选课查看选课信息修改选课信息图3-4 学生模块(4)公有模块:实现用户的身份验证,密码修改,退出系统等功能。公有模块身份验证密码修改退出系统图3-5 公有模块3.4 根据模块划分完善项目计划表在初期的项目计划表中,只简单地估计了开发的时间,并没有详细划分模块。截止到目前,模块已经分配清楚,那么必须在项目计划表中分配模块所需的资源以及模块开发的时间这样能更好地估计开发时间,掌握项目进度。课题四 详细设计概要设计是为了明确开发人员的工作步骤和工作目标。详细设计使开发人员可以轻松地完成代码的编写,并熟悉所编写的业务流程。4.1 UMLUML(Unified Modeling Language,统一建模语言)是一种可视化的建模语言。对各建模元素可进行详细的说明,并能生成所建模型的文档。4.1.1 为什么用UMLUML语言是一种可视化的语言,是一种图形符号。UML的出现就是为了详细描述工作过程,以用例驱动的方式描述流程中的元素和顺序,客观而又直观地体现了业务流程。设计人员把使用UML的过程叫做建模,建模就是对现实的简化。使用UML可以给设计带来很多便利。(1)按照程序需要的样式对系统实现可视化流程展示。(2)可以详细说明系统的结构和各种行为。(3)对所有的决策可实现文档化管理。(4)可以以体系结构为中心,实现增量和迭代。UML是统一化的一种设计标准。因为统一,所以任何人所做的设计只要符合标准,都可以很容易地让别人看懂,符合UML标准的用例图也可以让用户看懂。因此,大部分的设计人员目前都采用UML来进行详细设计。4.1.2 UML包括的内容UML主要包括3个构造块,分别是事物、关系、图。事物是UML模型中最基本的面向对象的建筑块。其在模型中属于最静态的部分,代表概念上或物理上的元素。UML的4种事物主要包括如下。(1)结构事物:类、接口等。(2)行为事物:交互、状态等。(3)分组事物:包。(4)注释事物:注释、文档等。关系用来形容UML中事物之间的关联,某事物是否依赖于其他事物,或者某事物的改变是否会影响到其他事物。UML的4中关系包括:依赖、泛化、关联和实现。图是组织这些建筑块的方式。图代表一系列的元素,这些元素常常被画成用点(事物)和弧(关系)相连的图。利用图来从不同的视角观察系统。UML的10种图包括如下。(1)类图:描述类以及类之间的关系。描述类的职责,显示类的方法和属性。(2)对象图:是类图所反映的事物实例。(3)用例图:参与者与模块间的关系。(4)交互图:要实现一个目的行为的一种交互操作。(5)顺序图:按时间顺序体现对象之间的消息传递。(6)协作图:与顺序图可以互换,主要体现对象之间的结构组织。(7)状态图:某对象的几种可能状态以及状态之间的切换。(8)活动图:工作流方式的一种图形展示。(9)构件图:构件之间的组织和依赖。(10)部署图:软硬件结合的一种表现整个系统架构的图例。4.2 分析设计工具VisioUML只是一种建模语言,不是一种工具,就像Java语言一样,必须使用Java开发工具才能进行开发。市场上有很多建模工具,有些工具甚至可以实现UML与Java语言的互相转换。Visio是Microsoft提供的一款建模工具,使用起来比较方便。4.2.1 为什么用Visio本项目使用的版本是Microsoft Visual Studio.NET Enterprise Architect(VSEA)版本中自带的Visio。在VS的版本中,只有此版本自带有Visio。另外,也可以单独下载此版本中的Visio。不要使用Office自带的Visio版本,因为很多功能在这个版本上无法实现。Visio不仅包括软件工程的一些建模,还涉及其他建筑、网络、建筑工程等建模。Visio中可以全面应用UML语言中所有的事务、关系和图,更好地体现了图形化设计的意义。其可视化设计允许操作者通过拖拽就能够轻松地完成模块的建设。Visio的开始界面如图4-1所示,主要包括类别区和模板区。图4-1 Visio的开始界面4.2.2 使用Visio设计模块本小节以学生管理子模块为例,详细介绍如何用Visio设计模块。(1)启动Visio后单击“类别区|软件”列表按钮,模板列出预定义的软件项目的模板,如图4-2所示。图4-2 软件模型(2)选择模板区的“UML模型图”,打开UML模型的工作界面,如图4-3所示。这里主要包括形状工具栏、模型资源管理区、工作区3部分,从图中可以看到工具栏区列出了UML所有的图形模式。图4-3 Visio的软件模型工作界面(3)单击形状工具栏区的“UML静态结构”列表按钮,显示出了在Visio中类图的所有元素,如图4-4所示,包括包、类、接口等。图4-4 类图的元素图(4)拖拽类元素到工作区,出现一个UML定义的标准类图,如图4-5所示。类图主要分3部分,最上面显示类名,中间列出类属性,最下面类出类的方法。图4-5 类(5)双击类图,打开类的属性窗口,如图4-6所示。左侧是对类中类别的罗列,右侧是每个类的具体属性。图4-6 类的属性窗口(6)在该对话框右侧类的属性中,将“名称”设置为“Student”;在“可见性”下拉列表中选择“Public”,因为一般情况下类都是对所有模块可见,如果仅仅内部可见,则选择“Private”。在“文档”文本框内可以输入对此类的描述,以便将来生成统一的文档资料。(7)选择左侧列表栏的“特性”,对话框右侧会随之更改为特性的相关属性,如图4-7所示。学生类型的属性包括学生学号、密码、姓名、系院号、年级、班级。单击“新建”按钮,将这几个属性添加,并同时指明属性的类型和可见性。学号(ID:string)、密码(Password:string)、姓名(Name:string)、院系号(Depart:int)、年级(Grade:int)、班级(Class:int)均为内部可见。图4-7 添加属性的界面(8)选择左侧列表栏的“操作”项,如图4-8所示。此处允许添加类的操作,即类的方法。学生类的方法包括:添加学生信息、修改学生信息、删除学生信息和获取学生信息。单击“新建”按钮,将这4个方法添加,并选择每个方法的返回类型。图4-8 添加方法界面(9)如果方法有输入参数,则单击“属性”按钮,打开方法属性窗口,如图4-9所示,将参数一一添加即可。图4-9 方法参数窗口(10)添加完类名、类的属性、类的方法后,一个类图就基本完成了。为了减少以后的设计反复,此处对于类的方法和属性一定要全面而且精确。当然,设计需要经过很多实践经验的积累,刚刚开始做设计的程序员做不到完美也是允许的。说明:在静态类图中,类名、属性名、方法名一般要求用英文表示,类名和方法名首字母大写,属性名全部小写。完成的类图,如图4-10所示。图4-10 完成属性和方法的类图4.3 用图例实现设计既然UML是一种图形化的设计语言,而Visio又是一种图形化的设计工具,那么用图例来实现设计,然后再配上文档说明则是完成详细设计的最好方法。本节先用用例图详细说明业务流程,再用类图详细描述各个模块的功能。4.3.1 用用例图实现业务流程的设计用例图是描述业务流程的一种设计图,由于其简单易懂,需求分析人员在初期体验用户业务时,就可以画出用例图,并与用户就用例图进行磋商。这样,完成的用例图就比较接近事实上的业务。上一节讲到了类图,其实类图是一种静态图,只是描述一些特性,而用例图是一种动态行为图,描述业务的流程。本项目以学生选课为例,设计一个选课的业务用例图。首先用语言描述一下选课的流程。(1)管理员录入学生信息和课程信息(2)学生使用管理员提供的用户名和密码登陆本系统。(3)查看可供该学生选择的课程列表。(4)从该列表中选择要所选课程,对该课程进行选课,系统自动记录选课信息。整个业务流程分为4步,下面以图形化方式描述以上流程。(1)启动Visio的UML模型图,打开如图4-3所示界面,显示类图的所有元素。(2)选择左侧形状工具栏最下面一项“UML用例”,显示UML用例的模型符号,如图4-10所示。主角一般表示行为操作者,通常情况下是人或设备;而用例就是业务过程中的一个行为;包的意义就是统一归纳多步行为。图4-10 UML用例图模型元素(3)在学生选课流程中有两个主角,管理员和教师,先拖拽出2个主角符号到工作区,并分别命名。(4)在此例中有5个行为,录入学生信息、录入课程信息、登录、查看课程列表,选课。拖拽5个“用例”符号到工作区,并分别命名。此时的用例图如图4-11所示,包括2个角色5个用例。图4-11 角色和用例(5)确定角色和行为之间的关系。角色和行为之间不属于使用关系,也不属于扩展关系,是一般情况下的通信关系。将“通信”符号添加到工作区,并依次连接角色和用例,最后如图4-12所示。图4-12 学生选课业务用例图业务流程图中要注意有些手工行为在实际程序中是不能实现的,但为了体现业务流程的完整性,一般还是在用例图中体现,此时要根据实际程序加以注释或说明。4.3.2 类图实现静态模块结构的设计开发人员了解一个类的属性就是靠研究类图和业务流程。类图是设计人员根据业务流程和面向对象设计原则总结出来的相关属性的集合,便于将来代码的重用和维护。4.3.3 类图与类图之间的关系虽然在设计类时,要坚持类与类之间低耦合的原则,但很多情况下,类于类之间有相互调用或依赖的关系,所以为了让开发人员清晰地明白类和类之间的关系,设计人员应该有条理的设计好类图与类图之间的依赖关系。类与类之间的依赖关系在Visio中定义了以下几种。(1)Call:调用。某类中的方法可以调用其他类的方法,箭头指向被调用者。(2)Friend:友好。两个类是友元关系。(3)实例:某对象是某类的实例。(4)继承:某类是某类的子类,这个是比较常见的类的关系。课题五 数据库设计数据是企业运作过程中不可缺少的重要部分,建立自己的数据资料库是提高企业整体竞争力的关键因素。对于程序而言,安全完整地保存客户的信息是一种责任,因此,数据库设计就成了整个软件开发中重要的一个环节。一旦数据设计出现问题,软件就会出现问题,某些功能的使用就发挥不了最大作用。所以,为了更好地开发数据库,了解信息的来源以及信息的流向是头等大事。对于客户的整个操作流程,都要亲身参与,才能客观地掌握数据资料的真实性,为设计良好的数据库打下基础。本章主要介绍如何收集客户的数据资料,并将其转化为程序需要的数据资源。5.1 罗列数据信息在前面已经罗列出了用户的需求,这也正是数据库信息的来源。根据列表内容,可以提炼出以下数据信息。(1)需要管理学生信息:学生表。(2)需要管理教师信息:教师表。(3)需要管理课程信息:课程表。(4)需要管理选课信息:选课表。(5)需要管理院系信息:院系表。(6)需要管理管理员信息:管理员表。很多初做设计的程序员容易犯一个错误:每个需求都做成一个独立的表。其实这是一个误区,在选择表时,需要遵守以下原则。(1)每个表中不能有重复的字段属性。(2)将相关数据合成到一个表中。(3)每个表都有一个主键,而其他属性对这个主键有依赖性。对于重复添加的字段属性,最好单独列表,如果教师信息中有职称这个字段属性,这个字段就是重复增加的。为了减少数据冗余,可以单独将城市拿出来做一个表。5.2根据数据信息构建表结构对于如何提取数据表字段,要遵守3个原则。(1)每个字段都是不可再分的最小数据单位。(2)非主键字段必须完全依赖于主键(3)如果两个表存在关联,必须有字段作为外键进行连接。表5-1Student(学生)表字段名数据类型备注stuIDvarchar(20) not null学号stuPwdvarchar(20) not null密码stuNamevarchar(10) not null姓名stuDepartint系院号stuGradeint年级stuClassint班级表5-2Teacher(教师)表字段名数据类型备注teaIDvarchar(20) not null教师编号teaPwdvarchar(20) not null教师密码teaNamevarchar(10) not null教师姓名teaDepartint系院号表5-3Cource(课程)表字段名数据类型备注courceIDvarchar(20) not null课程编号tealIDvarchar(20) not null教师编号courceNamevarchar(100) not null课程名称courceTimevarchar(20)上课时间courceAddressvarchar(50)上课地点courceInfotext课程简介表5-4Elect(选课)表字段名数据类型备注electIdint not null选课编号stuIDvarchar(20) not null学生编号teaIDvarchar(20) not null教师编号courceIDvarchar(20) not null 课程编号scoreint成绩表5-5Users(系统管理员)表字段名数据类型备注adminNamevarchar(20) not null管理员用户名adminPwdvarchar(20) 管理员密码表5-6Depart(系院)表字段名数据类型备注departedint not null系院号departNamevarchar(100) 系院名称5.3 数据库构建工具PowerDesigner本项目的数据库采用SQL Server,它的功能很强大,可以完成所有与数据表相关的操作。因为其太强大,从而增加了复杂性,操作起来不容易上手,显示出来也不够直观。为了方便用户构建数据表,Sybase公司推出了PowerDesigner工具。5.3.1 使用构建工具PowerDesignerPowerDesigner是一种功能强大的数据库设计工具,其优点如下。(1)可以图形化地展现数据库的结构(2)可以方便地修改数据库和表结构(3)与数据库之间可以进行反向操作,既可以很方便的生成数据库,也可以将已有数据库的内容通过逆向工程显示在PowerDesigner中。综上所述,为了可以直观显示数据库的设计,并很好地体现数据库中各表之间的关系,采用PowerDesigner将使所有操作变得简单。5.3.2 PowerDesigner的使用目前市场上通用的版本是PowerDesigner 9.5,最新版本是PowerDesigner 12。为了快速地掌握其应用,本项目所有的数据库设计都以比较容易上手的PowerDesigner 9.5为例。PowerDesigner有4种模型文件。(1)概念数据模型(CDM):仅仅表示数据库的逻辑结构,与用什么软件没有关系,一般不用来实现的数据抽象表。(2)物理数据模型(PDM):具体表示表的结构和关系。(3)面向对象数据模型(OOM):用来设计类的一种模型,由于功能有限,并不通用。(4)业务程序模型(BPM):对任务的流程进行描述的模型,也不通用。这4种模型中,物理数据模型是目前数据库设计领域比较常用的一种模型。PowerDesigner的安装比较简单,不再介绍。下面学习使用PowerDesigner创建一个物理数据模型。(1)打开PowerDesigner,其工作界面如图5-1所示,主要包括工作空间、数据库展示、输出空间和模型工具栏4个区域。图5-1 PowerDesigner的工作界面(2)单击“文件|数据模型”菜单命令,则弹出一个对话框。这里选择Physical Data Model,即物理数据模型。单击“确定”按钮,此时出现数据库的选择界面。因为物理数据模型的设计与数据库类型是密不可分的,所以此处一定不能忽略,本例选择SQL Server 2000,如图5-2所示。图5-2 选择数据库(4)单击“确定”按钮,出现一个空的PowerDesigner工作界面。(5)在工作界面左侧的工作空间中会多出一行内容,默认名为PhysicalDataModel_1。双击它将出现一个名为PhysicalDiagram_1的模型表,然后双击PhysicalDiagram_1。(6)返回工作界面,会发现右侧数据库展示区域成为空白,此时对于数据库的构建才真正开始。数据库包括很多关键元素,如触发器、存储过程、表、视图等。创建元素的模型工具栏如图5-3所示。这里存放了数据库的全部关键元素。将鼠标指针移动到工具栏中某一元素处,就会显示元素名称。图5-3 模型工具栏(7)单击“表”元素,鼠标指针的形状发生了变化,然后在右侧空白区域单击一下,一个没有任何字段的表就建立了。如图5-4所示。表的图形分为两部分,上面是表名称,下面是表字段。图5-4 表(8)双击“表”图形,出现表的属性设置窗口,如图5-5所示。这里包含了所有的表属性:列、索引、主键等。添加列和添加索引的操作比较简单,根据相关提示进行相应的设置即可。图5-5 表属性5.4 用PowerDesigner构建设计好的数据表了解了每个表的结构后,在PowerDesigner中就可以轻松地以图形样式展现出来,如图所示。箭头表示表与表之间的关联,箭头中间的文字表示表与表相互依赖的关键字段。后面标志有或的字段,表示此字段是主键或者外键。图5-6 所有表设计为了提高数据库的查询速度,每个表又会建立索引。PowerDesigner默认设置为每个表必须有一个索引。因此,当构建完整个表结构后,还要给每个表添加一个索引。添加索引的原则是唯一性。本例的索引都是加在每个表的主键上,索引名与主键名相同。注意:添加索引时注意将索引的聚集属性(Cluster)去掉,否则生成数据库时会与表中主键冲突。5.5 生成数据库设计好软件所需要的全部数据表后,如何将设计好的这些图形元素转化成SQL Server中的数据库呢?前面提到过,PowerDesigner的一个优点就是对数据库可逆。(1)打开PowerDesigner,出现工作界面。(2)单击“数据库|生成数据库”菜单命令,弹出对话框。这里可以看到所有与生成数据库有关的选择,比如生成文件目的地、是否生成视图、是否生成主键索引等。(3)修改SQl脚本的保存地址,单击“确定”按钮,如果不提示错误,在所选的目的地就能发现一个crebas.sql脚本文件。所生成的脚本文件中并没有关于数据库的信息,因为所创建的仅仅是数据库中表的所有信息。下面就要创建一个数据库。(4)打开SQL Server,出现其控制台窗口。这里主要包含对象资源管理器和摘要2个区域。(5)在对象资源管理器中,右键单击“数据库”项目,在弹出的菜单中选择“新建数据库”,就出现了新建数据库的窗口。(6)在“数据库名称”文本框内,填写本项目数据库的名称:StudentManager。单击“确定”按钮,就生成了程序所需的数据库,并返回到数据库界面。(7)单击“常规工具栏|新建查询”按钮,系统自动创建一个名为“SQLQuery1.sql”的文本窗口,并显示在摘要区内。(8)打开第3步生成的脚本文件,按Ctrl+A组合键,选择文件里的所有内容,复制到打开的查询文件中。(9)检查一下复制过来的代码是否完整,然后在“常规工具栏|数据库选择”下拉框中选择“StudentManager”。(10)单击“常规工具栏|执行”按钮,执行脚本。如果提示“命令成功执行”,则生成了完整的数据库文件。在完成对数据库中自动生成的表的检查后,如果没有问题,整个数据库设计就完成了。为了避免日后的重复操作,在设计数据库时,一定要全面掌握每个表的信息内容,因为后期再添加字段将会带来极高的维护成本。课题六 开发前期项目准备在正式开发前,为了统一开发的模式,除了要遵守公司指定的开发规范外,还要统一项目的命名、各层文件夹的名称等。一般由资深程序员或项目管理人员先构建一个新项目,将所需要统一的内容填充好,并将整个项目部署到服务器的VSS中,再由程序员下载项目并进行开发。6.1 版本控制工具VSS在开发过程中,为了控制开发错误以及不同时期代码的管理,通常使用版本控制工具。本讲主要介绍Microsoft提供的版本控制工具VSS(Visual SourceSafe)。VSS可以详细记录代码从开发到发布期间所有的修改和版本信息,并使用签入签出控制一个代码文件一次只能由一个程序员修改,这就保证了源代码的安全性和准确性。6.1.1 VSS的使用VSS 2005安装完毕后,在Windows的程序菜单中会生成两项:Microsoft Visual SourceSafe和Microsoft Visual SourceSafe Administrator。第二项用于权限管理,控制登录VSS的用户数量和权限级别。1. VSS服务器端使用先在VSS Administrator中添加项目组的开发人员名单,权限由管理员分配。(1)打开VSS Administrator,出现登录窗口,如图所示。首先要创建一个新的VSS管理数据库。(2)单击“Browse”按钮,打开VSS数据库窗口,如图所示。列表中显示的是之前项目的VSS数据库。右边的一系列按钮可实现对这些数据库信息的操作。(3)单击“Add”按钮,此时会出现一个向导,帮助用户选择文件夹并创建数据库文件。只需按照向导的提示一步步进行即可。(4)完成VSS数据库建设后,Dababase的文本框内已经有了刚创建的目录。(5)初次登录时,帐户“Admin”不需要密码,单击“OK”按钮。打开VSS Administrator的工作界面,如图所示。在工作区
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文件分类归档清单表
- 一次意外的相遇我与小狗的故事(4篇)
- 雪国梦幻般的情感描写:初中语文阅读理解教案
- 旅游地理学区域景点考察题库
- 交通行业汽车保险投保情况表格
- 农民教育与职业技能提升的长效机制建设
- 乡村健康教育与文化传承的结合
- 食品安全与质量控制管理知识要点梳理
- 高校预算管理一体化实施的困境与对策研究
- 2025年音乐教育专业考试试卷及答案支持
- 湖南省长沙市2024年七年级下学期数学期末考试试题附答案
- 消化道穿孔患者的护理课件
- 作物栽培学智慧树知到期末考试答案章节答案2024年中国农业大学
- 汽车修理厂应急预案汽修厂安全生产事故应急救援综合预案2019-2020新标准完整版实施文件
- 建筑智能化系统工程挂靠协议
- 司法鉴定的奥秘智慧树知到期末考试答案2024年
- 2024春期国开电大专本科《教育学》在线形考 (形考论坛4)试题及答案
- MOOC 高速铁路运营与维护-西南交通大学 中国大学慕课答案
- 11-轮藻植物门课件
- (2024年)健康评估教学教案心电图检查教案
- 方法模型:展开图、还原立体图形
评论
0/150
提交评论