软件工程笔记001

2023年9月5日,周二上午


软件工程的目标

软件工程的目标是成功地开发一个软件:

  • 较低的开发成本
  • 能按时交付软件
  • 开发出来的软件该有的功能都有
  • 开发出来的软件运行效率高
  • 开发出来的软件可靠性高
  • 开发出来的软件易于维护

软件的生存周期

概念

软件生存周期是指软件从提出开发到报废的过程。

比如,疫情时期的健康码,在疫情初期提出开发,在疫情中后期使用,在疫情结束后就消失了。

生存周期的各个阶段

通常包括以下主要过程:

需求分析:在这个阶段,软件团队与客户进行沟通,了解客户的需求和期望。通过需求分析,确定开发软件的功能、性能和约束条件。

设计阶段:在这个阶段,根据需求分析的结果,制定软件的整体架构和详细设计方案。包括确定软件的模块划分、数据结构和算法设计,以及用户界面设计等。

开发阶段:在这个阶段,根据设计阶段的方案,进行编码和程序开发。开发人员使用编程语言和开发工具实现软件的各个模块,并进行单元测试来验证功能的正确性。

测试阶段:在这个阶段,对软件进行系统测试,验证软件是否满足需求规格和设计要求。测试人员会执行各种测试用例,包括功能测试、性能测试、兼容性测试等,以发现和修复软件中的缺陷。

部署和维护阶段:在这个阶段,将软件部署到目标环境中,并提供维护和支持。这包括软件的安装、配置、数据迁移等工作,以及对软件进行错误修复、性能优化和功能扩展等。

报废:这个阶段是我自己加的。在这个阶段软件不再被人维护和使用,甚至是消失。比如,游戏的停服;再比如,再也找不到微信小程序健康码的入口。

此外,软件的生命周期并不是线性的,而是可以循环迭代的

生存周期模型

(在这里先作概述,以后有空会在CSDN上更新这些模型的具体内容)

在软件开发领域,常用的软件生命周期模型包括以下几种:

瀑布模型:瀑布模型是经典的生命周期模型,采用线性、顺序的方式组织软件开发过程,包括需求分析、设计、编码、测试和部署等阶段。

增量模型:增量模型将软件开发过程划分为多个增量,每个增量都是一个可交付的功能子集,通过逐步增加功能的方式逐渐构建完整的软件系统。

喷泉模型:喷泉模型是一种迭代的生命周期模型,通过不断迭代的方式进行软件开发,每个迭代周期包括需求分析、设计、编码、测试和部署等阶段。

原型模型:原型模型通过快速创建软件原型来帮助澄清需求和验证设计,然后根据反馈进行修改和迭代,最终构建出最终的软件系统。

敏捷模型:敏捷模型是一种基于迭代和增量开发的模型,强调团队合作、快速交付和持续改进,如Scrum、XP等。

螺旋模型:螺旋模型是一种风险驱动的模型,通过不断循环的迭代过程,将风险管理融入到软件开发过程中,以降低风险并逐步构建完整的软件系统。

以上是常见的几种软件生命周期模型,每种模型都有其适用的场景和优缺点,开发团队可以根据项目的需求和特点选择合适的模型。

软件开发方法

包括但不限于以下这些方法:

  • 结构化方法
  • 面向对象的开发方法
相关推荐
摇滚侠30 分钟前
2025最新 SpringCloud 教程,编写微服务 API,笔记08
笔记·spring cloud·微服务
我的老子姓彭2 小时前
N32WB蓝牙芯片开发
笔记
历程里程碑3 小时前
各种排序法大全
c语言·数据结构·笔记·算法·排序算法
hd51cc3 小时前
MFC多线程学习笔记三:线程间的通信
笔记·学习
hd51cc3 小时前
MFC多线程学习笔记四:线程间的同步
笔记·学习·mfc
星空的资源小屋3 小时前
VNote:程序员必备Markdown笔记神器
javascript·人工智能·笔记·django
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [block]bfq-iosched
linux·笔记·学习
摇滚侠4 小时前
Vue 项目实战《尚医通》,实名认证模块静态的搭建,笔记53
vue.js·笔记
FFF团团员9094 小时前
树莓派学习笔记4:终端常用指令
笔记·学习
Radan小哥4 小时前
Docker学习笔记—day008
笔记·学习·docker