任务一

a.分析《动态的太阳系模型项目需求规格说明书》初稿的不足。

任务概述描述的有些不具体,功能的规定不详细,在此次作业进行了修改。

b.参考《构建之法》8.5节功能的定位和优先级,给出功能分析的四个象限。

第一象限(杀手功能,必要需求):1.系统有多视角。2.太阳系是可以放大、缩小的,并且保证放大、缩小后行星照样能正确地运行。

第二象限(外围功能,必要需求):模拟系统界面逼真且美观,功能实用。

第三象限(外围功能,辅助需求):用户进入系统可以直接对系统进行操作。

第四象限(杀手功能,辅助需求):近日、远日行星的显示,放大、缩小、左、右、上、下移动功能,多视角观察太阳系概貌,行星运行、静止以及初始状态复原。

c.团队项目的WBS

d. 请以讲故事的方式介绍你们的项目中的功能,介绍一个场景,用户如何使用这项功能,解决了用户的什么问题。

l  场景:课堂教学

教师:同学们上课,这节课我们来认识一下太阳系概貌。(单用户系统所以无需输入密码及用户名等,直接打开系统,初始界面是整个太阳系静态图)

学生:请问老师,这些行星如何在太阳系中运动呢?

教师:那现在同学们请认真观看大屏幕。(先选定侧视视角,各个行星自己开始根据原先设定好的运行。教师也可以放大,缩小,左(右,上,下)移动整个太阳系,在太阳系运行过程中,可以暂停行星的运行,使太阳系处于静止状态,再次点击运行,行星会接着动起来。如果想回到最初的状态,点一下复原按钮,整个太阳系又回到了此视角下的最初始的状态。)

学生:老师,我对这些行星的运行方式还是有些不清楚,有其他角度的运行方式吗?

教师:我们现在来看一下,这些行星在俯视的时候是怎样运行的。(回到主界面,选择俯视模式,系统自己播放,教师也可与测试模式一样,实现放大、缩小、平移、静止和运行功能)

l  解决的问题

此系统,在功能方面,通过虚拟仿真技术发挥信息教学的优势,使得学生快速的认识学习了太阳系,以及各个行星的运行方式。并通过侧视与俯视两个视角,更清晰直观的观看了太阳系各行星的运行。教师在界面上进行放大,缩小,左(右,上,下)移动整个太阳系,;给学生以沉浸感,使学生能体验虚拟世界的太阳系。在界面设计方面,综合考虑了教学课堂要吸引学生注意力且调动学生积极性,尽量做到了界面的美观和功能的实用。

e. 团队成员估计各自任务所需时间

团队成员

任务

估计时间(天)

马仲山

可行性研究,编码

18

马世芳

需求分析,总体设计

13

马婧(12)

基于原型的项目调研,模块设计

9

马婧(13)

基于原型的项目分析,原型设计

9

张俊逸

需求改进与系统设计

8

马邵辉

单元测试,综合测试

6

f. 使用WBS工具,拆分项目,创建自己的看板图和燃尽图。

燃尽图:

任务二:

总体设计的基本目标就是概要地回答系统应该如何实现。所以设计在任何工程产品或系统中,是开发阶段的第一步。设计可以定义为应用各种技术和原理,例如UML图模型,就是一个很好的实现总体设计的工具。系统的总体设计使在前面系统分析的基础上,为后期将要构造的系统实体建立一个模型。构造这样的模型就需要很多设计模型。而这些设计模型当中,,一些基本的技术和工具起到了重要的作用。才使得总体设计游刃有余。完成开发。以下为总体设计结构图:

以下为需求分析阶段的用例图:

任务三

团队项目概要设计说明书github地址:https://github.com/teammzs/project9

团队项目软件需求规格说明书github地址:https://github.com/teammzs/Demo7/tree/master

任务四

 

问题一:系统总体设计和需求分析的关系是什么?

答:在我认为需求分析的结果是系统总体设计的依据。因为有了需求才会有设计,通过需求分析进行系统总体设计,在软件项目的开发过程中,系统的需求分析和设计是至关重要的环节,是软件设计和编码的基础,也是项目开始实施最容易忽视的环节,需求分析的质量直接关系到项目的进度和项目的成败。

问题二:如何设计系统的总体结构?

答:首先我在上一个问题中提到的一样,需求分析使系统总体结构设计的依据和方向,所以系统结构设计还是要以需求分析开始。系统设计工作应该自顶向下地进行。首先是总体设计,分模块设计和配置方案设计,然后再进行详细设计,逐层深入进行直至进行每一个模块的设计。总体设计主要是指在需求分析的基础上,对整个系统的划分(子系统)、机器设备(包括软、硬设备)的配置、数据的存贮规律以及整个系统实现规划等方面进行合理的安排。而详细设计是在系统总体结构之下,进行详细的分支设计。

项目分工

分工

成员

任务量

任务一

张俊逸、马世芳

40%

任务二

马仲山

30%

任务三

大马婧、小马婧

20%

任务四

马绍辉

10%

项目总结:

在经过此次的软件工程团队项目,本组成员对于软件开发的流程有了详细的理解。作为一个团队,统筹规划是多么的重要;并且要想使一个团队高效地运转起来,有多么的不容易。一开始,我们都觉得,对于开发一个软件,只要在最后能够生产出一个可以使用的产品就算完成任务,而对于项目文档以及前期设计并没有太看重。但是在实际的实践操作过程中,我们发现,盲目地去编写代码,而没有一份详细的规划作为指导,会极大程度地降低我们的开发效率。所以在一开始我们组成员进行了详细的分工,明确了各自的任务以及要求,而小组成员完成的也很认真及时,最终确保了实验的顺利进行。

《F4+2团队项目需求改进与系统设计》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. 使用 sendKeys(keysToSend) 批量上传文件

    未经允许,禁止转载!!! 在selenium里面处理文件上传的时候可以使用sendKeys(keysToSend) 上传文件 例如: element.sendKeys(“C:\\test\\uploa ...

  2. C语言typeof详解

    前言:     typeof关键字是C语言中的一个新扩展,这个特性在linux内核中应用非常广泛. 一,说明     typeof的参数可以是两种形式:表达式或类型. 1,表达式的的例子:       ...

  3. Summary: Binary Search

    Iterative ways: int binarySearch (int[] a, int x) { int low = 0; int high = a.length - 1; int mid; w ...

  4. canvas实现验证码功能

    我们在做一些后台系统登录功能的时候,一般都会用到验证码,最多的就是后台生成的验证码图片返回给前端的.也可以不调用后端接口,前端使用canvas直接生成验证码. 由于功能过于简单,不需要多少代码和文字说 ...

  5. 27. Remove Element(双指针)

      Given an array nums and a value val, remove all instances of that value in-place and return the ne ...

  6. Impala与Hive的比较

    1. Impala架构        Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具,Impala没有再使用缓慢的Hive+MapReduce批 ...

  7. Linux基础命令---cp

    cp 复制文件,可以将一个文件复制到另外一个地方,也可以将多个文件复制到目录. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语 ...

  8. Jmeter--正则表达式提取器

    正则提取器的一般使用场景是, 在我第二个请求参数中需要加入第一个请求的返回值, 此时通过正则提取器可以提取第一个请求返回值中指定的字段信息并赋值, 在第二个请求参数中直接引用该变量即可 jmeter的 ...

  9. 微服务:Java EE的拯救者还是掘墓人?

    有人认为,微服务的大行其道是在给Java EE下达死刑判决书.也有人认为,Java EE已死的论调可笑至极.读者朋友,你们怎么看? 引言 有人说,Java确实过于臃肿,经常“小题大做”.但PHP.No ...

  10. Python3 itchat实现微信定时发送群消息

    Python3 itchat实现微信定时发送群消息 一.简介 1,使用微信,定时往指定的微信群里发送指定信息. 2,需要发送的内容使用excel进行维护,指定要发送的微信群名.时间.内容. 二.py库 ...