软件设计师考试大纲
- 格式:docx
- 大小:22.87 KB
- 文档页数:6
软考软件设计师考试大纲详细介绍:一、考试目标:通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应文档,并能够对软件进行调试和测试,确保软件质量达到预期的标准。
二、考试内容:1.计算机基础知识:包括计算机科学基础知识、计算机内数据的表示、算术和逻辑运算、数学基础知识等。
2.计算机系统知识:包括计算机硬件基础知识、计算机系统的组成和体系结构、CPU、存储器、输入输出设备、总线等。
3.操作系统知识:包括操作系统的基本概念、功能、分类、进程管理、内存管理、文件系统、输入输出管理等。
4.程序设计语言基础知识:包括程序设计语言的基本概念、语法、数据类型、控制结构、函数、面向对象编程等。
5.数据结构和算法:包括常用的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、图算法等)。
6.软件工程:包括软件工程的基本概念、软件开发生命周期、软件需求分析、软件设计、编码、测试、维护、项目管理等。
7.数据库知识:包括数据库的基本概念、关系型数据库、SQL语言、数据库设计、事务处理、数据仓库等。
8.网络知识:包括网络的基本概念、网络体系结构、TCP/IP协议、网络编程、网络安全等。
9.软件设计方法和技术:包括软件设计的基本原则、设计模式、软件架构、组件化设计、软件性能优化等。
10.软件测试和调试:包括软件测试的基本概念、测试方法、测试用例设计、自动化测试、软件调试等。
11.项目管理:包括项目管理的基本概念、项目计划、进度控制、风险管理、团队管理等。
三、考试形式:1.考试采用笔试形式,分为上午和下午两个部分。
2.上午考试为基础知识,题型为客观选择题,共计75道选择题。
3.下午考试为应用技术,题型为问答题,共六道大题,包括必做题和选做题。
四、考试时间:根据过去的考试安排,上半年考试通常在5月底开始,而下半年考试通常在11月的第一个周末举行。
软件设计师考试大纲(十一)
2.内部设计
2.1 设计软件结构
·按构件分解,确定构件功能规格以及构件之间的接口
·采用中间件和工具
2.2 设计输入输出
·屏幕界面设计、设计输入输出检查方法和检查信息
2.3 设计物理数据
·分析数据特性,确定逻辑数据组织方式、存储介质,设计记录格式和处理方式
·将逻辑数据结构换成物理数据结构,计算容量,进行优化
2.4 构件的创建和重用
·创建、重用构件的概念
·使用子程序库或类库
2.5 编写内部设计文档
·构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、文件设计文档、数据库设计文档
本文章是来自。
第一章计算机系统知识1. 数值及其转换二进制、十进制和十六进制等常用数制及其相互转换2. 计算机内数据的表示●数的表示(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出)●非数值表示(字符和汉字表示、声音表示、图像表示)、校验方法和校验码3. 算术运算和逻辑运算●计算机中的二进制数运算方法●逻辑代数的基本运算4. 其他数学基础知识5. 计算机系统的组成、体系结构的分类及特性●CPU和存储器的组成、性能和基本工作原理●常用I/O设备、通信设备的性能以及基本工作原理●I/O接口的功能、类型和特性●CISC/RISC、流水线操作、多处理机、并行处理6. 存储系统●虚拟存储器的基本工作原理、多级存储体系●RAID的类型和特性7. 可靠性与系统性能评测的基础知识●诊断和容错●系统可靠性分析评价●计算机系统性能评测方式2013下半年上午1~6 6分Cache主存的地址映像、指令寄存器、逻辑运算、吞吐率、RISC特点、寻址范围2013上半年上午1~6 6分存储器构成、中断向量、多级中断嵌套、DMA工作方式、内存容量2012下半年上午1~6 6分CPU的部件、校验码、数的表示、存储器分类、CPU与外设的交换方式、系统总线组成2012上半年上午1~6 6分CPU对Cache的访问、存储单元、相联存储器、寻址方式、指令的执行过程命题特点纵观历次试卷,本章知识点是以选择题的形式出现在试卷中。
在历次考试上午试卷中,所考查的题量大约为6道选择题,所占分值为6分(约占试卷总分值75分中的8%)。
本章试题主要考蠢考生是否掌握了相关的理论知识,难度中等。
第二章程序语言基础知识●汇编、编译、解释系统的基础知识和基本工作原理●程序设计语言的基本成分(数据、运算、控制和传输),程序调用的实现机制●各类程序设计语言的主要特点和适用情况2013下半年上午20~22、48~50 6分参数传递、文法、后缀式、中间代码、有穷自动机、弱类型语言2013上半年上午20~22、48~50 6分编译和解释程序、传值调用与引用调用、编译过程、正规表达式、声明语句与可执行语句2012下半年上午20~22、48~50 6分程序语言、正规式、后缀式、编译程序功能、中间代码、程序2012上半年上午20~22、48~50 6分逻辑表达式、存储方式、后缀式、有限自动机、参数传递、编译与解释命题特点纵观历次试卷,本章知识点是以选择题的形式出现在试卷中。
2023年软考架构设计师考试大纲一、考试目的:软件设计师考试旨在培养和选拔具备软件系统整体设计能力、能够独立承担软件架构设计工作的专业人员。
二、考试对象:具备一定软件开发经验,具备软件开发能力,以及一定的管理与沟通能力的人员。
三、考试形式与内容:软件设计师考试分为笔试和面试两部分。
1.笔试内容:针对软件设计师岗位的职责和能力要求,考试内容包括但不限于以下方面:(1)软件工程概念与原理:包括软件生命周期、软件过程模型、软件需求工程、软件测试与维护等方面的知识。
(2)架构设计基础:包括分布式系统架构、面向对象分析与设计、设计模式、系统与模块设计等方面的知识。
(3)信息系统分析与设计:包括数据建模与数据库设计、数据结构与算法设计、系统接口设计等方面的知识。
(4)网络与安全:包括网络协议与通信技术、网络安全与加密技术、软件安全设计等方面的知识。
(5)软件项目管理:包括项目计划与控制、风险管理、人力资源管理等方面的知识。
2.面试内容:面试环节将针对考生的专业知识、综合应用能力和沟通能力进行综合考察。
主要内容包括:(1)项目经验与能力展示:考生需详细描述自己所参与的软件项目,包括项目规模、项目职责、解决的技术问题等方面的内容。
(2)设计案例分析:考生需要根据提供的设计案例进行分析与讨论,展示自己的设计思路和解决问题的能力。
(3)沟通与团队协作能力:考生需要展示自己的沟通能力、问题分析与解决能力,以及在团队中的角色与贡献。
四、考试参考书目:1.软件工程导论(第6版)作者:刘钦2. UML面向对象分析与设计(第3版)作者:Craig Larman3.数据库系统概论(第4版)作者:朱士兴4.计算机网络(第7版)作者:谢希仁5.软件项目管理与质量控制作者:李岚五、考试评分标准:考试分为笔试和面试两部分,分别给予独立评分。
考试总分为100分,笔试占60%,面试占40%。
1.笔试评分标准:根据考生的答题情况,根据专业知识的掌握程度、应用能力和解决问题的能力综合评定分数。
1、在软件设计过程中,以下哪项活动主要用于确定系统的功能和非功能需求?A. 系统分析B. 系统测试C. 系统部署D. 系统维护(答案)A2、下列哪种设计模式主要用于创建一个对象的接口,让该对象的子类可以决定实例化哪一个类?A. 工厂方法模式B. 单例模式C. 原型模式D. 建造者模式(答案)A3、在面向对象编程中,以下哪个概念用于描述对象之间的相互作用和通信?A. 封装B. 继承C. 多态D. 消息传递(答案)D4、下列哪种工具通常用于软件项目的版本控制和协作开发?A. JIRAB. GitC. JenkinsD. Docker(答案)B5、在软件架构设计中,以下哪项原则强调系统应该设计成多个层次,每层只对上一层提供服务?A. 开闭原则B. 依赖倒置原则C. 单一职责原则D. 分层原则(答案)D6、下列哪种测试类型主要用于验证软件是否满足规定的需求?A. 单元测试B. 集成测试C. 系统测试D. 验收测试(答案)D7、在敏捷开发方法中,以下哪个角色负责协调团队工作,促进团队协作和沟通?A. 产品负责人B. Scrum MasterC. 开发工程师D. 测试工程师(答案)B8、下列哪种算法常用于解决最短路径问题?A. 冒泡排序B. 迪杰斯特拉算法C. 快速排序D. 二分查找(答案)B9、在数据库设计中,以下哪项活动涉及将概念数据模型转换为物理数据模型?A. 需求分析B. 逻辑设计C. 物理设计D. 数据字典编写(答案)C。
2023年全国计算机软件设计师考试大纲一、考试目标2023年全国计算机软件设计师考试旨在对计算机软件设计师的专业能力进行全面评估。
考试内容涵盖计算机软件设计的基础理论、编程语言、软件工程、数据库系统等方面知识,并通过综合性的项目实践,对考生的实际操作能力进行考核。
二、考试内容1. 计算机软件设计基础理论:包括计算机组成原理、操作系统原理、数据结构与算法分析等相关理论知识。
考生需要掌握计算机硬件与软件的基本原理,了解计算机体系结构、指令系统和数据表示等内容,并能应用相关理论进行问题分析和解决。
2. 编程语言与开发技术:涉及多种编程语言,包括C/C++、Java、Python等。
考生应熟练掌握编程语言的基本语法、常用数据结构和算法,并能灵活运用这些知识进行软件设计与开发。
此外,考生还需了解常用开发工具与框架,如IDE、版本控制工具、测试框架等。
3. 软件工程:包括软件需求分析、软件体系结构设计、软件测试与维护等方面内容。
考生需要了解软件开发的生命周期,掌握软件需求分析的方法与技巧,具备设计合理的软件体系结构能力,以及对软件进行测试和维护的能力。
4. 数据库系统:涉及数据库设计与管理、SQL语言、数据备份与恢复等内容。
考生需要熟悉关系数据库的基本原理和概念,掌握SQL语言的基本操作和高级查询技巧,以及数据库备份与恢复的常用方法。
三、考试方式2023年全国计算机软件设计师考试分为两个阶段:笔试和实务操作考试。
1. 笔试:笔试部分采用闭卷形式,包括选择题、填空题和简答题等。
题目涵盖考试内容的各个方面,考察对知识的掌握程度、理解能力和解决问题的能力。
2. 实务操作考试:实务操作考试要求考生在规定的时间内完成一个或多个项目的设计与实现。
考生需根据给定的需求,设计软件系统的框架、数据库结构,以及实现相应的功能模块。
四、考试评分标准考试采用百分制评分,根据考生在笔试和实务操作考试中的表现综合评定。
1. 笔试成绩占60%:根据考生在笔试中的得分情况,按照一定权重计算成绩。
2023年软件设计师考试大纲摘要:一、考试说明1.考试目标2.考试要求3.考试科目4.考试范围二、计算机与软件工程知识1.数据表示、算术和逻辑运算方法2.应用数学及离散数学基础知识3.计算机体系结构以及各主要部件的性能和基本工作原理三、软件设计1.软件设计概述2.软件设计方法和工具3.软件设计实践四、软件设计师的工作职责和发展前景1.软件设计师的工作职责2.软件设计师的发展前景正文:2023 年软件设计师考试大纲旨在为软件设计师的考试提供指导。
该大纲分为四个部分,包括考试说明、计算机与软件工程知识、软件设计以及软件设计师的工作职责和发展前景。
首先,考试说明部分介绍了考试的目标、要求、科目和范围。
考试目标在于选拔具有工程师实际工作能力和业务水平的合格人员,要求应试者掌握计算机内的数据表示、算术和逻辑运算方法、相关的应用数学及离散数学基础知识,以及计算机体系结构以及各主要部件的性能和基本工作原理等。
考试科目包括计算机与软件工程知识和软件设计,考试范围涵盖上述各个方面。
其次,计算机与软件工程知识部分详细阐述了数据表示、算术和逻辑运算方法、应用数学及离散数学基础知识以及计算机体系结构以及各主要部件的性能和基本工作原理等方面的知识。
这些知识是软件设计师必备的基本素养,对于理解和应用软件设计相关知识具有重要意义。
接着,软件设计部分介绍了软件设计的基本概念、方法和实践。
软件设计是软件开发过程中的关键环节,涉及软件系统架构、模块划分、接口定义等多个方面。
该部分旨在帮助应试者掌握软件设计的基本原则和方法,提高软件设计能力。
最后,软件设计师的工作职责和发展前景部分阐述了软件设计师的工作职责,包括软件设计、编写程序设计规格说明书、组织和指导程序员编写、调试程序以及对软件进行优化和集成测试等。
同时,该部分还分析了软件设计师的发展前景,指出了软件行业对于软件设计师的需求以及软件设计师在职业生涯中可能面临的挑战和机遇。
总之,2023 年软件设计师考试大纲为软件设计师的考试提供了详细的指导,有助于应试者全面掌握软件设计师所需的知识和技能。
24年软考软件设计师考试大纲
2024年软件设计师考试大纲主要包括以下部分:
1. 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识。
2. 熟练掌握常用数据结构和常用算法。
3. 熟悉数据库与网络基础知识。
4. 熟练掌握一种结构化程序设计语言(如C语言)和一种面向对象程序设
计语言(如C++或Java)。
5. 熟悉软件工程、软件过程改进和软件开发项目管理基础知识。
6. 掌握软件需求分析和系统设计的工具和方法,熟悉软件设计的标准和规范。
7. 熟悉软件测试和软件维护的基础知识和技能。
8. 掌握数据结构和算法设计、软件工程、面向对象编程等计算机科学和软件工程的核心概念和技术。
9. 能够编写高质量的代码,按照要求进行软件设计和文档编写。
10. 具备良好的团队协作和沟通能力,能够有效地解决问题和应对挑战。
通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和测试,开发出符合系统总体设计要求的高质量软件;具有工程师的实际工作能力和业务水平。
以上信息仅供参考,具体大纲内容可能会有所不同,建议以官方发布的信息为准。
软件设计师中级考试大纲软件设计师中级考试大纲分为四个部分:基本知识、需求分析、设计与实现、测试与维护。
以下是详细的考试大纲:一、基本知识1.基本概念和术语:计算机软件的基本概念和术语,如软件开发、软件工程、需求分析等。
2.软件生命周期模型:介绍经典软件生命周期模型,如瀑布模型、迭代模型、敏捷模型等。
3.软件开发方法和技术:介绍软件开发过程中需要用到的方法和技术,如结构化分析、面向对象分析、UML等。
4.软件测试方法和技术:介绍软件测试过程中需要用到的方法和技术,如黑盒测试、白盒测试、性能测试、安全测试等。
5.软件质量保证:介绍软件质量保证的重要性以及如何进行软件质量保证。
二、需求分析1.需求定义:介绍需求的概念和种类,如业务需求、功能需求、非功能需求等。
2.需求获取:介绍需求获取的方法和技术,如面谈、问卷调查、原型设计等。
3.需求分析与确认:介绍需求分析的方法和技术,如场景分析、数据流图、数据字典等。
4.需求规格说明:介绍如何编写需求规格说明书,保证需求的准确性和可行性。
5.变更管理:介绍如何进行变更管理,保证需求变更的合理性和影响分析。
三、设计与实现1.概要设计:介绍概要设计的目的和实现方法,如数据流图、数据结构图等。
2.详细设计:介绍详细设计的目的和实现方法,如类图、时序图、项目计划等。
3.编码实现:介绍编码实现的流程和注意事项,如模块化编程、代码复用、代码测试等。
4.防御性编程:介绍防御性编程的思想和实现方法,保证程序的健壮性和安全性。
5.文档管理:介绍如何进行文档管理,使得文档与代码同步并且易于维护。
四、测试与维护1.测试计划:介绍如何编写测试计划,保证测试覆盖全面并且有效。
2.测试用例设计:介绍测试用例的设计方法和技术,如场景分析、逻辑分析等。
3.测试执行:介绍测试执行的方法和注意事项,如黑盒测试、白盒测试、回归测试等。
4.缺陷管理:介绍如何进行缺陷管理,使得缺陷能够及时被发现并且修复。
软件设计师考试大纲一、考试说明1.考试目标通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程师的实际工作能力和业务水平。
2.考试要求(1) 掌握计算机内的数据表示、算术和逻辑运算方法;(2) 掌握相关的应用数学及离散数学基础知识;(3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理;(4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;(5) 熟练掌握常用数据结构和常用算法;(6) 熟悉数据库、网络和多媒体的基础知识;(7) 掌握C程序设计语言,以及C++、Java中的一种程序设计语言;(8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;(9) 掌握软件设计的方法和技术;(10) 了解信息化、常用信息技术标准、安全性,以及有关法律、法规的基础知识;(11) 正确阅读和理解计算机领域的英文资料。
3.考试科目(1) 计算机与软件工程知识,考试时间为150分钟,笔试,选择题;(2) 软件设计,考试时间为150分钟,笔试,问答题。
二、考试范围考试科目1:计算机与软件工程知识1. 计算机科学基础知识数制及其转换? 二进制、八进制、十进制和十六进制等常用数制及其相互转换计算机内数据的表示? 数的表示(补码表示,整数和实数的表示,精度和溢出)? 非数值表示(字符和汉字表示,声音表示、图像表示)算术运算和逻辑运算? 计算机中的二进制数运算方法? 逻辑代数的基本运算其他数学基础知识? 常用数值计算? 排列组合,概率论应用,应用统计(数据的统计分析)? 编码基础? 命题逻辑、谓词逻辑、形式逻辑的基础知识? 运筹基本方法2. 计算机系统知识计算机硬件基础知识? CPU、存储器的组成、性能和基本工作原理? 常用I/O设备、通信设备的性能以及基本工作原理? I/O接口的功能、类型和特性? CISC/RISC,流水线操作,多处理机,并行处理? 虚拟存储器基本工作原理,多级存储体系? RAID类型和特性? 诊断与容错? 系统可靠性分析评价? 计算机系统性能评测方法计算机软件知识? 数组? 链表? 队列、栈? 树? 图的定义、存储和基本操作? 杂凑(Hash表)? 常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法? 算法描述和分析操作系统知识? 操作系统的内核? 处理机管理? 存储管理? 设备管理? 文件管理? 作业管理? 网络操作系统和嵌入式操作系统基础知识? 操作系统的配置? 汇编、编译、解释系统的基础知识和基本工作原理? 程序设计语言的基本成分(数据、运算、控制和传输),程序调用的实现机制? 各类程序设计语言的主要特点和适用情况数据库知识? 数据库模型(概念模式、外模式、内模式)? 数据模型,ER图,规范化? 数据操作? 数据库语言? 数据库管理系统的功能和特征? 数据库的控制功能? 数据仓库和分布式数据库基础知识计算机网络知识? 网络体系结构? 传输介质,传输技术,传输方法,传输控制? 常用网络设备和各类通信设备的特点? Client-Server结构,Browser-Server结构? LAN(拓扑,存取控制,组网,网间互连)? Internet 和Intranet 基础知识以及应用? 网络软件? 网络管理,网络性能分析多媒体基础知识? 多媒体系统基础知识? 简单图形的绘制,图像文件的处理方法? 音频和视频信息的应用? 多媒体应用开发过程3. 系统开发和运行知识软件工程知识? 软件生存周期与软件生存周期模型? 软件开发方法? 软件开发项目管理? 软件开发工具与软件开发环境系统分析基础知识? 系统分析的主要步骤? 机构化分析方法系统设计基础知识? 概要设计与详细设计的基本任务? 系统设计的基本原理? 系统模块结构设计? 结构化设计方法? 面向数据结构的设计方法? 系统详细设计系统实施基础知识? 系统实施的基本内容? 程序设计方法? 程序设计的基本模块? 系统测试? 系统转换系统运行和维护基础知识? 系统可维护性的概念? 系统维护的类型? 系统评价的概念和类型软件质量管理基础知识? 软件质量特性(ISO/IEC 9126软件质量模型)? 软件质量保证? 软件复杂性的概念及度量方法(McCabe度量法)? 软件评审(设计质量评审、程序质量评审)? 软件容错技术软件过程改进基础知识? 软件能力成熟度模型CMM? 统一过程(UP)与极限编程(XP)的基本概念4. 面向对象基础知识? 面向对象的基本概念? 面向对象分析与设计知识? 分析模式与设计模式知识? 面向对象程序设计知识? 面向对象数据库、分布式对象基础知识5. 信息安全知识? 信息系统安全基础知识? 信息系统安全管理? 保障完整性与可用性的措施? 加密与解密机制基础知识? 风险管理(风险分析、风险类型、抗风险措施和内部控制)? 计算机安全相关的法律、法规基础知识6. 标准化、信息化和知识产权基础知识标准化基础知识? 标准化意识,标准化组织机构,标准的内容、分类、代号与编号规定,标准制订过程? 国际标准、国家标准、行业标准、企业标准? 代码标准、文件格式标准、安全标准、互联网相关标准、软件开发规范和文档标准、基于构件的软件标准信息化基础知识? 全球信息化趋势、国家信息化战略、企业信息化战略和策略? 互联网相关的法律、法规? 个人信息保护规则? 远程教育、电子商务、电子政务等基础知识? 企业信息资源管理基础知识知识产权基础知识? 保护知识产权有关的法律、法规7. 计算机专业英语? 具有工程师所要求的英语阅读水平? 理解本领域的英语术语考试科目2:软件设计1.外部设计理解系统需求说明准备进行系统开发? 选择开发方法、准备开发环境、制订开发计划设计系统功能? 选择系统结构? 设计各子系统的功能和接口? 设计安全性策略、需求和实现方法? 制订详细的工作流和数据流设计数据模型? 设计ER模型及其他数据模型编写外部设计文档? 系统配置图、各子系统关系图? 系统流程图、系统功能说明书? 输入输出规格说明、数据规格说明、用户手册框架? 设计系统测试要求外部设计的评审2.内部设计设计软件结构? 按构件分解,确定构件功能、规格以及构件之间的接口? 数据结构与算法设计? 采用中间件和工具设计输入输出设计物理数据构件的创建和重用? 创建构件、重用构件? 使用子程序库或类库编写内部设计文档? 构件划分图、构件间的接口、构件处理说明? 屏幕界面设计文档、报表设计文档、文件设计文档、数据库设计文档内部设计的评审3.数据库应用分析与设计? 设计关系模式? 数据库语言(SQL)? 数据库访问4.程序设计模块划分编写程序设计文档程序设计评审5.系统实施配置计算机系统及环境选择合适的程序设计语言用C程序设计语言以及C++、Java中的任一种程序设计语言进行程序设计系统测试? 指导程序员进行模块测试,并进行验收? 准备系统集成测试环境和测试工具? 准备测试数据? 写出测试报告6.软件工程应用软件开发周期模型需求分析软件设计? 软件设计的基本原则? 软件设计方法? 程序设计(结构化程序设计、面向对象程序设计)软件测试的原则与方法软件质量(软件质量特性、软件质量控制)软件过程评估基本方法、软件能力成熟度评估基本方法软件开发环境和开发工具面向对象技术? 面向构件技术? 统一建模语言(UML)? 软件过程改进模型和方法网络环境软件技术三、题型举例(一)选择题1. 某系统的可靠性结构框图如下图所示。
该系统由4个部件组成,其中2、3两部件并联冗余,再与1、4部件串联构成。
假设部件1、2、3的可靠度分别为、、。
若要求该系统的可靠度不低于,则进行系统设计时,分配给部件4的可靠度至少应为(1)。
(1)A. B.C. D.(二)问答题试题一软件设计必做样题阅读下列说明以及图1-1和图1-2,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。
[说明]某电话公司决定开发一个管理所有客户信息的交互式网络系统。
系统的功能如下:1.浏览客户信息:任何使用Internet的网络用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。
2.登录:电话公司授予每个客户一个帐号。
拥有授权帐号的客户,可以使用系统提供的页面设置个人密码,并使用该帐号和密码向系统注册。
3.修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。
4.删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。
系统采用面向对象方法进行开发,在开发过程中认定出的类如下表所示:编号类名描述1 InternetClient 网络用户2 CustomerList 客户信息表,记录公司所有客户的信息3 Customer 客户信息,记录单个客户的信息4 CompanyCustomer 公司客户5 InternalClient 公司的管理人员图1-1【问题1】在需求分析阶段,采用UML的用例图(use case diagram)描述系统功能需求,如图1-1所示。
请指出图中的A、B、C和D分别是哪个用例?【问题2】在UML中,重复度(Multiplicity)定义了某个类的一个实例可以与另一个类的多少个实例相关联。
通常把它写成一个表示取值范围的表达式或者一个具体的值。
例如图3-2中的类InternetClient和CustomerList,InternetClient端的“0..*”表示:一个CustomerList的实例可以与0个或多个InternetClient的实例相关联;CustomerList端的“1”表示:一个InternetClient的实例只能与一个CustomerList的实例相关。
请指出图1-2中(1)到(4)处的重复度分别为多少?【问题3】类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。
在面向对象建模中,提供了四种关系:依赖(dependency)、概括(generalization)、关联(association)和聚集(aggregation)。
请分别说明这四种关系的含义,并说明关联和聚集之间的主要区别。