1、软件技术基础软件技术基础自动化系:黄巧莉自动化系:黄巧莉Email:软件技术基础西南大学计信院自动化系第十二章 软件工程过程与软件工程管理12.1 软件工程概述12.2 软件工程过程12.3 软件质量保证12.4 软件项目管理12.5 软件配置管理12.6 软件开发环境与技术基础设施软件技术基础西南大学计信院自动化系软件生存期的阶段划分(1)可行性研究与计划(2)需求分析(3)总体设计 (4)详细设计(5)实现(6)集成测试(7)确认测试 (8)使用和维护成长期(开发期)孕育期(计划期)成年期(运行期)软件技术基础西南大学计信院自动化系新的国际标准定义的软件生存过程(1995ISO/IEC12
2、207)软件生存周期过程软件生存周期过程支持过程支持过程辅助过程辅助过程主要过程主要过程获获取取过过程程供供应应过过程程开开发发过过程程运运行行过过程程维维护护过过程程文文档档编编制制过过程程配配置置管管理理过过程程质质量量保保证证过过程程验验证证过过程程确确认认过过程程联联合合评评审审过过程程审审核核过过程程问问题题解解决决过过程程管管理理过过程程基基础础设设施施过过程程改改进进过过程程培培训训过过程程软件技术基础西南大学计信院自动化系 把主过程的技术活动叫关键活动域,把支持、辅助过程的活动叫伞形活动域。一个软件产品的开发,除了对主过程建模,还需要把辅助、支持过程插入,才算是真正的过程建模。
3、软件技术基础西南大学计信院自动化系软件过程与软件质量 由算法过程对程序质量的重要性可以推断为某个项目排定的项目过程,即项目计划,对软件质量的影响的重大。过程模型不当,管理太死 模型正确,活动安排不当 工期临近,临时加班突击 多次返工,临时小决策太多软件技术基础西南大学计信院自动化系12.3 软件质量保证12.3.1 软件质量与度量 指标度量 指标如何量度12.3.2 软件质量保证 SQA小组的活动 SQA的技术途径软件技术基础西南大学计信院自动化系软件质量需求(1)显式的。要与软件和应用程序显式陈述的规范说明中的功能、性能强相符,符合开发标准和准则、指南。(2)隐式的。满足本企业(单位)所有的
4、期望,例如某项功能和性能超出本项目规范说明定义的需求,以占领市场。软件技术基础西南大学计信院自动化系软件的质量因素 软件的质量因素很多,如正确性、精确性、可靠性、容错性、性能、效率、易用性、可理解性、简洁性、可复用性、可扩充性、兼容性等等(还可以列出十几个)重点:可维护性、可靠性、可理解性和效率软件技术基础西南大学计信院自动化系软件质量的度量(评价)成功的标准:用户在 用户可很容易做完要做的事 失败的根本原因:开发人员写出的东西达不到 用户要求(人的问题、技术问题)软件技术基础西南大学计信院自动化系12.3.2 软件质量保证 软件质量保证是一种管理活动,SQA活动,贯穿于软件过程始终。开发单位
5、成立SQA小组负责全面质量管理。一类是软件工程师负责质量方面的技术工作:运用技术方法作出度量;进行技术评审,实施测试计划。一类是SQA小组(由项目经理、开发人员、客户、销售人员组成)制定并实施SQA计划,做出记录,分析,报告。软件技术基础西南大学计信院自动化系1.SAQ小组的活动(1)为开发项目制定SQA计划在开发项目计划时就要做出SQA计划。对于SQA组的工作以下几方面:各种评审 为多种人员参与的讨论会,以规格说明或各种标准,规范为准评价各项软件工作。各种审计 审计(Audit),以职能人员为主审,审查软件过程产物是否符合标准或规格说明书。报告和记录 所有测试、评审、审计都要详细记录并写出报
6、告,报告和记录均要整理、归档各种测试 测试软件是否满足规格说明的要求。软件技术基础西南大学计信院自动化系(2)软件评审 软件工程提倡不上机运行各种评审。正式技术评审最多可以发现75的瑕疵,软件的过程偏差只能通过评审发现。软件的缺陷是越早发现改正费用越小。正式技术评审,作为项目计划中应列入的活动。(3)软件质量保证计划 以上活动均应在项目计划中列出子计划。软件技术基础西南大学计信院自动化系2.SQA的技术途径 测试是对所做的工作的确认,即工作产品是否符合规范和标准,是事后的认可。验证是证明质量是符合规范和标准的方法,按照规范标准的步骤完成。形式方法的SQA 统计方法的SQA ISO9000质量标
7、准与SQA软件技术基础西南大学计信院自动化系12.4 软件项目管理(SPM)项目(project)管理是过程管理的主要体现,它根据项目要达到的目标(软件的功能、性能)作出包含人力、资源、技术过程、质量保证、进度安排的项目计划,并按此计划追踪、报告、协调来完成项目。软件项目管理是对该软件生存周期的所有活动(除交付后的维护活动之外)的全面管理。软件技术基础西南大学计信院自动化系软件项目管理内容1.项目获取 定义项目的性质和目标、经费、交付期2.建立与客户的通信 客户关系管理3.定义开发过程 管理模型4.组织管理 人力资源管理5.制定项目计划 过程实例描述6.风险管理 评估所采用的技术和管理带来的风
8、险7.质量管理8.项目调度与追踪 过程实施9.变更管理 软件配置管理软件技术基础西南大学计信院自动化系12.4.1 风险管理 风险分析是识别本项目中有什么风险,风险管理是如何躲开,监督风险的发生,万一出现风险如何采取措施。1.风险因素,应从下述角度分析:产品大小 开发环境业务相关 组织大小和人员经验客户相关 重用件相关技术相关 过程相关软件技术基础西南大学计信院自动化系2.风险评估通过标识风险、估计风险概率、估计影响范围测量每个风险的破坏力3.风险管理 是开发一种策略对以上分析出的风险因素进行管理:一为回避(mitigation)不使风险发生第二种办法是监控(monitoring)第三种办法是
9、加强管理和做应急计划(management and contingency planning)软件技术基础西南大学计信院自动化系12.4.2 项目计划 软件项目计划为合理搭配资源、费用、进度提供一个框架。项目计划列出软件开发所做的工作。一般的陈述是“做什么”,特殊的陈述是“做多少”和“多长时间”。项目计划的中心目标是安排进度。软件技术基础西南大学计信院自动化系项目计划的工作内容 确定项目的工作范围 识别资源 软件项目评估 做出外购决策 制定项目计划软件技术基础西南大学计信院自动化系项目计划的主要内容 参与项目的各种角色通信的范围和资源 定义了风险和风险管理技术 定义了费用和进度作为评审的依据
10、为所有参与者提供了活动途径 勾画了质量保证和变更如何管理软件技术基础西南大学计信院自动化系12.4.3 项目调度与追踪1.为软件项目定义任务集2.定义一个任务网络3.安排进度表4.进度跟踪软件技术基础西南大学计信院自动化系安排进度表在制定项目进度安排时,主要依据是合同书和项目计划。通常的做法是把复杂的整体项目分解成许多可以准确描述、度量、可独立操作的相对简单的任务,然后安排这些任务的执行顺序,确定每个任务的完成期限、开始时间和结束时间。开始需要考虑的主要问题是:项目可以支配的人力及资源 项目的关键路径 生存周期各个阶段工作量的划分 工程进展如何度量 各个阶段任务完成标志 如何自然过渡到下一阶段
11、的任务等。软件技术基础西南大学计信院自动化系进度跟踪 项目追踪实施由项目管理人员负责。他们必须按进度安排表追踪检查每一个任务。如果任务实际完成日期滞后于进度安排,则管理人员可以行使职权范围内的权力采取各种补救措施以减少进度误期所造成的影响。包括对资源重新定向,对任务重新安排,甚至可以修改交付日期以调整已经暴露的问题。软件技术基础西南大学计信院自动化系1.过程分解2.时限图3.项目追踪 工作任务第一周第二周 第三周 第四周 第五周1.1.1 与客户讨论需要 确定需要和产品约束 建立产品的陈述 里程碑:产品陈述的意义1.1.2 定义输出/控制/输 入 确定键盘功能范围 确定声音功能范围 确定交互模
12、式范围 其他工作产品的作用 写O CI文 档 正式评审:与客户评审O C I 按要求修订O C I 按要求修订O C I 里程碑:O C I 的定 义1.1.3 定义功能与行为 键盘功能 声音输入功能 描述交互模式 描述拼写/文法检查 描述其他产品功能 正式审评:与客户评审O C I 按要求修订O C I 里程碑:O C I 的完 整 意 义1.1.4 划出软件元件 里程碑:软件元件的意义 .软件技术基础西南大学计信院自动化系 软件配置管理是遍及软件生存期的伞形活动,它管理软件配置项以保证更改能正确实现。“协调软件开发使得混乱减小到最小的技术叫做配置管理。配置管理是一种标识、组织和控制修改的技
13、术,目的是使错误达到最小并最有效地提高生产率。”12.5 软件配置管理(SCM)软件技术基础西南大学计信院自动化系 软件工程过程各项活动的产物(程序、文档、数据)经评审或审批后都称之为软件配置项(SCI),第一次交付的软件配置项构成基线(Base line)配置项。1.软件配置项和基线软件技术基础西南大学计信院自动化系基线系统功能说明。系统模型,项目计划,进度安排;软件需求规格说明。图形分析模型、过程、原型、数学规格说明;设计规格说明。数据设计、体系结构设计、界面设计、对象的描述等;验收规格说明;测试规格说明。测试计划、测试用例、测试预期结果、测试记录等;数据库描述。数据模式、记录结构、数据项
14、描述;模块规格说明。模块功能、模块算法、模块接口等描述;运行系统。模块代码、链接模块、数据库、支持及工具程序等;用户文档。安装说明、操作说明、用户手册等;培训计划;维护文档。故障报告、维护要求、更改记录等;项目采用的有关标准和规程。软件技术基础西南大学计信院自动化系软件工程任务正式技术评审SCISCISCI配置管理控制仓储库SCISCIcheck-incheck-out储存的 抽取的 审批的 修改的软件技术基础西南大学计信院自动化系2.配置管理的任务软件配置管理(SCM)的主要任务是每当有了更改,与其相关的软件配置项均应得到正确处理,使新版本软件无内部冲突。标识软件配置项 管理配置项的各种版本
15、 审计每一个项目产物,保证变更控制 每当有了改变则按既定的规程修改并刷新软件版本;向有关人员发出配置状态报告。标识、审计、版本控制、变更控制、报告这五项工作目前已开发出许多自动工具可以自动完成软件技术基础西南大学计信院自动化系12.6 软件开发环境与技术基础设施 程序(软件)的开发、运行都是在支持软件的基础上作出的。这些支持软件的总和我们称之为软件开发环境(Environment)早期的环境只有最必要的软件工具:语言的编译器、连接器、加载和运行工具、排错(debugging)工具,终端显示和编辑工具。我们称最小环境工具集。软件技术基础西南大学计信院自动化系1.CASE工具概述 70年代中期,软
16、件工程师迫于软件危机的压力,提出了计算机辅助软件工程(CASE)的设想,开发出一系列工具尽量使软件过程的各项活动自动化、半自动化,即利用软件开发软件。信息工程工具、过程模型和管理工具、项目计划工具、风险分析工具、项目管理工具、需求追踪工具、度量和管理工具、文档工具、系统软件工具、质量保证工具、数据库管理工具、软件配置管理工具、分析和设计工具等等。软件技术基础西南大学计信院自动化系2.集成的CASE工具 工具日益增多,单点式使用工具很不方便,使用者要逐个将工具调入,使用后其生成的产物需要逐个保管,一个工具要用到另一工具的输出,其格式不对就无法用,消除或修改一个名字,则各工具产物中所有相同的名字都要逐个修改。这就在客观上产生了集成的要求。(1)集成的需求(2)集成环境的结构软件技术基础西南大学计信院自动化系集成的CASE工具CASE工具集成框架可移植理论O.S硬件平台用户界面层界面工具箱表示协议工具管理设施CASE工具对象管理层集成设施配置管理设施共享仓储库存CASE数据库访问控制功能集成框架的体系结集成框架的体系结构构软件技术基础西南大学计信院自动化系3.技术基础设施 基础设施是位于操作系统平台上的软件,把应用系统中通用的、常用的抽取出来做成中间件,简化编程,凡是能简化编程负担的设施都叫技术基础设施。