C语言课件 第29 30章.ppt

上传人:仙人指路1688 文档编号:2818191 上传时间:2023-02-25 格式:PPT 页数:44 大小:274KB
返回 下载 相关 举报
C语言课件 第29 30章.ppt_第1页
第1页 / 共44页
C语言课件 第29 30章.ppt_第2页
第2页 / 共44页
C语言课件 第29 30章.ppt_第3页
第3页 / 共44页
C语言课件 第29 30章.ppt_第4页
第4页 / 共44页
C语言课件 第29 30章.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《C语言课件 第29 30章.ppt》由会员分享,可在线阅读,更多相关《C语言课件 第29 30章.ppt(44页珍藏版)》请在三一办公上搜索。

1、第29章项目实战前的几点忠告项目规划,项目开发流程 项目开发团队 项目规划常见问题及解决,第29章项目实战前的几点忠告项目规划,项目开发流程 项目开发团队 项目规划常见问题及解决,第29章项目实战前的几点忠告项目规划,项目开发流程 项目开发团队 项目规划常见问题及解决,第29章项目实战前的几点忠告项目规划,项目开发流程 项目开发团队 项目规划常见问题及解决,项目实战前的几点忠告项目规划,一个项目系统从无到有,要经历策划、分析、开发、测试和维护等阶段,我们将这样的一个阶段过程称为项目的生命周期。本章介绍在项目开发时,如何对项目进行规划。,29.1 项目开发流程,29.1.1 策划阶段29.1.2

2、 需求分析阶段29.1.3 开发阶段29.1.4 编码阶段29.1.5 系统测试阶段29.1.6 系统验收阶段29.1.7 系统维护阶段,29.1 项目开发流程,每一个项目的开发都不是一帆风顺的。为了避免软件开发过程中的混乱,也为了提高软件的质量,需要按照项目开发的流程操作。一个项目的开发往往会被分成很多步骤来实现,每一个步骤都有自己的起点和终点。项目开发的流程如图所示。,29.1.1 策划阶段,项目策划草案和风险管理策划往往作为一个项目开始的第1步。当接到一个项目后,应根据公司高层负责人所制定的初步商业计划书来完成项目的策划草案,并确定、分析项目的风险和项目风险的优先级,同时,还要制定出一套

3、面对项目风险的解决方案。项目策划阶段的主要目的是确立产品开发的经济理由。当确定项目开发之后,则需要制订项目开发计划、人员组织结构定义及配备、过程控制计划等。,29.1.2 需求分析阶段,需求分析是指理解用户的需求,就软件的功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。需求分析阶段主要完成以下任务。需求获取:是指开发人员与用户多次沟通并达成协议,对项目所要实现的功能进行的详细说明。需求分析:需求分析过程主要是对所获取的需求信息进行分析,及时排除错误和弥补不足,确保需求文档正确地反映用户的真实意图,最终将用户的需求转化成软件需求,形成软件需求规格说明书。同时针对软

4、件需求规格说明书中的界面需求以及功能需求,制作界面原型。,29.1.3 开发阶段,软件开发阶段是指具体实现项目目标的一个阶段。项目开发阶段可分为以下两个阶段。1.软件概要设计设计人员在软件需求规格说明书的指导下,需完成以下任务。通过软件需求规格说明书,对软件功能需求进行体系结构设计,确定软件结构及组成部分,编写体系结构设计报告。进行内部接口和数据结构设计,编写数据库设计报告(定稿)。编写软件概要设计说明书。,29.1.3 开发阶段,2.软件详细设计软件详细设计阶段的任务如下。通过软件概要设计说明书,了解软件的结构。确定软件部分各组成单元,进行详细的模块接口设计。进行模块内部数据结构设计。进行模

5、块内部算法设计(可采用流程图、伪代码等方式详细描述每一步的具体加工要求及种种实现细节),编写软件详细设计说明书。,29.1.4 编码阶段,编码阶段的主要任务如下。1.编写代码开发人员通过软件详细设计说明书,对软件结构及模块内部数据结构和算法进行代码编写,并保证编译通过。2.单元测试代码编写完成可对代码进行单元测试、集成测试,记录、发现并修改软件中的问题。,29.1.5 系统测试阶段,系统测试的目的在于发现软件的问题,通过与系统定义的需求做比较,发现软件与系统定义不符合或与其矛盾的地方。系统测试过程一般包括制订系统测试计划,进行测试方案设计、测试用例开发,进行测试,最后要对测试活动和结果进行评估

6、。,29.1.6 系统验收阶段,系统验收阶段是指从系统测试完毕到客户验收签字的阶段。在该阶段,双方相互配合确认软件已达到合同的要求,并要求客户在客户验收报告上签字。,29.1.7 系统维护阶段,项目维护是指在已完成对项目的研制(分析、设计、编码和测试)工作并交付使用以后,对项目产品所开展的一些项目工程的活动。即根据软件运行的情况,对软件进行适当的修改,以适应新的要求,以及纠正运行中发现的错误等。同时,还需要编写软件问题报告和软件修改报告。,29.2 项目开发团队,29.2.1 项目团队组成29.2.2 项目团队要求,29.2 项目开发团队,应根据实际项目来组建项目团队,一般应控制在57人,尽量

7、做到少而精。组建项目团队时首先需要定岗,就是确定项目需要完成什么目标,完成这些目标需要哪些职能岗位,然后选择合适的人员组成。,29.2.1 项目团队组成,主要有以下一些角色。1.项目经理主要负责团队的管理;制定开发的目标、各个工作的详细任务表,跟踪这些任务的执行情况,进行控制;组织会议对程序进行评审;综合具体情况,对各种不同的方案进行取舍并做出决定;协调各项目参与人员之间的关系。2.系统分析师主要负责系统分析,了解用户需求,写出软件需求规格说明书,建立用户界面原型等。担任系统分析师的人员应该善于协调,并且具有良好的沟通技巧。在担任此角色的人员中,必须要有具备业务和技术领域知识的人才。,29.2

8、.1 项目团队组成,3.设计员主要负责系统的概要设计、详细设计和数据库设计。要求熟悉分析与设计技术,熟悉系统的架构。4.程序员负责按项目的要求进行编码和单元测试,要求有良好的编程和测试技术。5.测试人员负责进行测试,描述测试结果,提出问题解决方案。要求了解要测试的系统,具备诊断和解决问题的技能。6.其他人员,如美工、文档管理等角色,29.2.2 项目团队要求,一个高效的软件开发团队是需要建立在合理的开发流程及团队成员密切合作的基础之上的。每一个成员共同迎接挑战,有效地计划、协调和管理各自的工作以完成明确的目标。高效的开发团队具有以下几个特征。具有明确且有挑战性的共同目标。团队具有很强的凝聚力。

9、具有融洽的交流环境。具有共同的工作规范和框架。采用合理的开发过程。,29.3 项目的实际运作,软件开发一般是按照软件生命周期分阶段进行的,开发阶段的运作过程一般如下。1.做可行性分析,确定项目目标和范围项目范围规划初期需要进行一个宏观的估算,否则很难判断清楚,或对用户承诺在现有资源情况下需要多长时间完成需求。2.项目计划的其他关键因素分析和确认确定项目开发过程中需要使用的方法、技术和使用的工具。进行项目相关人员分析。项目的关键依赖和承诺。项目风险分析。,29.3 项目的实际运作,3.项目开发阶段运作根据开发计划进度进行开发,项目经理跟进开发进度,严格控制项目需求变动的情况。项目开发过程中不可避

10、免地会出现需求变动的情况,在需求发生变更时,可根据实际情况实施严格的需求变更管理。4.测试验收测试验收阶段主要是在项目投入使用前查找项目中的运行错误。在需求文档基础之上核实每个模块能否正常运行,核实需求是否被正确实施。根据测试计划,由项目经理安排测试人员,根据项目开展计划分配进行项目的测试工作。通过测试,确保项目的质量。5.项目过程总结测试验收完成紧接着应开展项目过程的总结,主要是对项目开发过程的工作成果进行总结,以及进行相关文件的归档、备份等。,29.4 项目规划常见问题及解决,29.4.1 如何满足客户需求29.4.2 如何控制项目进度29.4.3 如何控制项目预算,29.4 项目规划常见

11、问题及解决,项目的开发并不是一天两天就可以做好的。对于一个复杂的项目来说,其开发过程更是充满了曲折和艰辛,其问题也是层出不穷,接连不断。,29.4.1 如何满足客户需求,满足客户的需求也就是在项目开发流程中所提到的需求分析。如果一个项目经过大量的人力、物力、财力和时间的投入后,所开发出的软件没人要,这种遭遇是很让人痛心疾首的。需求分析之所以重要,就因为它具有决策性、方向性和策略性的作用,它在软件开发的过程中占据着举足轻重的地位。在一个大型软件系统的开发中,它的作用要远远大于程序设计。那么该如何做才能满足客户的需求呢?了解客户业务目标。撰写高质量的需求分析报告。使用符合客户语言习惯的表达方式。要

12、多尊重客户的意见。划分需求的优先级。,29.4.2 如何控制项目进度,大量的软件错误通常只有到了项目后期,在进行系统测试时才会被发现,解决问题所花的时间也是很难预料的,经常导致项目进度无法控制。同时在整个软件开发的过程中,项目管理人员由于缺乏对软件质量状况的了解和控制,也加大了项目管理的难度。面对这种情况,较好的解决方法是尽早进行测试,当软件的第1个过程结束后,测试人员要马上基于它进行测试脚本的实现,按项目计划中的测试目的执行测试用例,对测试结果做出评估报告。这样,就可以通过各种测试指标实时监控项目质量状况,提高对整个项目的控制和管理能力。,29.4.3 如何控制项目预算,在整个项目开发的过程

13、中,错误发现的越晚,单位错误修复成本就会越高,错误的延迟解决必然会导致整个项目成本的急剧增加。解决这个问题的较好方法是采取多种测试手段,尽早发现潜在的问题。,第30章通讯录,开发背景 需求及功能分析 系统功能的实现 系统运行 开发过程常见问题及解决,第30章通讯录,开发背景 需求及功能分析 系统功能的实现 系统运行 开发过程常见问题及解决,第30章通讯录,开发背景 需求及功能分析 系统功能的实现 系统运行 开发过程常见问题及解决,第30章通讯录,开发背景 需求及功能分析 系统功能的实现 系统运行 开发过程常见问题及解决,第30章通讯录,开发背景 需求及功能分析 系统功能的实现 系统运行 开发过

14、程常见问题及解决,第30章通讯录,开发背景 需求及功能分析 系统功能的实现 系统运行 开发过程常见问题及解决,30.1 开发背景,在信息化不断发展的今天,社会成员相互之间联系越来越紧密,联系方式也越来越多。我们除了手机,移动电话等常规联系方式外,现在还有了电子邮箱、MSN、QQ等信息化的联系方式,那么为了方便我们将每个联系人的多个联系方式保存在一起,方便由于一种联系方式联系不到某人时,可查询其他联系方式,以前的“纸质”通讯录已经越来越赶不上信息化的速度,势必被淘汰,所以我们用所学过的知识实现一个“非纸质”通讯录。本章通过建立一个较为完整的通讯录,让读者全面掌握使用C语言开发应用程序的流程。,3

15、0.2 需求及功能分析,30.2.1 总体功能分析30.2.2 功能模块分析,30.2.1 总体功能分析,本系统主要划分为8个子模块,如下图所示。,30.2.1 总体功能分析,此外,由于该系统设计了一些图书和读者的信息存储,而为简单起见,这里没有设置数据库。因此,就应该定义一个数据结构来存储这些信息。通过前面的学习知道,类和结构体都可以实现多个不同类型数据的存储。而为了重点体现C的特点,我们采用类来存储这些数据类型。结构体定义代码如下(代码30-1.txt)。,30.2.1 总体功能分析,01 typedef struct 02 03 char name50;/*姓名*/04 char cor

16、p50;/*工作单位*/05 char phone15;/*联系手机*/06 char address100;/*家庭住址*/07 char qq15;/*联系QQ*/08 char msn50;/*联系MSN*/09 char mail50;/*email*/10 AddressInfo;/*通讯录结构体*/,30.2.2 功能模块分析,下面依次分析各模块应具备的功能。1.增加联系人模块增加联系人功能应该能够实现新增联系人。当需要一次加入多个联系人信息时,最好不要重复选择此功能,应该是在增加联系人之前,就需要用户输入一次增加的联系人个数,然后进行存储,并一个个地增加。2.删除联系人模块该模块

17、主要完成删除联系人的操作。在删除联系人时需要输入将要删除的联系人的姓名,然后进行存储。3.查找联系人模块查找联系人功能应该能够实现查找联系人信息,要求输入联系人姓名,再根据姓名查找所有符合条件的信息。4.插入联系人模块该模块主要完成在某个联系人之前插入另外一个联系人。,30.2.2 功能模块分析,5.保存联系人模块保存联系人信息功能应该能够实现将联系人信息经过增加、删除等修改性操作后,将内存信息保存至文件。6.加载联系人信息模块从文件加载联系人信息功能应该能够实现将联系人信息文件以写入的顺序读入内存,并可以增加、删除等操作。7.显示所有联系人模块将系统运行过程中的所有联系人信息全部输出。8.退

18、出模块退出通讯录管理系统的功能应该是能够结束死循环,退出管理系统。,30.3 系统功能的实现,30.3.1 系统选择菜单的实现30.3.2 增加联系人功能的实现30.3.3 删除联系人功能的实现30.3.4 查找联系人模块的实现30.3.5 插入联系人模块的实现30.3.6 保存联系人文件模块的实现30.3.7 从文件加载联系人信息模块的实现30.3.8 显示所有联系人信息模块的实现,30.4 系统运行,系统设计好了,现在就来看看设计的成果。,30.5 开发过程常见问题及解决,开发过程常见问题及解决办法如下,仅供参考。如果出现“warning C4013:exit undefined;assuming extern returning int”的编译错误,在程序开头加上对应的头文件包括语句,通常就能解决问题。在Visual C+6.0下开发清屏时,由于对屏幕控制的权限不多,因此,可使用“system(cls);”语句清屏。C语言较高级的地方还在于对内存的访问与处理,内存申请、内存复制、内存置位、释放内存,具体函数有:malloc、memcpy、memset、free等,使用方法请参考头文件。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号