系分作业1

作业1

1、简单题

软件工程的定义

1993年,电气电子工程师学会(IEEE)给出了一个更加综合的定义:”将系统化的、规范的、可度量的方法用于软件的开发、运行和维护的过程,即将工程化应用于软件开发中”。此后,IEEE多次给出软件工程的定义。

阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。

软件危机(英语:Software Crisis)是早期计算机科学的一个术语,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。软件开发是一项高难度、高风险的活动,由于它的高失败率,故有所谓“软件危机”之说。软件危机的本源是复杂、期望和改变。这个术语用来描述正急遽增加之电脑的力量带来的冲击和可能要处理的问题的复杂性。从本质上来说,它谈到了写出正确、可理解、可验证的计算机程序的困难。

构造性成本模型(COCOMO,英文全称为Constructive Cost Model)是由巴里·勃姆(Barry Boehm)提出的一种软件成本估算方法。这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。
构造性成本模型由三个不断深入和详细的层次组成。第一层,“基本COCOMO”,适用对软件开发进行快速、早期地对重要的方面进行粗略的成本估计,但因其缺少不同的项目属性(“成本驱动者”)的因素,所以准确性有一定的局限性。“中级COCOMO”中考虑进了这些成本驱动者。“详细COCOMO”加入了对不同软件开发阶段影响的考量。

软件生命周期

软件生命周期是指:

  • 软件的产生直到成熟的全部过程。
  • 是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考。

按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?

软件需求,软件设计,软件构造。

解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

  1. 初始级(Initial):软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。

  2. 可重复级/受管理级(Repeatable):建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。

  3. 已定义级(Defined):已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
  4. 量化管理级(Managed): 分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
  5. 优化管理级(Optimizing):过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

用自己语言简述 SWEBok 或 CMMI (约200字)

CMMI是一套对企业或组织的软件建造能力的评价体系,可以被用于引导横贯一个项目、一个部门或一个完整的组织的过程改进,识别需要改进的地方并做出有效的措施以提升。任何一个被评价对象将在CMMI中得到一个成熟度评价等级,每个等级都有几个过程区域组成,这几个过程域共同形成一种软件过程能力。每个过程域,都有一些特殊目标和通用目标,通过相应的特殊实践和通用实践来实现这些目标。当一个过程域的所有特殊实践和通用实践都按要求得到实施,就能实现该过程域的目标。

2、解释 PSP 各项指标及技能要求:

阅读《现代软件工程》的 PSP: Personal Software Process 章节。按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)

一个软件工程师在接到一个任务之后,需要做的事:

  • 计划:估计这个任务需要多少时间
  • 开发
    • 分析需求
    • 生成设计文档
    • 设计复审 (和同事审核设计文档)
    • 代码规范 (为目前的开发制定合适的规范)
    • 具体设计
    • 具体编码
    • 代码复审
    • 测试(包括自我测试,修改代码,提交修改)
  • 记录时间花费
  • 测试报告
  • 计算工作量
  • 事后总结
  • 提出过程改进计划

需要的技能:

  • 技术技能
  • 职业技能包括:
    • 自我管理的能力;
    • 与人合作的能力;
    • 把任务按质按量完成的执行力.

需要统计的数据:

  • 项目规模:Line of Code
  • 花费时间,一组人所花费的时间可以用 (人数*时间) 来表示,例如某项目花费了10个人·月。
    • 可以统计某项工作修改的文档的次数,或从其建立到基本成形的耗时。
  • 质量:可以用缺陷的数量来除以项目的大小。 例如 5 bugs / KLOC, 意味着每千行程序有5个缺陷。

猜你喜欢

转载自blog.csdn.net/mukae1997/article/details/79540455
今日推荐