系统分析与设计作业(1)

1. 软件工程的定义

“The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”—IEEE Standard Glossary of Software Engineering Terminology
应用系统化、规范化、可度量的方法来开发、运行和维护软件。

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。

2. Software Crisis

“软件危机”一词产生与计算机科学早期,因为在给定时间很难写出有用且高效的计算机程序。软件危机的产生是由于计算机性能的飞速增长,以及无法解决的问题的复杂性。随着软件复杂度的提升,由于现有方法的不足,更多的软件问题也随之而来。

软件危机主要表现为以下几方面:

  • 项目超出预算
  • 项目超时
  • 软件效率低下
  • 软件质量较低
  • 软件不符合需求
  • 项目不可控制,代码难以维护
  • 软件难以交付

软件危机的主要原因是由于计算机性能的增长速度超过了编程人员的实现能力。过去的几十年里,也有一些过程和方法被提出用于改善软件质量管理,比如过程式编程、面向对象编程。然而,软件项目往往比较巨大、复杂、不明确的,而且经常涉及到一些不熟悉的方面,所以仍然被一些大的、不可预期的问题所困扰。

3. COCOMO 模型

英文全称 Constructive Cost Model,中文为构造性成本模型。是一种精确的、易于使用的,基于模型的成本估算方法,从本质上说是一种参数化的项目估算方法。
在COCOMO模型中,工作量调整因子(EAF)代表多个参数的综合效果,这些参数使得项目可以特征化和根据COCOMO数据库中的项目规格化。每个参数可以定位很低,低,正常,高,很高。每个参数都作为乘数,其值通常在0.5到1.5之间,这些参数的乘积作为成本方程的系数。
COCOMO模型按照详细程度可以分为三级:

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

4. 软件生命周期

软件的生存周期,按开发软件的规模和复杂程度,从时间上把软件开发的整个过程进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务,然后按规定顺序依次完成各阶段的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。
六个阶段:
这里写图片描述

  • 问题定义、可行性研究:软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
  • 需求分析:对软件需要实现的各个功能进行详细分析。
  • 软件设计:根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。
  • 编码:将软件设计的结果转换成计算机可运行的程序代码。
  • 软件测试:软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
  • 运行与维护:软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。

5. SWEBoK

软件工程知识体系,被划分为10个知识域:

  • 软件需求
  • 软件设计
  • 软件构造
  • 软件测试
  • 软件维护
  • 软件配置管理
  • 软件工程管理
  • 软件工程过程
  • 软件工程工具和方法
  • 软件质量

6. CMMI 的五个级别

1. 初始级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
2. 可管理级
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
3. 已定义级
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
4. 量化管理级
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
5. 优化管理级
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

7. 简述 SWEBoK 或 CMMI

随着计算机性能的高速发展,软件开发过程出现了越来越多的障碍。对于个人软件开发来说,开发成本低,维护简单。与之相比,企业开发的软件由于规模巨大且复杂程度很高,常常会出现一些难以预料的问题,这些问题的难以解决会给企业造成巨大的损失。为了帮助企业更好的管理和改进软件工程过程,增强企业的开发能力和改进能力,从而按时地、低成本地开发出高质量的软件,提出了CMMI(能力成熟度模型集成)。CMMI将企业的能力划分为五个等级,每个等级都有着相应的评价标准,对于达到一定标准的企业给予认证。它不仅仅对企业能力进行了评估,同时也为企业的改进提升提供了一个明确的方向,对软件工程的发展起到了极大的促进作用。

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

计划

  • 估计这个任务需要多少时间

开发

  • 分析需求
  • 生成设计文档
  • 设计复审(和同事审核设计文档)
  • 代码规范(为目前的开发制定合适的规范)
  • 具体设计
  • 具体编码
  • 代码复审
  • 测试(包括自我测试,修改代码,提交修改)

记录时间花费
测试报告
计算工作量
事后总结
提出过程改进计划

可以使用项目管理工具,在开发阶段自行统计数据,进行分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值