团队作业3--需求改进&系统设计
这个作业属于哪个课程 | 软件工程2024 - 广东工业大学 |
---|---|
这个作业要求在哪里 | 团队作业3--需求改进&系统设计 |
这个作业的目标 | 1.需求&原型改进 2.系统设计 3.Alpha任务分配计划 4.测试计划 |
团队成员
姓名 | 学号 |
---|---|
温惠兰(组长) | 3222004641 |
陈靖凯 | 3122004856 |
徐天 | 3121000506 |
黄立韬 | 3122004609 |
刘国浩 | 3122004619 |
张树程 | 3122004802 |
王喆 | 3122004625 |
1.需求&原型改进
1.1对选题及需求进行修改
-
问题:是否需要支持用户自定义字体和颜色,如何确保字体显示在不同操作系统和设备上的一致性??
-
修改:只提供简单的字体属性修改功能,支持常见字体和颜色选择。
-
问题:如何处理大文本文件的编辑和性能优化?
-
修改:采用延迟加载,只加载当前用户正在编辑的文本部分,而不是一次性加载整个大文件。可以根据用户滚动或光标位置动态加载文本内容,以减少内存占用和提高响应速度。
-
问题:图片文件大小和分辨率对应用性能的影响大不大?
-
修改:根据图片在应用中的显示需求,选择适当的分辨率。不需要显示高分辨率的图片时,可以使用低分辨率的图片来减少内存消耗和加载时间。
1.2修改完善上周提交的需求规格说明书
根据与师兄师姐的交谈,我们做出了如下改进
不足1:没有考虑到大文件对应用性能的消耗及内存占用
改进1:对大文件进行分类处理,大文本文件采用延迟加载来解决,大图片文件采用调整分辨率的方法来解决
不足2:没有考虑到不同系统之间的差异性,可能造成不同版本操作系统运行的应用产生界面效果的不一致
改进2:只支持常见字体和颜色选择与修改。
1.3功能分析的四个象限
外围功能 | 杀手功能 | |
---|---|---|
必要需求 | 打开文件,对文本的编辑,文本样式的修改,将文本内容保存到文件 | 代码编辑时语法高亮、自动补全,支持在Markdown文本展示数学公式 |
辅助需求 | 界面控件设计可以满足应用的使用 | 支持主题更改,更好地满足用户在不同环境下的使用 |
1.4调整任务分解WBS及相应的项目进度计划
时间 | 安排 |
---|---|
第11周 | 1. 团队项目Alpha任务分配计划,团队成员的各负责模块要完成初步的代码实现 |
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 | |
第12、13周 | 1.用户反馈+测试计划改进 |
2. 团队Alpha阶段个人总结 | |
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 | |
第14周 | 1. 团队项目Alpha博客:事后分析 |
2.系统设计
2.1 架构设计
2.2 初步接口设计
界面调用设计
class MainWindow : public QMainWindow {
Q_OBJECT
public:
void initializeUI(); // 初始化UI界面
void setupMenus(); // 设置菜单栏
void setupToolbars(); // 设置工具栏
void setupHelp(); // 设置帮助信息
};
文本基本编辑操作设计
class TextEditor : public QTextEdit {
public:
//设置字体颜色。
void setFontColor(const QColor& color, QTextCursor startCursor, QTextCursor endCursor);
//设置字体类型。
void setFontFamily(const QString& family, QTextCursor startCursor, QTextCursor endCursor);
//设置字体大小。
void setFontSize(int size, QTextCursor startCursor, QTextCursor endCursor);
//设置字体加粗。
void setFontBold(bool bold, QTextCursor startCursor, QTextCursor endCursor);
//设置字体斜体。
void setFontItalic(bool italic, QTextCursor startCursor, QTextCursor endCursor);
//剪切文本
void cutText();
//复制文本
void copyText();
//粘贴文本
void pasteText();
//清空文本内容
void clearText();
};
文件选择及读写设计
class FileManager {
public:
//打开指定文件路径的内容,并加载到TextEditor中
bool openFile(const QString& filePath, const QString& fileType, TextEditor* textEdit);
//将TextEditor保存到指定文件路径中
bool saveFile(const QString& filePath, const QString& fileType, TextEditor* textEdit);
//获取指定文件类型的文件路径
bool getFilePath(QString& filePath, const QString fileType);
};
代码块设计
class CodeBlock
{
//代码补全
QStringList autoCompleteSuggestions(TextEditor* textEdit, QTextCursor Cursor);
//语法高亮设置
void enableSyntaxHighlighting(TextEditor* textEdit, QTextCursor Cursor);
};
主题切换设计
class ThemeManager {
public:
ThemeManager();
void setTheme(const QString& themeName);
};
Markdown渲染设计
class MarkdownOperation{
public:
//渲染Markdown效果
void renderMarkdown(TextEditor* textEdit);
//检查公式语法
bool checkFormulaSyntax(const QString& latexCode);
};
3.Alpha任务分配计划
3.1 功能待实现
3.2 分解任务构成Sprint Backlog
3.3甘特图(拟定迭代冲刺计划)
4.测试计划
测试总纲 | 内容 | 时间计划 | 计划用时 |
---|---|---|---|
单元测试 | 多组测试数据,单元测试的代码覆盖率达到70% | 团队成员在完成对应模块时完成 | 1天 |
功能测试 | 确保编辑器最基本的文本编辑功能可以正常使用 | 界面调用、文本基本编辑操作完成进行 | 1天 |
界面测试 | 确保界面的所有控件都能正确做出相应,以及能满足用户的正常使用 | 项目完全整合后进行 | 1天 |
性能测试 | 测试在打开大文件时,程序的响应速度,及占用内存的情况 | 项目完全整合后进行 | 1天 |
正确性测试 | 检验语法高亮,代码补全以及Markdown渲染是否正确 | 项目完全整合后进行 | 1天 |