系统分析与设计Lesson1

作业

1.简单题

  • 软件工程的定义

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

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

    Software crisis is a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time. The software crisis was due to the rapid increases in computer power and the complexity of the problems that could not be tackled. With the increase in the complexity of the software, many software problems arose because existing methods were insufficient. —— WIKI

    软件危机:由于计算机技术和应用发展迅速,整个社会对计算机应用的需求越来越大,知识更新周期加快,软件开发人员经常处在变化之中,不仅需要适应硬件更新的变化,而且还要涉及日益扩大的应用领域问题研究;但软件的生成却还沿用“手工作坊”的生产方式,人工编程生产,生产效率不够高,生产能力极其低下,从而在计算机软件的开发和维护过程中会遇到一系列严重问题,这些问题统称软件危机。

    构造性成本模型(COCOMO,英文全称为Constructive Cost Model)是由巴里·勃姆(Barry Boehm)提出的一种软件成本估算方法。这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。——WIKI

    COCOMO模型:结构性成本模型。模型按其详细程度可以分为三级:基本COCOMO模型,中间COCOMO模型,详细COCOMO模型。其中基本COCOMO模型是是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。中级COCOMO模型在基本COCOMO模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。详细COCOMO模型包括中间COCOMO模型的所有特性,但更进一步考虑了软件工程中每一步骤(如分析、设计)的影响。

  • 软件生命周期。

    Software Development Life Cycle,SDLC) 称为软件生存周期,是软件的产生直到报废的生命周期。周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。

    软件生命周期的概念

    • 计算机软件有一个孕育、诞生、成长、成熟、衰亡的生
      存过程,即软件的生命周期(也称软件开发生命周期SDLC
      或软件开发过程)。软件生存周期被划分为若干阶段,每
      个阶段有明确的任务,从而使规模、结构和管理复杂的
      软件开发过程得到适当的控制和管理。
    • 软件生存周期包括可行性分析与开发计划、需求分析、
      设计(概要设计和详细设计)、编码实现、测试、运行与
      维护等活动,将这些活动以适当的方式分配到不同的阶
      段去完成。
    • GB/T 8567‐2006:《计算机软件文档编制规范》
      —— 蔡老师PPT
  • 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?

    • 软件需求 Software Requirements
    • 软件设计 Software Design
    • 软件构造 Software Construction
    • 软件工程工具和方法 Software Engineering Tools and Methods
  • 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

    • Level 1 - initial 无序,自发的生产模式。
    • Level 2 - Managed 有基本管理程序,能完成任务的生产模式。
    • Level 3 - Defined 项目流程制度化,能实现持续生产和模式复制的生产模式。
    • Level 4 - Quantitatively Managed 定量精准管理,能把控产品性能和生产流程的生产模式。
    • Level 5 - Optimizing 优化管理,能持续更新和改善流程的生产模式。
  • 用自己语言简述 SWEBok 或 CMMI (约200字)

    CMMI(软件能力成熟度集成模型集成)是把现在所有现存实施的与即将被发展出来的各种能力成熟度模型,集成到一个框架中去。
    CMMI的5个组织成熟等级为(1)初始级、(2)已管理级、(3)已定义级、(4)量化管理级、(5)优化管理级
    CMMI的目标是为提高组织过程和管理产品开发、发布和维护的能力提供保障。帮助组织客观评价自身能力成熟度和过程域能力,为过程改进建立优先级以及执行过程改进。
    CMMI的过程域定义了每个成熟度等级应该达到的水平,没达到定义水平,则不通过该级别。
    软件企业在进行CMMI认证之前应该先对自身企业有所评估,因为CMMI共有五个等级,只有明确自身所处环境才能分辨自身企业应该做哪个等级的CMMI认证,CMMI认证级别在对软件企业能力的整体评估中有很大的借鉴作用。

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

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

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

    • 自我管理与规划的能力
    • 表达和交流的能力
    • 理解能力,要能理解需求,分析需求
    • 编程测试的能力
    • 与人合作的能力
    • 把任务按质按量完成的执行力
    • 总结能力,对时间花费、工作量进行计算,事后进行总结,反思并提出改进方案
  • 统计方式

    • 拿到任务后,开始将任务分成多个阶段,确定每个阶段的工作任务和结束指标
    • 每次完成阶段的工作任务后,对自己花费的时间计时记录下来,利用代码统计工具对完成的代码进行统计
    • 项目完成后对记录的元数据进行分析与整合, 得到可用于进行项目开发分析的实际数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值