10

所有程序员都应该知道的六个软件开发步骤

 2 years ago
source link: https://www.51cto.com/article/716471.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

准备编写您的第一个程序?请务必遵循这些关键的软件开发步骤。

开始一个新的软件项目可能会让人不知所措。将流程分解为更小、更易于管理的步骤会很有帮助。传统上,软件开发分为六个步骤。使用此过程可以使大型项目不那么令人生畏。

什么是软件开发?

325802d5221ce5e166c3952d254ad9bfe14373.jpg

在我们深入这个过程之前,先定义一下软件开发是很有帮助的。人们很容易认为小项目并不真正符合“软件开发”的要求。然而,无论你的项目是大是小,如果你在设计一个程序,那么你就是在从事软件开发。

简而言之,软件开发是创建和编码软件以满足某些需求的过程。它可能是客户的需求,也可能是个人需求,例如自动化任务。该程序可能很大也可能很小。但是,所有项目都受益于将项目分解为一系列步骤。

软件开发步骤

1. 需求评估

如前所述,软件开发解决了需求。因此,任何项目的第一步都是清楚地确定您要解决的需求。对于大型项目,这可能涉及市场研究和与利益相关者会面。一个较小的项目可能只需要列出必备功能。

这是该过程中最重要的一步。如果没有清楚地了解解决问题所需的条件,就很难设计出合适的解决方案。对产品有一个清晰的愿景也可以帮助你的项目保持在正轨上。当您开始设计您的项目时,可能会很想添加一些不需要但需要的功能。这称为范围蔓延,它可能会使项目脱轨。

如果你喜欢编程,一旦你有了一个好主意,就会很想跳入代码中。但是,如果您先花时间设计软件,您的项目将会运行得更顺畅。这一步类似于在开始写论文之前写大纲。它有助于组织你的想法。您的大部分问题解决都应该在此步骤中完成,因此当您开始编码时,应该很少有并发症。

在此步骤中,您需要考虑几件事情。如果您的软件项目需要一个界面,请开发一个概述界面外观和功能的原型。如果项目使用数据库,请设计表并绘制它们之间的关系。

所有软件开发都需要编写算法。创建概述程序流程并描述任何复杂算法(如函数或方法)的流程图。

这可以说是最直接和最有趣的一步。

在此步骤中,您将编写代码来创建软件。在明确定义项目需求并概述设计之后,这一步应该很简单——至少在理论上是这样。实际上,这个阶段可能会出现问题,但是在编程之前完成的计划越多,它就越顺利。

编写代码后,必须对其进行测试。您需要验证代码是否按预期工作并满足其旨在满足的需求。在较小的项目中,此步骤可能相当简单,主要涉及调试软件。在较大的项目中,这可能涉及与焦点小组一起测试软件,以改进软件的设计和要求。

此步骤的顺序可能会有所不同。例如,测试驱动开发首先创建一个脚本来测试软件。当它通过测试时,编码被认为是完整的。相反,如果您使用迭代设计方法,测试将被集成到几个设计阶段。

一旦软件通过测试,就可以部署了。在这个阶段,软件应该功能齐全,可以发布和/或使用。大型项目可能会分阶段发布,称为交错发布。

当软件交到用户手中时,他们经常会发现在测试过程中没有发现的问题和错误。交错发布使对这些问题的响应变得易于管理。

维护步骤是另一个关键阶段。一旦使用该软件,它可能无法完全满足其设计的需求,可能会发布新功能,或者可能会发现新的错误。所有这些都需要监控和修改软件。

尽管上述步骤使软件开发看起来是线性的,但并非必须如此。有许多不同的方法来处理软件开发。最著名的两种方法是瀑布式和敏捷软件开发。

瀑布(waterfall)

瀑布式开发是管理项目的传统方式。它涉及按顺序完成软件开发步骤。在团队进入下一步之前,每个步骤都将完全完成。

这种方法易于管理,适用于小型软件项目。因为过程简单明了,每一步都有明确的目标,所以很容易管理。适用于目标明确、需求易于理解的项目。

当项目复杂或需求不明确时,瀑布方法就不能很好地工作。使用这种方法可能很难更改软件的设计。由于这些步骤是按顺序执行的,因此很难返回一个步骤,这使得难以响应出现的问题或调整设计。

敏捷(Agile)

敏捷旨在解决瀑布方法的许多缺点。这个过程不是从一个步骤移动到下一步直到完成,而是循环的。该项目是在一系列开发周期中逐步创建的。测试是该过程的核心。每个周期都包含从测试中吸取的教训。这种循环方法将重新设计构建到软件开发过程中。

敏捷的好处是它允许项目发展以解决测试期间发现的问题。这是以用户为中心的设计的好方法。尽管开发过程更加复杂,但对于大型项目来说也更具成本效益。问题出现时可以快速解决,并且更容易更改设计以响应出现的问题。

在开始一个新的软件项目时,有许多考虑因素。项目的目的和范围将决定最佳的软件开发方法。然而,所有的方法都是基于相同的步骤。如果您是编程新手,那么直接开始编程总是很有诱惑力的。但是花时间计划你的项目是值得的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK