软件工程高效学 | 实战案例:编写浏览器开发可行性研究报告

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 软件工程是计算机领域的一门专业基础课,它对于培养开发者的软件素质、提高开发者的软件开发能力与软件项目管理能力具有重要意义。本篇介绍实战案例——编写浏览器开发可行性研究报告。

640.jpg

01、实战案例——编写浏览器开发可行性研究报告

【例1】浏览器开发可行性研究报告。

本实例要求实现的浏览器是全功能的通用型网络浏览器,其功能主要包括以下4个方面。

网页内容分析: 通过对网页内容的分析,得出用户关心的网页的主题,获取相关的网页。

浏览: 最基本的功能,保证浏览的正确性。

缓存:缓存结构保持网站存储结构的原貌。

离线浏览: 能定义下载的层数、下载的文件类型及是否跨网站下载。

假设某公司将要投资开发此浏览器系统,你作为一家软件开发企业,准备接手此项目的开发。但是首先要对此项目做可行性分析,并形成报告,这份报告既要能打动投资者投入资金,又要能让自己在项目开发中有所收益。

全功能的通用型网络浏览器可行性研究报告

1. 引言

(1) 编写目的。

可行性研究的目的是对问题进行研究,以最小的代价在最短的时间内确定问题是否可解。经过对此项目进行详细的调查研究,初拟系统的可行性报告,对软件开发中将要面临的问题及其解决方案进行初步设计与安排,明确开发风险及其所带来的经济效益。

本报告经审核后,交由项目经理审查。

(2) 项目背景。

开发软件名称:全功能的通用型网络浏览器

项目任务提出者: X公司

项目开发者:X软件开发企业

用户:有需求的客户

项目与其他软件、系统的关系:在主流浏览器中,缓存并未保持网站存储原貌,使得希望观察网站组织结构的用户无法如愿。针对目前网速较慢、网费较高的情况,离线浏览的功能是有一定的需求用户群的。因此,决定开发这个软件。

(3) 参考资料。

国家标准文档。

2. 对现有系统的分析

(1) 处理流程和数据流程。

通过对目前市场上浏览器系统的分析,将现有浏览器系统分为以下5个子系统。

① 用户界面子系统:输入控制。
② 控制子系统:系统控制,以及消息传递。
③ 网页显示子系统:网页显示。
④ 网页获取子系统:从远端Web服务器获取文件,以及文件信息。
⑤ 数据管理子系统:包括数据库、数据库管理。
浏览器的系统结构图如图1所示。

640.png


■ 图1 系统结构图


子系统间对于数据处理的协作关系如图2所示。

640.png


■ 图2 子系统间数据处理协作图

(2) 用户体验分析。

当用户想要缓存某些网站的网页时,通常缓存下来的网页在脱机浏览时会出现图片缺失、网页效果无法正常展示,这是由于缓存网页时仅缓存了当前网页的内容,而没有存储整个网站的体系结构和依赖资源。

而当用户在网络上进行搜索时,常常得到大量与自己预期内容无关的结果,而真正想要的内容却无法得到,浪费了大量时间。目前普遍来说,用户的带宽较高,在使用网页时浪费了大量的闲置带宽。一系列的原因导致了当前浏览器的用户体验较差。

(3) 局限性。

现有系统的局限性如下。

① 脱机访问时,缓存网页原有结构、内容丢失。
② 缺少离线浏览功能。
③ 冗余带宽浪费较多。
④ 用户搜索信息耗时较多,且效果不佳。

3. 系统建议

(1) 对所建议系统的说明。

本系统是一个全功能的通用型网络浏览器,其主要功能有以下5个方面。

① 浏览:最基本的功能,保证浏览的正确性。
② 缓存:缓存结构,保持网站存储结构的原貌。
③ 提供一个系统化的解决方案,提供轻量级网页编辑、收发E-mail等功能。
④ 离线浏览:能定义下载的层数,能定义下载的文件类型,能定义是否跨网站下载。
⑤ 网页内容分析:通过对网页内容的分析,得出用户关心的网页的主题,获取相关的页面。

(2) 处理流程和数据流程。

本系统的处理流程和数据流程如下。

① HTTP客户端发起请求,创建端口。
② HTTP服务器在端口监听客户端请求。
③ HTTP服务器向客户端返回状态和内容。
④ 浏览器搜索自身的DNS缓存。
⑤ 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)。
⑥ 读取本地的HOST文件。
⑦ 浏览器发起一个DNS的系统调用。
⑧ 浏览器获得域名对应的IP地址后,发起HTTP“三次握手”。
⑨ TCP/IP连接建立起来后,浏览器向服务器发送HTTP请求。
⑩ 服务器端接收到了这个请求,根据路径参数,经过后端的处理,把处理后的结果数据返回给浏览器。如果是某网站的页面,就会把完整的HTML页面代码返回给浏览器。
浏览器拿到了某网站完整的HTML页面代码,在解析和渲染这个页面的时候,对里面的JS、CSS、图片资源,都需要进行上面主要的几个步骤的处理。

浏览器根据拿到的资源对页面进行渲染,最终呈现给用户一个完整的页面。

(3) 改进之处。

本系统的改进之处如下。

① 脱机访问时,缓存结构保持网站原有存储结构的原貌。
② 有离线浏览功能,能定义下载的层数,能定义下载的文件类型,能定义是否跨网站下载。
③ 针对使用高速光纤网的用户,通过浏览网页时的冗余带宽自动获取对用户可能有帮助的信息。
④ 通过对网页内容的分析,得出用户关心的网页的主题,获取相关的页面。

(4) 影响。

以下将说明在建立所建议系统时,预期将带来的影响。

① 对设备的影响。
该浏览器完全兼容原有设备,不需要对设备进行更换或改造。
② 对软件的影响。
该浏览器兼容现有应用软件和相关支持软件,无须对这些软件进行修改和补充。
③ 对用户单位机构的影响。
该浏览器简单易用,不需要用户单位机构设置专业人员进行管理和维护。
④ 对系统运行过程的影响。
用户操作规程与原系统基本一致。
运行中心与用户通过该浏览器实现联系。
用户登录及浏览数据存入服务器端的相应数据库,及时备份。
针对用户数据进行分析,通过对网页内容的分析,得出用户关心的网页的主题,获取相关的页面。
系统发生意外崩溃时及时修复,从备份恢复数据。
⑤ 对开发的影响。
需要雇佣一些开发人员进行产品开发。
需要租借开发人员办公场所。
需要一定数量的计算机进行开发。
需要建设浏览器官网,并建立数据库以提供技术支持。
⑥ 对地点和设施的影响。
该浏览器无须额外使用场所,无须改造现有设施。
⑦ 对经费开支的影响。
该浏览器开发难度适中,开支项主要有开发人员的工资及相应社会保障开支,开发场所房租费用,使用计算机的购买或租赁费用,网站及数据库建设和维护费用。
(5) 局限性。

由于该浏览器刚刚进入市场,支持该浏览器的扩展性插件可能比较少,不容易实现丰富的扩展性功能。随着浏览器使用人数的增加,其支持插件会逐渐增多,该问题会逐渐改善。

4. 技术可行性分析

(1) 主框架技术基础。

截至2021年,浏览器的全球市场占有率从高到低分别为Chrome、Apple Safari、Firefox、Microsoft Edge、Opera等。目前,常用的浏览器都可分为多个标签同时浏览多个网页,并方便地在网页间进行切换。

浏览器有时候需要安装些插件(也称加载项)来实现一些本身并不能完成的功能。如浏览PDF文件一般需要安装Adobe Reader插件,登录网上银行需要安装对应的安全插件等。IE用户可以在“管理加载项”中管理已安装的插件。

浏览器的用户界面有很多彼此相同的元素,其中包括:用来输入URI的地址栏、“前进”和“后退”按钮、书签设置选项、用于刷新和停止加载当前文档的“刷新”和“停止”按钮、用于返回主页的“主页”按钮。

因此,可以基于现有的浏览器框架进行主框架设计。

(2) 缓存技术基础。

浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示用户选择的网络资源。这里所说的资源一般是指HTML文档,也可以是PDF、图片或其他的类型。资源的位置由用户使用URI(统一资源标示符)指定。其中,浏览器解释并显示HTML文件的方式是在HTML和CSS规范中指定的。

浏览器缓存是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户。浏览器端缓存的机制种类较多,如果要缓存网站的完整结构,可以通过缓存HTML+CSS+JavaScript文件,从而在脱机情况下完成整个网站的正常浏览。

(3) 带宽利用技术基础。

可以利用预加载技术对多余的带宽进行利用,以提高包含用户预期信息的页面的访问速度。

预加载是一种浏览器机制,使用浏览器空闲时间来预先下载/加载用户接下来很可能会浏览的页面/资源。页面提供给浏览器需要预加载的集合。浏览器载入当前页面完成后,将会在后台下载需要预加载的页面并添加到缓存中。当用户访问某个预加载的链接时,页面就得以快速呈现。

HTML5中已经提供了预加载相关的技术。

因此,预期浏览器可以利用现有的技术进行开发。

(4) 人员基础。

参与此项目的研发人员均需具有多年Web项目研发经验,对开发的相关标准、项目技术条件和开发环境等相当熟悉,具备研发此项目的技术能力。

综上所述,技术可行。

5. 投资及效益分析

(1) 支出。

运行本浏览器系统所引起的费用开支有人力、设备、空间、支持性服务、材料等。

① 基本建设投资。
建立本系统所需的房屋以及周边设施。
建立本系统所需数字通信设备的使用费用。
保障本系统运行与信息安全设备的使用费用。
建立本系统所需数据库管理软件的使用费用。
② 其他一次性支出。
本系统建立时所需研究者的经费。
本系统建立浏览器官网时所需数据库的费用。
本系统的日常维护开销。
本系统开发时计算机购买或租赁费用。
③ 非一次性支出。
本浏览器系统开发人员的工资与奖金。
本浏览器系统开发时所需房屋的租赁费用。

(2) 收益。

这里所说的收益,表现为开支费用的减少或避免、差错的减少、灵活性的增加、动作速度的提高和管理计划方面的改进等。

① 一次性收益。
开支的缩减:本浏览器系统除必要的功能之外,应尽可能减少不必要的功能,以减少浏览器系统的能源损耗,提高运行效率,改进数据的进入、存储和恢复技术。
价值的提升:本浏览器系统出错率减少,并提高运行与处理效率。当发生意外崩溃时,该系统可及时进行备份,并且可从备份中恢复。
② 非一次性收益。
本浏览器系统开发的收益来自开支的缩减和自身价值的提升。
③ 不可定量的收益。
本浏览器系统开发给用户的效率提升所带来的额外收益。

6. 社会因素方面的可行性

(1) 法律方面的可行性。

法律方面也需要进行可行性分析,包括合同责任、侵犯专利权、侵犯版权等方面陷阱,然而这些方面软件开发人员通常是不熟悉的,容易落入此类陷阱,因此,项目相关负责人务必要关注此方面,并多做研究,避免软件开发在法律方面受到阻挠。对于本系统开发所使用的软件、开发文档均来自正版和开源代码网站,因此不会涉及侵权与违反法律的相关内容。对于用户信息的保护,会提示用户是否愿意分享相关的信息,保证用户在知情的情况下进行所有的操作,并且维护用户的信息安全。

(2) 使用方面的可行性。

作为一家专业的软件开发企业,公司应拥有足够的技术人员,技术力量和开发能力已经在之前的软件开发过程中有所体现,所以,开发的技术能力是毋庸置疑的。对于管理层面,现有的管理技术足够满足此浏览器系统的开发需求。就硬件条件而言,各种外围设备、计算机设备的性能能够满足系统的开发,并充分发挥其效应。对软件条件来说,公司的技术人员精通浏览器开发所需的各种软件。因此,公司具备开发全功能的通用型网络浏览器所需的必要条件。

7. 结论

通过对此软件系统进行的各方面的可行性分析,可以得出以下结论。

(1) 针对目前网速较慢、网费较高的情况,离线浏览的功能是有用户群的。

(2) 由于宽带网正在普及,对那些使用宽带网的用户来说,通过浏览网页时的冗余宽带自动获取对用户可能有帮助的信息,对于希望获取某一方面内容网站的网页的用户是有帮助的。

(3) 全功能的通用型网络浏览器所能获取的效益是可观的。

(4) 此浏览器系统开发具有较强的可行性。

综上所述,全功能的通用型网络浏览器是一款能够提高用户浏览体验的软件系统,可以立即进行此软件系统的开发

目录
相关文章
|
20天前
|
Web App开发 前端开发 JavaScript
为什么浏览器兼容性在开发网站时很重要?
浏览器兼容性在网站开发中确实非常重要。
|
4月前
|
JavaScript 前端开发 开发工具
TypeScript的介绍,let age:number = xxx,可以直接看出数据类型,Type由微软开发,可以在任何浏览器和系统中运行,比较适合大型项目,TypeScript的安装
TypeScript的介绍,let age:number = xxx,可以直接看出数据类型,Type由微软开发,可以在任何浏览器和系统中运行,比较适合大型项目,TypeScript的安装
|
2月前
|
Apache 数据安全/隐私保护
HAProxy的高级配置选项-ACL篇之基于浏览器匹配制案例
这篇文章介绍了HAProxy的ACL(访问控制列表)功能,特别是如何基于用户代理(User-Agent)即浏览器类型进行匹配和流量分发的高级配置选项,并通过实战案例展示了如何配置ACL规则以实现基于不同浏览器的访问控制。
54 5
HAProxy的高级配置选项-ACL篇之基于浏览器匹配制案例
|
3月前
|
Web App开发 JavaScript 前端开发
浏览器内小脚本开发
【8月更文挑战第31天】
52 1
|
3月前
|
Web App开发 JSON 安全
【跨域难题终结者】:一键解锁Chrome浏览器神秘设置,彻底告别开发阶段的跨域烦恼!
【8月更文挑战第20天】跨域是前端开发常遇难题,尤其在前后端分离项目中。浏览器因安全考量会阻止不同源间的请求。本文对比CORS、JSONP、代理服务器等解法,并介绍开发阶段通过调整Chrome设置来临时禁用跨域限制的方法,提供启动Chrome及使用`fetch`API示例,适合快速测试。但请注意这不适用于生产环境,存在一定安全风险。
591 1
|
3月前
|
Web App开发 前端开发 JavaScript
手摸手教你,从0到1开发一个Chrome浏览器插件
开发 Chrome 插件既有趣又具成就感。本教程将引导你从零开始,逐步创建一个简单的 Chrome 插件。首先了解 Chrome 插件是可增强浏览器功能的小程序。以一个基础示例开始,你将学习如何设置开发环境,包括安装 Chrome 和准备文本编辑器,并掌握 HTML、CSS 和 JavaScript 的基础知识。接着,我们将构建插件的基本结构,涉及 `manifest.json` 配置文件、`background.js` 后台脚本、`popup.html` 用户界面以及 `style.css` 样式表。
290 8
|
4月前
|
数据安全/隐私保护
Dolphin指纹浏览器隐私保护升级:IPXProxy代理IP配置实战教程
Dolphin指纹浏览器采用先进的技术,让用户在一台电脑上就可以处理数百个配置文件。每一个配置文件都有着独特的浏览器指纹,极大的保障了用户上网的安全性。并且搭配代理IP一起,还能给每个文件配置不同的IP地址,让网络活动可以畅通无阻。下面给大家带来Dolphin指纹浏览器和IPXProxy代理IP配置详细教程
|
4月前
|
前端开发 JavaScript
vue3【实战】创建项目、创建并提交代码到远程仓库,安装 SASS, 清除浏览器默认样式 reset-css, 清除模板代码,提升开发效率的必要集成
vue3【实战】创建项目、创建并提交代码到远程仓库,安装 SASS, 清除浏览器默认样式 reset-css, 清除模板代码,提升开发效率的必要集成
67 0
|
4月前
|
Web App开发 编解码
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
|
14天前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
32 0