软件工程实训项目案例--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团队 创新实训 项目博客 (七)
在本项目中使用到的“语音转文本”的技术总结: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安卓的录音权 ...
随机推荐
- [转]基于 Quercus 的手游项目终于上线了
原文:http://blog.andsky.com/quercus-php-ngame/ 经过半年的开发,我们第一款手游戏终于开发完毕,架构使用了 netty + Quercus 实现用 php 通过 ...
- 树状数组---Squared Permutation
BNUOJ 51636 最近,无聊的过河船同学在玩一种奇怪的名为“小Q的恶作剧”的纸牌游戏. 现在过河船同学手有张牌,分别写着,打乱顺序之后排成一行,位置从左往右按照标号. 接下来小Q同学会给出个 ...
- JMS学习(二)- JMS Message Model 组成介绍及消息头详解
一.前言 从本文起依次详细介绍JMS中的一些重要的概念,主要参考了官方的JMS1.1的文档,该文档很老了,是02年的,那年,JAVA还没有被Oracle收购..本文主要介绍Message及其相关概念, ...
- CentOS6.5 FTP配置
一:安装vsftpd 查看是否已经安装vsftpd rpm -qa | grep vsftpd 如果没有,就安装,并设置开机启动 yum -y install vsftpd chkconfig vsf ...
- SharpGL学习笔记(十三) 光源例子:环绕二次曲面球体的光源
这是根据徐明亮<OpenGL游戏编程>书上光灯一节的一个例子改编的. 从这个例子可以学习到二次曲面的参数设置,程序中提供了两个画球的函数,一个是用三角形画出来的,一个是二次曲面构成的. 你 ...
- Bootstrap-用ICheck插件给CheckBox换新装
直接来吧! 下面是添加上复选框以后的树形菜单效果: 这样看起来有种驴唇不对马嘴的感觉. 所以就要想办法给这些复选框添加1些样式,让全部界面看起来搭配1些. 通过查询得知,有个叫ICheck的第3方Bo ...
- 照着别人的demo自己试着做了个放大镜效果
原理: A:放大镜 B:小图片 C:大图片可视区域 D:大图片 鼠标的位置应该在放大镜的中央,所以鼠标位置为:clientX=A.offsetLeft()+B.offsetLeft+1/2*A.o ...
- [ javascript html Dom image 对象事件加载方式 ] 对象事件加载方式
<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...
- android AsyncTask 只能在线程池里单个运行的问题
android 的AysncTask直接调用Execute会在在一个线程池里按调用的先后顺序依次执行. 如果应用的所有网络获取都依赖这个来做,当有一个网络请求柱塞,就导致其它请求也柱塞了. 在3.0 ...
- android Android-PullToRefresh 下拉刷新
1.github下载地址 原作者: https://github.com/chrisbanes/Android-PullToRefresh 我自己的: https://github.com/zyj ...