软件开发流程(基础)

软件开发流程

跨行招工作的渣渣!暴风哭泣。。。。

小米(智能硬件部)一面,二面都让我详细说一下软件开发流程

定义

软件开发流程:

  • wiki:软件开发过程(software development process)是软件开发的生命周期(software development life cycle),各个阶段实现了软件的需求定义分析、设计、实现、测试、交付和维护。软件开发过程是在开发和构建系统时应遵循的步骤,是软件开发的路线图

常见的过程模型:

敏捷开发-瀑布模型

requirements->design->implementation->verification->maintenance

流程

需求分析->概要设计->详细设计->编写代码->程序测试->软件交付->客户验收->代码维护->项目重构

1.需求分析

建立需求,根据需求可以建立一个功能描述

明确大概的事件流:逻辑模型,分类系统功能模块,包图

指定各功能模块实现的操作者

简单的演示程序(demo):在招标中的作用至关重要

2.概要设计

面向过程的主框架- 事件流,关注细节
面向对象的主框架- 对象的过程

需要哪些模块,哪些接口

3.详细设计

  • 1.根据对象抽象类,形成类图
  • 2.对类分配责任,主要成员函数。细节问题,函数行为
  • 3.通过时序图验证类的成员函数能否实现事件流
  • 4.对类设计成员变量,成员变量来自前置条件,后置条件,方法中的临时变量。
  • 5.对类分析设计成员函数的返回值、参数、函数名、访控属性(公有私有保护)
  • 6.设计成员函数的过程:流程(活动图/状态图),异常

活动图状态图

  • 7.其他细节:构造函数,析构函数,拷贝构造函数,操作符重载
  • 8.通过继承和多态引入抽象。优化。降低模块之间的耦合。
  • 9.套用设计模式。不要为了设计模式而用设计模式。很容易弄巧成拙。

最终形成一份详细的设计文档

接口,控制器,调用

功能性详细描述、类型、函数、各种条件、流程设计、关键算法、关键库的接口

4.编写代码

按照设计文档进行编写代码

编写代码是进行基本的测试验证

  • 1.基本测试,每个main函数来测试类及函数定义
  • 2.单元测试, 模块级别
  • 3.集成测试, 模块都完成后,做集成测试

5.测试验证

黑盒测试

白盒测试

功能测试、性能测试、压力测试、健壮性测试,稳定性测试

6.产品发布

安装手册,用户使用指南

7.客户验收

8.代码维护

软件和根据不同功能进行更改

9.项目重构

有新的技术出现,软件对功能需求没有变,用新的技术将原来的功能重新实现一边

原文地址:https://www.cnblogs.com/GeekDanny/p/11703335.html

时间: 2024-11-07 21:31:03

软件开发流程(基础)的相关文章

软件开发流程(转载)

软件开发流程 迭代化软件开发技术 1. 传统开发流程的问题 传统的 软件开发流程是一个文档驱动的流程,它将整个软件开发过程划分为顺序相接的几个阶段,每一个阶段都必需完毕所有规定的任务(文档)后才可以进入下一个阶段. 如必须完毕所有的系统需求规格说明书之后才可以进入概要设计阶段,编码必需在系统设计完毕之后才可以进行.这就意味着仅仅有当所有的系统模块所有开发完毕之 后,我们才进行系统集成,对于一个由上百个模块组的复杂系统来说,这是一个很艰巨而漫长的工作. 随着我们所开发的软件项目越来越复杂,传统的瀑

软件开发流程中的问题解析

软件开发流程是每个技术开发公司经常需要面对的问题,它在很大程度上决定了一个软件开发公司能不能做出好产品 ,并且是不是一种高效率的状态.下面就来简单对软件开发流程中的问题做些简单解析,方便开发者能够更加清晰开发中需要注意的事项,并找到符合自身的开发流程. 确定需要软件开发的思想来源是丰富的.这些想法可以来自市场研究,包括潜在新客户的人口统计,现有客户,产品的销售前景,其他内部软件开发人员或创意第三方.软件产品的想法通常首先由营销人员评估经济可行性,以适应现有渠道分布,对现有产品线可能产生的影响,所

软件开发流程

软件管理 1:指定详细的工作计划,把任务分下去. 2:分配任务的时候,验收时间点的确定. 人员 如何帮助开发人员有所进步提升 不要只站在自己的立场上要求开发什么时间点必须实现什么功能 软件开发 1:设计优先,把要做哪些东西,有什么要求都列出来,指定设计方案,评估设计方案是否可行 2:讨论设计方案,和测试,其他开发,项目经理等讨论方案是否有问题 3:编码 4:开发自己的测试,指定测试的案例,和分支,先通过自己这一关 5:测试人员测试,提出BUG,迭代设计,讨论,修改. 6:上线用户体验,提出问题,

软件开发技术基础复习要点

软件开发技术基础复习要点 1.生存周期: 指一个软件从提出开发要求开始,经过需求分析.设计.制造.调试.使用.维护,直到软件产品被淘汰为止的整个过程. 2.简述软件工程的基本原理: 用分阶段的生命周期计划严格管理: 坚持进行阶段评审: 实行严格的产品控制: 采纳现代程序设计技术: 结果应该能清楚地审查: 开发小组应小而精: 承认不断改进软件工程实践的必要性. 3.简述产生软件危机的原因和解决办法: 原因:开发软件所需的高成本与软件产品的低质量之间存在尖锐的矛盾,致使软件开发陷入循环之中,即研制软

软件开发流程选择

软件工程把这些相关的技术和过程统一到一个体系中,叫作"软件开发流程",软件开发流程的目的是为了提高软件开发.运营和维护的效率,以及提升用户满意度.软件可靠性和可维护性.        软件开发流程有:写了再改模式.瀑布模型.瀑布模型的各种变形.统 一流程.老板驱动的流程和渐进交付的流程.        在这些开发流程中,我比较支持瀑布模型的各种变形中的大瀑布带着小瀑布,这个对开发者的个人能力要求比较高,需要吧各个子系统统一到最后做系统测试,用户只有到最后才能看到结果,从一开始的需要一个

QT开发(二十三)——软件开发流程

QT开发(二十三)--软件开发流程 一.软件开发流程简介 软件开发流程是通过一系列步骤保证软件产品的顺利完成,是软件产品在生命周期内的管理学. 软件开发流程的本质是软件开发流程与具体技术无关,是开发团队必须遵守开的规则. 二.常见软件开发流程模型 常见的软件开发流程模型包括即兴模型.瀑布模型.增量模型.螺旋模型.敏捷模型. 1.即兴模型 即兴模型的特点: A.与用户交流后立即进行开发 B.没有需求分析和需求发掘过程 C.没有整体设计和规划 D.没有软件文档,可维护性差 2.瀑布模型 瀑布模型的特

团队模式与软件开发流程的选择

1.团队模式的选择 软件团队的模式有主治医师模式.明星模式.社区模式.业余剧团模式.秘密团队.特工团队.交响乐模式.爵士乐模式.功能团队模式.官僚模式. 我比较倾向于交响乐模式和功能团队模式.交响乐模式的主要特点是门类齐全,各司其职,有共同方向的.其优点是在开发过程中分工明确,大家可以术业有专攻,效率比较高.缺点是适用于某歌软件领域处于稳定成长的阶段,如果是在刚开始的时候可能会产生分歧. 功能团队模式的主要特点是:人人平等,没有管理与被管理的关系.优点是小组间交流比较频繁,不同能力的人可以平等协

软件开发流程的选择

软件开发流程的定义:我们在开发.运营.维护软件的过程中有很多技术.做法.习惯和思想.软件工程把这些相关的技术和过程统一到一个体系中,叫做"软件开发流程". 软件开发流程有:写了再改模式.瀑布模型.瀑布模型的各种变形(生鱼片模型.大瀑布带着小瀑布).统一流程(RUP).老板驱动的流程.渐进交付流程. 软件开发的目的:为了提高软件开发.运营和维护的效率,以及提高用户满意度.软件的可靠性和维护性. 我选择统一流程. 统一流程的步骤:业务建模:需求:分析和设计:实现:测试部署:配置和变更管理:

软件开发流程------阅读《构建之法》 第5.5 第6 第7章

软件开发流程中的瀑布模型,圆形,螺旋都是根据用户所需而设计的模型,我们也要根据他们的特征特点去实现我们我们想要的开发流程. 1.一些项目需要很多暗箱操作和政治角力才能搞定,既然Scrum会吧这些矛盾都摆到明处,我们如何才能把风险降到最低?出自6.42敏捷流程的经验教训. 2.我还是分不清敏捷开发和MSF敏捷开发根本性的区别是什么? 感悟:<构造之法>这本书,传授给我的是另一种触动的知识,或许你看了好几章了,你才有那么一两个问题,那是因为我觉得这本书已经走向大众了,即使没有那么专业的我们也能把它