项目名称:LABOA

一.项目背景

  实验室中学生与导师的沟通经过qq或者微信,这样情况下的通知如果个人没有进行记录,有可能就会遗忘。如果通知的事情是一周后的会议等,在一段时间过后查找当条信息也会比较麻烦。
实验室存在公共的资源,例如书籍。书籍的借阅有时候会产生想要借但是找不到书,借的书的忘了还等问题。
  实验室的设备比如电脑显示器等的安排基本上都是需要的时候现找,有时候一台机器的使用者已经毕业了,但是查找的时候并没有了解到。
在实验室中做项目或者研究的时候,经常基于学长学姐的研发或者开发进行下一步的研究和开发。环境配置的时候需要手把手教,或者到处找之前配置文档。或者在研究和开发过程中有疑问的问方,不知道谁懂,不知道找谁询问。
  还有在参加一些比赛,课设或者自己有想法,需要自由组队的时候,没有一个有效的途径找到有同样想法的小组成员。
  针对以上等问题,本小组希望开发一个能在实验室范围的在线办公系统,为实验室的老师和同学提供一个便捷平台。通过该平台,可以及时方便地进行交流,以及留下记录。可以对实验室的资源进行登记、查询和分配。可以给当届和往届的同学间一个交流平台,可以分享实验室的资源,可以安排自己的日程并进行查看等等。方便实验室的管理和交流。

二.主要编程语言与开发工具

  • 编程语言 - Java

  Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
  同时,Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。并且Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
  其次是它的可移植性,Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。
  在性能方面,Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。
  Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。
  同时,Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。

  • 开发环境 - IDEA

  IDEA 全称IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。

三.NABCD分析

1. N(Need,需求)

  在实验室中,我们有很多事务需要记录,很多任务需要及时向导师报告,导师也好尽快尽详细地得知同学们研究方向的进展,当然还有资料要有条理地分享共用,书籍的借入借出动向,采购详情与进展等等,这些事项都需要我们有个工具来更好地管理。

2. A (Approach,做法)


  - 在形式上,我们采用web的形式
  - 通过日程管理安排实验室事务,避免遗忘
- 通过协作系统提升项目管理效率,监督项目进程
- 通过资料共享系统,简化分享过程
- 电子化管理实验室杂务,如设备、书籍等

3. B (Benefit,好处)

  • 针对于个人事务,安排更加条理清晰

  在什么时间做什么事情,我们可以及时记录到日程管理系统,这可以包括课程,活动,例会等等。相比于记录到笔记本上,这更加方便查阅与记录,一部手机,无时无刻,避免忘记重要事项。

  • 文件共享,对于该实验室更加专业有针对性

  每个实验室,都有自己的大方向,针对于这个方向的资料文件,我们可以存储在这里,历届学长学姐传上去的,我们都可以进行查阅下载,这样对于学习更加有继承性与针对性。

  • 针对于方向任务安排,导师对进度更加明确直观

  导师给学生安排了任务,当然希望可以看到任务的最新进展。在协作系统上,我们可以及时更新自己的任务动态与中间过程,一是可以帮助以后其他人在做相同或类似项目时可以参考借鉴,二是导师可以及时看到任务进展,提出针对性思考或建议。

  • 针对书籍流向,更加清晰

  每个实验室都有自己针对于该实验室方向的一些书籍,这些书籍在被同学借走之后,其他同学再借就不知道找谁去借。我们的书籍管理系统就是针对于此,可以记录书籍的流动详情,使得借书更加方便。

  • 对于实验室的重要通知,可以通过公告发布

  针对于实验室的例会,在未来某时间有什么活动,我们都可以记录在公告系统上,方便大家都知道心中有数,不至于遗忘。

4. C (Competition,竞争)

  • 我们的优势:

  针对于实验室或者办公室,针对性强。

  • 我们的劣势:

  构造了太多功能系统,技术上不成熟,三个人的技术也参差不齐,这将对我们来说是一个挑战。

  • 核心竞争力:

  相比于贴吧,我们更加专注于一个实验室的内部信息交流;相比于QQ,微信,我们提供的空间不在于扯淡,而是真正的学术上的交流。
  

5. D (Delivery,推广)

  我们认为最初的推广应该从我们本校开始,各实验室使用该系统之后肯定有这样那样新的想法,我们根据建议进行调整。
  其次,我们通过扩展周边学校以及朋友圈进行推广,同时,我们可以考虑通过在社交平台上合法地推广。

四.团队情况分析

各个成员之前常用的语言和框架都有所不同,但本次项目以Java语言进行Web开发,这就要求未接触过Web编程和Web框架的成员需要额外的时间去学习和使用新技术,但因为项目开发时间有限,所以要尽量缩短学习时间。我们准备以团队交流的方式来降低学习成本,精通Web编程的成员带领其他成员,并发现和解答其他成员在开发过程中的一些问题。

五.评审表设计

六.团队作业的比例权重

170320074(30%)
170327078(35%)
170320076(35%)

七.附:选题报告文档

https://github.com/3781/laboa/tree/master/doc