《嵌入式专业项目文档模板完成版.docx》由会员分享,可在线阅读,更多相关《嵌入式专业项目文档模板完成版.docx(32页珍藏版)》请在三一办公上搜索。
1、 密级 公开 组号 湖南科技职业学院软件学院项目文档项 目 题 目 简易计算器 专 业 软件技术(嵌入式工程师方向)班 级 嵌入式3092 学 生 姓 名 戴高乐 指 导 老 师 文光明 2011年6月课程设计文档编写模板 湖南科技职业学院软件学院项目文档编写模板文档信息 文档名称:项目文档编写模板负责人:戴高乐文档版本编号:Tech-Spec-Docu密级:普通文档版本日期:2011-5-21起草人:戴高乐起草日期:2011-5-21复审人:戴高乐 复审日期:2011-6-11任务分配表来自From日期电话 / 传真戴高乐2011-5-2013507489874模块名称负责人截止日期完成日期
2、软件需求说明书戴高乐2011-5-252011-5-30需求分析报告戴高乐2011-5-312011-6-4软件设计书戴高乐2011-6-52011-6-7程序设计说明书戴高乐2011-6-82011-6-11软件测试说明书戴高乐2011-6-122011-6-15用户手册戴高乐2011-6-162011-6-18版本记录版本编号版本日期修改者说明1.02011-5-30戴高乐草案2.02011-6-10戴高乐初步方案3.02011-6-18戴高乐最终方案第28页目录一软件需求说明书(软件计划书,确定软件的总体功能)11.1引言11.2业务流程整体说明11.3特殊说明21.4原始资料2二需求分
3、析报告32.1引言32.2任务概述32.3功能需求32.4性能需求32.5运行环境描述3三软件设计书(详细设计说明书,建立软件结构)53.1引言53.2硬件结构设计53.3软件结构设计53.4硬件描述53.4.1触摸屏63.4.2LCD显示83.5程序描述83.5.1加法运算83.5.2减法运算93.5.3乘法运算103.5.4除法运算123.5.5清零13四程序设计说明书144.1引言144.2各功能核心代码和界面说明144.2.1界面初始化144.2.2加减乘除运算154.2.3清零22五软件测试说明书235.1引言235.2计划235.3测试项目说明235.4测试计划执行情况245.5评
4、价24六用户手册266.1引言266.2系统功能介绍266.3运行环境说明266.4运行前的准备266.5输入输出说明和操作说明266.6安全与保密266.7常见问题的处理276.8附录:安装与初始化27一 软件需求说明书(软件计划书,确定软件的总体功能)1.1 引言 编写目的本文主要描述科学计算器系统需求,目的是清晰地描述用户使用本软件必须要完成的任务和定义开发人员必须实现的软件功能,使用户利用系统能够完成他们的任务。 项目背景 项目委托单位:湖南科技职业学院 开发人员:戴高乐 主管部门:湖南科技职业学院软件学院1.2 业务流程整体说明1.3 特殊说明本系统使用方便,兼容性优异。1.4 原始
5、资料 资料收集: a. Linux组件应用b.Linux中系统设置常用命令c. GUI.Qt.4d. Qt信号与槽e. ARM嵌入式C编程标准教程f. 学习笔记widget,MainWindow和Dialog的选择使用g. Qt控制对象继承关系h. 嵌入式linux与应用开发 原始单据、原始报表等:以列表的方式列出原始资料的名称,而且要与原有业务流程概述的内容相对照,并将实际的原始资料附在业务分析书的后面。原始资料名称对应于原有业务流程概述的哪一部分内容嵌入式Linux应用程序开发Qt图形编程基础二 需求分析报告2.1 引言 编写目的大二了,软件学院的学生即将进入社会压力巨大,专业没学好信心大
6、失,该软件宗旨帮同学们找回自信,告诉他们没学好也能编出东西。自信满满的迎接挑战。2.2 任务概述 目标我们在学习生活中,常会遇到一些繁杂的数值运算,尤其是遇到正弦、余弦、对数等手算困难的运算时,这时候我们就必须用到科学计算器,所以我便着手开发了这个计算器程序,以便用于自己的学习工作。2.3 功能需求 功能划分 功能描述对最底层的功能所要完成的功能进行详细描述,填入下表中:功能名称功能标识符功能详细描述加减乘除“+”,“-”,“*”,“/”数字的加减乘除运算数字1234567890输入数字清零init数字清零2.4 性能需求 时间要求软件可实现随时更新,及时运行及操作的执行。 适应性(在操作方式
7、、运行环境、与其他软件的接口等发生变化时,所具有的适应能力。)2.5 运行环境描述 硬件设备ARM开发板,计算机电脑 支持软件Linux QT , window xp QT 接口USB硬件接口 控制界面控制 用户界面 其他需求 如可用性、安全保密、可维护性、可跨平台性等。(分高、中、低定性详细描述)三 软件设计书(详细设计说明书,建立软件结构)3.1 引言 编写目的软件设计说明书是为程序设计进行指导的文档,主要功能是建立软件的结构,详细说明每个功能的上下功能模块和输入输出接口。3.2 硬件结构设计 描述硬件功能结构图 3.3 软件结构设计 软件功能结构图通过Qt软件调用的程序源代码ARM开发板
8、,网线,源代码可执行,在ARM开发板显示可触屏软件,同步软件3.4 硬件描述 硬件功能结构图如下:图 触摸屏作用原理图 触摸屏电路图图 触摸屏输入系统3.4.1 触摸屏 功能系统:简易计算器 设计人:戴高乐模块:可触摸屏 日期:2011-06-11上层调用模块:AD转换 可调用的下层模块:LCD显示 输入键盘输入 输出通过显示屏输出信息 硬件模块说明:触摸操作时,薄膜下层的ITO会接触到玻璃上层的ITO,经由感应器传出相应的电信号,经过转换电路送到处理器,通过运算转化为屏幕上的X、Y值,而完成点选的动作,并呈现在屏幕上局部注释项:无 接口:AD转换寄存器、触摸屏控制寄存器。 限制条件:无 测试
9、要点: 校正触摸屏以及触摸点的可行性 尚未解决的问题:无3.4.2 LCD显示系统:计算器 设计人:戴高乐模块:LCD显示 日期:2011-06-05上层调用模块:触摸屏下层调用模块:无输入:无输出:显示屏硬件模块说明:LCD控制器和LCD驱动器之间的帧同步信号,比LED有更好的显示效果。局部注释项:无 接口:控制器及驱动器 限制条件:无 测试要点:是否正常显示 尚未解决的问题:无3.5 程序描述3.5.1 加法运算 功能系统:计算器 设计人:戴高乐模块:加法运算 日期:2011-06-01无 界面函数 输入:键盘输入 输出:通过显示屏达到输出信息 处理过程说明: 主要是操作加的算法 算法n=
10、A.toDouble(); /如果上一次已经有运算符,那么将A,B都转换成浮点数m=B.toDouble();if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n=n/m; 接口:按键 限制条件:无 测试要点:是否有反应 尚未解决的问题:无3.5.2 减法运算 功能系统:计算器 设计人:戴高乐模块:减法运算 日期:2011-06-02 无 界面函数 输入键盘输入 输出通过显示屏达到输出信息 处理过程说明:无 主要是操作减的算法 算法 n=A.toDouble(); /如果上一次已经有运算符,那么将A,B都转换成浮点数m=B.toDouble()
11、;if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n=n/m; 接口:按键 限制条件:无 测试要点:是否有反应 尚未解决的问题:无3.5.3 乘法运算 功能系统:计算器 设计人:戴高乐模块:乘法运算 日期:2011-06-05 无 界面函数 输入键盘输入 输出通过显示屏达到输出信息 处理过程说明:无 主要是操作乘的算法 算法 n=A.toDouble(); /如果上一次已经有运算符,那么将A,B都转换成浮点数m=B.toDouble();if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n=n
12、/m; 接口:按键 限制条件:无 测试要点:是否有反应 尚未解决的问题:无3.5.4 除法运算 功能系统:计算器 设计人:戴高乐模块:加法运算 日期:2011-06-07 无 界面函数 输入键盘输入 输出通过显示屏达到输出信息 处理过程说明:无 主要是操作除的算法 算法 n=A.toDouble(); /如果上一次已经有运算符,那么将A,B都转换成浮点数m=B.toDouble();if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n=n/m; 接口:按键 限制条件:无 测试要点:是否有反应 尚未解决的问题:无3.5.5 清零 功能系统:计算器
13、 设计人:戴高乐模块:清零 日期:2011-06-11无 界面函数 输入键盘输入 输出通过显示屏达到输出信息 处理过程说明:所有都初始化主要是操作清零 算法void window:Binit() /按了Init键,所有都初始化A=0;B=0;c= ;l-setText(B); 接口:按键 限制条件:无 测试要点:是否有反应 尚未解决的问题:无四 程序设计说明书4.1 引言 编写目的说明本软件的各功能模块实现技巧及核心代码4.2 各功能核心代码和界面说明4.2.1 界面初始化 实现技巧。调用Qt内库 功能界面 核心代码 resize(320,240); /重画窗口大小A=0;B=0;c= ; /
14、初始化。注意c初始化为空格键l=new QLineEdit(this);l-setText(B);l-setReadOnly(true); /添加文本编辑框并且设置为不可更改b1=new QPushButton(1,this);b2=new QPushButton(2,this);b3=new QPushButton(3,this);b4=new QPushButton(4,this);b5=new QPushButton(5,this);b6=new QPushButton(6,this);b7=new QPushButton(7,this);b8=new QPushButton(8,thi
15、s);b9=new QPushButton(9,this);b0=new QPushButton(0,this);bchen=new QPushButton(*,this);bchu=new QPushButton(/,this);bjia=new QPushButton(+,this);bjian=new QPushButton(-,this);b=new QPushButton(.,this);bden=new QPushButton(=,this);binit=new QPushButton(Init,this);ll=new QLabel(Made By Dai,this); /为各个
16、部件申请空间QFont f=QFont(Times,18,QFont:Bold); /设置QLabel的格式ll-setFont(f); /应用格式/*以上处理各个部件在主窗口中的位置*/l-setGeometry(20,10,250,30);b1-setGeometry(20,40,30,30);b2-setGeometry(70,40,30,30);b3-setGeometry(120,40,30,30);b4-setGeometry(170,40,30,30);b5-setGeometry(220,40,30,30);b6-setGeometry(20,80,30,30);b7-setG
17、eometry(70,80,30,30);b8-setGeometry(120,80,30,30);b9-setGeometry(170,80,30,30);b0-setGeometry(220,80,30,30);bchen-setGeometry(20,120,30,30);bchu-setGeometry(70,120,30,30);bjia-setGeometry(120,120,30,30);bjian-setGeometry(170,120,30,30);b-setGeometry(220,120,30,30);bden-setGeometry(20,160,30,30);bini
18、t-setGeometry(70,160,30,30);ll-setGeometry(120,160,200,40);4.2.2 加减乘除运算 实现技巧。实现运算功能 功能界面 核心代码 void window:B1() /数字按键“1”的槽函数if(B=0) B=1; /如果B为0直接进行替代,想象下计算器,按了“1”键总不能显示的是“01”吧.elseB=l-text(); /如果不是,先获取当前文本编辑框的内容,如B=23,再按一下那么在后面追加1.B.append(1);l-setText(B); /将B再次送到文本编辑框进行显示.void window:B2() /同上if(B=0)
19、 B=2;elseB=l-text();B.append(2);l-setText(B);void window:B3() /同上.if(B=0) B=3;elseB=l-text();B.append(3);l-setText(B);void window:B4()if(B=0) B=4;elseB=l-text();B.append(4);l-setText(B);void window:B5()if(B=0) B=5;elseB=l-text();B.append(5);l-setText(B);void window:B6()if(B=0) B=6;elseB=l-text();B.a
20、ppend(6);l-setText(B);void window:B7()if(B=0) B=7;elseB=l-text();B.append(7);l-setText(B);void window:B8()if(B=0) B=8;elseB=l-text();B.append(8);l-setText(B);void window:B9()if(B=0) B=9;elseB=l-text();B.append(9);l-setText(B);void window:B0()if(B=0) B=0;elseB=l-text();B.append(0);l-setText(B);void w
21、indow:Bpoi() /这个是小数点键对应的slot函数,比较特殊,直接追加就可以了if(B=0) B.append(.);elseB=l-text();B.append(.);l-setText(B);void window:Badd() /加法键double n,m;B=l-text();if(c= ) /如果c为空格键,说明现在是第一次运算,那么不进行任何操作,只是将B复制给A(注意A原来是“0”) /同时保存这一次的操作符,以便下一次计算.A=B;B=0;c=+;elsen=A.toDouble(); /如果上一次已经有运算符,那么将A,B都转换成浮点数m=B.toDouble()
22、;if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n=n/m; /实现运算A=QString:number(n,f,10); /再转换回字符形式B=0; /将B重新初始化c=+;l-setText(A); /显示中间结果void window:Bdel() /同上double n,m;B=l-text();if(c= )A=B;B=0;c=-;elsen=A.toDouble();m=B.toDouble();if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n=n/m;A=QString:n
23、umber(n,f,10);B=0;c=-;l-setText(A);void window:Bmul() /乘号double n,m;B=l-text();if(c= )A=B;B=0;c=*;elsen=A.toDouble();m=B.toDouble();if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n=n/m;A=QString:number(n,f,10);B=0;c=*;l-setText(A);void window:Bdiv() /除号double n,m;B=l-text();if(c= )A=B;B=0;c=/;els
24、en=A.toDouble();m=B.toDouble();if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n=n/m;A=QString:number(n,f,10);B=0;l-setText(A);void window:Bden() /等号键,同上类似double n,m;B=l-text();if(c= )A=B;B=0;l-setText(A);A=0;c= ;elsen=A.toDouble();m=B.toDouble();if(c=+) n=n+m;if(c=-) n=n-m;if(c=*) n=n*m;if(c=/) n
25、=n/m;A=QString:number(n,f,10);B=0;c= ;l-setText(A);A=0;void window:Binit() /按了Init键,所有都初始化A=0;B=0;c= ;l-setText(B);4.2.3 清零 实现技巧。通过init初始化函数 功能界面 核心代码 void window:Binit() /按了Init键,所有都初始化A=0;B=0;c= ;l-setText(B); 五 软件测试说明书5.1 引言 编写目的指导软件测试并给出结果表以填写测试结果5.2 计划 测试方案用户界面测试、功能流程测试、性能测试等。 测试项目测试名称内容目的进度用户界
26、面测试运行程序,界面是否达到标准使界面达到客户标准12-24合格,25号完成测试功能流程测试点击功能按钮,是否可实现其功能使功能能够实现其效果12-26合格,28号完成测试性能测试通过不断运行操作,其软件的性能是否良好使本软件更具可操作性12-28合格,29号完成测试 测试准备 测试机构及人员测试机构:湖南科技职业学院负责人:戴高乐职责:全包5.3 测试项目说明 测试项目名称及测试内容用户界面测试:运行程序,界面是否达到标准。功能流程测试:点击功能按钮,是否可实现其功能。性能测试:通过不断运行操作,其软件的性能是否良好。 测试用例1. 输入数字,小数点,加减乘除清零按键2. 输出(预期的输出数
27、据。)0-9都能准确输出,加减乘除可算出正确答案3. 步骤及操作 进度目前为止能实现加减乘除清零功能 条件(给出项测试对资源的特殊要求,如设备、软件、人员等。)开发人员,计算机, 测试资料Linux应用程序开发,ARM标准教材 5.4 测试计划执行情况 测试项目 测试名称内容目的用户界面测试运行程序,界面是否达到标准使界面达到客户标准功能流程测试点击功能按钮,是否可实现其功能使功能能够实现其效果性能测试通过不断运行操作,其软件的性能是否良好使本软件更具可操作性 测试机构和人员(给出测试机构名称、负责人和参与测试人员名单。)测试机构:湖南科技职业学院软件学院负责人:戴高乐测试人员:戴高乐 测试结
28、果 户界面运行良好测试数据合格,功能流程顺畅,数据合格,性能数据合格5.5 评价 软件能力可运行性强 建议可增加一些复杂的运算功能 缺陷和限制 功能较少,只能进行简单的加减乘除运算 测试结论本软件可通过本次测试六 用户手册6.1 引言 编写目的本手册主要用来指导用户正确使用软件并解决常见问题,使用对象为本软件的最终使用者6.2 系统功能介绍本项目是一款计算工具,需要按键输入进行控制,实现算法,得到想要的结果。6.3 运行环境说明简单说明运行本软件所要求的: 硬件设备环境:一般家庭电脑即可; 系统软件的环境,例如WINDOWS、SQL*NET等; 应用软件环境:有很大的适应性,没特别要求。6.4
29、 运行前的准备准备好装有Linux平台的PC机一台,ARM开发箱一个及相关操作人员一名。6.5 输入输出说明和操作说明 功能简介: 在界面上,按下相应的数字然后再按下相应的运算符,再按下”等于号“得到结果。 工作流程:点击快捷方式进入界面,按退出。 以醒目的方式列出常规工作时操作步骤,详细说明每个步骤中的屏幕和使用方法 这一部分应该尽量让软件的使用操作人员对整个操作过程有一个明确的概念,在文件编排上应该把使用者的注意力集中在使用软件解决他工作中的问题上。 对向计算机输入的数据和计算机输出的内容给予适当的说明。在语言上应该使用易于用户理解的词汇而尽量不要用计算机专业术语。6.6 安全与保密因为只
30、是一款计算工具,不需要安全和保密。6.7 常见问题的处理由于软件可能会被经常使用,会出现死机、报错等错误,这些只要重新编译一下源程序即可。6.8 附录:安装与初始化 安装列出软件安装的步骤,说明安装过程中的每一步操作方法。这一部分的内容应该让初次接触这个系统的使用者依照手册中所列的步骤和操作方法顺利地将软件安装上。 初始化列出软件正式运行前所需要进行初始化工作的清单和初始化操作的步骤。对于初始化中的每个步骤应给予适当的说明,使进行初始化工作的人能够充分理解初始化中每一步骤的实际作用,以便于合理地配置应用系统,充分发挥系统的作用参考文献1.才华,ARM嵌入式C编程,人民邮电出版社,2010年1月 第二版2. 作者:华清远见嵌入式培训中民,嵌入式Linux应用程序开发,人民邮电出版社,2009年4月第二版