软件工程知识点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程知识点

第一章软件工程概述

一、软件的定义和特性(P2—P3)

定义:软件=程序+数据+文档

程序:按照事先设计的功能和性能要求执行的指令或语句序列

数据:程序能正常操纵信息的数据结构

文档:描述程序操作和使用的文档

特性:

(1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体;

(2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理;

(3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件;

(4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题;

(5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。

* 掌握P4图1-2(b)软件失效率曲线

二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2)

共经历了四个阶段

特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术

第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机

第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件

第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向

对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。

三、什么是软件危机?其产生的原因是什么?

定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。(P4)

原因:(P5)

(1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求;

(2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致;

(3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验;

(4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误;

(5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化

(6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。

四、什么是软件工程?它的目标和内容是什么?

定义:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并对方法的研究。(P6)

目标:在给定的成本和进度前提下,开发出具有可修改性、可理解性、可维护性、有效性、可靠性、可适用性、可重用性、可移植性、可跟踪性和互操作性并且满足用户需求的软件产品。(P7)内容:主要内容包括软件开发技术和软件工程管理两方面。(P6)要素:方法,工具,过程

五、什么是软件生存周期?它有哪几个活动?

定义:(software life cycle)把软件产品从形成概念开始,经过定义、开发、使用和维护直到最后退役的全过程。

活动:软件定义、软件开发、软件使用维护和退役(P9)

六、什么是软件生存周期模型?它有哪些主要模型?

定义:又称为软件开发模型,软件过程模型,它清晰直观地反映了软件开发的全部过程、所涉及的活动和任务结构框架,并指出了开发了开发各阶段的关系、开发活动的衔接情况。

主要模型:瀑布模型(waterfall model),原型(prototype)模型,螺旋(the spiral)模型,增量(incremental)模型,喷泉(fountain)模型,迭代(iterative)模型

七、简述有哪些主要的软件开发方法?(P22)

结构化方法:也称为生命周期方法或传统方法,由结构化分析(structured analysis)、结构化设计(SD)、结构化编程(SP)三部分有机组合而成。其基本思想是自顶向下,逐步求精,基本原则是抽象和分解。

面向对象方法(Object—Oriented Method):把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO。包括面相对象分析(OOA)、面向对象设计(OOD)、面向对象的程序设计(OOP)等过程。八、软件生命期各阶段的任务是什么?(P10)软件定义:问题定义,系统的可行性研究,需求分析

软件开发:概要设计,详细设计,编码实践,软件测试

软件使用维护和退役:软件发布与实施,软件维护,版本更新或退役

九、简述瀑布模型(P12)、原型模型特点。

瀑布模型:软件开发的各项活动严格按照线性方式进行,各阶段之间具有顺序性和依赖性,且为了保证软件的开发质量进行阶段性评审。缺点是逆转性差,若在评审中发现缺陷或错误往回追溯修正时要付出一定的代价。

适合在软件需求明确且很少发生变化、开发技术比较成熟、工程

管理比较严格地场合使用。

原型模型:有助于用户和软件分析员双方相互学习对方领域知识,使得用户和开发人员统一对软件需求的认识,理解,有助于需求的定义评审,从而有助于提高开发速度。缺点是用户对原型没有正确认识,会催促开发

人员尽早交付软件,同时也在一定程度上限制了软件开发人员的创新。(P14)

第二章软件需求基础

一、试述软件需求、需求分析、需求建模概念的含义及区别。

软件需求:指用户对目标软件系统在功能、性能、行为、涉及约束等方面的期望,这种期望可能是原始的、笼统的,也可能是抽象的太细节化的。(P26)

需求分析:通过对应用问题及其环境的分析与理解,采用一系列的分析方法和技术,将用户的需求逐步精确化、完全化、一致化,最终形成需求规格说明文档的过程。(P26)

需求建模:需求建模是为了更好的理解用户所描述的需求所作出的一种抽象,是用符号语言对事务无歧义的书面描述。模型主要包括数据模型,功能模型和行为模型。(P38)

二、可行性研究的任务是什么?(P31)

用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。

三、成本—效益分析可用哪些指标进行度量?(P32)

成本效益分析是衡量经济可行性的。指标:(1)货币的时间价值。(2)投资回收期(3)纯收入

四、需求分析阶段的基本任务是什么?(P27)

任务:深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。

五、简述需求分析阶段的过程。(P36)

1.问题识别2.分析与综合3.编制需求分析阶段的文档4.需求验证

相关文档
最新文档