第一篇:软件需求分析报告[大全]
软件需求分析
软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。进行需求分析时,应注意一切信息与需求都是站在用户的角度上。尽量避免分析员的主观想象,并尽量将分析进度提交给用户。在不进行直接指导的前提下,让用户进行检查与评价。从而达到需求分析的准确性。分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。
需求分析的任务
开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?然而,即便并非出于商业目的的软件需求也是必须的。例如库、组件和工具这些供开发小组内部使用的软件。当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生。近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件。不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能。结果这个小组只好手工抄写源代码文档以供代码检查。这说明那怕需求明确无误并构思准确,如果我们没有编写文档,软件达不到期望目标也只能是咎由自取了。相反的情况,我曾见一个要集成到“错误跟踪系统”中的简单界面写了一页需求说明。而操作系统系统管理员在为处理脚本时发现简单的一张需求清单竟是如此有用。他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误。事实上,需求文档在开发过程中一直起指导作用。需求的类型
下面这些定义是需求工程领域中常见术语的定义。软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。1.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。2.用户需求(user requirement)文档描述了用户使用产品必须要完成的任务,这在使用实例(usecase)文档或方案脚本说明中予以说明。3.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。在软件需求规格说明书(SRS)中说明的功能需求充分描述了软件系统所应具有的外部行为。软件需求规格说明在开发、测试、质量保证、项目管理以及相关项目功能中都起了重要的作用。对一个大型系统来说,软件功能需求也许只是系统需求的一个子集,因为另外一些可能属于子系统(或软件部件)。作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反
映产品功能。多角度描述产品对用户和开发人员都极为重要。下面以一个字处理程序为例来说明需求的不同种类。业务需求可能是:“用户能有效地纠正文档中的拼写错误”,该产品的包装盒封面上可能会标明这是个满足业务需求的拼写检查器。而对应的用户需求可能是“找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词”。同时,该拼写检查器还有许多功能需求,如找到并高亮度提示错词的操作;显示提供替换词的对话框以及实现整个文档范围的替换。从以上定义可以发现,需求并未包括设计细节、实现细节、项目计划信息或测试信息。需求与这些没有关系,它关注的是充分说明你究竟想开发什么。项目也有其它方面的需求,如开发环境需求或发布产品及移植到支撑环境的需求。
第二篇:软件需求-案例分析
1、问题描述
许多医院存在高峰期挂号排队时间长,就诊等待时间长,倒号现象频发的问题。因此,构建一个网上预约挂号系统,通过推荐患者使用该系统进行出诊信息查询和医生预约,可以缓解就诊压力、节约患者的时间,并且可以在一定程度上保证预约者和就诊者一致,有利于提高医院的服务质量。为了更好的设计并实现这一系统,对系统进行需求建模和分析是十分必要的。
2、情景描述的主要成分
2.1、该系统所涉及的用户
本系统的用户包含患者、医生以及管理员三类。而且该三类用户各自的特征和所要面对的情景也是截然不同的。
对于患者来说,他们在年龄、计算机使用能力等方面存在较大差异,但面对的情景都一样,就是要预约挂号,挂号成功过后就诊。
对于医生来说,普遍具备较高的学历,在医疗方面具备专业知识,有一定的计算机使用能力。所面对的情景有查看挂号信息,确定要就诊的病人。
对于管理员来说,他们负责对出诊信息进行管理,是医院工作的安排者,具备较强的计算机使用能力。
不同的用户,对系统的要求也不相同。患者希望通过完成注册和登录后能够进行挂号预约,查询医生的出诊信息和个人预约信息,并且能够在规定的时间内完成挂号预约或者取消已有的预约;医生则希望能够在登录系统后可以查看病人的预约情况;而管理员希望可以修改出诊信息和调整预约挂号。这些都是功能性的需求。
同时对于所有用户都希望该系统是易用的,而且能够对自己的信息起到保护即系统安全性的要求,还有比如说系统的性能比较高效,能够及时处理自己的预约申请。当然开发系统的成本如果也能较低就更好了。这些都是非功能需求。
2.2、情景描述的主要成分
目标和关键成功因素
预约挂号情景的目标是“让患者能够及时的挂号,并能顺利的就诊”,而可能的子目标包括:患者能够注册账号,患者能够登录账号,患者能够查询预约记录,患者能够取消已有预约,患者能够查询出诊信息。关键成功因素,要保证系统能够24小时正常稳定的运行,系统里的信息要是实时变化的,即可以预约的医生要和实际在值班的医生要匹配,不能出现挂上号了却没有医生就诊的情况。
物理上下文和逻辑上下文 物理上下文:医院用于挂号的计算机可以正常的使用,情景中的可以被预约的医生应该是在医院值班的;而对于患者可以选择在医院进行预约,也可选择在家中进行预约,只要在预约时间内能到达医院就可。逻辑上下文:事件发生的条件是患者在系统中进行了预约,然后管理员会根据现有的资源(可以预约的医生)对预约进行处理,如果同意,下一步就是医生就诊;如果没有可以预约的医生或合适的时间,患者的预约就不成功,患者需要重新选择医生或时间进行预约。
组成情景的主要事件和活动 主要事件:患者预约挂号,管理员对预约挂号的处理,医生就诊。主要活动:患者注册、登录系统,患者在系统中查询可以预约的医生和时间,患者取消已有预约,患者进行就诊;管理员接受或拒绝预约,管理员分配医生;医生查询预约信息。
涉及的执行者和其他参与者
执行者:医院的医生,预约挂号系统的管理员。其他参与者:医院的相关人员,比如患者,前台咨询员等。
要使用的信息和资源 要使用的信息和资源包括,可以预约的医生数量,所在科室等,医院中的设备,病房等。 要考虑的约束条件和要使用的规则 约束条件:同一医生同一时间段内只能接受一名患者的预约,根据医疗设备的属性决定是否要排他性的使用。
3、情景需求分析的步骤
需求规格说明输入过程需求目标列表1.目标分析系统模型目标,目的使用情景用户问题实例2.输入事件分析初始系统模型用户,环境事件情景脚本4.输出需求分析3.刻画系统输出情景结构模型系统输出类型信息需求5.社会影响分析Agent目标6.涉众分析需求规格说明
3.1 目标分析
在第2部分情景描述的主要成分中已经对目标进行了分析,即:预约挂号情景的目标是“让患者能够及时的挂号,并能顺利的就诊”,而可能的子目标包括:患者能够注册账号,患者能够登录账号,患者能够查询预约记录,患者能够取消已有预约,患者能够查询出诊信息。3.2 输入事件分析
对于该系统的输入事件可能会包括如下情况:初始使用该系统的用户需要先注册,而对于已经注册的用户在使用系统预约挂号时首先要登录系统。这是最基本的两个输入事件。3.3 刻画系统输出
对于系统输出我们要考虑系统输出的形式,比如消息显示,对话框等形式。不如用户在登录系统是输入的用户名和密码不匹配的时候要给出对应的提示信息,比如用户名未注册或密码不对等。在提交预约挂号申请后系统也应给出预约成功与否的提示。3.4输出需求分析
对于输出需求要根据用户的输入给出对应的输出。比如用户输入查询请求,那么系统应该能够给出详细的信息。系统只给出对应的输出还不够,同时要考虑输出的信息是否合适。比如用户要查询眼科医生的资料,系统的输出就应该只是眼科医生的信息,而没有必要把所有医生的信息都输出。3.5 社会影响分析
在进行社会影响分析时要同时考虑到积极和消极两个方面的问题。系统是否可以提高效率,减少人员的工作量。同时也要考虑过多的自动化是否会削弱人对整个系统的意识,导致人对意外处理的能力降低,比如系统临时出现问题,是否有一套应急措施使医院日常工作能够正常的进行。
4、需求说明文档
基于之前构建的模型,并参照IEEE 830-1998标准模板,撰写的系统需求说明文档如下。
4.1 引言
引言部分将对本文档的编写目的、系统的开发目的、名词定义以及参考资料进行说明,并对文档的后续内容进行概述。4.1.1 编写目的
网上预约挂号系统是基于Web开发技术完成的网站。为了更好的设计并实现这一系统,对系统进行需求建模和分析是十分必要的。因此,基于之前构建的各类模型,撰写系统的需求说明文档,并将其作为后续项目设计、项目开发和项目测试的指导。
本文档连同之前构建的模型,可用来与客户进一步明确需求,同时可供项目经理、设计人员、开发人员参考。4.1.2 系统目的
许多医院存在高峰期挂号排队时间长,就诊等待时间长,倒号现象频发的问题。因此,构建一个网上预约挂号系统,通过推荐患者使用该系统进行出诊信息查询和医生预约,可以缓解就诊压力、节约患者的时间,并且可以在一定程度上保证预约者和就诊者一致,有利于提高医院的服务质量。4.1.3 名词定义 患者预约系统
网上预约挂号系统的子系统,主要用于为患者提供预约挂号、信息查询等功能。 医生工作查询系统
网上预约挂号系统的子系统,主要用于为医生提供各时段预约患者的信息。 医务管理系统
网上预约挂号系统的子系统,主要用于为管理员提供出诊信息修改、预约挂号调整等功能。 账号控制系统
网上预约挂号系统的子系统,主要用于用户账号的注册及登录控制。 安全保障系统
网上预约挂号系统的子系统,主要用于保障系统的程序、网络及数据库安全。4.1.4 参考资料
[1]Objectiver: A KAOS tutorial.Respect-It(2004)[2]吴双兵,刘伟.网上预约挂号系统设计与实现[J].医学信息学杂志, 2015, 36(1):36-39.4.1.5 文档概述
需求说明文档主要分为三个部分。本节属于引言部分,主要用于对文档本身进行定义和描述。文档的第二部分为系统的整体描述,包括系统的预期目标、限制条件以及用户的需求、特征。文档的第三部分是需求说明,包含对系统需求的明确定义。
4.2 整体描述
本节将对系统预期、用户需求、用户特征、条件与限制、假定与依赖以及需求分配进行说明。
4.2.1 系统预期
为了方便用户在不需安装任何软件的情况下使用系统,本系统整体采用B/S结构,用户可以通过浏览器对其进行访问。4.2.2 用户需求
参照之前完成的目标模型,对用户的需求进行整理和定义。由于系统整体较为复杂,因此本小节只包含已构建目标模型的功能性需求和非功能性需求。 功能性需求
1.患者进行预约选择
为了实现患者进行预约选择的目标,系统应完成的需求如下。(1)系统拥有患者预约页面以及预约按钮:
系统的预约页面可以显示未来1至3天的出诊医生及其所有可被预约的出诊时段。其中,尚未被预约的时段拥有预约按钮;已被预约的时段无法被其他患者预约,因此无预约按钮。(2)系统接收到预约请求:
当患者点击预约按钮,系统可以接收到预约请求。(3)患者被告知预约选择结果:
系统可以对患者是否预约成功进行判定,如果成功则跳转至信息确认页面,否则弹出对话框给予患者相应提示。2.患者确认预约信息
为了实现患者确认预约信息的目标,系统应完成的需求如下。(1)系统拥有预约信息确认页面以及预约提交按钮:
系统的预约信息确认页面会显示预约的医生和时段,患者的个人信息,以及预约提交按钮,患者可以在提交预约前核对这些信息。(2)系统接收到预约提交请求:
当患者点击提交按钮,系统可以接收到预约提交请求。(3)患者被告知预约提交结果:
系统可以对预约是否提交成功进行判定,并弹出对话框给予患者相应提示。 非功能性需求 1.安全的系统
为了保证预约挂号系统的安全性,系统应完成的需求如下。(1)用户程序安全:
系统应明确区分不同类别用户的权限。并且在用户登录时,输入的密码不可见、不可复制。(2)系统网络安全:
系统应采取安全的网络传输协议,网络数据在被传输前应进行加密。(3)数据库安全:
数据库中存储的数据应具备完整性,且密码应在加密后被存储到数据库中。此外,数据库中的数据应该可以被备份和恢复。2.低成本的系统 为了保证预约挂号系统的低成本,系统应完成的需求如下。(1)系统开发成本低:
开发团队应具备合理的项目管理,且在开发前应尽可能明确系统的需求。(2)系统运营成本低:
系统在运行过程中,应该尽可能少的占用资源。(3)系统维护成本低:
系统应该健壮可靠,出现问题后应该易于修复,且系统的功能应该易于扩展。考虑到系统健壮可靠与系统开发成本低存在一定的冲突,因此需要进行一定的权衡。4.2.3 用户特征
本系统的用户包含患者、医生以及管理员三类,其特征如下。 患者
个体间在年龄、计算机使用能力等方面存在较大差异。 医生
普遍具备较高的学历,在医疗方面具备专业知识,有一定的计算机使用能力。 管理员
负责对出诊信息进行管理,是医院工作的安排者,具备较强的计算机使用能力。4.2.4 条件与限制
为了保证系统的可移植性和可扩展性,本系统应使用Java语言进行开发。4.2.5 假定与依赖
本系统假定提供的大、中、小三种字体大小可以满足不同患者的需求,并且患者可以在系统的引导和提示下正常使用系统。4.2.6 需求分配
由于文档中并未列出系统的全部需求,因此无法对所有需求进行优先级排序。但已经列出的均为系统较为核心的功能性需求和非功能性需求,应具有高优先级。
4.3 需求说明
需求说明部分将参照之前完成的模型,对系统结构、对象模型以及操作过程模型进行详细描述。
4.3.1 系统结构
本部分将主要参照图 3-1所示的责任模型,根据主体对需求进行划分。考虑到系统较为复杂,因此只列出主体“患者预约系统”的相关需求。 患者预约系统
系统拥有患者预约页面以及预约按钮。
系统接收到预约请求。
患者被告知预约选择结果。
系统拥有预约信息确认页面及预约提交按钮。
系统接收到预约提交请求。
患者被告知预约提交的结果。4.3.2 对象模型
本部分将主要对图 4-1所示的对象模型的结构进行解释。
网上预约挂号系统可以被详细划分为患者预约系统、医生工作查询系统、医务管理系统、账号控制系统、安全保障系统等五个子系统。患者预约系统、医生工作查询系统、医务管理系统的使用者分别为患者、医生和管理员,这些用户通过系统提供的页面与系统进行交互。
对象模型中所涉及的名词在4.1.3小节中有具体解释。4.3.3 操作过程模型
本部分将主要对图 5-1,图 5-3和图 5-4所示的操作过程模型进行说明,并以表格的形式列出各操作过程的参与主体及对应需求。 患者进行预约选择
患者点击预约按钮后,患者预约系统会收到患者的预约请求,并触发预约验证操作,得到预约验证结果。接下来,患者预约系统会以得出的预约结果为基础,进行预约结果判定,进而执行页面跳转或消息框弹出操作。 患者确认预约信息
患者点击提交按钮后,患者预约系统会收到患者的预约提交请求,并触发预约提交操作。接下来,患者预约系统会根据提交结果弹出包含相应信息的提示框。
以上部分涉及到的操作过程及与之对应的主体、需求如下表所示。
以上部分涉及到的操作过程及与之对应的主体、需求如表 4-1所示。
操作 预约验证 参与主体
对应需求
患者预约系统 系统接收到预约请求,患者被告知预约选择结果
预约结果判定 患者预约系统 患者被告知预约选择结果 预约提交 患者预约系统 系统接收到预约提交请求,患者被告知预约提交结果
第三篇:软件工程师可行性和需求分析报告
软件工程师可行性与需求分析报告
一、职业目标与内容
职业定义
软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。主要工作进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。一般可以分为系统软件工程师,应用软件工程师两类。在企业中职位一般分为以下四种人:
1、企业信息化管理:负责信息化建设中的目标与方案决策,信息化建设、升级、更新;
2、工程技术人员:负责软件系统的分析、设计、开发、数据库、使用、维护和升级;
3、运行维护岗位:负责软件开发代码的编写以及基本的开发和测试;
4、操作应用人员:主要应用软件进行日常的管理工作。
工作内容
1、按照客户需求和市场需求进行设计、开发相应软件产品。
2、根据工作的进度和编程工作规范编写系统中的功能模块。
3、对编写的所有程序进行严格的测试。
4、对软件实施测试方案,从而进行软件故障的诊断、定位、分析和调试。
5、编写软件产品实施文档,并管理相关软件文档。
6、对业务部门提供相应的软件技术支持。
7、参加各种相关软件应用培训课程。
二、职业可行性分析
1、社会可行性
目前国内软件测试工程师的来源主要有三方面:一是以前专业做软件开发的人员后来转行做软件测试,二是从大学招聘的本科或者研究生,三就是通过培训机构招聘的专业学员。据了解,在国外测试人才的供应方式多以第三种为主,而国内目前除少数培训机构外尚未形成足够的人才供应规模。以北京中关村为例,现有软件企业5000多家,仅对日本软件外包领域的人才缺口就高达5000人,而对美软件外包人才缺口更大,可供量不足10%。中关村一位负责人介绍,未来5年北京将有至少200亿美元的外包订单,由此可推算出中关村将出现100万的软件人才缺口。巨大的产业前景和匮乏的人才现状,使越来越多的IT企业关注软件测试人才的储备工作。
软件和信息服务外包产业已成为各个国家经济发展的重点。从增加值角度来看,同样金额的出口,服务外包对中国经济的贡献是来料加工的20倍以上; 从能源消耗上看,服务外包单位GDP能耗仅为制造业的20%。据调查研究显示,当前中国软件和
信息服务外包产业人才流动率较高,而且缺口很大。企业成立时间比较短,规模大多
比较小,企业人才平均流动率达18.28%,这和缺乏培训、业务来源不稳定、报酬机
制不够合理等因素有关。同时由于产业发展迅速,人才供不应求,尤其是本地化人才
和中高级管理人才。
市场需求的巨大和专业人才的缺乏令人吃惊,这正是商机和盈利的重要突破口。可
以预见,中国软件和信息服务外包产业将在不久的将来成为引领中国第三产业转型和发
展的龙头产业,相关职业包含高级软件工程师的人才需求将会非常巨大。
2、经济可行性
软件开发、网络维护等职业技能要求较高的职位薪酬也相对较高,目前在软件行业
内部,能够进行软件整体开发设计的软件设计人员比较稀缺。虽然软件从业人员的薪水
一路看涨,但是职位的争夺也异常激烈。
据调查得知,一般的程序员在开始试用时会有2500到4000那样子,转正以
后至少也有5000元以上,做到项目开发经理了年薪至少在10万以上,做到高级
工程师了年薪可能达到100万以上。软件工程师是一项高端技术性的工作,所以工作年限、学历、等因素对薪酬有很大的影响,除此之外,职位、工作地域对薪酬也有一定的影响。专科学历平均年薪为2.5~3.5万元,本科为3.5~4.5万元,硕士以上学历
可达7万元左右。
3、技术可行性
想成为一名正式的软件工程师,仅仅依靠在学校所学的C++、C#、JAVA以及数据库
和网络应用的知识,是远远不够的。由于Java和.NET技术在市场上平分秋色,都有
大量的岗位需求,同时值得庆幸的是二者在应用层面上的技术差异越来越少;在未来的学习中,我应该更加了解JAVA和C#语言开发,考取相应的证书。并在之
后的工作中边学习边掌握更多的编程语言,向一个全面的软件工程师进行发展。
三、职业需求分析
实现目标所需的技术和职业素质
1、软件编程技术
软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都
拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能给编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据资深测试工程师的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
2、测试软件技术
测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。
测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基
础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
3、数据库应用
数据库在当今的信息外包产业是很重要的。很多应用程序都是以数据库的数据为中
心, 而数据库的产品也有不少, 其中关系型数据库仍是主流形式, 所以作为高级软件工程师而言, 至少熟练掌握一两种数据库, 对关系型数据库的关键元素非常清楚, 测试人员至少应该掌握MySql、MS SqlServer、Oracle等常见数据库的使用。
4、网络协议TCP/IP
在互联网如此普及的今天, 如果还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握就很难在IT业立足.从最早的客户/服务器结构, 到今天的WEB Services, 这一切都离不开以TCP/IP协议栈为基础的网络协议支持, 所以, 深入掌握TCP/IP协议是非常必要的。
5、计算机专业英语
随着中国的信息外包产业逐步展开, IT业急需与国外相关高新技术接轨来保持在发展上不落人后。于是IT业相关从业人员现有的英语水平成为限制中国信息产业与国外交流的瓶颈。一个普遍的共识是:良好的英语交流和阅读能力成为衡量一个软件工程师水平的隐性标准,所以掌握计算机专业英语是很重要的。
6、强烈的好奇心和学习精神
对于一个立志成为高级软件工程师的人, 最重要的其实是强烈的好奇心和学习精
神。没有比强烈的好奇心和学习精神更好的武器了, 它是成功的工程师乃至在各行各业的成功者们永攀高峰的源泉和动力所在。
软件和硬件上的条件需求
1、程序语言环境
具备C/C++,VB,VC,Java,.net,ASP,Javascript等语言。具体要求要视公司的具体项目或产品来定。但一般以C为基本要求。
2、数据库操作
SQLServer,Oracle,Mysql,Sybase等。一般对测试人员的要求就是要求会使用,然后熟练使用SQL语句进行查询,修改,添加,删除数据操作。
3、主流操作系统使用
熟悉Windows系列,Linux,Mac OS X系统的使用和操作
4、自动化测试工具应用和理解
好多人觉得自动化测试就是使用自动化测试工具,其实各种工具只是自动化测试实
施的一个有效利器,如何建立一个脱离工具的自动化测试框架远远比研究如何使用测试工具复杂,困难的多。
自动化测试工具的使用:
自动化测试框架(流程)
GUI的功能测试自动化
非GUI的功能测试自动化
性能测试(广义的和狭义的性能测试)
自动化测试工具(功能测试工具,性能测试工具,缺陷管理工具,测试管理工具)
5、文档编写能力
熟悉编写项目实训的测试计划,测试用例,测试报告等相关文档的编写格式。
6、语言
掌握中文和英文,考取英语四级以及六级证书。熟悉计算机专业的英语术语。
7、硬件需求
熟悉企业服务器、个人台式机、笔记本电脑、平板电脑等使用方法,了解其基本硬
件结构以及运行原理。
自我分析和职业规划
自我分析:
我的性格是比较诚实、正直的,相对谦虚但不乏张狂,在做事情时认真勤奋责任心强,同时有一定的创新意识。在自己的生活与同学及其他人的交往中是比较大方的。
在能力上,我认为我的智力还是中等偏上的,在注意力上比较集中,善于观察,记忆力
较强,思维比较开阔,想象力较强。在特殊能力,也就是我的特长上,我认为自己并没有什么特长,只是自己的兴趣所到对一些东西投入了,或许会做的较好一点,比如:计算机的掌握与控制,计算能力等,在语言表达能力及动作协调能力上我做的还不是很好,空间判断能力也不是很突出。
工作、学习中我能做到耐心解决每个问题,但是不够细心,容易忽略一些细节。和团队
队员有很好的沟通,有着优秀的学习能力,积极完成各种任务。上进心强,永不满足现状,不断追求各种新的技术。
职业规划:
1、大学时间提高自我水平
要成为一个软件工程师,所需要的不只是扎实的开发能力,对软件开发的掌控能
力,还有的是沟通和团队合作能力,就目前的软件工程而已,个人能力已经微乎其微了,一个大型的软件,需要数十人,甚至上百人同时进行开发,所以沟通很重要。大学就是培养自身沟通能力与专业能力的最好平台。
大学四年首先要取得必要的证书来证实自己的实力,例如:取得学士学位证书,英语四级证书,计算机三级证书;取得专业资格证书等。另外还要提高自己的综合能力,例如:提高独立面对、解决问题的能力,提高语言组织沟通能力、专业技能、面试技巧。
大学也是一个小的社会,而人本身就是社会最小的组成单位。所以我需要了解社
会所需要的。让自己去适应社会。才能发展自身的目标。从事自己专业的工作,对软件工程有更为深刻的理解。累积实践经验,甚至是为自己实现愿望提供必要的物质基础。所以我需要一边工作一边学习。
2、进入社会工作
第一阶段:(测试员)初级测试工程师(初出校门)
自身条件:初入具备计算机专业学位,有一些手工测试经验。
具体工作:执行测试用例,记录bug,并回归测试,通过qtp等测试工具录制回归测试脚本,并执行回归测试脚本。
学习方向:开发测试脚本并且开始熟悉测试生存周期和测试技术。
第二阶段:(测试工程师)程序分析员(1-2年)
自身条件:有1~2年工作经验。具有初步的自动化测试能力,完善自动化测试脚本。
具体工作:设计和编写测试用例,编写自动测试脚本程序且担任测试编程初期的领导工作。
学习方向:拓展编程语言、操作系统、网络与数据库方面的技能。
第三阶段:(高级测试工程师)程序分析员(3—4)
自身条件:有3~4年经验。具有一定的行业业务知识,储备系统分析员的能力。具体工作:帮助开发或维护测试或编程标准与过程,分析软件需求,获得测试需求。确定测试需求相应的测试方法,获得测试策略方案。参与同行的评审(软件需求,软件测试计划等),并为其它初级的测试工程师或程序员充当顾问。
学习方向:继续拓展编程语言、操作系统、网络与数据库方面的技能。
第四阶段:测试组负责人(4-6)
自身条件:有4~6年经验。具有丰富的行业业务知识,具有系统分析员的能力,专长性能测试。
具体工作:负责管理1~3名测试工程师或程序员。集中于技能方面,担负一些进度安排和工作规模/成本估算职责。分析性能瓶颈的原因,为开发团队 提供bug解决策略。
学习方向:性能测试,测试技能
第五阶段:(资深安全或性能测试工程师)测试/编程高级负责人(6-10)
自身条件:有6~10年经验的测试工程师或程序员。
具体工作:负责管理8~10名技术人员。性能测试整体方案设计,软件系统性能问题定位和性能优化,内存优化及分析数据溢出等,分析系统的安全漏 洞等。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。负责开发项目的技术方法。为一些用户提供支持与演示。
学习方向:开发一些特定领域的技术专长
第六阶段:测试/质量保证/开发(项目)、经理
自身条件:有10多年的工作经验。(10年及之后)
具体工作:管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。为一些用户提供交互和 大量演示。负责项目成本、进度安排、计划和人员分工
第七阶段:(公司级质量总监)计划经理
自身条件:有10年以上开发与支持(测试/质量保证)活动方面的经验。
具体工作:管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任
第四篇:(参考)电脑清理软件界面设计需求分析报告
电脑清理软件
界面设计需求分析报告
一、项目及基本描述
首先给大家介绍的是我们的项目是一个电脑清理软件,在这里我们最主要的目的是给电脑,尤其是使用电脑的用户提供一个方便实用的平台。软件的界面采用最简单实用的界面,让用户能清楚的方便的看到各个功能的菜单以及按钮。该软件的内容主要包括:内存清理、缓存清理、CPU分析、CPU缓存分析、自定义内存分析、自定义CPU分析、卸载程序、注册表分析、注册表清理及优化等等一系列功能,关系到解决日常我们所使用电脑的一些现状、如死机,卡机之类所做出的软件。
具体功能包括:
内存清理:现在的电脑,尤其是那些不怎么高档的电脑,内存不够大、不够快,经常容易死机,卡机,这个功能可以清理那些没有在用的,或者是在用可是占的很大内存的程序,使用这个功能就可以把他清理掉,使电脑可以重新获得更大的内存,不会导致死机或者使用起来很卡很慢。
缓存清理:现在的电脑内存都具有一定的缓存而连接到电脑的CPU,这其中就包括了缓存系统,这个时候他的功能就发挥了作用,有些程序占用了缓存可是却根本没在用,使用了这个功能就可以轻松的帮我们清理缓存中的这些程序,使电脑重新恢复快的速度。
CPU分析:现在的CPU主频都比较高,程序所占用的CPU也挺大的,所以我们需要清楚的知道CPU正在做什么,被哪些的程序所用着,这样我们就可以清楚的知道电脑正在被什么程序所霸占着。
CPU缓存分析:这个功能也是针对CPU来设计的,当今大多数的电脑CPU都有512K的缓存,但是经常会用到不够用,因为他连接着内存,而内存又比他大的多,许多程序又争着用他,这个时候他就承受不住了,使用这个功能我们就能清楚的知道CPU的缓存中到底到使用什么样的程序,如果使用了没必要的程序,我们就可以自己的手动的来关闭他,使电脑拥有更多的缓存来提高电脑的性能。
自定义分析:包括内存分析与CPU分析,面对不同的人所需的风格不同,使用这个软件你可以随心的依据自己的想法及要求,对自己的电脑进行内存分析与CPU的分析,让你的电脑在自己的手中更方便的为你所用。
卸载程序:上网是越来越普遍了,但是上网的时候经常会被莫名其妙的安装上一些垃圾程序,这个时候我们就想要删除他,可是去电脑里面删又很麻烦,使用这个功能我们就可以轻松的删除这些不想要的程序,让硬盘的空间恢复原来的大小。当然本功能也可以卸载一些自己
电脑里系统的或者是原来安装的一些程序,我们现在又不想使用他,而他又占用了许多的硬盘和注册表的容量,我们就可以使用这个功能轻松的卸载它,完成你想要做的事情。注册表分析:这项功能主要帮你分析系统注册表存在的问题以及为注册表清理做好更精确的准备,它可以为你找出系统注册表存在的漏洞,也可以有最新的更新信息,它同时可以帮你优化系统注册表的功能,以及建议你如何修改注册表的方法,方便不懂注册表的人使用它。注册表清理及优化: 当今的电脑存在着开机速度慢,中病毒等诸多问题,这些都需要在注册表中进行修改,该功能可以帮助你处理一些不必要的垃圾,以及改善您系统的各个功能,它不但能使你的电脑处于良好的状态,也可以避免一些病毒的干扰,更可以优化你的系统,让您更放心的使用计算机。欢迎大家对本软件提出宝贵的意见,同时也欢迎大家下载使用,本软件提供试用版和注册版,可以进行用户注册,也可联系我们索要注册号。本软件将为用户提供使用帮助,有不懂的,或是有问题的用户,都可以通过使用帮助或与我们取得联系.二、小组成员
组长:×××(×号)
组员:×××(×号)、……
三、工作分配
×××(×号): 写开题报告及后期报告 ×××(×号):软件功能策划及后期工作 ×××(×号):界面设计
×××(×号):界面设计
×××(×号):界面设计
四、项目进度计划、安排
第×周~第×周:写开题报告
第×周~第×周:设计方案
第×周~第×周:设计
第×周~第×周:写中期报告
第×周~第×周:测试、评估
第五篇:软件需求分析考试资料
1、需求分析的最终结果是需求规格说明书。
2、需求分析中开发人员要从用户那里解决的最重要的问题是让软件做什么。
3、需求规格说明书中的内容不应该包括对算法的详细过程的描述。
4、需求规格说明书的作用不应包括软件可行性研究的依据。
5、关于面向对象方法中消息的叙述,不正确的是操作系统不断向应用程序发送消息,但应
用程序不能向操作系统发送消息。
6、面向对象技术中,对象是类的实例,对象有三种成分标识、属性、方法(或操作)
7、软件需求分析阶段的工作,可以分成以下四个方面对问题的识别、分析与综合、制定规
格说明以及需求分析评审。
8、软件需求规格说明书的内容不应该包括对算法的详细过程的描述。
9、产品特性可以称为质量属性,在众多质量属性,对于开发人员来说重要的属性有哪些?
可维护性、可移植性、可重用性、可测试性
10、求包括11个方面的内容,其中网络和操作系统的要求属于环境需求,如何隔离用户之间的数据属于安全保密需求,执行速度、相应时间及吞吐量属于性能需求,规定系统平均出错时间属于质量保证。
11、需求分析过程应该建立3中模型,他们分别是数据模型、功能模型、行为模型,以下几种图形中,数据流图(DFD)属于功能模型,实体-联系图(ERD)属于数据模型,状态转换图(STD)属于行为模型。
12、常用的需求分析方法有:面向数据流的结构化分析方法(SA),面向对象的分析的分析方法(OOA),下列(D)不是结构化分析方法的图形工具。
A 决策树B 数据流图C数据字典D快速原型
13、软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性,其中,探索型和实验型用完可以丢弃,而进化型围绕原型修改、增加。
14、数据流图用于描述数据的处理过程。
15、DFD 的基本符号不包括下列哪种?(A)。
A 数据字典B 加工C 外部实体D 数据流E 数据存储文件
16、DD的主要字典条目包括以下哪种(E)
A 数据流B文件C 数据项D加工E以上都是
17、常用的动态分析方法不包括以下哪种(B)
A 状态迁移图B 层次方框图C 时序图D Petri网
18、需求分析阶段的文档包括以下哪些(E)
A 软件需求规格说明书B 数据要求说明书C 初步的用户手册D 修改、完善与确定开发实施计划E 以上都是
19、需求验证应该从下述几个方面进行验证:(C)
A 可靠性、可用性、易用性、重用性B 可维护性、可移植性、可重用性、可测试性
C 一致性、现实性、完整性、有效性 D 功能性、非功能性
20、风险管理的要素包括哪些(D)
A 风险评价B 风险避免C 风险控制D 以上都是
21、下列描述中错误的是(D)
A 每一个集成的需求变更必须能跟踪控制到一个经核准的变更请求。
B 变更过程应该做成文档,尽可能简单,当然首要的是有效性。
C 所有需求变更必须遵循过程,按照此过程,如果一个变更需求未被采纳,则其后过程不再予以考虑。
D 可以从数据库中删除或修改变更请求的原始文档。
二、填空题
1、需求分析阶段产生的最重要的文档是(需求分析说明书)。
2、需求分析的主要任务是(要回答“软件必须做什么?”)。
3、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是(功能需求)需求。
4、需求分析阶段研究的对象是软件项目的(用户要求)。
5、软件生命周期:问题分析、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护。
6、信息系统必须实现的功能,或者说信息系统必须具备的属性和质量称为(系统需求(需求))
7、(模型)是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述通常,由一组图形符号和组织这些符号的规则组成。
8、软件需求分析阶段的目的是澄清用户的要求,并把双方共同的理解明确地表达成一份书面文档——(软件需求规格说明书。
9、软件需求分类,分为(功能性)需求和(非功能性)需求。
10、需求分析的步骤包括(需求获取)、(分析建模)、文档编写。。
三、名词解释
第一、二空缺。
3、需求工程:整个软件需求范围内所进行的活动称为需求过程,需求工程包括需求开发和需求管理两部分,需求开发包括问题获取、分析、编写规格说明和验证。
4、业务模型:业务模型是理解是理解一个组织业务过程的技术,可以用业务用例模型和业务对象模型来表达业务模型,业务用例模型分别是分别从与业务过程和客户对应的业务用例和业务参与者的角度来描述企业的业务过程;业务对象模型描述了如何由一组工作人员使用一些业务实体和工作单元来实现每个业务用例。
5、原型开发方法:一个软件原型是所提出的新产品的部分市县,使用原型有三个主要目的:
1)明确并完善需求,2)探索设计选择方案,3)发展成为最终的产品,建立原型的主要原因是为了解决在产品开发的早期阶段不确定的问题,原型可分为抛弃型原型和进化型原型。
6、数据字典:一个定义应用程序中使用的所有数据元素和结构的含义、类型、数据大小、格式、度量单位、精度以及允许取值范围的共享仓库。
四、简答题
1、生命周期模型是什么?常见的生命周期模型有哪几种?
答:对软件开发流程的一种描述:为解决问题所定义的策略;对典型开发活动的抽象。常见的生命周期模型:Waterfall,Prototyping,Phased,Spiral(瀑布模型、快速原型模型、增量模型,螺旋模型)
2、为什么要使用生命周期模型?
答:帮助开发组了解他们在开发项目的活动、资源和限制;帮助项目了解在开发过程中的不一致,丢失,冗余等情况,把注意力集中在开发最终产品上;帮助项目组剪裁开发过程——没有基础就无从剪裁。
3、waterfall的优势是什么?
答:具有良好定义的里程碑,利于向不熟悉软件开发的客户讲解流程;帮助开发人员理解需要做的事情;清楚地描述下阶段开始前需要的中间产品;是很多其他LC模型的基础。
4、需求分析阶段的基本人物是什么?
答:需求分析阶段的基本任务是:
(1)问题识别:双方对问题的综合需求;a.功能需求 b.性能需求c.环境需求d.用户界面
需求。
(2)分析与综合,到处软件的逻辑模型。
(3)编写文档。
五、问答题
1、软件过程的概念及分类,基本过程包含些什么及每个过程的具体内容。
答:软件过程也称为软件生存周期过程或软件过程组,是指软件生存周期中的一系列相关过程,过程就是过程的集合,活动是任务的集合,人物则起到把输入加工成输出的作用。活动的执行可以是顺序的、迭代的(重复的)、并行的、嵌套的或是有条件引发的。
软件过程可以分为三类:基本过程、支持过程和组织过程。
基本过程包括:
1)获取过程:(项目委托方)确定需求;招标;签订合同;对供应方的监督;验收完成。
2)供应过程:(项目承包方)理解需求;投标;签订合同;计划;实施;控制;评审评
价;交付。
3)开发过程:(软件开发人员)过程实施准备;系统需求分析;系统结构设计;软件需
求分析;软件体系结构设计;软件详细设计;软件编码测试;软件集成;软件合格测试;系统集成;系统合格测试;软件安装;验收支持。
4)运行过程:(用户)运行准备;运行测试;产品转移;运行;运行支持;运行评价。
5)维护过程:(维护人员)过程实施准备;问题分析和修改设计;修改实施;对维护的评审和验收;软件移植;软件退役。
2、简述软件需求工程分为哪几类?其中需求获取和需求规约的目的和任务。
答:软件需求工程细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理六个阶段。
需求获取:系统分析人员通过与用户的交流,对现有系统的观察及任务进行分析,确定系统或产品范围的限制性描述、与系统或产品有关的人员及特征列表、系统的技术环境的描述、系统功能的列表及应用于每个需求的领域限制、一组描述不同运行条件下系统或产品使用状况的应用场景以及为更好地定义需求而开发的任意原型。
需求规约:软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标的各种要求。需求规约作为用户和开发组之间的一个协议,在之后的软件工程各个阶段发挥重要作用。
3、简述软件体系结构的概念及基于B/S体系结构的实现方式。
答:软件体系结构:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件,处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。
B/S结构:浏览器(客户机)—WEB服务器—数据库服务器
B/S体系结构的实现方式:B/S模式下的客户机只需安装浏览器软件,无须开发前端应用程序;中间层的WEB应用服务器,主要的数据计算和应用都在此完成,因此对中间层服务器的要求较高;后台数据库服务器主要完成数据的管理。
4、用户界面设计三个的任务和目的答:用户界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。
1)结构设计:结构设计也称概念设计,是界面设计的骨架,通过用户研究和任务分析,制定出产品的整体架构,基于纸质的低保真原型可提供用户测试并进行完善,在结
构设计中,目录体系的逻辑分类和语词定义是用户易于理解和操作的重要前提。
2)交互设计:交互设计的目的是使产品让用户能简单使用,任何产品功能的实现都是
通过人和机器的交互来完成的。因此,人的因素应作为设计的核心被体现出来。
3)视觉设计:在结构设计的基础上,参照目标群体的心理模型和任务达成进行视觉设
计,包括色彩、字体、页面等,视觉设计要达到用户愉悦使用的目的。
5、需求规格说明文档的作者及表现手段
答:作者:
项目管理者:组织安排、提供条件。
需求工程师:负责人、主导人。
文档写作人员:有时会采用,节省需求工程师的时间
涉众(用户):验证人
表现手段:
非形式化:自然语言、限制性文本
半形式化:结构化文本(伪码/结构化英语)、模型语言(图、表)
形式化:形式化语言(数学语言:BNF)
6、数据库设计的内容及常用方法
答:数据库设计包括数据库的结构设计和数据库的行为设计。
1)数据库的结构设计
数据库的结构设计指是根据给定的应用环境,进行数据库的模式或子模式的设计。它包括数据库的概念设计、逻辑设计和物理设计,数据库模式是各应用程序共享的结构,是静态的、稳定的,一经形成后通常情况下是不容易改变的,所以结构设计又称为静态模型设计。
2)数据库的行为设计
数据库的行为设计是指确定数据库用户的行为和动作,而在数据库系统中,用户的行为和动作指用户对数据库的操纵,这些要通过应用程序来实现,所以数据库的行为设计就是应用程序的设计。用户的行为总是使数据库的内容发生变化,所以行为设计是动态的,行为设计又称为动态模型设计。
数据库常用设计方法:直观设计法、规范设计法、计算机辅助设计法、自动化设计法。
7、如何正确看待客户?
答:即使最终用户不是上帝,也算是上帝的亲戚,同样怠慢不得
如果项目规模比较大,那么开发方与最终用户的来往就比较多。如从最终用户那里获取详细的需求,请最终用户试验软件,对最终用户进行培训等等。
8、概括说明如何进行需求分析?
答:(1)需求分析是指需求开发过程中,对所获取的需求信息进行分析,及时排除错误和弥补不足,确保需求文档正确地反映用户的真实意图。
(2)分析方法大体有两类:“回答分析法”和“建模分析法”。
第一:问答分析方法很简单:刨根究底地问,如果问题都被解答了,那么需求也就分析清楚了,一个人可以“自问自答”地分析需求,几个人分析需求则称为“研讨”,问答分析最重要的问题是:“是什么”和“为什么”,其它常见的问题有:需求存在二义性吗?需求文档的上下文有矛盾吗?需求完备吗?需求是必要的吗?需求可实现吗?需求可验证吗?需求的优先级确定了吗?
第二:建模分析法:在需求开发过程中,对于某些类型的信息,用图形表示要比文本表示更加有效,所以将图形与文本结合起来描述需求是很自然的方法。需求建模就是指用图形符号来表示、刻画需求,需求建模不可能取代文字描述。在需求文档中,文字描述是第一重要的,建模主要是起分析、解释作用、建议将模型存放在需求文档的附录中,便于正文引用。建模分析方法主要有两大类:“结构化分析法“和”面向对象分析方法“。