简答题:1、详细阐述软件危机的主要表现参考答案:软件危机是在大型复杂软件系统和软件产品开发过程中出现的一系列严重问题,从而导致软件系统和软量的经济损失。软件危机主要表现在:(1)大型软件系统的开发时间和开发成本无法准确计算;(2)软件系统或产品往往不能很好地满足使用者的实际需求;(3)软件质量不很可靠,并时常发生软件质量问题;(4)软件系统或产品开发者往往不能提供格式规范统一软件产品说明文档,给软件维护带来严重的困难;(5)软件技术发展的速度落后于现实需求的快速需要,存在软件产品供不应求现象。2、阐述软件体系结构是如何支持软件复用的。参考答案:软件复用就是将已有的软件成分用于构造新的软件系统。可复用的软件成分称为可复用构件,可以从旧的软件系统中提取,也可以专门开发可复用的软件构件。软件复用不仅仅是对程序的复用,而且包括软件开发过程中所产生的工作产品的复用,包括项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、源程序和测试用例等。软件体系结构可以看作更大粒度的软件复用构件。基于软件体系结构的软件开发过程支持体系结构的复用,从而大大地提高了软件开发效率。3、简述软件体系结构的研究内容、意义和作用。参考答案:软件体系结构用软件体系结构体现软件系统的质量,如性能、安全性、可重用性和可靠性。软件体系结构不但影响了设计者对大型、复杂系统的控制,也影响了软件开发过程自身,它建议甚至决定了开发过程中的工作分配、软件集成计划、软件测试计划、配置管理和软件文档。体系结构是软件设计的关键,有助于设计者在复杂的问题面前做出正确的选择,从源头避免软件开发的结构性错误;体系结构可以使设计人员和用户一致、方便地交流和沟通,准确地把握用户的需求。总之,软件体系结构是软件开发生命周期所有活动的蓝图。论述题1、阐述基于体系结构的软件开发过程。参考答案:基于软件体系结构软件开发过程包括六大部分:(1)软件体系结构需求:获取用户需要,标识构件。通常在构件库中筛选,加以修改和利用。需求获取来自系统业务目标和质量目标。定义软件功能以满足业务功能,还要获得软件质量属性,满足非功能需求。(2)软件体系结构设计:体系结构设计是一个递归迭代过程,可以从已有系统中能重用大部分,则可以在基础上演化。设计包括提出体系结构模型、映射构件、分析构件相互关联关系、产生体系结构文档、评审设计。(3)软件体系结构文档化:文档化是对软件体系结构是设计阶段的进一步抽象,作为设计与开发人员交流媒介,也是验证、提炼或修改体系结构的基础。文档的完整性和质量是关键因素。(4)软件体系结构复审:体系结构设计、文档化和复审是一个迭代过程。主版本体系结构分析之后,要进行复审。复审应当安排外部领域工作者参加。复审的目的是标识潜在的风险,早期发现缺陷和错误。包括能否满足功能需求和质量需求,层次是否清晰、构件的划分是否合理、文档表达是否明确等。(5)软件体系结构的实现:用实体来显示体系结构,把体系结构分割成规定的构件,按规定方式交互。整个实现过程是以复审后的文档化为基础,构件满足对其他构件的责任。每个构件本身的运行过程对设计者屏蔽。(6)软件体系结构的演化:包括需求变化归类、体系结构演化计划、构件修改、更新构件的关联关系、构件组装与测试、技术评审和演化后的体系结构。2、构造内C/S外B/S混合体系结构风格,并阐述构造混合体系结构风格的必要性。参考答案:大规模复杂软件系统往往要采用混合异构体系结构风格设计.因为不同的软件体系结构具有不同的处理能力和优缺点。因此构造混合异构体系结构风格是必要的。在实践应用中,由于内外有别,内部用户通过局域网直接访问数据库服务器,采用C/S体系结构;外部用户通过Intemet访问Web应用服务器,Web应用服务器再访问数据库服务器,采用B/S体系结构。3、试采用PAC模式设计一个学校学生委员会选举系统,各候选人的投票信息采用电子数据表格的方式输入,选举情况要求用直方图,饼图等方式及时显示;要求给出系统的整体结构图并详述系统的动态行为。参考答案:PAC模式以合作Agent的层次形式定义了交互式软件系统的一种结构。每个Agent负责应用程序的某个特定方面。每个Agent由表示,抽象,和控制三个组件组成。Agent将其人机交互部分与内核和它与其他Agent的通信分隔开来。系统的整体结构图系统的动态行为:场景Ⅰ:用户要求视图协调程序agent的表示组件打开一个新的直方图。视图协调程序agent的控制组件实例化用户所期望的直方图agent.视图协调程序agent发送一个open事件到新的直方图agent的控制组件。直方图agent的控制组件检索来自顶层agent的数据。视图协调程序agent协调底层和顶层的agent。返回到直方图的数据被存放到他的抽象组件。直方图agent的控制组件调用表示组件现实直方图。表示组件在屏幕上创造窗口,通过控制组件发出请求检索从抽象组件得到的数据并显示当前的学生委员会选举情况。场景Ⅱ:说明了新的选举数据输入后系统的行为用户向电子数据表录入新的学生委员会选举数据。电子数据表agent的控制组件将数据输送到顶层agent。顶层agent的控制组件更新所有依赖于这些新数据的agent。视图协调程序agent的控制组件把更新通知提交给他所负责协调的所有视图PACagent。与以前场景一样,所有视图PACagent都更新他们的数据并且恢复他们展示的图像。数据仓库存取数据电子数据表格视图协调程序饼图直方图底层PACAgent中间层PACAgent顶层PACAgent