软件工程 2.docx

上传人:b****4 文档编号:4016107 上传时间:2023-05-06 格式:DOCX 页数:52 大小:671.53KB
下载 相关 举报
软件工程 2.docx_第1页
第1页 / 共52页
软件工程 2.docx_第2页
第2页 / 共52页
软件工程 2.docx_第3页
第3页 / 共52页
软件工程 2.docx_第4页
第4页 / 共52页
软件工程 2.docx_第5页
第5页 / 共52页
软件工程 2.docx_第6页
第6页 / 共52页
软件工程 2.docx_第7页
第7页 / 共52页
软件工程 2.docx_第8页
第8页 / 共52页
软件工程 2.docx_第9页
第9页 / 共52页
软件工程 2.docx_第10页
第10页 / 共52页
软件工程 2.docx_第11页
第11页 / 共52页
软件工程 2.docx_第12页
第12页 / 共52页
软件工程 2.docx_第13页
第13页 / 共52页
软件工程 2.docx_第14页
第14页 / 共52页
软件工程 2.docx_第15页
第15页 / 共52页
软件工程 2.docx_第16页
第16页 / 共52页
软件工程 2.docx_第17页
第17页 / 共52页
软件工程 2.docx_第18页
第18页 / 共52页
软件工程 2.docx_第19页
第19页 / 共52页
软件工程 2.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件工程 2.docx

《软件工程 2.docx》由会员分享,可在线阅读,更多相关《软件工程 2.docx(52页珍藏版)》请在冰点文库上搜索。

软件工程 2.docx

软件工程2

一问题的定义

1问题定义

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。

目前,最新版本为Android4.0.3。

目前安卓系统流行的原因:

1。

开源,只有你又编辑基础,就可以进出其中。

2.系统精炼,这是开源的好处。

3.个性发展,根据自己的使用习惯配置4.用的人多,可以找到相应的应用软件5.系统更安全些。

6.操作界面华丽

安卓手机记账系统是一种记账服务系统,它向手机用户提供了一台计算器,用户可以在上面记录近期的支出收入情况。

早期的记账方式都是笔记,大约是从1911年开始,就推出了手机记账系统。

经过长时间的发展,安卓手机记账系统慢慢流行起来。

2008年更是以惊人的速度发展起来。

多数业余手机记账系统都很普通,基于一般模式,而安卓手机记账系统使用了数据库,这样系统更安全,实时。

2系统要解决的问题

手机用户登录系统,记录当前的支出和收入情况。

支出包括生活用品等,收入包括勤工俭学等。

用户查看时可以根据日期看出,也可以详细查看。

另外用户进入系统前,会有一个登录界面。

用户查看信息时,鼠标长期按在一条信息上时,系统会提醒用户是否将删除该信息。

而且用户查看记账信息时,系统会按入账时间先后顺序排列出来并标号。

二可行性研究报告

1引言

1.1编写目的

本系统开发计划注重规范开发过程,保证系统质量,使用户对系统项目的理解,并对其开发工作提供意见;而且还作为系统项目通过评审的依据。

并说明该系统开发项目的实现在技术上的可行性。

1.2背景

A、Android一词的本义指“机器人”

B、任务提出者是本次课程设计辅导老师:

曾婕、郑剑;系统的开发主要由吴海林,余海刚负责。

2可行性研究的前提

2.1要求

A、功能:

手机用户登陆系统前用户可以看到登录界面,记录当前的支出和收入情况并查看相应的记录信息,用户还可以删除已记录的信息,或根据日期查看对应的记账情况。

B、性能:

查询效率尽可能做到精准,信息维护做到简单易用;

C、输出:

能够快速有条理的输出相关的信息、资料;

D、输入:

记录当前的支出和收入情况;

E、完成期限:

到本学期的第21周。

2.2目标

系统应该尽量做到以下的目标:

人力与设备费用的减少;

使用数据库;

数据的处理速度比较快;

应能查询和清除记录的信息。

2.3进行可行性研究的方法

根据课本里面的相关知识、图书馆所借的书以及平时所积累的一些经验,综合本系统所要达到的目标进行分析而得到。

3处理流程和数据流程

3.1系统流程图

系统的处理流程图见图2-1所示,系统的流程图见图2.1所示:

图2.1系统的流程图

3.2系统数据流图

图2.2系统的数据流图

4技术可行性分析

采用JAVA和SQLServer2005开发,即使遇到困难,也能从丰富的参考书中找到解决方案。

开发出的系统的功能主要是实现信息查询,信息添加,信息修改,信息删除功能。

信息查询是查看记账记录,可按月份查看。

信息添加是添加收入和支出的记账信息,包括相应的事件和金额。

信息修改是修改以前记录的信息,包括收入和支出。

信息删除是删除某月的记账记录或某一次的记账记录。

5经济可行性分析

开发需求较低,主要是用于测试课程设计完成效果,加上成熟的软硬件环境、目标系统并不是十分复杂和开发周期较短,人员经济支出有限。

开发完成运行后,为使用者带来便利,为系统的进一步推广创造了条件,经济收益将远超过投资。

从经济角度考虑,此系统开发可行。

6法律可行性分析

由于整个系统是自行开发,自行使用,所以系统本身不存在版权争议,符合国家各种政策法规。

7存在的主要问题分析

7.1软件开发目的性的局限性

我们开发该系统的目的不是为了商业上的盈利,而是为了完成软件工程课程设计,开发软件的出发点很低,所以开发的积极性也大打折扣,对系统也没有进行很具体的需求分析和系统预测分析。

7.2软件开发经费的局限性

开发该系统完全是为了完成课程设计作业,根本就没有什么经费问题,所以没有在该系统上花费很多时间和精力。

7.3软件开发人员专业性水平的有限性

我们在课堂上主要是学了一些基本的软件开发技巧,在课外时间也是根据兴趣学了一些自己感兴趣的软件开发知识,没有经过专业的培训,以前更没有开发软件的经验,所以开发出来的系统很有局限性。

7.4软件开发时间的有限性

开发该系统之前并没有给时间去做详细的市场调查,对市场的需求不是很明确,只是根据自己的感觉和在网络上查找的一些基本资料确定了该系统的需求,所以该系统能不能很好的满足市场需求不是很有保证。

8结论

本系统可以开始进行实施;从人力资源上面来看,可以充分利用各人的擅长来开发本系统;从开发成本上面来看,将支出成本降到最低;所以推荐此方案最佳。

三项目开发计划

1编写目的

程序设计不等于软件工程,这是本课程需要进一步让学生加深理解的地方。

传统的程序设计在一定程度上偏重于计算机科学领域,属于较抽象的范畴;而软件工程则是要实实在在地做出一个满足用户要求的系统来,这是一个很具体的实践过程。

作为一个软件开发者,必须具备从事工程实践的技能,包括软件项目的可行性研究、系统分析、设计、编写文档、源码设计、使用工具等基本技能,这就是课程设计要实现的一个目标。

2定义

本文档所用到的定义如下:

1)软件项目管理:

对整个软件开发过程进行管理。

是定义全部项目任务,识别出关键任务,跟踪关键任务的进展状况,已保证能及时发现拖延进度的情况

2)软件生命周期(softwarelifecycle):

是人们在研究软件开发过程时所发现的一种规律性的事实。

主要包括计划、分析、设计、编程、测试和维护等阶段。

3)需求分析:

软件需求说明书是需求分析阶段的最后成果,该说明把在软件计划中确定的软件范围加以展开,制定出完整的信息描述、详细的功能说明、恰当的检验标准以及其他与要求相关的数据。

4)概要设计:

经过需求分析阶段的工作,系统必须“做什么”已经清楚了,概要设计的基本目的就是回答“概括地说,系统应该如何实现”这个问题。

概要设计的重要任务就是设计软件的结构,也就是要确定系统是由哪些模块组成,以及这些模块相互间的关系。

5)详细设计:

概要设计已经确定了每个模块的功能和接口,详细设计的任务就是为每个模块设计其实现的细节。

详细设计阶段的根本目标是确定应该怎样具体地实现所需求的系统,得出对目标系统的精确描述。

6)软件测试:

软件测试就是在软件投入运行前,对软件需求、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。

测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。

3项目概述

3.1工作内容

本项目的内容包括技术和非技术两大部分:

技术上需要进行数据库开发,代码编写;android手机页面的设计和代码的编写;运用eclipse和android模拟器实现全部代码的编写和程序的调试。

1.问题定义(明确问题边界)

2.可行性研究(提交可行性研究报告)

3.项目开发计划(提交项目开发计划书)

4.需求分析(提交需求分析说明书)

5.概要设计(提交概要设计说明书)

6.数据库设计(提交数据库设计说明书)

7.详细设计(提交详细设计说明书)

8.系统测试(提交测试计划、测试用例和测试报告)

9.用户使用说明(提交用户手册)

3.2主要参加人员

吴海林,余海刚

3.3服务

A、用户方面:

可以登录、查询,删除记录的记账信息。

B、系统方面:

查看用户、管理系统的各种信息、查看系统的信息。

3.4假设和约束

假设:

1.编码要规范,要易读,易维护。

2.编程语言采用开源的JAVA语言。

3.文档必须按照国标的文档编写

约束:

本项目计划能够顺利执行的条件是基于以下假设成立:

⏹系统能够满足计划中对各种操作需求;

⏹系统实施过程中能得到客户的有效支持与配合;

⏹系统开发过程中有老师的专业指导;

3.5完成项目的最迟期限

按计划,本项目最迟将于2012年7月5日完成。

在此前提下,开发人员保留对开发时间进度进行局部调整的权利。

3.6风险评估和控制

描述预计项目中可能发生的风险,风险系数=严重等级X风险概率。

风险等级是指该风险对项目进度、质量和成本影响的严重程度,可分为四个等级,等级越高影响越严重。

1.客户风险,指由于客户成熟度不够而产生的风险

2.过程风险,指由于项目组成员对开发过程不熟悉而产生的风险

3.成本风险,指由于项目成本过高而产生的风险

4.技术风险,指由于采用项目组成员不熟悉的技术而产生的风险

5.质量风险,指由于用户要求的质量过高而产生的风险

6.时间风险,指由于开发时间过紧而产生的风险

7.需求风险,指由于需求调研不充分而产生的风险

4产品

41程序

移交给最终用户的内容包括完整的软件,数据库系统,用户手册及相关的代码、文档、说明及范例。

4.2文件

移交用户的每种文件的名称及内容要点:

A、定义:

明确要解决的问题是什么?

B、可行性研究报告:

要解决的关键问题是“对于上一个阶段所确定的问题有行得通的解决办法吗?

”;

C、需求分析报告:

准确地确定“为了解决这个问题,目标系统应该做什么?

”,主要是确定目标系统必须具备哪些功能;

D、概要设计报告:

概括的说就是“应该怎么实现目标系统”,主要任务是设计程序的体系结构;

E、详细设计报告:

设计出程序的详细规格说明;

F、编码及单元测试文档:

写出正确的容易理解、容易维护的程序模块;

G、综合测试文档:

利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。

执行测试用例后,需要跟踪故障,以确保开发的产品适合需求;

H、软件维护文档:

通过各种必要的维护活动使系统持久地满足用户的需要。

5实施计划

5.1工作任务的分解与人员分工

5.2接口人员

负责接口工作的人员及他们的职责:

吴海林:

需求分析、数据库设计,概要设计,详细设计,系统测试;

余海刚:

问题定义,可行性研究、项目开发计划,用户使用说明

5.3关键问题

由于没有相关的系统开发的经验,而且对Android2.2开源框架的组合不够熟悉,以前也没有做过一个比较正规的软件项目,资料来源也有限,可能对本系统的实现多少有点影响。

6计算机系统支持

A、运行该软件系统所需要的硬设备包括服务器和客户机:

1GHz以上处理器,内存不少于256M。

3G以上空余硬盘空间。

客户机为普通电脑。

B、运行该软件系统所需要的软设备包括:

安装了JDK1.5版本以上

安装了android1.6版本以上

以及相关的jar包

C、开发这个系统运用到的软件

eclipse3.7版本

Android2.2模拟器

四需求分析

1引言

1.1编写目的

通过对主流记账系统的研究,根据可行性分析的方案和项目成员的讨论,编制本需求说明书。

本报告用于记账系统的需求规格,明确系统的功能需求,业务流程和性能要求以及与有关系统的接口关系,它将是系统最终实现和审评的根据之一,是进一步设计、开发的基础。

本报告的阅读范围:

项目组的项目管理、软件开发和系统测试人员、指导老师等。

1.2系统说明

该系统基于android手机平台2.2版本,易于操作,界面美观,实现对账目的基本添加删除查询功能。

1.3术语定义

Ø用例(usecase):

用例是系统单元提供的外部可感知的功能单元,表达成系统单元和与之间交互的一个或多个活动者的消息序列,用例的目的是定义清晰的行为块而不解释系统的内部结构。

Ø用例视图(usecaseview):

系统所有的参与者和所有的用例组成了用例模型。

用例视图从外部用户的角度捕获系统、子系统或类的行为,它将系统功能划分为对参与者具有意义的事务。

这些功能块称为用例。

Ø用例图:

用例图是由参与者、用例、关联和边界四个要素组成。

Ø活动图:

活动图是通过提供特定的场景内交流的图形化表示来补充用例。

活动图可以描述存在的并且已经被定义为需求到处任务一部分的活动或功能。

Ø领域模型:

领域模型能捕获语境中最重要的对象模型,领域对象代表系统工作的环境中存在的事情或发生的事件。

Ø行为建模:

行为建模显示了软件如何对外部事件或激励做出相应。

2需求规定

2.1非功能性需求

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。

计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。

为了适应现代社会人们高度强烈的理财观念,个人记账系统为人们带来了极大的方便。

该软件是以汉语编程语言为实现语言,其功能在系统内部有源代码直接完成。

通过操作手册,使用者可以了解本软件的基本工作原理。

操作人员只需输入一些简单的汉字、数字,即可达到记录消费的功能。

同样为了美观,软件需要利用图片等加入界面设计中使软件更加的美观大方。

软件需要简单易懂,易于操作,对系统要求低等

2.2功能性需求

安卓手机个人记账软件主要实现用户的消费记录功能,便于用户查询。

它需要具有以下几个功能需求:

1登陆功能

作为个人理财记账软件,需要具有信息的隐蔽性,设置用户密码登陆能够实现信息的安全隐蔽。

2添加记录

软件在添加账目的时候可以选择时间,具体金额和账目的属性,并将同一时间段记录保存在一起。

3查询账目

软件可以根据时间段查询该时间段的消费记录。

4删除记录

软件通过查询账目对某条记录进行删除。

2.3性能要求

2.3.1时间特性

本系统在正常的网络环境下,应能够保证系统的及时响应:

A、一般操作的响应时间应在3~5秒内。

B、登录系统的响应时间不定,可能在5~20秒内。

C、数据库检索超时不超过20秒。

2.3.2适应性

满足运行环境在操作系统之间的安全移植和与其它应用软件的独立运行要求。

其他适应性建立在硬件和系统软件稳定的基础上。

3运行环境要求

该手机记账系统是基于android2.2系统的软件,所以必须是拥有android系统的手机才能运行。

其他手机系统无法运行,在电脑上必须安装android模拟器才能运行该软件。

4其他需求

Ø系统的安全性:

对于系统的重要数据都有密码保护,具有一定的安全性。

Ø系统的封闭性:

用户的封闭性较好,用户基本上在提示信息下输数据。

Ø系统的可移植性:

能在Windows、Linux和Unix操作系统上运行。

Ø系统的可维护性:

采用基于JAVA技术系统应用平台,使系统具有良好的可维护性和可扩展性。

五概要设计

1编写目的

本文档描述系统在功能上的主要设计和思想,预先估计以后系统可能达到的目标。

本阶段完成系统的大致设计并明确系统的数据结构与软件结构,将一个软件需求转化为软件表示的过程。

本文档的阅读对象是课程设计指导老师以及本软件的开发小组人员,此文档将作为本小组进行详细设计和软件开发的依据,并且可帮助以后进行系统扩展和维护的开发人员了解和维护此系统。

2总体设计

2.1需求规定

系统各个模块设计见表5-1所示:

表5-1系统各个模块设计

功能名称

支出

收入

查询和添加

删除

一月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

二月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

三月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

四月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

五月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

六月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

七月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

八月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

九月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

十月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

十一月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

十二月入账单

写入支出的事项和金额

写入收入的事项和金额

查询或添加当月的支出和收入情况

删除该月或某支出,收入的记录

2.2运行环境

硬件环境:

手机CPU的内存最好在256MB以上,存储器容量大小不限。

软件环境:

android1.6以上平台。

2.3基本设计概念和处理流程

此系统的功能层次图如图5.1所示:

图5.1系统层次图

2.4结构

A、系统的框架结构图如图5.2所示:

图5.2系统的框图

3接口设计

3.1用户接口

A、登录界面:

由输入用户名、密码的文本框和登录、注册按钮等组成;

B、查询:

查询某月的支出和收入记录情况;

C、添加界面:

添加当前的支出和收入信息;

D、删除界面:

删除记录的支出和收入情况;

3.2外部接口

A、硬件接口:

由于我们使用的通信接口是TCP/IP,因此这里的硬件接口问题主题就是TCP/IP层中的网络接口层,它负责数据帧的发送和接收,帧是独立的网络信息传输单元。

B、软件接口

这里的接口问题主要就是怎么样与Sqlite数据库进行通信,以便对数据库进行读取和写入操作。

3.3内部接口

一个具体的读取数据库内部需要的操作如图5.3所示:

图图5.4读取数据库内部需要的操作

4系统出错处理设计

4.1出错信息

系统与SQLite数据库进行数据的操作时,有时会出现各种的异常,主要的异常为添加数据外键参照的异常、数据为空异常、类型匹配异常,只有有上面的情况就会出现插入异常;更新异常与插入数据异常类似,这里不详细的介绍;删除异常主要是表表数据关联删除的异常(外键参照),数据不存在时也会出现异常。

4.2补救措施

A、所有的数据库数据备份到一个安全的地方,假如当前的数据库数据出现异常,可以用备份的数据库进行恢复;

B、根据用户的操作,系统记录了其相应的日志信息,可以根据日志信息恢复;

C、假如无法启用备份程序则需要关闭网站,进行抢修。

4.3系统维护设计

A、技术层面:

1)使用较新的开发和维护技术;

2)数据库管理员管理好数据库数据;

3)专职维护人员维护硬件。

B、人员层面:

1)维护协议;

2)思想认识;

3)工作流程及方式方法。

六数据库设计

1引言

1.1编写目的

通过对android手机记账系统的研究,根据可行性分析的方案和项目成员的讨论,以及需求说明书,编制数据库设计说明书。

本报告通过对android记账系统的需求分析,明确了系统中功能需求,业务流程和性能要求以及与有关系统的接口关系,从而确定了数据库的设计方向和基本信息的构建,数据库系统设计是软件系统设计中最重要的一部分之一,数据库系统主要是对系统中所涉及到的数据进行管理和操作。

它是对系统的实现和审评的根据之一。

这份数据库说明书是为了说明本小组项目的数据库的相关信息,以供本小组其他成员在使用到数据库时更顺利,以及为了更好的进行数据库设计。

本报告的阅读范围:

项目组的项目管理、软件开发和系统测试人员、指导老师等。

1.2android数据库系统简介

SQLite介绍

SQLite一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能。

此外它还是开源的,任何人都可以使用它。

许多开源项目((Mozilla,PHP,Python)都使用了SQLite.

SQLite由以下几个组件组成:

SQL编译器、内核、后端以及附件。

SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLite的内核变得更加方便。

图6.1Sqlite内部结构

SQLite基本上符合SQL-92标准,和其他的主要SQL数据库没什么区别。

它的优点就是高效,Android运行时环境包含了完整的SQLite。

SQLite和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在CREATETABLE语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。

当某个值插入数据库时,SQLite将检查它的类型。

如果该类型与关联的列不匹配,则SQLite会尝试将该值转换成该列的类型。

如果不能转换,则该值将作为其本身具有的类型存储。

比如可以把一个字符串(String)放入INTEGER列。

SQLite称这为“弱类型”(manifesttyping.)。

此外,SQLite不支持一些标准的SQL功能,特别是外键约束(FOREIGNKEYconstrains),嵌套transcaction和RIGHTOUTERJOIN和FULLOUTERJOIN,还有一些ALTERTABLE功能。

除了上述功能外,SQLite是一个完整的SQL系统,拥有完整的触发器,交易等等。

2数据库详细设计

2.1数据库的建立

Android不自动提供数据库。

在Android应用程序中使用SQLite,必须自己创建数据库,然后创建表、索引,填充数据。

Android提供了SQLiteOpenHelper帮助你创建一个数据库,你只要继承SQLiteOpenHelper类,就可以轻松的创建数据库。

SQLiteOpenHelper类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。

SQLiteOpenHelper的子类,至少需要实现三个方法:

1构造函数

调用父类SQLiteOpenHelper的构造函数。

这个方法需要四个参数:

上下文环境(例如,一个Activity),数据库名字,一个可选的游标工厂(通常是Null),一个代表你正在使用的数据库模型版本的整数。

2onCreate()方法

它需要一个SQLiteDatabase对象作为参数,根据需要对这个对象填充表和初始化数据。

3onUpgrage()方法

它需要三个参数,一个SQLiteDatabase对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

2.2数据库的基本结构

在本系统中创建一个名为accountBooks的数据库。

在该数据库中创建名为accountbook的表,在表中添加如下列:

ID

记录编号

ACTION

账目摘要

MONEY

金额

YEAR

年份

MONTH

月份

DAY

TYPE

账目类型

具体代码实现如下:

publicvoidonCre

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2