ASE课程总结 by 张葳
本期ASE课程分为两个阶段,第一阶段的personal project与第二阶段的team project,其中,第一阶段旨在锻炼我们个人的问题解决能力和编程能力,第二阶段则锻炼主要我们的管理能力,合作能力,以及学习能力。总的说来在这一期的ASE课程上,我收获了很多,不仅使上述各项能力得到了锻炼,而且使我对软件的开发有了全新的认识。
这期课程中,我们小组最初想要编写一个能辅助英语学习的阅读器插件,最后伪release了一个带英语学习功能的阅读器,这其中我们经历了诸多波折。从一开始找不到合适的平台,到找到平台又找不到对应的SDK,到找到SDK有无法集成目标软件功能,到重新选择最终平台,每一次困难都几乎使我们放弃这个项目。不过好在,在ASE结课之前,我们终于完成了一个还看得过去的版本。这次的课程让我们对软件开发整体有了深刻的认识,所犯下的错误也为今后的开发积累了宝贵的经验。下面对这一次的项目做一个简要的小结。
Q:
小组的目标软件是什么?目标用户是什么?
A:
我们小组想开发一个能在英语阅读时候辅助英语学习的UWP平台下的pdf阅读器插件。该插件可以在英文文章阅读时实现查词,显示释义,添加注释,加入单词本,高亮生词等功能,以辅助英语学习。面向用户为上班族,学生,以及有经常阅读文献需要的用户。
Q:
你们的任务是怎样规划的?时间又是如何安排的?
A:
我们小组共五人分别完成产品的三个部分,由于我们产品的两个主要外部依赖,Bing词典接口和Foxit阅读器接口都需要阅读相关的资料及API参考,并与原产品团队进行沟通,因此有额外的工作量,因此分别分派了两人完成,剩下的程序主体一人完成。时间上在alpha版就完成所设计的所有功能,在beta版完成调试,美化等功能。
Q:
你们是否有按照计划完成?是否遇到过困难?
A:
严格来讲我们并没有按照计划完成。在alpha版阶段,与Foxit沟通消耗了大量时间,其后又由于win32平台与UWP平台兼容性的问题,我们的工作一度停滞。因此alpha版我们几乎没有完成什么功能。则导致我们在beta版几乎重做了大部分工作。在整个工程中,与不同软件接口交互是最大的困难。至于最终我们也没有解决版权等问题。
Q:
你们是否完成了一个可以使用的版本?
A:
理论上说是的,我们实现了所有计划应有的功能,给出了一个相对稳定的版本,并在小范围内进行了试用体验,收了好评吧,应该……除了美工上略有不足,已经基本达到了预期的目标。
ASE课程总结 by 张葳的更多相关文章
- ASE课程总结 by 冯晓云
开始的开始,采访往届ASE班的blog:http://www.cnblogs.com/legs/p/4894362.html 和北航软工M1检查:http://www.cnblogs.com/legs ...
- ASE课程总结 by 林建平
设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的辅助用户在阅读英文文献时记忆生词,提高用户的生词量,减少用户的阅读障碍.定义非常清晰,要有查 ...
- ASE课程总结 by 朱玉影
收获: 最大的收获应该就是对待选题要慎重吧,虽然前期做了一下调研,但是还是不够,所以到最后我们的项目才会不能公开发布,项目中间也是波折不断,导致我们走了很多弯路,浪费了很多时间吧.选题一定要慎重,慎重 ...
- ASE past project:interview & analysis
采访往届ASE课程学员李潇,他所在的团队blog戳这里http://www.cnblogs.com/smart-code/ Q1:师兄你觉得在团队项目中,有哪些需要注意的事情? A1:团队合作吧.首先 ...
- ASE team work proposal
Hi,我们是Azure Wrapper,欢迎来到我们的blog~我们将在这里记录下ASE课程的滴滴点点,美妙的旅程就要开始啦! 以下是每位队员提交的关于ASE 团队项目的提议: 朱玉影: 随着信息时代 ...
- [视频解说]0基础课程-运营商-Java它J2se
本节解说 运营商应用 Java 算被分成: 算术运算符 颂值运营商 逻辑运算符 位运算符 元运算符 这里录制了 视频解说这几大类运算符,并有练习题提供大家 面试题: 1. 最有效率的方式算出2乘以8等 ...
- 【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自己定义工作流)
基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构.自己定义工作流) 课程讲师:张弘 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring ...
- 公共语言运行库(CLR)开发系列课程(1):Pinvoke 简介 学习笔记
前言 让拖管代码对象和非托管对象协同工作的过程称为互用性(Interoperability),通常简称为 Interop. P/Invoke在托管代码与非托管代码交互式时产生一个事务(Transiti ...
- Android训练课程(Android Training) - 高效的显示图片
高效的显示图片(Displaying BitmapsEfficiently) 了解如何使用通用的技术来处理和读取位图对象,让您的用户界面(UI)组件是可响应的,并避免超过你的应用程序内存限制的方式.如 ...
随机推荐
- Django实现简单的用户添加、删除、修改等功能
一. Django必要的知识点补充 1. templates和static文件夹及其配置 1.1 templates文件夹 所有的HTML文件默认都放在templates文件夹下. 1.2 stati ...
- MNIST数据集介绍
大多数示例使用手写数字的MNIST数据集[^1].该数据集包含60,000个用于训练的示例和10,000个用于测试的示例.这些数字已经过尺寸标准化并位于图像中心,图像是固定大小(28x28像素),其值 ...
- 近期 github 机器学习热门项目top5
磐创智能-专注机器学习深度学习的教程网站 http://panchuang.net/ 磐创AI-智能客服,聊天机器人,推荐系统 http://panchuangai.com/ [导读]:Github是 ...
- Git 处理换行符的配置方法
core.autocrlf If you're programming on Windows and working with people who are not (or vice-versa), ...
- WeChat-SmallProgram:组件的业务 slot 的使用
1.调用组件向自定义组件插入内容,使用 slot 在自定义模板中有一对 <view><slot></slot></view> 这里是干什么用的呢? 在 ...
- iOS 重构AppDelegate
一.Massive AppDelegate AppDelegate 是应用程序的根对象,它连接应用程序和系统,确保应用程序与系统以及其他应用程序正确的交互,通常被认为是每个 iOS 项目的核心. 随着 ...
- 关于java动态代理模式
1. 动态代理 动态代理就是通过代理类是代理类与相关接口不直接发生联系,而在运行期(Runtime)实现动态关联. 动态代理主要用到java.lang.reflect包中的两个类,Invocation ...
- Javascript/Jquery遇到字符串自动NaN的问题
结果发现是一个id绑定了两次点击事件.修改之后,问题解决.
- 使用原生方法查询指定元素是否包含指定className
如果我们要查找某个指定元素是否包含指定的className,可以使用以下方法 eg:document.getElementById('Id').classList.contains('要查询的clas ...
- on duplicate key update 的用法说明(解决批量操作数据,有就更新,没有就新增)mybatis批量操作数据更新和添加
项目用的ORM框架是用springdatajpa来做的,有些批量数据操作的话,用这个效率太低,所以用mybatis自己写sql优化一下. 一般情况,我们肯定是先查询,有就修改,没有就添加,这样的话,单 ...