一、解释下列概念学科:相对独立的知识体系。
方法:实现一个目标或做某事的方式、技巧、技术或系统化过程。
方法学:对某个知识领域探索知识的原则或方法而作的系统分析。
模型:对现实(事物或实体)的简化(或抽象)表示。
模型是抽象的产物!视图:在SQL中:和物理表相对应,临时性的虚表。
在MVC软件架构模式中:图形界面。
在软件工程中:指从系统的令人感兴趣的视点依某种视角,通过压缩细节,只保留必要的元素而形成的简洁的系统表示模型。
即,视图是模型的某一选定刻面即简洁表示。
概念模型:是对真实世界中问题域内的事物的描述,不是对软件设计的描述。
概念模型=功能模型+结构模型+行为模型。
组件:系统的一个物理实现块。
框架:是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。
架构:存储在Active Directory 中的对象类别和属性的描述。
对于每一个对象类别来说,该架构定义了对象类必须具有的属性,它也可以有附加的属性,并且该对象可以是它的父对象。
信息域:一系列关联信息的集合而形成的一个领域。
用例:对一组动作序列的描述,系统执行这些动作将产生对特定的参与者有价值而且可观察的结果。
实体对象:具有图形表示的数据库对象。
软件体系结构:是一组体系结构元素的特定组织形式。
体系结构元素分为3类:负责完成数据加工的处理元素;作为被加工的信息的数据元素;把体系结构的不同部分连接到一起的连接元素。
ORM:对象-关系映射,主要实现程序对象到关系数据库数据的映射。
二、简答题2.1什么是模型?为什么要建立模型?建模的原则是什么?模型:对现实(事物或实体)的简化(或抽象)表示。
模型是抽象的产物!为什么建模(软件建模)?●清楚、准确、可视地说明与定义系统的结构与行为的方法(简化问题复杂度, 分析定义);●作为指导系统构造的基础与模板(设计基础);●作为涉众(stakeholder利益相关者)交流的工具与成果(交流);●对分析与决策的结果规范化、文档化(成果)。
建模原则((不同程度、细度、粒度、维度)):●仅当需要模型时,才够建(按需构建)●选择要创建什么模型,对如何动手解决问题和如何形成解决方案有着意义深远的影响。
(选择构建)●可以在不同的精度级别上表示每一种模型。
(分层构件)●最好的模型是与现实相联系的(一致构建)●单个模型或视图是不充分的。
对每个重要的系统最好用一组几乎独立的模型从多个视角去处理。
这些视图一起从整体上描绘了软件蓝图(组合构建。
功能、结构、行为模型)●尽可能使用草图讨论,重要程度不足的草图模型直接入文档,重要性高的图使用CASE工具绘制成蓝图入文档。
●每个模型应配有必要的文字说明(数据字典)。
2.2什么是问题域和系统责任?举例说明其区别与联系?问题域(问题空间):待开发系统的应用领域,即在客观世界中由该系统处理的业务范围。
如要为银行开发一个业务处理系统,银行就是这个系统的问题域。
银行的日常业务(如金融业务、个人储蓄、国债发行、投资管理等)、行政管理及与此有关的人和物都属于问题域。
系统责任:被开发系统应具有的职能。
1.(数据/属性属于系统责任范畴-存储/记录功能)2.系统责任和问题域语义上有很大部分是重叠的,但有区别。
如前述银行业务处理系统,银行就是这个系统的问题域,银行的日常业务(如金融业务、个人储蓄、国债发行和投资管理等)、行政管理及与此有关的人和物都属于问题域。
尽管银行内部的行政管理属于问题域,但是在当前的这个业务处理系统中并不属于系统责任。
另一方面,像对计算机信息的定期备份这样的功能属于系统责任,但不属于问题域。
识别对象的系统责任需要合理的抽象:例如,开发图书馆管理系统和开发书店图书销售管理系统均涉及书籍对象。
但抽象却不同:前者要设计一个BOOK类,且每本书均为该类的一个对象,因为系统要记录每本书借给哪个读者;后者中,只需把同一版本的一种书看成一个对象类,并记录其书名、数量、单价等信息即可。
2.4 什么是方法?它有哪些构成要素?方法:实现一个目标或做某事的方式、技巧、技术或系统化过程。
方法构成:基本概念+原理+运用过程+检验/评价标准+实例。
2.5 什么是软件模型视图?建模时创建哪些视图?(多视角建模)软件工程中:指从系统的令人感兴趣的视点依某种视角,通过压缩细节,只保留必要的元素而形成的简洁的系统表示模型。
即,视图是模型的某一选定刻面即简洁表示。
表2-1 模型视图2.6 举例说明系统、模型与视图三者的关系?系统、模型与视图关系:模型是系统的抽象表示、视图刻画模型的某个刻面,一个模型往往由其多个视图表示,一个系统的模型和其视图往往有重叠。
例如:System: 航空器Models: 航空器仿真器(模型1), 比例模型(模型2)Views(模型1): 设计蓝图, 电子线路视图, 燃料系统视图(蓝图视图含有其他两子系统标识成分)2.7 面向对象的三大机制是什么?解释他们的主要作用面向对象的三大机制是封装、继承和多态.封装提供了一个有效的途径来保护数据不被意外的破坏。
继承主要实现重用代码,节省开发时间。
编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。
2.8 简单阐述Karl E. Wiegers关于软件需求的描述。
2.9 举例说明软件需求三个层次之间的关系。
三种需求关系示例一:业务需求可能是:“用户能有效地纠正文档中的拼写错误”,该产品的包装盒封面上可能会标明这是个满足业务需求的拼写检查器。
对应的用户需求可能是:找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词。
对应的软件(功能)需求可能是:●找到并高亮度提示错词;●显示提供替换词的对话框以及实现整个文档范围的替换。
三种需求关系例证二:业务需求可能是:公司内部,所有部门数据实现共享用户需求:●能通过方便的操作方式将当部门数据汇总到总公司的中心数据库中。
或:●分布存储,但用户能访问自由访问其它部门的数据红色为准确找到的,绿色为老师附带给的答案,(只有2.13的第一问是在网上找的)2.10需求分析面临的主要挑战是什么?●问题域和系统责任的复杂性(隔行如隔山。
未知领域出现。
更清晰的理解、更高明的见解!故需简单直观高效的方法)●交流问题(共同语言)●需求的不断变化(问题域本身、客户主观因素、市场竞争、经费与技术因素等赌友影响。
故需要冻结相对稳定的需求)●软件复用的要求(软件复用是提高软件开发效率,改善软件质量的重要技术。
故需复用机制)2.11 简述软件需求分析的主要步骤与过程。
●问题(需求)获取(elicitation)(进一步分为访谈调研、诱导澄清子过程)●分析●编写规格说明(specification)●验证(verification )2.12 简述软件需求建模的主要方法及其特点。
(信息、功能分解、结构和OO)方法:功能分解+结构化(面向数据流的DFD)+ 信息建模(面向信息结构的Jackson, ERD )+ OO–功能分解(优点:易理解、抽象原则、模块化;缺点:易变不稳、接口非问题域事物、不全面)–结构化(优点:较全面、逐步求精的难度分解原则、分析到设计的指导性原则;缺点:侧重功能、概念体系非问题域、转化不严格、概念各不同)–信息建模(优点::实体抽象、静态结构描述、转化严格、理论体系完整;不足:侧重数据)–面向对象(特点:问题域的事物,概念一致、抽象、分类、封装、信息隐蔽、消息通讯、多态;优点:概念一致、思维一致、模型稳定、可维护性高、模型可复用性强、有助于提高开发效率与质量)2.13 简述统一建模语言(UML)的主要作用及其和OO方法之间的关系。
作用:uml在面向对象分析和设计中具有重大的作用。
从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。
关系:建模使用OO方法时,才用UML-建模语言;UML是OMG 推荐的统一、标准化、广泛使用的OO建模语言。
2.14 UML由哪些部分组成?简述他们的作用?构造块:UML的模型元素,是模型的主体。
规则:支配基本构造块如何放在一起。
不能简单地把UML的构造块按随机的方式堆放在一起。
像任何语言一样,UML有一套规则。
公共机制:运用于整个UML的公共机制、扩展机制。
2.15 简述用例建模步骤的过程?(识别角色、识别场景、辨识用例、细化用例、识别角色和用例的关系、必要时,使用包简化用例图)–识别角色–识别场景–辨识用例–细化用例–识别角色、用例中的关系–必要时,使用包简化用例图2.16 简述用例建模的主要技术。
(用户目标技术、CRUD、事件分析、短语动词识别)一: 用户目标技术-与用户交谈,讨论他们为新系统设定的目标。
二:CRUD(C reate, R ead or Report, U pdate and D elete)技术-分析师标识由系统处理所有的数据元素,并建立创建,报告,更新和删除数据项的用例。
三:事件分解技术-此技术侧重于辨识要求系统作出响应的事件以及确定系统必须如何作出响应。
四: 动词短语识别技术, 从问题域中搜寻系统使用的动词短语,作为候选用例,然后抽象、排除不合理用例。
2.17 简述对象模型的目标及过程。
(识辨对象与类、准备数据字典、识辨关联与聚集、识辨对象与链的属性、使用继承组织和简化类、复审并精化模型、分组类成为模块) –识辨对象与类(Identify objects and classes)–准备数据字典(Prepare data dictionary)–识辨关联与聚集(Identify associations and aggregations)–识辨对象与链的属性(Identify attributes of objects and links) –使用继承组织和简化(对象与类Organize and simplify using inheritance–复审并精化模型(Iterate and refine the model)–分组类成为模块(主题Group classes into modules) 2.18 简述系统设计的主要任务。
(设计目标、系统分解、目标实现与优化)–识别设计目标(主要和优先满足的系统质量需求)–设计初始系统分解-使用标准架构风格为起点–细化分解模型,实现设计目标。
2.19 系统设计的主要产品有哪些?–设计目标(总则、决策)–软件体系结构⏹问题分解和求解方案构建的高层策略的选择⏹子系统职责、相互依赖关系⏹映射子系统到硬件和软件组件⏹全局数据流、存取控制和数据存储的设计决策–边界用例:描述系统配置、起、停和出错处理三、选择填空(25分)1. 下列关于用例特征的描述错误的是( D )A. 为角色提供某种可度量价值的一系列活动的抽象描述B. 一个用例实现用户的一个具体目标C. 一个用例是用户的一个可见功能D. 一个用例是场景的实例2. CMM能力成熟度模型定义了一个阶梯式演进框架,分为五个等级,按从低到高次序是(初始、重复、定义、管理、优化)A.初始级、已管理级、已定义级、可重复级、优化级B.初始级、已定义级、已管理级、可重复级、优化级C.初始级、已管理级、已定义级、可重复级、优化级D.初始级、已定义级、可重复级、已管理级、优化级3.使用Abbott 自然语言识别法分析建模时,常常将(B )A. 普通名词映射为实例,专有名词映射为类B.普通名词映射为类,专有名词映射为实例C. 普通名词映射为类,专有名词和形容词映射为类的属性D. 专有名词映射为类,Doing型动词映射为类的操作4. Jacobson,1999认为分析对象模型由三类对象构成,它们是(C )A. 分析对象、设计对象和实现对象B. 类、类间关系与约束C.实体对象、边界对象和控制对象D. 数据对象、结构对象和行为对象5.面向对象分析与设计的起点是( C )A. 企业需求描述B. 功能需求描述C. 用例需求描述D. 静态结构需求描述6. 根据Karl E. Wiegers的描述,软件需求分为( J ) 和非功能性需求两个部分。