软件工程实训项目案例--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团队 创新实训 项目博客 (七)
在本项目中使用到的“语音转文本”的技术总结: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安卓的录音权 ...
随机推荐
- IOC容器中bean的生命周期
一.Bean的生命周期 Spring IOC容器可以管理Bean的生命周期,允许在Bean生命周期的特定点执行定制的任务. Spring IOC容器对Bean的生命周期进行管理的过程如下: (1).通 ...
- ajax案例源码
html文件中demo2_index.html ---------------------------------------------------------------------------- ...
- SQL Server SQL语句执行顺序
执行顺序: 1.FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1 2.ON:对vt1表应用ON筛选器只有满足 为真的行才被插入vt2 3.OUTER(join):如果指定了 OUTER ...
- Mysql基本数据操作
一.mysql中的逻辑对象 mysqld(process_id(threads)+memory+datadir)-->库-->表-->记录(由行与列组成) 什么是关系型数据库:表与表 ...
- IPC机制--Binder
文章来自 Android技术内幕 系统卷 转:http://www.linuxidc.com/Linux/2011-08/40508.htm 什么是IPC机制以及IPC机制的种类 在Linux中,是以 ...
- javascript --- Ajax基础
神马是Ajax? Ajax即‘Asynchronous javascript and XML’(异步javascript和XML),也就是所谓的无刷新页面读取技术. http请求 首先要了解http请 ...
- ABAP Performance Examples
*modifying a set of lines directly(批量修改内表数据) *使用"LOOP ... ASSIGNING ..."可以直接修改内表中的数据,而不需要先 ...
- JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...
- Atitit.jsou html转换纯文本 java c# php
Atitit.jsou html转换纯文本 java c# php 1. 原理<p> <h> <li><div> 等lable转换为回车1 2. 调用2 ...
- 在Android Studio中用Gradle添加Robolectric
我们用Robolectric测试的话需要在gradle中进行配置,国内的详细教程太过简易,而且很多是低版本下的配置方案.所以经过本人的仔细摸索,找到了现在高版本中的配置方案,主要还是参考了官网的配置教 ...