0308 软件系统的非功能需求

image.png

故事开始。

小李是一个一线的java程序员,做软件开发多年,有一天,被邀请去参加一个大厂的面试,面试前他做了各种准备,有软件原理方面的,软件设计方面的,还有软件架构方面的知识。并不断总结提炼成了一张知识图谱。想着即使不成功,也是一次不错的技术交流,至少可以知道目前大厂需要的程序员具备的技能深度和广度,给自己定定位。下面是技术一面。

小李:你好,我是李x,今年y岁,做一线开发z年,我来面试。

大厂牛逼架构师:你好,小李。我是a厂的面试官b,我来给你面试。直接开门见山了。问题1,简单说一下软件研发的过程?

小李:按照软件工程的瀑布模型.

软件研发分为可行性分析,需求分析,概要设计,详细设计,编码,测试,发布,交付,维护,下线等节点。但是这些流程比较重,往往当软件开发完成交付的时候,客户的需求已经发生了变更,软件需要重新打回需求分析和概要设计阶段开始,导致软件的工期远远超出预期,而且开发方耗时间耗人力,客户方并不满意。

那么怎么破呢?

按照当下流行的敏捷研发模式,软件在需求分析阶段,按照优先级别分批次设定发布计划,然后基于发布计划规划迭代,针对单个小迭代,开发,测试同一时间点参与,研发完成立马发布交付客户验收,客户快速反馈,针对反馈的问题,及时调整规划的需求,这样小步快跑,快速迭代的而方式去管理软件的研发过程,解决研发方研发的时间和人力成本高,客户还不满意的难题。

image.png

大厂牛逼架构师:问题2:系统概要设计阶段的非功能需求有哪几种?

小李:软件除了实现客户的基本功能需求之外,还要满足预设的非功能性需求,好比冰山下的庞大底座,看不见的东西往往最耗费和考验软件工程师的功力,对架构能力,编码能力要求比较高。主要包含高性能,安全,高可用等。

高性能

大厂牛逼架构师:问题3:简单介绍一下高性能的指标?你使用过的性能调优方法?以及你的一个性能调优经历?

小李:高性能是软件系统的核心非功能需求,性能调优是软件架构师的核心职责,一般由高并发引起性能问题。要进行系统的性能优化,必须先进行性能测试。

软件系统的性能指标如下。

第一,响应时间,即用户发出请求到获得响应的总时间;

第二,并发数,即软件系统可以同时处理的请求数量,即HPS;

第三,吞吐量,有两个个基本指标,TPS(每秒处理事物数),QPS(每秒处理查询数);

第四,操作系统的性能计数器,比如CPU,内存的使用率,磁盘IO,系统负载,对象数和线程数量;

性能调优的原动力是提升用户体验,比如在异步显示资源,等待的时候可以转菊花;

性能调优的客观方法分为7种:

从软件系统的范围由大到小分别说明。

1,多数据中心,让用户访问离他最近的数据中心,可以显著降低响应时间。

2,使用高配置的硬件,比如更高的cpu,内存,对系统进行垂直扩展。

3,操作系统的参数调优,比如调大TCP的连接数,调小TCP的默认等待时间等;

4,JVM调优,设置合适的jvm的存储参数,选择合适的垃圾回收算法等;

5,软件系统的依赖组件调优,比如web服务器的配置调优,数据库的调优等;

6,软件架构调优,比如可以引入集群,缓存,消息队列等;

7,代码层面的优化,比如使用更优的数据结构,使用线程池连接池,sql语句调优,反应式框架,异步io,设计模式写出更简洁易读的代码等;

性能调优的流程是:

1,对要调优的软件系统进行性能测试,工具有很多比如jmeter,loadrunner等,使用多线程的方式模拟用户并发访问系统;

2,观察软件系统的性能指标,分析得到产生性能的问题的瓶颈点,需要非常了解整个系统的结构,然后解决这个瓶颈点;

3,然后继续跑性能测试,对比调优前后的性能指标。如果提高了则结束,没有提高则重复1步骤;

image.png

安全

大厂牛逼架构师:问题4:简单介绍一下数据加密的种类?以及常见的软件安全漏洞?最后讲讲实际工作中应该如何保证软件的系统安全?

小李:软件系统系统只有被攻击,数据泄漏之后才意识到安全的重要性。

数据加密的种类有3种:

1,单向加密,比如常用的md5,一般使用的时候还要加个salt,并增加输入的密码复杂性检查,防止彩虹表破解密码;

2,对称加密,常见的比如RSA加密,通过一个秘钥进行加密和解密,只要秘钥不泄漏就是安全的;

3,非对称加密,常见的比如公钥私钥对,数字签名是非对称加密的应用,使用私钥加密获得密文,发送出去,只有配对的公钥才能解密,以此来验证数据来源的合法性。但是性能比较差。

除了数据加密,还需要保证数据在传输过程加密,那就要说到https协议了,它是结合使用了对称加密和非对称加密,首先使用非对称加密,产生一个秘钥,客户端拿到秘钥之后,对数据进行对称加密,服务端根据生成的秘钥进行数据解密。充分保证了数据处理的性能和传输数据的安全。

常见的安全漏洞:

HTTP安全漏洞:

1, SQL注入,解决方法使用Preparestatement替代statement处理传输过来的参数;

2,xss攻击,上传攻击脚本到服务器,别的用户获取数据的时候会解析这个攻击脚本,达成攻击目的,解决方式是字符串转义;

可以通过在网关中增加web防火墙或者在代码中增加过滤器来处理。

此外还有硬件和操作系统的安全漏洞,使用软件和组件的安全漏洞等。

实际工作中,应该应该及时升级依赖的软件和组件的版本,

升级版本一般修复了对应的安全漏洞,此外我们应该在程序中做好参数过滤,

最后,应该对最终存储的数据和传输的数据进行加密,提高黑客攻击的难度。

image.png

高可用

大厂牛逼架构师:问题5:简单说一下如何保证软件系统的高可用?

小李:高可用即要求软件系统在各种故障发生的时候做到可用或者大部分可用,软件系统的可用率一般采用N个9的方式来衡量。

各种故障都可能影响软件系统的可用性,比如:

1,自然灾害

2,人为原因

3,高并发访问

4,硬件故障

5,软件故障

保证系统的高可用有5种方法:

1,冗余备份,即多准备几个服务器,比如多个web服务器(故障转移),数据库服务器(多主模式集群);

2,异地多活,即通过域名的方式,把请求分发到多个地域的不同机房;

3,限流降级,限流即限制HPS,降级即关闭非核心功能让出有限资源;

4,失败隔离:消息队列削峰填谷,转移写压力,隔离失败;

5,运维方法:自动测试,自动监控,灰度,预发布等;

image.png

小结

大厂牛逼架构师:

小李架构功夫很扎实。简单的点评一下。

1,不愧是多年的一线开发人员,软件研发流程非常熟悉,而且敏捷研发模式有一定经验;

2,高性能是非常重要的非功能需求,调优方式7中都答的很到位;

3,安全性也是非常重要的,数据加密分类清晰,http的攻击防护手段有所了解;

4,高可用的手段总结的很到位;

小李:感谢您的评价,希望有机会合作,为企业打造数字化产品帝国。

故事讲完。

原创不易,转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容