软件工程笔记001

2023年9月5日,周二上午


软件工程的目标

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

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

软件的生存周期

概念

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

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

生存周期的各个阶段

通常包括以下主要过程:

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

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

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

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

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

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

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

生存周期模型

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

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

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

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

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

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

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

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

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

软件开发方法

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

  • 结构化方法
  • 面向对象的开发方法
相关推荐
蒸蒸yyyyzwd7 小时前
AI应用相关可能的面试问题
笔记
叼烟扛炮8 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
蒸蒸yyyyzwd8 小时前
学习笔记 八股手撕
笔记·学习
揣一尾游鱼yu10 小时前
Spring上(IOC)笔记
java·笔记·spring·ioc
小李不想当小白11 小时前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
瑞码空间13 小时前
JSP与Servlet核心开发与CRUD实战笔记
java·笔记·servlet·jsp
La Pulga14 小时前
【FreeRTOS源码学习笔记】链表的实现
数据结构·笔记·stm32·mcu·链表·嵌入式·freertos
lifallen16 小时前
ub-mode skill:软件工程原则
人工智能·学习·ai·软件工程·ai编程
wuyoutrans16 小时前
以色列专利OA答复翻译,重点要避开哪些坑?
笔记
宝绿特塑业再生科技16 小时前
HDPE再生颗粒户外家具表面粉化机理与改性技术全解析
笔记·户外家具·再生塑料·塑木桌椅