1软件工程—简答题.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
1软件工程—简答题 全国2010年10月 四、简答题 1. 简述软件危机产生的原因。 答案:软件危机产生的原因有:(每点1分) (1)软件的规模越来越大,结构越来越复杂。 (2)软件开发的管理困难。由于软件规模大,结构复杂,又具有无形性,导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。 (3)软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。 (4)软件开发技术、开发工具落后,生产率提高缓慢。 (5)生产方式落后。软件仍然采用个体手工方式开发。 2. 简述需求分析的概念及需求分析的基本任务。 答案:需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。(3分)需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须"做什么"的问题。(2分) 3. 简述数据流图的分类及每一类的特点。 答案:数据流图有两类:变换型数据流图和事务型数据流图。(1分)变换型数据流图是由输入、处理和输出 ### 软件工程知识点解析 #### 一、软件危机产生的原因 软件危机是指在软件开发过程中遇到的各种问题,这些问题严重阻碍了软件的发展及其应用。软件危机产生的原因主要有以下几点: 1. **软件规模和复杂性的增加**:随着计算机应用领域的不断扩展,软件的规模逐渐增大,结构也变得更加复杂。这不仅增加了开发难度,还使得管理和维护变得异常困难。 2. **管理上的挑战**:由于软件本身的无形性和复杂性,导致在项目管理过程中难以有效地控制进度、质量和可靠性。这包括但不限于进度控制、质量控制等方面。 3. **开发成本的持续增长**:软件开发是一项高度智力密集型的工作,需要大量的人力和财力投入。随着软件规模的增长,开发周期延长,相应的成本也随之上涨。 4. **技术与工具的局限性**:传统的软件开发技术和工具往往不能有效地支持大规模软件项目的开发,导致生产效率低下。 5. **落后的生产方式**:早期的软件开发主要依靠个人的手工作业完成,这种方式难以适应现代软件工程的需求。 #### 二、需求分析的概念及基本任务 需求分析是软件生命周期中的一个重要阶段,它旨在准确地理解用户的需求,并将其转化为可实施的形式。需求分析的任务主要包括: 1. **准确理解用户需求**:通过深入调研和沟通,理解用户的实际需求。 2. **需求定义**:将非形式化的用户需求陈述转化为完整的、形式化的定义。 3. **功能规约**:基于需求定义,创建详细的功能规格说明文档。 4. **明确系统目标**:定义新系统的目标,解决“系统必须做什么”的问题。 #### 三、数据流图的分类及其特点 数据流图是一种常用的软件工程工具,用于描述系统的数据流动情况。它可以分为两种类型: 1. **变换型数据流图**:这种类型的数据流图由输入、处理和输出三部分组成,通常呈现出一种顺序结构。 2. **事务型数据流图**:这种类型的数据流图的特点在于有一个事务处理中心,它能够将输入的数据流分解为多个分支,根据输入值的不同选择不同的处理路径。 #### 四、建立对象模型的过程 建立对象模型是面向对象分析的一个关键步骤,主要包括以下几个方面: 1. **确定类**:识别出与问题领域相关的对象类。 2. **准备数据字典**:为所有建模实体准备数据字典,详细描述每个对象类的属性和行为。 3. **确定关联**:定义不同类之间的关系。 4. **确定属性**:只关注那些与具体应用场景直接相关的属性。 5. **使用继承来细化类**:利用继承机制来共享公共结构,进一步优化类的设计。 #### 五、软件工程面临的其他问题 除了上述提到的问题之外,软件工程还面临着一些其他重要的挑战: 1. **软件费用**:如何有效控制软件开发的成本。 2. **软件可靠性**:确保软件能够在各种环境下稳定运行。 3. **软件维护**:提供长期的支持和服务。 4. **软件生产率**:提高软件开发的效率。 5. **软件重用**:通过重用现有代码减少重复工作量。 #### 六、可行性研究报告的内容 可行性研究报告是软件项目前期的重要文档,它涵盖了以下几个方面: 1. **技术可行性**:评估项目的技术可行性,包括开发风险、资源有效性等。 2. **经济可行性**:分析项目的成本效益比、潜在市场前景等。 3. **社会可行性**:考虑项目的社会接受度,如法律法规约束等。 #### 七、软件结构设计的优化准则 在进行软件结构设计时,需要遵循一系列的优化准则: 1. **模块独立性**:提高模块的内聚度,降低模块之间的耦合度。 2. **控制范围与作用范围**:确保模块的作用范围在其控制范围内。 3. **软件结构的形态特征**:合理设置软件结构的深度、宽度、扇入和扇出。 4. **模块大小**:控制模块的大小,便于理解和维护。 5. **模块接口**:简化模块接口,使其易于理解。 #### 八、快速原型的开发步骤 快速原型开发是一种迭代式的方法,主要包括以下步骤: 1. **快速分析**:确定基本需求。 2. **快速构造原型**:在强有力的工具支持下构建原型。 3. **运行原型**:在开发者的指导下运行原型,收集反馈。 4. **评价原型**:根据反馈评估原型的效果。 5. **修改原型**:根据评价结果调整原型。 #### 九、软件生存周期阶段及其提交物 软件生存周期可以分为以下几个阶段: 1. **可行性研究和项目开发计划**:提交项目开发计划和可行性分析报告。 2. **需求分析**:提交软件需求说明书。 3. **概要设计**:提交概要设计说明书。 4. **详细设计**:提交详细设计说明书。 5. **编码**:提交源程序清单。 6. **测试**:提交测试报告。 7. **维护**:提交维护报告。 #### 十、结构化分析的描述工具及步骤 结构化分析是软件工程中的一种常用方法,它使用以下工具: 1. **数据流图** 2. **数据字典** 3. **结构化语言、判定表、判定树** 结构化分析的步骤如下: 1. **了解当前系统的工作流程**:获取当前系统的物理模型。 2. **抽象出当前系统的逻辑模型**:从物理模型中提取逻辑模型。 3. **建立目标系统的逻辑模型**:基于上述分析建立新的逻辑模型。
- 粉丝: 193
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助