目录
2.请简述编码风格的重要性。要形成良好的编码风格可以从哪些方面做起?
第1章
3.请简述软件工程的基本原则。
(1)用分阶段的生命周期计划进行严格的管理
(2)坚持进行阶段评审
(3)执行严格的版本控制
(4)采用现代程序设计技术
(5)软件从结果应能清楚审查
(6)开发小组的人员应少而精
(7)承认不断改进软件工程时间的必要性
5.请简述软件工程的三要素。
过程、方法、工具
7.通常有哪几种软件开发方法?
(1)结构化方法
(2)面向数据结构方法
(3)面向对象方法
(4)形式化方法
第4章
1.如何理解需求分析的作用和重要性。
明确了解用户需求,回答“系统必须做什么”的问题。需求分析是一个非常重要的过程,它完成的好坏直接影响了后续软件开发的质量。
2.常用的需求获取的方法有哪些?对比各种方法的优缺点。
(1)问卷调查
(2)访谈
(3) 实地操作
(4)建立原型
3.如何理解结构化需求分析方法的基本思想?
结构化方法是一种从问题空间到某种表示的映射方法,其逻辑模型由数据流图和数据词典构成并表示。它是一种面向数据流的需求分析方法。主要适用于数据处理领域问题。
第9章
1.请比较结构化软件设计方法和面向对象软件设计方法。
面向对象的设计更符合复杂的、随机性较强和考虑并发性的系统软件设计,而不适合逻辑性很强的系统软件设计。
结构化软件设计一般从系统功能入手,按照需求将系统功能分为若干个子功能模块。但随着用户需求不断变化,需求的改变往往会对功能模块产生影响,从而对整个系统产生影响。
面向对象的设计基于类、对象、封装、继承等概念,相比之下,需求的变化对系统的局部影响并不容易扩展到全局。因此,面向对象设计方法比结构化设计方法更具有优势,使用范围更广。
由于在类中封装了属性和方法,因此在面向对象的类设计中已经包含了面向过程的过程设计。面向对象设计中的数据设计并不是独立进行的,面向对象设计中的类图相当于数据的逻辑模型,可以很容易地转换成数据的物理模型。
3.请简述面向对象设计的设计原则。
(1)单一职责:一个类只允许有一个职责
(2)开闭原则:软件实体应对扩展开放,对修改关闭
(3)里氏替换原则:所有引用基类必须能透明的使用子类的对象
(4)接口隔离原则:多个特定接口好于一个通用的总接口
(5)依赖倒置原则:依赖抽象而非依赖实现,抽象不应该依赖细节,细节应该依赖抽象。高层模块和低层模块都应当依赖抽象。
(6)迪米特原则:一个对象应该与尽量少的对象有接触。
4.请简述系统设计和对象设计。
系统设计和对象设计是软件开发过程中非常重要的两个环节。系统设计是指对整个软件系统进行规划和设计,包括架构、模块、接口、数据结构等方面的设计。而对象设计则是针对单个或多个对象进行详细的分析和设计,包括属性、方法、关系等方面的设计。
第10章
1.在选择编程语言时,通常要考虑哪些因素?
要考虑的因素如下:
(1)待开发系统的应用领域,即项目的应用范围。不同的应用领域一般需要不同的语言。
(2)用户的要求
(3)软件开发人员的喜好和能力
(4)系统的可移植性要求
(5)算法和数据结构的复杂性
(6)平台支持
2.请简述编码风格的重要性。要形成良好的编码风格可以从哪些方面做起?
(1)阅读程序很重要一致的编码风格将大量的的减少人们阅读程序的时间
(2)良好的编码风格有助于编写出可靠又易维护的程序
(3)风格很大程度上决定着编码的质量,良好的编码习惯可以通过简洁的命名变量,编写可预测,可重用的代码,进行单元测试等方式来养成。
4.对标识符命名时,要注意哪些原则?
以C语言为例,规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
通常好的命名习惯是:长度:最长32个字符,最好不要超过8个字符
命名原则:
(1)见名知意,即选有含意的单词或缩写作标识符。
(2)不宜混淆
(3)对于组合词变量名,通常第一个单词小写,后面每个单词第一个字母大写或用下划线分隔。
5.为什么要对源程序进行注释?
(1)让代码更容易理解。注释可以解释代码的作用,描述变量、函数等的用途,这样其他人阅读代码时就可以更快地理解代码的意图。
(2)方便代码的维护和升级。注释可以记录代码的修改历史,方便后续的维护和升级。
(3)避免代码的重复编写。通过注释,可以让其他程序员快速了解代码的功能和使用方法,避免重复编写代码。
第12章
2.请简述软件估算的意义。
合理地对软件项目进行估算,能够更加精准确定项目开发所需的资源、费用、周期等。依据合理的方法对软件进行估算,相较于拍脑袋、拍大腿等的“六拍法”,可以提供更加科学合理的估算结果。
11.软件配置管理的目的是什么?
(1)软件配置管理的各项工作是有计划进行的。
(2)被选择的项目产品得到识别、控制并且可以被相关人员获取。
(3)已识别出的项目产品的更改得到控制。
(4)使相关组别和个人及时了解软件基准的状态和内容。
12.请简述软件配置管理的工作内容。
(1)技术部门经理和具体项目主管应该使用和遵循XSSC的OSSP中所描述的软件配置管理的工作过程。
(2)施行软件配置管理的职责应被明确分配。相关人员得到软件配置管理方面的培训。
(3)技术部门经理和具体项目主管应该明确他们在相关项目中所担负的软件配置管理方面的责任。
(4)软件配置管理工作应该享有足够的资金支持,这需要在客户、技术部门经理和具体项目主管之间协商。
(5) 软件配置管理应该实施于如下产品:对外交付的软件产品以及那些被选定的在项目中使用的支持类工具等。
(6)软件配置的整体性在整个项目生命周期中得到控制。
(7)软件质量保证人员应该定期审核各类软件基准以及软件配置管理工作。
(8)软件基准的状态和内容能够及时通知给相关组别和个人。
14.请简述软件工程管理。
软件工程管理是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。软件工程管理在项目的任何技术活动开始之前就要进行,并且贯穿于整个软件生命周期之中。
软件工程管理的内容包括对软件开发成本、控制、开发人员、组织机构、用户、软件开发文档、软件质量等方面的管理。