软件开发项目规划时,SA、SD与SE的区别与重要性
- 格式:doc
- 大小:41.50 KB
- 文档页数:4
软件项目度量指标和控制指标是软件开发过程中非常重要的一部分,它们能够帮助开发团队和管理人员评估项目进展情况,及时发现并解决问题,确保项目按时交付、质量可控。
本文将从常见软件项目度量指标和控制指标两个方面进行探讨,为软件项目管理提供有益的参考。
一、常见软件项目度量指标对于软件项目管理来说,度量指标是评估项目进展和质量的重要依据,合理选择和使用度量指标能够帮助团队领导及时发现问题、及时调整问题和保证项目交付质量,常见的软件项目度量指标有:1. 代码行数:代表了软件代码的规模,是度量软件规模的最基本指标之一。
代码行数在软件开发过程中被广泛使用,可以用于评估软件规模、成本估算、进度控制等方面。
2. 功能点数:是根据软件功能区分的度量指标,它能够更好地反映软件的实际使用价值。
功能点数是一个重要的度量指标,可以帮助团队直观地了解软件的功能复杂度和开发进度。
3. 缺陷密度:是度量软件质量的重要指标之一,它可以帮助团队了解软件的缺陷情况,以及缺陷的严重程度。
通过缺陷密度指标,团队可以及时发现和解决软件质量问题,提高软件质量。
4. 代码覆盖率:是度量软件测试覆盖情况的指标,通过代码覆盖率可以了解软件的测试覆盖情况,帮助团队评估测试质量和发现测试遗漏情况。
5. 进度指标:包括工作完成进度、任务完成比例、工作量增减变化情况等,可以帮助团队领导及时了解项目进展情况,调整项目计划和资源分配。
二、常见软件项目控制指标除了度量指标,软件项目的控制指标也是非常重要的,它们能够帮助团队领导控制项目进度、成本和质量,确保项目按时交付和质量可控。
常见的软件项目控制指标有:1. 成本偏差(Cost Variance,CV):是衡量项目成本偏离预算的指标,CV=实际成本-计划成本,通过成本偏差指标可以帮助团队领导了解项目成本控制情况,及时调整成本预算和资源分配。
2. 进度偏差(Schedule Variance,SV):是衡量项目进度偏离计划的指标,SV=实际完成工作-计划完成工作,通过进度偏差指标可以帮助团队领导了解项目进度控制情况,及时调整项目计划和资源分配。
sa、fc等指标SA(Sentiment Analysis)是一种自然语言处理技术,用于识别和分析文本中的情感倾向。
FC(Flesch-Kincaid)则是一种常用的可读性评估指标,用于衡量文本的易读程度。
本文将通过介绍SA和FC指标的含义和应用,来说明它们在文本分析和写作中的重要性。
情感分析是一种将人类情感转化为计算机可处理的形式的技术。
它通过分析文本中的情感词汇、语义和上下文等因素,来判断文本表达的情感倾向。
SA技术通常用于社交媒体监测、舆情分析、品牌声誉管理等领域。
例如,在社交媒体上监测用户对某个产品的评价,可以使用SA技术分析这些评价是积极的、消极的还是中性的,以帮助企业了解用户的需求和情感态度。
FC指标是根据文本的句子长度和单词长度来计算文本的可读性水平的指标。
它通过计算句子的平均词数和平均音节数,来衡量文本的复杂程度。
FC指标的计算结果通常以年级的形式呈现,比如一个文本的FC指标为8.5,则表示这篇文章的阅读难度相当于小学八年级的学生能够理解。
SA和FC指标在文本分析中起着重要的作用。
SA可以帮助企业了解用户的需求和情感态度,从而更好地满足用户的期望,提高产品的质量和竞争力。
而FC指标则可以帮助写作者评估自己的文章是否易读,是否符合目标读者的阅读水平,从而提高文章的可读性和传达效果。
在进行SA和FC分析时,需要注意以下几点。
首先,要确保文本的独一性,避免内容的重复出现。
重复的内容会降低文章的质量和可读性。
其次,要合理组织文章的结构,使用适当的标题和段落,以增强阅读流畅性。
标题应准确概括文章的主题,段落应明确主题句,逻辑清晰。
此外,还应避免使用依赖图像的语句,如“如图所示”,以确保文章的独立性。
为了使文章更加生动有趣,可以使用丰富多样的词汇来表达,避免重复和平铺直叙。
同时,要注意使用准确的中文进行描述,避免歧义和误导。
文章应刻画明确,句式流畅,以增强读者的阅读体验。
此外,还要保持文本的自然度和流畅度,避免让读者感觉像是机器生成的。
软件工程技术分析摘要:计算机互联网快速发展,为人们的生活、工作、教育、娱乐等方面带来很多便利条件,到目前为止,软件工程技术已经成为各行各业的核心竞争力。
软件工程技术作为系统软件开发的主要技术,对系统软件运行的质量和安全性有重要意义。
本文结合理论实践,就系统软件开发过程中的软件工程技术进行深入分析,希望对我国软件技术开发有一定帮助。
关键词:系统软件开发;软件工程技术;特点分析;技术要求进入21世纪以后,我国互联网技术取得了飞跃式发展,相关的应用软件已经被广泛应用商业、教育、银行等领域,逐渐改善着人们的生活。
在很多发达国家,系统软件开发企业已经成为支柱性产业。
科学合理的软件设计是提高生活、工作的首要前提。
在信息快速发展的今天,系统软件在人们生活生产中起到的作用越来越重要。
基于此,本文首先分析出传统软件和系统软件的区别,然后,阐述了软件工程技术的特点和设计要求,最后,提出软件工程管理的运用的方式,旨在促使系统工程软件更加智能化、人性化。
一、系统软件和传统软件不同之处系统软件具有开发时间短、需求不明确的特点,和传统软件的不同之处,主要体现在以下几个方面:第一,系统软件开发比较侧重于信息含量,面向主要市场是文档和电子产品,即动态网页和静态网页;第二,系统软件在开发过程中比较重视视觉和感觉,比较强度客户的舒适度。
第三,系统软件的用户形式多样,很多系统软件在设计和开发过程中,必须考虑不同用户的应用技术和能力,拥有较为复杂的人机接口和用户信息递交;第四,系统软件的内容属于驱动内容,这和传统软件有本质区别【1】。
二、系统软件开发过程中软件工程技术的特点系统软件开发过程中涉及到很多不同类型软件工程技术,而且对不同软件工程技术的要求各不相同。
最主要的是系统软件在开发过程中必须着重考虑系统实现方面的工作,这就使得系统软件开发具有极强的复杂性。
而且系统软件内部模块和模块之间存在较高的耦合性,每个模块之间都相互联系,当某一个模块发生变动时,带来的后果往往多重的。
结构化系统开发方法的特点自顶向下整体地进行分析与设计和自底向上逐步实施的系统开发过程:在系统规划、分析与设计时,从整体全局考虑,自顶向下地工作;在系统实施阶段则根据设计的要求,先编制一个个具体的功能模块,然后自底向上逐步实现逐步实现整个系统。
用户至上是影响成败的关键因素,整个开发过程中,要面向用户,充分了解用户的需求与愿望。
符合实际,客观性和科学化,即强调在设计系统之前,深入实际,详细地调查研究,努力弄清实际业务处理过程的每一个细节,然后分析研究,制定出科学合理的目标系统设计方案。
严格区分工作阶段,把整个开发过程划分为若干工作阶段,每一个阶段有明确的任务和目标、预期达到的工作成效,以便计划和控制进度,协调各方面的工作。
前一阶段的工作成果是后一阶段的工作依据。
充分预料可能发生的变化:环境变化、内部处理模式变化、用户需求变化。
开发过程工程化,要求开发过程的每一步都要按工程标准规范化,工作文体或文档资料标准化。
面向对象方法的特点从问题领域的客观事物出发来构造软件系统. 用对象作为对这些事物抽象的表示, 并作为系统的基本构成.事物的静态特征<即数据的表达特征>用对象的属性表示, 事物的动态特征用对象服务表示对象的属性与服务结合成一体, 成为一个独立的实体,对外屏蔽其内部细节对事物进行分类,把具体相同属性和相同服务的对象归成一类,类是这些对象的抽象描述,每个对象是它的类的一个实例通过在不同程度上运用抽象的原则<较多较少忽略事物之间的差异>可以得到较一般和特殊的类, 特殊的类继承一般的类的属性与服务.面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程其文档.复杂的对象可以用简单对象作为其构成部分对象之间通过消息进行通信以实现对象之间的动态联系.通过关联表达对象之间的静态联系.原型法的特点开发周期短,减少开发风险。
有效地增进了用户与系统分析员的沟通,在分析与设计过程中用户处于主导地位。
硬系统方法论和软系统方法论的比较自从接触系统工程方法论,这门课程的最大收获就是自己开始有了方法论的指导了,系统观念也开始慢慢形成。
其实大家或多或少的都有一些系统思想,但是不成系统,不很明确。
通过这门课程的学习,我的系统的概念在深化,实质上多少年来人们一直在探究的一个观念就是,整体地看问题,应该从问题的多方面去认识它。
从哲学的层次看这些观念,就是唯物辩证法。
强调对立统一地来研究和看待所研究的问题。
围绕着对立统一这个基础,系统方法论就是:还原论与整体论相结合;还原论与整体论相结合;局部描述与整体描述相结合;确定性描述与不确定性描述相结合;系统分析与系统综合相结合。
系统的思想要求我们在科研和学习的过程中,应该掌握这一哲学层面的问题,从而可以指导相应的学习和研究工作。
学习系统工程或者系统科学,必须树立整体、综合、价值和全过程观念,这是一个核心所在。
对于我们工科的学生而言,霍尔方法论是一个很重要的学习内容,用这个方法论指导自己的学习和训练生活,就会有很明确的指向。
霍尔方法论与另一种软系统方法论之间的不同又是鲜明的,在这里我将进行介绍他们的不同特点。
霍尔的三维结构模式的出现,为解决大型复杂系统的规划、组织、管理问题提供了一种统一的思想方法,因而在世界各国得到了广泛应用。
霍尔三维结构是将系统工程整个活动过程分为前后紧密衔接的七个阶段和七个步骤,同时还考虑了为完成这些阶段和步骤所需要的各种专业知识和技能。
这样,就形成了由时间维、逻辑维和知识维所组成的三维空间结构。
霍尔三位结构集中体现了系统工程方法的系统化、综合化、最优化、程序化和标准化等特点,是系统工程方法论的重要基础内容。
同时,形成了所谓的霍尔管理矩阵在这个过程系统中,每一阶段都有自己的管理内容和管理目标,每一步骤都有自己的管理手段和管理方法,彼此相互联系,再加上具体的管理对象,组成了一个有机整体。
霍尔管理矩阵可以提醒人们在哪个阶段该做哪一步工作,同时明确各项具体工作在全局中的地位和作用,从而使工作得到合理安排。
sa知识点总结一、SA的基本概念1. 软件架构软件架构是一个系统中的结构化组织,它包括软件元素、元素之间的关系和属性。
软件架构可以看作是对软件系统的整体设计,它定义了系统的结构、行为和性能,为软件系统的开发和维护提供了指导。
2. SA的重要性软件架构在软件开发过程中具有重要的作用。
它能够帮助开发团队更好地理解和管理系统的复杂性,指导开发过程,降低开发成本,提高软件质量和可维护性。
3. SA的目标SA的主要目标是满足软件系统的功能性和非功能性需求,同时使软件系统具有稳定性、灵活性和可维护性。
它还需要考虑系统的性能、安全性和可扩展性等方面。
4. SA的原则在进行软件架构设计时,需要遵循一些基本原则,比如模块化、低耦合、高内聚、复用和可扩展性等。
这些原则能够帮助开发团队设计出符合软件工程原则的高质量软件系统。
二、SA的设计方法1. 自顶向下自顶向下设计方法是一种从整体到局部的设计方法。
它首先从系统结构和功能需求出发,逐步细化系统的各个部分。
这种设计方法的优势在于能够将系统的全局目标和要求转化为具体的设计方案。
2. 自底向上自底向上设计方法是一种从局部到整体的设计方法。
它首先从细节出发,逐步组装成一个完整的系统。
这种设计方法的优势在于可以更好地控制系统的复杂性和降低系统的风险。
3. 迭代设计迭代设计是一种渐进式的设计方法,它通过多次迭代的方式逐步完善系统的设计。
每一次迭代都可实现对系统设计的调整和优化,最终得到一个完整的系统设计。
4. 微服务架构微服务架构是一种将系统拆分成多个小型服务的设计方法,每个服务都独立运行。
这种设计方法可实现更好的系统弹性和可扩展性,同时更好地支持分布式系统。
5. 事件驱动架构事件驱动架构是一种基于事件和消息进行系统设计的方法。
它通过事件和消息来实现系统之间的通信和协作,帮助构建高度松耦合的系统。
6. 面向对象设计面向对象设计是一种将系统拆分成多个对象的设计方法,每个对象负责特定的功能。
软件工程的七条基本原理1、用分阶段的生命周期计划严格管理有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的,可见把建立完善的计划作为第一条基本原理是吸取了前人的教训而提出来的。
在软件开发与维护的漫长的生命周期中,需要完成许多性质各异的工作。
这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。
Boehm 认为,在软件的整个生命周期中应该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。
不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发与维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。
2、坚持进行阶段评审当时已经认识到,软件的质量保证工作不能等到编码阶段结束之后再进行。
这样说至少有两个理由:第一,大部分错误是在编码之前造成的,例如,根据Boehm 等人的统计,设计错误占软件错误的63%,编码仅占37%;第二,错误发现与改正得越晚,所需付出的代价也越高。
因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。
3、实行严格的产品控制在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价,但是,在软件开发过程中改变需求又是难免的,由于外部环境的变化,相应地改变用户需求是一种客观需要,显然不能硬性禁止客户提出改变需求的要求,而只能依靠科学的产品控制技术来顺应这种要求。
也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。
所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。
基准配置管理也称为变动控制:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。
软件开发项目规划时S A S D与S E的区别与重要性SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#做软件开发项目规划时, 常会碰到助理问我一个问题, SA,SD和SE的差别在那里这个问题我以前也有过, 还颇为困扰, 系统分析和系统设计及系统工程到底有什么差别 SA和SD的工作又有何不同这两者的养成教育又有何差异在过去, SA,SD及SE的确很难区分, 甚至这些角色常常会透过软件工程师来混合发展。
随着IT领域的发展, SA,SD及SE渐渐的成为了大型项目必需要的专业分工, 这三者间是有相当的差异的, 不管是养成过程, 甚或是未来的发展, 都大相径庭, 而要成为一名称职的PM, 是要能区分出这三者的差异, 才能妥善的安排工作的。
[SA System Analysis,系统分析师]SA是 System Analysis 的缩写, 一般称为系统分析, 主要的工作就是透过一系列的分析工作, 把客户想要的结果产生方式, 以各种文件表达出来, 让开发团队可以根据这些文件实作出这个结果。
这样的解释比较文绉绉一点, 用个通俗一点的方式比喻, 就像是要做出一道宫保鸡丁时, 就会有食谱一样, 里面会介绍需要的材料及做菜的顺序, 然后里面也会强调要以怎样手法才能产生出某种效果, 以促进色香味。
这样的过程里, SA是较为偏重于在工作流程和处理逻辑的, 透过SA, 开发团队才可以理出整个系统的架构, 一种做事的脉络, 以及系统和工作间的关连性, 最重要的, 是这些结果都会被SA呈现在文件中, 而非放在少数人的脑袋里。
SA不仅止是要针对计算机里的东西去运作及规划, 还包括了现实世界里的实体流程及组织。
在很多的情况下, 配合新系统的组织及流程, 是要由SA来执行的。
总结起来, 在一个开发案里, SA执行以下的工作:藉由系统需求书, 使用者的现有标准作业流程来建立出符合期望的新作业流程及搭配流程的系统功能及模块规划依据功能及模块规划案, 定出初步的数据库内容及系统与使用者间的权限搭配规范定出各个软件零件的规范, 如对象, 函数库, ...等等设计新的标准作业流程, 并把系统功能或模块绑入这些流程中依据客户的环境及需求, 寻找合适的SD来搭配而SA也有以下的特色:对于系统在怎样的环境及用什么开发工具, 并不十分在意, 良好的产生出来的文件, 使用不同的开发工具都应该可以完成, 产生相同的结果, 但那一种最合适, 由SD决定SA偏重于流程及执行逻辑的表达SA着重于软件逻辑, 对开发工具的学习并不是十分重要, 所以会一种语言即可, 主要是以该语言工具来实践逻辑观。
应用软件工程学的SA和SD方法开发数据处理系统作者:王子刚来源:《硅谷》2011年第01期摘要:随着IT领域的发展,SA、SD及SE渐渐的成为了大型项目必需要的专业分工,这三者间是有相当的差异的,不管是养成过程,甚或是未来的发展,都大相径庭,而要成为一名称职的PM,是要能区分出这三者的差异,才能妥善的安排工作的。
分析SA和SD的技术框架以及各个组成部分,最后通过案例分析阐述如何利用SA和SD来进行网构软件开发。
关键词:网构软件;软件工程;SA和SD中图分类号:TP3文献标识码:A文章编号:1671-7597(2011)0110003-01SA不仅是要针对计算机里的东西去运作及规划,还包括了现实世界里的实体流程及组织。
在很多的情况下,配合新系统的组织及流程,是要由SA来执行的。
SA所规划出来的要求及布置,都只是逻辑上的构思,在不同的工具上,可能有更好的方法可以表现,也可能会难以展示,这都需要藉由SD对使用环境及开发工具的了解,来进行调整和规划。
举例来说,同样是一套财务软件,在WINDOWSXP,MAC,XWINDOWS下,就会有很不一样的展现模式和技巧。
如果再搭配上不同的开发工具,如C++,JAVA,.NET,PHP,……那差异更多。
1 SA、SD方法在合同管理中的设计1.1 SA方法的应用SPM分析在分析阶段,用户和软件人员双方一起充分地理解用户的要求,并把共同的理解明确地表达成一份书面资料——系统说明书。
简言之,分析阶段的两大任务是“理解”和“表达”,也可称为“分析”和“说明”。
“分析”就是“理解”问题,而“说明”则是精确地把问题“表达”出来。
SPM是企业销售管理系统的一个子模块,它的主要任务是:登记、分类、整理合同,合同发生变动时更改合同台帐,以及统计、查询合同等。
按照逻辑功能,它又可划分为合同输入、更改合同和查询三个子模块。
经过SPM方法的前两个步骤,我们就可得出了数据流图。
在数据流图中,加工“签定合同”是人工完成的,下面不予以考虑。
做软件开发项目规划时, 常会碰到助理问我一个问题, SA,SD和SE的差别在那里?这个问题我以前也有过, 还颇为困扰, 系统分析和系统设计及系统工程到底有什么差别? SA和SD的工作又有何不同? 这两者的养成教育又有何差异?在过去, SA,SD及SE的确很难区分, 甚至这些角色常常会透过软件工程师来混合发展。
随着IT领域的发展, SA,SD及SE渐渐的成为了大型项目必需要的专业分工, 这三者间是有相当的差异的, 不管是养成过程, 甚或是未来的发展, 都大相径庭, 而要成为一名称职的PM, 是要能区分出这三者的差异, 才能妥善的安排工作的。
[SA System Analysis,系统分析师]SA是System Analysis 的缩写, 一般称为系统分析, 主要的工作就是透过一系列的分析工作, 把客户想要的结果产生方式, 以各种文件表达出来, 让开发团队可以根据这些文件实作出这个结果。
这样的解释比较文绉绉一点, 用个通俗一点的方式比喻, 就像是要做出一道宫保鸡丁时, 就会有食谱一样, 里面会介绍需要的材料及做菜的顺序, 然后里面也会强调要以怎样手法才能产生出某种效果, 以促进色香味。
这样的过程里, SA是较为偏重于在工作流程和处理逻辑的, 透过SA, 开发团队才可以理出整个系统的架构, 一种做事的脉络, 以及系统和工作间的关连性, 最重要的, 是这些结果都会被SA呈现在文件中, 而非放在少数人的脑袋里。
SA不仅止是要针对计算机里的东西去运作及规划, 还包括了现实世界里的实体流程及组织。
在很多的情况下, 配合新系统的组织及流程, 是要由SA来执行的。
总结起来, 在一个开发案里, SA执行以下的工作:? 藉由系统需求书, 使用者的现有标准作业流程来建立出符合期望的新作业流程及搭配流程的系统功能及模块规划? 依据功能及模块规划案, 定出初步的数据库内容及系统与使用者间的权限搭配规范? 定出各个软件零件的规范, 如对象, 函数库, ...等等? 设计新的标准作业流程, 并把系统功能或模块绑入这些流程中? S.A依据客户的环境及需求, 寻找合适的SD来搭配而SA也有以下的特色:? 对于系统在怎样的环境及用什么开发工具, 并不十分在意, 良好的S.A产生出来的文件, 使用不同的开发工具都应该可以完成, 产生相同的结果, 但那一种最合适, 由SD决定? SA偏重于流程及执行逻辑的表达? SA着重于软件逻辑, 对开发工具的学习并不是十分重要, 所以会一种语言即可, 主要是以该语言工具来实践逻辑观。
? SA一定要有全局观, 也就是不能拘泥于一个角度或是一个局部去思考问题, 这一点是寻找优秀SA时最困难的。
因为在规划模块及功能时, 一定要同时考虑到所有直接相关及间接相关的程序及逻辑问题, 因此要有全局观。
相较于SD, SA更侧重在逻辑及工作顺序搭配的表达, SA并不需要去关切使用什么操作系统或是什么开发工具, 如前特色所述, 好的SA文件, 可以用任何一种开发工具来实现。
当然, SA不受限于IT技术, 但却会有专业领域的限制。
很少有SA同时专精于数个领域的, 熟悉汽车业运作规范的SA, 在金融业的开发案里, 就很难讨好, 反之亦然。
但SD没有这种限制, 基本上SD可以和任何行业的项目开发团队配合运作。
会如此的原因是SA是偏重于流程及管理分析及重新再造工作的。
而作业流程, 除了少数领域里共通性高, 在核心流程上, 是需要长期钻研的。
前面提及的汽车及金融业就是一例。
所以, 一个SA必需具备以下的能力,资历及专业训练:1. 至少熟悉一种程序开发语言2. 熟悉软件工程, 对于开发工具的元素及特色熟悉3. 对管理制度或作业流程设计熟悉4. 熟悉UML或类似的系统描述工具5. 逻辑能力良好6. 良好的沟通能力, 主要作为了解需求之用7. 相关的业界熟悉度在三者之中, SA是最接近PM的, 所以SA在做生涯规划时, 不妨以PM做为下一个发展的专业目标。
[SD Systems Designer, 系统设计师]一般来说, SD在生涯规划里, 并不是SA或是PM。
当然, 一定要硬来一次也没有什么不可以, 但要走这条路, 就要趁早转职, 因为SD毕竟是较为幕后的工作, 在与客户的沟通协调上, 并不会有太高的要求, 也较不需要公司管理层面的全局观。
表面上看起来, SD没有SA那么多的工作要求, 但实际上SD是最需要天赋的工作, 不管是画面的构成, 操作的手顺及调整, 甚至于组件的定义及对象的规范, 全都需要一些天赋。
很多软件, 功能很强, 但怎么看怎么不顺眼, 或者怎么用就怎么憋扭, 功能带来的效益, 全都被这些毛病给遮盖掉了, 这就是SD的问题。
另外, SD也扮演了系统最佳化的推手。
SA所规划出来的要求及布置, 都只是逻辑上的构思, 在不同的工具上, 可能有更好的方法可以表现, 也可能会难以展示, 这都需要藉由SD对使用环境及开发工具的了解, 来进行调整和规划。
举例来说, 同样是一套财务软件, 在WINDOWS XP, MAC, X WINDOWS下, 就会有很不一样的展现模式和技巧。
如果再搭配上不同的开发工具, 如C++, JAVA, .NET, PHP, ...那差异更多。
对SA而言, 这些东西他都不用去考虑, 但SD就不同了, 这些不同的地方, 并不仅仅只是如此而已, 有时还会包括了开发成本及时间问题, SD的重要度, 由此可知。
在一个客制化项目里, SD的工作内容如下:? 设计画面元素规范? 设计页面结构及规则? 设计系统操作画面, 并编定字段规范及防呆处理? 设计权限管理与系统操作机制? 撰写使用手册? 调整DB之各项定义, 使其符合画面字段规范及操作搭配? 配合SA撰写系统开发文件, 供程序员CODING之用? 撰写UI(使用者接口)测试计划书而做为一名称职的SD, 以下的条件, 是必要的:1. 至少对一个操作系统极为熟悉, 对于这个操作系统的各个组件特性及API, 有充分的了解2. 熟悉2种以上的开发工具, 而项目所需的工具, 必需是其擅长的之一, 其熟悉度包含了标准安装里的各个函数库, 系统常数, 对象定义, 语法, 主要的辅助工具开发厂商, 及重要的工具使用方法3. 具一定的美学感4. 至少能使用一种绘图工具软件5. 曾经担任职业软件工程师三年以上可以这样说, SA给了系统灵魂和神经系统, SD则是给了系统躯体和外观, 两者的结合, 才能产生出正确, 美观又好用的系统。
如果你觉得自己是个不太爱和太多人打交道的IT人, 又对使用者接口有那么点执着及天赋, 那么, SD绝对是适合你的好选择。
[SE Systems Engineer, 系统工程师]就某种角度来看, SE对PM而言, 算是万金油, 只要做IT项目, 那就一定用得上, 差别只是要选那一个专业的SE而已。
系统建置安装要SE, 使用者环境要SE, 甚至到硬件选择及布建, 都要用到SE, 有什么IT项目跟这个没有关系呢?当然, 虽然SE是到处都吃得开, 但相对的也是项目里面最沉默及少有声音的一群。
他们的工作基本上就是建构出一个可以执行系统的环境, 系统要如何展现, SE可以给SA和SD一些建议, 但建议时机通常都是在系统运行出了些非系统可以掌握的问题后。
系统工程师基本条件上, 和SD最为接近, 但有一点不同, 就是不需要有很好的软件开发经验, 也就是不太需要会写程序。
但要对操作系统, 服务器系统, 网络运用环境有相当程度的了解。
SE通常是三者中最为博学一员, 好的SE虽然不一定要程序写的呱呱叫, 但却不能对编程一无所知, 对操作系统及开发工具也要有一定的熟悉度, 甚至部份网管有关的工作也要有所涉猎, 所以算得上是项目里的万金油。
在项目里, SE所要执行的工作如下:? 规划及建置系统执行环境? 安装及设定使用者端环境? SERVER安装及设定? 提供环境设置竟见给SA及PM? 最佳化系统可靠度及效度? 撰写可靠度及效能测试计划书? 对计算机及相关外围设备有一定熟悉度而一名SE则有下列基本要求:1. 至少熟悉一种操作系统, 尤其是让系统的设定及微调等相关技术2. 至少熟悉一种网络服务器操作系统, 对如何设定及最佳化熟悉3. 曾任软件工程师职务一年以上或熟悉一种开发工具4. 对网络环境有一定的认识, 尤其是一些通讯设置5. 熟悉可靠度及效能的评估方法, 并了解与系统环境相关之设定基本上, 如果拥有了像SD一样的技术背景及个性, 但在美学上实在令人不敢恭维, 那么SE算是极佳的选择了。
一般而言, SE的下一个生涯规划, 会比较偏重于技术性兵种, 像是DBA或是网管, 对于IT产品比较有狂热或爱好的人, SE是极佳的出路。
[在项目中的运用时机]基本上SE是万金油, 只要是IT的案子里就一定要塞一个SE进去, 因为没有IT项目不需要使用工程技术的, 差别只在使用何种工程技术而已。
在软件包的导入项目里, SE负责处理软件使用环境, 解决非系统性问题, 安置及调整数据库和网络环境, 然后安装启动。
所有系统运行所需要的条件, 都要由SE来解决和处理, 但这些工作全都不会出现在众人的面前, 但却又重要无比, 算得上是幕后的英雄。
会同时运用到SA,SD及SE的项目, 还是以客制化开发为主的。
在开发型项目里, SA团队要负责初期的需求调查及整体架构的规划, 将所有的系统开发工作内容转化成井井有条的文件, 并且适度的分割及派送, 并确保未来这些被分割的开发结果能够在未来可以正确运作。
SD则在SA的文件中去寻求系统呈现的一致性, 易用性及保证开发工具可以正确无误的展现SA的要求结果。
所以SD要负责操作界面的外观设计, 订定一致的展现规范, 设计系统操作画面及操作手顺, 同时配合SA完成系统开发文件。
基本上, 开发文件中, 是包含系统使用手册初稿的。
SD在设计时, 必需与SA充分配合, 以确保设计的系统符合需求及运作要求。
除了上述的工作内容外, 这三者都要撰写测试计划, SA着重在于数据的流动符合原先规划的顺序及结果测试, SD则着重在操作画面中的防呆测试及操作接口的正确性, 而SE则在系统可靠度上进行规划。