功能分析

需求分析与需求管理方法

帅比萌擦擦* 提交于 2019-12-11 12:50:02
目录 需求分析阶段 需求分析方法 需求管理 需求分析阶段 需求分析贯穿在产品整个生命周期。 1. 产品概念期 这个阶段做需求分析,更强调需求调研,目的是定位目标用户群,做产品定位,市场研究并确认细分产品市场。提炼产品核心功能,解决目标用户群痛点问题。 交付物:BRD商业需求文档 。(或类似的相关的文档,如需求调研报告、市场调研报告等) 2.产品设计开发期 这个阶段的需求分析,目的是要设计一个可落地的解决用户痛点,满足用户需求的产品。设计一个目标用户可用好用的产品。深层次的挖掘和分析用户,描述需求,解决问题。实现用户如何通过一步步的使用产品满足其需求。该阶段 交付物:产品原型+PRD操作文档 。 3.上线后-成长期 上线后的需求分析,目的是验证真实产品满足真实用户需求的结果,收集用户需求,优化产品。 4.成熟运营期 本阶段需求分析,目的在为产品提供更好的运营方案,制定竞争策略。让产品持续更好的更多的为企业创造商业价值。 5.产品衰退期 当产品进入衰退期时,需求分析重在研究市场发展趋势,以帮助决策是调整发展战略。 需求分析方法 需求分析三步走: 明确问题-拆解需求-提供解决方案 1.明确问题 明确问题之前,我们首先要从各方搜集需求,然后经过分析,提出真正的需求。 需求获取渠道 公司内部、在线用户反馈、用户调研、竞品、产品数据分析、头脑分包。 收集到的一手需求还不是真正的需求

QtCreator源码分析(一)——QtCreator源码简介

非 Y 不嫁゛ 提交于 2019-12-11 10:35:16
QtCreator源码分析(一)——QtCreator源码简介 一、QtCreator简介 QtCreator是设计精巧的插件式系统,QtCreator的核心是一个插件管理器,其所有功能都是使用插件完成。在启动时,QtCreator会首先加载一个名为coreplugin的插件,coreplugin插件提供了Qt Creator最基本的功能和扩展点,其余的插件都是直接或间接依赖于coreplugin插件提供的机制,一步步扩充QtCreator的功能,最终将其变成一个功能完整的IDE。 针对QtCreator的插件机制设计,QtCreator源码分析会将关注重点放在插件管理器的实现、coreplugin的实现上面。QtCreator完全基于qmake的复杂开发模式,需要学会如何使用qmake管理一个相当复杂的项目(QtCreator近5000个文件),如何开发自定义插件管理器,如何使用插件扩展定制系统等。 二、QtCreator源码简介 1、QtCreator源码目录简介 QtCreator-2.8.1包含5000多个文件,代码行数超过了110万行。 源码目录如下: ![] bin: 生成Linux平台shell脚本。 dist: 安装文件配置信息和版本更新记录。 doc: 生成doxygen文档的配置文件。 lib:Qt组件相关的QML文件 qbs:QBS 配置文件。QBS,即 Qt

软件需求分析-----用例图

别等时光非礼了梦想. 提交于 2019-12-11 07:11:22
本文通过学习原文: 1、https://blog.csdn.net/haoyoumo/article/details/43267121 2、https://blog.csdn.net/weixin_42369687/article/details/90106419 3、https://blog.csdn.net/yoyo328/article/details/78009237 将其整理在此处,方便使用。 UML中用例图的作用及画法 用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。 当用例视图在外部用户出现以前出现时,它捕获到系统、子系统或类的行为。它将系统功能划分成对参与者(即系统的理想用户)有用的需求。而交互部分被称作用例。用例使用系统与一个或者多个参与者之间的一系列消息来描述系统中的交互。 用例图包含六个元素,分别是:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系

Qt5及模块架构分析

 ̄綄美尐妖づ 提交于 2019-12-10 07:24:47
关于框架 Qt这个框架历史悠久,由于当年桌面操作系统的GUI程序开发比较费劲,一般使用普通语言如c、c++或者平台自身提供的难用框架,windows、Linux、mac各有各的不同机制。1991–Haavard Nord和Eirik Chambe-Eng开始开发将会支持X11和Windows的Qt,1994–奇趣科技公司成立,主要提供跨平台、面向对象、易用的GUI程序开发框架。另外随着Qt诞生的还有KDE,一个为Linux提供图形界面的开发库和框架。 随着逐渐的发展和社会的需求,Qt版本不断演化,功能不断增多。比如经典的Qt4系列,当年为满足嵌入式开发提供的Qt/Embedded。现在这些版本已经退出舞台。一直以来,对Qt影响比较大的转折点一是2008 Nokia从Trolltech公司收购Qt,二是2012 Aug 09 诺基亚正式放弃该框架。 诺基亚收购Qt是因为从那时起,智能手机开始流行,最早的iphone发布,android也开始发展,而Qt是当时是比较流行的嵌入式设备开发框架。单从时间节点看,诺基亚在智能手机发展初期并没用太落后,只是后来的发展过程比较缓慢,逐渐和苹果、android拉开了距离。 Qt被诺基亚收购后,其开发方向在跨平台的同时,主要面向新的基于Linux的智能手机操作系统。由于Qtwidget本身不适合触摸操作,于是伟大的QML技术诞生

app常见专项测试

旧街凉风 提交于 2019-12-10 00:45:48
常见的apk专项测试,主要有几类(主要指项目中经常用到的) 1、稳定性 2、安全性 3、兼容性 4、版本升级 5、流量测试 6、实际测试总结(对整个项目团队是如何进行测试以及测试的内容) 一、稳定性测试 稳定性测试是指对应用进行长时间的操作,检测功能是否稳定。一般稳定性测试时间是 N*12小时。项目中稳定测试多采用monkey,进行随机测试。 测试方法: 1、跑monkey adb shell monkey -p packageName -v -v -v --throttle 500 -s 4 --ignore-crashes --ignore-timeouts --ignore-security-exceptions times(次数) |logcat -v time > e:\log\monkeyLog.txt(日志保存路径) 参数: -p : 指点包名,如果要指定多个包名,需多个-p参数 -v : 指定日志的详细程度,取值1-3,三个 -v 详细程度最高 -throttle : 指定用户操作时的时延,单位毫秒 -s : 指定伪随机数生成器的seed值,取值1-10,当seed相同,产生的事件序列也相同 –ignore-crashes : 指应用程序崩溃,monkey依然发送事件,直到事件数完成 –ignore-timeouts: 指应用程序发生ANR,monkey依然发送事件

前端性能监控系统

浪尽此生 提交于 2019-12-10 00:11:55
引言 前阵子在 w3ctech 的 走进名企 - 百度前端 FEX 专场 上曾“夸下海口”说听完讲座后七天就可以打造自己的前端性能监控系统,既然说出去了也不能食言。从前一篇文章 前端数据之美 相信大家对前端数据有了一定的了解,下面就针对其中的性能数据及其监控进行详细阐述。 开始行动 本文中的性能主要指 web 页面加载性能,对性能还不了解?不用担心,接下来的“每一天”跟我一起进入前端性能的世界。 Day 1 为什么要监控性能? “If you cannot measure it, you cannot improve it” ———— William Thomson 这是一个最基本的问题,为什么要关注和监控前端性能?对于公司来说,性能在一定程度上与利益直接相关。国外有很多这方面的调研数据: 性能 收益 Google 延迟 400ms 搜索量下降 0.59% Bing 延迟 2s 收入下降 4.3% Yahoo 延迟 400ms 流量下降 5-9% Mozilla 页面打开减少 2.2s 下载量提升 15.4% Netflix 开启 Gzip 性能提升 13.25% 带宽减少 50% 数据来源:http://www.slideshare.net/bitcurrent/impact-of-web-latency-on-conversion-rates http:/

Android RIL结构分析与移植

橙三吉。 提交于 2019-12-07 19:19:51
Android RIL结构分析与移植 介绍 本文档对Android RIL部分的内容进行了介绍,其重点放在了Android RIL的原生代码部分。 包括四个主题: 1.Android RIL框架介绍 2.Android RIL与 WindowsMobile RIL 3.Android RIL porting 4.Android RIL的java框架 在本文档中将Android代码中的重要模块列出进行分析,并给出了相关的程序执行流程介绍,以加深对模块间交互方式的理解。 对于java代码部分,这里仅进行简单的介绍。如果需要深入了解,可以查看相关参考资料。 本文档中还对Android RIL的Porting部分内容进行了描述和分析。 针对对unix操作系统环境并不熟悉的读者,本文档中所涉及到的相关知识包括: Unix file system Unix socket Unix thread Unix 下I/O多路转接 以上信息可以在任意一份描述Unix系统调用的文档中找到。 1.Android RIL框架介绍 术语: fd unix文件描述符 pipe unix管道 cond 一般是condition variable的缩写 tty 通常使用tty来简称各种类型的终端设备 unsolicited response 被动请求命令来自baseband event loop

开发自动化系列-工具集(二)系统性能监控工具

∥☆過路亽.° 提交于 2019-12-07 13:02:48
摘 要 孔子云:工欲善其事,必先利其器。作为开发人员,我们致力于为最终用户实现工作流程自动化;然而,许多开发人员却疏忽了将自己的开发流程自动化。企业级应用系统涉及到开发、测试、部署、实施等一系列开发流程,在整个软件开发过程中我们如何借助工具、方法和模式使过程简单自动化,减少一些低效繁琐的开发工作量。 本系列试图使用一系列的工具介绍帮助大家在日常工作中减轻繁杂低效的开发工作,借助于现有的一系列工具提升大家的开发效率,使大家日常工作做到事半功倍。 在 Java 程序的开发过程中,不可避免地会遇到内存使用、性能瓶颈等问题。 Java Profiler 工具能帮助开发人员快速、有效地定位这些问题,因此成为了 Java 开发过程中的一个重要工具 。 本文作为该系列的第二章,介绍Java EE应用的系统性能监控工具JProfiler,JProfiler 可以通过时时的监控系统的内存使用情况,随时监视垃圾回收,线程运行状况等手段,从而很好的监视 JVM 运行情况及其性能。 通过介绍这个工具的使用,帮助开发人员发现系统应用的性能瓶颈,提升系统运行性能。 一、 JProfiler 是什么? JProfiler 是一个全功能的 Java 剖析工具( profiler ),专用于分析 J2SE 和 J2EE 应用程序。它把 CPU 、执行绪和内存的剖析组合在一个强大的应用中。 JProfiler

一文教你学会递归解题

↘锁芯ラ 提交于 2019-12-06 23:48:32
前言 递归是算法中一种非常重要的思想,应用也很广,小到阶乘,再在工作中用到的比如统计文件夹大小,大到 Google 的 PageRank 算法都能看到,也是面试官很喜欢的考点 最近看了不少递归的文章,收获不小,不过我发现大部分网上的讲递归的文章都不太全面,主要的问题在于解题后大部分都没有给出相应的时间/空间复杂度,而时间/空间复杂度是算法的重要考量!递归算法的时间复杂度普遍比较难(需要用到归纳法等),换句话说,如果能解决递归的算法复杂度,其他算法题题的时间复杂度也基本不在话下。另外,递归算法的时间复杂度不少是不能接受的,如果发现算出的时间复杂度过大,则需要转换思路,看下是否有更好的解法 ,这才是根本目的,不要为了递归而递归! 本文试图从以下几个方面来讲解递归 什么是递归? 递归算法通用解决思路 实战演练(从初级到高阶) 力争让大家对递归的认知能上一个新台阶,特别会对递归的精华:时间复杂度作详细剖析,会给大家总结一套很通用的求解递归时间复杂度的套路,相信你看完肯定会有收获 什么是递归 简单地说,就是如果在函数中存在着调用函数本身的情况,这种现象就叫递归。 以阶乘函数为例,如下, 在 factorial 函数中存在着 factorial(n - 1) 的调用,所以此函数是递归函数 public int factorial(int n) { if (n < =1) { return 1;

一文学会递归解题!

懵懂的女人 提交于 2019-12-06 07:14:09
前言 递归是算法中一种非常重要的思想,应用也很广,小到阶乘,再在工作中用到的比如统计文件夹大小,大到 Google 的 PageRank 算法都能看到,也是面试官很喜欢的考点 最近看了不少递归的文章,收获不小,不过我发现大部分网上的讲递归的文章都不太全面,主要的问题在于解题后大部分都没有给出相应的时间/空间复杂度,而时间/空间复杂度是算法的重要考量!递归算法的时间复杂度普遍比较难(需要用到归纳法等),换句话说,如果能解决递归的算法复杂度,其他算法题题的时间复杂度也基本不在话下。另外,递归算法的时间复杂度不少是不能接受的,如果发现算出的时间复杂度过大,则需要转换思路,看下是否有更好的解法 ,这才是根本目的,不要为了递归而递归! 本文试图从以下几个方面来讲解递归 什么是递归? 递归算法通用解决思路 实战演练(从初级到高阶) 力争让大家对递归的认知能上一个新台阶,特别会对递归的精华:时间复杂度作详细剖析,会给大家总结一套很通用的求解递归时间复杂度的套路,相信你看完肯定会有收获 什么是递归 简单地说,就是如果在函数中存在着调用函数本身的情况,这种现象就叫递归。 以阶层函数为例,如下, 在 factorial 函数中存在着 factorial(n - 1) 的调用,所以此函数是递归函数 public int factorial(int n) { if (n < =1) { return 1;