文章目录

  • 一:人员组织
    • (1)必要性
    • (2)典型的组织方式
      • A:民主制程序员组
        • ①:定义
        • ②:要求
        • ③:优点
        • ④:缺点
      • B:主程序员组
        • ①:定义
        • ②:核心人员及其分工
        • ③:特点(优点)
        • ④:缺点
        • ⑤:适用性
      • C:现代程序员组
        • ①:主程序员由两个人共同担任
        • ②:制定针对公共职责范围内的事务的处理方案
        • ③:实行分组策略
        • ④:分散决定
  • 二:质量保证
    • (1)软件质量
      • A:定义
      • B:特点
      • C:软件质量因素与产品活动
        • ①:软件质量因素
        • ②:产品活动
        • ③:关系
    • (2)软件质量保证措施
      • A:措施
      • B:参加软件指令保证的人员分类
      • C:技术复查
        • ①:走查
        • ②:审查
      • D:程序正确性证明
        • ①:定义
        • ②:方法

一:人员组织

(1)必要性

  • 项目成功的关键合理的组织人员,使他们有效地分工协作共同完成开发工作
  • 项目组组织得越好,其生产率越高,而且产品质量也越好
  • 项目组具有了凝聚力,成功的可能性就大大增加了

(2)典型的组织方式

现有的软件项目组的组织方式很多,通常,组织软件开发人员的方法,取决于所承担的项目的特点、以往的组织经验以及管理者的看法和爱好,主要有3种典型的组织方式

A:民主制程序员组

①:定义

民主制程序员组中小组成员完全平等,享有充分民主,通过协商做出技术决策。即小组成员之间的通信是平行的,如果小组内有nnn个成员,则可能的通信信道有n(n−1)2\frac{n(n-1)}{2}2n(n−1)​条

②:要求

  • 小组人数不能太多(2-8名适宜):小组规模小,可以减少通信问题、容易确定小组的质量标准、用民主方式确定的标准更容易被大家遵守、组员间关系密切、能够互相学习
  • 采用非正式的组织方式:名义上有一个组长,但是他和组内其他成员完成同样的任务。在这样的小组中,由全体讨论协商决定应该完成的工作,并且根据每个人的能力和经验分配适当的任务

③:优点

  • 组员们对发现程序错误持积极的态度,有助于更快速地发现错误,提高代码质量。
  • 组员们享有充分民主,小组凝聚力高、学术空气浓厚,有利于攻克技术难关。

④:缺点

  • 没有明确的权威指导开发过程,组员间将缺乏必要的协调,最终可能导致工程失败

B:主程序员组

①:定义

主程序员组用经验多、技术好、能力强的程序员作为主程序员,同时,利用人和计算机在事务性工作方面给主程序员提供充分支持,而且所有通信都通过一两个人进行

②:核心人员及其分工

  • 主程序员:既是成功的管理人员又是经验丰富、技术好、能力强的高级程序员,负责体系结构设计和关键部分的详细设计,并且负责指导其他程序员完成详细设计和编码工作
  • 后备程序员:技术熟练而且富于经验,协助主程序员工作并且在必要时接替主程序员的工作。具体工作是设计测试方案、分析测试结果及独立于设计过程的其他工作。
  • 编程秘书:负责完成与项目有关的全部事务性工作

③:特点(优点)

  • 专业化:该组每名成员仅完成他们擅长的工作
  • 层次性:主程序员指挥组员工作,并对项目全面负责

④:缺点

  • 符合主程序员、后备程序员、编辑秘书标准的人才在现实社会中并不容易雇佣到

⑤:适用性

采用主程序员组这种组织方式的程序一般具有以下几方面的特点:

  • 软件开发人员多数比较缺乏经验
  • 程序设计过程中有许多事务性的工作
  • 多渠道通信很费时间,将降低程序员的生产率

C:现代程序员组

①:主程序员由两个人共同担任

  • 技术负责人:负责小组的技术活动,参与全部代码审查工作,并且对代码的各方面质量负责
  • 行政负责人:负责非技术性事务的管理决策。不参与代码审查,其职责是对程序员的业绩进行评价

②:制定针对公共职责范围内的事务的处理方案

③:实行分组策略

产品开发作为一个整体是在项目经理的指导下进行的,程序员向他们的组长汇报工作,而组长则向项目经理汇报工作。当产品规模更大时,可以适当增加中间管理层次

④:分散决定

在合适的地方采用分散做决定的方法,如下图所示。这样做有利于形成畅通的通信渠道,以便充分发挥每个程序员的积极性和主动性,集思广益攻克技术难关

二:质量保证

(1)软件质量

A:定义

软件质量是软件与明确地和隐含地定义的需求相一致的程度,即软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度

B:特点

  • 软件需求是度量软件质量的基础,与需求不一致就是质量不高
  • 指定的开发标准定义了指导软件开发准则,没有遵守这些准则,会导致软件质量不高
  • 软件满足明确描述的需求,但不满足隐含的需求,那么软件的质量是值得怀疑的

C:软件质量因素与产品活动

①:软件质量因素

②:产品活动

可以把产品活动(倾向)分为产品运行、产品修改和产品转移

③:关系

(2)软件质量保证措施

A:措施

  • 基于非执行的测试(复审或评审):主要用来保证在编码前各阶段产生的文档的质量
  • 基于执行的测试(软件测试):在程序编写完后进行, 保证软件质量的最后一道防线
  • 程序正确性证明:使用数学方法严格验证程序是否与对它的说明完全一致

B:参加软件指令保证的人员分类

  • 软件工程师:用先进的技术方法和度量,进行复审以及完成软件测试来保证软件质量
  • SQA小组:辅助软件工程师以获得高质量的软件产品。其从事的软件质量保证活动的主要是:计划,监督,记录,分析和报告,它通过确保软件过程的质量来保证软件产品的质量

C:技术复查

正式技术复审的优点是能较早发现软件错误,防止错误被传播到软件过程的后续阶段。包括走查审查等具体方法

①:走查

走查组: 由4~6名成员组成。成员包括负责起草文档的人、负责该文档说明的管理员、客户代表、下阶段开发组的代表、SQA小组的代表(作为组长)

要点:

  • 为了能发现重大错误,走查组成员最好是经验丰富的高级技术人员
  • 走查组成员应根据材料并列出不理解的术语和认为不正确的术语
  • 走查组组长引导该组成员走查文档,力求发现尽可能多的错误
  • 走查的时间最长不要超过2小时

方式:

  • 参与者驱动法:参与者按照事先准备好的列表,提出他们不理解的术语和认为不正确的术语。文档编写组的代表必须回答每个质疑
  • 文档驱动法(更有效):文档编写者向走查组成员仔细解释文档。走查组成员在此过程中针对事先准备好的问题或解释过程中发现的问题提出质疑

②:审查

审查组: 由4人组成,分别是组长( 既是管理人员又是技术负责人)、负责当前阶段开发工作的项目组代表、负责下一阶段开发工作的项目组代表和SQA小组的代表

步骤:

  • 综述:由负责编写文档的成员向审查组综述该文档
  • 准备:评审员仔细阅读文档
  • 审查:评审组仔细走查整个文档
  • 返工:文档的作者负责解决在审查报告中列出的所有错误及问题
  • 跟踪:组长必须确保所提出的每个问题都得到了圆满的解决

与走查对比:

  • 审查过程步数比走查多
  • 审查过程每个步骤都是正规的仔细划分错误类型,并把这些信息运用在后续阶段的文档审查中以及未来产品的审杳中

重要性:

审查是检测软件错误的一种好方法,利用审查可以在软件过程的早期阶段(修改成本低的阶段)发现并改正错误,即审查是一种经济有效的错误检测方法

D:程序正确性证明

①:定义

正确性证明的基本思想是证明程序能完成预定的功能。应提供对程序功能的严格数学说明,然后根据程序代码证明程序确实能实现它的功能说明

②:方法

  • 人工证明程序正确性:对于评价小程序可能有些价值,但在证明大型软件的正确性时,不仅工作量太大,而且在证明的过程中很容易包含错误
  • 自动系统

(软件工程复习核心重点)第十二章软件项目管理-第三节:人员组织和质量保证相关推荐

  1. (软件工程复习核心重点)第十二章软件项目管理-第二节:进度计划

    文章目录 一:相关概念 (1)任务集合 (2)项目管理者的工作 A:目标 B:方法 (3)进度安排 A:定义 B:流程 二:估算开发时间 (1)利用成本估算模型估算开发时间 (2)特殊情况 A:描述 ...

  2. (软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算

    文章目录 一:软件项目管理综述 (1)管理 (2)软件项目管理 二:估算软件规模 (1)代码行技术 A:定义 B:方法 C:优缺点 (2)功能点技术 A:定义 B:信息域特性 C:估算功能点的步骤 ① ...

  3. (软件工程复习核心重点)第五章详细设计-第五节:程序复杂度的定量度量

    文章目录 一:价值(了解) 二:McCabe方法 (1)流图 A:定义 B:把程序流程图映射为流图 C:PDL翻译为流图 (2)环形复杂度 A:定义 B:计算方法 三:Halstead方法(了解) ( ...

  4. (软件工程复习核心重点)第四章总体设计-第四节:描绘软件结构的图形工具

    文章目录 一:层次图和HIPO图 二:结构图 (1)定义 (2)符号 A:基本符号 B:特殊符号 一:层次图和HIPO图 层次图用于描绘软件的层次结构,其中一个矩形框代表一个模块,方框间的连线表示调用 ...

  5. (软件工程复习核心重点)第三章需求分析-第五节:验证软件需求

    文章目录 一:验证需求正确性的四个方面 二:验证软件需求的方法 三:用于需求分析的软件工具 (1)要求(了解) (2)PSL/PSA系统 一:验证需求正确性的四个方面 一致性:所有需求必须是一致的,任 ...

  6. (软件工程复习核心重点)第三章需求分析-第四节:其他图形工具

    文章目录 一:层次方框图 二:Warnier图 三:IPO图 一:层次方框图 用树形结构的一系列矩形框描绘数据的层次结构 优点:随着结构的逐步精细,对数据结构的描绘也越来越详细 二:Warnier图 ...

  7. (软件工程复习核心重点)第十二章软件项目管理习题

    选择题 填空题 功能点技术信息域特性有 输入项数 输出项数 查询数 主文件数 外部接口数 一个任务集合包括 一组软件工程工作任务 里程碑 可交付的产品 COCOMO2的三层模型 应用系统组成模型 早期 ...

  8. (软件工程复习核心重点)第四章总体设计-第一节:总体设计基本概念和设计过程

    文章目录 一:总体设计的概念 (1)定义 (2)主要任务 (3)步骤 (4)必要性(了解) 二:设计过程 (1)系统设计阶段 1:设想供选择的方案 2:选取合理的方案 3:推荐最佳方案 (2)结构设计 ...

  9. (软件工程复习核心重点)第十二章软件项目管理-第四节:软件配置管理和能力成熟度模型

    文章目录 一:软件配置管理 (1)相关概念 A:软件配置管理定义 B:目的 C:与维护的区别 (2)软件配置 A:软件配置项 B:基线 C:软件工具 (3)软件配置管理过程 A :标识软件配置中的对象 ...

最新文章

  1. 扩增子分析流程1. QIIME虚拟机安装配置及挂载外部目录
  2. android 组件 线程,Android UI线程和非UI线程
  3. Win10窗口侧边栏设置Win7模式
  4. oracle 表空间 用户
  5. Python强化训练笔记(二)——元组元素的命名
  6. innodb_file_per_table参数
  7. ffplay播放flv文件没有声音的解决方法
  8. 测试工程师必备技能之缺陷分析
  9. python爬虫--爬取网易云音乐评论
  10. 超全!Python 处理日期与时间的全面总结!
  11. SOCK_STREAM与SOCK_DGRAM套接口类型
  12. ORAN C平面 Section Extension 10
  13. 评论回复功能 asp.net_LR2021颜色分级功能让照片调色简单有趣好玩!最新尝鲜测试...
  14. 台式电脑键盘错乱会出现计算机模式怎么办,键盘错乱怎么修复错位(台式电脑键盘按键错乱)...
  15. 如何利用开关量信号传输装置实现工厂智能化技改?
  16. 1040 有几个PAT (25 分) -- 测试点3 测试点4
  17. 深挖数字科技与场景 详解京东数字科技三大技术能力
  18. 一个计算机专业女生的职业规划
  19. Python 猜100以内数字
  20. 肥胖与高血压有什么关系?

热门文章

  1. 揭秘!月薪30K的大牛到底看了哪些视频?【共2000G】
  2. html5是未来,开始用吧!
  3. apk android lite,APKPure Lite
  4. python visual studio pandas_pandas DataFrame索引行列的实现
  5. 关于统计学,几个简单易懂的小故事
  6. 纪念诺贝尔生理医学奖获得者 Sydney Brenner (1927-2019)
  7. java传参数的方法_java中方法的参数传递机制
  8. 第七章 递推与递归 第3课 攀天梯(ladder) --《聪明人的游戏:信息学探秘.提高篇》
  9. 【python基础】window下python安装及配置环境变量的方法教程
  10. java反射是运行时,Java反射(三)在运行时利用反射分析对象