搜档网
当前位置:搜档网 › 软件开发方法的特点与选择

软件开发方法的特点与选择

软件开发方法的特点与选择
软件开发方法的特点与选择

软件开发方法的特点与选择

软件开发

软件开发是根据用户要求建造出软件系统或者系统中部分软件的过程。它是一项包括需求捕捉,需求分析,需求设计,实现、测试和维护的系统工程。

常见的软件开发方法有

1 结构化开发方法

结构指系统内各组成要素之间的相互联系、相互作用的框架。结构化开发方法强调系统结构的合理性以及所开发的软件的结构的合理性,主要是面向数据流的,因此也被称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化技术包括结构化分析、结构化设计和结构化程序设计三方面内容。

1.1 结构化分析的步骤

结构化分析是一种模型的确立活动,就是使用独有的符号,来确立描绘信息(数据和控制)流和内容的模型,划分系统的功能和行为,以及其他为确立模型不可缺少的描述。其基本步骤是:(1)构造数据流模型:根据用户当前需求,在创建实体—关系图的基础上,依据数据流图构造数据流模型。(2)构建控制流模型:一些应用系统除了要求用数据流建模外,通过构造控制流图(CFD),构建控制流模型。(3)生成数据字典:对所有数据元素的输入、输出、存储结构,甚至是中

间计算结果进行有组织的列表。目前一般采用CASE的“结构化分析和设计工具”来完成。(4)生成可选方案,建立需求规约:确定各种方案的成本和风险等级,据此对各种方案进行分析,然后从中选择一种方案,建立完整的需求规约。

1.2 结构化设计步骤

结构化设计是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术,目的在于提出满足系统需求的最佳软件的结构,完成软件层次图或软件结构图。其基本步骤如下:

(1)研究、分析和审查数据流图。从软件的需求规格说明中弄清数据流加工的过程。

(2)然后根据数据流图决定问题的类型。数据处理问题有两种典型的类型:变换型和事务型。针对两种不同的类型分别进行分析处理。

(3)由数据流图推导出系统的初始结构图。也就是把数据流图映射到软件模块结构,设计出模块结构的上层。

(4)利用一些试探性原则来改进系统的初始结构图,直到得到符合要求的结构图为止。即在数据流图的基础上逐步分解高层模块,设计中下层模块,并对软件模块结构进行优化,最终得到更为合理的软件结构。

(5)描述模块接口。

(6)修改和补充数据词典。

(7)制定测试计划。

结构化设计可以将用数据流图表示的信息转换成程序结构的设计描述。2模块化开发方法

模块化程序设计方法就是把一个待开发的软件系统分解成若干可单独命名和编址的较为简单的部分,这些可单独命名和编址的部分称为模块。每个模块分别独立地开发、测试,最后再组装出整个软件系统。这种方法不仅可以将软件系统开发的复杂性在分解过程中降低,便于修改、维护,而且还容易实现同一个系统不同部分的并行开发,从而提高了软件的生产效率。

一般,将用一个名字就可调用的一段程序称为“模块”。在考虑模块化时,将模块定义为多大较合适,模块设计规则应如何制定成为关键。

特点:

(1)模块可分解性:如果一种设计方法提供了将问题分解成子问题的系统化机制,它就能降低整个系统的复杂性,从而实现一种有效的模块化解决方案。

(2)模块可组装性:如果一种设计方法使现存的设计模块能够被组装成新系统,它就能提供一种不用一切从头开始的模块化解决方案。

(3)模块可理解性:如果一个模块可以作为一个独立的单位被理解,那么它就易于构造和修改。

(4)模块连续性:如果对系统需求的微小修改只导致对单个模块而不是对整个系统的修改,则修改引起的副作用就会被最小化。

一般来说,对模块采用耦合和内聚两个准则进行度量。如模块内部具有高内聚和模块间低耦合,那这样的模块就具有独立性,模块设计得比较好。

3 面向对象开发方法

面向对象开发方法是以面向对象程序设计语言作为基础的,其核心思想是利用面向对象的概念和方法为软件需求建立模型,进行系统设计,采用面向对象程序设计语言进行系统实现,对建成的系统进行面向对象的测试和维护。

如果一个软件系统是使用这样4个概念设计和实现的,则可以认为这个软件系统是面向对象的。其基本要点可以概括为:(1)数据的抽象,即类与子类的概念及相互关系。任何客观的事物和实体都是对象,复杂对象可以由简单对象组成。(2)数据及对它的操作的一体化,即封装的概念和方法。具有相同数据和操作的对象可归并为一个类,具有封装性,形成一个包装;对象是类的一个实例;一个类可以产生很多对象。(3)属性与操作由父类向子类传递,即继承的概念与方法。类可以派生出子类,继承能避免共同行为的重复。(4)客观事物之间的相互关系用统一的、消息传递的方法来描述。

目前广泛使用的面向对象开发方法包括Booch方法、Rumbaugh方法、Coad和Yourdon方法、Jacobson方法、Wirfs-Brock方法和统一建模方法等。

4 软件开发方法的评价与选择

软件开发方法有很多种,在实际软件开发中,就涉及到选择适宜的开发方法的问题,具体选择时应综合考虑以下方面因素:(1) 开发人员的基本素质及经验阅历。主要看软件开发人员是否对该方法有经验或受过专门训练。(2) 项目进度安排及人员组成情况。要根据开发项目的时间限度、人员配备进行选择。(3) 现有资源状况。考查现有的软硬件环境及可使用的CASE工具等。(4) 进行可行性研究。从计划、组织、管理各个环节综合考虑。选择软件开发方法后,还涉及对所选的开发方法进行评价。一般说来,可以从以下四个方面来进行评价:(1) 技术特征:支持各种技术概念的方法特色。(2) 使用特征:具体开发时的有关特色。(3) 管理特征:增强软件开发活动管理能力方面的特色。(4) 经济特征:使开发部门的生产力和软件质量得到提高,产生经济效益的有关特色。

5 结语

软件工程技术衍生出很多种软件开发方法,这些方法在各自的适用领域表现出一定的优越性和生命力,面向对象开发方法已逐渐成为软件开发的主流方法,在越来越多的软件项目开发过程中使用。

软件开发工程师就业前景如何

软件开发工程师就业前景如何 软件开发工程师是从事软件开发相关工作的人员的统称。软件开发工程师也分很多种,比如3G软件开发工程师,android软件开发师,Java开发工程师等。这些工程师的前景又如何呢? 3G软件开发工程师 3G人才短缺现状,使得3G行业已经成为新的高薪行业,基于3G软件开发人员变得格外抢手。人力资源专家表示,3G软件开发是未来几年最热门和最受欢迎的职业之一。根据前程无忧网发布的薪资报告,具有10年工作经验的高级嵌入式软件工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也在5000元左右,中高级的嵌入式软件工程师月薪平均已超过万元,而且随着3G应用的进一步深入发展,3G软件研发人才的薪水还会进一步水涨船高!据计世资讯发布的相关研究报告称,估计国内3G人才缺口将达到50万人以上。 android软件开发工程师 Android工程师是指从事Android移动应用操作系统、游戏和各种Android 平台功能的应用、开发和测试的技术人员。以手机开发为主要对象,包括但不限于手机操作系统、手机游戏、手机其他多种功能的开发和优化人员。Android 工程师是移动应用开发者,希望将自己的应用移植到该平台上或者在该平台上开发应用。 随着Android平台的扩张,引发了Android人才荒,2011年移动开发人才需求几十万,未来人才需求缺口将达百万。 Java软件开发工程师

Java软件工程师的未来发展方向大致分为两类: 一是成为管理人员,例如产品研发经理,技术经理,项目经理等; 二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。 Ios软件开发工程师 依据51job前程无忧数据,软件及IT工程师在长达10年时间内一直占据着国内众多职业岗位平均工资水平的前茅,基于iPhone开发的岗位平均薪酬比传统软件开发岗位高出50%以上的水平,移动互联行业公司为了吸引留住人才除了提供保险、休假、灵活作息时间、优质办公环境等福利外更有股权,期权分红吸引高端求职者。

对软件开发的理解和认识

对软件开发的理解和认识 专业:计算机科学与技术学号:2004110023 姓名:王贤才软件开发是一个把用户需要转化为软件需求,把软件需求转化为软件设计,用软件代码来实现软件设计,对软件代码进行测试,并签署确认它可以投入运行使用的过程。在这个过程中的每一阶段,都包含有相应的文档编制工作。 软件开发过程当中,遵循一定的流程,主要包括系统分析、系统设计、系统编码、系统测试以及系统的维护等几个阶段。依次概述如下: 1.系统分析 系统分析包括软件需求分析和系统可行性分析。软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。系统可行性分析就是通过需求调查来确定此系统是否具有可行性。 2.系统设计 系统设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。 3.系统编码 系统编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"源程序清单"。 4.系统测试 系统测试的目的不是验证软件的正确性,而是以较小的代价发现尽可能多的错误。测试从需求阶段开始,此后与整个开发过程并行,换句话说,伴随着开发过程的每一个阶段,都有一个重要的测试活动,它是预期内按时交付高质量的软件的保证。 5.系统维护 系统维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。 我认为,软件开发是一个环环相扣的设计和实施过程,整个系统开发的过程当中,系统分析和设计是重中之重。只有把握好系统分析,才能使后续改动尽可能多的减少;只有把握好系统设计,才能保证软件的根基比较稳固。也即是它们很大程度上决定着软件开发的周期以及寿命。另外,完美的开发团队和开发过程的合理控制是软件成功开发关键要素之一。

软件开发流程

快视信息软件开发流程规范: 用户需求:软件项目首先由客户经理(CM,Custom Management)接洽客户的较大的需求。这时的需求叫市场需求(或叫用户需求),客户经理会进行各个项目的安排,即对项目的启动时间和发布时间进行规划和设置。 项目经理(PM,Project Management)对客户经理负责。项目经理的需求是根据客户经理给的,项目经理不和用户(客户)直接接触(通过客户经理接触),负责和用户进行需求洽谈和沟通的是客户经理。一个项目的需求在一般情况下是不准变更的,如果有需求理解方面的不清楚可以进行沟通,但是需求是不变更的。如果用户有新的需求,一般规划在下一个版本中。因为需求变更了,这个目的时间就要进行调整,就不能按计划进行和完成。客户经理提交给项目经理的是需求规格说明书。 一、项目开工会 在项目经理领到客户经理分配给的需求后,做项目计划,具体做项目人员的确定、需求的分解(需求分解到每个人)、代码量的估计,项目各个阶段时间的划分和工作量的计划、质量指标的设定。这时项目经理需要输出的文档是项目需求分解任务书、项目计划PPT、及做好整个项目需要填写的一系列表格。然后组织项目组成员和客户经理CM、QA(质量审计经理)进行项目开工会。这时这个项目就算真正启动,计算工作量时,即计算这个项目总共花了多少个工时,工时是项目经理做计划的时间也算在内,再加上项目开工会和后续各个阶段总共花的总工时数,还有各个阶段开会所花的时间。在项目开工会上,各个成员就明确了这个项目是属于增强型项目,还是其他项目的项目性质,增强型项目的意思是说在原来上一版本的基础上又根据新的需求进行增强型开发。还有要明确项目最后开发出的新增代码量有多少,最后要明确每个人的需求任务,接下来着手进行SRS的写作。 二、SRS阶段:System/Software Requirment Specification 软件需求规格说明 在项目开工会后,项目组就开始按照在项目开工会上项目经理的需求任务分解的任务开始进行SRS的写作。 一般项目经理给你的一个子需求任务,你这时需要分解为更小的需求。一般一个需求的写作是按这样进行的。先简单介绍这个需求,然后把这个需求设计成黑盒的形式,即输入,处理过程、输出。这些都需要写详细,任何一个需求都写成这种形式,输入是什么,处理过程是什么,输出结果是什么。处理过程需要用Visio或者PPT画出处理流程图,流程图要很详细。每一步的各种情况都要表示和考虑到。对异常情况也要考虑和进行处理。还有要说明在原来的基础上怎么改动,具体方法要进行说明。设计的数据库表结构,要给出脚本,SQL语句,表结构需说明每个字段,哪些是主键,你在这个需求处理过程中哪里使用了哪些表,需要进行哪些操作,都需要说明。这里需要设计和编制《数据库设计说明书》文档。该文档中描述该系统中设计出的所有的数据库表结构和各字段类型。还有多个操作对象要画序列图表示出按时序的处理过程。这个SRS文档就相当于我们平时毕业设计或者一个题目的详细设计阶段达到的水平,甚至比它更详细。每个项目组成员都把自己的需求的SRS文档写出来之后放到配置库中,然后每个人对项目组其他成员的(非自己的)SRS文档进行Review(评审),对每个SRS文档在每页发现或者纠正的错误数不能低于一定的数目,而且要保留批注记录,经过Review的(保留批注的)文档要放到配置库的Review文件夹下,这是进行项目质量指标收集的重要依据,是QA 进行调阅和审计的资料。项目经理要对SRS文档、SRS Review文档进行汇总。在汇总后组织项目组全体成员进行SRS阶段会议,对每个人写的SRS进行评审会议(讨论和提意见),对别人给你提的修改意见你要一一进行说明,说明为什么不改,怎么改的,是什么问题,问题严重程度属于什么级别,而且都要填表,也是QA进行审计的内容。开完会后如果每个人完成的都差不多,然后安排半天或者一天的时间进行返工,主要是进行修改文档,按在会上讨论的结果和别人给你的Review 文档结果(评审结果)进行准一修改和完善。然后再进行SRS阶段开会,如果都做的比较到位和具体、符合要求,即关闭SRS阶段。这时SRS阶段的花费的工时数和一些质量活动指标就出来了,比如你这个SRS文档写了几页,每页的错误数是多少,返工修改用了多少时间,然后这些这个比率也会自动计算出来。进而可以判断这个阶段的质量。每个项目组成员在每天工作完毕后都要进行Time Sheet 的填写,必须具体到半个小时,这是统计和分析的需要。填写必须真实。 三、UTP、STP阶段(UTP、STP写作) UTP Unit Test Plan 单元测试计划 STP System Test Plan

软件开发方法与过程

(1)软件开发过程是什么? 软件开发过程是按照软件工业化的标准定义的心之所向,所向披靡 ?在软件开发中必须具有的一系列过程规范; ?软件开发过程是定义在软件中的软件需求、软件设计、软件编码、软件测试、软件部署的实现目标和规范化的管理方法论; ?软件开发过程是保证软件工业化生产的法典;?软件开发过程做的是:定义标准和为了达到标准的路; ?软件开发过程要改善的是:软件开发的效率和质量; ?软件开发过程的实现最重要的是:人。 (2)大多数软件项目失败的原因: a)不完整、不现实的项目需求 b)对需求的变更束手无策 c)脆弱的架构 d)采用不成熟的技术 e)测试的不充分性 f)拙劣的进度计划和评估 g)缺乏资源 h)不具备项目管理方法 i)缺少管理层的支持 (3)软件工程的三个要素:方法、工具和过程(4)A software project failed if It is delivered late It is runs over the budget It does not satisfy the customer’s need It is of poor quality Classical software development methods have not solved software crisis.传统的软件开发方法没有能够解决软件危机。 (5)A software engineer’s job: a)Make a working plan.制定工作计划 b)Carry out it.(Do their work according to this plan)按照此计划工作 c)Try his/her best to produce high-quality products.尽最大努力生产 出高质量产品 (6)3 Key aspects a)Quality products 高质量产品 b)Expected costs c)On agreed schedule (7)Summary of PSP PSP is a framework designed to teach software engineers to do better work Estimate and plan →track →improve quality Quality methods take time to learn and practice,but it will help you in you engineering career Establish goals →measure quality → understand the process → change and reure process → measure & analyze the results → recycle improving Identify the tasks you do (8)敏捷软件开发宣言 个体和交互胜过过程和工具 可以做到工具的软件胜过面面俱到的文档 客户合作胜过合同谈判 响应变化胜过遵循计划 敏捷开发的原则: 1、我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。 尽早交付具有部分功能的系统和质量系统之间具有很强的相关性 2、即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。 关于态度的声明,敏捷过程的参与者不惧怕变化,努力保持软件结构的灵活性。 3、经常性地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间越短越好。 关注的目标是交付满足客户需要的东西。它们是敏捷实践区别其他过程的特征所在。 4、在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。 有意义的、频繁的交互,必须对软件项目进行持续不断地引导。 5、围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。 人被认为是项目取得成功的最重要的因素。 6、在团队内部,最具有效果并且富有效率的传递信息的方法就是面对面的交谈。首要的、默认的沟通方式。 7、工作的软件是首要的进度度量标准。 敏捷项目通过度量当前软件满足客户需求的数量来度量开发速度。 8、敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期、恒定的开发速度。不是 50米短跑,而是马拉松。以快速但是可持续的速度行进。 9、不断关注优秀的技能和好的设计会增强敏捷能力。

软件开发专业七大就业优势

近几年,IT软件行业发展日趋迅猛,吸引了众多人才的加入,其中不乏一些落榜的高中生、大学毕业生、以及在职人员等想要学习一门技术的人们,现在越来越多的人看准了IT软件行业的就业优势,纷纷加入到其中。他们通过参加专业培训机构的培训等渠道加入到软件开发行业中。软件开发专业到底有怎样的就业优势呢?这个行业有怎样的魅力呢?下面就为大家详细分析一下。 (1)技术的专业性 CNET解释说IT从业人员的项目意识和专业性是非常强的。因此,IT业人士都拥有很强的专业性。专业性也决定了IT从业人员的独特个性,同时,这也是IT行业独有的特性,IT行业中,电子商务、环境艺术设计等方向都是要求非常严格的,专业性也自然成了IT从业人员的“名片”,也是IT界的标签。 (2)充满成就感 IT行业重在战胜挑战,完成项目后不仅能获得额外的报酬,而且看到自己的成果推向市场得到认可后,会感到非常自豪,获得极大的成就感。很多IT行业的从业人员把自己设计出的作品以及完成的项目看作是生命的一部分。就算不是自己负责的项目,仅仅是为别人的项目提供过帮助,也同样有成就感。IT业是现在所有职业中最具挑战性的职业之一,工作中不仅需要简单的思考,还需要完成各种不同的任务。获得成就感,也是成功人士不断追求的目标。

(3)高薪的诱惑 IT行业涵盖的范围很广,包括IT硬件设备、软件开发、IT衍生行业等,如环境艺术设计、装饰艺术设计、电子商务等。拿环境艺术设计来说,当前,我国的城市化进程不断加速,房地产和城市公共设施建设不断扩大,市场潜力无限,作为一名环境艺术设计师,薪资待遇自然不断攀升。再拿电子商务来说,信息时代的网上交易、网站制作等都是需要大量人才才能助推其前进的。有需要就有市场,有市场就有金钱,这就是IT行业高薪的诱惑。 (4)具有挑战性 IT行业的不断自我挑战也是其吸引人的地方之一。IT行业是个脑力劳动很频繁的行业之一,同时,也是需要时常攻克难关的一个行业。比如,软件开发,程序设计的脑力劳动是非常繁杂的。装饰设计,格调、色彩搭配、空间划分等,都是需要严格的测绘和确定的。但是,这也是一个充满挑战的行业,人的意识突破,本身就很令人神往。 (5)再就业比较容易 权威调查显示,从事IT行业的人,短期内的调整也不会影响到个人经验,所以跳槽后再就业也不会有很大的难度。对于IT行业的老板来说,简历并不能完全说明一个人的能力。与其他行业相比较,IT行业的求职简历可以非常简洁,只要有技术,一切近在咫尺。

对软件需求分析的认识

对软件需求分析的认识 自从学习了软件工程这门课程之后,我对软件及其开发有了更加浓厚的兴趣,同时我也认识到软件工程在软件开发中的重要性。目前国内软件在开发中还没有对软件开发的过程进行明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高奠定有效的基础,只有通过建立全过程的改善,采用严格的软件工程方法和管理,并且坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高,使软件开发更规范合理。 软件工程理论认为,在软件生命周期中,需求分析(Requirements Analysis)是最重要的一个阶段。软件需求分析的质量对软件开发的影响是深远的、全局性的,高质量需求对软件开发往往起到事半功倍的效果,所谓“磨刀不误砍柴功”。在后续阶段改正需求分析阶段产生的错误将付出高昂的代价。而对于软件需求分析,简单的来说就是要决定“做什么,不做什么,达到用户所期望的效果”,就好比我们自己平常做一件事之前,都会有做好计划,软件开发亦不例外。用软件工程的定义来讲,它就是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。下面是一些有关需求分析的有关知识: 一、现在很多管理类文档将需求分为合理需求和不合理需求两种类型,这种分类方式本身并没有错误,但在实际判断起来却很难,主要是无法清晰的界定合理和不合理的属性,用户和研发人员的出发点是不一样的,每个研发人员也都有各自的认识,很难确定合理与不合理的标准。因此将需求按重要程度进行分级,是必不可少的步骤。需求分类好了,自然就可以在以重要需求为出发点,兼顾次要需求的基础上来进行设计。在开发者与用户(代表)交流时,切记避免使用如“大概”、“应该”、“可能”等词语,这是初入行者和懒于写文档的人都容易出现这种问题,但结果是,概括性的语言无限放大了大家对需求的理解,造成歧义。所以,需求越具体、详细就越好,磨刀不误砍柴功。 二、需求分析是分多阶段的,理想的流程是需求交流—〉分析整理—〉需求确认—〉变更控制(用户追加或补充的需求内容才能称为需求变更),实际情况下该流程会多次循环往复,在这个过程当中,变更控制显得异常重要,它既是原需求的终止,又是新需求的开始,做好变更控制,往往事半功倍。因此,需求变更贯穿了需求说明书经过论证之后的所有软件管理过程。同时需求变更需要有专门的人员记录,这个人最好是项目组内部的人员,记录内容包括需求变更具体内容、发生于哪个阶段、以及由谁提出的等内容。项目经理需要每天关注需求变更记录,每周必须对需求变更产生的影响进行预估,并将预估结果记入到需求变更记录当中,以便于确定今后的工作计划。还有 三、分析员占有的位置 分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。 四、任务 开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品

几种常见软件开发方法的研究与比较

几种常见软件开发方法的研究与比较 摘要:本文介绍四种常见软件开发方法的过程、特点、优缺点及如何对软件开发方法进行评价与选择。 关键词:软件软件开发 1 引言 在软件开发的过程中,软件开发方法是关系到软件开发成败的重要因素。软件开发方法就是软件开发所遵循的办法和步骤,以保证所得到的运行系统和支持的文档满足质量要求。在软件开发实践中,有很多方法可供软件开发人员选择。 2 常见的软件开发方法 2.1 结构化开发方法 结构指系统内各组成要素之间的相互联系、相互作用的框架。结构化开发方法强调系统结构的合理性以及所开发的软件的结构的合理性,主要是面向数据流的,因此也被称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化技术包括结构化分析、结构化设计和结构化程序设计三方面内容。 2.1.1 结构化分析的步骤 结构化分析是一种模型的确立活动,就是使用独有的符号,来确立描绘信息(数据和控制)流和内容的模型,划分系统的功能和行为,以及其他为确立模型不可缺少的描述。其基本步骤是:(1)构造数据流模型:根据用户当前需求,在创建实体—关系图的基础上,依据数据流图构造数据流模型。(2)构建控制流模型:一些应用系统除了要求用数据流建模外,通过构造控制流图(CFD),构建控制流模型。(3)生成数据字典:对所有数据元素的输入、输出、存储结构,甚至是中间计算结果进行有组织的列表。目前一般采用CASE的“结构化分析和设计工具”来完成。(4)生成可选方案,建立需求规约:确定各种方案的成本和风险等级,据此对各种方案进行分析,然后从中选择一种方案,建立完整的需求规约。 2.1.2 结构化设计步骤 结构化设计是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术,目的在于提出满足系统需求的最佳软件的结构,完成软件层次图或软件结构图。其基本步骤如下:

软件开发过程详解

软件开发过程详解 软件开发过程即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件开发过程覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。 1.需求分析 1.1 需求分析的特点和任务 需求分析是软件开发的第一步。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。参与需求获取者只有在他们理解了问题之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。把需求获取集中在用户任务上—而不是集中在用户接口上—有助于防止开发组由于草率处理设计问题而造成的失误。有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。 需求获取、分析、编写需求规格说明和验证并不遵循线性的顺序,这些活动是相互隔开、增量和反复的。当你和客户合作时,你就将会问一些问题,并且取得他们所提供的信息(需求获取)。同时,你将处理这些信息以理解它们,并把它们分成不同的类别,还要把客户需求同可能的软件需求相联系(分析)。然后,你可以使客户信息结构化,并编写成文档和示意图(说明)。下一步,就可以让客户代表评审文档并纠正存在的错误(验证)。这四个过程贯穿着需求分析的整个阶段。需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。需求获取只有通过有效的客户—开发者的合作才能成功。分析者必须建立一个对问题进行彻底探讨的环境,而这些问题与产品有关。为了方便清晰地进行交流,就要列出重要的小组,而不是假想所有的参与者都持有相同的看法。对需求问题的全面考察需要一种技术,利用这种技术不但考虑了问题的功能需求方面,还可讨论项目的非功能需求。确定用户已经理解:对于某些功能的讨论并不意味着即将在产品中实现它。对于想到的需求必须集中处理并设定优先级,以避免一个不能带来任何益处的无限大的项目。 1.2.需求分析的一般方法

软件开发方法述评

软件开发方法述评 发信人:Joaquin(maverick),信区:SoftEng 标题:软件开发方法评述 发信站:BBS水木清华站(TueNov1821:18:341997) 60年代中期开始爆发了众所周知的软件危机。为了克服这一危机,在1968、1969年连续召开的两次著名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善。与此同时,软件研究人员也在不断探索新的软件开发方法。至今已形成八类软件开发方法。 一、Parnas方法 最早的软件开发方法是由D.Parnas在1972年提出的。由于当时软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。现在信息隐蔽原则已成为软件工程学中的一条重要原则。 Parnas提出的第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。软件是很脆弱的,很可能因为一个微小的错误而引发严重的事故,所以必须加强防范。如在分配使用设备前,应该取设备状态字,检查设备是否正常。此外,模块之间也要加强检查,防止错误蔓延。 Parnas对软件开发提出了深刻的见解。遗憾的是,他没有给出明确的工作流程。所以这一方法不能独立使用,只能作为其它方法的补充。 二、 SASA方法 1978年,E.Yourdon和L.L.Constantine提出了结构化方法,即SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。1979年TomDeMarco对此方法作了进一步的完善。 Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。这一方法不仅开发步骤明确,SA、SD、SP相辅相成,一气呵成,而且给出了两类典型的软件结构(变换型和事务型),便于参照,使软件开发的成功率大大提高,从而深受软件开发人员的青睐。 三、面向数据结构的软件开发方法 Jackson方法

前端工程师和后端软件开发哪个更加有前途

https://www.sodocs.net/doc/3917400110.html, 前端工程师和后端软件开发哪个更加有前途在全球互联网经济快速发展的推动下,我国IT产业互联网发展非常迅速。随着人才市场上企业对IT人才的需求持续升温,IT人才的培养变得越来越关键。因此,IT培训机构也越来越多,让求学者们也是眼花缭乱不知如何选择。好的电脑培训机构可以让你学到真正适应市场需求的前沿技术和实践项目的能力。那么烟台电脑培训哪家好呢?首选烟台北大青鸟。详情请咨询点击查看。 虽然全球金融海啸肆虐,但中国的软件行业依然高速发展。预计今后5年,中国软件行业每年会以30%的速度增长,跟普通工作供大于求的情况相反,企业对Java软件工程师的需求则远远不能获得满足。根据调查,我国软件企业目前在Java高级软件工程师这类职位上的人员空缺至少在8万人。行业的蒸蒸日上和人才的严重不足,无疑给了从业者以广阔的发展空间。 "https://www.sodocs.net/doc/3917400110.html,UI设计的就业前景怎么样?有没有前途?南昌电脑培训学校哪家好?从UI设计的发展来看,随着软件产品的逐渐增多,产品功能已经不能满足用户的需求,也不能战胜对手,以苹果手机为例,苹果手机的最大的特点就是超强的用户体验效果。实际上苹果的待机时间、功能并不比安卓多,费用比安卓贵,人们之所以喜欢苹果,就是因为苹果手机的用户界面、外观好看,体验效果好。未来软件的卖点,主要由UI设计师来体现,因为只有UI设计师才知道用户真正的需求,只有UI设计师才能根据用户的需求设计用户想要的控件,来完善原始软件的单调,这样的软件才能有更好的发展。这就说明了UI设计师的市场是

https://www.sodocs.net/doc/3917400110.html, 为了将来入职企业后能够快速的上手工作,北大青鸟沈阳三好校区专业进行计算机技术教育,课程紧随市场需求,每18个月更新一次,保障学员学到的是较为前沿的新技能,真正能实现够学有所用。 要想找工作不难,那么就要提升自己的硬实力,而北大青鸟就可以帮助你实现。详情请咨询点击查看。

对软件开发的理解和认识作业

对软件开发的理解和认识作 业 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

对软件开发的理解和认识 专业:计算机技术 现在软件已经和我们的生活息息相关,渗透到各行各业,例如现在我们平时接触到的windows操作系统、玩的电子游戏、使用的财务软件、机场的售缥系统、医院的挂号系统、还有我们去唱歌的点歌系统等等都属于软件的范围。举一个例子来说,你肯定用过自动提款机吧?提款机本是一台实体机器,金属的,本身台机器是不会给您提供任何服务的,所有就需要有一套东西来提示您插卡、输入密码、取多少钱、拔卡等等步骤,这就叫做软件。然后告知我们是制作软件的,在IT业内称为软件开发。 软件工程把整个软件开发过程分为几个方面。只有每个方面都做好了,才有可能做成一个好的系统,这只是一个必要条件而非充分条件。每个阶段的产出就是文档,在瀑布开发模型里面,下一阶段所需要的信息来源于上一阶段的文档。 软件开发流程即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 第一步:需求调研分析 1相关系统分析员向用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。

2 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。 3 系统分析员向用户再次确认需求。 第二步:概要设计 首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。 第三步:详细设计 在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。 第四步:编码 在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。 第五步:测试

软件系统开发技术答案

软件系统开发技术试题(一) 一、单项选择题(本大题共10小题,每小题1分,共10分) 1. 设计软件结构一般不.确定(D ) A. 模块之间的接口 B.模块间的调用关系 C.模块的功能 D.模块内的局部数据 2. 软件结构化设计中,好的软件结构应该力求做到(B ) A. 顶层扇出较少,中间扇出较高,底层模块低扇入 B. 顶层扇出较高,中间扇出较少,底层模块高扇入 C. 顶层扇入较少,中间扇出较高,底层模块高扇入 D. 顶层扇入较少,中间扇入较高,底层模块低扇入 3. 两个模块都使用同一张数据表,模块间的这种耦合称为(A ) A. 公共耦合 B.内容耦合 C.数据耦合 D.控制耦合 4. 划分模块时,下列说法正确的是(A ) A. 作用范围应在其控制范围之内 B. 控制范围应在其作用范围之内 C. 作用范围与控制范围互不包含 D. 作用范围与控制范围不受限制 5. 重用率高的模块在软件结构图中的特征是(B ) A.扇出数大 B.扇入数大 C.扇出数小 D.内聚性高 6. 面向对象建模得到的三个模型,其中核心的模型是(A ) A.对象模型 B.功能模型 C.逻辑模型 D.动态模型 7. 从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件的影响最大是(C ) A.详细设计阶段 B.概要设计阶段 C.需求分析阶段 D.测试和运行阶段 &对UML的叙述不正确的是(D ) A. UML统一了Booch方法、OMT方法、OOSE方法的表示方法。 B. UML是—种定义良好、易于表达、功能强大且普遍适用的建模语言。 C. UML融入了软件工程领域的新思想、新方法和新技术。 D. UML仅限于支持面向对象的分析与设计,不支持其它的软件开发过程。 9?以下哪个软件生存周期模型是一种风险驱动的模型( C ) A.瀑布模型 B.增量模型 C.螺旋模型 D.喷泉模型 10.以下哪一项对模块耦合性没有..影响(D ) A. 模块间接口的复杂程度 B. 调用模块的方式 C. 通过接口的信息 D. 模块内部各个元素彼此之间的紧密结合程度 二、填空题(本大题共10小题,每空2分,共20分)

软件开发过程管理规范

软件开发过程管理规范文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]

0 引言 如果要提高软件开发人员的开发质量,必须有相应的考核制度,有了制度后才能推动开发人员想方设法改善自已的开发质量。目前研发对软件开发的过程缺乏细粒度的度量,所以不能依据有效的度量数据来考核开发人员的工作绩效,大部份只是凭考核人主观意志来考核,不能形成对被考核人有效的说服力。此绩效考核办法旨在结合实际情况合理客观地评价开发效率和质量。 1 目的 对软件开发的过程所产生的软件项的质量和过程进行定量的评价,用评价的结果指导软件的开发过程,不断地提高软件开发质量水平,并依据度量记录来考核软件开发人员的工作绩效。 2 软件项包括 1)技术文档:主要包括:可行性分析报告、需求分析报告、软件功能规格说明、开发计划、系统设计报告、测试文档、用户手册、总结报告等; 2)计算机程序。 3 度量数据的来源 1)项目计划; 2)评审报告; 3)测试报告; 4)问题报告; 5)软件维护记录; 4 质量度量

4.1 度量指标 主要根据各类软件项检查表的检查指标来确定,例如,软件需求规格说明书检查表(见附录1),有10个检查指标,则根据具体项目检查侧重点不同,可从中选择相应的检查指标作为度量指标。 4.2 质量等级 1)软件项的质量等级的确定根据度量综合指标进行。 2)度量综合指标计算公式为:Total = ∑QiMi。 3)其中i=1,2,...n代表指标数量; 4)Q代表度量的指标; 5)M代表度量的指标Q在整个指标体系中所占的权重系数,对不同的开发项目可能不同,此系数根据开发的不同着重点给出。 度量指标权重系数表: 序号指标权重 1 指标1 权数1 2 指标2 权数2 3 指标3 权数3 4 指标4 权数4 5 指标5 权数5 加权平均分 1.0 6)质量评价:一般地,根据度量综合指标值,有以下评分标准。 质量评价计分标准表 序号得分质量评价

快速原型方法与软件开发中的风险管理

快速原型方法与软件开发中的风险管理 软件系统往往体现一定的功能,这些功能要符合一定的使用目的。现实世界是在不断变化的,而且变化的速度是越来越快,唯一不变的就是“变化”的主题。这一现实也就直接影响到了实现实际功能的软件系统,体现在需求、技术实现手段、应用环境等多个方面,这些都直接影响到了软件系统自身的稳定性。同时,由于快速变化这一事实,人们对于以后的预测能力也越来越有限,有时根本难以明确未来的需求,只能是根据环境的变化而随时调整,因此直接导致了软件生命周期越来越短这一现实,特别是应用软件,直接与这种变化紧密相连。 但是,软件开发往往需要一定的时间,一个软件系统从需求、设计、开发到投入使用,这一周期都不会很短,即从需求产生到实际能够投入使用这段时间,其本身就已经成为应用软件自身的风险,很可能当一个软件开发完成的时候,市场需求已经发生了变化,开发出来的软件已经不适用了。软件生命周期已经缩短,特别是应用软件,随着新业务的市场窗口变窄的趋势,其自身的寿命周期也在缩短。快速投放市场已经成为软件系统的首要因素。另一方面,由于快速变化的外部环境给软件产品带来的风险,成本控制也成为软件工程管理的一个重要方面,通过对需求变化的风险的评估来重新认识软件寿命周期,以合理的成本完成软件开发,也已经成为对软件产品管理者的一个挑战。 在传统的软件工程方法中,主要使用瀑布式顺序开发方法,包括需求分析和定义、系统设计、实现和单元测试、系统集成测试、运行维护等多个阶段,这一方法的优点是全面、严谨,但最大的缺陷,就是过程一旦启动就难以适

应变化。这一方法是基于一个重要的假设前提——能够提出明确的需求。当面对快速变化、甚至是根本不明确的需求时,这种假设根本上就不成立,因此这种传统的开发方法的缺点就越来越突出,特别是应用软件的开发,由于它与市场的联系更加紧密,使用这种传统的开发方法,已经难以为继。我们需要寻找一种更加快速、成本合理的软件开发方法。 快速原型方法就是这样一种开发更加迅速、更加成本合理的开发方法。在软件开发过程中,最关键的步骤就是确切定义出需求,明确软件要实现的功能是什么,而这恰恰也是最困难的过程,因为现在许多用户在初期只有一个隐约的、大致的考虑,根本不可能提出具体明确的需求。这种情况下,使用快速原型进行反复交流、细化需求,就成为一种更加有效的方法。一个软件的原型,主要是模拟重要的功能和界面,但是一般不考虑运行效率,也不考虑系统的健壮性,出错处理也考虑不多,它的目的只是为了实际描述概念中的结构,使用户能够检测与其概念的一致性和概念的可用性。 目前主要有两种快速原型方法: ·丢弃原型(Throw-away prototyping)。其目标只是为了明确需求,使用最简单的开发方法,以最低的成本实现一个可工作的系统,该系统只关注功能,不考虑开发工具、性能、容错、未来实际运行环境等。通过反复与客户交流和修改原型,使原型的功能能够充分体现客户需求。在明确了需求之后,原型就会被丢弃。以后软件的开发将根据明确了的需求按照传统的工程化方法来开发。 ·进化原型(Evolutionary prototyping)。其目标就是与客户一起工作,从一个原始的需求的轮廓开始,逐步改进,最终发展成为符合实际需要的系

青岛软件开发就业前景

软件开发就业前景 有句话说得好:“用电脑就是用软件”。而软件产业的发展也在改变着人们的日常生活,甚至成为IT产业发展的重要推动力。环顾世界,微软、Adobe、Oracle 等公司无不是从软件起家,逐步发展到目前的庞大规模。因此,从某种意义上说,靠软件吃饭,是一辈子的事情。因此,YJBYS小编为大家整理了2017年软件开发专业就业前景,以供大家参考! 「职业定义」 软件工程师主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。 「职业分析」 软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。软件工程师是IT行业需求量最大的职位,稳居IT行业职位需求TOP10 的第一位。 软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言 /C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S 程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、 WEB SERVICE、STRUCTS等前沿技术。除此之外,关于网络工程和软件测试的其他技术也要有所涉猎,以利于操控全局。 软件工程师发展空间大 软件工程师的发展空间非常的大,软件工程师可以做数据库工程师、软件安全工程师、软件管理员,随着经验的积累可以做高级网路工程师、项目主管、项目经理,如果你有魄力的话,还可以自己创业。总之,软件工程师的发展空间非常的大,只要你肯努力,有好的技术实力,很多好的职位都在等着你。 软件工程师发展前景

对软件工程的认识

我对软件工程的认识 随着软件危机的存在才慢慢地产生了对软件工程的认识,在软件开发和维护的过程中存在着很多严重的问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关,逐渐地产生了软件工程。 软件危机的表现: i)软件开发成本难以控制、软件开发进度难以预测。 费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。 ii)软件的可靠性差,产品质量无法保证。 软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加。 iii)生产出来的软件难以维护 很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。 iiii)软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。 由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。然而软件开发需要大量的人力,软件成本随着软件规模和数量的剧增而持续上升。 iiiii)软件开发生产率提高的速度远远满足不了计算机应用迅速普及深入的需要。软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力。 iiiiii)用户对产品功能难以满足。 开发人员和用户之间很难沟通、矛盾很难统一。往往是软件人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。

软件工程是将系统的、科学的和严密的方法应用于设计、开发、运行和维护软件,以及对这些方法本身的研究,也就是将工程应用于软件,它由方法、工具和过程三部分组成,而软件是计算机系统中程序、数据和文档的集合。程序是用程序设计语言描述的、适合计算机处理的语句序列,数据是使程序能够适当地处理信息的数据结构,文档是软件开发、使用和维护程序所需要的图文资料。软件具有个体化、规模庞大、维护复杂和长期性的特点。软件又分为应用软件和系统软件。应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。而系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得他们可以协调工作。 软件工程的框架可以概括为:目标、过程和原则。 (1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。 (2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。

相关主题