系统分析与设计——第一次作业

xiaoxiao2021-02-28  22

简单题

1、软件工程的定义 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己认可的定义: IEEE的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。2.在1中所述方法的研究。 GB给出的定义:应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、和维护的工程或进行研究的学科。 比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

2、阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。 software crisis(软件危机):指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 主要表现于: 1)软件开发进度难以预测 2)软件开发成本难以控制 3)用户对产品功能难以满足 4)软件产品质量无法保证 5)软件产品难以维护 6)软件缺少适当的文档资料 产生的原因: 1)用户需求不明确 2)缺乏正确的理论指导 3)软件开发规模越来越大 4)软件开发复杂度越来越高

COCOMO 模型 COCOMO(constructive cost model,构造性成本模型):它是一种精确、易于使用的,基于模型的成本估算方法。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本。 在该模型中使用的基本量有以下几个: 1)DSI( 源指令条数 ) ,定义为代码行数,包括除注释行以外的全部代码。若一行有两个语句,则算做一条指令。 2)MM( 度量单位为人月 ) 表示开发工作量。 3)TDEV( 度量单位为月 ) 表示开发进度,由工作量决定。 4)COCOMO 模型重点考虑 15 种影响软件工作量的因素,并通过定义乘法因子,从而准确、合理地估算软件的工作量。

COCOMO用3个不同层次的模型来反映不同程度的复杂性,他们分别为: ● 基本模型 (Basic Model)。 是一个静态单变量模型,它用一个以已估算出来的源代码行数 (LOC) 为自变量的函数来计算软件开发工作量。 ● 中间模型 (Intermediate Model)。 则在用 LOC 为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。 ● 详细模型 (Detailed Model) 包括中间 COCOMO 模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。 同时根据不同应用软件的不同应用领域,COCOMO模型划分为如下3种软件应用开发模式: ● 组织模式(Organic Mode)。这种应用开发模式的主要特点是在一个熟悉稳定的环境种进行项目开发,该项目与最近开发的其他项目有很多相似点,项目相对较小,而且并不需要许多创新。 ● 嵌入式应用开发模式 (Embedded Mode)。在这种应用开发模式种,项目受到接口要求的限制。接口对整个应用的开发要求非常高,而且要求项目有很大的创新,例如开发一种全新的游戏。 ● 中间应用开发模式 (Semidetached Mode)。这时介于组织模式和嵌入式应用开发模式之间的类型。

通过基础COCOMO的计算可以得出每个开发者需要投入的时间,整个项目的开发时间以及需要的人数,所需要的输入是软件的大小(以代码的行数(千行)为单位,记做SLOC) 针对不同三种不同的工程结构,基础cocomo提供不同的系数: 基础工程 - 小组拥有经验的开发人员开发需求定义不是十分严格的项目 半独立项目 - 拥有不同程度的经验的中等规模的开发组开发部分需求是严格定义的,部分需求不是十分严格定义的项目 嵌入式项目 - 开发拥有着严格的约束的项目,在软硬件等需求方面基础工程和半独立项目的组合

3、软件生命周期 软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。 软件生命周期包括以下阶段: 1)问题定义 要求系统分析员与用户进行交流,弄清“用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”,提交用户审查和确认。 2)可行性研究 一方面在于把待开发的系统的目标以明确的语言描述出来,另一方面从经济、技术、法律等多方面进行可行性分析。 3)需求分析 弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。 4)开发阶段 开发阶段由三个阶段组成: a.设计 b.实现:根据选定的程序设计语言完成源程序的编码。 c.测试 5)维护:维护包括四个方面 a.改正性维护:在软件交付使用后,由于开发测试时的不彻底、不完全、必然会有一部分隐藏的错误被带到运行阶段,这些隐藏的错误在某些特定的使用环境下就会暴露。 b.适应性维护:是为适应环境的变化而修改软件的活动。 c.完善性维护:是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。 d.预防性维护:是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。

4、按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域? SWEBOK共有10个KA,分别为:软件需求、软件设计、软件构建、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量 本课程关注的是:软件需求、软件设计、软件构建、软件测试、软件配置管理、软件工程管理、软件工程过程、软件质量

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

6、用自己语言简述 SWEBOK 或 CMMI (约200字) SWEBOK全称为Software Engineering Body Of Knowledge,软件工程知识体。所包含的知识领域有:软件需求、软件设计、软件构建、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量。辅助领域有:计算机科学,数学,项目管理,计算机工程,系统工程,管理与管理科学,认知科学与行为。概述了软件工程这门学科所涉及到所有知识,SWEBOK的建立有以下的好处: 1)促进世界范围对软件工程的一致观点。 2)阐明软件工程相对学科(如计算机科学、项目管理、计算机工程和数学等)的位置,并确立它们的分界 3)刻画软件工程学科的内容 4)提供使用知识体系的主题 5)为开发课程表和个人认证与许可材料,提供一个基础 很好的明确了软件工程的组成成分,为软件工程的涉及知识标明了参考材料,方便于入门者的学习以及人们的查询。

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

一个软件工程师在接到一个任务之后需要进行以下几个步骤: Planning(计划): a.Estimate:估计这个任务需要多少时间 Development(开发): a.Analysis:需求分析(包括学习新技术) b.Design Spec:生成设计文档 c.Design Review:设计复审(和同事审核设计文档) d.Coding Standard:代码规范(为目前的开发制定合适的规范) e.Design:具体设计 f.Coding:具体编码 g.Code Review:代码复审 i.Test:测试(自我测试,修改代码,提交修改) Reporting(报告): a.Test Report:测试报告 b.Size Measurement:计算工作量 c.Postmortem & Process Improvement Plan:事后总结,并提出过程改进计划 需要有阅读和分析文献的能力,要有一定的工作经验,要对工程有一定的认识能力。 统计以上每项数据的方法,用在每项步骤花费的时间作为指标,然后工作前记录每项步骤所花费的时间,从而完成这一张表。

转载请注明原文地址: https://www.6miu.com/read-2595564.html

最新回复(0)