1、软件工程的定义

软件工程是将系统化、规范化、可度量的方法应用于软件的开发、运营和维护上,也就是将工程方法应用于软件上,并对这些方法的研究。

2、软件危机(software crisis)

软件危机(software crisis)是由于计算机能力的快速增长和无法解决的问题的复杂性。随着软件复杂性的增加,很多软件问题由于现有方法的不足够而产生。

软件危机的原因与硬件的整体复杂度和软件的发展过程有关,主要原因是计算机的计算能力超过了程序员有效利用这些计算能力的能力。软件危机主要表现在以下方面:

  • 项目运行超过预算、时间
  • 软件非常低效、低质量
  • 软件通常无法满足需求
  • 项目难以管理,代码难以维护
  • 软件从未交付

3、COCOMO模型

COCOMO模型(构造性成本模型)是一种精确的、易于使用的、基于模型的成本估算方法,本质上是一种参数化的项目估算方法,模型的参数是使用历史项目的数据拟合回归公式所产生的。

COCOMO模型可以分成以下三个层次:

  1. 基本COCOMO模型:将所计算的程序大小作为软件开发的工作量和成本,程序大小用估量的源代码行数来表示(SLOC, KLOC)该模型可用于软件成本的快速估计,但是它没有考虑到硬件约束、人员质量和经验、模型工具和技术的使用等方面。
  2. 中级COCOMO模型:将所计算的程序大小和“成本驱动因素”作为软件开发的工作量,其中“成本驱动因素”包括产品、硬件、人员和项目属性的客观评价。
  3. 具体COCOMO模型:合并中级模型的所有特点,并对软件工程过程的每个步骤(分析、设计等)的成本驱动因素的影响进行评估。在该模型中,整个软件被分成不同的模块,再将COCOMO模型应用于各个模块中去估量它的工作量,最后将所有的工作量相加作为整个软件的工作量。

4、软件生命周期

软件生命周期是将软件开发工作分成不同的阶段以提高设计、产品管理和项目管理的过程。大多数现代开发过程可模糊地描述成敏捷模型,其他的模型包括瀑布模型、原型模型、迭代和增量模型、螺旋模型、快速应用开发模型等。

生命周期可分成以下几个阶段:

  1. 问题的定义和规划:主要确定软件的开发目标和可行性分析;
  2. 需求分析:弄清用户对软件的全部需求,对软件所要实现的功能进行详细分析,并编写需求文档;
  3. 开发:包括软件的设计、实现和测试;
  4. 维护:包括改进性维护、适应性维护、完善性维护和预防性维护。

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

  1. 软件需求(software requirements)
  2. 软件设计(software design)
  3. 软件构建(software construction)
  4. 软件工程的模型和方法(software engineering models and methods)

6、CMMI 的五个级别

  1. 初始级:

    软件过程是无序的,混乱的,没有定义的。成功取决于个人努力,管理是反应式的。
  2. 可管理级:

    有基本的项目管理过程来跟踪费用、进度和功能特性,且制定了必要的过程纪律,能够重复早先类似应用项目取得的成功经验。
  3. 已定义级:

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

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

    过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

7、CMMI

CMMI是软件能力成熟度集成模型,通过建立有效的软件工程过程的基础结构,提供一个单一的有效的、集成化的、自动的、可扩展的框架,能够帮助企业改进对软件工程的管理,让企业能更高效地生产质量更好的软件。

CMMI提供了单一的集成化框架用于改进一个组织的各种过程,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,更为自动化、可扩展化,因而能够从总体上改进组织的质量和效率。

CMMI对于企业的价值表现为:保证软件开发的质量和进度;有利于成本控制;有助于提高软件开发者的职业素养;能够解决人员流动带来的问题;有利于提升公司和员工绩效管理水平,以持续改进效益。

8、PSP2.1 的阶段及技能要求

工作任务 技能要求
计划 熟悉开发流程,有规划能力
估计这个任务需要多少时间 对整个项目以及各个阶段有大致的时间观
开发 分析设计能力,编程能力
需求分析(包括学习新技术) 详细分析用户的需求并结合项目实际,确定最终需求的功能点
生成设计文档(设计软件的框架) 设计能力,表达能力,撰写能力
设计复审 (和同事审核设计文档) 协商能力
代码规范 (为目前的开发制定合适的规范) 掌握通用的代码规范体制
具体设计 设计能力
具体编码 编程能力
代码复审 细心,审查debug能力
测试(自我测试,修改代码,提交修改) 测试能力
报告 撰写表达能力
测试报告 撰写表达能力
计算工作量 计算能力
事后总结, 并提出过程改进计划 熟悉整个过程,创新意识,多思考多学习

系统分析与设计 homework-1的更多相关文章

  1. FPGA最小系统分析与电路设计

    <FPGA最小系统分析与电路设计> 部分节选自<FPGA应用开发入门与典型.pdf > FPGA最小系统包括:FPGA芯片.下载电路.外部时钟.复位电路和电源. 如果使用NIO ...

  2. 系统分析与设计个人作业:WordCount

    本次作业gitee地址:https://gitee.com/ackary/WordCount 一.项目简介 1.基础功能 基础功能部分主要实现的功能是统计一个程序设计语言源文件的字符数.单词数.行数, ...

  3. 文献综述十六:基于UML的中小型超市管理系统分析与设计

    一.基本信息 标题:基于UML的中小型超市管理系统分析与设计 时间:2016 出版源:Journal of Xiangnan University 文件分类:uml技术系统的研究 二.研究背景 开发一 ...

  4. 系统分析与设计lesson6

    | 分类 作业  | 1.用例建模 a. 阅读 Asg_RH 文档,绘制用例图. 按 Task1 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸 b. 选择你熟悉的定旅馆在线服务系统 ...

  5. 奖学金评分系统(系统分析与设计版与Delphi实现代码)

    一.系统规划 1.1 项目背景介绍 在奖学金评比过程中,学生综合测评是学校普遍采用的评比手段.对学生实施综合素质测评的目的在于正确评价学生的综合素质,为评奖学金提供依据,实现学生教育管理工作的标准化. ...

  6. WordCount系统分析与设计作业

    Gitee项目地址 https://gitee.com/gitdq/homework psp表 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 10 10 · ...

  7. 系统分析与设计 homework2

    1. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 降低了软件开发的复杂度,提高软件开发过程中的透明性,提高软件开发的可管理性. 为项目提供了按阶段划分的检查点. 当前一 ...

  8. 系统分析与设计结对项目——WordCount

    结对项目完成WordCount 合作者:201631062507  201631062526(学号) 代码地址:https://gitee.com/WordCountMC/WordCountTeam ...

  9. 系统分析与设计HW2

    简答题 1. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 定义了软件开发基本流程与活动. 为项目提供了按阶段划分的检查点. 当前一阶段完成后,只需关注后续阶段. 缺点: ...

随机推荐

  1. express 直接返回HTML文件

    一般情况下用的是模板引擎,如jade: res.render('detail',{ // 使用render() #http://www.expressjs.com.cn/4x/api.html#res ...

  2. canvas绘制五角星详细过程

    canvas绘制 <canvas id="straight"></canvas> <script> var canvas = document. ...

  3. day 09 课后作业

    # -*- coding: utf-8 -*-# @Time : 2018/12/28 14:25# @Author : Endless-cloud# @Site : # @File : 08 课后作 ...

  4. Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.******.seashell.bpc.query.query.service.FscBankPayCodeQueryService

    2019-03-19 16:22:14,945 WARN [main] (org.springframework.context.support.AbstractApplicationContext. ...

  5. C#-WebForm-光棒效果

    <script type="text/javascript"> //获取Repeater的每一行 var oItems = document.getElementsBy ...

  6. 【性能测试】:关于Sockets协议的脚本的开发

    一,关于Sockets协议的脚本,首先对报文的解析是一个关键, 报文的解析一般对着接口文档,弄清楚每个字段代表什么意思,如下一段报文,放在data.ws中 "\x00\x00\x01\x5C ...

  7. 最小生成树--牛客练习赛43-C

    牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 ​ 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...

  8. Mac下配置idea(Mac 10.12)

    idea应该是第二个最好用的开发工具,除了宇宙最强大的VS第一外,过来就是它,其体系中已经发布很多语言的开发工具. idea:http://bbs.feng.com/read-htm-tid-1050 ...

  9. linux mint 19安装最新社区版docker

    sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-p ...

  10. WPF 自定义ScrollViwer

    ScrollViewer自定义样式 ScrollViewer在各种列表.集合控件中广泛使用的基础组建,先看看效果图: 如上图,ScrollViewer简单来说分两部分,一个横向的滚动条,一个垂直滚动条 ...