软件性能工程(2)-软件性能工程概述

软件性能工程 「Software Performance Engineering」

本文使用不到五分钟的阅读时间来阐述软件性能工程里的关键知识点,有助于大家在规划软件项目时,通过引入性能工程以提高软件项目的可用性与市场成功率。简单来说,软件性能工程是通过将性能指标维度纳入到软件开发周期中的各关键节点,通过事前规划与各里程碑节点上的关键验收,来追求最终交付的软件质量是符合设计预期的。

它的价值在哪里?

在开发软件时(不包含简单的脚本类程序),有时候会优先考虑把功能做完,即所谓的Make it run first。此时大部分的精力都放在了功能开发上,对性能指标的考虑是放在第二,甚至第三位的。有时候甚至不考虑性能,只有当客户反馈了问题之后才会着手去优化代码。

这种做事方法就不是一个工程师思维的做事方式,更像是产品经理的思维。先把东西弄出来,试一试,看看效果怎么样。这种是在小规模,或者影响可控的范围内是可行的,但这并不是常态。更常见的情况是,工程师根据比较明确的需求通过项目管理(如敏捷开发)的方式进行工程开发,为了使交付效率与质量最高,必须遵照一定的工程化方式做事情。性能工程能帮助项目解决的难题如下:

  1. 可避免性能瓶颈是因软件架构引起的问题,这是典型的低概率但后果严重的错误。一旦遇到这类问题,通过优化几处热点代码是无法根治的,需要彻底的重构。

  2. 用户反馈的问题无法通过有效的手段、日志来定位问题,只能通过成本最高的方式,也就是让用户复现问题的方式来定位问题。

  3. 硬件容量规划时无法根据之前的项目经验进行量化分析。

SPE Lite版执行流程

具体怎么执行呢?性能工程是一个完整的工程学科,这篇短文当然无法完整的描述所有的细节,所有的知识点。就着够用就好的原则,仅介绍最关键的执行步骤,读者可感受下画风。

  1. 通过用户调研与竞品分析,定义关键用户性能指标,如:吞吐量,传输速度,界面刷新帧率

  2. 设计可满足业务需求与性能指标的软件架构

  3. 对性能指标建模:如果是排队系统时,使用排队论建模工具

  4. 开发性能指标测试工具与测试用例

  5. 开发用于记录性能指标变化的监控器

    1. 制定性能数据本地存储规则

    2. 制定性能数据云端回传规则

    3. 制作性能数据可视化表盘

写在最后

做事讲究方法,套路。这些方法,用现在的话来说就是各种思维模式。从之前火热的互联网思维,到近几年流行的产品思维,本质上都是做事方式,其目的也非常简单,那就是更好地做事。通过更好地做事,才有可能做出优秀的产品,只有优秀产品才有可能提高市场竞争力。当产品有了市场竞争力,才有可能赢得其他方面的成功,比如商业。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.1编写目的 1.为了让网站开发更具有目的性 2.为了让客户更加清楚软件的开发过程与进度,增加与客户的交流 3.加强项目组内的管理,让工作清晰化 4.可以合理安排组织成员,有效利用时间,以确保项目进度,预见项目风险等活动。 5.项目开发成员通过此计划书明确项目目标以及各自职责 1.2参考资料 《实用软件工程》 《JAVA网络高级编程》 《软件工程》 《信息系统分析与设计》 2.项目概述 2.1工作内容 2.1.1.制作和修订项目开发计划; 2.1.2.进行计划跟踪与监控; 2.1.3.工作产品及时进行受控管理; 2.1.4.按计划提请阶段评审; 2.1.5.提交测试部门评测开发产品; 2.1.6.交付最终工作产品。 2.1.7.项目实施总结 2.1.8.项目验收 2.2条件与制约 2.2.1.能够存储大量图书和读者信息,并方便有效的进行相应的图书操作和管理,这主要包括: A.能够通过书籍基本信息查询书籍信息; B.对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量; C.可增添,删除,修改书籍信息; D.能够添加、修改、删除用户基本信息; E.用户可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期。 2.2.2.能够对需要的统计结果提供打印输出。 2.2.3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。 2.3产品及成果 2.3.1.程序 软件名称:图书馆管理系统编程语言:JSP 存储方式:U盘,计算机 2.3.2.文件 1.用户操作手册:本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。 2.软件维护手册:主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。 2.3.3.服务 计划提供以下服务: 1.课堂培训:以讲课形式对客户进行培训,使其能够正确使用软件; 2.免费咨询:客户可以在工作时间向技术人员提出问题并获得解答; 3.技术支持:对于某些客户,采取上门指导的方式; 4.软件维护:获取软件使用中的问题,提供补丁程序; 5.升级通知:在软件新版本发布的时候,及时通知(Email或邮寄信件)注册的用户,并提供试用版本; 6.软件升级:对于注册用户,只需较少的费用即可升级到新的版本;7.培训安装、维护和运行支持从使用该系统开始,维护期限为--年。 2.4运行环境 操作系统为Window 10,使用集成开发工具Eclipse5.5.1,数据库采用SQLServer2012,项目运行环境为IIS5.0。 2.5验收标准 2.5.1.代码的验收 最后在交付客户之前进行小组内评审,代码编写符合HB6465标准,与文档说明保持一致,代码书写风格统一,采用标准规范,没有下列错误:由于软件缺陷造成丢失数据,不符合设计要求,响应时间太长无法接受等问题。 2.5.2.文档验收 最后在交付客户之前进行小组内评审,文档格式符合HB6465标准,功能符合与客户的合同要求,清晰易读,没有语病与歧义。 2.5.3.服务验收 服务硬件达到文档说明的要求,人员技术考核合格,定期上门维护。
1.1. 编写目的 从现在应用的技术方面和用户的操作方式方面研究图书管理系统用来统一管理,记录图书的荆楚信息,图书管理系统为用户建立一个账户,并给借阅者发放借阅卡以及对应的账号。账户中存储借阅者的个人信息、借阅信息和预定信息,从而使管理员进行管理。 1.2. 参考资料 《软件工程技术与应用》 《数据结构》 《软件工程实践教程》 《软件工程概论》 2. 任务概述 2.1. 目标 在该系统中,图书管理员要为每个借阅者建立一个账户,并给借阅者发放借阅卡以及对应的账号。账户中存储借阅者的个人信息、借阅信息和预定信息。持卡者(即拥有账户的个人)可以借阅书刊、返回书刊、查询书刊信息、预定书刊并取消预订。这些操作均由管理员代理执行,即借阅者不与管理系统直接交互。借阅书刊时,借阅者需要提供书刊名、ISBN/ISSN号,以及借阅者的图书卡号和姓名。完成输入后,系统需检查账户是否存在。若有效,系统查询书看是否存在,若存在则可借出,建立并在系统中存储借阅记录。借阅者返还书刊后,删除相应借阅记录。如果所借书刊被借出,借阅者可预定书刊,一旦预定的书刊可以获取,就直接将书刊借给预定者。为简化系统,预定书刊可获取时则直接借出,也不考虑借阅期限。 2.2. 条件与约束 1. 图书管理员建立的借阅者账号的卡号唯一性,主键约束 2. 借阅者借出的书刊的ISBN/ISSN号应该唯一,主键约束 3. 借书模块中的借阅者账号为外键 4. 对于借阅者对于借书实践也应该进行记录 3. 功能需求 图书管理员: 1. 管理借阅者账号(增加用户、删除用户、修改用户、查询用户) 2. 管理图书系统(增加书刊、删除书刊、修改书刊、查询书刊) 借阅者: 1. 借阅书刊 2. 返还书刊 3. 查询书刊信息 4. 预定书刊 5. 取消预订书刊 4. 性能需求 时间要求: 要求三个月内能够制定出初步的系统程序提供用户使用 存储要求: 要求使用oracle数据库进行存储管理 建表、设计数据流图、实体图、状态转换图、表的约束与关系 5. 接口需求 输入输出需求: 系统管理员的输入输出: 对图书的录入、删除、修改、查询 对借阅者信息的删除、查询、修改、删除 借阅者的输入输出: 对图书的查询 数据库需求: 系统管理员对图书操作系统、对借阅者信息的管理权限 借阅者对图书的查询权限 程序接口需求: 系统管理员对图书操作系统、对借阅者信息的接口(8088) 借阅者对图书的查询接口(8086) 6. 将来可能需求 1.借阅者可能会增加权限,系统更加开放。 2.系统管理员可能会分级别,例如,一级管理员、二级管理员、三级管理员等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值