團隊作業3--需求改進&系統設計

dion_su_tian發表於2024-05-04
這個作業屬於哪個課程 軟體工程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 架構設計

image

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 功能待實現

image

3.2 分解任務構成Sprint Backlog

image

3.3甘特圖(擬定迭代衝刺計劃)

image

4.測試計劃

測試總綱 內容 時間計劃 計劃用時
單元測試 多組測試資料,單元測試的程式碼覆蓋率達到70% 團隊成員在完成對應模組時完成 1天
功能測試 確保編輯器最基本的文字編輯功能可以正常使用 介面呼叫、文字基本編輯操作完成進行 1天
介面測試 確保介面的所有控制元件都能正確做出相應,以及能滿足使用者的正常使用 專案完全整合後進行 1天
效能測試 測試在開啟大檔案時,程式的響應速度,及佔用記憶體的情況 專案完全整合後進行 1天
正確性測試 檢驗語法高亮,程式碼補全以及Markdown渲染是否正確 專案完全整合後進行 1天

相關文章