软件开发文档 模板.docx
- 文档编号:9975481
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:43
- 大小:343.89KB
软件开发文档 模板.docx
《软件开发文档 模板.docx》由会员分享,可在线阅读,更多相关《软件开发文档 模板.docx(43页珍藏版)》请在冰豆网上搜索。
软件开发文档模板
软件描述文档
产品名称
公司名称
软件基本信息
产品名称
公司名称
1、产品标识:
×××软件标识:
软件名称:
×××
软件型号及版本号:
×××
制造商:
×××公司
生产地址:
×××
2、安全性级别
××是一种××软件,所以随之而来的软件安全性问题也极为重要。
(a)××软件是一种抽象的逻辑产品,其存在形式是虚拟和动态的……..
(b)软件质量的测度十分困难,其质量的控制重点在软件的需求分析和设计阶段,开发过程中产生错误的难以追踪;……;
(c)硬件有老化现象,失效曲线似浴盆,硬件的维护可通过纠错、修复或更换失效的系统重新恢复功能。
而软件的维护复杂,只有通过修改代码来排错。
同时软件可能在使用中随着缺陷的发现和消除,而使性能提高。
软件的修改看似比硬件容易,却比硬件更难于控制。
看上去无关紧要的软件代码修改会在软件的其他地方引起无法预测的、十分关键的问题;
(d)软件的失效防护困难。
对硬件可采用预防性维护技术预防故障,采用断开失效部件的办法诊断故障,而软件则不能采用这些技术;但软件的失效会毫无征兆的出现,会因执行一条未经验证的路径而出现故障;而同一软件的冗余不能提高可靠性。
(e)软件的失效是系统性失效,其失效的条件有时比较复杂。
因此,可能会无法清晰地洞察其原因,而误归结其为系统中硬件的随机失效。
导致无法及时排除软件中的故障,造成隐患的长期存在。
以上论述了××软件的复杂性,以及出现问题无法预测性和软件的实效防护困难。
××软件一旦出现问题则很可能导致患者×××或者对患者造成严重的伤害,例如,×××软件一旦在运行过程中失效,机器停止工作则很可能导致患者由于××而变为×××,所以××软件安全性级别为××级。
3、功能结构
上位机程序功能描述:
下位机:
a)功能模块网络:
c)下位机程序框图
1)上位机
a)功能模块网络:
b)上位机程序框图:
4、硬件关系
5、运行环境
5.1硬件配置:
5.2软件运行环境
6、适应范围
6.1软件组件整体的功能用途
6.2医疗器械的适用范围
7、禁忌症
8、上市历史
软件实现过程
产品名称
公司名称
1、开发综述
1.1嵌入式开发平台
1.1.1单片机的开发平台
●
1.2分析测控系统
在进行单片机应用系统开发时,首先要对该测控系统进行可行性分析以及系统总统方案设计。
1.2.1.可行性分析
可行性分析主要是分析整个设计任务的可能性。
1.2.2.系统总体方案设计
当完成可行性分析后,便进入系统整体方案设计阶段。
这里,主要结合国内外相关产品的技术参数和功能特性、本系统的应用要求以及现有条件,来决定本设计所要实现的功能和技术指标。
接着,制定合理的计划,编写设计任务书,从而完成该单片机应用系统的总体方案设计。
1.3器件选型
1.4硬件资源分配
1.5程序设计
1.6仿真测试
1.7实际硬件测试
2需求规格
2.1编写目的
1.
2.
2.2背景
1.
2.用户:
医务专业人员
3.实现:
×××公司
4.构建平台:
2.3定义
1.
2.
3.
4.
5.
6.
2.4对功能的规定
1功能划分
1.
2.
3.
4.
5.
6.
7.
8.
2功能描述
1.:
2.
短;
3.
4.
5.
6.
7.
8.
2.5对性能的规定
2.5.1精度
2.5..2时间特性要求
新一次。
2.5..3输入输出要求
2.5..4警示信息
3.软件的生存周期
1.确定软件开发的可行性与计划
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
在软件开发的可行性研究与计划阶段内,要确定该软件的开发目标和总的要求,要进行可行性分析、投资一收益分析、制订开发计划。
这个阶段我们需要编制项目开发计划。
到了编制项目开发计划阶段,我们要明白编制项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员、开发进度、所需经费预算、所需软、硬件条件等问题作出的安排记载下来,以便根据本计划开展和检查本项目的开发工作。
2.对所开发的软件需求进行分析
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。
”唯一不变的是变化本身。
”,同样需求也是在整个软件开发过程中不断变化和深人的,因此我们必须制定需求变更计划来应付这种变化,
以保护整个项目的顺利进行。
这个阶段我们需要编写软件需求说明书和数据要求说明书。
编制软件需求说明书是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。
内容包括对功能的规定对性能的规定等。
这个阶段,我们可以通过编制数据要求说明书,来向整个开发时期提供关于被处理数据的描述和数据采集要求的技术信息。
3.软件开发的设计阶段
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。
软件设计一般分为总体设计和详细设计。
好的软件设计将为软件程序编写打下良好的基础。
这个结算我们需要编写概要设计说明书、详细设计说明书、数据库设计说明书和测试计划初稿。
概要设计说明书:
概要设计说明书又可称系统设计说明书,这里所说的系统是指程序系统。
编制的目的是说明对程序系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计。
运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。
详细设计说明书:
详细设计说明书又可称程序设计说明书。
编制目的是说明一个软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并人概要设计说明书。
数据库设计说明书:
数据库设计说明书的编制目的是对于设计中的数据库的所有标识、逻辑结构和物理结构作出具体的设计规定。
测试计划初稿:
这里所说的测试,主要是指整个程序系统的组装测试和确认测试。
本文件的编制是为了提供一个对该软件的测试计划,包括对每项测试活动的内容、进度安排、设计考虑、测试数据的整理方法及评价准则。
4.实现阶段
此阶段是将软件设计的结果转换成计算机可运行的程序代码。
在程序编码中必须要制定统一,符合标准的编写规范。
以保证程序的可读性,易维护性,提高程序的运行效率。
这个阶段我们需要编写模块开发卷宗和用户手册完工操作手册。
模块开发卷宗(开始编写):
模块开发卷宗是在模块开发过程中逐步编写出来的,每完成一个模块或一组密切相关的模块的复审时编写一份,应该把所有的模块开发卷宗汇集在一起。
编写的目的是记录和汇总低层次开发的进度和结果,
以便于对整个模块开发工作的管理和复审,并为将来的维护提供非常有用的技术信息。
用户手册完工操作手册:
操作手册的编制是为了向操作人员提供该软件每一个运行的具体过程和有关知识,包括操作方法的细节。
5.测试阶段
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。
测试的方法主要有白盒测试和黑盒测试两种。
在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
这个阶段我们需要编写模块开发卷宗和项目开发总结报告。
模块开发卷宗(此阶段内必须完成)测试分析报告:
测试分析报告的编写是为了把组装测试和确认测试的结果、发现及分析写成文件加以记载。
项目开发总结报告:
项目开发总结报告的编制是为了总结本项目开发工作的经验,说明实际取得的开发结果以及对整个开发工作的各个方面的评价。
6.运行与维护阶段
软件维护是软件生命周期中持续时间最长的阶段。
在软件开发完成并投人使用后,由于多方面的原因,软件不能继续适应用户的要求。
要延续软件的使用寿命,就必须对软件进行维护。
软件的维护包括纠错性维护和改进性维护两个方面。
总之,失败的软件项目各有其失败,而成功的软件项目都一样:
离不开规范的软件开发过程。
想要设计出优秀的,适合实际需要的软件作品,科学规范的软件开发流程是必须遵守的。
当然,软件开发工作也需要与时俱进,这一套软件开发六部曲也并不是永远适用的。
我们需要在平时的工作中多多总结,才能做到与时俱进,才能一直保持,实现科学的软件开发。
4.软件的验证和确认
软件测试工作量往往占软件开发总工作量的40%以上。
软件测试之所以在软件生命周期占有如此重要地位,是因为它贯穿了软件定义与开发的整个生命周期,是软件质量保证的重要手段。
需求分析、概要设计、详细设计以及源程序,都应成为软件测试的对象。
与开发过程类似,测试过程也需要分步骤进行,后一个步骤在逻辑上是前一个步骤的继续。
在众多测试中,确认测试检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准,是软件发布之前不可或缺的重要测试之一。
软件测试阶段的划分模型
单元测试,是在程序编码阶段对各单元模块进行单独的测试,旨在及时发现并纠正程序单元中暗藏的缺陷。
集成测试主要是考察模块的集成,包括这些模块组成的(子)系统的功能、性能及其外部接口等质量特性。
确认测试,是根据软件需求规格说明中对功能性需求和非功能性需求的描述,考察软件各项特征是否符合要求。
系统测试,则是测试由软件和硬件集成的完整系统,以检查其是否符合需求。
4.1测试方法
我们采用了以下两种方法来测试软件:
(1)等价类划分:
把程序的输入域划分成数据类,据此可以导出测试用例,一个理想的测试用例能独自发现一类错误。
(2)边值分析:
确定程序处理的边界情况,设计使程序运行在边界情况附近的测试方案。
诸如:
下标、纯量、数据结构和循环等边界附近。
4.2系统测试计划见附件
4.3用户测试计划见附件
5.核心算法
1)上位机程序核心算法:
▼数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻抗匹配问题。
尤其是数字滤波可以对频率很低的信号进行滤波,这是模拟滤波器做不到的。
▼数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统开支。
▼只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这对于滤除低频干扰和随机信号会有较大的效果。
本程序是采用的是数字滤波算法中的算术平均滤波算法,该算法的基本原理很简单,就是连续取N次采样值后进行算术平均。
说明:
算术平均滤波算法适用于对具有随机干扰的信号进行滤波。
这种信号的特点是有一个平均值,信号在某一数值附近上下波动。
信号的平均平滑程度完全到决于N值。
当N较大时,平滑度高,灵敏度低;当N较小时,平滑度低,但灵敏度高。
为了方便求平均值,N一般取4、8、16、32之类的2的整数幂,以便在程序中用移位操作来代替除法。
波形从左走到右,需要18s;纵坐标一共140点,20个点代表1kPa。
选择20个点作为-1kPa,每次刷新波形时候,先把压力轴从上到下清除(即用屏幕底色填充),在把当前压力值换算到纵坐标上,从当前点画蓝色线一直到时间轴上。
随着时间的推移,便产生了蓝色的填充的压力波形。
当时间轴到了最大值时,回到最小值。
压力轴范围为-1到6kPa,压力数值超出了上下限范围后,就强制把波形置为-1或6kPa。
流速波形也是采用的数字滤波中的算术平均算法,波形纵坐标代表流速值,横坐标代表时间。
时间轴每50ms更新一次,一共360点,波形从左走到右,需要18s;纵坐标一共140点,分为上下半轴,各占70个点,上半轴为吸气波形,下半轴为呼气波形。
每次刷新波形时候,先把流速轴从上到下清除(即用屏幕底色填充),每隔50ms采集一次流速值,即50ms之内累加的脉冲数换算为流速值,在根据当前是吸气还是呼气状态,把流速值换算到纵坐标上,从当前点画浅蓝色线一直到时间轴上。
随着时间的推移,便产生了浅蓝色的填充的流速波形。
当时间轴到了最大值时,回到最小值。
流速轴范围为0-70,流速数值超出了上下限范围后,就强制把波形置为70。
2)下位机程序核心算法
下位机潮气量的算法:
由于打气的气流不是一个恒定的流速,所以采用了积分的算法,即气流流速的积分等于潮气量。
上图曲线为潮气量流速波形,x代表时间,y代表流速。
潮气量则为阴影部分的面积,采用积分算法在【a,b】内插入若干个分点
a=x0 1.把【a,b】分成n个小区间【xi-1,xi】长度为△xi=xi-xi-1; 2.近似替代: 在每个【xi-1,xi】上任取一点ξi,以【xi-1,xi】为底,f(ξi)为速度的小矩形面积为A=f(ξi)△xi 3.求和: 面积的近似值为A≈∑ni=1f(ξi)△xi 4.取极限: 当分割无线加细,即小区间的最大长度=max{△x1,△x2,△x3,…△xn}0时,有小矩形面积和∑ni=1f(ξi)△xiA,即可达到积分计算公式也就是潮气量计算公式 λ→0 A=lim∑ni=1f(ξi)△xi 软件 风险管理报告 产品名称 ×××公司 1.概要: 软件风险概述: –使软件项目的实施受到影响和损失、甚至导致失败的、可能会发生的事件 –例如,人员的临时流失,计划过于乐观,设计的低劣 软件风险的特点 –事先难以确定 –带来损失,影响项目实施,甚至会导致项目失败 风险管理的组成 风险评估 –风险识别: 识别风险,形成风险列表 –风险分析: 判定每一个风险出现的概率、产生的影响及其重要性 –风险优先级: 按照每个风险的重要性排出一个风险优先级 风险评估是风险控制的基础 风险控制 –风险管理计划: 针对各个重要风险制定风险管理计划,确保各个单独的风险管理计划之间以及它们与相互计划之间的一致性 –风险化解: 执行风险管理计划,以缓解或消除风险 –风险监控: 监控风险化解的过程,可能会识别出新的风险 2.风险评估 2.1风险识别 ⏹风险的类别 –计划编制 –组织和管理 –开发环境 –最终用户 –客户 –需求 –产品外部环境 –人员 –设计和实现 –过程 2.1.1计划编制风险 ⏹计划、资源和产品的定义完全由客户或上层领导决定,忽略了项目组的意见,并且这些决定不完全一致 ⏹计划忽略了必要的任务和活动 ⏹计划不切实际 ⏹计划基于特定小组成员,而这样的小组成员根本得不到 ⏹产品规模估算过于乐观 ⏹工作量估算过于乐观 ⏹进度的压力造成生产率的下降 ⏹目标日期提前,但没有相应地调整产品范围和可用资源 ⏹一个关键任务的延迟导致其他相关任务的连锁反应 2.1.2组织和管理风险 ⏹缺乏强有力、有凝聚力的领导(项目组、企业) ⏹解雇员工导致项目小组能力下降 ⏹削减预算打乱项目计划 ⏹仅由管理层和市场人员进行技术决策,导致进度延长 ⏹低效的项目组组织结构降低生产率 ⏹管理层审查/决策的周期比预期时间长 ⏹管理层作出了打击项目组积极性的决定 ⏹非技术的第三方的工作比预期要长(如,采购硬件设备) ⏹计划性太差,无法适应期望的开发速度 ⏹项目计划由于压力而放弃,导致开发混乱 ⏹管理方面的英雄主义,忽视客观确切的状态报告,降低发现和改正问题的能力 2.1.3开发环境风险 ⏹设施不能及时到位 ⏹设施到位,但不配套 ⏹开发工具未能及时到位 ⏹开发工具不如期望的那样有效,开发人员需要更多的时间,或者更换工具 ⏹开发工具的学习期比预期的要长 ⏹开发工具的选择不是基于技术需求,不能提供计划要求的功能 2.1.4最终用户风险 ⏹最终用户坚持新的需求 ⏹最终用户对最后交付的产品不满意,要求重新设计和重做 ⏹最终用户不买进项目产品,无法提供后续支持 ⏹最终用户的意见未被采纳,造成产品最终无法满足用户要求 2.1.5客户风险 ⏹客户坚持新的需求 ⏹客户对规划、原型和规格的审核/决策超出预期 ⏹客户没有参与规划、原型和规格的审核,导致需求不稳定,以及长时间的变更 ⏹客户答复的时间比预期的要长 ⏹客户坚持技术决策而导致计划延长 ⏹客户对开发进度管理过细,导致实际进度变慢 ⏹客户提供的组件无法与开发的产品匹配,导致需要额外的设计和集成工作 ⏹客户提供的组件质量欠佳,导致额外的测试、设计或者功能不完善 ⏹客户要求的支持工具与环境不兼容,性能差或者不完善,导致生产率降低 ⏹客户不接受交付的软件,尽管它满足了所有的规格 ⏹客户期望的开发速度是开发人员所无法达到的 2.1.6需求风险 ⏹需求已经成为项目基准,但仍在变化 ⏹需求定义欠佳: 不清晰、不准确、不一致 ⏹增加额外的需求 2.1.7产品风险 ⏹错误发生率高的模块,需要更多的时间对它进行测试、设计和实现 ⏹矫正质量低下的不可接受的产品需要更多的时间对它进行测试、设计和实现 ⏹由于功能错误,导致需要重新进行设计和实现 ⏹开发额外不需要的功能延长了进度 ⏹要满足产品规模和速度要求,需要更多的时间 ⏹严格要求与现有系统兼容,需要更多的时间 ⏹要求软件重用,需要更多的时间 2.1.8外边环境风险 ⏹产品依赖政府规章,而规章的改变不可预期 ⏹产品依赖草拟中的技术标准,而最后的标准不可预期 2.1.9人员风险 ⏹招聘人员所需的时间比预期要长 ⏹作为人员参与工作的先决条件(如培训、其他项目的完成等)不能按时完成 ⏹开发人员与管理层关系不佳导致决策迟缓、影响全局 ⏹项目组成员没有全身心地投入到项目中,因而无法达到所需的产品功能和性能需求 ⏹缺乏激励措施、士气低下,降低生产能力 ⏹缺乏必要的规范,增加工作失误,重复工作,降低工作质量 ⏹缺乏工作基础(语言、经验、工具等) ⏹项目结束前,项目组成员离开项目组 ⏹项目后期,加入新的开发人员,额外的培训和沟通降低了项目组成员的开发效率 ⏹项目组成员不能有效的在一起工作 ⏹由于项目组成员之间的冲突,导致沟通不畅,设计欠佳,接口错误和额外重复的工作 ⏹有问题的项目组成员没有调离项目组,影响其他成员的积极性 ⏹项目组的最佳人选没有加入项目组,或者加入项目组但没有合理使用 ⏹关键任务只能兼职参与 ⏹项目人员不足 ⏹任务的分配和人员的技能不匹配 ⏹人员工作的进展比预期的要慢 ⏹项目管理人员怠工导致计划和进度失效 ⏹技术人员怠工导致工作遗漏、质量低下,工作需要重做 2.1.10设计和实现风险 ⏹设计过于简单,考虑不仔细、不全面,导致重新设计和实现 ⏹设计过于复杂,导致一些不必要的工作,影响效率 ⏹设计质量低下,导致重新设计和实现 ⏹使用不熟悉的方法,导致需要额外的培训时间 ⏹产品使用低级语言编写,导致效率较低 ⏹分别开发的模块无法有效集成,需要重新设计和实现 2.1.11过程风险 ⏹跟踪不准确,导致无法预知项目进展是否落后于计划 ⏹前期的质量保证行为不真实,导致后期的重复工作 ⏹质量跟踪不准确,导致无法得知影响进度的质量问题 ⏹不能有效遵循标准,导致沟通不足,质量问题和重复工作 ⏹风险管理粗心,导致没有发现重大的项目风险 3.风险列表 编号 风险名称 1 计划过于乐观 2 由于要完全支持自动从主机更新数据而照成额外的需求 3 由于市场变化而需额外的需求 4 图形格式子系统接口不稳定 5 设计欠佳,需要重新设计 4.风险分析 4.1评估风险发生的概率 ⏹主观性较强,采用方法 –熟悉系统、有经验的人参与评估 –多人独立评估,综合折中 –采用分类: 非常可能(0.8-1.0),很可能(0.6-0.8),或许(0.4-0.6),不太可能(0.2-0.4),不可能(0-0.2) 编号 风险名称 概率 1 计划过于乐观 50% 2 由于要完全支持自动从主机更新数据而照成额外的需求 5% 3 由于市场变化而需额外的需求 35% 4 图形格式子系统接口不稳定 25% 5 设计欠佳,需要重新设计 15% 4.2评估风险发生造成的损失 ⏹可以基于“进度”,“成本”或者“工作量”来进行估算 编号 风险名称 概率 损失(人周) 1 计划过于乐观 50% 5 2 由于要完全支持自动从主机更新数据而照成额外的需求 5% 20 3 由于市场变化而需额外的需求 35% 8 4 图形格式子系统接口不稳定 25% 4 5 设计欠佳,需要重新设计 15% 15 4.3计算风险危险度 风险危险度=风险概率×风险损失 编号 风险名称 概率 损失(人周) 危险度 1 计划过于乐观 50% 5 2.5 2 由于要完全支持自动从主机更新数据而照成额外的需求 5% 20 1.0 3 由于市场变化而需额外的需求 35% 8 2.8 4 图形格式子系统接口不稳定 25% 4 1.0 5 设计欠佳,需要重新设计 15% 15 2.25 4.4风险优先级 ⏹统计表明,项目80%成本用于解决20%的问题 ⏹风险管理重点关注20%重要的部分 ⏹根据风险的危险度确定风险的重要性,忽略其他的部分 编号 风险名称 概率 损失(人周) 危险度 3 由于市场变化而需额外的需求 35% 8 2.8 1 计划过于乐观 50% 5 2.5 5 设计欠佳,需要重新设计 15% 15 2.25 2 由于要完全支持自动从主机更新数据而照成额外的需求 5% 20 1.0 4 图形格式子系统接口不稳定 25% 4 1.0 5.风险监控 ⏹检查风险的化解程度及其变化(概率、损失) ⏹风险监控的方式 –监控和跟踪重要的(前10个)风险,记录风险危险度的变化以及风险化解的进展 –中间审查,在每个里程碑后进行小规模的走查 –任命风险官员(适合于大项目),警告项目风险,防止项目经理和开发人员忽略计划中的风险管理 软件集成测试 计划 产品名称 ××××公司 1.目的 《软件集成测试计划》用于明确软件产品确认测试过程中测试设计、测试执行及测试总结工作的具体任务分解、人员安排、进度及输出结果。 以使整个测试工作有计划地顺利进行。 本文规定了测试的编写格式及要求。 2适用范围 本规范适用于软件项目与软件产品的集成测试活动。 3职责 3.1项目负责人: 负责集成测试计划的审批。 3.2开发人员: 负责编制《集成测试计划》。 4.集成测试计划规范 4.1集成测试一般集中于各个模块接口间的测试。 集成测试界于单元测试和系统测试之间。 集成测试内容必须源于《系统设计报告》。 集成测试着重于集成版本的外部接口的行为。 因此,测试需求须具有可观测、可测评性。 4.2集成测试计划制定的时间 在《系统设计报告》完成之后,依据《系统设计报告》制定集成测试计划。 类别 递交时间 制定者 审批者 《集成测试计划》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件开发文档 模板 软件 开发 文档