软件开发方法
1.4 软件开发方法
1.4.1 问题
明确问题的需求必须将问题陈述清楚,并明白解决问题需要什么。这一步的目标就是消除不重要的方面,将注意力集中在根本问题上。这个目标其实并不像听上去那么简单,需要从问题提出者那里获取增多的信息。
1.4.2 分析
分析问题要明确
问题的输入,也就是要处理的的数据;
问题的输出,也就是希望的结果;
解决方案的任何需求或约束条件。
这时还要确定
显示结果需要的格式,以及
一些问题变量及其相互关系。这些关系可以用公式表示
如果1.4.1 和 1.4.2 正确,就会给出错误的解决方案。因此要仔细阅读问题。
首先,要对问题有一个清晰的概念;
其次,确定输入和输出
知道了问题的输入和输出,就可以列出表示它们之间关系的公式。
在某些情况下,可能需要假设或简化以推导变量间的关系。(通过提取基本变量及其关系的问题建模过程称为抽象)
1.4.3 分析
设计解决问题的算法,然后验证该算法可以按预期解决问题。写出算法通常是解决问题过程中最困难的一部分。不要试图在刚开始就解决每一个细小的问题。相反地,应使用自顶向下设计方法(分治法)。
首先列出需要解决的主要步骤或子问题,然后可以通过解决每个子问题来解决原始问题。
大多数计算机算法都至少包含下列子问题。
编程问题的算法
一旦知道子问题,就可以逐步细化(为解决原始算法中的一个特定步骤而开发的详细步骤列表)
桌面检查是算法设计中的一个重要部分(这个步骤常被忽略),可以尽早发现算法错误,节省时间和精力。
桌面检查:逐步模拟计算机执行算法,验证算法是否能按预期工作。
1.4.4 实现
实现算法就是将算法写出程序,将每一个算法步骤转化为编程语言的一条或多条语句
1.4.5 测试
测试并验证程序需要而是整个程序来验证他能按预期工作,但不能仅仅只依赖一次测试的情况,而要利用不同的数据集运行程序若干次来确定程序在算法中的每一种情况均能正确工作。(鲁棒性,健壮性)
1.4.6 维护
维护并更新程序就是通过修改程序来除去以前未检测到的错误,并且当政府条例或公司方针改变时能够及时更新。如果想要生成易读、易理解和易维护的程序,那么使用规范的方法是非常重要的。编程时必须遵循已被接受的程序结构原则,并且避免利用诀窍和走捷径。
注意:失败是编程过程中的一部分。
1.5 应用软件开发方法
例题以“实例”的形式出现,并以问题描述作为开始。作为问题分析的一部分,需要确定问题的数据的需求,也就是问题的输入和期望的输出。其次就要设计和细化初始算法。最后一C程序实现算法,并且延时程序的运行,讨论如何测试程序。
已使用 Microsoft OneNote 2016 创建。