软件工程实训项目案例--Android移动应用开发
实训过程
角色分工
1.项目经理:负责项目的组织实施,制定项目计划,并进行跟踪管理
2.开发人员:对项目经理及项目负责
3.需求分析员:负责系统的需求获取和分析,并协助设计人员进行系统设计
4.系统设计、架构设计:负责系统设计工作,并指导程序员进行系统的开发工作
5.程序员:一般模块的详细设计、编码测试,并交叉进行模块的白盒测试
6.数据库管理员:负责数据库的建立和数据库的维护工作
7.测试人员:进行项目各阶段的测试工作,包括模块测试、系统需求测试、集成测试、系统测试等工作(对用户需求负责)
8.配置管理员:负责项目的配置管理
9.质量保证人员:有独立的小组进行
需求分析及原型设计
1.需求分析阶段
(1)获取需求
+了解项目所有用户类型及潜在的类型,然后根据用户要求来确定系统的整体目标和系统的工作范围
+将需求分为功能需求、非功能需求(如响应时间、平均无故障工作时间、自动恢复时间等)、环境限制、设计约束等类型
+确认需求获取的结果是否真实地反映了用户的意图
(2)分析需求
+以图形表示的方式描述系统的整体结构,包括系统的边界与接口
+通过原型、页面流或其他方式向用户提供可视化的界面,用户可对需求做出自己的评价
+系统可行性分析,需求实现的技术可行性、环境分析、费用分析、时间分析等
+以模型描述系统的功能项、数据实体、外部实体、实体之间的关系、实体之间的状态转换等方面的内容
(3)编写需求文档
+使用自然语言或形式化语言描述
+添加图形的表达方式和模型表征的方式
+需包括用户的所有需求(功能性和非功能性)
用于需求建模的方法有很多种,最常用的包括用例图、实体关系图和数据流图三种。用例图多用在面向对象的开发中,通过描述系统和活动者之间的交互来描述系统的行为,最主要优点在于它是用户导向的,用户可根据自己所对应的用例来不断细化自己的需求,此外,Use Case还可以很方便地得到系统功能的测试用例。
实体关系图(ERD)用于描述系统实体之间的对应关系,需求分析阶段使用ERD描述系统中实体的逻辑关系,在设计阶段则使用ERD描述物理表之间的关系。ERD只关注系统中数据间的关系,而缺乏对系统功能的描述。
DFD数据流图作为结构化系统分析与设计的主要方法,尤其适用于MIS系统的表述。DFD使用4种基本元素描述系统的行为:过程、实体、数据流及数据存储。DFD方法直观易懂,使用者可以方便地得到系统的逻辑模型和物理模型,但是无法判断活动的时序关系。
2.原型设计
对于Android项目而言,原型设计的重要性更为突出,界面(美观+易用性)是移动应用的灵魂。
原型设计,绝不仅仅是画几个界面,设计思路应遵循“用户导向+简易操作”原则
+要形成人们希望的产品使用方式,以及人们为什么想用这种产品等问题的见解
+尊重用户知识水平、文化背景和生活习惯
+通过界面设计,让用户明白功能操作,并将作品本身的信息更加顺畅得传递给使用者
+通过界面给用户一种情感传递,使用户在接触作品时产生情感共鸣
+展望未来,要看到产品可能的样子,它们并不必然就像当前这样
需求分析阶段的注意事项:
1.需求分析阶段关注的目标是“做什么”,而不是“怎么做”
2.识别隐含需求(有可能是实现显式需求的前提条件)
3.需求符合系统的整体目标
4.保证需求项之间的一致性,解决需求项之间可能存在的冲突
需求及原型评审
评审重点:
1.功能:软件的用途
2.外部接口:此软件如何与人员、系统硬件、其他硬件及其他软件进行交互
3.性能:不同软件功能都有什么样的速度、可用性、响应时间、恢复时间等
4.属性:在正确性、可维护性、安全性等方面都有哪些事需要考虑
5.是否指定了在需求规格说明书之外的任何需求
6.不应说明任何设计或实施细节
7.不应该对软件附加更多约束
8.需求规格说明书是否合理限制了有效设计的范围而不指定任何特定的设计
9.需求规格说明书是否显示以下特征:
(1)正确性
(2)明确性:每个需求是否都有一种且只有一种解释;是否已使用客户的语言;是否使用图来补充自然语言说明
(3)完全性:需求规格说明书是否包括所有的重要需求;是否已确定并指出所有可能情况的输入值的预期范围;响应是否已同时包括在有效输入值和无效输入值中
所有的图、表和图表是否都包括所有评测术语和评测单元的完整标注、引用和定义?是否已解决或处理所有的未确定因素
(4)一致性
需求规格书是否与前景文档、用例模型和补充规约一致?它是否与更高层的规约一致?它是否保持内部一致,其中说明的个别需求的任何部分都不冲突?
(5)排列需求的能力
每个需求是否都已通过标识符来标注,以表明该特定需求的重要性或稳定性?
是否已标识出正确确定优先级的其他重要属性?
(6)可核实性
在需求规格说明书中说明的所有需求是否可被合适?
是否存在一定数量可节省成本的流程可供人员或机器用来检查软件产品是否满足需求?
(7)可修改性
需求规格说明书的结构和样式是否允许在保留结构和样式不变的情况下方便地对需求进行全面统一的更改?
是否确定和最大限度地减少了冗余,并对其进行交叉引用
(8)可追踪性
每个需求是否都具有明确的标识符
每个需求的来源是否确定
是否通过显式引用早期的工作来维护向后可追踪性
需求规格说明书产生的工件是否具有相当大的向前可追踪性
概要设计
数据库设计
设计评审
测试
软件工程实训项目案例--Android移动应用开发的更多相关文章
- IBM-ETP 实训项目前一天
明天就要开始项目了,实训项目,虽然之前做了几个项目,但是明天就要被一个有着8年项目经验的大牛带着做这个项目了.心中还是不免有点兴奋的.希望能学到更多的东西,来充实自己. 自己也搭建了一个小的demo ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (二)
基本要求 打开软件,即可进入2D文本交流界面, 软件此时已经连接到服务器,点击文本输入框输入你想说的话,点击发送按钮即可进行交流,点击CHAT和STUDY分别切换到聊天模式或是学习模式,聊天模式是机器 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (十四)
项目技术借鉴报告: 一.服务器端(Server) 1.分词 分词使用的是庖丁分词.使用盘古分词词库和词素作为辅助.其中包括下载Jar包并且使用. 2.人工神经网络 以网上已有的初级网络为蓝图,结合机器 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (十三)
对我们项目中的关键技术实现进行总结: 一.3DMax关键技术实现 1.一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. 2. 骨骼架设:首先对导入到3DM ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (八)
在本项目中使用到的“文本转语音”的技术总结: 文本转语音,使用的是科大讯飞的接口,因为此作品之中语音包不是重点,所以语音包的转换我们统一调用的科大讯飞的语音包接口,依旧是在线的文字转语音,客户端将来自 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (四)
刚开始做时,一点头绪都没有,整天的上网找资料,各种谷歌百度,各种博客论坛,搜索的关键词也无非是智能自然语言交流.智能机器人.中文问答系统等等等等.而我们的思路也是些零散的,例如我们知道会用到分词,会用 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (十)
关于本项目中使用到的庖丁分词的总结: Paoding 详细介绍 庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网.企业内部网使用的中文搜索引擎分词组件.Paodi ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (九)
项目技术总结: VoiceToText的具体使用方法: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (七)
在本项目中使用到的“语音转文本”的技术总结: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安卓的录音权 ...
随机推荐
- Windows下 C++ 实现匿名管道的读写操作
由于刚弄C++没多久,部分还不熟练,最近又由于开发需求要求实现与其他程序进行通信,瞬间就感觉想到了匿名通信.于是自己查阅了一下资料,实现了一个可读可写的匿名管道: 源代码大部分都有注释: Pipe.h ...
- POJ 1681---Painter's Problem(高斯消元)
POJ 1681---Painter's Problem(高斯消元) Description There is a square wall which is made of n*n small s ...
- #define lowbit(x) ((x)&(-x))原理详解
#define lowbit(x) ((x)&(-x)) 也可以写成如下形式: int Lowbit(x) { return x&(-x); } 例如: 1> x = 1: 十进 ...
- JVM中显示锁基础AbstractQueuedSynchronizer
在研究AbstractQueuedSynchronizer的时候我是以ReentrantLock入手的.所以理所当然会设计到一些ReentrantLock的方法.因为网上已经有很多关于AQS的文章了, ...
- 常用SQL语句优化技巧
除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发生. ①通过变量的方式来设置参数 好:stringsql = "select * from people p where ...
- Jaxb解析xml准换为javabean
先说下这个的背景吧,前些日子,有个以前的小同事说刚接触webservice,想解析下xml,记得我学的时候还是dom4j,sax的解析方式,最近看别人的代码用的jaxb的方式,觉得注解起来很简练,所以 ...
- WCF概念
WCF 概念 WCF是.NET Framework 上灵活通讯技术.在.NET 3.0推出之前,一个企业解决方案需要几种通讯方式.对于独立于平台的通讯,使用ASP.NET Web服务.对于比较高级的 ...
- C标准库<signal.h>实现
本文地址:http://www.cnblogs.com/archimedes/p/c-library-signal.html,转载请注明源地址. 背景知识 signal.h是C标准函数库中的信号处理部 ...
- Android Plugin
工欲善其事,必先利其器.以下介绍一些常用的Android Plugin,有助于开发. 1.adb-idea 支持在AS面板中,执行ADB命令.不过如果用惯命令行的话,可以不安装: 2.android- ...
- Python文件操作之简化代码
一朝误入此门中,从此红尘了如空.... 程序这条路,当真是路漫漫... 这两天找到一本书,名为<笨方法学Python第三版>,全实例,感觉挺好的.需要的点书名下载, 密码:gmpn 今天想 ...