[I.2] 个人作业:软件案例分析

个人作业:软件案例分析

项目 内容
这个作业属于哪个课程 2025春季软件工程(罗杰、任健)
这个作业的要求在哪里 [I.2] 个人作业:软件案例分析
我在这个课程的目标是 学习软件工程原理,锻炼团队开发技巧,与队友协同完成一次项目开发
我在这个课程的目标是 分析开源软件,从作者角度来分析软件质量

第一部分 调研、评测

软件介绍

Sigil是一款开源的电子书编辑软件,专门用于创建和编辑EPUB格式的电子书。用户可以直接在编辑器中看到文本和格式的最终效果。除了创建EPUB文件,Sigil还支持导入HTML、TXT等格式,使得转换和编辑更加灵活。

软件使用流程

打开Sigil,显示编辑界面

输入要转换的文本内容,在右侧预览转换效果

保存该文本

随后即可使用epub阅读器上阅读(这里用WPS举例)

还可以使用Text Importer将txt转换为epub格式

选择要转换的txt文件

即可将其导入到当前tab页中

软件分析

Sigil功能十分丰富,可以满足用户编辑Epub文件的大部分要求,下面我将进一步分析Sigil在界面/功能/用户体验上的优缺点。

  • 界面

    • 优点:

      • 界面简洁,功能区划分清楚明了。尤其是提供预览界面,对于需要写代码的文件编辑非常友好,且支持实时显示,能让用户实时看到自己编写的内容。

      • 可扩展性非常强。比如在上方功能区预留了插件位置,用户可通过快捷方式迅速使用插件。

    • 缺点:

      • 上方功能区功能过多,且不显示具体功能内容而只有图标,使得新用户使用的时候非常容易弄不清各种图标代表含义

  • 功能

    • 优点

      • 直接编辑HTML/CSS(必须大夸特夸!!):对于有编程基础的用户,Sigil允许直接查看和编辑电子书的HTML和CSS代码。这种功能使得用户能够进行更精细的控制,也提供了更多的书籍调整项,比如调整特定段落的样式或添加自定义的HTML元素,适合需要高度自定义的用户。
      • 章节管理:Sigil提供了简便的章节管理工具,用户可以通过拖放方式轻松添加、删除或重新排序章节。
      • 元数据编辑:电子书的元数据包括书名、作者、出版日期、ISBN等信息。Sigil允许用户在总目录页编辑这些信息,确保最终电子书具备必要的信息。

      • 支持多种导入格式:Sigil不仅支持从零开始创建EPUB文件,还允许用户导入HTML、TXT等格式的文件。这意味着用户可以轻松将现有的文本内容转换为EPUB格式,无需从头开始编写,节省了大量时间。

      • 扩展功能:Sigil支持通过插件系统来增加额外的功能。用户可以根据自己的需求安装和使用社区开发的插件,比如自动生成目录、批量处理文件等。这种灵活性使得Sigil能够适应不同用户的具体需求。Sigil官网也提供了一份插件清单,用户按需使用

    • 缺点:

      • 不能提供直接的文件转换。如txt转换Epub,必须先新建一个空白Epub,后将txt导入到当前页面之中。对于只需要转换的文件来说显得流程繁琐。
      • 插件效率低。几乎所有插件都需要一分钟以上的启动时间,很容易怀疑自己没点开插件而不小点开一堆插件()。
  • 用户体验

    • 优点:
      • 体积小,非常轻便的软件。
      • 对于会编程语言的用户真的真的很好用!!市面上仅此一家的编辑源代码的含金量!!!
      • 用户使用氛围极好。在百度贴吧的Sigil吧里会有大佬发布的自己改良版本Sigil和轻量插件,大大提高了使用手感。这可能就是开源软件的意义所在。
    • 缺点:
      • 更新过少,导致使用起来有一种奇异的年代感。
      • 在2022年的一次大更中把极其好用的书面编辑能力删掉了,书面编辑能力可以直接在预览界面上编辑文本内容,系统会辅助补全相应的较为简单的源码。不知道为什么在更新中居然删掉了这个功能,该软件明明有那么多离谱的bug,偏偏闲的没事把唯一好用的功能给删了??
      • 对于不习惯代码编辑的用户而言入门困难。

用户调研

Epub格式的文件其实在生活中使用较少,大部分人只有在网上下载图书的时候才会遇到Epub文件,因此Sigil的用户在日常生活中也很难遇见。

我采访了吴际班级的是依辰同学。SYC同学平日喜欢看小说,但是很多小说只提供txt格式下载,在手机很难阅读,因此她会使用Sigil或Calibre将txt转换成Epub,在手机上进行阅读。

Q:你为什么使用Sigil

R:主要是用来看小说的时候转换格式。但最近用的最多的是Calibre,Sigil用的相对少一点。

Q:你觉得Sigil的优点在哪里

R:功能真的很多啊,不论什么样的文件扔进去,基本上都能找到功能转换出来。而且使用起来有种写Latex的感觉,宾至如归。

Q:为什么你最近用Calibre更多呢?

R:Calibre更简单一点,而且还有批量转换。基本上只要给一个文件夹,之后的流程就不用管了,对于我这种只读、不太关心转换效果的用户来说,真的很方便。转换完之后Calibre还能提供一个阅读界面,也可以在电脑上阅读Epub了。而且Calibre还能直接把文件推到手机的Kindle上,Sigil就还需要用微信文件传一下,再下载到手机里。

Q:但你还是在电脑上保留了Sigil对吗?

R:Sigil就属于,你可以不用,但是关键时刻不能没有。。两个软件在我这里并不冲突,一个负责批量,一个负责处理复杂一点的文件,各有优势。当然如果只能保留一个的话我还是会保留Sigil。

Q:你认为Sigil可以在哪里改进?你对其有什么不满意的地方?

R:建议和Calibre合并一下,比如搞一个非代码页面输入。每次都要敲html真的有点恼火,明明只是很简单的内容。。。或者在输入格式支持MarkDown也可以。还有就是修一修章节标题识别吧,经常莫名就无法生成。

评测结论

采用以下五级评分标准:

  • a) 非常不推荐
  • b) 不推荐
  • c) 一般
  • d) 好,不错
  • e) 非常推荐

经过以上工作,我对这个软件的评价是: 好,不错

Bug分析与提交

测试环境

操作系统:Win11

软件版本:Sigil 2.4.2 (最新版本)

Bug严重等级

  • 严重性分为五级,以五颗星作为代表,严重程度依次递增,分别为:
    • ★✰✰✰✰ 建议(通常是安全最佳实践的建议,而不是实际的漏洞)
    • ★★✰✰✰ 低危(漏洞存在,但影响较小或难以利用,通常不会直接危害系统安全)
    • ★★★✰✰ 中危(可能导致部分系统功能受损、用户体验受影响)
    • ★★★★✰ 高危(攻击者可能窃取敏感数据、执行未授权操作,但未必能完全控制系统)
    • ★★★★★ 致命(可能导致系统完全被攻破,攻击者可远程执行代码、获取管理员权限,或造成不可逆的数据丢失)

Bug 1

  • 可复现性:必然发生

  • 具体情况描述:当使用全部替换功能时,替换任意内容,计数区会显示%n

​ 但是将语言切换成英语,就会显示正常数量

  • bug分析:

    • 成因:我猜测是由于简中的符号识别问题,使得在该输出地方本该输出数字,反而输出了占位符%n

    • 严重性:

      • ★★✰✰✰ 低危

        虽然该bug对于简中用户来说相当恼人,但是毕竟不影响实际替换情况,用户如想查询替换数量,可在替换前进行数量查询,可以查询到详细数量。

    • 未修复原因:

      • 很显然,开发团队必然是英文团队,且主要用户也集中在欧美。因此对于简中语言的检查程度不够。
      • 测试把关不严,没有注意在特殊的配置或环境下测试。

Bug 2

  • 可复现性:必然发生

  • 具体情况描述:

    • 当进行搜索时,例如搜索单字“不”:

    • 随后继续点击搜索,会搜索下一个“不”字:

    • 此时点击“重启搜索”:

    • 却会依旧搜索到顺延的下一个“不”。

    • 相当于不论点不点重启搜索,其搜索内容都是一样的,该功能没有任何相应。

  • bug分析:

    • 成因:我认为可能有两种原因

      1. 压根没做该功能:我认为这个原因发生概率较小,毕竟已经流出了足够的余地,不至于不做这样一个简单功能。

      2. 针对于该软件的搜索功能而言,默认会从光标处开始搜索。而在搜索过程中,该功能将光标移动到了当前字符后:

        使得当重启搜索的时候,如果光标不复位,则默认重启后搜索的位置是从当前位置开始搜索,也就导致了该功能表面上看起来未响应。

    • 严重性:★★✰✰✰ 低危

      本身重启搜索也是一个很鸡肋的功能,不能用也就不能用了吧。。。但是一整个功能都不完全不能用还是很恼火,还不如在这里放一个其他好用的功能。

    • 未修复原因:

      • 开发人员粗心大意
      • 我认为纯纯是因为重启搜索是一个很鸡肋的功能,所以开发人员认为修不修完全无所谓。但我认为,不能因为一个功能是否用得到就不去维护该功能,这是一个很可耻的软件开发态度问题。
    • bug改进建议:

      • 如果是因为我猜测的第二种原因导致的bug,我建议在连续搜索的时候不移动光标,或者记录一下搜索开始时的光标位置,保证重新搜索的时候能将光标还原到原位置。

Bug 3

  • 可复现性:必然发生

  • 具体情况描述:

    • 当前页面中有Section0001,查询目录页中,其id为Section0001

    • 修改其名字为shuihuzhuan,但此时目录页中其页码id仍未Section0001

    • 此时新建一个新页,由于新页码默认是Section000x,而此时0001位空余,所以新建页名为Section0001。查询目录页,新页码id是不知名乱码。

  • bug分析:

    • 可能成因:文件名和id分别属于两个表,id表和name表,修改名称的时候不修改id,只修改name表,但新建页码的id又会从id表中查询是否已经使用过,一旦使用过就使用生成码替代。
    • 严重性:★★★✰✰ 中危(可能导致部分系统功能受损、用户体验受影响)
      • 这个问题很诡异。我不认为id起名应该使用生成码,这使得用户在修改页面的时候分不清哪个是真正的Section0001,而且软件在使用过程中也很容易识别到错误的id码从而进行错误的页面修改。
      • 这么明显的底层bug居然还没有导致目录崩溃也是很神奇。。。。只能说程序员的开发目标是能跑就行,跑的好不好另说。
    • 未修复原因:
      • 开发人员粗心大意
      • 和bug2一样,依旧是开发人员是懒狗。
  • bug修改建议:

    1. 建议加入修改id功能。反正不不允许有重名文件,同时名字也必须是ASCII,那直接修改id和修改名字有什么区别。
    2. 新建id的时候不查询该id是否在name表中,只查询id表,如果确实用过就顺延Section000x。

Bug 4

  • 可复现性:在特定条件下发生

    • 该bug会在刷新页面的时候发生,而刷新页面的时间较为随机,因此特定条件的bug
  • 具体情况描述:

    • 当正在输入的时候:

    • 假如此时刚好遇到页面刷新,则会强制截断输入。

    • 我复现的时候将这个输入静置了大概十多分钟,被强制截断。

  • bug分析:

    • bug成因:页面刷新的时候没有顾及到输入,蛮正常的现象
    • 严重性:★✰✰✰✰ 建议(通常是安全最佳实践的建议,而不是实际的漏洞)
      • 并不涉及安全问题,也不会很影响用户体验,浅浅给一颗星。
    • 未修复原因:和Bug1原因一样,开发人员是英文环境,所以没有顾及到汉语输入法。
  • bug改进建议:

    • 修改一下页面刷新逻辑。

第二部分 分析

工作量分析

在github中,整个Sigil的代码量大概在700w,以我一个只写过1w行项目的小白来说,这个工作量显得非常难以想象。我保守估计,开发至少需要6年。

软件质量分析

  1. 我使用过的Epub处理软件主要有前文提到过的Sigil、Cablibre,我调查同类软件还有Adobe InDesign、Jutoh。按我个人的排名,我会将Sigil排名第二,Calibre排名第一。

  2. 建议:

    求求你把曾经的神中神的极其好用的书面编辑能力还回来吧,大家只是嫌弃它bug多,不是嫌弃它不能用。。。。你不能因为有bug就把这个功能删掉了啊啊啊。。。

    开发人员别懒狗了,修一修你那鸡零狗碎的bug吧。。。。

建议和规划

  1. 市场现状:

    • 市场概况:

      • Sigil的直接用户主要是电子书作者、出版商和编辑。潜在用户包括广泛的自出版作者和普通读者,市场规模可进一步扩大。
      • 由于曾经电子书市场的迅速兴起,使得Sigil快速发展。而现在Sigil 的市场较为固化。
    • 竞争产品:主要竞争产品有:Calibre、Adobe InDesign、Jutoh。

      软件 主要特点 是否免费 使用友好度 特色功能 面向群体
      Sigil 专注于EPUB编辑,支持所见即所得和代码视图 免费 有学习曲线 多种视图切换,支持元数据编辑 独立作者、自出版者、教育工作者
      Calibre 全面电子书管理与转换,支持多种格式 免费 较为友好 电子书格式转换,内置阅读器 用户背景多样,包括大部分作者和读者
      Adobe InDesign 专业排版工具,支持多种出版格式 不免费 使用复杂 强大的排版和设计功能 专业出版商、设计师、广告公司
      Jutoh 简单易用的电子书创建工具,支持EPUB和Mobi格式 不免费 非常友好 快速创建和发布电子书 初学者、自出版作者
    • 产品定位

      • Sigil定位:专注于EPUB格式编辑,适合对电子书有特定需求的用户。
      • 优势:
        • 开源软件,免费试用
        • 直观的界面和多视图功能。
      • 劣势:
        • 对初学者不友好,需有一定代码基础。
        • 对大型文件的处理性能不足。
      • 竞争态势:市场竞争激烈,传统软件如Adobe InDesign占据高端市场,而Sigil与Calibre则争夺中低端用户。
  2. 市场与产品生态

    • 核心用户群:

      • 典型用户:独立作者、自出版者、学生和教育工作者。
      • 学历:大多具有本科及以上学历。
      • 年龄:多为20-45岁。
      • 专业:文学、传媒、教育等相关领域。
      • 爱好:写作、阅读、电子书制作。
      • 收入:收入水平不一,从学生到职业作者。
      • 表面需求:需要一个易于使用的EPUB编辑工具。
      • 潜在需求:希望能够更方便地管理和发布电子书,获取更多的格式支持。
    • 用户群体关系:

      • 用户之间可能形成写作和出版的社群,能够通过分享经验和资源构成特定的用户生态。
      • 目前简中使用群体的主要聚集地为百度贴吧里的Sigil吧,很多用户会在Sigil吧里分享自己的使用体验和制作的电子书。
    • 子产品与相关产品关系:

      • Sigil可以与其他电子书管理软件(如Calibre)结合使用,形成一个完整的电子书制作和管理生态。
      • 目前Sigil吧里有程序员分享自己改良版本的Sigil,结合了一定的Calibre功能。
  3. 产品规划

    • 新功能:推出轻量版本的代码编写,使用MarkDown进行文档编辑。随后通过内置算法将MarkDown转换成HTML/CSS代码,使得可以在多编程环境里进行编写。

    • 功能必要性分析 (NABCD)

      • Need (需求):
        • 现代用户倾向于使用轻量级的文档编写工具,Markdown因其简洁和易于学习而受到广泛欢迎。
      • Approach (方法):
        • 在Sigil中集成Markdown编辑功能,允许用户直接在软件中编写Markdown文档,并通过内置算法将其转换为HTML/CSS。
        • 这种方法简化了从文档到网页的转换过程,提升了用户的工作效率。
      • Benefits (好处):
        • 提高用户编辑电子书和文档的灵活性,使其可以在多种编程环境中使用。
        • 增强用户体验,使用户能够在熟悉的Markdown环境中工作,而无需学习复杂的EPUB格式。
      • Competition (竞争):
        • 目前市场上支持Markdown的编辑工具较多,但缺乏专注于电子书制作的软件。
        • Sigil的主要竞争者是Calibre,Calibre的优点在于其入门简单。Sigil可以通过简化其入门难度而吸收这部分的用户。
        • Sigil通过集成此功能,可以吸引更多的自出版作者和技术写作者,提升市场竞争力。
      • Delivery (推广):
        • 通过社交媒体、用户社区和行业论坛宣传新功能,吸引潜在用户。
        • 发布教程和示例,以展示Markdown功能的优势,帮助用户快速上手。
        • 参加相关的电子书和技术会议,进行功能演示,增加曝光率。
    • 团队角色配置

      • 团队角色
        • 2名开发人员(负责Markdown解析和HTML/CSS转换功能的开发)
        • 1名测试人员(负责功能测试和bug修复)
        • 1名UI/UX设计师(负责用户界面的设计和用户体验优化)
        • 1名项目经理PM(负责项目进度和协调)
        • 1名文档撰写者(负责用户手册和在线帮助文档)
    • 16周详细规划

      周数 任务内容 负责人
      1 项目启动,需求分析,确认功能列表 PM
      2-3 UI/UX设计初稿,用户反馈收集 PM&开发
      1-3 技术选择,开始开发环境搭建 开发
      4-8 开发Markdown解析功能和HTML/CSS转换功能 开发团队
      9-10 集成Markdown编辑器,前后端对接 开发团队
      11-12 收集内部测试反馈,修复bug 测试工程师
      13-14 开始用户测试,邀请核心用户进行试用,进行功能优化 测试工程师&PM
      15 进行第二轮测试,确保所有功能稳定 开发团队
      16 正式发布新版本 开发团队
posted @ 2025-03-13 23:03  郎赤娜  阅读(49)  评论(0)    收藏  举报