系统分析与设计--hw1

作业

1、简单题

  • 软件工程的定义
  • 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型
  • 软件生命周期
  • 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
  • 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
  • 用自己语言简述 SWEBok 或 CMMI (约200字)


① 软件工程的定义是:(1)将系统化、规范化、可度量的 方法应用与软件的开发、运行和维护的过程, 即将工程化应用于软件中。(2)对(1)中所述方法 的研究。——IEEE[IEE93]

②软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
软件危机的表现形式为:软件开发成本日益增长;软件开发进度难以控制;用户对 “已完成” 系统不满意的现象经常发生;软件产品的质量不可靠;软件的可维护程度低 和 软件开发生产率跟不上硬件的发展和人们需求的增长等。
软件危机的根源是软件的大量需求与软件生产力效率之间的矛盾以及软件系统的复杂性与软件开发方法之间的矛盾。软件危机的产生原因主要有:用户需求不明确、缺乏正确的理论指导、软件开发规模越来越大、软件开发复杂度越来越高等。
要解决软件危机,需要正确认识计算机软件的内涵,充分认识到软件开发不是某种个体劳动的神秘技巧,而是一种 组织良好、管理严密、协同配合的工程活动,采用成熟的软件开发技术和方法,开发和使用适当的软件工具。

COCOMO模型,英文全称为constructive cost model,中文为构造性成本模型。它是一种精确、易于使用的,基于模型的成本估算方法,最早由勃姆 (Boehm) 于 1981 年提出。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本。
COCOMO模型中,考虑到开发环境的不同,软件开发项目的类型可以分为3种:
组织型(organic):相对较小、较简单的软件项目。
嵌入型(embedded):要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某种复杂的硬件设备紧密结合在一起。
半独立型(semidetached):介于上述两种软件之间。规模和复杂度都属于中等或更高。
COCOMO模型按其详细程度可以分为三级:基本COCOMO模型,中间COCOMO模型,详细COCOMO模型。
COCOMO 模型具有估算精确、易于使用的特点。通过基础COCOMO的计算可以得出每个开发者需要投入的时间,整个项目的开发时间以及需要的人数,所需要的输入是软件的大小(以代码的行数(千行)为单位,记做SLOC);但是COCOMO也存在一些很严重的缺陷,例如分析时的输入时优先的,不能处理意外的环境变换,得到的数据往往不能直接使用,需要校准,只能得到过去的情况总结,对于将来的情况无法进行校准等。

③ 计算机软件有一个孕育、诞生、成长、成熟、衰亡的生 存过程,即软件的生命周期(也称软件开发生命周期 SDLC或软件开发过程)。软件生命周期被划分为若干阶段 ,每个阶段有明确的任务,从而使规模、结构和管理复 杂的软件开发过程得到适当的控制和管理。
软件生命周期包括可行性分析与开发计划、需求分析、 设计(概要设计和详细设计)、编码实现、测试、运行与维护等活动,将这些活动以适当的方式分配到不同的阶段去完成。

④ 按照 SWEBok 的 KA 划分,本课程关注的 KA 或 知识领域有:
软件需求、软件设计、软件构建、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程模型和方法以及项目管理等。

⑤ 解释 CMMI 的五个级别。
Level 1 - Initial:无序,自发生产模式。
Level 2 - Managed:流程由不同项目决定,比较被动。
Level 3 - Defined:流程由不同组织决定,比较主动。
Level 4 - Quantitatively Managed:流程可测量且可控制。
Level 5 - Optimizing:集中在流程优化。

⑥ SWEBok,软件工程知识体系,是由多个专业团体和行业成员合作创建的一个项目,致力于促进世界范围内对软件工程的一致观点,刻画软件工程学科的内容。其关注的学科和知识领域有:
软件需求
软件设计
软件构建
软件测试
软件维护
软件配置管理
软件工程管理
软件工程过程
软件工程工具和方法
软件质量
计算机工程
计算机科学
管理
数学
项目管理
质量管理
软件人体工程学(认知人体工程学)
系统工程;
在版本3中还增加修改了这些kas:
软件工程模型和方法
软件工程专业实践
软件工程经济学
计算基础
数学基础
工程基金会
它也认识到,但没有定义这些相关学科:
计算机工程
系统工程
项目管理
质量管理
一般管理
计算机科学
数学。

CMMI,能力成熟度模型集成,是一个过程级改进培训和评估程序。许多美国国防部和美国政府的合同,特别是软件开发合同都要求这样做。CMMI可用于指导整个项目、部门或整个组织的流程改进。CMMI模型也可以用作评估组织过程成熟度的框架,其为流程定义了五个成熟度级别:初始、管理、定义、定量管理和优化。CMMI可以使用两种不同的方法进行评估:分段式和连续式,两种方式都是为了实现过程改进的最佳效益。

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

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

    :一个软件工程师在接到一个任务之后需要:
    ① 计划,估计这个任务需要多少时间;
    ② 开发,包括:分析需求、生成设计文档、设计复审 (和同事审核设计文档)、代码规范 (为目前的开发制定合适的规范)、 具体编码、代码复审和测试(包括自我测试,修改代码,提交修改);
    ③ 记录时间花费;
    ④ 测试报告;
    ⑤ 计算工作量;
    ⑥ 事后总结;
    ⑦ 提出过程改进计划。
    软件工程师需要有估计成本、分析需求、写需求文档、设计数据结构、实现代码、测试和写报告、计算工作量以及优化过程的技能。
    每项数据由具体花费的时间累积得到,由于团队中不同成员负责不同的模块,每位成员记录自己完成的模块所花费时间,算出每个成员在某模块上的累积时长占整个项目时间花费的比重,即可统计得到每项数据。

猜你喜欢

转载自blog.csdn.net/unirrrrr/article/details/79515651