第四章 软件总体设计
- 格式:ppt
- 大小:556.50 KB
- 文档页数:111
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性.(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训.在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境.总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料.5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
《软件工程》第4章软件总体设计软件总体设计是软件工程的一个重要环节,它涉及到软件系统的整体结构和架构的定义,以及软件模块之间的关系和接口的设计。
软件总体设计的目标是确保软件系统能够满足用户需求,并且具有高性能和可扩展性,同时保证系统的可维护性和可测试性。
软件总体设计的过程包括以下几个步骤:1.确定系统的功能需求:根据用户需求和系统分析的结果,定义系统应该具备的功能和特性。
2.划分系统结构:将系统划分为多个模块和子系统,确定各个模块之间的关系和层次结构。
3.定义模块接口:对每个模块定义清晰的接口,包括输入参数、输出参数和功能描述,以便模块之间的协作和集成。
4.设计系统架构:选择合适的架构风格和模式,确定系统的整体结构和组成,包括数据流、控制流和模块之间的通信。
5.设计数据结构和算法:根据系统需求和性能要求,设计合适的数据结构和算法,以满足系统的功能和性能要求。
6.设计系统界面:设计系统与用户和外部系统的界面,包括图形界面、命令行界面和数据交换接口。
7.考虑系统安全性和可靠性:在设计阶段考虑系统的安全性和可靠性需求,设计对应的安全和可靠性机制。
8.进行评审和验证:对软件总体设计进行评审和验证,确保设计的可行性和完整性。
软件总体设计的核心是系统架构设计,系统架构设计要考虑系统的功能需求、性能要求、可扩展性、可维护性、可测试性等因素。
常用的软件架构风格包括层次架构、客户端-服务器架构、分布式架构、面向服务的架构等。
选择合适的架构风格可以提高系统的灵活性和可维护性。
在软件总体设计过程中,还需要考虑到软件的适应性和可移植性。
软件应该能够适应不同平台和操作系统的要求,并能够方便地移植到其他环境中。
为了提高软件的可移植性,可以采用标准化的接口和协议,避免使用具体的硬件和操作系统依赖。
此外,软件总体设计还需要考虑到系统的可维护性和可测试性。
软件系统通常需要进行修改和维护,因此设计时需要考虑到系统的可扩展性和模块之间的解耦。
软件总体设计的内容
软件总体设计是指在软件开发过程中,对整个软件系统进行全面规划和设计的过程。
它涉及到软件架构、模块设计、数据结构设计、接口设计等多个方面,是软件开发的重要阶段之一。
首先,软件总体设计需要考虑系统的整体架构。
这包括确定系统的模块划分、模块之间的关系、数据流向以及整体的运行逻辑。
在这个阶段,需要考虑系统的可扩展性、灵活性以及性能等方面,确保系统能够满足未来的需求。
其次,软件总体设计需要进行模块设计。
这包括对每个模块的功能、输入输出、数据结构、算法等进行详细设计,确保每个模块都能够独立工作并且与其他模块协调配合。
另外,数据结构设计也是软件总体设计的重要内容。
在这个阶段,需要设计系统中所涉及的数据结构,包括数据库设计、文件结构设计等,确保数据能够被有效地组织和管理。
此外,接口设计也是软件总体设计的一部分。
这包括内部模块之间的接口设计,以及系统与外部环境的接口设计,确保系统能够
与其他系统或者用户进行有效的交互。
总的来说,软件总体设计是软件开发过程中至关重要的一环,它直接影响着系统的可靠性、可维护性以及性能。
一个好的软件总体设计能够为软件开发的后续工作奠定良好的基础,提高软件开发的效率和质量。
软件工程-习题及答案---第四章一、判断题1、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。
2、(√)概要设计与详细设计之间的关系是全局和局部的关系。
3、(×)一个模块的作用范围应该大于该模块的控制范围。
4、(√)模块间的耦合性越强,则模块的独立性越弱。
5、(×)在设计模块时,应使一个模块尽量包括多个功能。
6、(√)软件结构图可以利用数据流图映射出来。
7、(×)结构化设计是一种面向数据结构的设计方法。
8、(√)在结构化设计过程中首先要确认DFD。
二、选择题1、软件结构图的形态特征能反映程序重用率的是(C)。
A、深度B、宽度C、扇入D、扇出2、概要设计的目的是确定整个系统的(B)。
A、规模B、功能及模块结构C、费用D、测试方案3、耦合是对软件不同模块之间互连程度的度量。
各种耦合从强到弱的排列为(C)。
A、内容耦合,控制耦合,数据耦合,公共环境耦合B、内容耦合,控制耦合,公共环境耦合,数据耦合C、内容耦合,公共环境耦合,控制耦合,数据耦合D、控制耦合,内容耦合,数据耦合,公共环境耦合4、当一个模块直接使用另一个模块的内部数据时,这种模块之间的耦合为(D)。
A、数据耦合B、公共耦合C、标记耦合D、内容耦合5、数据耦合和控制耦合相比,则(B)成立。
A、数据耦合的耦合性强B、控制耦合的耦合性强C、两者的耦合性相当D、两者的耦合性需要根据具体情况分析6、衡量模块独立性的标准是(D)。
A、耦合的类型B、内聚的类型C、模块信息的隐藏性D、耦合性和内聚性7、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为(A)。
A、时间内聚B、逻辑内聚C、通信内聚D、信息内聚8、为了提高模块的独立性,模块内部最好是(C)。
A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚9、在结构化设计方法中,下面哪种内聚的内聚性最弱(C)。
A、逻辑内聚B、时间内聚C、偶然内聚D、过程内聚10、软件设计是把(A)转换为软件表示的过程。
四川工业科技学院《软件工程与项目管理》课程考试大纲一、课程类型:专业基础课二、课程总学时:8三、考试对象:(年级、专业、层次)年级:18级专业:软件工程层次:本科四、本课程的性质及任务:课程性质:本课程是一门专业基础理论课程,重在培养学生按工程化、标准化、规范化方法从事软件设计与研发的课程,对学生毕业后从事软件和网站开发岗位相关工作有重要意义。
课程定位:通过本课程的学习可以使学生掌握软件项目开发、使用和维护的工程化方法,减少因人为因素出现的软件危机,从而提高软件的生命周期。
本课程主要任务是培养学生在软件设计过程中撰写各种规格说明书,这样也利于学生写作能力和撰写毕业论文能力的提高。
五、考试知识点及要求:第一章软件工程概述(1学时)授课内容:①软件危机的产生、典型表现形式、产生的原因及消除的途径;②软件工程的基本原理、包括软件工程的定义、特性、方法学;③软件生授课目标与要求:通过本章的学习,了解和掌握软件工程的基本概念(如软件和软件工程的定义、等),软件危机的表现形式、产生的原因及消除的途径,软件工程的基本原理、方法学,软件的生存期。
掌握软件过程活动和过程模型,了解CASE。
授课的重点与难点:重点:软件工程的基本原理。
软件过程模型。
难点:软件危机的产生、典型表现形式,软件过程模型。
授课的演示与练习:演示:课堂讲授、多媒体演示、举例分析、课堂讨论练习:课后习题适当,由任课教师出些题目。
授课的建议:建议老师举例说明。
第二章项目分析与规划(1学时)授课内容:①可行性研究的任务、具体步骤、成本效益分析、可行性研究报告;②系统流程图;③系统框架图。
教学要求:深刻理解可行性研究的必要性,掌握可行性研究的任务、过程、成本效益分析以及可行性研究报告的主要内容;掌握系统流程图、系统框架图的基本内容。
授课的重点与难点:系统流程图、系统框架图难点:成本效益分析、可行性研究报告授课的演示与练习:演示:课堂讲授、实例分析、演示法练习:课后习题适当,由任课教师出些题目。