软件过程
- 格式:docx
- 大小:49.09 KB
- 文档页数:8
软件开发的基本过程
软件开发的基本过程包括以下步骤:
1.需求分析:相关系统分析员向用户初步了解需求,用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
2.概要设计:开发者需要对软件系统进行概要设计,即系统设计。
概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
3.详细设计:在概要设计的基础上,开发者需要进行软件系统的详细设计。
应当保证软件的需求完全分配给整个软件。
详细设计应当足够详细,能够根据详细设计报告进行编码。
4.编码:在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
5.测试:测试编写好的系统。
交给用户使用,用户使用后一个一个的确认每个功能。
完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算完成。
6.验收:用户验收。
以上就是软件开发的基本过程,不同的公司可能会有自己的一套
流程,但大体上应该是类似的。
软件过程名词解释软件过程是指在软件开发过程中,通过一系列组织化、规范化和可追踪的活动,在特定环境下按照一定的方式进行的一系列活动的集合,目的是为了开发和维护软件。
1. 需求收集和分析:在软件开发过程中,首先需要进行需求收集和分析。
这个过程主要是通过与用户和客户的沟通,收集并理解用户的需求。
然后根据需求进行分析和整理,明确软件的功能和性能要求。
2. 设计和架构:在需求分析的基础上,进行软件的设计和架构。
设计是指根据需求分析的结果,设计出软件的整体结构和各个模块之间的关系。
架构是指将设计的结果转化为具体的架构,包括选择合适的技术和平台,确定软件的组织结构和模块划分。
3. 编码和单元测试:在设计和架构的基础上,进行编码和单元测试。
编码是指根据设计的结果,将设计的模块转化为具体的代码。
单元测试是指对编写的代码进行测试,验证代码的正确性。
4. 集成和系统测试:在编码和单元测试的基础上,将各个模块进行集成,并进行系统测试。
集成是指将各个模块进行组合,并测试模块之间的协作和交互。
系统测试是指对整个软件系统进行测试,验证软件系统的功能和性能是否符合需求。
5. 部署和运维:在系统测试通过后,将软件部署到实际的运行环境中,并进行运维。
部署是指将软件安装到用户的计算机或服务器上,并进行配置和启动。
运维是指在软件运行过程中,进行监控、维护和升级,确保软件的稳定性和可用性。
6. 质量保证和改进:在软件开发过程中,需要进行质量的保证和改进。
质量保证是指通过规范和流程的执行,确保软件开发过程的可控和可预测性。
改进是指根据开发过程中的经验和反馈,对软件开发流程和方法进行改进,提高软件开发的效率和质量。
以上是软件过程中常见的一些名词解释,涵盖了软件开发的各个阶段和活动。
在实际的软件开发中,可以根据具体的项目和组织情况,进行相应的调整和定制。
软件过程的目的是为了确保软件开发的可控性和可预测性,以及提高软件开发的效率和质量。
软件过程管理(一)一、引言1、过程是活动的集合,软件过程是与软件开发与维护相关的活动的集合。
2、过程管理是制定过程和对过程活动进行动态监管。
软件过程管理的目的是最大限度地提高软件产品的质量和软件开发过程的生产率。
3、软件过程管理的途径:软件过程模型→组织标准软件过程→项目定义软件过程→过程实施与监控→软件过程改进。
4、过程的分类:产品实现过程;管理过程;支持过程。
在软件过程中,产品实现过程被称为“工程过程”。
软件工程( Software Engineering)l 指导计算机软件开发和维护的工程科学。
l 旨在确定软件开发技术规范,其中软件开发技术包含:软件开发方法学、软件工具和软件工程环境。
l 应用计算机科学(用于构造模型预算法)、工程科学(用于制定规范、设计模型、评估成本及权衡利弊)和管理科学(用于计划、资源、质量、成本等管理)的基本原理。
l 与其他工程的区别:产品是程序。
l 特点:规范化、文档化。
l 软件过程是指软件开发人员开发和维护软件以及相关产品(如项目计划、设计文档、代码、测试用例和顾客手册)的一套行为、方法、实践以及变化过程。
l 软件过程管理的重要前提是:软件产品质量的好坏主要取决于开发和维护该产品所使用的软件过程质量。
l 有效的软件过程可将人员、工具和方法进行有机结合。
二、软件与软件产业的发展过程软件过程管理l 对软件开发全过程规范化及标准化的管理。
l 软件过程管理技术包括:软件管理学和软件工程经济学。
l 目前,国外普遍采用的软件过程管理方法是:美国卡内基·梅隆大学软件工程研究所(SEI)提出的软件能力成熟度模型(SW-CMM)。
l 目的:研究如何有效地对软件开发项目进行管理,以便按照进度和预算完成软件项目计划,实现预期的经济效益和社会效益。
l 包括:成本估计、进度计划、人员组织、质量保证等。
三、软件危机及其原因软件成本高软件特殊性l 软件开发的进度难于控制l 估计软件工作量很困难l 软件质量难于保证l 修正维护软件困难软件项目出现的典型问题l 缺少用户的参与l 需求及其说明不完整或经常变更l 项目得不到高层管理者的支持l 技术能力不足或对新技术不熟悉l 资源投入不足l 预期要求过高l 项目目标不清晰l 人员配合存在问题四、过程及其要素l 软件开发项目是在规定的成本和时间内,开发和提交满足客户某些需求的软件产品。
第二章:软件过程目标:软件工程和软件过程模型的概念;了解3个一般的软件过程模型及何时使用它们;了解软件需求工程,软件开发,测试和进化中所涉及的基本过程活动;理解为什么软件过程要有效地组织以应对软件需求和设计上的变更;了解Rational统一过程是如何集成好的软件过程实践来产生一个可适应的软件过程。
所有的软件过程都必须具有4种对软件工程来说是基本的活动。
它们是:1.软件描述:必须定义软件的功能以及软件操作上的约束。
2.软件设计和实现:必须生产符合描述的软件。
3.软件有效性验证:软件必须得到有效性验证,即确保软件是客户所想要的。
4.软件进化:软件必须进化以满足不断变化的客户需要。
2.1软件过程模型一软件过程模型一般有1.瀑布模型:该模型将基本的过程活动,描述,开发,有效性验证和进化,看成是一些界限分明的独立的过程阶段,例如,需求描述阶段,软件设计阶段,实现阶段,测试阶段,等等。
2.增量式开发:该方法使得描述活动,开发活动和有效性验证活动交织在一起。
系统的开发是建立一系列的版本(增量),每个版本添加部分功能到先前的版本中。
3.面向复用的软件工程:该方法使得描述活动,开发活动和有效性验证活动交织在一起。
系统开发过程着重于集成这些组件到新系统中,而非从头开发。
2.1.1瀑布模型一瀑布模型中的主要阶段直接映射基本的开发活动:1.需求分析和定义2.系统和软件设计3.实现和单元测试4.集成和系统测试5.运行和维护二适合采用瀑布模型的时候瀑布模型是与其他工程过程模型相一致的,在它的每个阶段都要生成文档。
这使得过程是可见的,项目经理能够根据项目计划监控项目的过程。
它的主要问题在于它将项目生硬地分解成这些清晰的阶段。
关于需求的责任和义务一定要在过程的早期阶段清晰界定,而这又意味它对用户需求变更的响应较困难。
所以只有在对需求了解的好,而且在系统开发过程中不太可能发生重大改变的时候,适合采用瀑布模型。
瀑布模型的一个重要变形是形式化系统开发。
简述软件开发的过程
软件开发过程是指从需求分析开始,通过设计、编码、测试等环节,最终将软件交付的一系列步骤。
1. 需求分析:明确软件开发的目标和需求,并与相关人员进行沟通,了解用户的需求和期望。
2. 设计阶段:根据需求分析的结果,确定软件的整体架构和模块设计,包括数据库设计、系统流程设计等。
3. 编码阶段:根据设计阶段确定的规范和需求,进行具体的编码工作,实现软件的各个功能模块。
4. 测试阶段:对编码完成的软件进行测试,包括单元测试、集成测试和系统测试,以验证软件在各种情况下的正确性和稳定性。
5. 部署阶段:将经过测试的软件安装到目标环境中,进行部署和配置,确保软件可以正常运行。
6. 维护阶段:软件交付后,需要进行日常的维护和升级工作,包括bug修复、性能优化等,以确保软件的持续稳定运行。
在整个软件开发过程中,还需要进行项目管理、团队协作和版本控制等工作,以确保软件开发的进度和质量。
软件开发的一般流程软件开发是指对计算机软件进行开发、制作、安装、测试、维护和更新等系统软件的活动,也称为软件工程。
它包括软件分析、设计、开发、调试及安装等步骤。
软件开发的主要目的是根据客户的需求创建满足客户要求的可用软件。
二、软件开发的一般流程1、分析阶段:软件开发的第一步是对客户的需求进行分析,即根据客户的需求分析需要开发的软件产品,获得软件项目的基本功能和性能,以及满足客户需求的可能技术结构。
2、设计阶段:在软件分析阶段,系统设计阶段主要任务、要点、重点、技术方案等进行具体拟定,确定软件整体结构,各模块的功能构造,技术参数,性能指标,文档组织结构,数据结构,算法等具体内容,并尽可能地规定整个软件工程的实施方案和实施顺序,以便软件开发人员了解客户要求,准备编写程序以及确定实现方式。
3、开发阶段:在设计阶段结束后,才能开始编写软件程序。
软件开发人员根据软件设计阶段的文档,编写软件程序,按照客户要求创建软件产品,完成软件的编写。
4、测试阶段:完成开发阶段的程序编写后,必须进行测试,检验程序在计算机上的正确性和可靠性,确保程序的完善性,测试时,首先要详细分析设计文档,对设计进行审查,并根据设计文档中提出的规范,对软件进行系统测试,然后,根据测试结果,修改软件中的缺陷,直至软件可以满足使用要求为止。
5、安装阶段:完成测试阶段后,即可进行安装。
软件安装包括软件的安装,环境的安装,系统的安装以及客户端的安装等。
6、维护阶段:完成软件产品的安装后,可能还需要维护,维护的内容主要有:软件的错误修改,程序的维护,软件环境的维护,软件升级及安全保护等。
7、更新阶段:软件开发完成后,软件产品可能会进行更新,以满足客户的新需求,更新的内容主要有:扩充新的功能,改善原有功能,改进界面,调整软件性能等。
三、软件开发的重要性软件开发是一个技术性的系统工程,它为计算机的运用、控制和管理提供支持,为用户提供便利,可以提高计算机系统的健壮性和灵活性。
1. CMM分哪几个成熟度等级?每个等级的名称是什么?有什么含义?CMM分为5个成熟度等级,分别是初始级、可重复级、已定义级、已管理级、优化级,具体含义如下:初始级组织缺乏明文的管理办法,软件工作没有稳定的环境,制定了计划又不执行,反应式驱动工作开展。
紧急情况下已定的规程丢在一边,急于编码和测试。
个别项目的成功依赖于某个有经验的管理人员。
个别管理人员能顶住削减过程的压力,但他们离职则全然不同。
规定的过程无法克服由于缺乏有效管理带来的不稳定性。
现象往往表现为过程无一定之规,项目进度、预算、功能及产品质量无法保证,项目的实施不可预测。
初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。
也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证时,那么它仍然被视为初始级。
可重复级建立了为跟踪成本、进度和功能的基本项目管理过程。
基于以往项目经验,制定了过程实施规范,使类似的项目可再次成功。
能追踪成本、进度、功能,及时发现问题。
如有分包,其质量也能得到控制。
第二级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面。
其中项目管理分为计划过程和跟踪监控过程两个过程。
通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。
已定义级制定了组织的标准过程文件,这是软件工程基础设施的重要组成部分。
建立了组织的软件工程过程组(SEPG),负责软件过程活动。
制定和实施了人员培训大纲,保证人员能够胜任岗位知识和技能要求。
针对特定项目,可将标准软件过程(OSSP)进行剪裁。
项目成本、工期和功能已受控,质量可跟踪。
管理者了解所有项目对技术进步的要求。
在第二级仅定义了管理的基本过程,而没有定义执行的步骤标准。
在第三级则要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。
所有开发的项目需根据这个标准过程,剪裁出该项目的过程,并执行这些过程。
过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。
已管理级已为产品和过程建立了量化的目标。
对项目的过程活动,包括生产率和质量均作了度量。
利用过程数据库收集和分析过程的信息。
可量化评价项目过程和产品。
可有效地控制过程和产品的性能,使其限制在规定的范围内。
新应用领域的风险可知可控。
可预知产品的质量。
已管理级(4级) 是量化的管理。
所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的产品)需有明确的度量指标。
这些度量应是详尽的,且可用于理解和控制软件过程和产品,量化控制将使软件开发真正变成为工业生产活动。
优化级集中注意于过程的持续改进。
自知过程的薄弱环节,可预防缺陷的出现。
可通过对当前过程的分析,评价对新技术或将出现的变更作出评价。
重视探索创新活动,并将成功的创新推广。
出现的缺陷得到分析,找出原因,防止再次发生,教训为其它项目吸取优化级(5级)是达到一个持续改善的境界。
所谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。
如果一个企业达到了这一级,那么表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。
2. CMMI是在什么历史条件下产生的?与CMM之间的关系是怎样的?CMMI起源CMMI 的全称为Capability Maturity Model Integration,即能力成熟度模型集成。
CMMI是CMM模型的最新版本。
早期的CMMI(CMMI-SE/SW/IPPD)1.02版本是应用于软件业项目的管理方法,SEI在部分国家和地区开始推广和试用。
随着应用的推广与模型本身的发展,CMMI演绎成为一种被广泛应用的综合性模型。
1994 年,SEI 正式发布软件CMM。
随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。
例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等。
虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况。
这时他们就会发现存在一些问题,其中主要问题体现在:•不能集中其不同过程改进的能力以取得更大成绩;•要进行一些重复的培训、评估和改进活动,因而增加了许多成本;•不同模型对某些相同事物说法不一致,或活动不协调,甚至相抵触。
于是,希望整合不同CMM 模型的需求产生了。
1997 年,美国联邦航空管理局(FAA)开发了FAA-iCMM SM(联邦航空管理局的集成CMM),该模型集成了适用于系统工程的SE-CMM、软件获取的SA-CMM 和软件的SW-CMM 三个模型中的所有原则、概念和实践。
该模型被认为是第一个集成化的模型。
接着SEI在其基础之上更进一步,开发了更为广泛的CMMI。
CMMI与CMM的关系CMMI是CMM模型的最新版本,CMMI 与CMM 最大的不同点在于:CMMISM-SE/SW/IPPD/SS 1.1 版本有四个集成成分,即:系统工程(SE)和软件工程(SW)是基本的科目,对于有些组织还可以应用集成产品和过程开发方面(IPPD)的内容,如果涉及到供应商外包管理可以相应的应用SS(Supplier Sourcing)部分。
3. CMMI有哪两种表现形式?CMMI与CMM相比,在过程域方面有什么变化?CMMI 有两种表示方法,一种是阶段式表现方法,另一种是连续式的表现方法。
变化:阶段式表现方法和软件CMM一样,仍然把CMMI 中的若干个过程区域分成了5 个成熟度级别,帮助实施CMMI 的组织建议一条比较容易实现的过程改进发展道路。
而连续式表现方法则通过将CMMI 中过程域分为四大类:过程管理、项目管理、工程以及支持。
对于每个大类中的过程域,又进一步分为基本的和高级的。
这样,在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑。
4. 什么是软件过程的改进?CMM/CMMI对于指导软件过程改进有什么意义?用于提高软件过程能力的实践通称为软件过程改进。
CMM用之于软件过程改进时,是通过按CMM给出的准则对软件过程实施评价,从而为作出改进决策和实施改进提供支持;所以,往往又把CMM在过程改进方面的应用看成是过程评价。
CMM的两种主要用途又归结为两种评定方法: 软件过程评估: 用于确定组织目前的软件过程状态,确定组织面临的突出软件过程问题,从而求得组织的软件过程改进的支持。
软件能力评价: 用于识别合格的软件工作承包商,或用于监控现行软件工作项目上用的软件过程的状态。
CMM是软件过程评估和软件能力评价的公共基础。
不过,两种用法的目的不同,而且具体用法也有很大差异。
软件过程评估侧重于确定本组织软件过程改进的轻重缓急;软件能力评价侧重于确定在选择软件项目承包商时可能碰到的风险,或者说是确定软件组织在软件能力方面的置信程度。
后面这一点正是许多软件组织看好按CMM评定等级的原因。
软件过程评估与软件能力评价在动机,目标,范围以及审核结果所有权等方面都有所不同。
5. RUP的静态结构和动态结构是怎样的?静态结构由哪五种元素组成?各自代表什么?动态结构中的周期、阶段、迭代、里程碑等等之间是一种怎样的关系?动态的一面:通过周期、阶段、迭代和里程碑表示;静态的一面:通过过程构件、活动、规程、制品和角色来描述。
RUP应用了五种主要的元素来描述:角色(谁做)、活动(怎么做)、制品(做什么)、工作流(什么时候做)、规程(上述四种元素的“容器”)。
角色角色定义了个人或团队的行为和职责。
每个角色都与一组内聚的活动相联系。
每个角色的职责通常与某一特定制品(artifact)相联系,制品通常由角色创造、修改和控制。
角色可以分为五大类:分析人员、开发人员、测试人员、管理人员、产品和支持。
活动活动有明确的目的,通常是生产或更新制品(如模型、类或计划)。
每个活动都被分配给一个特定的角色。
活动分解为不同的步骤,步骤主要分为三类:思考步骤、执行步骤、评审步骤。
制品活动有输入制品和输出制品。
制品是项目的有形产品。
制品有以下不同的形式:●模型,如用例模型或设计模型。
●模型元素——一个模型中的元素,如类、用例或子系统。
●文档,如一个业务案例或软件架构文档。
●源代码。
●可执行文件。
制品不等同于文档。
制品很可能受到版本控制和配置管理的影响。
报告不同于一般的制品。
它是由制品生成的相关信息。
制品集合包括:管理集、需求集、设计集、实现集、部署集。
工作流是一个产生具有能看到的价值的成果的有意义的活动序列。
在UML术语中,一个工作流可以表示为一个顺序图、协作图或活动图。
RUP使用三种类型的工作流:●核心工作流,它与每个规程都有关。
●工作流细节,它精化了核心工作流。
●迭代计划。
规程规程是用来组织过程活动的“容器”。
在RUP中有9个主要规程,分为6个技术性规程和3个支持性规程。
技术性规程包括:业务建模规程、需求规程、分析和设计规程、实现规程、测试规程、部署规程;支持性规程包括:项目管理规程、配置和变更管理规程、环境规程。
动态结构中的周期、阶段、迭代、里程碑等等之间的关系软件产品产生于初始开发周期(initial development),以后的开发周期称为进化周期(evolution cycle)。
一个产品经历了几个进化周期后,就产生了新一代产品。
阶段时间的长短会因为项目特定环境的不同而有很大差异。
在每个阶段中,都可以迭代地进行开发,而且每个阶段都包含了一个或几个迭代过程。
每一个迭代过程的工作流包括需求抽取和分析、设计和实现、集成和测试等各项活动。
但从一个迭代过程到另一个迭代过程,重点关注的活动是不同的。
不同的阶段其里程碑也是不一样的:初始阶段的里程碑是生命周期目标;细化阶段的里程碑是生命周期架构;构造阶段的里程碑是最初的可操作能力;移交阶段的里程碑是产品发布。
6. RUP提倡的6大最佳实践是什么?怎样认识这些最佳实践?RUP的六大最佳实践:1. 软件的迭代开发迭代的软件开发可以提供一系列的解决软件开发根本问题的方案:●可以在生命周期早期发现严重的需求理解错误●允许并鼓励用户反馈,从而抽取系统真正需求●使开发团队集中关注项目中最关键的问题,并屏蔽掉那些分散他们对项目真正风险注意力的问题●持续的、迭代的测试可以为项目状况给出客观评估●需求、设计和实现中的不一致能够在早期被发现●在整个项目的生命周期中,可以更加平均地分配整个团队,尤其是可以平均分配测试团队的工作量●团队可在过程中总结经验教训,不断改善开发过程●项目相关人员可以通过具体证据来了解项目情况2. 需求管理软件密集型系统的需求管理的挑战在于它们的动态性。