软件的生命周期和需求

什么是软件的生命周期?

定义(描述) --> 创建 --> 使用 --> 销毁 (这一整个过程就是事物的生命周期)

生命周期

那么软件的生命周期又分为哪些呢?

一共分为十步:

  1. 可行性研究: 通过分析软件开发要求,确定软件项目的性质、目标和规模,得出可行性研究报告,如果可行性研究报告是可行的,就要制定详细的项目开发计划.此时交付的结果就是可行性研究报告(经济可行性+技术可行性)

  2. 需求分析: 是软件生命周期中重要的也是决定性的一步,通过需求分析才能把软件功能和性能的总体概念描述为具体的软件需求规格说明书,为软件开发奠定基础,此时交付的结果就是软件需求规格说明书(指导设计+开发+测试+交付+运维)

  3. 概要设计: 根据软件需求规格说明建立软件系统的总体结构和模块之间的关系,定义各功能模块接口,设计全局数据库或者数据结构,规定设计约束,制定组装测试计划

  4. 详细设计: 将各模块要实现的功能用相应的设计工具详细的描述出来,具体的数据流程

  5. 实现: 程序员根据设计文档将详细设计转换为程序,写出易理解和易维护的程序模块.并完成单元测试

  6. 组装测试: 又名集成测试.将通过单元测试的模块组装起来进行测试

  7. 确认测试: 测试系统是否达到了系统需求,由用户在说明书规定的范围内对系统进行验收.在特定情况下还可以通过现场测试来对系统进行进一步测试

  8. 使用: 测试通过之后,由用户下载对应软件,同时维护人员也需要定期查找软件漏洞并进行即时反馈和修复

  9. 维护: 进行一些日常维护来保证系统能够稳定运行以满足用户的需求

  10. 停止使用: 停止使用软件,终止为软件的维护

 

需求分析

分类

  1. 业务需求: 客户或企业对系统的目标需求

  2. 用户需求: 用户的具体目标,用户要求系统需要完成的任务或必须要实现的功能

  3. 设计需求:从系统角度来说明软件的需求,包括功能需求、非功能需求和设计约束等

功能/非功能需求: 系统必须实现的功能/质量、可维护性、效率等

获取方式

用户和开发人员进行沟通

  1. 用户访谈

  2. 问卷调查

  3. 采样

  4. 情节串联板

工作内容

获取需求之后,就会进行需求分析工作,最终形成一个软件需求规格说明书(需求文档)

  1. 绘制系统上下文范围关系图

  2. 创建用户界面原型

  3. 分析需求的可行性

  4. 确定需求的优先级

  5. 为需求建立模型

  6. 创建数据字典

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QGIS如何下载高程数据

一、准备工作 安装QGIS软件 访问QGIS官网下载最新版本,选择适合操作系统的安装包(如Windows 64位)完成安装。建议使用3.28及以上版本以获得完整功能支持。 注册数据平台账号 NASA EarthData账号:访问EarthData登录页面注册,用于SRTM数据下载。地理空间数据云账号:访问www…

【linux学习指南】线程同步与互斥

文章目录 📝线程互斥🌠 库函数strncpy🌉进程线程间的互斥相关背景概念🌉互斥量mutex 🌠线程同步🌉条件变量🌉同步概念与竞态条件🌉 条件变量函数 🚩总结 📝线…

MySQL索引优化,性能飙升的秘密!

0.前言 假设你经营一家电商平台,某天用户突然投诉商品搜索加载时间超过10秒。技术团队紧急排查,发现一条原本执行0.1秒的查询语句,在百万级数据量下竟变成了全表扫描。这时,数据库索引犹如深夜急诊室里的救命仪器——它的存在与否…

基于STM32、HAL库、HS12864(ST7920,并行接口)C语言程序设计

1、hs12864.h头文件: #ifndef __HS12864_H #define __HS12864_H #ifdef __cplusplus extern "C" {#endif #include "stm32l4xx_hal.h" // 控制线定义 - 根据实际硬件修改 #define HS12864_RS_GPIO_PORT GPIOC #define HS12864_RS_PIN GPIO_PI…

【C语言】C语言 实践课题选题系统(源码+报告+数据文件)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 系C语言 实践课题选题系统(源码报告数据…

基于SpringBoot的“高考志愿智能推荐系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“高考志愿智能推荐系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 系统首页界面 系统注册页…

React 低代码项目:组件设计

React 低代码项目:组件设计 Date: February 6, 2025 React表单组件 **目标:**使用 Ant Design 表单组件,开发登录、注册、搜索功能 内容: 使用 React 表单组件、受控组件使用 Ant Design 表单组件使用 表单组件的校验和错误提…

深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石

深入剖析 Vue 的响应式原理:构建高效 Web 应用的基石 在前端开发的广阔天地里,Vue.js 凭借其简洁易用的特性和强大的功能,成为众多开发者的心头好。其中,响应式原理作为 Vue 的核心亮点之一,让数据与视图之间实现了高…

QCustomplot库运用

最近需要用到这个库显示数据,需要在一个曲线图4个Y轴共用一个X轴,并且做游标,跟随鼠标移动,并且实时反馈数据到表格中。记录一下程序。 customPlot new QCustomPlot(this); customPlot->setBackground(QBrush(QColor(204,204,…

STM32 串口 (DMA + 空闲中断 + 环形缓冲区)

STM32 串口 (DMA 空闲中断 环形缓冲区) 1. 基本概念 UART 空闲中断(IDLE): 当串口 RX 线上 连续一段时间没有数据接收,USART 外设触发 空闲中断。空闲中断的主要作用是通知数据传输完成或当前帧结束。 D…

股指期货是什么?股指期货日内拐点有什么特征?

股指期货是一种金融衍生品,股指期货日内拐点就是在一天交易过程中,市场走势发生显著改变的那个点。 股指期货是什么? 股指是一个指数,比如上证50指数、沪深300指数、中证500指数以及中证1000指数,这是一堆股票的一个整…

Opensearch/ElasticSearch-ctx查询内容不全的问题

问题 在OpenSearch中,我希望在action中把一整条log作为报警内容发送出来,但是根据文档,配置为ctx.results.0.hits.hits.0._source.log,但是发现根本找不到这个值 经过查询,我发现在返回的ctx中仅存在如下的值 resul…

vue2和vue3插槽slot最通俗易懂的区别理解

在 Vue 的组件通信中,slot(插槽)的编译优化是一个重要的性能提升点。以下是 Vue2 和 Vue3 在 slot 处理上的差异及优化原理,用更直观的方式解释: Vue2 的 Slot 更新机制 想象一个父子组件场景: 父组件&am…

【16届蓝桥杯寒假刷题营】第1期DAY4

1.披萨和西蓝花 - 蓝桥云课 1. 披萨和西蓝花 问题描述 在接下来的 N 天里(编号从 1 到 N),坤坤计划烹饪披萨或西兰花。他写下一个长度为 N 的字符串 A,对于每个有效的 i,如果字符 Ai 是 1,那么他将在第 i…

你需要了解的远程登录协议——Telnet

你需要了解的远程登录协议——Telnet 一. 什么是Telnet?二. Telnet的优缺点三. Telnet vs SSH:哪一个更适合?四. Telnet的应用场景 前言 点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神…

本地部署【LLM-deepseek】大模型 ollama+deepseek/conda(python)+openwebui/docker+openwebui

通过ollama本地部署deepseek 总共两步 1.模型部署 2.[web页面] 参考官网 ollama:模型部署 https://ollama.com/ open-webui:web页面 https://github.com/open-webui/open-webui 设备参考 Mac M 芯片 windows未知 蒸馏模型版本:deepseek-r1:14b 运行情况macminim2 24256 本地…

PHP在线题库小程序

📚 在线题库小程序:学习提分新神器,轻松跃升学霸行列 这是一款专为追梦学子精心策划、基于ThinkPHPUniApp框架匠心打造的在线题库类微信小程序系统。它宛如一把✨智慧钥匙✨,为追求高效学习的你解锁🔓知识宝库的大门。…

Java开发中的连接池技术介绍

连接池技术是Java开发中用于管理数据库连接的重要技术,尤其在SSM(Spring、Spring MVC、MyBatis)架构中,连接池能够显著提升数据库操作的性能和资源利用率。下面我们将详细介绍连接池技术解决的问题、配置方案以及代码实现。 1. 连…

Unity-Mirror网络框架-从入门到精通之Pong示例

文章目录 前言示例介绍NetworkManagerPongBallPlayer总结前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计…

布隆过滤器到底是什么东西?它有什么用

布隆过滤器:用概率换空间的奇妙数据结构 引言:当空间成为奢侈品 在互联网每天产生2.5万亿字节数据的时代,Google每秒处理超过9万次搜索请求,Redis缓存系统支撑着百万级QPS的访问。面对如此海量的数据处理需求,传统的…