第一章1.什么是系统?信息系统一般具有那些特性?答:系统是一组为实现某些结果相互联系相互作用的部件的集合。1.可分解性2.边界性2.从应用范围来看,信息系统可以分为哪些类型?答:1.事物处理系统2.管理信息系统3.智能支持决策系统4.办公自动化系统3.信息系统中典型的关联人员有哪些?他们的角色是什么?答:系统所有者(通常是中层或者高层经理,对于小型系统来说,可能是中层经理或者主管)、用户、分析设计人员(都代表信息系统的技术专家角色)、外部服务者(业务顾问和系统顾问等)以及项目经理(团队的领导者)4.请解释系统内部用户和外部用户的区别是什么?答:内部系统用户主要是指系统实际操作人员,这些人员往往专注于信息系统的处理速度和处理事务的正确性。外部系统用户主要是指系统的直接或者间接使用人员,所有这些外部系统用户最关注的是使用系统的服务操作是否简单易学,方便操作。5.什么是模型驱动分析?为什么要使用此方法?举例说明。答:模型驱动分析法强调绘制图形化系统模型来记录和验证现有的或建议的系统。系统模型最终将成为设计和构造一个改进系统的蓝图。结构化分析、信息工程和面向对象分析都是基于模型驱动的分析方法。6.什么是系统开发生存周期?在项目启动阶段涉及的主要活动有哪些?答:开发一个完整的系统项目总会经历“目标、计划、分析、设计、实现、维护”这样的过程或步骤,这就是系统开发的生存周期(系统项目启动、业务需求分析、详细系统设计、系统实现与维护)。启动阶段的主要涉及5个活动:定义问题域、制定项目的进度表、确认项目的可行性、安排项目人员、启动项目。7.为什么引入系统原型开发方法?它的优缺点是什么?答:采用最经济的方法,尽快设计出一个可以实际运行的系统原型。优点:提高了用户参与的主动性;系统开放周期短;能更好的适应需求的变化并减少误解,能有效的提高最终系统的质量,特别是用户接受性,为保证将系统提供给用户使用奠定了基础。缺点:1.系统分析和功能设计贯穿于整个开发过程中,使得系统的总体结构变得不明确;2.原型选取的不确定性可能降低系统开放速度;3.对原型进行分析设计时,依然沿袭结构化方法,自顶向下模块化的设计思想,数据和功能相互分离的缺陷在原型法中依然存在,不利于软件构件的重用;4.开发过程中不断引入用户需求的变化,造成了系统开发的不确定性。8.解释敏捷方法的基本原理为何能带来加速的系统开发和部署?答:专注于增量式描述、设计和系统实现的迭代式开发方法,有用户之间参与到开发过程中,由于开发负担的降低,使得快速系统开发成为可能,敏捷方法允许开发团队将主要精力集中在软件本身,而不是设计和编制文档上。9.在系统开发过程中,为什么要引入项目管理?项目管理涉及的知识领域有哪些?答:系统项目管理有利于将系统开发人员的个人开发能力转化成企业的开发能力,并使企业的开发能力不断提高和成熟。九个:1.项目规划管理;2.项目时间管理;3.项目成本管理;4.项目质量管理;5项目人力资源管理;6.项目通信管理;7.项目风险管理;8.项目获取管理;9项目集成管理。10.什么是计算机辅助软件工程(CASE)?举例说明有哪些常用的CASE工具?答:在系统分析与设计活动中,系统分析人员按照工程管理的方法和原则借助于计算机及其软件工具的帮助,开发、维护和管理软件产品的过程。常用的工具:RationalRose、SybasePowerDesigner、MicrosoftVisio、MicrosoftProject、EnterpriseArchitect、MetaCase、ModelMaker、VisualParadigm等。第二章1.用例和场景之间是什么关系?与协作又是什么关系?答:用例与场景的关系(脚本与用例的关系)就像类与实例的关系,即用例是场景的抽象,场景是用例的一个实例。2.请指出用例图的组成元素及其识别方法,并构建自选项目的用例图并给出相关用例的描述。答:用例的组成元素:参与者、用例、关系。识别方法:1)参与者:Actor,是与系统交互的实体,包括需要和系统交换信息的一切实体。参与者不是系统的一部分,它们处于系统的外部。参与者可能是人、计算机硬件或设备或外部系统。2)用例:usecase,是对系统行为的动态描述,本质上是用户需求的描述,是一个具体的用户目标。3)用例图中存在三种关系,参与者与用例之间的关系、参与者与参与者之间的关系以及用例与用例之间的关系。3.聚集与组合有何区别?并请举例说明。答:聚集是一种特殊形式的关联,表示部分与整体的关系。“部分”可以独立于“整体”而存在,比如,一个学生可以同时是几个社团的成员。聚集使用带空心菱形的实线表示,菱形指向“整体”。举例:计算机与CPU、内存、键盘的关系。组合强调部分与整体具有相同的生命周期,“部分”对象完全依赖于“整体”对象。组合使用带实心菱形的实线表示,菱形指向“整体”。举例:窗口和菜单、列表框和按钮的关系。5.简述如何在实际工作中发现类,怎样组织类之间的继承关系。答:用名词识别法识别类。1.找出候选类:采用名词识别法标识系统描述或用例描述中所有名词,得到候选类,然后考察每个候选类,从中去掉不必要的类。2.审查与筛选类:1)删除冗余类;2)去掉无关类;3)删除模糊的类;4)去掉应该是类“属性”的候选类;5)所描述的操作不适应作为类,如果所选名次有动作含义,则描述的操作就不是类;6)实现结构不宜作为类。7.什么是构件?构件与普通类有哪些相同点和不同点?UML中的构件有哪几种?答:构件是定义了良好接口的物理实现单元,它是系统中可替换的部分,是由类、接口等逻辑元素打包而形成的物理模块。构件在许多方面与类相似,二者都有名称;都可以实现一组接口;都可以参与依赖、泛化和关联关系;都可以被嵌套;都可以有实例;都可以参与交互。构件与类的不同点:抽象方式不同;抽象的级别不同;访问方式不同。(详见P57)构件的分类:在UML中,构件按其作用可以分为部署构件、工作产品构件和可执行构件。8.构件有哪两种接口,如何表示?叙述它与构件之间的关系。答:构件有两类接口:1)输出接口:是被构件实现的接口,也称供口,也就是说,构件将该接口作为服务窗口向其他构件开放,它是一个构件能够为其它构件提供服务的操作的集合,一个构件可以有多个供口。2)需求接口:构件使用的接口被称为需求接口或引入接口,即构件向其它构件请求服务是要遵循的接口。一个构件可遵从多个引入接口。表示看P58图2.36.10.比较部署图和构件图,说说它们各自的特点。答:UML使用两种视图来表示实现单元:构件图和部署图。构件图表达的是系统代码本身的结构,它将系统中可重用的块包装成具有可替代性的物理单元,这些单元被称为构件,或组件。构件图描述了软件系统的各种构件和它们之间的相互关系。使用构件图有利于软件的复用以及方便项目组成员制定工作目标和了解工作情况。部署图是UML唯一能描述系统硬件的图。部署图由结点构成,结点代表系统的硬件,构件在结点上驻留并执行。部署图表示了系统硬件的物理拓补结构以及在硬件上运行的可执行构件,它表达的是运行系统的结构。11.在部署图中,什么是结点?UML中有几种结点,它们的区别是什么?请举例说明。答:结点是系统运行期间的物理单元,它代表计算机资源,系统的构件可以配置在结点上。结点的种类:1)处理器《Processor》:是能够执行软件、具有一定计算能力的硬件。如服务器、工作站等。2)设备《Device》:设备是没有计算能力的硬件,通常情况下是通过其接口为外部提供服务。如打印机、扫描仪、IC读卡器等。第三章1.在面向对象的系统分析与设计中,系统动态模型包括哪些模型?答:动态模型包括状态模型和交互模型。状态模型包括活动图和状态图,交互模型包括顺序图和通信图。2.动态建模中,活动图建模主要用来做什么?答:活动图是用来描述达到一个目标所实施一系列活动的过程,描述了系统的动态特征。3.活地图建模的步骤有哪些?应当注意什么问题?答:一.对业务过程建模:1.确定活动图描述的范围;2.确定活动对象;3.确定活动序列;4.确定控制流的转移;5.确定工作流中涉及的重要对象。二.操作建模:1.确定相关元素;2.确定边界范围;3.确定活动序列;4.如果需要,使用分支和合并来描述条件路径和迭代;5.如果操作属于主动类,在需要时可以用分支和汇合来描述并发的控制流。4.简述在面向对象的系统分析与设计中,状态模型的主要用途。答:状态机图描述系统中类和对象随时间变化的动态行为,通过状态与状态转换来描述用例、协作和方法的动态行为。5.在UML中,状态的图符由几部分组成?每部分的内容是什么?答:一般来说,可以列出该状态要执行的事件和动作,比如入口动作(什么事件可触发它开始)、出口动作、内部转换(在状态不改变的情况下会做什么事情)、延迟事件、内部活动(对象处于状态时一直执行的动作,直到被一个事件中断为止)、子状态或子状态机等组成部分。6.状态图中的状态转换一般是由哪些事件触发的?答:调用事件、改变事件(在UML中变化事件用when关键字表示,当条件有假变为真时,事件发生)、信号事件、时间事件(用关键字after表示)。7.动态建模中,描述对象交互行为的建模图形有哪几种图?答:顺序图和通信图。8.顺序图的作用和特点是什么?答:顺序图描述的是参与交互的对象及对象之间消息交换的顺序,用来表示用例中的行为顺序。特点:注重消息的传递及时间顺序的安排(生命线)。9.绘制顺序图的步骤有哪些?应注意的问题是什么?答:步骤:1.确定交互范围及涉及的对象;2.合理安排对象顺序;3.确认消息及传递。10.通信图的作用和特点是什么?从动态建模的角度看,顺序图与通信图有什么异同?答:通信图是一种强调发送和接受消息的对象及其组织结构的交互图,用以描述对象及对象之间的交互关系。特点:按照空间布局的角度来分析。异同:顺序图和通信图都可表示消息的序列,都是用来展示对象间的链接及组织结构的交互,但二者的侧重点不同,顺序图着重于描述交互的时间顺序,通信图则侧重于描述协作对象间交互和链接。11.过程建模中的“过程”概念如何理解?答:过程是信息系统的一个基本构件,一个系统通常会包含多个过程,过程响应业务事件和条件并将数据转换成有用的信息,过程建模技术就是建模过程,并分析过程与系统环境、其它系统以及其它过程的交互技术。12.过程建模的主要步骤有哪些?1.构造系统上下文数据流图,确认系统的项目范围2.绘制功能分解图,将系统划分成逻辑子系统,如果分析的是很小的系统,这一步也可以省略3.编写事件响应或用例清单表,以确定并证实系统必须提供响应的业务事件4.为分解图中的每个事件添写处理过程5.作为备选,为每个事件构造一个事件图,并进行验证6.通过合并事件图,构造一个或者多个系统图,帮助显示系统的整体视图7.对需要进一步处理细节的事件过程构造基本图,帮助显示单个事件的所有基本过程、数据存储和数据流。第五章1.软件架构设计主要应用于软件生存周期的哪个阶段?总体设计阶段2.系统架构师和软件架构师的联系和差别有哪些?系统架构师的职责包括,一是理解系统的业务需求,制定系统的整体框架;二是对系统该框架相关技术和业务进行培训。软件架构师的角色是主导系统全局的分析、设计和实施,负责软件架构和关键技术的决策。系统架构师与软件架构师所必需的知识体系不尽相同,系统分析师的主要职责是在需求分析、开发管理、运行维护等方面,二软件架构师的重点工作在架构和设计这两个关键环节上。因此,系统分析师必需具备的知识体系中对系统的构架和设计等方面知识体系的要求就相对低些;而软件架构师在需求分析、项目管理、运行维护等方面知识的要求就相对低些。3.软件架构师应掌握的知识体系包括什么?信息系统综合知识体系和软件架构知识体系。4.软件架构知识体系包括哪些内容?系统计划;系统架构设计;设计模式;系统设计;软件建模;分布式系统设计;嵌入式系统设计;系统可靠性分析与设计;系统的安全性和保密性设计;复杂架构设计5.软件架构设计的目标、策略和基本原则是什么?目标:可靠性、安全性、可扩展性、可定制化、可延伸性、可维护性、客户体验性、