软件开发过程(共10页).docx
《软件开发过程(共10页).docx》由会员分享,可在线阅读,更多相关《软件开发过程(共10页).docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上软件开发过程现代社会正变得越来越复杂,随之出现的问题也变得复杂了,这样解决问题就成一种生活方式。比如固体废料处理、全球变暖、国际金融、污染、核扩散等问题就是出现时间不长的新问题,该如何解决这些问题是对人类技术和能力的挑战。大多数问题的解决方案要求考虑周全的计划,并需要预先考虑解决方案是否适当的和有效的。对于大多数程序设计的问题,需要考虑的因素也是如此。例如,通过反复试验为移动电话网络编写软件或者为百货公司创建管理程序的过程就是如此。这样一个解决方案最好的结果是费用昂贵但效果良好,最坏的情况是损失惨重,脱离现实。每一个研究领域都有器用于设计这些问题的解决方案所使用的系统
2、方法的命名规则。在科学界,这种方法称为科学方法,而在工程学科中,这种方法称为系统方法。为了理解需要解决的问题和为建立一个有效的且适当的软件解决方案,专业 软件开发人员使用一种称为软件开发过程的方法。这个过程由下列四个阶段组成。阶段1:确定程序的要求阶段2:设计和开发 步骤1:分析问题 步骤2;选择一个完整的解决方案算法 步骤3:编写程序 步骤4:测试和修正程序阶段3:文档编制阶段4:维护前三个阶段经常改进并相互影响,直到最终设计和程序被开发出来为止。而且在设计和开发阶段,你可能会发现问题没有被完全明确或分析,需要在初期的步骤做进一步的工作,以完成程序。每一个都将在下面的段落中讨论。阶段1:确定
3、程序的要求这个阶段以问题的陈述或对程序的特定要求开始,称为程序的要求。你的任务是确保程序的要求被明确的陈述,而且要理解期望达到的目标是什么。例如,假设你收到一封来自主管的简短邮件,邮件内容是说我们需要提供一个关于圆的信息的程序。这不是一个定义清楚的要求,他没有明确说明一个良好定义的问题,因为它没有准确地告诉我们要求什么信息。立即开始编写程序去解决这个缺少明确表达的问题将是一个严重的错误。为了弄清楚和定义这个问题的陈述,需要做的第一步是向主管咨询准确的定义要产生的信息是什么以及能够提供的数据是什么。假设你咨询了主管,并且知道升级想要的是计算和显示一个给定半径时求圆的周长的程序。只有在你了解了什么
4、是一个清楚的陈述时,才可以进行下一步。阶段2:设计和开发一旦程序的详细说明已完成,形成程序设计过程核心的设计和开发阶段就可以开始了。这个阶段由下列四个步骤组成。步骤1:分析问题。这个步骤要求确保问题事实上已经被清楚地说明和理解,并且已经为选择这个问题的算法提供了必要的信息。只有在你理解了下列内容时,这个问题才能被清楚的定义。1. 必须产生的输出2. 产生预期的输出所要求的输入数据3. 体现输入与输出之间的联系的公式分析完成时,这三项中的每一项都必须清楚的定义。在执行分析阶段,许新程序员喜欢首先确定数据,而在以后确定想要的输出,专业程序员则倾向于相反的工作方式。忽略输入而首先思考输出似乎对你来说
5、有些奇怪,但输出是构造一个程序的首要的全部目的。知道了这个目的并将它牢记在心,能使你将精力集中于程序的重要方面。但是,如果你觉得一开始就确定输入数据会更轻松些,也可以这样做。步骤2:选择一个完整的解决方案算法。这一步是确定和选择一个解决问题的算法。有时候确定完整的解决方案的算法相当容易,有时候它可能是复杂的。例如,确定某人口袋里零钱的数量或者确定一个矩形的面积的程序相当简单。但是,制造业公司的库存跟踪和控制系统的设计就比较复杂。在那些更完整的例子中,最初的解决方案的算法典型的被改进和被细化,直到这个算法极为详细地指明全部的解决方案为止。这个细化的例子稍后将在本节中提及。 在最普通的形式中,一个
6、可应用于大多数C语言程序的完全的解决方案算法是: 获得问题的输入 计算期望的输出 报告计算的结果这三个任务几乎是每个问题的主要责任,我们把这个算法称为问题解算机算法。例如,假设要求你用一个已给定的半径计算圆的周长,这个问题的解算机算法就变成:设置半径值r使用公式C=6.28r,计算周长C显示C的计算值对于只需执行一个或几个计算的小的应用,通常这个问题解算机算法本身就足够了。对于较大的程序,则必须将它组编成较小的算法,以使这些较小的算法能相互连接并能明确地细化最初的算法。下面将描述细化的完成过程。细化算法。对于较大的应用,最初的解决方案算法典型地从问题解算机算法开始,必须细化并组织成较小的算法,
7、以指明这些小算法相互之间是如何衔接的。要达到这个目的,解决方案的描述必须从最高级要求开始,并向下逐步细化到必须被构造的部分。为了便于理解,假设有一个要求跟踪库存零件数量的计算机程序。这个程序所要求的输出是描述库存的全部零件和每种零件的数量,输入是每种零件最初的存货总量、已销售的量、退回的量和新采购的量。程序设计者最初可能把这个程序的全部解决方案算法组编为如图1.18下半部分所示的三个问题解算机算法部分。这称为算法的一级结构图,因为它表示了最初的、还不够足够详细的、用于一个解决方案算法的结构的首次尝试。一旦开发了一个最初的算法结构,你就能把它细化,直到这些方框中表示的任务完全被定义为止。例如,图
8、1.18中的数据输入部分应该进一步细化到指定的输入数据的规定。由于为不可预见性的和人为的错误做规划是系统设计人员的责任,因此还必须为修改已经输入的不正确的数据和删除前面输入的数值定义某些规定。报表部分的细化也类似。图1.19表示的是进一步细化了的库存跟踪系统的二级结构图。 图1.18 一级结构图注意这种设计将产生一种树形结构,当我们从这个结构的顶部移动到底部时,这些级的分支就体现出来了。当设计完成时,在较低的方框中所设计的任务典型的代表了一些简单算法,这些简单算法被结构中较高的算法所使用。这种类型的算法开发方法称为自顶向下的算法开发,它从顶端开始,在它向下达到最后一组算法的过程中,会开发出来越
9、来越多的详细算法。步骤3:编写程序。这个步骤是将选定的解决方案算法翻译为C语言计算机程序。这个过程也称为编码算法。 图1.19 二级细化结构图如果分析和解决方案步骤已经正确完成,编写程序的过程本质上就有些机械了。但是在一个设计良好的程序中,组成程序的语句应该遵守已经在解决方案步骤中定义的某些定义良好的结构,这些结构控制程序的执行并由下列类型组成。1. 顺序2. 选择3. 反复4. 调用顺序定义了程序执行指令的次序。它指明了指令将用它们在编码中出现的次序执行,除非被其他结构的指令明确的改变了。选择提供了根据某个条件式的结果在不同的指令间进行挑选的能力。例如,在执行除法之前必须检查作为被除数的数字
10、的值。如果这个数字是0,除法将不能执行并且将给用户发布一个警告信息,数字不为0时可执行除法。选择操作及它在C语言中的编码方法在第四章介绍。重复,也称为循环和反复,提供根据某个条件式的值重复地执行某些操作的能力。例如,学生的考试分数可能被重复地输入和相加,直到一个负的分数输入时为止。在这个例子中,负分数的输入是表示分数重复输入和相加的结束条件。在这一位置,所有输入的分数的平均值的计算能够执行。重复操作和它们如何在C语言中被编码将在第5章介绍。调用,即在需要时运行指定的代码段。调用操作和它们如何在C语言中被编码将在第6章和第7章介绍。步骤4:测试和修正程序。测试的目的是验证程序是否运行正确并实际达
11、到它的要求。理论上,测试应该揭露所有存在的程序错误。在计算机术语中,程序的错误称为bug。实际工作中,程序测试要求检查所有可能的语句执行的组合。由于所要求的时间和效果,这通常是一个不可能达到的目标,除非是极简单的程序。对大多数程序而言,彻底的测试完全是不现实的。由于这个原因,各种测试方法学 逐渐发展起来。在这些方法的最基本层面,测试应该包括一个有意识的、能够确保程序正确运行和产生有意义的结果的效果。必须仔细思考这个测试想要达到的目标以及你在这个测试中将使用什么样的数据。如果测试揭露了一个错误,就必须着手调试程序,包括定位、纠错和验证这个纠错。重要的是,要认识到虽然测试可能揭露错误的存在,但并没
12、有指明错误不存在。于是,虽然一个测试揭露了一个bug,但是这个事实并不表明另外的bug没有潜伏在程序中。为了捕捉和修正程序中的错误,首要的是开发一组确定这个程序是否给出正确答案的数据。事实上,在正式的软件测试中,一个可接受的步骤是在编写代码之前规划这个测试过程和建立有意义的测试数据,这有助于程序员更加客观的理解这个程序必须做什么。这个测试应该检查一个程序将被使用的每一种合理的情形。这意味着测试应该使用在可接受的限制范围内的数据、在合理范围内的数据、使用程序应该检测和报告为无效数据的数据。事实上,开发优良的验证测试和使问题更加复杂的数据可能比编写这个程序本身的代码更加难一些。阶段3:文档编制实践
13、中,大多数程序员在完成编程工作之后几个月就会忘记程序中许多细节。如果他们或其他程序员以后必须对程序进行修改,重新理解这个原来的程序时如何工作的就可能需要许多宝贵的时间。良好的文档编制能防止这种情况的发生。这样多的工作变得无用或者丢失,这样多的任务必须重做,都是因为文档编制不完全,从而证明了文档编制时解决方案中最重要的步骤。实际上,有许多关键的文档需要在分析、设计、编码和测试过程中建立。完整的文档编制要求收集这些文档、增加附加的材料和对你或你的机构最有用的形式呈现它。虽然,并不是每个人都用相同的方法把这些文档分类,但用于每个问题的解决方案基本上包含6个关键的文档。1. 要求陈述2. 将编码的算法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 过程 10
限制150内