系统分析作业1

本文深入探讨了软件工程的基本概念,包括软件工程的定义、软件危机、COCOMO模型等,并介绍了软件生命周期的不同阶段。此外,还解析了CMMI的五个成熟度级别以及PSP个人软件过程的各项指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简答题

1. 软件工程的定义

Software engineering is

(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software.

(2) the study of approaches as in (1).

2. 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
  • software crisis:软件危机指的是随着计算机性能的急剧上升以及待解决问题的复杂度的增加,在规定时间内编写出可用并且高效的软件出现了很大的困难。随着软件复杂性的增加,现有的方法是不足以应对,导致许多软件出现了问题。

  • COCOMO, 英文全称为 constructive cost model, 中文为构造性成本模型。它是一种精确、易于使用的,基于模型的成本估算方法。

    在 COCOMO 模型中, 工作量调整因子 (Effort Adjustment Factor, EAF) 代表多个参数的综合效果, 这些参数使得项目可以特征化和根据 COCOMO 数据库中的项目规格化. 每个参数可以定位为“很低”, “低”, “正常”, “高”, “很高”. 每个参数都作为乘数, 其值通常在 0.5 到 1.5 之间, 这些参数的乘积作为成本方程中的系数.COCOMO由三个逐渐详细和准确的模式组成:

    • 基本模型 (Basic Model). 是一个静态单变量模型,它用一个以已估算出来的源代码行数 (LOC) 为自变量的函数来计算软件开发工作量。

    • 中间模型 (Intermediate Model). 则在用 LOC 为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。

    • 详细模型 (Detailed Model) 包括中间 COCOMO 模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。

3. 软件生命周期

计算机软件有一个孕育、诞生、成长、成熟、衰亡的生 存过程,即软件的生命周期。软件生命周期被划分为若干阶段 ,每个阶段有明确的任务,从而使规模、结构和管理复 杂的软件开发过程得到适当的控制和管理。软件生命周期可分为6个阶段:

  • 可行性分析与计划阶段

    • 确定软件开发的总体目标,给出功能、性能、可靠性以及接口等方面的要求,进行完成可行性分析。

    • 估计可利用的资源 (硬件、软件、人力等)、成本、效益、开发进度,进行投资-收益分析,制订开发计划。

    • 提交可行性分析报告、开发计划等文档。

  • 需求分析阶段

    • 分析用户提出的要求,给出需求详细定义,确定软件系统的各项功能、性能需求和设计约束,确定对文档编制的要求。

    • 提交软件需求说明、软件规格说明、数据要求说明等文档和初步的用户手册

  • 设计阶段

    • 概要设计:把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应

    • 详细设计:对每个模块所要完成的工作进行具体的描述,提供源程序编写的直接依据

    • 提交结构设计说明、详细设计说明和测试计划初稿等文档

  • 实现阶段

    • 完成源程序的编码、编译 (或汇编) 和排错调试,得到没有语法错误的程序清单。程序结构良好、清晰易读,且与设计相一致

    • 编写进度日报、周报和月报 (取决于项目的重要性和规模)

    • 提交用户手册、操作手册等面向用户的文档的编写工作

    • 编制测试计划

  • 测试阶段

    • 全面测试目标软件系统,并检查审阅已编制的文档,提交测试分析报告。逐项评价所生产的程序、文档以及开发工作本身,提交项目开发总结报告

    • 在整个开发过程中 (即前五个阶段中),开发集体需要按月编写开发进度月报

  • 运行与维护阶段

    • 软件提交给用户后,在运行使用中得到持续维护,根据用户新提出的需求进行必要而且可能的扩充、删改、更新和升级

    • 软件维护包括改正性维护 (发现错误)、适应性维护 (适应运行环 境变化) 和完善性维护 (增强功能)

4. 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
  • 软件需求

  • 软件设计

  • 软件工程管理

  • 软件工程过程

  • 软件质量

5. 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
  • Level 1:初始级。软件过程是无序甚至是混乱的,自发生产模式

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

  • Level 3:已定义级。已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。

  • Level 4:量化管理级。分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。

  • Level 5:优化管理级。过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

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

CMMI即能力成熟度模型集成。它的主要思想是:集中精力去建立有效的软件工程的基础结构,再不断进行管理的实践和过程的改进,就可以克服开发过程中的困难。CMMI 有两种表述方式:连续式与阶段式,分别从不同的角度来阐述 CMMI。CMMI认为在模型中,所有软件组织的软件能力成熟度划分为 5 个等级。等级越高,成熟度越高,高成熟度等级代表比较强的综合软件能力。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。

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

1. 阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
2. 按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据?
任务技能要求
计划
估计这个任务需要多少时间需要正确分析出项目需求,清楚的知道开发所需要用到的技术以及技术的时间需求。要有一定的软件开发经验
开发
分析需求要清楚的知道项目的目的、计划
生成设计文档要有一定的经验,要了解项目所用到的技术
设计复审 (和同事审核设计文档)
代码规范 (为目前的开发制定合适的规范)了解主流代码规范
具体设计有一定的框架设计能力
具体编码掌握具体要求的技能
代码复审细心调试的能力
测试(包括自我测试,修改代码,提交修改)熟悉测试工具和测试规范
测试报告熟悉测试工具和测试规范,撰写报告能力
计算工作量细心
事后总结并提出过程改进计划总结能力强

如何统计每项数据?
以天数为单位统计,最后归一化为百分比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值