第一篇:软件工程师可行性和需求分析报告
软件工程师可行性与需求分析报告
一、职业目标与内容
职业定义
软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。主要工作进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。一般可以分为系统软件工程师,应用软件工程师两类。在企业中职位一般分为以下四种人:
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年以上开发与支持(测试/质量保证)活动方面的经验。
具体工作:管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任
第二篇:软件需求分析报告
软件需求分析
软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。进行需求分析时,应注意一切信息与需求都是站在用户的角度上。尽量避免分析员的主观想象,并尽量将分析进度提交给用户。在不进行直接指导的前提下,让用户进行检查与评价。从而达到需求分析的准确性。分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。
需求分析的任务
开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?然而,即便并非出于商业目的的软件需求也是必须的。例如库、组件和工具这些供开发小组内部使用的软件。当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生。近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件。不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能。结果这个小组只好手工抄写源代码文档以供代码检查。这说明那怕需求明确无误并构思准确,如果我们没有编写文档,软件达不到期望目标也只能是咎由自取了。相反的情况,我曾见一个要集成到“错误跟踪系统”中的简单界面写了一页需求说明。而操作系统系统管理员在为处理脚本时发现简单的一张需求清单竟是如此有用。他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误。事实上,需求文档在开发过程中一直起指导作用。需求的类型
下面这些定义是需求工程领域中常见术语的定义。软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。1.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。2.用户需求(user requirement)文档描述了用户使用产品必须要完成的任务,这在使用实例(usecase)文档或方案脚本说明中予以说明。3.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。在软件需求规格说明书(SRS)中说明的功能需求充分描述了软件系统所应具有的外部行为。软件需求规格说明在开发、测试、质量保证、项目管理以及相关项目功能中都起了重要的作用。对一个大型系统来说,软件功能需求也许只是系统需求的一个子集,因为另外一些可能属于子系统(或软件部件)。作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反
映产品功能。多角度描述产品对用户和开发人员都极为重要。下面以一个字处理程序为例来说明需求的不同种类。业务需求可能是:“用户能有效地纠正文档中的拼写错误”,该产品的包装盒封面上可能会标明这是个满足业务需求的拼写检查器。而对应的用户需求可能是“找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词”。同时,该拼写检查器还有许多功能需求,如找到并高亮度提示错词的操作;显示提供替换词的对话框以及实现整个文档范围的替换。从以上定义可以发现,需求并未包括设计细节、实现细节、项目计划信息或测试信息。需求与这些没有关系,它关注的是充分说明你究竟想开发什么。项目也有其它方面的需求,如开发环境需求或发布产品及移植到支撑环境的需求。
第三篇:软件可行性分析报告
基于Android平台的测绘内业处理软件开发与设计
可行性分析报告
1、引言
1.1编写目的随着计算机、网络、大数据的快速发展,测绘行业传统的内业处理以不能满足如今快速、准确的要求,另外一些生活上智能化设备的出现,促使测绘行业也不断想智能化方面发展。这样,在测量过程中不但极大的减少人力物力,更重要的是提高工作效率,从而与我们今天快节奏的生活相结合,虽然目前已有很多这样的软件,但我们要事实根据所需,来编写更加人性化的软件。在这样的背景前提下,我们需要编写一个软件,从而实现坐标正反算、水准测量内业处理、复合导线内业处理。接下来我们要对软件开发中将要面临的问题及其解决方案进行可行性分析。1.2项目背景
1.2.1 项目名称:基于Android平台的测绘内业处理软件 1.2.2 用户:工程测量人员
1.2.3 说明:本次软件开发是对Delphi编程、软件工程、测绘原理学习的综合性考察,本次开发是大学生理论与实践的有机结合,同时也是本学期“软件工程”这门课程的考核。1.3定义
Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。
Android:Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。该平台由操作系统、中间件、用户界面和应用软件组成。
1.4参考资料
《软件工程导论(第四版)》
张海藩编著
清华大学出版社出版
2、可行性研究的前提 2.1要求
2.1.1 功能要求
此软件所要完成的主要功能模块有三部分:读取数据、处理数据和输出数据。
读取数据时,操作人员安置调整好一起后开始读取相关数据,并记录角度、距离等信息。
而处理数据时,这一环节由实现编好的软件自动完成,工作人员只要在移动设备上通过相应的按键就可以完成。
数据输出过程也是通过按键完成,处理完成的结果通过电子表格的形式可视化,最终在打印机中打印。2.1.2 性能要求
为了满足用户的要求,软件必须要准确处理数据,所以要求很少的bug;由于要存贮大量的地理数据数据和信息,也还要有足够大的磁盘容量; 2.1.3输入要求
软件有准确识别各种测量专业的数据类型,软件要自动拒绝输入不正确的数据,一面在运算过程中出现各种漏洞,从而影响计算的准确性。2.1.4 输出要求
要求能快速准确的计算出相关数据。2.1.5如见运行流程图
2.1.6完成期限
初步确定开发期为一个半月。2.2目标
本软件的编写专业性要求较高,必须提供专业的资料使其能够顺利进行。目标具体表现为在学校内部进行运用,初步实现数据处理,并保证能够提高测量人员的工作效率;从而实现测量内业处理的的高效性、方便性、实用性,提高测绘事业向科学化、智能化方向发展。2.3条件、假定和限制
假设开发的软件运行的最短寿命为五年;开发时间与试运行时间预定为两个月;经费的投资为零;软件运行环境如下:运行平台: Android/编程软件:Delphi/创建数据库:Sqlserver 2012; 2.4可行性研究方法 采用调研法:通过自己以及身边同学在实际应用中的需求;然后经过查阅相关资料并请教老师,落实最后的问题定义。2.5决定可行性的主要因素
本次可行性分析是按照软件工程的规范步骤进行的,即按复查项目目标和规模,然后提出软件的实现方案,推荐最佳方案,对所推荐的方案进行经济、技术、用户操作和法律的可行性分析,最后给出软件是否值得开发的结论。
3、对现有软件的分析
当前大多数处理软件都是个人编写,没有形成统一的规范,没有和一起很好的相结合,功能单一,其次,有些软件的功能有很大的局限性,不够完善,没有真正广泛运用于实际测量工作中。3.1工作负荷
由于测量内业处理是一个繁琐枯燥的工作,只靠人工读取数据、记录、计算,工作效率较低,通常还会有处理错误的情况。
所以这些都给测量人员增加了非常大的工作负荷;同时也测绘事业的发展带来了严重的制约。3.2费用支出
本来测量的周期较长,过长的内业处理时间造成人力物力的大量输出,从而使资金不断支出。
4、所建议技术可行性分析 4.1对软件的简要描述
根据软件目标以及现行软件存在的问题,建议软件将复合导线计算、水准测量、坐标正反算这几个功能整合在同一个软件中,预期计划建立接口,今后软件更新过程中实现网络链接,这样测量数据就通过网络形式传输,这样处理数据机制就向网络化、大数据、云计算方向发展。4.2数据流程图 4.3与现有软件比较的优越性
极大的减少工作时间,提高工作效率。
可以大大减少工作人员,节约人力资源的开销;另一方面由于数据处理靠手机等移动设备处理,可以减轻测量人员的工作负担,有效地提高了整体的工作效率和精确度。
软件可扩充性强:该软件后期升级较为方便,可以根据测量的实际情况来灵活配置,可根据不同需求增加新功能模块和子软件以满足用户的个性化需求。
兼容性强:软件可提供数据接口和应用接口,便于软件集成和二次开发,确保有效利用现有资源。
4.4采用建议软件可能带来的影响 4.4.1对设备的影响
软件对于设备要求更高的稳定性与安全性来保证其正常运行。并且对于打印、复印设备需要要求与计算机进行互联。4.4.2对用户的影响
由于采用建议软件提高了工作效率,可使客户办理业务更加快捷、方便。高效的数据处理方式。4.4.3对软件运行的影响
软件设计的主要目的是提高工作效率。所以在软件设计和建设初期应着手参考各方面的标准与规范,并且应遵从该规范各项技术规定,并做好软件的标准化设计与管理工作。软件考虑今后发展的需要,因而必须为容量与处理数据能力等方面的扩充与换代的可能,这种扩充不仅充分保护了原有投资,而且具有较高的综合性能价格比。4.4.4对运行环境的影响
由于使用者人数众多,水平不一,该软件设计时考虑到使用者在使用时要求操作简单,计算准确,软件设计采用模块化设计,使用户更方便的进行操作,无需提前学习使用。4.4.5对经费支出的影响
由于需要上网或图书馆查阅相关资料,但这些条件都基本能满足本次软件开发的需求,所以不需要经费的支出。4.5技术可行性评价
开发软件的计算机硬件已经非常普及,所以完全没有问题;现在的计算机各方面的技术都非常成熟,相对来说开发此软件的技术也要求比较简单,因此在技术方面是可行的;若按计划,在规定的期限内,本软件的开发是可以完成的。
5、所建议软件经济可行性分析 5.1软件开发费用 5.1.1人员费用。本软件由本人学习开发,非商业性软件,所以在开发过程中人员费用为0。
5.1.3软件费用。软件所需的软件费用为0元,其中:
DelphiXE7,Sqlserver2012:可免费下载 5.1.4咨询和评审费、调研和差旅费:约0元
综上,软件开发总费用为0元 5.2软件运行费用。免费。5.2.1软件维护费。免费。5.3效益
5.3.1一次性收益。提高工作效率,减少工作人员人数。本系软件行可以提高数据处理处理的效率。如果测量单位现有测量人员按10人计算,人员工资平均为3000元/月,一年工作时间为200天。由于使用该软件明显提高了工作效率,从而节约了30天的工作时间,这样在一年中测量单位可以节约将近1万元的支出,另外多出的时间还可以做更多的工作,这样每年的收入将多出1万多元。5.3.2经常性收益。纸张、铅笔等记录数据工具用量减少可节约成本每年约1千元。
6、社会因素可行性分析 6.1法律因素
本次开发编程是在学习中的一次开发,所使用软件都可以从网上下载,并无侵权或者抄袭等违法情况,也没有被申请过专利,所以,在法律方面是可行的。6.2用户使用可行性
开发的软件操作要非常简单,以便不同的人们都可以很方便操作使用。
7、其他可供选择的方式
可以使用现有软件,但是由于现有软件过于简单、在移动平台上运行的很少,所以不建议使用这个方案。
8、结论意见
为了使传统测量适应现代化高科技的需求,促进测量工作的快速、准确性,建议立即着手软件开发的建议。
第四篇:软件工程师职业发展的可行性与需求分析(xiexiebang推荐)
软件工程师职业可行性与需求分析报告
职业定义
软件工程师主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。一般可以分为系统软件工程师,应用软件工程师两类
工作内容
1、根据客户要求或市场要求设计、开发软件产品。
2、按照工作进度和编程工作规范编写系统中的功能模块或程序。
3、对所编写的程序进行严格的综合测试,测试软件模块和软件集成产品。
4、进行软件故障的诊断、定位、分析和调试,以实施产品测试方案。
5、编写软件产品文档以实施软件文档计划,管理相关软件文档。
6、向业务部门提供软件的后期技术支持。
7、通过设计、开发和维护指定产品中的高质量代码,与团队协作评估和了解新技术,并使用这些技术构建应用程序。
8、参与相关软件应用培训课程的设计及培训。引言
1.1 编写目的为更好指导个人以后就业已经职业发展明确目的。
1.2 背景
说明:
A.在大学时期指导需要学习技能
B.为以后工作提供明确的指导方向社会可行性
计算机技术的快速发展史得软件产品已融入国民经济的各个领域,优秀的IT技术人才是当前职场中最热门的“抢手货”。我国IT业在经历了2004年整体回暖后,2005年又开始进入市场细分期。软件工程师也是IT行业需求量最大的职位,稳居IT行业职位需求TOP 10的第一位,而高及工程师则位列第二。
软件和信息服务外包产业已成为各个国家经济发展的重点.从增加值角度来看, 同样金额的出口, 服务外包对中国经济的贡献是来料加工的20倍以上;从能源消耗上看, 服务外包单位GDP能耗仅为制造业的20%.这在中国政府大力倡导可持续发展战略以及大力发展高技术第三产业的主旋律下是适应中国经济发展, 也是符合中国社会客观需求的.可以看到的是, 未来中国软件和信息服务外包产业发展空间巨大, 其原因有三: 首先是具有成本优势, 中国低成本的竞争优势是全世界公认的.第二, 具有人力资源优势, 中国是世界上人力资源极为丰富的国家, 软件和信息服务外包服务业是劳动密集型产业, 中国未来在软件和信息服务外包
业内将成为全球最具竞争力的转移承接地.第三, 中国有非常庞大的国内市场, 这是中国吸引跨国公司进入很重要的一个原因.但与发展潜力不对称的是, 现今中国软件和信息产业人才相当缺乏,据调查研究显示, 当前中国软件和信息服务外包产业人才流动率较高, 而且缺口很大.企业成立时间比较短, 规模大多比较小, 企业人才平均流动率达18.28%, 这和缺乏培训、业务来源不稳定、报酬机制不够合理等因素有关.同时由于产业发展迅速, 人才供不应求, 尤其是本地化人才和中高级管理人才.市场需求的巨大和专业人才的缺乏令人吃惊,但这正是商机和盈利的重要突破口.可以预见,中国软件和信息服务外包产业将在不久的将来成为引领中国第三产业转型和发展的龙头产业, 相关职业包含高级软件工程师的人才需求将会非常巨大
随着IT产品出现的技术融合,掌握更多的编程语言、熟悉客户语言和文化背景、精通国际规则、具有国际市场开拓能力的高端软件工程师、复合型软件人才将是职场中的宠儿。经济可行性
IT界,薪酬相对较高的就是软件开发、网络维护等对IT技能要求相对较高的职位,目前在软件行业内部,能够进行软件整体开发设计的软件设计人员比较稀缺。虽然软件从业人员的薪水一路看涨,但是职位的争夺也异常激烈。2008年6月,智联招聘的调查统计数据显示,软件工程师求职与招聘人数的比例达到了15.4:1。
作为一名刚刚毕业的大学生,也只是一个编程人员而已,毕业后刚开始薪水可能只有2000元,当能力达到一定的水准后,即经验积累到一定的程度,一般程序员做了两年之后,月薪都会成倍的增长,6000元,8000元,10000元。
而成为软件工程师后的平均工资在5000~12000元之间。软件工程师是一项高端技术性的工作,所以工作年限、学历、等因素对薪酬有很大的影响,除此之外,职位、工作地域对薪酬也有一定的影响。专科学历平均年薪为2.5~3.5万元,本科为3.5~4.5万元,硕士以上学历可达7万元左右。通常一名高级软件工程师的年薪在11万元左右,而项目经理的年薪则可以高达30万之多。技术可行性
以目前个人的专业技能来说,我所具备的JAVA,C#,数据库知识,还不足以使我成为一名软件工程师。所以我以后的学习工作生涯中必须不断累积自身的知识及开发经验,通过自身与他人的知识总结不断提高自己,在未来的一年中,学习JAVA知识并考取SCJP证书,完成人生的第一个软件技术人的证明。然后边工作边学习软件知识,通过考证提高自己的职场竞争力,以自己的工作经验为基础一步步实现自己的目标完成目标所应具备的技术及素质
1.编程开发工具.至少熟练掌握两到三种开发工具的使用, 这是程序员的立身之本。C/C++以其高效率和高度的灵活性成为开发工具中的利器, 很多系统级的软件还是用C/C++编写.而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在。其次, 如果能掌握一种简便的可视化开发工具, 如VB,PowerBuilder,Delphi,C++ Builder,则更好, 这些开发工具减小了开发难度, 并能够在无形中强化对象模型的概念.另外, 需要掌握基本的脚本语言, 如shell,perl等。
2.数据库.数据库在当今的信息外包产业是很重要的。很多应用程序都是以数据库的数据为中心, 而数据库的产品也有不少, 其中关系型数据库仍是主流形式, 所以作为高级软件工程师而言, 至少熟练掌握一两种数据库, 对关系型数据库的关键元素非常清楚, 熟练掌握SQL的基本语法是非常重要的。
3.网络协议TCP/IP.在互联网如此普及的今天, 如果还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握就很难在IT业立足.从最早的客户/服务器结构, 到今天的WEB Services, 这一切都离不开以TCP/IP协议栈为基础的网络协议支持, 所以, 深入掌握TCP/IP协议是非常必要的。
4.软件工程与CMM.现代大型软件系统的开发中, 工程化的开发控制成为软件系统成功的保证。编程只是软件生命周期中的其中一环, 本人认为优秀的软件工程师应该掌握软件开发各个阶段的基本技能, 如市场分析, 可行性分析, 需求分析, 结构设计, 详细设计, 软件测试等.否则就永远只会是一个程序员, 而无法成为名副其实的工程师。
5.计算机技术专业英语
随着中国的信息外包产业逐步展开, IT业急需与国外相关高新技术接轨来保持在发展上不落人后。于是IT业相关从业人员现有的英语水平成为限制中国信息产业与国外交流的瓶颈。一个普遍的共识是:良好的英语交流和阅读能力成为衡量一个软件工程师水平的隐性标准,所以掌握计算机专业英语是很重要的。
6.强烈的好奇心和学习精神.对于一个立志成为高级软件工程师的人, 最重要的其实是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了, 它是成功的工程师乃至在各行各业的成功者们永攀高峰的源泉和动力所在。具体实现方法
1.利用大学时间充实自己.知识积累:取得学位证书,计算机三级证书;取得专业资格证书,如SCCP
综合能力;提高独立面对、解决问题的能力,提高语言组织沟通能力、专业技能、面试技巧。
一个软件工程师,所需要的不只是扎实的开发能力,对软件开发的掌控能力,还有的是沟通和团队合作能力,就目前的软件工程而已,个人能力已经微乎其微了,一个大型的软件,需要数十人,甚至上百人同时进行开发,所以沟通很重要。大学就是培养自身沟通能力与专业能力的最好平台。
然而,只要是人都离不开社会,人本身就是社会最小的组成单位。所以我们需要了解社会所需要的。然自己去适应社会。才能发展自身的目标。从事自己专业的工作,对软件工程有更为深刻的理解。累积实践经验,甚至是为自己实现愿望提供必要的物质基础。所以我需要一边工作一边学习。
2.熟悉网络信息,使自己时刻保持在最前端。
现在中国政府正在大力支持中国软件行业的发展,经过了系统化体系培训的软件人才更容易走向国际化,也更受国内大中型规模软件公司的欢迎(200人-几千人)。软件工程师城市之间差异比较大,国外软件工程师绝对不是青春饭,但在中国情况不一样。如果一直走技术路线而且一直在国内民营企业做,那么基本上就是青春饭了。如果能够从技术转管理或者转咨询那就当然不是了,尤其是在跨国公司有过项目管理经验的话还是很吃香的。
软件工程人才的就业前景十分看好。未来几年,国内外高层次软件人才将供不应求。毕
业生主要在各大软件公司、企事业单位、高等院校、各大研究所、国防等重要部门从事软件设计、开发、应用与研究工作。有数据表明,我国软件出口规模达到215亿元,软件从业人员达到72万人,在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景十分乐观。
信息化是IT界的焦点。而信息化的实现,除了需要技术支持,人才也是很重要的环节。如何培养与国际接轨的高素质软件工程人才,已经成为中国软件产业的当务之急。
软件产业的发展水平,决定了一个国家的信息产业发展水平及其在国际市场上的综合竞争力。目前,我国软件高级人才的短缺已经成为制约我国软件产业快速发展的一个瓶颈。在中国,国内市场对软件人才的需求每年高达80万人,而高校计算机毕业生中的软件工程人才还很缺乏,尤其是高素质的软件工程人才的极度短缺。尽快培养起适合信息产业所需要的高素质软件工程人才,已经成为信息化工作中的重中之重。
3.制定学习计划,强化自身知识水平,无论是工作还是在校时间。
初入阶段(工作后3个月~1年)
对于刚刚入行的新人,这个时期是一个全面熟悉期,最能够学习到新的知识,也最有拼搏的热情和动力。借着这股冲劲,我需要尽可能了解所在领域的全貌,了解各个主要分支的内容、特性、优势、局限性等等,并考察自己当前的工作环境,结合个人匹配程度和兴趣爱好,根据前述内容调整自己的规划。
对于开发语言行当而言,技术方面一般有几类:JAVA,.net,C++,等;
面对上述形形色色的方向,要都稍稍了解下内涵,然后确定1~2个,作为中长期的主攻方向,达此标准,基本已经实现了入门,至于能否进得厅堂,就要看后期的努力了。提高阶段(工作后3年~5年)
对于工作后选择管理还是选择技术,其实这种问题,是无可无不可的,关键是看对自己的长期的定位了。不过,我个人建议当前阶段还是技术为重吧。毕竟,在一个技术环境中,要做好管理,没有扎实的基础,也难服众嘛。
本阶段是人最容易懈怠的阶段。毕竟,刚刚入行的热忱早已被日复一日的繁复工作给冷却,有了一定的工作经验,胜任本职,对于大多数人而言,绝不是问题。家庭、娱乐方面开始占据了业余生活的主流。可是,毕竟大家还很年轻,大多数人此时也不过20多岁,就此懈怠也是非常可怕的。因此,有规划的提高自身核心竞争力,在这个时候尤为关键。
提高是要提高的,但是对于大多数人而言,也没有必要很拼搏,此时处在一个比较稳定的职位上的,我觉得应该考虑进行细化自己的中期规划了。根据选定的方向,制定一个自我提升的计划,并定义好自我检查的里程碑(譬如:每个季度或半年算一个阶段),每天或者每周,有规律的学习一点即可。抱定一个目标——“每天进步一点点”,几年一大成不是问题。我个人是反对急功近利的,倾向于稳打稳扎,这个阶段忌做“万金油”,而应努力成为有一技之长的“专家”。
对于选择做技术的人而言,这个阶段的达成标准,一般至少要能够熟悉你所选技术方向的大多数技术细节,“细节决定成败”嘛,虽然把握全局的能力是必要的,但是作技术而言,倘若不能钻的很细很深,恐怕也很难以高手自居吧。
对于选择做管理的人而言,我个人倾向是:此阶段接触管理的理念,并可以介入管理,但是此阶段不宜全面进入管理(除非你有更深层次的考虑,可以不去稳打稳扎)。学习管理的理念是非常重要的,其实管理更多一种思维和做事的方式,这门学问很深入,也不像技术,会不会是那么的显著,因此,建议多看多学,取长补短,并努力形成自己的做事风格。高级软件测试工程师,测试组长等,都是不错的含有技术特征的管理职位,此时的你应该能够胜任于此。
这个阶段的达成后,你也可以跻身老手行列,不必为求职犯愁,你应该可以很容易跳槽
或时不时被猎头骚扰下,达成此阶段,你要做更深入的规划。
升华阶段(老手后5年~10年)
此时的我,即将步入中年,不论是曾经专注技术还是偏爱管理的,都面临着家庭和社会的双重压力,都不可能像年轻人一样整天拼搏了,我需要稳定,因此,不能频繁的跳槽,应考虑比较正规且有潜力的企业,要考虑给自己一个长远的发展规划。
正因为有前期的细节的背景的支撑,此时,我需要努力提升自己的宏观把握能力。哪怕做技术的,也要考虑适当的转型管理(中国特色是:工程师很难超过35岁的,一般人到了30岁不是转管理就是转商务了)。当然,一般人是技术做得越好,管理的时候,越容易切中项目要害。但是,对于从技术上来的人,关键是要开始培养和人打交道的能力。此阶段的关键是,需要逐步形成自己的管理风格,具备协调并行事务的能力。
当然,纯管理和技术型管理还是有所区别的。对于纯管理的人,熟练应用管理的科学理念,形成自己的风格尤为重要。纯管理的测试经理人,不仅仅可以做好测试方面的管理,其实也可以做好项目甚至其他的管理。其实,不管管理的对象是什么,它们的管理理念还是相通的。从测试管理中摸索出来的很多经验,可以很好的推广于其他的管理领域。而对于技术型管理的人,主要是带好技术团队,同时,不断补充新的技术知识,跟紧技术潮流。此时的你,有强大的技术背景支撑,不需要过分钻研细节,只需洞察核心,合理安排好你的团队成员即可。
这个阶段,也可能少数的人会选择离开具体的企业,而开始从事测试咨询,那是一个充满挑战的崭新开始,也必须有前期的积累方能胜任。
对于大多数人而言,此阶段中一个需要重点考虑的问题是,是否将测试作为自己的终生职位,如果是,基本上达到上述的目标,保持状态,基本可以做到退休的。毕竟,达到此阶段,已经付出了至少5年的努力,而且还是人生的黄金时段,时光一去不复返啊。
第五篇:软件需求-案例分析
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所示。
操作 预约验证 参与主体
对应需求
患者预约系统 系统接收到预约请求,患者被告知预约选择结果
预约结果判定 患者预约系统 患者被告知预约选择结果 预约提交 患者预约系统 系统接收到预约提交请求,患者被告知预约提交结果