@zichuanyan
2018-03-15T23:51:05.000000Z
字数 2375
阅读 615
作业一
系统分析
软件工程
1、简单题
- 软件工程的定义:软件工程,software engineering。1993年,电气电子工程师学会(IEEE)给出了一个综合的定义:"将系统化的、规范的、可度量的方法用于软件的开发、运行和维护的过程,即将工程化应用于软件开发中";而在GB/T11457-2006《信息技术软件工程术语》中将其定义为"应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、和维护的工程或进行研究的学科"。
- software crisis:即软件危机,是早期计算机科学的一个术语,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。软件开发是一项高难度、高风险的活动,由于它的高失败率,故有所谓“软件危机”之说。[3]软件危机的本源是复杂、期望和改变。这个术语用来描述正急遽增加之电脑的力量带来的冲击和可能要处理的问题的复杂性。从本质上来说,它谈到了写出正确、可理解、可验证的计算机程序的困难。
- COCOMO模型:即构造性成本模型。构造性成本模型最初发表于1981年巴里·勃姆《软件工程经济学》一书中,做为一种在软件项中估算工作量、成本以及时间表的模型。它基于对TRW飞机制造公司的63个项目的研究。构造性成本模型由三个不断深入和详细的层次组成。第一层,“基本COCOMO”,适用对软件开发进行快速、早期地对重要的方面进行粗略的成本估计,但因其缺少不同的项目属性(“成本驱动者”)的因素,所以准确性有一定的局限性。“中级COCOMO”中考虑进了这些成本驱动者。“详细COCOMO”加入了对不同软件开发阶段影响的考量。
- 软件生命周期:同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。软件生命周期(SDLC,软件生存周期)是软件的产生直到报废的生命周期。为了使规模大、结构复杂和管理复杂的软件开发变的容易控制和管理,人们把整个软件生命周期划分为若干阶段,使得每个阶段有明确的任务,整理出软件生命周期模型。
- software requirements; software design; software construction; software configuration management; Software engineering management; Software engineering process; Software engineering models and methods
Level 1 - initial:无序,自发生产模式。
Level 2 - managed:建立跟踪管理,制定了过程纪律,能重复成功的经验。
Level 3 - defined:将管理和工程两方面文档化、标准化,按标准开发软件。
Level 4 - Quantitatively Managed:分析详细度量数据,有定量的理解与控制。
Level 5 - Optimizing:量化反馈和先进的新思想、新技术促使改进工程。
SWEBoK:即软件工程知识体系,software engineering body of knowledge。是由IEEE计算机协会发布的针对软件工程知识领域研究与实践的权威指南,专注于软件工程领域的研发、实践、标准、文献等方面的权威指南。因为软件工程是一门独立的学科,有自己的职业体系和教育课程体系。软件工程职业化是软件工程成熟的标志。建立SWEBoK有五个目的:
- 促进世界范围内对软件工程的一致观点。
- 阐明软件工程相对其他学科(计算机科学、项目管理、计算机工程和数学等)的位置。并确立他们的分界。
- 刻画软件工程学科的内容。
- 提供知识体系的主题。
- 为开发课程表和个人认证与许可材料,提供一个基础。
SWEBoK又为软件工程划分了十个知识域(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)
2、解释PSP的各项指标及技能要求
- 一个工程师接到任务后需要先做计划,估计这个任务需要多长时间;然后开发过程需要做分析需求、生成设计文档、设计复审 (和同事审核设计文档)、代码规范 (为目前的开发制定合适的规范)、具体设计、具体编码、代码复审、测试(包括自我测试,修改代码,提交修改);还需要记录时间花费;测试报告;计算工作量;事后总结;提出过程改进计划。
- 可以分四个阶段掌握软件工程知识的十大知识领域。入门、熟练、带头人、大师。
- 入门:在学校里学到了一些技能, 但是还没有在实践中得到充分锻炼。
- 熟练:独立,可以写别人交给你的任何东西。如果你不懂, 你知道去问谁。
- 带头人: 阅读4-6个经典文献的深入分析和阅读;要参与并完成6 个具体的工作;要参加3 个专门的课程;有些水平还要求工程师获得某种专业证书,在工业界,教育界教课, 发表论文等等。
- 大师:创新,把工程做成艺术。
- 我打算可以通过统计平时几个项目完成各个部分的具体统计时间,然后平均下来给自己制定一个规划和基础标准,然后在实际的课程项目中严格按照所用的时间统计各个进度所花的时间。并且要求自己的时间在平时标准的上下浮动之内,不要超出太多浮动值。