软件生命周期流程图
- 格式:pdf
- 大小:138.54 KB
- 文档页数:1
第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
系统研发生产流程图1-12 系统生命周期示意图1. Concept development (概念)CITYFLO 650 is a state of the art CBTC moving block solution developed by Bombardier Transportation (BT) for new or existing mass transit and urban metro applications. BT has developed, successfully installed and commissioned multiple systems that are now operating in revenue service. Applications include Subway Systems, Light Rail systems and Airport People Mover (APM) systems etc. The applied principles remain the same regardless of the car type, running surface, specific line structure, or system size.CITYFLO 650是目前庞巴迪运输(BT)为城市轨道交通新线或既有线,提供的一套CBTC移动闭塞解决方案。
庞巴迪运输开发的这套系统已安装并运行在多条商业运营线路上。
应用范围包括地铁、轻轨和机场旅客捷运系统(APM)等,此系统还不受制于列车类型、地上地下、线路结构或线路尺寸容量等。
2. System definition and application conditions (系统定义和应用条件)CITYFLO 650 is a true moving block CBTC signaling solution capable of being configured to operate in different operating modes that range from fully automated Unattended Train Operation (UTO) to manual operation with no ATP protection for degraded operation in fall-back mode.CITYFLO 650是真正意义上的移动闭塞CBTC信号系统,它能根据不同的运营模式要求进行配置,包括从全自动无人值守(UTO)方式到后备模式下无ATP保护的人工运行模式等。
软件生命周期软件的生命周期是一个孕育、诞生、成长、成熟和衰亡的生存过程,也就是所谓的软件定义、软件开发和运行维护3个时期组成。
而每个时期又有所要完成的不同的基本任务。
软件定义时期的主要任务是解决“做什么”的问题,通俗的讲就是做此项目的主要功能及可行性报告等。
比如说网上选课系统,在软件定义阶段,要确定以下几个功能模块:管理员管理课程、教师、学生的增删改查和对教师、学生的权限授予等功能,教师对自己信息的修改和对自己课程的上传、修改、删除、查询等功能,学生对课程的选择、退选及查询等功能。
针对此项目,从技术、经济、法律、成本、可获得的效益、开发的进度做出一系列的估算,制定出具体的实施计划。
软件开发时期的主要任务是解决“如何做”的问题,也就是如何完成此项目的过程,要解决每个构建所要完成的工作以及完成此工作的顺序。
选择编写源程序的开发工具,把软件设计转换成计算机可以接受的程序代码。
比如说网上选课系统,在软件开发阶段,我们确定先要进行管理员的模块编写,再进行教师模块的编写,进而进行学生模块的编写,另外也要确定是运用某种软件开发工具,如java、C语言等进行模块的开发等。
运行维护时期的主要任务是使软件持久地满足用户的需要,通常包括:改正性维护、适应性维护、完善性维护和预防性维护。
在此阶段主要是把前期的各个模块组装起来进行测试,保证按需求分析的要求完成软件功能的测试并对此进行确认,交与开发方运行测试。
比如网上选课系统,在运行维护阶段,要对前期的管理员、教师、学生这三个模块进行组合,并按照需求分析的功能进行核对,有不符合需求规格说明书之处进行修改,直到完全符合并测试成功,交与开发方测试及运用。
软件的生命周期是一个耗时长的工程。
在软件工程生命周期的3个时期中,各个阶段又有着其不同的基本任务:一、问题定义和可行性研究此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
在这个阶段中我们需要从开发的技术、成本、效益等各个方面来衡量这个项目,进行可行性分析,形成可行性分析报告书,并以此为基础进行需求分析等后期的工作。
生命周期法生命周期法也称结构化系统开发方法,是目前国内外较流行的信息系统开发方法,在系统开发中得到了广泛的应用和推广,尤其在开发复杂的大系统时,显示了无比的优越性。
它也是迄今为止开发方法中应用最普遍最成熟的一种。
1基本思想:将软件工程学和系统工程的理论和方法引入计算机系统的研制开发中,按照用户至上的原则,采用结构化、模块化自顶向下对系统进行分析和设计。
具体来说,它将整个信息系统开发过程划分为独立的六个阶段,包括系统分析、程序设计、系统测试、运行和维护以及系统评估。
这六个阶段构成信息系统的生命周期。
2优缺点生命周期法的突出优点是强调系统开发过程的整体性和全局性,强调在整体优化的前提下考虑具体的分析设计问题,即自顶向下的观点。
它从时间角度把软件开发和维护分解为若干阶段,每个阶段有各自相对独立的任务和目标。
降低了系统开发的复杂性,提高了可操作性。
另外,每个阶段都对该阶段的成果进行严格的审批,发现问题及时反馈和纠正,保证了软件质量,特别是提高了软件的可维护性。
实践证明,生命周期法大大提高了软件开发的成功率。
但是,生命周期法开发周期较长,因为开发顺序是线性的,各个阶段的工作不能同时进行,前阶段所犯的错误必然带入后一阶段,而且是越是前面犯的错误对后面的工作的影响越大,更正错误所花的工作量就越大。
而且,在功能经常要变化的情况下,难以适应变化要求,不支持反复开发。
编辑本段生命周期法的各个阶段生命周期法的四个阶段需求分析、设计、实施、运行和审计:1) 需求分析阶段需求分析是确定企业需求并把这种需求反映到信息系统需求说明书中。
需求分析阶段主要是满足用户需求的新系统逻辑模型。
需求分析工作主要由系统分析人员承担。
生命周期法具体过程以及这套表达工具的使用:A) 了解系统的组织结构首先接触到的往往是这个部门或单位的组织结构,表达部门或单位的组织结构,最直观的办法就是组织结构图。
组织结构图:把所需要了解的组织,分解为若干部分,并把它们之间的行政隶属或管理与被管理的关系用各部分之间的连线表示出来,这样形成的示意图就称为组织结构图。
流程图分类
流程图是一种用于展示系统或过程中各个步骤和操作的图形化表示方式。
根据不同的目的和应用背景,流程图可以分为多种不同的分类。
1. 系统流程图:系统流程图主要用于描述一个系统中各个模块之间的关系和流程。
该类流程图可以用于软件开发过程中的系统设计,将系统各个模块的功能和相互作用进行可视化展示,有助于开发人员理解和协调各个模块之间的关系。
2. 业务流程图:业务流程图主要用于描述一个组织或企业的业务流程。
该类流程图可以用于流程优化、业务改进和效率提升等方面,通过可视化展示整个业务流程中的步骤和操作,可以帮助企业发现问题、优化流程,并提高工作效率和质量。
3. 数据流程图:数据流程图主要用于描述数据在系统或过程中的流动和转换。
该类流程图可以用于数据管理、数据分析和数据处理等方面,通过可视化展示数据流动的路径和过程,可以帮助人们理解数据的生命周期和数据在系统中的变化。
4. 算法流程图:算法流程图主要用于描述计算机程序中的算法过程和执行步骤。
该类流程图可以用于算法设计、程序编写和代码调试等方面,通过可视化展示算法的逻辑和执行路径,可以帮助程序员理清思路、发现问题,并提升程序的效率和可读性。
5. 管理流程图:管理流程图主要用于描述组织或企业中的管理
流程和决策过程。
该类流程图可以用于管理流程优化、决策分析和组织管理等方面,通过可视化展示管理流程和各个决策节点,可以帮助管理者理清思路、制定决策,并提高管理效率和决策质量。
总之,流程图是一种非常有用的工具,可以帮助人们理解和展示各种系统和过程中的步骤和操作。
不同的流程图分类适用于不同的应用场景,可以帮助解决不同领域的问题,提升工作效率和质量。
生命周期模型选择指南生命周期模型选择指南目录1.目的 (1)2.范围 (1)3.项目生命周期 (1)3.1.瀑布模型 (3)3.1.1.V字模型 (4)3.1.2.中等简化V字模型 (6)3.1.3.最简化V字模型 (7)3.2.原型模型 (9)3.3.螺旋模型 (10)3.4.增量模型 (12)3.5.迭代模型 (13)1.目的1)根据项目类型和实际情况,从公司认可的生命周期模型选择合适的生命周期模型;2)根据所选择的生命周期模型,裁剪和细化标准过程,使裁剪后的过程符合项目的特点和实际情况。
2.范围本文件适用于公司所有类型的项目。
3.项目生命周期生命周期模型是从项目需求定义直至经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
生命周期模型一般分为:瀑布模型、原型模型、迭代模型、增量模型。
软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。
目前软件开发实践中使用的各种生命周期模型,都是下面各阶段的不同排列与组合。
∙系统需求∙需求分析∙设计(概要设计和详细设计)∙编码实现∙测试∙使用与维护各阶段主要工作、应完成的文档、质量控制手段见下表。
该生命周期模型适合于所有项目。
一个完整的开发类项目生命周期一般分为:需求分析、设计、编码、测试、发布、实施以及运行维护阶段。
3.1.瀑布模型1)特点●阶段间具有顺序性和依赖性:必须等前一阶段的工作完成之后,才能开始后一阶段的输入。
对本阶段工作进行评审,若得到确认,则继续下阶段工作,否则返回前一阶段,甚至更前阶段。
只有前一阶段输出正确,后一阶段才能正确;●推迟实现的观点:在编码之前,设置了需求分析与设计的各个阶段,分析与设计阶段的根本任务规定在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现;●质量保证的观点是每个阶段都坚持两个做法:规定文档,没有文档就没有完成该段任务;每个阶段结束前都要对完成的文档进行评审,以便尽早发现问题,改正错误。
第一章●软件工程方法学(3个要素):通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。
三要素:方法、工具和过程。
●软件生命周期模型–瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
–缺点:传统的瀑布模型过于理想化,是由文档驱动的。
–快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。
–增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
–螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另一个周期。
1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-2 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1.传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2.面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-4 软件生命周期划分成哪些阶段●软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。
1.软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试。
软件设计师考试冲刺(习题与解答)第 4 章软件工程从历年的考试试题来看,本章的考点在综合知识考试中的平均分数为11分,约为总分的14.67%.主要分数集中在软件开发模型、软件开发方法、软件测试、软件模块划分、软件质量要求、软件项目管理等这些知识点上。
4.1 考点提炼根据考试大纲,本章要求考生掌握以下几个方面的知识点。
软件工程知识:软件生存周期与软件生存周期模型、软件开发方法、软件开发项目管理、软件开发工具与软件开发环境。
系统分析基础知识:系统分析的主要步骤、机构化分析方法。
系统设计基础知识:概要设计与详细设计的基本任务、系统设计的基本原理、系统模块结构设计、结构化设计方法、面向数据结构的设计方法、系统详细设计。
系统实施基础知识:系统实施的基本内容、程序设计方法、程序设计的基本模块、系统测试、系统转换。
系统运行和维护基础知识:系统可维护性的概念、系统维护的类型、系统评价的概念和类型软件质量管理基础知识:软件质量特性(ISO/IEC 9126软件质量模型)、软件质量保证、软件复杂性的概念及度量方法(McCabe度量法)、软件评审(设计质量评审、程序质量评审)、软件容错技术。
软件过程改进基础知识:软件能力成熟度模型CMM、统一过程(UP)与极限编程(XP)的基本概念。
但结合历年考试真题来看,希赛教育的软考专家认为,考生必须要掌握以下几个方面的内容:1、软件生命周期在软件生命周期这个知识点,涉及的考点有:软件生命周期的定义、软件生命周期的划分、各阶段的任务(重点)。
2、软件开发模型软件开发模型基本是每次考试的一个必考知识点,涉及的考点有:瀑布模型、原型模型、演化模型、喷泉模型、增量模型、螺旋模型、基于构件的模型、统一过程等软件模型的特点及适用环境。
3、软件开发方法论在软件开发方法这部分,涉及的考点有:结构化开发方法、面向对象开发方法、模块设计的原则(重点)、7种内聚的理解、7种耦合的理解、软件开发各阶段的常用工具(如数据流图、程序流程图等等)、开发文档。