软件设计与体系结构课后练习部分答案
《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件设计与体系结构题目与答案

软件设计与体系结构题目与答案1.各种性能指标及如何到达各种性能指标的方法(1)防止变异模式:是如何设计对象,子系统和系统,使这些元素内部的变化或不稳定性不会对其他元素产生不良影响。
解决方案:识别预测的变化或不稳定之处,分配职责用以创建稳定借口。
(2)依赖反转原理:把你的类从局的现实中隔离开,使他们依赖于抽象类或接口。
它促进了代码面向接口而不是实现,这通过保证对实现的低耦合来增加系统的灵活性。
2.常用的中间件有那几种类型(1)常见的对象请求代理架构(2)面向消息的中间件(3)J2EE(4)消息代理(5)业务过程代理3.有那些常见架构风格(1)管道和过滤器架构风格(2)面向对象风格(3)隐式调用风格(4)客户-服务器风格(5)分层风格(6)仓库风格(7)解释程序风格(8)过程控制风格4.架构师需要的核心技能是什么(1)涉众之间的交流(2)技术知识(3)软件工程学(4)风险管理5.什么是软件架构软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
软件架构是一个系统的草图。
软件架构描述的对象是直接构成系统的抽象组件。
各个组件之间的连接则明确和相对细致的描述组件之间的通讯。
在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。
在面向对象领域中,组件之间的连接通常用接口(计算机科学)实现。
6.什么是架构风格一组原则。
你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。
7.什么是架构视图一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,从而省略了此方面无关的实体。
8.各种架构风格的组件和连接器是什么1.管道和过滤器架构风格:适用于需要定义一系列的执行规则数据的独立运算,组件在输入时读数据流,在输出时产生数据流组件:称为过滤器,应用于对局部的输入流的转换,经常增长的计算,因此,在输入结束前输出就开始了连接器:称为管道,给流提供管道,把一个过滤器的输出传输到另一个输入。
软件体系结构课后习题第三章作业

题1.层次系统结构和基于消息的层次系统结构有什么区别?答:层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。
在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。
这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。
连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。
这种风格支持基于可增加抽象层的设计。
允许将一个复杂问题分解成一个增量步骤序列的实现。
由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。
而在基于消息的层次系统结构中构件不直接调用一个过程,而是触发或广播一个或多个事件。
系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。
这种风格的构件是一些模块,模块既可以是一些过程,又可以是一些事件的集合。
过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。
这种风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。
这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。
题2.分析比较B/S、二层C/S和三层C/S,指出各自的优点和缺点。
二层C/S结构的优点:◆C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
◆系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
◆在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。
软件设计与体系结构课后习题答案(秦航)

第二章 1.什么是软件模型?
软件模型是指软件的一种抽象,目前,一般通过非数学模型来描述,本书中将统一基 本单元的抽象称为软件模型。 2.软件模型对软件体系结构的作用是什么?
5.软件体系结构设计方法中的水平型设计和垂直型设计各有什么特点? 1)水平型设计是指运用通用的建模设计工具和表达语言所进行的软件体系结构的设计。 所使用的建模设计工具和表达语言不是专门针对软件体系结构的,因此水平型设计具 有较大的自由度及其带来的不一致性。 2)垂直型设计是指运用面向体系结构的专用建模设计工具及其表达模型所进行的软件 体系结构的设计,一般来说这种专用工具针对软件体系结构的描述首先定义一种表达 模型,然后围绕该模型,通过提供相应的设计工具来支持软件体系结构的设计。 6.什么是 ADL? ADL 是一种用于描述的语言,它可以在指定的抽象层次上描述软件体系结构,它同样 拥有形式化的语法、语义以及严格定义的表达符号,或者是简单易懂的直观抽象表达。 7.典型的 ADL 有哪几种? ①WRIGHT ②C2 ③Darwin ④ACME ⑤xADL ⑥ -ADL ⑦KDL 第三章 1.在整个开发过程中,UML 主要起到什么作用? UML 是一种通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建 模,它融入了软件工程领域的新思想、新方法和新技术,它的作用域不仅支持面向对 象的分析和设计,而且支持从需求分析开始的软件开发的全过程。 2.如何利用模式解决在面向对象系统分析与设计中遇到的问题? 在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构 可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集 合内部的数据存储结构,二是遍历集合内部的数据。面向对象设计原则中有一条是类 的单一职责原则,所以我们要尽可能的去分解这些职责,用不同的类去承担不同的职 责。Iterator 模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样 既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。 3.UML 中都包含哪些图?简述这些图的作用。 ①类图:用来刻画软件中类等元素的静态结构和关系。
软件设计与体系结构练习题全解

软件设计与体系结构复习一、填空题(一)Chapter 11.软件设计模式通常包含4个基本要素:模式名称、问题、解决方案以及效果。
2.软件设计模式可以分为三个层次:架构模式、设计模式、习惯用法。
3.软件设计模式是对软件设计经验的总结,是对软件设计中特定环境下反复出现的设计问题的、经过验证的、成功解决方案的描述。
(二)chapter 51.早在1968年,计算机领域的大师Dijstra指出:项目规模越大,其整体架构就越重要。
2. 软件体系结构的三个基本要素是:构件、连接件、约束3. 对软件质量的关注正是软件架构师与一般的软件设计师的不同之处,一般的软件设计师主要关注软件功能的设计,并要遵循架构师给出的设计准则。
4. IEEE 1471-2000标准定义软件体系结构是“系统的基本组织结构,包括系统构成要素、这些构成要素相互之间以及运行环境之间的关系,还包括系统设计及演化时应遵循的原则”。
(三)chapter 21.创建型软件设计模式是解决_对象创建机制_的设计模式。
2.创建型软件设计模式的两个主导思想:封装了系统使用的具体类的知识,隐藏这些具体类的实例被创建与结合的细节。
3.简单工厂方法模式的特点是仅仅有一个具体的创建者类,并且在此类中包含一个__静态工厂_____方法。
4.生成器模式是一步一步创建一个复杂的对象,允许用户通过制定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节5. 单例模式是指确保一个仅有一个唯一的实例,并提供一个全局的访问点。
6. 在单例模式中,为了防止客户程序利用构造方法创建多个对象,要将构造方法声明为private(或私有)类型。
(四)chapter 31. 结构型软件设计模式的主要目的是将不同的类和对象组合在一起,形成更大或者更复杂的结构体。
2. 组合模式指将对象组合成树形结构,以表示“部分-整体”的层次结构。
该模式使得对单个对象和组合对象的使用具有一致性。
3.适配器模式可以分为两种:类适配器和对象适配器4. 类适配器模式通过继承的方式改变已经存在的接口而形成新的接口,使之适合客户类调用的需要;对象适配器模式使用调用或者聚合的方式选择调用多个类中的方法,形成新的接口。
软件体系结构课后习题参考答案

软件体系结构第四章作业题1.请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:一、基于体系结构为基础的基于构件组装的软件开发模型,如基于构件的开发模型和基于体系结构的开发模型等。
基于体系结构的开发模型是以软件体系结构为核心,以基于构件的开发方法为基础。
然后采用迭代增量方式进行分析和设计,将功能设计空间映射到结构设计空间,再由结构设计空间映射到系统设计空间的过程。
该开发模型把软件生命周期分为软件定义、需求分析和定义、体系结构设计、软件系统设计和软件实现5个阶段.特点:是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。
优点:基于构件的开发方法使得软件开发不再一切从头开发,开发的过程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程。
构件组装模型导致了软件的复用,提高了软件开发的效率。
软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。
并且软件复用从代码级的复用提升到构件和体系结构级的复用。
缺点:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,因而引入了较大的风险。
可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。
客户的满意度低,并且由于过分依赖于构件,所以构件库的质量影响着产品质量。
二、以软件需求完全确定为前提软件开发模型,如瀑布模型等。
特点:软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性;优点:开发流程简单。
缺点:是开发后期要改正早期存在的问题需要付出很高的代价,用户需要等待较长时间才能够看到软件产品,增加了风险系数。
并且如果在开发过程存在阻塞问题,则影响开发效率。
三、在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现软件开发模型等。
特点:软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。
通过迭代过程实现软件的逐步演化,最终得到软件产品。
Frank软件设计与体系结构复习整理题目及答案

1、各种性能指标的定义及如何到达各种性能指标的方法 ppt1-8 119 页-124 页
性能指标:吞吐量 Throughput、响应时间 Response Time、Deadlines Throughput:衡量应用程序在单位时间内必须执行的工作量。. Transactions per second Messages per minute peek & average Response Time:测量应用程序在处理请求时所显示的延迟。E.g. 95% of responses in sub-4 seconds, and all within 10 seconds. Usually measured in (milli)seconds Often an important metric for users guaranteed & average Deadlines:在某个特定时间之前必须完成一些事情。
软件体系架构hitecture)是一系列相关的抽象模式,用于指导大型软件系统各个 方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组 件之间的连接则明确和相对细致地描述组件之间的通讯。 在实现阶段, 这些抽象组件被细化为实际的组 件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现 系统的软件体系结构是建立一个对系统来说所需要的结构,包括软件元素,它们之间的关系,以及两者 的性质。
软 件
体
系
2
Байду номын сангаас
架 构
软件体系架构复习题48% By Frank
里面。 优点:可以改变实施而不影响客户,可以设计作为独立的交互代理的集合的系统 缺点:一个对象与另一个对象进行交互时第一个对象必须知道第二个对象的身份。对象引起的副作用。 举例:java,C#开发的系统 组件:对象 连接器:函数和过程调用(方法) (3)隐式调用风格(Implicit Invocation Style) 应用于涉及到组件的松耦合集,其中的每一个都执行一些操作,还可能允许其他的操作。 尤其对 必须很快重新配置的应用很有用。 不是直接的引用过程: 一个组件能发表一个或多个事件;在系统中的其他组件能够在事件中注册 一个兴趣通过与事件和过程结合。当一个事件被声明后,广播系统(连接器)自己引用已经注册的事件 的所有过程,所有声明的事件“隐式”造成了过程在其他模块的调用。 优点:为重用提供强大支持、简化系统演化; 缺点:当一个系统广播一个事件时,不知道其他哪些组件会响应,不知道依赖于响应被调用的顺序,不 知道响应什么时候结束。 举例:数据库管理系统中执行完整性约束(触发器) (4)客户-服务器风格(Client-Server Style) PPT64 页 适用于涉及到分布式的数据和跨越一系列组件的处理。 优点:数据分布简单明确、位置透明、混合和匹配异构平台、易于添加新服务器或升级现有服务器。 缺点:没有名称和服务的中央寄存器—很难找到什么服务是没用的 举例:文件服务器、数据库服务器、对象服务器 组件: 服务器:提供专门的服务的标准独立的组件,如打印,数据管理等。 客户端:调用服务器提供的服务的组件。 连接器:允许客户端访问远程服务器的网络。 (5)分层风格(Layered Style) PPT72 页 适用于涉及到分布式的能够分层的组织的类的服务, 每层给它的上一层提供服务, 同时作为下一 层的客户端,只有仔细地从内层选择选择过程,才能用于他们临近的外层。 优点:设计(基于提高抽象层次) 、改善(一个层的功能改变最多影响两个层) 、重用(相同层的不同实 现可以交替使用) 缺点:并不是所有的系统都可以很容易的实现分层,性能需求可能迫使底层实现高级功能的耦合。 举例:分层通信协议、操作系统 组件:典型的过程的集合。 连接器:典型的在有限的可见性下的过程调用 (6) 仓库风格(Repository Style) PPT80 页 适用于主要问题是建立、增加和维护复杂信息的主体部分,信息一定要能够用很多种方式操作。 经常需要长期的存在。 优点:有效存储大量数据、共享模式模型、集中式管理 缺点:必须先达成一个数据模型、很难分配数据、数据升级很昂贵 举例:信息系统、编程环境、图形编辑器、人工智能知识基础、逆向工程系统 组件: 能够表示出系统的正确状态的主要的数据结构 在中央数据结构上运行的独立组件集合。 连接器:典型的过程调用或是直接内存访问
软件设计师计算机组成与体系结构

[模拟] 软件设计师计算机组成与体系结构选择题第1题:阵列处理机属于______计算机。
A.SISDB.SIMDC.MISDD.MIMD参考答案:B第2题:采用______不能将多个处理机互连构成多处理机系统。
A.STD总线B.交叉开关C.PCI总线D.Centronic总线参考答案:C每一条指令都可以分解为取指、分析和执行3步。
已知取指时间t<sub>取指</sub>=5△t,分析时间t<sub>分析</sub>=2△t,执行时间t<sub>执行</sub>=5△t。
如果按顺序方式从头到尾执行完500条指令需(3) △t;如果按照[执行]k、[分析]k+1、[取指]k+2重叠的流水线方式执行指令,从头到尾执行完500条指令需(4) △t。
第3题:A.5590B.5595C.6000D.6007参考答案:C第4题:A.2492B.2500C.2510D.2515参考答案:C第5题:两个同符号的数相加或异符号的数相减,所得结果的符号位SF和进位标志CF进行______运算为1时,表示运算的结果产生溢出。
A.与B.或C.与非D.异或参考答案:D高速缓存Cache与主存间采用全相联地址映像方式,高速缓存的容量为4MB,分为4块,每块1MB,主存容量为256MB。
若主存读写时间为30ns,高速缓存的读写时间为3ns,平均读写时间为3.27ns,则该高速缓存的命中率为(6) %。
若地址变换表如表8-1所示,则主存地址为8888888H时,高速缓存地址为(7) H。
第6题:A.90B.95C.97D.99参考答案:D第7题:A.488888B.388888C.288888D.188888参考答案:D第8题:某指令流水线由5段组成,各段所需要的时间如图8-1所示。
连续输入10条指令时的吞吐率为______。
A.10/70△tB.10/49△tC.10/35△tD.10/30△t参考答案:C第9题:若内存按字节编址,用存储容量为32k×8比特的存储器芯片构成地址编号为A0000H~DFFFFH的内存空间,则至少需要______片。
Frank软件设计及体系结构复习整理题目及答案

5、有哪些常见架构风格?(PPT 40-98)
(1)管道和过滤器架构风格(Pipe and Filter Architectural Style) PPT 40 页 适用于需要定义一系列的执行规则数据的独立运算。 组件在输入时读数据流,在输出时产生数据 流。 优点:易于理解、支持重用、容易保持或增强、允许某些专业分析、支持并发执行 缺点:转换特性导致其不擅长处理交互系统、书写自己的过滤器时,过度地解析或不解析导致性能损失 和更加复杂 举例:unix 的 shell 脚本、传统编译器 组件:称为过滤器,应用于对局部的输入流的转换,计算常常是增量的,因此,在输入结束前输出 就开始了。 . 连接器:称为管道,给流提供管道,把一个过滤器的输出传输到另一个输入。 (2)面向对象风格(Object-Oriented Style) PPT49 页 适用于主要问题是识别和保护信息的相关主体。 数据和它们相关的操作封装在一个抽象数据类型
架 构
2、常用的中间件有哪几种类型(四种)
BizTalk, TIBCO StaffWare, ActiveBPEL
BizTalk, WebSphere Message Broker, SonicMQ J2EE, CCM, .NET
Message-Oriented Middleware, Distributed Objects Systems
3、什么是软件架构(好几种定义,但是主要点是结构,元素,关系,接口)PPT 第 4 页
架构是一个系统的基本组织,体现在它的组件之间的相互关系和环境,其设计原则和进化论。 程序或 计算系统的软件架构是系统的结构或结构,由软件元素,这些元素的外部可见的属性,它们之间的关系。 软件架构超过计算的算法和数据结构;设计和指定的总体系统结构作为一种新的考虑。结构性问题 包括: 组织和全局控制结构;通信协议,同步和数据访问;分配的功能设计元素;物理分布;设计元素构成; 扩展和性能,设计方案的选择。 它是关于软件设计:所有的架构是软件设计,但不是所有的设计都是软件架构。设计过程的一个部 分;简单地说,架构关注“一旦系统建立后就很难或是不可能改变的问题”:质量属性,例如安全性、 性能;非功能性需求,如开销、硬件配置。
软件体系结构习题答案

支持基于抽象程度递增的系统设计;支持功能增强;支持重用。分层系统的缺点:并不是每个系统都可以很容易的划分为分层的模式,甚至即使是层次化的,出于性能的考虑,也不得不吧一些低及或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。
(1)
(2)
(3)应用层:处于最底层,包括构件链接,构件接口和执行中间层:包括连接件配置,构件配置,构件描述及执行体系结构层:位于最上层,控制和管理整个体系结构,包括体系结构配置,体系结构描述和执行。
1、请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:软件开发模型有演化模型、螺旋模型、喷泉模型、智能模型等。传统软件开发模型存在开发效率不高,不能很好地支持软件重用等缺点。在
b/s风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/web服务器/数据库服务器。优点(1)基于b/s体系结构的软件,
系统安装,修改和维护全在服务器端解决。(2)提供了异种机,异种网,异种应用服务的联机,联网,同意服务的最现实的开放性基础。缺点(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。(2)在数据查询等响应速度上,要远远低于c/s体系结构。(3)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。
3、sis和dssa分别用在哪些场合?
答:1.dssa只对某一个领域进行设计专家知识的提取,存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结
构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个领域。
2.dssa的特定领域参考体系结构通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。
软件设计与体系结构智慧树知到课后章节答案2023年下云南大学

软件设计与体系结构智慧树知到课后章节答案2023年下云南大学云南大学第一章测试1.以下对软件架构师、软件工程师、系统分析师表述正确的是?()答案:软件工程师一般专注于模块级、功能代码级的开发工作,针对功能模块级的代码细节要求较高,但对系统级的架构设计要求较低。
对业务分析、项目管理、运营维护、法律规定则不做过多要求。
;系统分析师的主要职责是在于需求分析、开发管理、运行维护、法律法规等方面。
对代码细节开发不做过多要求,但需要掌握一定的软件架构知识。
;软件架构师的重点工作是架构与设计这两个关键环节上,因此,对设计、架构、代码撰写都有较高的要求。
但是,对需求分析、项目管理、运管管理、法律法规的要求相对较低。
2.《软件工程》主要聚焦于有关软件需求分析,软件过程模型,软件项目管理、软件运营维护、软件迭代升级等软件生命周期的相关理论和方法学。
()答案:对3.《软件设计与体系结构》则聚焦于软件的设计原则和架构模式。
以撰写高质量程序代码为目标,通过四个层次的方法学理论,指导开发者在不同的条件下,撰写较为高质量的程序代码。
()答案:对第二章测试1.GRASP设计原则主要指导开发者进行:()答案:职责设计2.信息专家原则的主要含义是?()答案:一个类能否分配一个职责的基本条件是该类是否拥有执行该职责的全部信息3.以下哪种情况中,创建者的关系强度最高?()答案:A类组合B类(B是A的成员,B实例不能离开A实例单独存在)4.以下耦合关系中,哪种耦合强度最高?()答案:A类引用B类5.以下说法相对正确的是?()答案:类和模块的内部应该尽量的提高内聚,外部应该降低耦合;类和模块的应同时考虑高内聚和低耦合原则6.控制器原则的主要含义是?()答案:应该尽量将功能控制代码分配在一个单独的控制器实现类中,UI默认调用抽象控制器类来执行功能;在各类编程语言的类库中,常见的控制器类有handler, Action, Listener等。
软件体系结构考试习题集含答案样本

1.面向对象办法优势体当前(ABD )A.简化软件开发过程B.支持软件复用C.提高软件运营效率D.改进软件构造2.顾客界面设计中三条“黄金规则”是(ABC )A.使系统处在顾客控制之中B.减少顾客记忆承担C.保持界面一致性D.保证顾客易学性E.顾客界面分析和设计过程是迭代, 其中涉及活动是(ABCD )F.顾客、任务以及环境分析和建模G.界面设计H.界面实现I.界面确认3.界面确认需要注意三个方面(ABC )A.界面对的完毕了顾客任务, 适应顾客任务变化B.易学性和易用限度C.顾客接受限度D.顾客习惯4.顾客界面分析时普通采用信息获取方式涉及(ABCD )A.顾客会谈B.销售人员信息采集C.市场分析D.顾客支持人员信息收集5.(C )把完毕一种特定功能动作序列抽象为一种过程名和参数表A.数据抽象B.动作抽象C.过程抽象D.类型抽象6.(A)把一种数据对象定义抽象为一种数据类型名A.数据抽象B.动作抽象C.过程抽象D.类型抽象7.软件体系构造设计需要考虑如下(ABCD )A.合用性B.构造稳定性C.可扩展性D.可复用性8.模块设计时应当考虑(AB )A.模块功能独立B.模块信息隐藏C.模块接口简朴D.模块实现简朴9.一种完整软件设计重要活动涉及有(ABCD )A.体系构造设计B.界面设计C.模块/子系统设计、D.数据模型、过程/算法设计等E.模块化是指把一种复杂问题分割成若干个可管理小问题后, 更易于理解, 模块化正是以此为根据, 在划分模块过程中应当考虑到(ABC )F.模块可分解性、可组装型G.模块可理解性、持续性、H.模块保护1.尽量低分割模块, 使得问题难度降到最2.什么是软件工程?构成软件工程要素是什么?3.软件工程是将系统化、规范、可度量办法应用于软件开发、运营和维护过程, 即将工程化应用于软件开发和管理之中, 对所选办法研究。
软件工程要素由办法、工具和过程构成。
办法支撑过程和工具, 而过程和工具增进办法学研究。
软件体系结构课后作业及参考答案

1、就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。
答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。
同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。
2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。
3、为什么要研究软件体系结构?答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。
2.软件体系结构代表了早期的设计决策成果。
3.软件体系结构可以作为一种可变换的模型。
4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成?答:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器);连接件(connector)是关系的抽象,用以表示构件之间的相互作用。
如过程调用、管道、远程过程调用等;限制(constrain):用于对构件和连接件的语义说明。
5、在软件体系结构的研究和应用中,你认为还有哪些不足之处?答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。
(2)ADL繁多,缺乏同意的ADL的支持。
(3)软件体系结构研究缺乏统一的理论模型支持。
(4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。
(5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。
(6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。
软件设计与体系结构练习题参考答案

一、选择题CDABC DABCC ACDCC BADCA DDCBC ADBDA二、判断题√√X√√√√X X√X√√√X X X X X√√X√ X X X三、简答题1、简述实体类的概念及其作用。
实体类实现所谓的对象关系映射(Object Relational Mapping,简称ORM),是为了解决面向对象的类与关系数据库的表之间,存在的不匹配的现象,通过使用描述对象和关系之间映射的元数据,在程序中的类对象,与关系数据库的表之间建立持久的关系,用于在程序中描述数据库表。
本质上就是将数据从一种形式转换到另外一种形式。
简单地说,就是描述一个业务实体的类。
实体类对象是现实世界中实体对象在计算机中的表示,在层与层之间以及层内模块间进行数据传输。
2、敏捷开发宣言。
我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法,通过这项工作,我们认为:个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划虽然右项也有其价值,但我们认为左项更加重要。
3、简述XP的短交付周期的概念。
迭代计划: XP项目每两周交付一次可以工作的软件。
每两周的迭代都实现了利益相关者的一些需求,在每次迭代结束时,会给利益相关者演示迭代生成的系统,以得到他们的反馈。
迭代是一次较小的交付,可能会被加入到产品中,也可能不会。
每个周期(Iteration)开发的需求都是用户最需要的东西。
发布计划:XP团队通常会创建一个计划来规划随后大约6次迭代的内容。
一次发布通常需要2-3个月的工作。
它表示了一次较大的交付,通常此次交付会被加入到产品中。
发布计划不是一成不变的,客户可以随时改变计划的内容,他可以取消用户故事,编写新的用户故事,或者改变用户故事的优先级别。
但是客户应该更改后面迭代的内容,尽量不要更改下一次迭代。
4、测试驱动开发的概念及其积极作用。
编写所有产品代码的目的都是为了使失败的单元测试能够通过。
整理软件体系结构课后作业及答案

软件体系结构课后作业及答案整理表姓名:职业工种:申请级别:受理机构:填报日期:A4打印/ 修订/ 内容可编辑文件编号:3B-E4-81-1F-1B本科实验大纲(计算机科学与技术学院2016版-信息安全专业课程)教务处制第II页共97目录03402022课程名称:计算机组成原理203402025课程名称:数据库系统原理703402026课程名称:网络安全1003402027课程名称:网络编程技术1303402509课程名称:算法与数据结构1903402512课程名称:计算机网络(Ⅱ)2103402517课程名称:程序设计基础2403402521课程名称:操作系统2703404001课程名称:微机操作实习3103404010课程名称:程序设计实践3403404016课程名称:计算机网络课程设计37 03406001课程名称:企业实习4303406002课程名称:Linux操作系统实践4503424002课程名称:密码学课程设计4803404020课程名称:网络安全课程设计5203424001课程名称:信息安全综合设计与实践55 03401521课程名称:汇编语言程序设计6003402029课程名称:网络管理6303422001课程名称:计算机病毒6803422005课程名称:计算机系统安全技术71 03402023课程名称:嵌入式系统设计与开发74 03402024课程名称:嵌入式系统体系结构实验大纲77 03406003课程名称:互联网应用服务开发与安全80 03406004课程名称:民航信息系统8403412007课程名称:移动终端程序开发与应用87 03422003课程名称:信息隐藏技术9003422006课程名称:网络攻击与防御93第1页共9703402022课程名称:计算机组成原理英文名称:Principle of Computer Organization课程编号:03402022一、实验(上机)学时/课程总学时: 12学时 /64学时二、先修课程:计算机导论、电子线路分析(I)、数字逻辑三、本实验课程在专业人才培养中的地位作用计算机组成原理课程是我院的学科专业基础必修课之一,也是本学院培养本科生形成专业思想的重要专业课程之一,是本学院得主干必修课之一。
课后练习及答案7

软件体系结构设计(习题与参考答案)[选择题]1. ()系统体系结构的最佳表示形式是一个可执行的软件原型。
(B)A. 真B. 假2. ()软件体系结构描述是不同项目相关人员之间进行沟通的使能器。
(A)A. 真B. 假3. ()良好的分层体系结构有利于系统的扩展与维护。
(A)A. 真B. 假4. ()消除两个包之间出现的循环依赖在技术上是不可行的。
(B)A. 真B. 假5. ()设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。
(A)A. 真B. 假6. 程序编译器的体系结构适合使用()。
(A)A. 仓库体系结构B. 模型-视图-控制器结构C. 客户机/服务器结构D. 以上选项都不是7. 网站系统是一个典型的()。
(C)A. 仓库体系结构B. 胖客户机/服务器结构C. 瘦客户机/服务器结构D. 以上选项都不是8. 在分层体系结构中,()实现与实体对象相关的业务逻辑。
(D)A. 表示层B. 持久层C. 实体层D. 控制层9. ()可以帮助人们简单方便地复用已经成功的设计或体系结构。
(B)A. 商业组件B. 设计模式C. 遗留系统D. 需求规格说明10. ()用于封装具体的平台,从而使应用程序可以在不同的平台上运行。
(A)A. 抽象工厂模式B. 外观模式C. 观察者模式D. 以上选项都不是[练习题]1. 良好的软件体系结构设计有什么好处?答案要点:软件体系结构设计过程的核心在于建立系统的一个基本框架,即识别出系统的主要组件以及这些组件之间的通信。
良好的体系结构设计具有以下主要好处:y项目相关人员之间的沟通:软件体系结构是系统的一种高层表示,它可以成为不同项目相关人员之间沟通的使能器;y系统分析:在系统分析过程中确定系统的初步体系结构,将对系统是否满足关键性需求(如性能、可靠性和可维护性等)产生很大的影响;y大规模复用:体系结构可以在具有相似需求的系统之间互用,从而支持大规模的复用。
2. 消除包之间的循环依赖性有哪两种主要方法?参考答案:将PackageA中的循环依赖元素提取到PackageC中(1)PackageC 中的循环依赖PackageD 中(2)3. 给下面的系统设计一个适当的体系结构:参考火车站自动售票系统客户机模型,其中自动售票机作为客户机负责处理应用逻辑并实现(2) MVC 结构,其中模型是三维几何形体的边界表示,视图将模型中的几(3) 三层体系结构,其中一个数据服务器管理客户的帐户数据库,一个Web 服务4. 什么是三层体系结构?它的优缺点是什么?结构将系统划分成表示层、应用逻辑层和数据存储层,其中表示层由客户机上的浏览器处y 之间是松耦合关系,二者通过标准的HTML 语言进行交互,客户端的维y 务器之间是松耦合关系,应用服务器可以通过标准的数据访问接口(如(1) 火车站自动售票系统(2) 三维几何造型系统(3) 网上银行系统答案:(1) 这是一个典型的胖与系统的交互,服务器是一个大型主机,运行火车票的数据库。
软件设计与体系结构课后题答案

缺点:
子类太多
何时采用:
1.个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时。
2.某项业务有多个状态,通常都是一些枚举常量,状态的变化都是依靠大量的多分支判断语句来实现,此时应该考虑将每一种状态定义为State的子类。这样这些对象就可以不依赖于其他对象而独立变化,也可以很好的面对需求的改变。
3.在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,但新的需求开发必须依赖它。为新系统开发一个外观类,来提供设计粗糙或高度复杂的遗留代码的比较清晰的简单接口,让新系统和Facade对象交互,Facade与遗留代码交互所有复杂的工作。
【建造者】将一个复杂对象的构建与它的表示分离,使得同样的构造过程可以创建不同的表示。
【原型模式】指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。
结构图:
优点:
1.性能优良:原型模型是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模型可以更好地体现其优点。
【依赖倒转】抽象不应该依赖于细节,细节应该依赖于抽象。要针对接口编程,不要对实现编程。
【里氏代换】在软件里面,把父类都替换成它的子类,程序行为没有变化。简单地说,子类型必须能够替换掉它们的父类型。
【迪米特】如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
3.一个对象多个修改者的场景:一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用
2.1-2.2软件件体系结构作业答案

2.1 工厂方法与抽象工厂模式一、在简单工厂方法模式、工厂方法模式与抽象工厂模式中,哪个模式符合开闭原则?为什么?哪个模式一般不符合开闭原则?或者说明在哪种情况下,开闭原则成立,哪种情况下,开闭原则不成立。
答:简单工厂模式一般不符合开闭原则。
在简单工厂模式中,如果要增加一个新产品类,相应地在工厂类中也要增加一个条件语句,用于创建新的产品类的对象。
也就是说,必须修改工厂类的源代码。
工厂方法模式和抽象工厂模式符合开闭原则。
因为在工厂方法模式和抽象工厂模式中,无需修改或者重新编译已经存在的代码,就可以添加新的产品类。
开闭模式是指对扩展开放,对修改关闭,说的更通俗点,就是说开发了一个软件,应该可以对它进行功能扩展(开放),而在进行这些扩展的时候,不需要对原来的程序进行修改(关闭)。
二、图2.17所示设计类图是关于游戏软件的设计。
在该设计中,SlowGameFactory类负责创建SlowFighter对象与SlowMonster对象,并且将创建完的对象以其超类类型返回给ClientGUI对象。
然后,ClientGUI对象将操纵SlowFighter 对象与SlowMonster对象,使得它们互相打斗。
问题与任务:1、上述设计使用了什么设计模式?2、请在以上设计类图中添加4个新的类MedFighter、SuperFighter、MedMonster和SuperMonster,以便使得MedFighter对象能够对应于MedMonster对象;SuperFighter对象能够对应于SuperMonster对象,绘制新设计类图;3、除了以上添加的4个类以外,在以上类图中还应该添加什么类?4、描述新的设计类图;5、明确说明新设计的优点。
答:1、上述设计使用抽象工厂设计模式。
23、SuperGameFactory MedGameFactory4、多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
软件设计与体系结构课后练习部分答案(DOC)

软件设计与体系结构课后练习部分答案(DOC)第一章作业6.简要介绍了软件设计在软件工程中的地位和重要性。
答:位置:软件需求分析?需求规格?软件设计?设计文件?软件编码。
重要性:(1)它是软件需求的直接体现;(2)为软件实施提供直接依据;(3)将综合考虑软件系统的各种约束条件并给出相应方案;(4)软件设计的质量将决定最终软件系统的质量;(5)及早发现软件设计中的错误将大大降低软件修复和维护的成本。
7、软件设计应该包含哪些要素?答复:软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
8.软件架构和软件设计之间的关系是什么?软件架构出现的必然性和意义是什么?答复:软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。
软件体系结构的含义:软件体系结构将组件和组件之间的连接作为软件体系结构的基本组件。
软件体系结构使软件重用从代码重用发展到设计重用和过程重用,为不同的人提供了一种通用的语言,反映了系统的早期设计决策,作为系统设计的抽象,为框架和组件的共享和重用,以及基于体系结构的软件开发提供了强有力的支持。
第二章作业1.简要描述UML的特点和用途。
答复:uml的发起者在最初制定uml时,充分考虑了各种需求、方法和语言的特点使uml在表达能力、对新技术的包容能力和扩张性等方面具有显著的优势:(1)它为用户提供了一种统一、强大的可视化建模语言来描述应用问题的需求模型、设计模型和实现模型。
(2)提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。
(3)它独立于实现语言和方法,但支持所有方法,涵盖了面向对象分析和设计的相关概念和方法。
(4)独立于任何开发过程,但支持软件开发全过程。
(5)它为理解建模语言提供了形式化基础,用元素类型描述了基本语义,用OCL描述了定义良好的规则,用自然语言描述了动态语义。
软件设计与体系结构题目与答案

1.各种性能指标及如何到达各种性能指标的方法(1)防止变异模式:是如何设计对象,子系统和系统,使这些元素内部的变化或不稳定性不会对其他元素产生不良影响。
解决方案:识别预测的变化或不稳定之处,分配职责用以创建稳定借口。
(2)依赖反转原理:把你的类从局的现实中隔离开,使他们依赖于抽象类或接口。
它促进了代码面向接口而不是实现,这通过保证对实现的低耦合来增加系统的灵活性。
2.常用的中间件有那几种类型(1)常见的对象请求代理架构(2)面向消息的中间件(3)J2EE(4)消息代理(5)业务过程代理3.有那些常见架构风格(1)管道和过滤器架构风格(2)面向对象风格(3)隐式调用风格(4)客户-服务器风格(5)分层风格(6)仓库风格(7)解释程序风格(8)过程控制风格4.架构师需要的核心技能是什么(1)涉众之间的交流(2)技术知识(3)软件工程学(4)风险管理5.什么是软件架构软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
软件架构是一个系统的草图。
软件架构描述的对象是直接构成系统的抽象组件。
各个组件之间的连接则明确和相对细致的描述组件之间的通讯。
在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。
在面向对象领域中,组件之间的连接通常用接口(计算机科学)实现。
6.什么是架构风格一组原则。
你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。
7.什么是架构视图一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,从而省略了此方面无关的实体。
8.各种架构风格的组件和连接器是什么1.管道和过滤器架构风格:适用于需要定义一系列的执行规则数据的独立运算,组件在输入时读数据流,在输出时产生数据流组件:称为过滤器,应用于对局部的输入流的转换,经常增长的计算,因此,在输入结束前输出就开始了连接器:称为管道,给流提供管道,把一个过滤器的输出传输到另一个输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、简述模块化与信息隐藏在软件设计中的意义。
答:
软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块,这些模块可以被组装起来满足整个问题的需求。在软件设计中实现了功能划分把复杂的大的功能划分成简单的小的模块结构,尽量降低每个模块的成本,减少接口,确保软件总成本最低。
模块化使开活动更加简单的一个重要因素是模块的信息隐藏,即一个模块的开发者不必看到模块的内部,只需要知道其接口即可,使开发者的复杂性降低,不仅支持模块的并行开发,而且还可以减少测试和后期维护的工作量。
1、简述UML的特点和用途。
答:
UML的发起者在最初制定UML时,充分考虑了各种需求、方法和语言的特点使UML在表达能力、对新技术的包容能力和扩张性等方面具有显著的优势:
(1)为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的需求
模型、设计模型和实现模型。
(2)提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定
(3)类图和对象图的联系:对象是类的实例,对象图也可以看做类图的实例,对象之间的连接是类之间的关联关系的实例。对象图描述在特定时刻和特定环境下,类图中类的具体实例以及这些实例之间的具体连接关系,能帮助人们理解一个比较复杂的类图。
(4)类图和对象图的区别:对象的名字下面要加下划线,对象名称后可以注明所属的类。在一个对象图中可以同时出现一个类的多个实例。
7、软件设计应该包含哪些要素?
答:
软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
8、软件体系结构与软件设计有何关系?软件体系结构的出现有何必然性和重要意义?
答:
软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。
5、简要叙述类图在UML中的意义和重要性,以及类图和对象图有何联系与区别。
答:
(1)意义:类图用来刻画软件中类等元素的静态结构和关系。
(2)重要性:面向对象软件的最终实现体现为多个类的实现和组织,因此类图与面向对象软件实现之间的映射最为直观,对软件结构的设计至关重要,是软件实现要遵循的主要规格说明。
组成部分。
(5)多态。多态指父类及其子类中,对外接口的定义形式相同,却可以对应多种接口的实现形态。
(6)消息。消息传递是对象与其外部世界相互关联的唯一途径。
4、UML结构建模和行为建模有何区别?
答:
结构建模被称为静态建模,主要用来描述系统中包含的元素以及元素之间的关系;
行为模型被称为动态模型,主要用来刻画系统中的动态行为、过程和步骤。
2、在面向对象开发方法中,对象、类、继承、聚集、多态、消息等概念分别指什么?
答:
(1)对象。对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属
性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的
外部服务。
(2)类。类是某些对象的共同特征(属性和操作)的表示。对象是类的实例,类是对象
软件体系结构的意义:软件体系结构将构件以及构件之间的连接作为软件体系结构的基本组成部分。软件体系结构使软件复用从代码复用发展到设计复用和过程复用,为不同的人提供了共同的语言,体现了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享与复用,基于体系结构的软件开发提供了有力的支持。
第二章作业
应用领域提出具体的概念、符号表示和约束。
(3)独立于实现语言和方法学,但支持所有的方法学,覆盖了面向对象分析和设计的相
关概念和方法学。
(4)独立于任何开发过程,但支持软件开发全过程。
(5)提供对建模语言进行理解的形式化基础,用元素型描述基本语义,OCL描述良定义规则,自然语言描述动态语义。
(6)增强面向对象工具之间的互操作性,便于不同系统间的集成。UML的目标是以面向对象方式描述任何类型的系统,具有广泛的应用领域。UML最常用于建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程、处理复杂数据的信息系统、具有实时要求的工业系统或工业过程、甚至数字电路等。
创建的模板。
(3)继承。类之间的继承关系是实现现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享,即子类可以沿用父类(被继承类)的某些特征。子类也可以具有自己独有的属性和操作。
(4)聚集。除遗传关系外,现实世界中还普遍存在着部分整体关系。这种关系在面向对象方法学中表示为类之间的聚集关系。在聚集关系下,部分类的对象是整体类对象的一个
5、为什么软件设计过程常常是一个不断迭代的过程?
答:
设计者一般不可能一次就能完成一个完整的设计,软件设计可能是一个反复的过程,在设计过程中需要不断添加设计元素和设计细节,并对先前的设计方案进行修正。所以,软件设计一般都可以被看做是迭代的过程。
3、内聚度、耦合度分别指什么?为什么软件设计要追求高内聚、低耦合?
答:
内聚度是一个模块内部各成分之间关联程度的度量;耦合度是对模块间关联程度的度量。
软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,同时每一个类完成特定的独立的功能,实现高内聚,保证系统设计顺利进行。内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。
第一章作业
6、简要叙述软件设计在软件工程中所处的位置和重要性。
答:
所处的位置:软件需求分析需求规格说明软件设计设计文档软件编码。
重要性:
(1)是对软件需求的直接体现;
(2)为软件实现提供直接依据;
(3)将综合考虑软件系统的各种约束条件并给出相应方案;
(4)软件设计的质量将决定最终软件系统的质量;
(5)及早发现软件设计中