牡丹江师范学院--软件工程--朱有富2015年6月整理1软件设计与体系结构答案目录:第一章…………………………………………………………………………………………….41.什么是软件?软件的特点是什么?软件有那些分类?2.软件设计应该包括哪些要素?软件设计在软件工程中所处的位置和重要性如何?3.请用自己的话说明软件体系结构。传统的建筑体系结构科学和软件体系结构有何相似之处?有何不同之处?4.软件设计和软件体系结构有何关系?软件体系结构的出现有何必然性和重要意义?5.在软件设计过程中,人们需要重点考虑软件系统结构的哪些方面?第二章…………………………………………………………………………………………….51.什么是软件模型?2.软件模型对软件体系结构的作用是什么?3.常用的软件模型有哪些?4.什么是软件模型的非形式化描述和形式化描述?5.软件体系结构设计方法中的水平型设计和垂直型设计各有什么特点?6.什么是ADL?7.典型的ADL有哪几种?第三章…………………………………………………………………………………………..61.在整个开发过程中,UML主要起到什么作用?2.如何利用模式解决在面向对象系统分析与设计中遇到的问题?3.UML中都包含哪些图?简述这些图的作用。牡丹江师范学院--软件工程--朱有富2015年6月整理24.简述用例图之间的关系。5.简述协作图和序列图的区别。6.神舟六号描述画出能正确表示它们之间关系的UML图。7.某个网上银行的用户登录过程用一个时序图描述这个过程。第四章……………………………………………………………………………………………91.简述抽象与逐步求精的含义。2.简述模块化与信息隐藏的关系。3.为什么软件要追求高内聚、低耦合?4.软件设计过程中包含哪些活动?5.试总结本章列举的软件体系结构设计方法的特点。第五章…………………………………………………………………………………………..101.选择一个熟悉的大型软件系统,分析其体系结构中用到的风格,以及表现出的特点(为什么要采用这种风格?采用这种风格带来哪些优势?具有哪些不足?)2.选择4种风格,设计简单的体系结构,并实现简单的原型系统3.不同的体系结构风格具有各自的特点、优劣和用途,试对管道-过滤器风格,分层系统、C2风格和基于消息总线(基于事件的隐式调用)的风格进行分析比较。第六章…………………………………………………………………………………………..131.简述面向对象方法支持的3种基本活动.2.简述面向对象的系统开发生命周期。第七章…………………………………………………………………………………………..131.结构化分析需要从哪几个方面建立系统的模型?对于任意一个系统来说,结构化分析提供的每个模型都是必需的吗?如果不是请给出选择建立各种模型的依据。2.结构化分析中的各种建模技术有何特点?为什么能刻画系统的某个方面?3.下面是某大学图书管理系统的问题描述,请给出该系统的数据流图,并给出相应的数据字典。牡丹江师范学院--软件工程--朱有富2015年6月整理34.一个图书管理系统中有书目、书籍、读者、图书管理员等数据对象,根据你对这些数据对象的理解给出ER图。5.一个人带着一头狼、一头羊和一颗青菜,处于河的左岸。请用状态-迁移图来描绘这一过程。第八章…………………………………………………………………………………………..171.简述设计良好界面的主要途径。2.简述用户界面分析包含的内容。3.简述用户界面设计过程及所要考虑的主要问题。4.简述用户界面原型的实施。5.简述用户界面设计评估。7.举一到两个由于界面设计缺陷而可能导致非常严重后果的例子。第九章…………………………………………………………………………………………..191.什么是设计模式?设计模式的目标是什么?2.设计模式具有哪三大特点?3.简述单例模式的两种实现方法,并说明其优缺点。4.常用的GOF设计模式有几种?GOF设计模式按照目的可分为哪三类?5.MVC模式是一个复合模式,请写出两种你知道的MVC中使用的模式。6.简述面向对象程序设计的六大基本原则7.在面向对象程序设计中,经常需要避免过多地使用case语句或者if语句8.某房地产公司准备开发一套房产信息管理系统,如果对上述场景编程,那么上述(1)和(2)可能会用到哪些设计模式?牡丹江师范学院--软件工程--朱有富2015年6月整理4第一章1.什么是软件?软件的特点是什么?软件有那些分类?计算机软件是由专业人员开发并长期维护的软件产品;特点:1)软件不是在传统意义上生产制造的,而是由设计开发的;2)软件不会像硬件那样磨损和老化;3)随着构件构造模式的发展,软件需要根据实际需求定制;分类:计算机软件分为7个大类:①系统软件②应用软件③嵌入式软件④科学和工程计算软件⑤产品线软件⑥人工智能软件⑦Web应用软件2.软件设计应该包括哪些要素?软件设计在软件工程中所处的位置和重要性如何?元素:①分析模型②数据/类设计③体系结构设计④接口设计⑤构件级设计位置:软件需求分析-需求规格说明-软件设计-设计文档-软件编码……重要性:软件设计是软件工程中形成质量的地方,设计为我们提供了质量评估的软件表示,设计是我们能够将用户需求准确地转化为软件产品或系统的唯一方法。是所有软件工程活动和随后的软件支持活动的基础。没有设计,就会有构造不稳定系统的风险。3.请用自己的话说明软件体系结构。传统的建筑体系结构科学和软件体系结构有何相似之处?有何不同之处?软件体系结构是软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系,以及相关的设计与演化原则等。相似之处:都是所构建系统的计划,都具有确保得到期望的特性,也是所构建系统的描述。不同之处:建筑师创建的是相对静止的静态描述而软件体系结构师创建的体系结构描述、代码在以后将被执行多次,靠许多组件的交互来得到期望结果。牡丹江师范学院--软件工程--朱有富2015年6月整理54.软件设计和软件体系结构有何关系?软件体系结构的出现有何必然性和重要意义?1)体系结构是系统设计的一部分,突出了某些细节,并通过抽象省略掉另一些细节。所以体系结构是设计的一个子集。2)必然性和重要意义:软件体系结构作为控制软件复杂性、提高软件系统质量、支持软件开发和复用的重要手段之一,自提出以来就受到软件研究者和实践者的关注,有了软件体系结构,设计人员或者项目管理者就能在一个比较高的层次上俯瞰软件的整体状况。同时,软件体系结构可以复用,减少开发成本,降低软件的开发风险。5.在软件设计过程中,人们需要重点考虑软件系统结构的哪些方面?人们需要重点考虑①体系结构风格和模式;②领域特定的软件体系结构;③软件产品线技术;第二章1.什么是软件模型?软件模型是指软件的一种抽象,目前,一般通过非数学模型来描述,本书中将统一基本单元的抽象称为软件模型。2.软件模型对软件体系结构的作用是什么?软件模型作为软件组成的最基本单元的抽象,既反映了软件体系结构构建的核心思想,也奠定了软件体系结构构建的基础。一方面,它定义了软件体系结构构建的基本单元元素的形态;另一方面它定义了基本单元元素之间关系的基本形态。不同的软件模型隐式地定义了软件体系结构构建的不同方法。3.常用的软件模型有哪些?①功能模型②对象模型③组件模型④配置型组件模型⑤服务模型⑥抽象模型4.什么是软件模型的非形式化描述和形式化描述?1)非形式化描述的典型代表是基于UML的统一建模方法,大量使用了自然语言与非形式化的图形符号。2)形式化描述是指用于软件与硬件系统的说明、开发与验证的数学化方法,形式化的基础就是数学化理论。牡丹江师范学院--软件工程--朱有富2015年6月整理65.软件体系结构设计方法中的水平型设计和垂直型设计各有什么特点?1)水平型设计是指运用通用的建模设计工具和表达语言所进行的软件体系结构的设计。所使用的建模设计工具和表达语言不是专门针对软件体系结构的,因此水平型设计具有较大的自由度及其带来的不一致性。2)垂直型设计是指运用面向体系结构的专用建模设计工具及其表达模型所进行的软件体系结构的设计,一般来说这种专用工具针对软件体系结构的描述首先定义一种表达模型,然后围绕该模型,通过提供相应的设计工具来支持软件体系结构的设计。6.什么是ADL?ADL是一种用于描述的语言,它可以在指定的抽象层次上描述软件体系结构,它同样拥有形式化的语法、语义以及严格定义的表达符号,或者是简单易懂的直观抽象表达。7.典型的ADL有哪几种?①WRIGHT②C2③Darwin④ACME⑤xADL⑥-ADL⑦KDL第三章1.在整个开发过程中,UML主要起到什么作用?UML是一种通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模,它融入了软件工程领域的新思想、新方法和新技术,它的作用域不仅支持面向对象的分析和设计,而且支持从需求分析开始的软件开发的全过程。2.如何利用模式解决在面向对象系统分析与设计中遇到的问题?在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据。面向对象设计原则中有一条是类的单一职责原则,所以我们要尽可能的去分解这些职责,用不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。3.UML中都包含哪些图?简述这些图的作用。①类图:用来刻画软件中类等元素的静态结构和关系。牡丹江师范学院--软件工程--朱有富2015年6月整理7②对象图:显示类的多个对象实例而不是真实的类。③构件图:用于静态建模,表示构件类型的组织以及各种构件之间的依赖关系。④部署图:描述系统运行时的结构,展示硬件的配置及其软件如何部署到网络结构中⑤用例图:列出来系统中的用例和系统外的参与者,并显示了哪个参与者参与了哪个用例的执行。⑥顺序图:描述对象之间的动态交互关系,着重表现对象间消息传递的时间顺序。⑦通信图:与顺序图不同,通信图关注参与交互的对象通过连接组成的结构。⑧交互概览图:类似于活动图方式,描述交互之间的流程,给出交互控制流的概览。⑨时序图:显示对象之间交互的图,对象按时间顺序排列。⑩状态图:描述一个类的实例、子系统甚至整个系统在其生命周期中所处状态如何随着外部激励而发生变化。⑪活动图:描述活动的顺序,展现一个活动到另一个活动的控制流。4.简述用例图之间的关系。1)参与者之间是泛化关系,即特殊、一般化关系。2)用例之间有包含关系、扩展关系和泛化关系。3)参与者和用例之间是关联关系。5.简述协作图和序列图的区别。协作图和序列图都表示对象之间的交互作用,区别在于序列图描述对象交互的时间顺序,协作图描述对象在交互中承担的角色,序列图可以表示对象的激活状态和去激活状态,也可以表示出对象的创建和销毁的相对时间,协作图则没有这些功能。6.神舟六号是神舟系列飞船的一种,它由轨道舱、返回舱、推进舱和逃逸救生塔组成。航天员使用返回舱来驾驭飞船,轨道舱是航天员工作和休息的场所。在紧急情况下,航天员使用逃逸救生塔逃离。飞船的两侧有多个太阳能电池翼,它为飞船提供电能。根据以上描述画出能正确表示它们之间关系的UML图。牡丹江师范学院--软件工程--朱有富2015年6月整理8神舟飞船神州六号飞船+提供电能()太阳能电池翼+工作()+休息()+吃饭()+漱洗()+方便()-long(长度):double-diameter(直径):double轨道舱+提供监测()+确保温度()+降落伞()+监测地面()-long(长度):double-diameter(直径):double-chair(座椅):int返回舱+提供调整姿态()+提供调整轨道()+制动减速所需用的动力()-long(长度:double)-diameter(直径):double-bottonDiameter(底部直径):dou