软件设计与体系结构作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计与体系结构作业
第一次作业 (2)
第二次作业 (4)
第三次作业 (5)
第四次作业 (6)
第五次作业 (8)
第六次作业 (22)
第七次作业 (24)
第一次作业
3.试列举两个大型应用系统的实例说明软件在该系统中所起的关键作用以及软件质量对系统成败的影响。
答:图书管理系统——软件在系统中运行所起的作用是可以让读者查询到借书与还书情况,以及读书借阅情况,归还日期等,质量的好坏直接影响系统的正常运行。
火车票查询系统——软件在该系统中所起的关键作用是能够在电脑上运行的电脑程序,软件质量好影响人们可以在网上查到最新的消息,尽快买到到火车票。若软件质量差那可能会不能更新最新消息,使人们不能正确订票、查票、影响人们该系统的使用率。
5.查阅有关文献给出两种本章中未列出的软件开发过程并进行描述。
答:增量模型——软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。
喷泉模型——与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。
8.软件体系结构与软件设计有何关系?软件体系结构的出现有何必然性和重要意义?
答:软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。
软件体系结构的意义:软件体系结构将构件以及构件之间的连接作为软件体系结构的基本组成部分。软件体系结构使软件复用从代码复用发展到设计复用和过程复用,为不同的人提供了共同的语言,体现了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享与复用,基于体系结构的软件开发提供了有力的支持。
2.在面向对象开发方法中,对象、类、继承、聚集、多态、消息等概念分别指什么?
答:对象——是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。类——是某些对象的共同特征(属性和操作)的表示。
继承——类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性的操作的共享,即子类可以沿用父类(被继承类)的某些特征。
聚集——除遗传关系外,现实世界还普遍存在着部分-整体关系。
多态——指父类及其子类中,对外接口的定义形式相同,却可以对应多种接口的实现形态。消息——消息传递是对象与其外部世界相互关联的唯一途径。
3.与传统开发方法相比,面向对象开发方法有何优势?
答:1.简化软件开发过程;
2.支持软件复用
3.改善软件结构
4.UML结构建模和行为建模有何区别?
答:结构建模被称为静态建模,主要用来描述系统中包含的元素以及元素之间的关系,行为模型被称为动态模型,主要用来刻画系统中的动态行为、过程和步骤。
8.试叙述UNL用例图在软件需求建模中的用途。
答:用例图是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。
2.简述模块化与信息隐藏在软件设计中的意义。
答:软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块,这些模块可以被组装起来满足整个问题的需求。在软件设计中实现了功能划分把复杂的大的功能划分成简单的小的模块结构,尽量降低每个模块的成本,减少接口,确保软件总成本最低。
模块化使开活动更加简单的一个重要因素是模块的信息隐藏,即一个模块的开发者不必看到模块的内部,只需要知道其接口即可,使开发者的复杂性降低,不仅支持模块的并行开发,而且还可以减少测试和后期维护的工作量。
3.内聚度、耦合度分别指什么?为什么软件设计要追求高内聚、低耦合?
答:内聚度是一个模块内部各成分之间关联程度的度量;耦合度是对模块间关联程度的度量。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,同时每一个类完成特定的独立的功能,实现高内聚,保证系统设计顺利进行。内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。
4.软件设计过程中包含哪些主要活动?分别介绍这些主要活动的主要目标。
答:(1)软件设计计划
明确设计过程的输入制品并使其处于就绪状态,定义设计过程的目标、输出制品及其验收准则,确定覆盖设计过程中各个阶段的全局性设计策略,分配设计过程相关人员的职责,针对设计过程制定工作计划。
(2)体系结构设计
建立软件系统的体系结构,即“顶层架构”。
(3)界面设计
为用户使用目标软件系统以实现其所有业务需求而提供友好的人机交互界面。
(4)模块/子系统设计
确定的具体接口定义,并设计模块的内部结构,即设置包含于其中的模块、构件和设计类,明确它们之间的协作关系,确保它们之间的协作关系,确保它们能够协同实现高层模块接口规定的所有功能和行为。
(5)过程/算法设计
对模块内部的工作和执行过程进行描述,给出有关处理的精确说明。
(6)数据模型设计
即是把系统的数据结构设计、数据库设计、甚至数据文件设计设计出来,形成数据处理的持久性。
8.试总结本章列举的软件体系结构设计方法各有何特点。结合自己的开发经验,试讨论如何选择合适的软件体系结构设计方法。
答:(1)软件体系结构的多视图建模
通过逻辑视图,开发视图、进程视图、物理视图、进程来描述的软件体系结构。
(2)基于评估与转换的软件体系结构设计
通过迭代的开发方式,直至满足客户的需求。
(3)模式驱动的软件体系结构设计
通过总结、记录、复用来实现的体系结构设计
(4)领域特定的软件体系结构设计
借鉴领域中已经成熟的软件体系结构来实现解决方案在某个领域内的复用。
(5)软件产品线方法
软件复用发展的一个更高阶段,它并不仅仅局限于以前人们在软件复用中考虑的对函数、模块、类、体系结构甚至子系统的复用。
(6)其于目标推理的软件体系结构设计方法
功能需求和非功能需求皆被表达为要达到的目标。
(7)其于属性的软件体系结构设计方法
第四次作业
13.什么是软件设计规格说明?它在软件开发中有何重要用途?
软件设计过程中各个活动的结果最终应该文档化,形成正式的软件设计规格说明书,作为软件设计的输出,例如对系统的目标、范围、约束的定义,对软件结构、接数据等方面的设计等。形成软件设计规格说明被评审,并作为后续软件实现活动的依据。
14.软件设计评审的目标是什么?设计评审需要关注哪些方面?
答:目标:确保设计规格说明书能够实现所有的软件需求,及早发现设计中的缺陷和错误,并确保设计模型已经精化到合格的软件实现工程师能够构造出符合软件设计者期望的目标