项目 | 内容 |
---|---|
这个作业属于哪个课程 | 课程社区的链接 |
这个作业的要求在哪里 | 作业要求的链接 |
课程任务 | 制定团队软件工程Alpha阶段初始任务分配 |
文章目录
Alpha阶段初始任务分配
前端
视图模块
-
Quick Memo视图
- UI接口对应后端
-
总视图
- UI接口对应后端
-
Event-based视图
- UI接口对应后端
后端
对象类
Memo
_CLASS_ Memo {
private _INT_ _id;
private _STRING_ _value;
public _INT_ GetID() { ... }
// Simply return _id.
public _STRING_ GetValue() { ... }
// Simply return _value.
public void Edit(_STRING_ newValue) { ... }
// Simply replace _value with newValue.
}
Event
_CLASS_ Event {
private _INT_ _id, _priority;
private Event _fatherEvent; // Do consider: Since EventBasedModule is actually a tree structure, could it perform better if we store not only the father but along with all the grandpas from the root as a father chain? If you think this works, please do as you wish.
private _LIST_<Event> _subEvents;
private QuickMemoModule _memoModule;
private Time _deadline, _startInDay, _endInDay, _routine, _remindInAdvance;
private _LIST_<Person> _associates;
private _STRING_ _place;
private _LIST_<_FILE_> _attachments;
private _FLOAT_ _progressPercentile;
public Event(_INT_ id,
_INT_ piority,
Event fatherEvent,
_LIST_<Event> subEvents,
QuickMemoModule memoModule,
Time deadline,
Time startInDay,
Time endInDay,
Time routine,
Time remindInAdvance,
_LIST_<Person> associates,
_STRING_ place,
_LIST_<_FILE_> attachments,
_FLOAT_ progressPercentile) {
...
}
// Remember to make each attribute a GetXXX() method.
public void EditPriority(_INT_ v) { ... }
// Simple _priotity value change.
public void AddMemo(Memo m) { ... }
// You may want to use QuickMemoModule.AddMemo(Memo memo).
public void DeleteMemo(Memo m) { ... }
public void EditMemo(Memo m, _STRING_ newV) { ... }
public void AddSubEvent(Event e) { ... }
// Append e to subEvents.
public void DeleteSubEvent(Event e) { ... }
public void FinishSubEvent(Event e) { ... }
public void EditDeadline(Time t) { ... }
public void EditStartInDay(Time t) { ... }
public void EditEndInDay(Time t) { ... }
public void EditRoutine(Time t) { ... }
public void EditRemindInAdvance(Time t) { ... }
public void AddAssociate(Person p) { ... }
public void DeleteAssociate(Person p) { ... }
public void EditAssociate(Person p, _STRING_ newName, _STRING_ newDescription) { ... }
public void EditPlace(_STRING_ p) { ... }
public void UploadFile(_FILE_ f) { ... }
// Append to attachments.
public void DeleteFile(_FILE_ f) { ... }
public void CalculateProgress() { ... }
// Get a current progress percentile.
public void TransEvent(Event newFather) { ... }
// Transfer this event to a new father.
}
Time
_CLASS_ Time {
private _INT_ _year, _month, _day, _hour, _minute;
}
Person
_CLASS_ Person {
private _STRING_ _name, _description;
}
Quick Memo核心功能模块
_CLASS_ QuickMemoModule {
private _LIST_<Memo> _memos;
public void AddMemo(Memo memo) { ... }
// Add to _memos.
public void DeleteMemo(Memo existingMemo) { ... }
// Delete thoroughly, make it long gone.
public void FinishMemo(Memo existingMemo) { ... }
// The reason why we don't mix this with DeleteMemo() is that there could be a review of what the user had done. So, please remember to store finished memos in some way.
public void EditMemo(Memo existingMemo, _STRING_ newValue) { ... }
// Conduct a simple value change.
public void TransMemoToEvent(Memo existingMemo, Event existingEvent) { ... }
// Completely transport the memo to the specified event. You may want to use the event method Event.AddMemo(Event event) which you can find later on.
public _LIST_<Memo> GetMemos() { ... }
// Simply return _memos.
}
Event-based核心功能模块
_CLASS_ EventBasedModule {
private _LIST_<Event> _eventRoots;
public void AddRootEvent(Event event) { ... }
// Add to _eventRoots.
public void DeleteRootEvent(Event event) { ... }
// Delete thoroughly, make it long gone.
public void FinishRootEvent(Event existingEvent) { ... }
// Please remember to store finished events in some way.
}
数据拉取模块
-
向远端发送请求
-
对请求结果作出反应
-
报错
-
处理数据
- 交当前数据
- 并当前数据
-
数据存储模块
- 数据库存储、读取
图像识别模块
- 图像上传
- 图像识别
- 文字提取
- 返回生成事项