系统分析与设计 homework-1
1、软件工程的定义
软件工程是将系统化、规范化、可度量的方法应用于软件的开发、运营和维护上,也就是将工程方法应用于软件上,并对这些方法的研究。
2、软件危机(software crisis)
软件危机(software crisis)是由于计算机能力的快速增长和无法解决的问题的复杂性。随着软件复杂性的增加,很多软件问题由于现有方法的不足够而产生。
软件危机的原因与硬件的整体复杂度和软件的发展过程有关,主要原因是计算机的计算能力超过了程序员有效利用这些计算能力的能力。软件危机主要表现在以下方面:
- 项目运行超过预算、时间
- 软件非常低效、低质量
- 软件通常无法满足需求
- 项目难以管理,代码难以维护
- 软件从未交付
3、COCOMO模型
COCOMO模型(构造性成本模型)是一种精确的、易于使用的、基于模型的成本估算方法,本质上是一种参数化的项目估算方法,模型的参数是使用历史项目的数据拟合回归公式所产生的。
COCOMO模型可以分成以下三个层次:
- 基本COCOMO模型:将所计算的程序大小作为软件开发的工作量和成本,程序大小用估量的源代码行数来表示(SLOC, KLOC)该模型可用于软件成本的快速估计,但是它没有考虑到硬件约束、人员质量和经验、模型工具和技术的使用等方面。
- 中级COCOMO模型:将所计算的程序大小和“成本驱动因素”作为软件开发的工作量,其中“成本驱动因素”包括产品、硬件、人员和项目属性的客观评价。
- 具体COCOMO模型:合并中级模型的所有特点,并对软件工程过程的每个步骤(分析、设计等)的成本驱动因素的影响进行评估。在该模型中,整个软件被分成不同的模块,再将COCOMO模型应用于各个模块中去估量它的工作量,最后将所有的工作量相加作为整个软件的工作量。
4、软件生命周期
软件生命周期是将软件开发工作分成不同的阶段以提高设计、产品管理和项目管理的过程。大多数现代开发过程可模糊地描述成敏捷模型,其他的模型包括瀑布模型、原型模型、迭代和增量模型、螺旋模型、快速应用开发模型等。
生命周期可分成以下几个阶段:
- 问题的定义和规划:主要确定软件的开发目标和可行性分析;
- 需求分析:弄清用户对软件的全部需求,对软件所要实现的功能进行详细分析,并编写需求文档;
- 开发:包括软件的设计、实现和测试;
- 维护:包括改进性维护、适应性维护、完善性维护和预防性维护。
5、按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或知识领域
- 软件需求(software requirements)
- 软件设计(software design)
- 软件构建(software construction)
- 软件工程的模型和方法(software engineering models and methods)
6、CMMI 的五个级别
- 初始级:
软件过程是无序的,混乱的,没有定义的。成功取决于个人努力,管理是反应式的。 - 可管理级:
有基本的项目管理过程来跟踪费用、进度和功能特性,且制定了必要的过程纪律,能够重复早先类似应用项目取得的成功经验。 - 已定义级:
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。 - 量化管理级:
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。 - 优化管理级:
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
7、CMMI
CMMI是软件能力成熟度集成模型,通过建立有效的软件工程过程的基础结构,提供一个单一的有效的、集成化的、自动的、可扩展的框架,能够帮助企业改进对软件工程的管理,让企业能更高效地生产质量更好的软件。
CMMI提供了单一的集成化框架用于改进一个组织的各种过程,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,更为自动化、可扩展化,因而能够从总体上改进组织的质量和效率。
CMMI对于企业的价值表现为:保证软件开发的质量和进度;有利于成本控制;有助于提高软件开发者的职业素养;能够解决人员流动带来的问题;有利于提升公司和员工绩效管理水平,以持续改进效益。
8、PSP2.1 的阶段及技能要求
| 工作任务 | 技能要求 |
|---|---|
| 计划 | 熟悉开发流程,有规划能力 |
| 估计这个任务需要多少时间 | 对整个项目以及各个阶段有大致的时间观 |
| 开发 | 分析设计能力,编程能力 |
| 需求分析(包括学习新技术) | 详细分析用户的需求并结合项目实际,确定最终需求的功能点 |
| 生成设计文档(设计软件的框架) | 设计能力,表达能力,撰写能力 |
| 设计复审 (和同事审核设计文档) | 协商能力 |
| 代码规范 (为目前的开发制定合适的规范) | 掌握通用的代码规范体制 |
| 具体设计 | 设计能力 |
| 具体编码 | 编程能力 |
| 代码复审 | 细心,审查debug能力 |
| 测试(自我测试,修改代码,提交修改) | 测试能力 |
| 报告 | 撰写表达能力 |
| 测试报告 | 撰写表达能力 |
| 计算工作量 | 计算能力 |
| 事后总结, 并提出过程改进计划 | 熟悉整个过程,创新意识,多思考多学习 |
系统分析与设计 homework-1的更多相关文章
- FPGA最小系统分析与电路设计
<FPGA最小系统分析与电路设计> 部分节选自<FPGA应用开发入门与典型.pdf > FPGA最小系统包括:FPGA芯片.下载电路.外部时钟.复位电路和电源. 如果使用NIO ...
- 系统分析与设计个人作业:WordCount
本次作业gitee地址:https://gitee.com/ackary/WordCount 一.项目简介 1.基础功能 基础功能部分主要实现的功能是统计一个程序设计语言源文件的字符数.单词数.行数, ...
- 文献综述十六:基于UML的中小型超市管理系统分析与设计
一.基本信息 标题:基于UML的中小型超市管理系统分析与设计 时间:2016 出版源:Journal of Xiangnan University 文件分类:uml技术系统的研究 二.研究背景 开发一 ...
- 系统分析与设计lesson6
| 分类 作业 | 1.用例建模 a. 阅读 Asg_RH 文档,绘制用例图. 按 Task1 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸 b. 选择你熟悉的定旅馆在线服务系统 ...
- 奖学金评分系统(系统分析与设计版与Delphi实现代码)
一.系统规划 1.1 项目背景介绍 在奖学金评比过程中,学生综合测评是学校普遍采用的评比手段.对学生实施综合素质测评的目的在于正确评价学生的综合素质,为评奖学金提供依据,实现学生教育管理工作的标准化. ...
- WordCount系统分析与设计作业
Gitee项目地址 https://gitee.com/gitdq/homework psp表 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 10 10 · ...
- 系统分析与设计 homework2
1. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 降低了软件开发的复杂度,提高软件开发过程中的透明性,提高软件开发的可管理性. 为项目提供了按阶段划分的检查点. 当前一 ...
- 系统分析与设计结对项目——WordCount
结对项目完成WordCount 合作者:201631062507 201631062526(学号) 代码地址:https://gitee.com/WordCountMC/WordCountTeam ...
- 系统分析与设计HW2
简答题 1. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 定义了软件开发基本流程与活动. 为项目提供了按阶段划分的检查点. 当前一阶段完成后,只需关注后续阶段. 缺点: ...
随机推荐
- 学习笔记|JSP教程|菜鸟教程
学习笔记|JSP教程|菜鸟教程 ------------------------------------------------------------------------------------ ...
- django参考博客学习
网上发现其他人的一个django系列博客,和我学的一样是黑马的,写的挺不错的,转载学习一下 https://blog.csdn.net/u014745194/article/category/6989 ...
- 类型转换:static_cast、reinterpret_cast等
一.隐式类型转换 系统自动进行,不需要程序开发人员介入. int m = 3 + 45.6;// 48 把小数部分截掉,也属于隐式类型转换的一部分 double b = 3 + 45.6; // 48 ...
- P2051 中国象棋
P2051 中国象棋 题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法.大家肯定很清楚,在中 ...
- python3的全局变量和局部变量
局部变量 定义在函数体内部的变量称为局部变量 函数的形参也是局部变量 局部变量的作用范围只在声明该局部变量的函数体内 局部变量在函数调用时被创建,在函数调用完成后自动销毁 全局变量 定义在函数体外,模 ...
- 蓝牙4.0BLE抓包(一) - 搭建EN-Dongle工作环境 使用EN-Dongle抓包 nRF51822
版权声明:本文为博主原创文章,转载请注明作者和出处. 蓝牙4.0 BLE的开发过程中,使用抓包器进行抓包分析无疑会极大地提高我们的开发效率,同时能帮我们快速的定位问题.对于初学者 ...
- ES6之新增const命令使用方法
hi,我又回来了,今天学习一下const命令. 声明一个常量 const声明一个只读常量,一旦声明,常量的值便不可改变. 例子如下: const food = 12; food = 23; // Un ...
- Linux基础篇–shell脚本编程基础
本章内容概要 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 7.1 编程基础程序:指令+数据程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心 ...
- webpack打包报错Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
npm install –save-dev extract-text-webpack-plugin@next 会下载到+ extract-text-webpack-plugin@4.0.0-beta. ...
- [Re:从零开始的分布式] 0.x——分布式锁概述
为什么需要分布式锁 Martin Kleppmann是英国剑桥大学的分布式系统的研究员,Martin认为一般我们使用分布式锁有两个场景: 效率:使用分布式锁可以避免不同节点重复相同的工作,这些工作会浪 ...