软件开发生命周期-3-每个阶段的输入输出

2023-05-16

记录下一点自己的心得体会,分享给大家,有不足之处,望指教。

第一阶段:假想阶段

本阶段是整个软件开发的开始阶段,输入可以是为了提高工作效率的某个好的想法或者是公司领导为了帮助管理发出的命令。输出就是业务需求文档,英文称为Business Requirement Document。这个文档的文字描述的抽象层次很高,比如业务人员说我需要一个软件,能够实现无纸化办公,能够管理合同,管理客户信息,能够在登录时选择角色,选择显示语言,登录成功后自动列出登录人的当前要做的任务项,等等。这个文档主要来自业务人员,所以主要完成业务概念的描述。

第二阶段:需求开发阶段

本阶段的主要工作是基于业务需求文档进一步分析业务人员的真实需求,输入是假想阶段的业务需求文档,输出是功能说明文档,英文称为Funtion Specification。功能说明文档与业务需求文档的主要区别是业务需求文档主要描述业务概念,而功能说明描述的是信息技术概念,此文档的主要功能是完成从业务概念到信息技术概念的匹配和对齐,在保证实现业务人员真实想法的同时还要结合信息技术保证系统功能的逻辑合理性和优化性。可以说通常业务需求文档描述的一个点到这里都会扩展成为一个面。作者认为本阶段的工作至关重要,这个阶段的工作输出会直接影响到下面的设计阶段和实现阶段的工作。所以本阶段需要很多重要角色的参与,之前提到过的有软件产品设计师,软件开发架构师,软件开发负责人,软件测试负责人和业务负责人。这些角色要共同齐心合力完成一份高质量的功能说明文档。

第三阶段:设计阶段

本阶段的输入是功能说明文档,输出是软件架构设计文档,硬件架构设计文档,测试计划文档。这三份文档可以同时进行,值得一提的是软件架构设计和硬件架构设计通常是同时考虑完成的,没有绝对的谁先完成谁后完成,并且都可以再细分。硬件设计可以分为概要设计和详细设计,概要设计通常要描述出有几个环境,每个环境有几台服务器,使用的是虚拟服务器还是物理服务器,每个服务器的作用,分别在哪个级别的安全区域,防火墙分布,负载均衡设备的分布,数据库产品信息,是单实例还是集群;详细设计除了要描述出这些信息还要描述出每台服务器的硬件配置信息,地址,开放的端口,HTTP请求或者其他类型的请求的走向,是单方向还是双方向,每台服务器上运行的操作系统,应用服务器的产品信息和版本信息,防火墙的设置,负载均衡设备的设置,数据库实例名称,软件的所有组件在每个应用服务器上的分布信息等。

软件设计可以分为概要设计和详细设计,概要设计通常要描述出有几个主要组成部分,每个部分的存在形式和功能。举个简单的例子,有这样一个系统,它包括业务子系统,存储子系统,打印子系统,银行对接子系统,政府对接子系统;存在的形式可能是Java开发的独立系统,操作硬件设备的服务接口,外部机构官方提供的对外公开的Web Service接口,外部机构官方提供的对外公开的官网。详细设计通常要描述出各个子系统的对接形式,通信协议,权限控制。比如是基于TCP/IP协议的数据库层面的对接,还是基于TCP/IP协议的socket形式的对接,还是基于HTTP协议的web service形式的对接;当然如果对方的存在形式不容易实现对接可以在子系统内部做适当的转换处理,比如说对方是公开出来的网站。对于每个子系统的内部通常要描述出权限控制机制,系统的分解和集成机制,实现技术的组成;权限控制要结合具体的系统分析判断;系统的分解和集成通常要结合实现技术考虑,模块和层次的划分都有成熟的可供参考的原则和解决方案;值得一提的是展现层的设计,输出应该包括动态形式的原型系统和静态形式的文档,前者的重点是软件的行为定义,后者的重点是软件的业务逻辑定义;实现技术部分要把所有用到的运行时环境,编程语言,第三方类库描述清楚。作者不主张在这个阶段对类和成员的定义已经类之间的调用做出规定,这个层次的问题留给实现阶段来考虑。所以在本阶段作者更多地是关注架构模式和框架模式的考虑,对于设计模式的考虑则留给实现阶段。

测试计划分为功能测试计划,性能测试计划,安全测试计划。通常要描述出测试案例,测试环境的组建,测试工具,测试技术。每个测试的话题都可以作为一个专业的方向单独拿出来描述,限于篇幅,这里就不多说了。

第四阶段:实现阶段

如果设计阶段的工作做得足够充分,那么这个阶段的工作将变得容易得多。这个阶段的输入是设计文档。输出是源代码和构建出来的软件安装包。源代码的书写必须遵循统一的规范,必须遵循设计阶段定义的统一的架构,必须达到规定的安全标准,用合理的方式实现设计文档所设计的功能。

第五阶段:质量检查阶段

这个阶段的输入是准备测试的系统和测试案例。输出是缺陷记录和缺陷报告。

第六阶段:部署阶段

这个阶段的输入是可供部署的软件安装包和部署文档。输出是可供用户使用的业务系统,备份和恢复计划。

总结:

我们可以这样看待一个业务软件,对于一个业务软件有业务线,软件线,硬件线三条线,业务想法由软件来实现,软件需要运行在硬件上。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件开发生命周期-3-每个阶段的输入输出 的相关文章

随机推荐

  • cordova 打包步骤

    年底了 xff0c 好多资料都在整理 xff0c 为了避免遗忘 xff0c 也为了利益他人吧 直接上步骤吧 xff1a 增加运行环境的模板 cordova platform add android 编译android的程序 cordova
  • BlueROV-7: Keep Learning Dronekit

    The motors can spin now by using the following program from dronekit import connect VehicleMode import sys import time C
  • BlueROV-8: Functions to Drive the Vehicle

    Some functions like goto function or speed setting function are limited because they are GPS dependent GPS is not availa
  • BlueROV-9: Driving Control

    Home location http python dronekit io guide vehicle state and parameters html The Home location isset when a vehicle fir
  • 人工智能发展简史

    人工智能发展简史 第一章 xff1a 起步期 20世纪50年代及以前1 1 计算机象棋博弈 xff08 Programming a computer for playing chess xff09 1 2 图灵测试 xff08 Turing
  • 对角度滤波时0-360度跳变的解决办法

    对角度滤波的过程中会发现 xff0c 视觉direction方向会发生0 360的数值跳变 xff0c 为了解决这个问题 xff0c 需要将0和360度之间的间断点变成连续可导的函数 xff0c 经过摸索 xff0c 想出一个办法 xff0
  • 电机控制 龙伯格观测器 永磁同步电机无传感器控制 全C代码程序

    电机控制 龙伯格观测器 永磁同步电机无传感器控制 全C代码程序 成熟产品方案 DSP28335 xff08 1 xff09 全C程序完成由电机参数 电流微分方程构建dq轴误差模型 控制参数逻辑变换 低通滤波器转速滤波和转子角度积分等控制环节
  • ROS学习笔记-1: 构建工作空间-创建catkin包-编写发布器与订阅器

    1 ROS文件系统介绍 http wiki ros org cn ROS Tutorials NavigatingTheFilesystem 2 Installing catkin http wiki ros org catkin Inst
  • 信息安全重点知识

    一 信息安全概述 网络空间安全的重要性 xff1a 没有网络安全就没有国家安全信息安全 xff1a 防止数据未授权的访问 xff0c 数据有意和物一的威胁 网络安全是信息安全的子集 信息安全的三要素 xff08 CIA xff09 xff1
  • 海天注塑机KEBA系统数据采集

    本文章只针对海天注塑机的KEBA系统 xff0c 因为其他注塑机厂家也用KEBA系统 xff0c 他们的采集方式可能不太一样 xff0c 所以后续有时间我将写其他文章来解释 xff08 默认你已经向海天采购了OPC组件 xff09 一 采集
  • Axure基础:事件和动态面板

    这一篇文章我们主要是将如何做系统左侧的导航 xff0c 并且告诉大家如何动态的切换各个页面 一 事件 1 事件基础 事件的核心就是什么时候做什么事 其中的什么时候可以是如下 xff1a 能做的事情如下 xff1a 2 远程监控云中的事件 监
  • 设备联网调试三板斧

    在实际的工业互联网项目中 xff0c 设备联网所占的比重越来越大 有的一期项目为了简单快速上线 xff0c 让客户直观体会到工业互联网的效果 xff0c 直接会把设备联网放在一期项目的重点 那么在做此类项目时 xff0c 设备联网调试就显得
  • 光立方完全解析

    转载请注明出处 xff1a http blog csdn net ruoyunliufeng article details 37903899 这个4 4 4的三色光立方是我在初学单片机的时候做的一个小项目 很适合给初学单片机和C语言的同学
  • 远程视频监控之应用篇(mjpg-streamer)

    转载请注明出处 xff1a http blog csdn net ruoyunliufeng article details 38515311 这篇文章将主要结合源码介绍mjpg streamer xff0c 使小伙伴们了解视频监控的实现
  • Matplotlib 入门(三):多图合并

    一 多合一显示 1 subplot方法 xff1a 设置行 列和起始点 plt subplot 2 1 1 分成两行一列 xff0c 起始点为1 2 代码 coding utf 8 34 34 34 Created on Sun Sep 2
  • python毫秒级延时

    一 毫秒延时 近期有一个ms级别延时的需求 xff0c 实际测试了一下 xff0c 环境 xff1a win7 64位 xff0c python2 7 13 结果 xff1a 毫秒级别的延时是能够支持的 xff0c 微妙是不支持的 二 de
  • 数据分析之乳腺癌预测

    零 定义问题 1 1 数据介绍 http archive ics uci edu ml machine learning databases breast cancer wisconsin breast cancer wisconsin n
  • px4通过mavros+wifi+板载计算机连接地面站

    px4通过mavros 43 wifi 43 板载计算机连接地面站 https blog csdn net zouxu634866 article details 106835967
  • 关于mongodb占用内存过大的问题

    一 现象 最近发现自己服务器内存越来越少 xff0c 查了一下原来是部署的mongodb使用内存在线性增加 不查不知道 xff0c 一查吓一跳 xff0c 竟然占用了3G的内存 二 分析 1 内存增加的原因 mongo为了优化他的读写效率
  • 软件开发生命周期-3-每个阶段的输入输出

    记录下一点自己的心得体会 xff0c 分享给大家 xff0c 有不足之处 xff0c 望指教 第一阶段 xff1a 假想阶段 本阶段是整个软件开发的开始阶段 xff0c 输入可以是为了提高工作效率的某个好的想法或者是公司领导为了帮助管理发出