




免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i xxx 系统的设计与实现 作 者 姓 名: 指 导 教 师: 学 院 名 称: 专 业 名 称: 计算机科学与技术 东 北 大 学 2013 年 12 月 ii 摘 要 软件项目管理的根本目的是为了让软件项目尤其是大型项目的 整个软件生命周期都能在管理者的控制之下,以预定成本按期,按 质的完成软件交付用户使用。而研究软件项目管理为了从已有的成 功或失败的案例中总结出能够指导今后开发的通用原则和方法,同 时避免前人的失误。 关键词:软件项目管理系统,进度跟踪,项目预算 iii 目 录 软件项目管理系统的设计与实现 .i 摘 要 .ii 目 录 .iii 第 1 章 绪论 1 1.1 设计背景 1 1.2 系统简要介绍 2 1.2.1 系统应用范围 .2 1.2.2 xx 介绍 2 1.2.3 系统主要功能介绍 .3 1.2.4 研究目的与意义 .3 第 2 章 需求分析 4 2.1 功能性需求 4 2.1.6 软件项目管理业务流程图 .5 2.2 系统数据库逻辑模型图 6 2.3 非功能性需求 7 2.3.1 健壮性 .8 2.3.2 有效性 .8 2.3.3 稳定性 .8 2.3.4 完整性 .8 2.3.5 可扩展性 .9 2.4 开发环境 9 2.4.1 数据库 .9 2.4.2 开发平台 10 2.5 小结 .11 第 3 章 系统设计 .12 3.1 总体架构设计及描述 .12 iv 3.1.1 系统层次结构 12 3.1.2 12 3.1.3 对象关系映射技术 13 3.2 功能模块设计 .14 3.3 数据库设计 .18 3.3.19 项目维护记录表 27 3.4 小结 .28 第 4 章 系统实现 .29 4.1 系统代码结构 .29 4.1.1 应用程序入口 29 4.1.2 主窗体 29 4.1.3 项目窗体基类 30 4.1.4 工具类 30 4.1.5 系统配置文件 30 4.2 对象关系映射实现 .31 4.2.1 数据模型 31 4.2.2 数据访问实现 31 4.3 系统功能实现 .32 4.3.1 系统登录实现 32 4.4 小结 .35 第 5 章 测试 .37 5.1 系统测试目的及意义 .37 5.2 软件测试步骤 .38 5.3 本系统测试情况 .40 5.3.1 系统登录测试 40 5.3.5 集成测试 42 第 6 章 结论 .44 6.1 实现功能 .44 6.3 系统优缺点 .45 v 6.4 下一步工作计划 .46 参考文献 47 结束语 49 1 第 1 章 绪论 1.1 设计背景 提升软件项目的管理水平日益成为许多成长型软件企业共同的 关心点,通过 iso 或 cmm 认证无疑成为大多数企业的所选,但在认证 过程或实施后期企业无疑会面临周期长、隐形成本高以及难以保持 长效等诸多问题,因此许多企业开始考虑借助一套成熟的软件项目 管理 1.2 系统简要介绍 1.2.1系统应用范围 1.2.2xx 介绍 1.2.3系统主要功能介绍 本系统将从项目的需求调研阶段、到开发阶段、再到实施阶段、 维护阶段来管理项目的相关资源,对项目的相关单位、相关人员、 相关资料进行详细的记录,方便日后查找和统计;从项目的付款方 式和付款记录着手,对项目的付款进行计划和管理,尽量避免项目 的资金风险,并可从整体了解项目部门的应收账款和欠款情况。 1.2.4研究目的与意义 通过对中小企业软件项目生命周期及管理现状的研究,设计并 建立一套软件项目管理系统。为中小型软件企业解决日常对软件项 目管理中出现的混乱局面;帮助软件企业更好地组织软件项目从需 2 求到售后的过程;更好地管理软件项目开发中产生的资源,如各类 文档、客户资料等数据;有效地控制软件项目开发进度;规避软件 项目开发过程中的资源、资金风险。 3 第 2 章 需求分析 需求分析是软件开发项目重要的一环,详细的需求分析和系统 设计是软件开发的基础,只有良好的系统结构,才能开发出功能完 善的、系统流程顺畅的软件系统 1。根据前面的介绍和分析,系统 的总体目标已经明确,总体结构大致确定。下面将对系统的功能性 需求和非功能性需求进行详细的分析,并对系统的开发环境进行简 单的介绍。 2.1 功能性需求 2.1.1用户登录功能 虽然目前系统只支持单用户使用,但出于安全性考虑,系统需 要用户输入正确的用户名和密码,登录后才可以正常使用。 2.1.2修改密码功能 用户登录系统后,需要能够修改登录密码。进行密码修改时应 注意两点,一是必须提供正确的原密码才可以修改密码,二是输入 的新密码需要让用户确认,避免造成输入失误而引起密码丢失的情 况。 2.1.3组织结构管理 组织结构管理模块应能够实现对公司内部的部门信息、每个部 门的职员基本信息进行方便的管理。部门和职员数据作为日后组成 项目信息的一部分数据基础。 4 在实际的工作中,一些企业的部分职员可能会在多个部门任职。 因此需要系统设计时考虑此种情况,允许一名职员同时属于多个部 门。 2.1.4客户管理 客户管理模块用来管理使用公司产品的客户、与公司有长期合 作关系的合作伙伴、地区性的合作伙伴、某一项目中需要合作开发 的相关单位、以及为某项目提供硬件设备的厂商等数据。同时提供 对上述相关客户中联系人的管理,每个客户中可以有多个联系人。 这里需要指出,客户的类型是与具体项目相关的。同一个客户,在 这个项目中可能是产品的最终使用者,在另一个项目中又可能是产 品供应商等。 2.1.5项目管理 项目管理模块是系统中最为重要的一个模块,管理公司承接开 发的各个项目。需要对项目的基本信息、相关文档资料、相关客户、 客户联系人、相关内部职员、项目进度、实施情况、维护情况、回 款计划、付款情况进行统一的管理。与项目相关的各项数据之间相 互关联,通过项目基本信息很好的把各类信息串联起来。 2.1.6软件项目管理业务流程图 软件项目管理的业务流程如图 2.1 所示。 5 图 2.1 软件项目管理业务流程 2.2 系统数据库逻辑模型图 本系统的数据库逻辑关系如图 2.2 所示。 图 2.2 系统数据库逻辑模型图 2.3 非功能性需求 结合本软件项目管理系统的使用环境和需求分析,整个系统应 具备以下几个方面的非功能性需求。 2.3.1健壮性 由于本系统需要使用数据库作为数据的存储机制,而数据库有 可能与程序不同时运行在同一台计算机中,所以系统的安全性和有 效性可能会受到网络的影响。如果在数据库访问过程中遇到网络问 6 题等,系统应能够有效避免由此引发的数据混乱、程序异常等现象。 使系统在连接数据库出现异常情况时,仍能正常处理程序界面中已 经录入的信息。 2.3.2有效性 在经过一段时间的使用后,系统必然会积累较大的数据量,系 统不能因此而出现程序响应速度慢、数据出错等问题 2,这严重违 背了我们设计此系统的初衷。系统中的数据录入功能应提供基本的 数据校验,避免因为用户输入失误而产生的异常等。此外,系统的 功能响应时间要很快,并且响应时间不能随着业务量的增大而差异 增大。 2.3.3稳定性 系统要稳定提供业务服务,要求一直运行准确、无误,并且系 统不能自己退出,有异常进行及时提示,但是不能出现异常后自行 退出。系统应该能够适应长时间运行,不能因为运行时间过长产生 垃圾内存的不可回收,或是数据库连接的不断占用等现象。 2.3.4完整性 系统在完成要求的功能性需求以外,需要能够合理管理后台数 据,当需要调用后台数据时,能够及时查询。当对一条数据进行操 作时,应充分考虑是否有相关数据存在,如果存在相关数据,需要 进行相应的同步处理。因为数据在企业中起着重要的作用,所以系 7 统也要进行定期数据备份,保证数据安全、一致。最后,软件应该 能够便于更新升级。 2.3.5可扩展性 随着企业的信息化水平的增加,对软件项目管理系统的功能需 求也很可能会随之增加,因此系统设计时应考虑日后的功能扩展。 对系统进行功能升级时不影响现有功能的正常运行,不影响现有数 据的正确性和有效性。尤其是组织结构、客户信息等通用数据部分 的设计,要尽量做到通用、调用灵活,避免日后升级时需要重新设 计。 2.4 开发环境 2.4.1数据库 2.4.2开发平台 2.5 小结 本章节主要介绍了系统的功能性需求和非功能性需求,其中功 能性需求有组织结构管理功能、客户信息管理功能、项目信息管理 功能等,非功能性需求有完整性、有效性、稳定性、可扩展性等, 尤其要考虑由于网络的不稳定性所带来的系统的健壮性方面的问题。 本章还在最后简单介绍了系统开发所选择的数据库 ms sql server 2005 和开发平台 visual studio 2008 的情况。 8 第 3 章 系统设计 软件设计的最基本目标就是回答“概括地描述系统如何实现用 户所提出来的功能和性能等方面的需求”这个问题。它的另一个任 务就是设计软件的结构,确定系统是由哪些功能模块组成的,以及 这些模块相互之间的关系 4。本章将在上一章系统分析的基础上对 系统设计进行描述。 3.1 总体架构设计及描述 3.1.1系统层次结构 3.1.2用户界面控件 krypton toolkit 3.1.3对象关系映射技术 3.2 功能模块设计 系统共包含 5 个大的功能模块,分别是系统登录、修改密码、 组织结构管理、客户管理、项目管理。其中,组织结构管理包含组 织结构列表、编辑职员 2 个子模块;客户管理包含客户信息列表、 编辑联系人 2 个子模块;项目管理包含新建项目、项目查询、修改 项目、进度报告、支出记录、相关文档、付款计划、付款记录、实 施记录、维护记录等 10 个子模块。系统功能模块如图 3.1 所示 9 图 3.1 系统功能模块图 3.2.1系统登录 登录功能用于对系统使用者的身份验证,每次进入系统时,必 须使用本模块进行验证,否则不允许使用进入系统。登录界面需要 输入用户名和登录密码,当输入的登录名和登录密码与数据库中相 关记录相符时,才允许进入系统 6。 3.2.2修改密码 已登录的用户,允许修改自己的登录密码,修改登录密码时需 要提供原密码和两次输入新密码。 3.3 数据库设计 数据库是指自描述的完整记录的集合。数据库结构特性的设计 整个系统设计的基本任务,设计质量的好坏,直接影响到数据库应 10 用系统的运行质量 7。基于数据库的信息服务系统具有数据量大、 保存周期长、对数据需求多样化等特点,为了使应用系统具有更优 良的性能,应当首先设计出既能客观表现实体,又能表现实体间复 杂联系的数据库。 本系统采用关系型数据库。关系数据模型就是一个表格,所以 从用户角度来看,一个关系型数据库包含若干个表。因此数据库设 计的合理性关键在数据表设计的合理性。 3.3.1操作员表 操作员表用于保存操作员的登录名和登录密码数据,如表 3.1 所示。 表 3.1 操作员表 字段名 描述 类型 是否可空 是否主键 dlm 登录名 varchar(20) 否 是 dlmm 登录密码 varchar(20) 否 否 3.4 小结 11 第 4 章 系统实现 4.1 系统代码结构 系统使用 visualstudio2008 开发,解决方案名为 meansproject。解决方案中包含两个项目,一个是系统主项目 meansproject 项目,一个是数据库模型项目 model 项目 8。数据库 模型项目中是依据对象关系映射技术,由数据库表映射而来的 c#类 文件和 xml 描述文件。 系统主项目中包括 zzjg、khgl、xmgl 三个子目录。zzjg 目录 是组织结构管理模块相关代码目录;khgl 是客户管理模块相关代码 目录;xmgl 目录是相关管理模块相关代码目录。各功能模块外的代 码文件直接存放于主项目根目录中,包括应用程序入口、主窗体、 登录窗体、工具类、系统配置文件等。系统主项目采用 mdi 多文档 形式进行窗体的组织,由主窗体来调用打开各功能窗体。 4.1.1应用程序入口 系统应用程序入口为 program 类,主要负责应用程序的初始化 工作,并加载系统主窗体 9。同时,program 类中保存已登录的用户 状态在 currentuser 属性中,供各个模块使用。 4.1.2主窗体 系统主窗体为 meansproject 类,是程序调用、组织各个功能 模块的入口。主窗体中包含一个系统导航菜单,导航菜单中包括项 12 目、客户管理、组织结构、窗口、系统五个菜单。项目菜单包含新 建项目和项目管理两个菜单项,用于完成项目管理中各个功能的导 航工作。客户管理菜单用于进入客户管理模块,管理系统中的客户 信息。组织结构菜单用于进入组织结构管理模块,管理系统中的部 门和职员信息。窗口菜单用于切换已经打开的各个功能窗体,也可 关闭所有打开的窗体。系统菜单中包括修改密码和退出两个菜单项, 分别用于修改登录用户的密码和退出系统。 为避免系统中同一个窗体多次打开,主窗体打开 mdi 子窗体均 通过统一的方法来进行,在此方法中判断是否已经有窗体打开,如 果没有,创建新的 mdi 子窗体并打开;如果已经存在,激活已经打 开的 mdi 子窗体 10。 (代码略) 4.1.3项目窗体基类 项目窗体基类为 baseform 类,所有需要用到选择职员或是选 择客户的窗体,均需要继承 baseform 类。此类继承自 componentfa ctory.krypton.toolkit.kryptonform 类,本身也是一个窗体,但 增加了职员信息 zyxx 和客户信息 khxx 两个公有属性,用于选择职 员或客户后存储数据 11。 4.1.4工具类 系统中通用的一些方法存放于工具类(utility)中,目前只 包括弹出消息提示框和弹出询问对话框两个方法。 (代码略) 13 4.1.5系统配置文件 系统中可能会发生改变的,需要动态配置的数据,如数据库类 型、数据库连接参数等,使用系统配置文件来存储 12。配置文件命 名为 measnproject.exe.config,其中 sormdatabasetype 用于配置 数据库类型,sormconnectionstring 用于配置数据库连接字符串。 4.2 对象关系映射实现 本系统的对象关系映射(orm)技术,使用本人所在公司的 orm 中间件 meanssoft.eaf.sorm 来实现。 4.2.1数据模型 对象关系映射技术的关键就在于把数据库表映射为程序的类文 件和相应的 xml 描述文件,然后提供一些易于使用的方法来把数据 库的增、删、改、查等操作来映射到对类对象的操作上来。因此, 数据模型是对象关系映射技术中的很重要的一部分。从下面的由部 门信息表映射而来的类文件和 xml 文件中可以看到数据模型的具体 内容。 4.2.2数据访问实现 sorm 对象关系映射中进行数据库操作的类为 session 类,类中 包括查询、修改、删除、查询等基本数据操作方法,也包含开始事 务、提交事务、回滚事务等方法。调用数据操作方法可以使用 session 类提供的静态方法,也可以使用非静态方法。当一次数据 14 库操作有多条语句需要在一个事务中完成时,必须使用非静态方法。 无论是使用 session 类的静态方法还是非静态方法,session 都会 自动读取程序配置文件中的数据库连接配置,自动来决定连接参数。 4.3 系统功能实现 4.3.1系统登录实现 系统是否已经登录,是在主窗体的窗体加载事件中来判断的, 如果还没有登录系统,便弹出登录窗体,要求用户登录 13。系统登 录流程如图 4.1 所示。 图 4.1 系统登录流程 15 第 5 章 测试 5.1 系统测试目的及意义 软件测试是软件生存周期中的一个重要阶段,是软件质量保证 的关键步骤。1983 年 ieee 提出的软件工程术语中给软件测试下的 定义是:“使用人工或自动的手段来运行或测试某个软件系统的过 程,其目的在于检验它是否满足规定的需求或差别” 。这个定义明确 指出,软件测试的目的是为了检验软件系统是否满足需求。 从用户角度来看,普遍希望通过软件测试发现软件中隐藏的错 误和缺陷,所以测试的目的就是在软件系统交付运行之前,尽可能 多地发现软件中的错误和缺陷。为了发现系统中的错误,应竭力设 计能暴露错误的测试用例。测试用例是由测试数据和预期结果构成 的。一个好的测试用例是极有可能发现至今为止尚未发现的错误的 测试用例。一次成功的测试是发现了至今为止尚未发现的错误的测 试。 高效测试是指用少量测试用例,发现被测试软件尽可能多的错 误。 根据测试概念和目的,在进行信息系统测试时应遵循以下原则。 16 (1) 应尽早并不断地进行测试。 (2) 测试工作应该避免由原开发软件的人员或小组承担。一方 面,开发人员往往不愿否认自己的工作,总认为自己开发的软件没 有错误;另一方面,开发人员的错误很难由本人测试出来,他们很 容易根据自己编程的思路来指定测试思路,具有局限性。测试工作 应由专门人员来进行,这样会更客观,更有效。 (3) 设计测试方案时,不仅要确定输入数据,而且要根据系统 功能确定预期的输出结果。将实际输出结果与预期结果相比较就能 发现测试对象是否正确。 (4) 在设计测试实例时,不仅要设计有效、合理的输入条件, 也要包含不合理、失效的输入条件。 (5) 在测试程序时,不仅要检验程序是否做了该做的事,还要 检验程序是否做了不该做的事。 (6) 严格按照测试计划来进行,避免测试的随意性。测试计划 应包括测试内容、进度安排、人员安排、测试环境、测试工具和测 试资料等。 (7) 妥善保存测试计划、测试例子,作为软件文档的组成部分, 为维护提供方便。 (8) 测试用例都是精心设计出来的,可以为重新测试或追加测 17 试提供方便。 5.2 软件测试步骤 测试是开发过程中一个独立且非常重要的阶段,测试过程基本 上与开发过程平行进行。测试步骤可按 4 个步骤进行,即单元测试、 集成测试、确认测试和系统测试,如图 5.1 所示。 图 单元 测试 确认 测试 集成 测试 单元 测试 单元 测试 . . . 被测模块 被测模块 被测模块 设 计 信 息 已集成的软件 系统 测试 已确认的软件 可交付的软件 软 件 需 求 系 统 其 他 元 素 已经 过测 试的 模块 5.1 软件测试的流程 单元测试集中对用源代码实现的每一个程序单元测试,检查各 个程序模块是否正确的实现了规定的功能。单元测试一般由程序员 自己完成。 集成测试根据设计规定的软件体系结构,把已测试过的模块组 装起来,在组装过程中,检查程序结构组装的正确性。集成测试一 般由专门的测试人员或测试组织完成。 确认测试则是要检查已经实现的软件是否满足了需求规格说明 中确定了的各种需求,以及软件配置是否完整、正确。确认测试一 般由用户协助完成。 18 系统测试把已经经过确认的软件纳入实际运行环境中,与其他 系统成分组合在一起进行测试。严格地说系统测试已经超出了软件 工程范围。 在软件测试生命周期内,错误在软件开发的每个阶段都可能被 带入。在软件测试中,某些错误被发现、分类、隔离,最终被纠正。 由于软件不断被修改,所以这个过程是一个反复进行的过程。 5.3 本系统测试情况 19 第 6 章 结论 6.1 系统实现功能 系统已经实现了对组织结构、客户信息等系统基础数据的管理 功能。同时也实现了对项目基本信息的管理,和项目相关客户、参 与职员等数据的管理,还是实现了对项目进行过程中的进度报告, 相关文档资料管理。对于项目的付款计划和付款记录,系统同样实 现了比较方便的管理,并能够在项目列表中根据付款计划和付款记 录计算出项目的总金额、已付金额和待付金额。项目的实施记录和 维护记录,也可以通过本系统有效的管理起来。此外系统实现了对 使用人员的登录验证。 6.2 系统优缺点 本系统的优点在于能够全面的管理项目的文档资料、进度情况、 实施情况、维护情况,可以对项目的支出情况、付款计划和付款记 录进行记录,同时可以管理公司所有相关客户的资料。有效管理软 件企业中的文档资源、客户资源和资金流。 本系统的缺点在于查询和统计功能不够丰富,对于录入的数据 的使用率不高。而且目前只支持单用户使用,所有数据必须都有一 20 个人来录入,暂时还没有实现平台化的协同办公。 6.3 下一步工作计划 毕业后本人将对系统继续完善,首先从查询统计功能入手,计 划使用一到两个月的时间来提高系统数据的利用率、丰富系统功能。 然后使用一个月左右的时间,对系统的结构进行一次改造,使其支 持多用户登录。完成如上改进后,需要将系统放在本人所在公司来 进行实际应用,并根据实际应用中发现的问题和不足来继续完善系 统。 21 参考文献 1. roger s.pressman. 软件工程实践者的研究方法m. 北京: 机 械工业出版社, 2006, 92-98. 2. b-power 工作室. c#网络程序设计m. 北京: 中国铁道出版社, 2001, 39-51. 3. 李兰友 杨晓光. visual c#.net 程序设计m. 北京: 北
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东广州市白云区人民政府三元里街道办事处招聘基层公共就业创业服务岗位人员1人考前自测高频考点模拟试题(含答案详解)
- 2025内蒙古赤峰市红山区拟任命人民陪审员补选人员模拟试卷及答案详解(名师系列)
- 2025江苏常州市钟楼区卫生健康系统定向招聘农村订单定向医学毕业生1人模拟试卷带答案详解
- 2025安徽芜湖市第三城市医疗集团成员单位招聘编外人员15人模拟试卷及答案详解(典优)
- 2025年甘肃省嘉峪关市胜利路小学招聘公益性岗位人员考前自测高频考点模拟试题及答案详解参考
- 2025昆明市官渡区北京八十学校招聘(18人)考前自测高频考点模拟试题及参考答案详解一套
- 2025北京首都师范大学实验小学招聘2人模拟试卷及答案详解(名师系列)
- 2025吉林吉林市桦甸市产业发展有限公司招聘13人模拟试卷及答案详解(各地真题)
- 2025河南农商银行系统社会招聘考前自测高频考点模拟试题及答案详解(夺冠)
- 2025南昌市自然资源和规划局高新分局招聘用地业务岗1人模拟试卷(含答案详解)
- 2025年养老护理员(中级)考试试卷:专业理论与实操考核
- 家长和孩子签订协议书
- 2025年养老护理员(中级)考试试卷:急救技能与实操训练
- 智慧水务系统的构建与实施-全面剖析
- 灸疗技术操作规范脐药灸
- (二模)新疆维吾尔自治区2025年普通高考第二次适应性检测 英语试卷(含答案详解)
- 2024-2025学年江苏省苏州市高二上册10月月考数学学情检测试题
- 《慢性肾脏病相关心肌病综合管理中国专家共识(2024版)》解读
- 牛津译林版九年级英语上学期期中热点题型专练刷题03名校选词填空20篇(原卷版+解析)
- DB11T 2032-2022 工程建设项目多测合一技术规程
- 中小学教师职称评审讲课答辩英语学科全英答辩题目汇编(附汉语翻译)
评论
0/150
提交评论