[关闭]
@lzb1096101803 2016-06-20T18:58:39.000000Z 字数 4147 阅读 372

软工题目

未分类


简答:
软件危机定义,原因,表现,消除途径,
软件工程的介绍和原理
软件生命周期
软件过程

需求分析的任务,为什么要进行需求分析,有哪些需求分析的方法

软件维护的概念和过程,可维护性的因素,可采取的维护措施

耦合内聚???

计算:MTTF

大题
数据流图,类图,顺序图,用例图,Mcbabe,E-R
白盒测试:各种覆盖,基本路径测试

第一章 软件工程概述

软件危机定义

是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。

软件危机出现的原因: 

(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。

软件危机的典型表现:

(1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。 
(4) 软件常常是不可维护的。 
(5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求

消除软件危机:

软件生命周期

一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。

软件生存周期一般可分为以下阶段:
(1)问题定义(2)可行性研究(3)需求分析 (4)概要设计(总体设计)
(5)详细设计 (6)编码 (7)测试 (8)维护
也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护

(1)软件分析时期;
任务:确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准
(2)软件设计时期;
任务:a.设计软件的总体结构;
   b.设计软件具体模块的实现算法;
   c.软件设计结束之前,也要进行有关评审,评审通过后才能进入编码时期。
(3)编码与测试时期;
任务:组织程序员将高驻地的软件“翻译”成计算机可以正确运行的程序;并且要经过按照软件分析中提出需求要求和验收标准进行严格的测试和审查。
(4)运行与维护时期。
任务:软件运行过程中可能由于各方面的原因,需要对它进行修改

什么是软件工程?软件工程的目的是什么?

 答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
   目的:是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。

软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。

快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少。
不适用大型软件的开发 适用于小型项目。

增量模型的优点:1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比较好;4开始第一构件前,已经完成需求说明。
增量模型的缺点:1对现有产品功能造成破坏;2意义上的矛盾
适用于中型软件的开发

螺旋模型的优点:1集成了瀑布模型、快速原型模型、增量模型的优点;2支持用户需求动态变化;3需求分析与软件实现紧密联系相互依赖;4原型作为刑式的可执行的需求规格说明,即利用用户和开发人员共同理解,又可作为后续开发的基础;5为用户参与决策提供方便;6提高目标软件的适应能力;7降低风险;8在大型软件开发过程中充分发挥优势。
螺旋模型的缺点:1迭代次数影响开发成本,延迟提价时间;2找不到关键改进点,人才、物力、财力时间引起无谓消耗;3成于风险分析,败于风险分析。 适用于内部开发的大规模软件项目。

软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型

软件工程:① 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;② 研究①中提到的途径。

习题P32 1 3 4 6 7

第二章 可行性研究

可能考数据字典

习题: P53 2 4

第三章 需求分析

可能考状态转换图

需求分析的任务,为什么要进行需求分析,有哪些需求分析的方法

需求的特点 可验证性 优先级 唯一性

为什么要需求分析

为了开发出真正满足用户需求的软件产品,准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么,就必须要进行准确的需求分析。通常对软件系统的需求有:功能需求;性能需求;可靠性和可用性需求;出错处理需求;接口需求;约束;逆向需求;文档需求;数据需求等等。

为什么困难

● 需求易变性。用户在开始时提出一些功能需求,当对系统有一定的理解后,会提出一些需求。以后随着理解的深入而不断提出新的需求。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一对待性和不完备性。
● 问题的复杂性;
● 交流障碍。进行需求分析的人员具备不同的背景知识,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难。
● 不完备性和不一致性。用户各类人员对于系统的要求所处的角度不一样,对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾。

习题 P73 1 2 3 4 5

第四章 形式化分析 不考

第五章 总体设计

不考大题

习题P114 1 2

耦合的例子

耦合是对一个软件结构内不同模块之间互连程度的度量,耦合强弱取决于模块间接口的复杂程度,

模块间通过参数交换信息,数据耦合。低耦合

两个或多个模块通过一个公共数据环境相互作用是,公共环境耦合

一个模块访问另一个模块内部数据,不通过正常入口访问另一模块内部等,内容耦合

内聚的例子

内聚标识一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展

功能内聚:模块内所有处理元素属于一个整体,完成单一的功能
顺序内聚:一个模块内处理元素和同一个功能紧密相关,而且处理必须顺序执行
通信内聚:模块中所有元素都使用同一输入数据或产生同一个输出数据
过程内聚:一个模块内处理元素是相关的,而且必须以特定顺序执行
时间内聚:一个模块包含的任务必须在同一时间内执行
逻辑内聚:一个模块完成的任务在逻辑上属于相同或相似的一类
偶然内聚:一个模块完成一组任务,任务之间即使有关系,关系也是松散的,如一个类里面抽离出相同代码为一个函数

第六章 详细设计

流图:环形复杂度:边条数-结点数+2

结构程序设计

如果一个程序的代码仅仅通过顺序,选择和循环这三种基本控制结构 进行连接,并且每个代码块只有一个入口和出口,则称这个程序是结构化的

习题 P140 4 8

第七章 实现

逻辑覆盖:至少每个语句执行一次
判断覆盖,每个判定的每种可能的结果都要执行一次,即每个判定的每个分支至少执行一次
条件覆盖,判定表达式中每个条件都取到各种可能结果
判定/条件覆盖:每一个条件都取到各种可能值,每个判定表达式都取到各种结果
条件组合覆盖:每个判定表达式的各种可能组合至少出现一次

习题 P187 4 8 9 10

第八章 维护 只考简答

习题 P201 1 2

软件维护的定义

在软件产品安装、实施并交付给用户使用后,在新版本产品升级之前,这段时间里软件厂商向客户提供的服务工作,称为该软件产品的软件维护。

主要流程

软件维护活动和软件开发一样,要有严格的规范,才能保证软件的质量,一般执行维护活动的流程如下:
● 制定维护申请报告;
● 审查申请报告并批准;
● 进行维护并做详细记录;
● 复审。

可维护性相关因素

决定软件可维护性的因素主要有下述5个
:1、可理解性2、可测试性3、可修改性4、可移植性5、可重用性。 
在需求分析阶段的复审过程中,应该对将来要改进的部分和可能会修改的部分加以注意并指明;应该讨论软件的可移植性问题,并且考虑可能影响软件维护的系统界面。 
在正式的和非正式的设计复审期,应该从容易修改、模块化和功能独立的目标出发,评价软件的结构和过程;设计中应该对将来可能修改的部分预作准备。 
每个测试步骤都可以暗示在软件正式交付使用前,程序中可能需要做预防性维护的部分。 
在测试结束时进行最正式的可维护性复审. 
在完成了每项维护工作之后,都应该对软件维护本身进行仔细认真的复审。维护应该针对整个软件配置,不应该只修改源程序代码。每当对数据、软件结构、模块过程或任何其他有关的软件特点做了改动时,必须立即修改相应的技术文档

可采取的维护措施

得到的

第九章 第十章 面向对象

会画三个模型的各种图

p250 时间追踪图(图10.8)

习题P230 9 10
习题P256 全部

第十一章 第十二章 不考

第十三章 软件项目管理

开发题目

可能考Gantt图 P317

习题P335 4 5 6 9

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注