系统分析与设计(一)

系统分析与设计(一)

1、简单题

软件工程的定义

根据IEEE 标准 610.12,软件工程的定义是 “(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software,” and “(2) the study of approaches as in (1).”

阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。

Software crisis is a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time. The software crisis was due to the rapid increases in computer power and the complexity of the problems that could not be tackled. With the increase in the complexity of the software, many software problems arose because existing methods were insufficient.

COCOMO 模型:The constructive cost model was developed by Barry W. Boehm in the late 1970s and published in Boehm’s 1981 book Software Engineering Economics as a model for estimating effort, cost, and schedule for software projects. It drew on a study of 63 projects at TRW Aerospace where Boehm was Director of Software Research and Technology. The study examined projects ranging in size from 2,000 to 100,000 lines of code, and programming languages ranging from assembly to PL/I. These projects were based on the waterfall model of software development which was the prevalent software development process in 1981.

软件生命周期。

软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。 生命周期的每一个周期都有确定的任务,并产生一定规格的文档(资料),提交给下一个周期作为继续工作的依据。按照软件的生命周期,软件的开发不再只单单强调“编码”,而是概括了软件开发的全过程。软件工程要求每一周期工作的开始只能必须是建立在前一个周期结果“正确”前提上的延续;因此,每一周期都是按“活动 ── 结果 ── 审核 ── 再活动 ── 直至结果正确”循环往复进展的。

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

Software requirements

Software design

Software construction

Software engineering process

Software engineering models and methods

解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

1. 初始级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。

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

扫描二维码关注公众号,回复: 147232 查看本文章

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

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

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

用自己语言简述 SWEBok 或 CMMI (约200字)

简述CMMI:CMMI的意思是能力成熟度模型集成,是一套融合多学科的、可扩充的产品集合。自软件危机以来,软件开发的效率,质量和成本等问题更多地被关注,软件生产过程也必须更有序,更多快好省。因此需要软件管理工程来维护软件生产过程的秩序。软件过程改善是当前软件管理工程的核心问题,由此CMMI应运而生。CMMI的本质是软件管理工程的一个部分,它指导组织的过程改进,使之过程能力稳定地进行改善。企业的CMMI等级越高,意味着它的软件能力越成熟。

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

阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html

按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据?

PSP2.1

 

Planning

·         Estimate

Development

·         Analysis

·         Design Spec

·         Design Review

·         Coding Standard

·         Design

·         Coding

·         Code Review

·         Test

 

 

Record Time Spent

Test Report

Size Measurement

Postmortem

Process Improvement Plan

计划

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

开发

·         分析需求

·         生成设计文档

·         设计复审 (和同事审核设计文档)

·         代码规范 (为目前的开发制定合适的规范)

·         具体设计

·         具体编码

·         代码复审

·         测试(包括自我测试,修改代码,提交修改)

记录时间花费

测试报告

计算工作量

事后总结

提出过程改进计划

对于每个任务耗费的时间的统计,我打算主要靠记录各阶段的连续工作时段的开始和结束时刻并将一个阶段内的时段和求出,尽量精确到小时,小于小时的时间四舍五入。

猜你喜欢

转载自blog.csdn.net/jacknights/article/details/79532583
今日推荐