软件开发过程

简介:

软件生命周期:

1、问题定义:用户需要解决什么问题?

2、可行性分析:用户需要解决的问题是否可行(技术可行性、市场可行性)?

3、需求分析:将用户提出的问题进行细化;

4、系统设计:确定细化问题的实现方法:

5、编码:依据需求和设计稳定进行开发,解决问题;

6、测试:验证是否已经解决用户提出的问题(单元测试:开发的过程中由开发人员进行、集成测试:测试整体流程、功能用例测试:对每个细化的功能进行测试、性能测试:使用专业工具进行压力和稳定性测试);

7、维护:


开发模型:

1、瀑布模型:开发的每个阶段是顺序执行,每个阶段都会产生循环反馈,如果某个阶段出现问题,需要上一个阶段或者更早的阶段去排查解决问题。适用需求明确解决方案明确的项目中,常在一些小型项目中使用。

2、原型模型:逐步求精,开发阶段围绕着原型进行实施。适用于前期需求不明确,采用原型方法方便搜集需求。

3、增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每个线性序列产生软件的一个可发布的“增量”。适用于大型项目。



需求分析:

1、需求调研:目标是挖掘用户需求。首先确定目标用户,然后确定问题领域,并定义一个描述问题的系统,用户在这个问题领域和系统下提出需求,需求包括:功能需求;质量需求、用户体验需求等。最终得到一个“需求调研报告”。

2、需求描述:通过需求调研对收集到的资料进行分析、鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。最终得到一个“软件需求规格说明书”并与用户确认。软件开发人员需要根据“软件需求规格说明书”进行设计和编码。软件需求规格说明书包括:系统概述、运行环境、功能模块图、功能用例、性能需求、接口需求、其他需求等。

3、需求评审:参与者主要是架构师、技术经理、需求分析人员、设计人员、开发人员。主要审核内容为:需求规格说明书是否符合规范、需求描述是否清晰详细、


设计:

1、概要设计:根据软件需求说明,建立目标系统的总体结构和模块间的关系(技术架构、功能架构);系统网络部署结构;核心业务流程;定义系统的外部接口、模块间的接口;编写概要设计文档;概要设计审查;

2、详细设计:详细设计的主要任务是设计每个模块的类接口(参数、接口功能)、局部数据结构、物理数据模型、页面原型等。




本文转自 古道卿 51CTO博客,原文链接:http://blog.51cto.com/gudaoqing/1612025
相关文章
|
9月前
软件工程——软件开发阶段(概要设计、详细设计)
需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档
|
18天前
|
Java 测试技术 持续交付
自动化测试在软件开发中的重要性和应用
随着软件开发的迅速发展,自动化测试技术在软件开发生命周期中发挥着越来越重要的作用。本文将探讨自动化测试在软件开发中的重要性和应用,并介绍了一些常见的自动化测试工具和最佳实践。
|
21天前
|
测试技术 持续交付 虚拟化
自动化测试在软件开发中的重要性与应用
传统的软件测试方式已经无法满足日益复杂的软件开发需求,因此自动化测试逐渐成为软件开发过程中的重要一环。本文将从自动化测试的定义、优势以及应用实例等方面进行深入分析,旨在探讨自动化测试在软件开发中的重要性及其应用。
|
4月前
|
测试技术 数据库
【软件测试学习】—软件质量需求(四)
【软件测试学习】—软件质量需求(四)
|
8月前
|
敏捷开发 测试技术 持续交付
软件开发过程中的最佳实践和代码质量评估
在软件开发过程中,采用最佳实践和评估代码质量对于确保软件的稳定性和可维护性至关重要。通过明确的需求、合理的开发流程、良好的代码规范以及严格的代码评估,我们可以降低软件开发过程中的风险,并提升开发效率和软件质量。
205 2
|
9月前
|
敏捷开发 前端开发 持续交付
你不了解的软件开发过程
你不了解的软件开发过程
51 0
|
12月前
|
测试技术 Android开发 iOS开发
测试思想-测试流程 软件测试版本管理
测试思想-测试流程 软件测试版本管理
70 0
|
安全 Oracle 关系型数据库
纯软件测试与软件质量
纯软件测试与软件质量
60 0
|
开发者
聊聊软件开发的代码审查
聊聊软件开发的代码审查
聊聊软件开发的代码审查
|
设计模式 安全 Java
没有测试驱动开发、重构、简单设计及结对编程的敏捷只是虚有其表
  与过去 70 年间大多数程序员的做法相比,本章描述的实践有着根本的区别。它们强 制进行大量的分钟级甚至秒级、深刻的、充满仪式感的行为,以至于大多数程序员初次接 触时都会觉得荒唐。于是许多程序员做敏捷时尝试去掉这些实践。然而他们失败了,因为 这些实践才是敏捷的核心。没有测试驱动开发、重构、简单设计及结对编程的敏捷只是虚 有其表,起不到作用。   测试驱动开发是一个足够复杂的话题,需要一整本书才能讲完。本章仅仅是一个概览, 主要讨论使用该实践的理由和动机,而不会在技术方面进行深入的讨论。特别说一下,本 章不会出现任何代码。   程序员是一个独特的职业。我们制造了大量文档,其中包含深奥的技术
132 0