实训过程

角色分工

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. Python基础(二),Day2

    常用的数据类型 int 整型 float 浮点 bool 布尔 string 字符串 列表的语法和用法 # 创建一个列表 list = [] #一个空列表 list = ['2323123','asd ...

  2. Metronic 使用到的开源插件汇总

    Metronic 是一套完整的 UI 模板,但不仅仅是模板,更应该说是一个 UI 框架.它除了提供了大量网页模板,也提供了非常多的 UI 组件,并且应用了众多 jQuery 插件.通过这些资源的整合, ...

  3. Python函数:一个简单的迭代

    #!/usr/bin/env python # -*- coding: utf-8 -*- def fact(n): if n == 1 : return 1 return n * fact(n-1) ...

  4. Java字符串格式化String.format常用用法

    常规的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形 ...

  5. [WP8] ListBox的Item宽度自动填满

    [WP8] ListBox的Item宽度自动填满 范例下载 范例程序代码:点此下载 问题情景 开发WP8应用程序的时候,常常会需要使用ListBox作为容器来呈现各种数据集合.但是在ListBox呈现 ...

  6. 实战3--应用EL表达式判断用户登录信息

    1.判断用户名是否为空,空则显示提示信息 (1)编写index.jsp页面 <%@ page language="java" contentType="text/h ...

  7. SQL JOIN

  8. 基础学习day12--多线程一线程之间的通信和常用方法

    一.线程之间的通信 1.1.线程之间的通信方法 多个线程在处理统一资源,但是任务却不同,这时候就需要线程间通信.    等待/唤醒机制涉及的方法:    1. wait():让线程处于冻结状态,被wa ...

  9. Class org.apache.struts2.json.JSONWriter can not access a member of class org.springframework.aop.TruePointcut with modifiers "public"

    Spring注入Action使用Json错误:org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: ...

  10. iOS-多线程--(pthread/NSThread/GCD/NSOperation)--总结

    零.线程的注意点(掌握) .不要同时开太多的线程(~3条线程即可,不要超过5条) .线程概念 > 主线程 : UI线程,显示.刷新UI界面,处理UI控件的事件 > 子线程 : 后台线程,异 ...