系统设计与分析第一次作业
Posted zmj97
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统设计与分析第一次作业相关的知识,希望对你有一定的参考价值。
1、简单题
软件工程的定义
(1)将系统化、规范化、可度量的方法应用与软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)对(1)中所述方法
的研究。——IEEE[IEE93]
软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
主要表现为软件开发进度难以预测、软件开发成本难以控制、用户对产品功能难以满足、软件产品质量无法保证、系统中的错误难以消除、软件产品难以维护、软件缺少适当的文档资料。
六十年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。由于软件生产的复杂性和高成本,使大型软件的生产出现了很大的困难,即出现软件危机。
COCOMO,英文全称为constructive cost model,中文为构造性成本模型。它是一种精确、易于使用的,基于模型的成本估算方法,最早由勃姆 (Boehm) 于 1981 年提出。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本(类似于居住面积作为参数计算的整体的住房成本)。
在COCOMO模型中,工作量调整因子(Effort Adjustment Factor, EAF)代表多个参数的综合效果,这些参数使得项目可以特征化和根据COCOMO数据库中的项目规格化。每个参数可以定为很低,低,正常,高,很高。每个参数都作为乘数,其值通常在0.5到1.5之间,这些参数的乘积作为成本方程中的系数。
COCOMO用3个不同层次的模型来反映不同程度的复杂性,他们分别为:基本模型、中间模型、详细模型。
同时根据不同应用软件的不同应用领域,COCOMO模型划分为如下3种软件应用开发模式:组织模式、嵌入式应用开发模式、中间应用开发模式。
软件生命周期。
典型划分GB8567(4个时期7个阶段):
1)软件分析时期:问题定义、可行性研究、需求分析
2)软件设计时期:总体设计、详细设计
3)编码与测试时期:编码、测试
4)运行与维护时期
从时间角度,把整个周期划分为若干个阶段
划分的原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。受软件规模、性质、种类、开发方法等因素的影响。
按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
- 软件需求(Software requirements)
- 软件设计(Software design)
- 软件建构(Software construction)
- 软件测试(Software test)
- 软件维护与更新(Software maintenance)
- 软件构型管理(Software Configuration Management, SCM)
- 软件工程管理(Software Engineering Management)
- 软件开发过程(Software Development Process)
- 软件工程工具与方法(Software Engineering Tools and methods)
- 软件质量(Software Quality)
解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
Level 1 - Initial :软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
Level 2 - Repeatable:建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
Level 3 - Defined:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
Level 4 - Managed:分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
Level 5 - Optimizing:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI,软件能力成熟度集成模型是为了帮助软件企业对开发软件的过程进行管理和改进,同时增强自身的开发和改进能力,从而能准时有效高质量地开发出软件而出现的评判模型。它主要依据的是:如果集中精力、持续努力地去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。它提供了一个单一的集成化框架,从而消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解。主要关注点为成本效益、明确重点、过程集中和灵活性。
2、解释 PSP 各项指标及技能要求:
阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)
接到一个任务后:
计划
- 估计这个任务需要多少时间
开发
- 分析需求
- 生成设计文档
- 设计复审 (和同事审核设计文档)
- 代码规范 (为目前的开发制定合适的规范)
- 具体设计
- 具体编码
- 代码复审
- 测试(包括自我测试,修改代码,提交修改)
记录时间花费
测试报告
计算工作量
事后总结
提出过程改进计划
需要哪些技能:
- 知识: 对具体技术的掌握, 动手能力
例如: 对Java, C/C++/C#, 诊断/提高效能的技术, 对device driver, kernel debugger 的掌握;对于某一开发平台的掌握。
- 经验: 对问题领域的知识和经验的积累 (例如: 对于医疗行业的了解, 对于金融行业的了解)。
- 通用的软件设计思想, 软件工程思想的提高
- 职业技能 (区别于技术技能)
职业技能包括: 自我管理的能力; 表达和交流的能力; 与人合作的能力; 把任务按质按量完成的执行力; 这些能力在IT 行业和其它行业都很重要。
如何统计每项数据:
首先建立表格,然后对于每一次任务,记录并录入每一个阶段花费的时间并发布在博客中避免丢失。
以上是关于系统设计与分析第一次作业的主要内容,如果未能解决你的问题,请参考以下文章