个体软件过程与编码规范.ppt
《个体软件过程与编码规范.ppt》由会员分享,可在线阅读,更多相关《个体软件过程与编码规范.ppt(161页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、个体软件过程在本次课里,你将学到:在本次课里,你将学到: 软件的发展软件的发展 软件危机软件危机 软件工程软件工程 软件工程师软件工程师What Will I Learn ?第1章 软件 我们做为未来的软件工程师,我们生产的产品是软件,在开发我们做为未来的软件工程师,我们生产的产品是软件,在开发软件时会不可避免地遇到软件危机,所以,掌握软件的概念,了解软件时会不可避免地遇到软件危机,所以,掌握软件的概念,了解软件危机及解决方法,了解软件工程师的任务,是必须的。软件危机及解决方法,了解软件工程师的任务,是必须的。Why Learn It?第1章 软件 1、软件的发展20世纪世纪4050年代,软件
2、开发以机器能识别的机器码编程。年代,软件开发以机器能识别的机器码编程。20世纪世纪60年代,软件开发有高级程序设计语言。年代,软件开发有高级程序设计语言。20世纪世纪70年代,软件开发以面向过程的结构化程序设计为主。年代,软件开发以面向过程的结构化程序设计为主。20世纪世纪80年代,软件开发向面向对象方向发展。年代,软件开发向面向对象方向发展。20世纪世纪90年代,软件开发向联网发展。年代,软件开发向联网发展。 Tell me / Show Me第1章 软件什么是软件危机?什么是软件危机?软件危机是指软件开发和维护过程中所遇到的一系列严重问题。软件危机是指软件开发和维护过程中所遇到的一系列严重
3、问题。危机的原因:危机的原因:软件开发的速度赶不上软件需求的速度。软件开发的速度赶不上软件需求的速度。软件危机的解决:软件危机的解决:用软件工程的方法将软件开发过程规范化。用软件工程的方法将软件开发过程规范化。 Tell me / Show Me 2、软件危机第1章 软件软件工程的定义软件工程的定义采用工程上成熟的概念、原理、技术、方法来开发和维护以用管理采用工程上成熟的概念、原理、技术、方法来开发和维护以用管理软件。软件。软件工程的目标:软件工程的目标:低开发成本、满足功能要求、好的性能、低维护费用、及时交付使低开发成本、满足功能要求、好的性能、低维护费用、及时交付使用。用。 3、软件工程第
4、1章 软件 Tell me / Show Me软件工程的原则:软件工程的原则:抽象抽象模块化模块化信息封装信息封装一致性一致性完备性完备性可验证性可验证性 3、软件工程第1章 软件 Tell me / Show Me软件工程师的任务软件工程师的任务制定工作计划制定工作计划按照此计划进行工作按照此计划进行工作尽最大努力生产出高质量的产品尽最大努力生产出高质量的产品高质量工作的重要性:高质量工作的重要性:任何一点细小的错误都可能导致软件的严重问题。任何一点细小的错误都可能导致软件的严重问题。 4、软件工程师第1章 软件 Tell me / Show Me个体软件过程个体软件过程指导个人按规范的软件
5、开发过程进行软件开发。指导个人按规范的软件开发过程进行软件开发。与个体软件过程(与个体软件过程(PSP)相关的有对群体软件过程开发过程进行规范)相关的有对群体软件过程开发过程进行规范的(的(TSP)、对企业软件开发过程进行规范的)、对企业软件开发过程进行规范的CMM。 4、软件工程师第1章 软件 Tell me / Show Me阅读有关软件工程方面的文章,网站。阅读有关软件工程方面的文章,网站。讨论软件工程师的任务,高质量工作的重要性,软件工程对软件危机讨论软件工程师的任务,高质量工作的重要性,软件工程对软件危机的作用。的作用。第1章 软件Try it在本次课里,你将学到:在本次课里,你将学
6、到: 软件开发的过程思维软件开发的过程思维 软件开发过程软件开发过程 过程的改进过程的改进第2章 过程What Will I Learn ?规范软件开发过程是规范软件开发的基础规范软件开发过程是规范软件开发的基础 Why Learn It?第2章 过程过程的概念:过程的概念: 过程是指人们解决一个任务时,采取的行动步骤,步骤应遵过程是指人们解决一个任务时,采取的行动步骤,步骤应遵循的规则,步骤所使用资源的总和。循的规则,步骤所使用资源的总和。过程思维:过程思维: 以过程为中心以过程为中心传统思维:传统思维: 以任务为中心以任务为中心第2章 过程 1、过程思维 Tell me / Show Me
7、过程的过程的3个方面个方面过程应该被定义过程应该被定义关于过程的知识传授给需要执行的每一个人,即过程的学习。关于过程的知识传授给需要执行的每一个人,即过程的学习。过程的监控与强制。过程的监控与强制。第2章 过程2、过程 Tell me / Show Me以过程为中心的好处以过程为中心的好处协调组织的活动,为达到共同的目标而努力。协调组织的活动,为达到共同的目标而努力。为每个人提供度量的基准。为每个人提供度量的基准。增强过程的一致性和可重复性。增强过程的一致性和可重复性。第2章 过程2、过程 Tell me / Show Me成熟的过程。成熟的过程。过程可计划,过程稳定,过程产生的结果一致,过程
8、可预测。过程可计划,过程稳定,过程产生的结果一致,过程可预测。不成熟的过程不成熟的过程与前面正好相反。与前面正好相反。第2章 过程2、过程 Tell me / Show Me进行过程改进的原因进行过程改进的原因只有进行过程改进才能得到不同的产品只有进行过程改进才能得到不同的产品进行过程改进的步骤进行过程改进的步骤定义质量目标、了解过程、对过程进行调整、应用调整后的过程、测定义质量目标、了解过程、对过程进行调整、应用调整后的过程、测量结果、将结果与目标进行比较、循环的持续改进。量结果、将结果与目标进行比较、循环的持续改进。第2章 过程3、过程改进 Tell me / Show Me对照过程的思想
9、,测量自己学习的过程并加以改进。对照过程的思想,测量自己学习的过程并加以改进。第2章 过程Try it在本次课里,你将学到:在本次课里,你将学到: 度量软件过程度量软件过程 度量计划度量计划 采集数据采集数据 分析过程分析过程第3章 度量软件过程What Will I Learn ?规范软件开发过程是提高软件质量的基础规范软件开发过程是提高软件质量的基础 第3章 度量软件过程Why Learn It?统计过程:统计过程: 统计过程是过程管理的基础。统计过程是过程管理的基础。过程管理的任务:过程管理的任务: 定义过程、度量过程、控制过程、改进过程。定义过程、度量过程、控制过程、改进过程。 第3章
10、 度量软件过程 1、度量过程 Tell me / Show Me确定问题确定问题选择和定义度量的属性选择和定义度量的属性将度量与过程集成将度量与过程集成诊断现有的度量诊断现有的度量度量集成的活动度量集成的活动第3章 度量软件过程 2、度量计划 Tell me / Show Me采集方法采集方法评估采集评估采集保存数据保存数据理解数据理解数据第3章 度量软件过程 3、采集数据 Tell me / Show Me控制图的构成控制图的构成变量数据图控制图的比较变量数据图控制图的比较XmR图图软件编写过程是一个复杂的过程,常有不确定因素需要去研究与解决。软件编写过程是一个复杂的过程,常有不确定因素需要
11、去研究与解决。第3章 度量软件过程 4、过程分析 Tell me / Show Me通过示例说明如何分析过程行为。通过示例说明如何分析过程行为。第3章 度量软件过程Try it在本次课里,你将学到:在本次课里,你将学到: 软件开发过程软件开发过程 过程脚本过程脚本 基本概念基本概念第4章 软件开发过程What Will I Learn ? 一个恰当的软件开发过程对控制一个项目的进度,成本和质量有一个恰当的软件开发过程对控制一个项目的进度,成本和质量有深刻的影响。所以,定义一个合适的软件开发过程是一个组织所有承深刻的影响。所以,定义一个合适的软件开发过程是一个组织所有承担的重要任务之一。担的重要
12、任务之一。 第4章 软件开发过程Why Learn It?1、软件开发过程软件开发过程:软件开发过程: 开发过程中各个步骤的顺序构成软件过程模型。常用的过程模型开发过程中各个步骤的顺序构成软件过程模型。常用的过程模型有:编码修复模型、瀑布模型、增量模型、迭代模型。有:编码修复模型、瀑布模型、增量模型、迭代模型。确定过程应包括的活动:确定过程应包括的活动: 需求、目标、质量计划、规格说明、高层高设计、出版物内容计需求、目标、质量计划、规格说明、高层高设计、出版物内容计划、测试计划、低层设计、编码、单元和功能测试、构件测试、出版划、测试计划、低层设计、编码、单元和功能测试、构件测试、出版物初稿、系
13、统测试、出版物修订稿、回归测试、打包、交付使用。物初稿、系统测试、出版物修订稿、回归测试、打包、交付使用。 第4章 软件开发过程 Tell me / Show Me确定活动间的关系确定活动间的关系将每项活动的有用信息文档化将每项活动的有用信息文档化剪载过程文档化剪载过程文档化改善过程文档化改善过程文档化1、软件开发过程第4章 软件开发过程 Tell me / Show MePSP过程的各个阶段:过程的各个阶段:计划阶段计划阶段设计阶段设计阶段编码阶段编码阶段编译阶段编译阶段测试阶段测试阶段后置处理阶段后置处理阶段2、过程脚本第4章 软件开发过程 Tell me / Show Me一个产品是指为
14、合作者、雇主或客户所生产的物品。一个产品是指为合作者、雇主或客户所生产的物品。一个项目通常生产一种产品。一个项目通常生产一种产品。一个任务是已定义的一部分工作。一个任务是已定义的一部分工作。一个过程定义完成项目的方法。一个过程定义完成项目的方法。过程有许多阶段或步骤,如计划、开发和测试。过程有许多阶段或步骤,如计划、开发和测试。一个过程阶段可以由许多任务或活动组成。一个过程阶段可以由许多任务或活动组成。一个过程可以包括一个或多个阶段,一个阶段可以包括一个或多个任一个过程可以包括一个或多个阶段,一个阶段可以包括一个或多个任务或活动。务或活动。计划描述一个特定的项目的完成方式。计划描述一个特定的项
15、目的完成方式。一个作业是你为一个项目或一个任务所做的事情。一个作业是你为一个项目或一个任务所做的事情。3、基本概念第4章 软件开发过程 Tell me / Show Me讨论并总结软件开发过程有哪些步骤及步骤间的顺序关系。讨论并总结软件开发过程有哪些步骤及步骤间的顺序关系。第4章 软件开发过程Try it在本次课里,你将学到:在本次课里,你将学到: 时间管理的重要性时间管理的重要性 记录时间的使用情况记录时间的使用情况 时间记录日志时间记录日志 阶段计划阶段计划 产品计划产品计划第5章 时间管理What Will I Learn ?管理时间是按期完成任务的基本前提。管理时间是按期完成任务的基本
16、前提。时间是可以管理的。时间是可以管理的。管理时间的技巧是可以通过学习获得。管理时间的技巧是可以通过学习获得。 第5章 时间管理Why Learn It?时间管理:时间管理: 指对时间进行规划、安排使之得到合理利用。指对时间进行规划、安排使之得到合理利用。时间管理的重要性:时间管理的重要性: 对时间进行管理可提高生产率。对时间进行管理可提高生产率。 对时间进行管理可使进度可控。对时间进行管理可使进度可控。 第5章 时间管理 1、时间管理的重要性 Tell me / Show Me了解时间的使用情况了解时间的使用情况使用工程记事本使用工程记事本时间记录日志时间记录日志在工程记事本中登记时间记录日
17、志。在工程记事本中登记时间记录日志。第5章 时间管理 2、记录时间的使用情况 Tell me / Show Me日期开始时间结束时间中断时间净时间活动备注C U9/99:009:5050听课讲座12:401:1838编程序作业12:453:531058编程序作业16:257:4580读课本第1章和第2章X 2表表3.2时间记录日志的示例学生 学生Y 日期 9/9/96 教员 先生Z 课程 CS1 时间记录日志的使用见难点解析中的动画第5章 时间管理 3、使用时间记录日志有两种计划:有两种计划: 阶段计划、产品计划阶段计划、产品计划阶段计划:阶段计划: 一种基于时间段的活动计划。一种基于时间段的
18、活动计划。 时间记录日志、周活动总结表为阶段计划采集信息。时间记录日志、周活动总结表为阶段计划采集信息。产品计划:产品计划: 一种基于任务的活动计划。一种基于任务的活动计划。 作业编号日志为产品计划采集信息。作业编号日志为产品计划采集信息。第5章 时间管理 4、阶段计划 Tell me / Show Me时间记录日志的使用方法、时间记录日志的使用方法、周活动总结表的使用方法、周活动总结表的使用方法、作业编号日志的使用方法等作业编号日志的使用方法等均见均见难点解析难点解析动画动画第5章 时间管理 4、阶段计划 Tell me / Show Me为正在进行和以后进行的程序开发过程建立时间记录日志。
19、为正在进行和以后进行的程序开发过程建立时间记录日志。为过去的为过去的2周和以后周和以后3周建立周活动总结表。周建立周活动总结表。为刚刚编写的为刚刚编写的3个程序和以后编写的程序建立作业编号日志。个程序和以后编写的程序建立作业编号日志。第5章 时间管理Try it本次课本次课, ,我们将学到我们将学到: :了解程序的规模了解程序的规模了解使用规模测量的注意事项了解使用规模测量的注意事项测量程序的规模测量程序的规模填写程序规模估计表填写程序规模估计表在作业编号日志中使用规模测量的方法在作业编号日志中使用规模测量的方法第6章 程序的规模What Will I Learn ?为了更好对任务进行管理,我
20、们需要尽可能准确地估计任务所需花为了更好对任务进行管理,我们需要尽可能准确地估计任务所需花费的时间。由于各种任务的规模的复杂程度的差异很大,所以掌握费的时间。由于各种任务的规模的复杂程度的差异很大,所以掌握一种比较它们规模的方法是很有帮助的。一种比较它们规模的方法是很有帮助的。第6章 程序的规模Why Learn It?表 学生章阅读时间表学生学生日期教员先生课程章阅读时间()页数分钟页&280204.00328122.334118167.38571174.18640123.33总计33777平均56.1712.834.38有了阅读前五章所有有了阅读前五章所有时间的数据,就可以时间的数据,就可
21、以估计出阅读第章要估计出阅读第章要用的时间。考虑每页用的时间。考虑每页用多少分钟而不是每用多少分钟而不是每章用多少分钟来测量章用多少分钟来测量阅读每章所用的时间。阅读每章所用的时间。 见右表,学生见右表,学生Y Y章阅读章阅读时间表。时间表。平均速率=(80+28+118+71+40)/(20+12+16+17+12)=337/77=4.38MIN/页第6章 程序的规模 Tell me / Show Me虽然这种规模测量方法看起来很简单,但是其中确实存在一些虽然这种规模测量方法看起来很简单,但是其中确实存在一些复杂的因素。复杂的因素。首先,有些文档读起来要比其它的文档困难得多。这意味着应首先,
22、有些文档读起来要比其它的文档困难得多。这意味着应该考虑工作所涉及的类型该考虑工作所涉及的类型, ,而不只是它的规模而不只是它的规模. .另外,阅读时间会随着阅读目的和阅读次数发生变化。另外,阅读时间会随着阅读目的和阅读次数发生变化。对程序开发计划,也存在同样的问题。应该为不同类型的作业对程序开发计划,也存在同样的问题。应该为不同类型的作业按其规模和时间分别记录它们的数据。按其规模和时间分别记录它们的数据。第6章 程序的规模 Tell me / Show Me程序规模的测量程序规模的测量 基于程序的规模来估计基于程序的规模来估计编写某个程序所用的时编写某个程序所用的时间间, ,是个好方法。是个好
23、方法。第6章 程序的规模 Tell me / Show Me程序规模的测量程序规模的测量测量程序规模的方法是统计测量程序规模的方法是统计源程序的文本行数(源程序的文本行数(LOC)LOC)。约定约定LOCLOC时,约定不统计空时,约定不统计空行和注释行。行和注释行。例例1 1程序段有程序段有5LOC,5LOC,例例2 2使用使用更紧凑的格式例更紧凑的格式例1 1,只有,只有4LOC4LOC。为了确保规模统计的一致,为了确保规模统计的一致,建议采用标准的编程格式。建议采用标准的编程格式。第6章 程序的规模 Tell me / Show Me其他的规模测量方法其他的规模测量方法工业化的软件开发通常
24、包含文档,以页为单位进行测量。工业化的软件开发通常包含文档,以页为单位进行测量。不适合用代码行统计的产品类型的示例有菜单、文件、报告或屏幕数不适合用代码行统计的产品类型的示例有菜单、文件、报告或屏幕数量,一般使用单元和平均值进行统计。量,一般使用单元和平均值进行统计。约定只统计程序员自己编写的代码行,不统计由程序开发辅助工具生约定只统计程序员自己编写的代码行,不统计由程序开发辅助工具生成的代码行。成的代码行。无论使用何种测量方法,主要目的是为了估计开发的工作量;对于花无论使用何种测量方法,主要目的是为了估计开发的工作量;对于花费时间较多的产品,应该用成比例增加的规模测量方法。费时间较多的产品,
25、应该用成比例增加的规模测量方法。第6章 程序的规模 Tell me / Show Me程序规模估计表程序规模估计表通过查看表中的数据,考虑已知相关要开发程序的消息,能够判断出通过查看表中的数据,考虑已知相关要开发程序的消息,能够判断出新程序处于表中的规模等级,有助于估算新程序的规模范围。新程序处于表中的规模等级,有助于估算新程序的规模范围。第6章 程序的规模 Tell me / Show Me较大规模的估算较大规模的估算1.1.建立一个历史记录,把以前编写的各个元素及它们各自所包含的代码建立一个历史记录,把以前编写的各个元素及它们各自所包含的代码行的相关数据收集在一起。行的相关数据收集在一起。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个体 软件 过程 编码 规范
限制150内