软件开发的生命周期描述

软件项目的生命周期:

项目计划

需求分析

设计(概要设计和详细设计)

编码

测试

发布

维护

项目计划阶段:走访客户,进行交流沟通,获得客户原始需求。

对客户的需求和市场等进行调研,分析,编写可行性分析报告。

通过不断的与客户沟通,找客户不同环节的用户进行交流来获取需求。召开评审会议,报告可行性分析,报告用户原始需求,报告项目远景规化。

需求分析阶段:

在客户原始需求的基础上不断与客户沟通,充分的熟悉和深入客户业务,获得充分的业务需求,完善用户需求和功能性需求,了解客户的相关约束而获得非功能性需求。最终编写《需求规格说明书》;召开需求评审会议,客户确定需求,并签定合同;编写项目计划说明书;编写测试计划;召开项目启动会议,项目正式启动。

概要设计阶段:根据《需求分析说明书》,进行用例分析,获得充分而有效的用例。编写界面原型,编写编码规范和界面风格规范,数据库设计规范。用uml工具画用例图,编写有效的用例规约文档。划分项目功能模块.评审用例及用例规约文档。

详细设计阶段:根据完整的用例及需求进行分析,获得数据库所需的相关信息,画数据库E-R图,编写数据设计说明书.进行数据库建模。进行详细的分析,用uml工具画类图,确定每个功能模块的子功能,抽取项目的公共部分成为一个公共模块。确定项目的架构基础。确定需要用到的类及类成员和方法。确定一些辅助类及方法。对每一个用例都用uml工具画出顺序图。编写详细设计说明书,评审详细设计说明书, 进行基础框架搭建。列出任务清单,进行任务分配。

编码阶段:以小组的形式进行代码编写,编写单元测试用例,每完成一个类都要进行单元测试。每完成一个功能点和模块都要进行集成测试。确保每一个功能点和模块完成后都是一个可以看得见、摸得着的产品。而不是等到最后才进行统一的调试和搭配。每天都要对代码进行检查和优化,也就是所谓的重构。

测试阶段:根据测试计划对项目进行系统测试,以及用户的验收测试

产品发布:交付完整的产品和设计文档。把产品布署到客户的计算机上,确保产品的正常运行。客户签收。

维护阶段:为客户提供技术保障,对产品进行相应的维护和升级工作

软件常见开发模型

瀑布模型:最经典的过程模型,适用于需求明确,规模较小的项目

喷泉模型:迭代,无间隙特点,适用于面向对象的软件开发过程

螺旋模型:

MSF模型:微软解决方案过程模型

什么是极限(XP)编程:极限编程是对敏捷软件开发方法的一种实现。它强调测试先行,也就是在编写代码的时候先编写测试用例;循环迭代,每一次迭代都是一个可用的产品;重构,不断的对代码进行优化;结对编程,两个人为一对共同进行代码编写;它强调团队之间的知识传播,让团队的每个人都能熟悉软件开发的各种技术。如:支持熟悉数据库的人去做界面,做界面的人去做数据库等,通过不定期的角色转换来增强团队的能力。要求客户参与到软件开发中来,开发出最适合客户需求的产品。

单元测试一般是在编码的时候同步进行的,一般是以类为单位进行测试,当一个类完成了编码,并编译正确后才进行的测试,测试这个类是否已经能够实现指定的功能。一个类能够正常的编译成功并不意味着这个类就已经完成了,还要通过测试,设置断言来确定他是否已经达到了预期的效果,实现了特定的功能。调试,编译通过只能证明代码的语法没有错误。

单元测试由程序员自己来进行,也可以在项目小组内交互进行。单元测试是采用白盒测试

集成测试一般指实现了一个功能点或一个模块后,为了测试这个模块是否已经实现了需求要求的功能。集成测试可能需要对多个类进行组装,也可能需要与以前已经测试通过的模块进行组装,是对产品组件的系统整合和执行。集成测试可以根据模块的大小分不同的级别,在现行的软件开发中,每完成一个功能模块都必须要进行一次集成测试,使得你完成的模块是一个可以运行的产品。集成测试一般可以由项目小组的负责人(或指定一个小组成员)来完成。集成测试采用白盒式测试和黑盒测试

系统测试一般指项完代码已经全部完成,交给测试小组来进行测试。进行系统测试的人员独立于开发小组,系统测试人员把完成的产品布署在相应的计算机环境中,按照测试计划进行测试,验证系统是否满足了指定的需求。系统测试除了测试产品应满足基本的功能需求外,还要对产品的性能,用户界面,安全性,压力,可靠性,安装和反安装等几个方面进行测试

系统测试采用黑盒测试

验收测试一般指产品交付给客户,负责把产品布署在指定的计算机环境中。由用户根据需求文档,进行的总体测试。验收测试的内容和系统测试一样,只是执行者不同。都是除了测试系统完成基本功能外还要对性能,安全性,可靠性等进行测试。验收测试也是采用黑盒测试

阅读(0)评论(0) | 编辑 |删除 |推送 |置顶

转载于:https://www.cnblogs.com/hui1107464497/p/4502174.html

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

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

相关文章

PHP、C#、通用的DES加密

2019独角兽企业重金招聘Python工程师标准>>> PHP class JoDES {private static $_instance NULL;/*** return JoDES*/public static function share() {if (is_null(self::$_instance)) {self::$_instance new JoDES();}return self::$_instance;}/*** 加密* para…

如何防止头文件被重复包含或引用?

一、#pragma once ( 比较常用) 只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在VC6中就已经有了,但是考虑到兼容性并没有太多的使用。 #pragmaonce是编译相关,就是说这个编译系统上能用&#xff…

PHP 如何判断当前用户已在别处登录

主要思路:1.登录时,将用户的SessionID记录下来2.验证登录时,将记录的该用户SessionID与当前SessionID匹配3.如果不相同,说明在别处登录 出处:http://bbs.lampbrother.net/read-htm-tid-121909-ds-1.html#tpc转载于:htt…

如何解决类模板的分离编译问题?

一模板: 模板不是数据类型,只能算是一种行为集合的表示。编译器在使用模板时,通过更换模板参数来创建数据类型。这个过程就是模板实例化(Instantiation), 从模板类创建得到的类型称之为特例(specialization),说白了就是…

结对项目 刘静 201303014059 计科高职13-2

结对:人:孙帅 博客地址: http://www.cnblogs.com/s3366181/p/4509260.html一、 题目简介 1.所选题目:输出圆的面积 2.编程工具:Eclipse 3、实现功能:用户给定一圆的半径运行程序系统会给出给定半径圆的面…

弹出div或者弹出新窗口的固定位置、固定大小

2019独角兽企业重金招聘Python工程师标准>>> js代码: //打开一个新窗口,固定的位置,固定的大小 //window.open("push_add.html",newwindow, height550, width1000, top200, left500, toolbarno, menubarno, scro…

Unix_03_文件系统介绍_2

目录命令:1 显示目录路径名: pwd (print working directory)login:cnyxj [return]...................................输入登录名(cnyxj)password.................................................. 输入口令Welcome to UNIX!$pwd [return] ................…

NAT(网络地址转换)技术与代理服务器原理

一、 Nat技术: NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force,Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Prot…

apache mod_xsendfile提高php文件下载速度的方法

说明&#xff1a;在apache服务器中提供一个文件下载&#xff0c;一般使用一个url指向服务器中的文件即可提供下载。缺点&#xff1a;不能进行统计&#xff0c;权限检测等操作。 1&#xff0c;一般使用php提供下载&#xff0c;例如&#xff1a; 复制代码代码示例:<?php $f…

原 Linux搭建SVN 服务器2

原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55) 阅读&#xff08;12257&#xff09; | 评论&#xff08;3&#xff09; 31人收藏此文章, 我要收藏赞3摘要 Linux搭建SVN 服务器目录[-] Linux搭建SVN 服务器1 安装SVN2 使用客户端连接2.1 使用…

网络层核心:路由和路由生成算法

一、路由和路由算法简介&#xff1a; 路由就是通过互连的网络把信息从源地址传送到目的地址的活动。路由发生在OSI网络参考模型的第三层即网络层。 路由引导封包转送&#xff0c;经过一些中间的节点后&#xff0c;到达目的地。把该功能做成硬件的话称为路由器。路由通常根据路…

LeetCode--Sum Root to Leaf Numbers

题目&#xff1a; Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3 which represents the number 123. Find the total sum of all root-to-leaf numbers. For ex…

在树莓派2上折腾kali2.0小记(1)

在树莓派2上折腾kali2.0小记&#xff08;1&#xff09;本文主要是对自己在树莓派2上折腾kali2.0过程的一个记录&#xff0c;主要面向初学者&#xff0c;欢迎各位大神赐教。很久之前就听说过树莓派大名&#xff0c;刚好今年发布2.0版本&#xff0c;而且刚好最近有空&#xff0c;…

网络:常见的端口号及分类

一、端口号概念 在网络技术中&#xff0c;端口&#xff08;Port&#xff09;包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口&#xff0c;如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口&#xff0c; 如RJ-45端口、SC端口等等。逻辑端口…

EditPlus 技巧大全:[1]怎么配置PHP编译环境

editplus是一款小巧但功能强大易扩展的文本编辑器&#xff0c;可以通过设置用户工具将其作为C,Java,Php等等语言的一个简单的IDE。 工具/原料 EditPlus v3.3.1 php 5.3.14 方法/步骤 1.打开editplus 2.点击菜单栏“工具” 3.选择下拉菜单的“配置用户工具”&#xff0c;进入配置…

grub加密

grub加密有明文加密码和密文加密命令&#xff1a;grub-md5-crypt[rootlnmp01 rc.d]# grub-md5-crypt Password: Retype password: $1$p9Y9a$Id5hMpbsHLNZFs0gPbRRI.密码加密后密文&#xff1a;$1$p9Y9a$Id5hMpbsHLNZFs0gPbRRI.配置/boot/grub/grub.…

网络:传输层 TCP报文格式解析

一、TCP报文格式 1、为了提供可靠的数据传输&#xff0c;TCP报文首部字段有较多的字段&#xff0c;TCP报文格式如下图&#xff1a; 图2 TCP报文格式 16位源和目标端口&#xff08;16位&#xff09;&#xff1a;用于多路复用/多路分解来自或送至上层应用的数据&#xff0c;可以…

sigsuspend sigprocmask函数的用法

一个进程的信号屏蔽字规定了当前堵塞而不能递送给该进程的信号集。调用函数sigprocmask能够检測或更改其信号屏蔽字&#xff0c;或者在一个步骤中同一时候运行这两个操作。 #include <signal.h> int sigprocmask( int how, const sigset_t *restrict set, sigset_t *rest…

MATLAB图像小波变换

为什么80%的码农都做不了架构师&#xff1f;>>> 小波变换与小波包变换 人脸图像f(x,y) 的一层小波变换如下图所示&#xff1a; 图中L 和H 分别表示低通滤波器和高通滤波器&#xff0c;l(n) 和h(n) 分别表示它们相应的脉冲响应&#xff0c;2↓1表示降2采样fLL和fHH分…

网络:TCP维护安全可靠机制提供的定时器

一、TCP为维护安全可靠机制提供了七大定时器 1、连接建立(connectionestablishment)”定时器&#xff1a; 在发送SYN报文段建立一条新连接时启动。如果在75秒内没有收到响应&#xff0c;连接建立将中止。 2、重传(retransmission)定时器&#xff1a; 在TCP发送某个数据段时设定…