2015-08-24

软件需求定义

( 1 )功能需求:是指系统必须完成的那些事,即为了向它的用户提供有用的功能,产品必须执行的动作。

( 2 )非功能需求:是指产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性、扩展性等。

( 3 )设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明’例如必须采用国有自主知识版权的数据库系统,必须运行在UNIX操作系统之下等。另外,在大量与需求相关的书籍、文章中有一些诸如业务需求

另外可验证性是需求的最基本特性

需求工程

需求工程师一个包括创建和维护系统需求文档所必需的一切活动的过程,通常包括需求开发和需求管理两大工作

1 需求开发:包括需求捕获、需求分析、编写规格说明书和需求验证四个阶段。

2 需求管理:包括定义需求基线、处理需求变更、需求跟踪等方面的工作。

软件过程管理:软件过程(Software process)是人们建立、维护和演化软件产品整个过程中所有技术活动和管理活动的集合。软件工程管理集成了过程管理和项目管理,包括但不仅限于启动和范围定义、软件项目计划、项目实施、评审和评价,收尾及软件工程度量等

软件设计原则:

1 信息隐蔽

2 高内聚、低耦合

设计评审---在开发时期的每个阶段,特别是设计阶段结束时都要进行严格的技术评审,尽量不让错误传到下一个阶段。设计评审一遍采用评审会议的形式来进行。

应尽早地和不断地进行软件测试,系统测试应尽可能在实际运行使用环境下进行 ;测试用例应当由测试输入数据和对应的预期输出结果这两部分组成;程序员应避免检查自己的程序;在设计测试用例时,应包括合理的输入条件和不合理的输入条件;充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中己发现的错误数目成正比。严格执行测试计划,排除测试的随意性;应当对每一个测试结果做全面检查;妥善保存测试计划、测试用例、出错统计和最终分析报告,为软件维护提供方便。软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计,以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明,以及源程序,都应成为软件测试的对象

测试不再只是一种仅在编码阶段完成后才开始的活动。现在的软件测试被认为是一种应该包括在整个开发和维护过程中的活动,他本是是实际产品构造的一个重要部分。

软件维护分类

纠错型维护、适应性维护、预防性维护、完善性维护

尽管经过严格的测试,但并不能保证软件中彻底没有错误,随着运行时间的延续,

数据量的积累,各种应用环境的变化,错误仍会顽固地暴露出来,此时就要进行纠错型

维护。

伴随着计算机硬件的新产品、操作系统的新版本的不断推出,正在运行的软件必须

进行适应型维护。

用户逐渐熟悉软件以后,会提出一些改进需求,为了满足这些需求,必须进行完善

型维护,这样的维护几乎占到维护工作量的一半以上。比如,打印格式的调整、统计口

径的增加、业务流程的完善等。

以上三种维护都是用户驱动的,用户是维护需求的提出者,而开发商“为了明天的

需要,把今天的方法应用到昨天的系统中”,目的是为了使旧系统焕发新活力,这样的

维护是预防型维护,这种维护所占的比例很小,因为它耗资巨大。

SRS:软件需求规格说明书

时间: 2024-07-31 14:32:42

2015-08-24的相关文章

dockone上2015.08 Docker有价值文章

Docker入门与基础 [1] Docker入门实战, http://yuedu.baidu.com/ebook/d817967416fc700abb68fca1 [2] 什么是Docker?刘梦馨, 28 Jun 2014, http://oilbeater.com/docker/2014/06/28/what-is-docker.html [3] 访谈 | Docker公司首席布道师谈容器和下一代虚拟化, http://dockone.io/article/590 [4] 两年之后,再思考D

Storm(2015.08.12笔记)

2015.08.12Storm ? 一.Storm简介 Storm是Twitter开源的一个类似于Hadoop的实时数据处理框架. ? Storm能实现高频数据和大规模数据的实时处理. 官网资料显示storm的一个节点在1秒钟能够处理100万个100字节的消息([email protected]的CPU,24GB的内存) (storm +kafka+flume) ? ? 二.HADOOP与STORM比较 数据来源:HADOOP处理的是HDFS上TB级别的数据(历史数据),STORM是处理的是实时

我关注的一周技术动态2015.08.17

服务化和资源管理技术 1. Kubernetes技术分析之存储 http://dockone.io/article/556 要点: 众所周知,使用Docker的时候,容器中的数据是临时,即当容器销毁时,其中的数据时丢失.如果需要持久化数据,需要使用Docker Volume挂载宿主机上的文件目录到容器中.本文介绍了 kubernetes 支持的几种存储系统. 2. Docker 1.8:可信镜像.Toolbox.Registry 以及编排工具大更新 http://dockone.io/artic

我关注的一周技术动态 2015.08.30

服务化和资源管理技术 1. Docker基础技术:AUFS http://coolshell.cn/articles/17061.html 要点: 支持层次化镜像是 docker 的一大创新之一, 本文详细介绍了实现层次化镜像的技术手段之一 aufs 的使用方法, 读完之后你就会理解docker层次化镜像的奥秘了. 2. Docker基础技术:DeviceMapper http://coolshell.cn/articles/17200.html 要点: devicemapper 是支持 doc

【转换博客通知】(本博客2015.08.02停用)

2015.08.02 本博客停用,搬运至 http://tonyfang.is-programmer.com/ 感谢各位对我的支持!

周五(2015.7.24)学习内容

周五(2015.7.24)学习内容 一.变量 1.变量就是一块空间 2.变量三要素:数据类型 变量名 变量值 3.由于电脑记录位置的时候不是很好找(0x0156892321)变量名(num). 二.数据类型 八大数据类型:1.数值型:整数类型(byte,short,int,long);浮点类型(float,double);2.非数值型:字符型(char);布尔型boolean(true/false). 注: String类型不是基本数据类型,而是引用数据类型,它是Java提供的一个类. 三.命名

MFC双缓冲绘图(2015.09.24)

问题引入: 最近在尝试编写贪吃蛇游戏时遇到这么一个问题:当系统以较快频率向窗口发送WM_PAINT消息时,调用OnPaint()函数在窗口中绘制图形就会发生闪烁现象. 问题分析: 当我们把绘图过程放在OnPaint()函数中时(放在OnDraw()函数中也是如此,因为OnDraw()会被OnPaint()调用),由于频繁收到系统的WM_PAINT消息,窗口需要执行重绘.而重绘过程首先是执行了窗口内容的擦除(用当前背景色的画刷对窗口重新绘制),然后再根据绘图语句在窗口客户区中对窗口内容进行重绘.由

JAVASE-多线程学习-2015.5.24

同步函数使用的锁是this: 同步函数和同步代码块的区别: 同步函数的锁是固定的this. 同步代码块的锁是任意的对象. 建议使用同步代码块. 静态的同步函数使用的锁是该函数所属字节码文件对象, 可以用getClass方法获取也可以用当前类名.class表示. 单例设计模式所涉及的多线程问题(关于单例模式的介绍http://blog.csdn.net/jason0539/article/details/23297037介绍的比较详细) 饿汉式单例模式不存在多线程安全问题 而懒汉式单例模式则会出现

2015.08.23 阿里在线笔试

笔试职位:云计算支持 选择题: 数学非常多 链表插入,进程死锁,模式匹配,面向对象,树/二叉树 附加题: 1. 用Shell编程,实现 (1) 查找所有24小时内修改过的>200MB,<400MB的程序,并打包在一起 (2) 每两小时执行一次 2. Tracert的工作原理:路由跟踪过程中会有网络拥塞,为什么还能及时到达目的地 3. 查询表Tab1中的倒数第二小的元素,不能使用top等语句

Murano Weekly Meeting 2015.08.18

Meeting time: 2015.August.18th 1:00~2:00 Chairperson:  Nikolay Starodubtsev, from Mirantis Meeting summary: 1.Migrating to yaql 1.0 status.    PIC:       Stan Lagun    Status:   The Community decided to fix legacy mode function in yaql. Because the l