实训过程

角色分工

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移动应用开发的更多相关文章

  1. IBM-ETP 实训项目前一天

    明天就要开始项目了,实训项目,虽然之前做了几个项目,但是明天就要被一个有着8年项目经验的大牛带着做这个项目了.心中还是不免有点兴奋的.希望能学到更多的东西,来充实自己. 自己也搭建了一个小的demo ...

  2. 自然语言交流系统 phxnet团队 创新实训 项目博客 (二)

    基本要求 打开软件,即可进入2D文本交流界面, 软件此时已经连接到服务器,点击文本输入框输入你想说的话,点击发送按钮即可进行交流,点击CHAT和STUDY分别切换到聊天模式或是学习模式,聊天模式是机器 ...

  3. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十四)

    项目技术借鉴报告: 一.服务器端(Server) 1.分词 分词使用的是庖丁分词.使用盘古分词词库和词素作为辅助.其中包括下载Jar包并且使用. 2.人工神经网络 以网上已有的初级网络为蓝图,结合机器 ...

  4. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十三)

    对我们项目中的关键技术实现进行总结: 一.3DMax关键技术实现 1.一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. 2. 骨骼架设:首先对导入到3DM ...

  5. 自然语言交流系统 phxnet团队 创新实训 项目博客 (八)

    在本项目中使用到的“文本转语音”的技术总结: 文本转语音,使用的是科大讯飞的接口,因为此作品之中语音包不是重点,所以语音包的转换我们统一调用的科大讯飞的语音包接口,依旧是在线的文字转语音,客户端将来自 ...

  6. 自然语言交流系统 phxnet团队 创新实训 项目博客 (四)

    刚开始做时,一点头绪都没有,整天的上网找资料,各种谷歌百度,各种博客论坛,搜索的关键词也无非是智能自然语言交流.智能机器人.中文问答系统等等等等.而我们的思路也是些零散的,例如我们知道会用到分词,会用 ...

  7. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十)

      关于本项目中使用到的庖丁分词的总结:   Paoding 详细介绍 庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网.企业内部网使用的中文搜索引擎分词组件.Paodi ...

  8. 自然语言交流系统 phxnet团队 创新实训 项目博客 (九)

    项目技术总结: VoiceToText的具体使用方法: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安 ...

  9. 自然语言交流系统 phxnet团队 创新实训 项目博客 (七)

    在本项目中使用到的“语音转文本”的技术总结: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安卓的录音权 ...

随机推荐

  1. JMS学习(四) Selector详解

    一.前言 在掌握了消息的结构之后,我们接下来看一下JMS的一个重要功能:选择器.有些时候,作为消费者只希望处理自己感兴趣的消息.如果某个消息只有一个消费者,我们可以在让该客户端根据规则来处理自己感兴趣 ...

  2. Angularjs,WebAPI 搭建一个简易权限管理系统 —— Angularjs名词与概念(一)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 2. 前言 Angularjs开发CRUD类型的 ...

  3. mysql oom之后的page 447 log sequence number 292344272 is in the future

    mysql oom之后,重启时发生130517 16:00:10 InnoDB: Error: page 447 log sequence number 292344272InnoDB: is in ...

  4. require

      /* require.js框架 RequireJS 2.1.11 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. ...

  5. IOS MenuController初步了解

    IOS MenuController初步了解 默认情况下有以下控件已经支持MenuController. UITextField UITextView UIWebView 让其他控件也支持MenuCo ...

  6. ubuntu 获取root权限

    实验环境: ubuntu 13.04 背景:现在有一台装有 ubuntu 的电脑,如何获取root权限? 方案一:进入单用户维护模式,重置root密码. 方案二:U盘挂载原根分区,修改/etc/pas ...

  7. 问题解决——在结构体中使用set保存结构体数据

    =====================声明========================== 本文原创,转载请明确的注明出处和作者,并保持文章的完整性(包括本声明部分). 本文链接:http:/ ...

  8. 问题解决——cout 输出 CString

    Unicode下 wcout<<strText.GetString()<<endl;

  9. 读书笔记——Windows环境下32位汇编语言程序设计(3)一些基础知识

    声明函数用proto 定义函数用proc 局部变量只能定义,不能赋初值,类型不能用缩写. 全局变量可以定义的时候赋初值,默认值为0. 在invoke中,参数可以使用addr取址. sizeof 字节长 ...

  10. c#的序列化与反序列化

    这是反序列化的代码 using System.Runtime.Serialization.Json; public static T deserialize<T>(String s) { ...