计算机软件基础知识概要
信息技术处理员笔记-计算机软件基础知识
操作系统的基本概念操作系统是计算机系统中必不可少的核心系统软件,其他软件建立在操作系统上,并在操作系统的统一管理和支持下运行。
它负责对硬件的直接监管、对各种计算资源(如内存、处理器时问等)的管理、以及提供面向应用程)序的服务等。
通过操作系统可以合理组织计算机工作流程控制程序运行,并向用户提供各种服务功能。
使用户能够灵活、方便、有效地使用计算机,是整个计算机系统能够高效的运行。
操作系统的作用: 通过资源管理提高计算机系统的效率;通过改善人机界面为用户提供友好的工作环境。
操作系统的特征:并发性(同时运行)、共享性(共享数据)、虚拟性(对硬件虚拟映射,图标)、不确定性(传输时间、安装时间)操作系统的主要功能: 1设备管理:对硬件设备的管理2作业管理:包括任务、界面管理、人机交互、语音控制3程序控制:一个用户程序的执行自始至终是在操作系统控制下进行的。
4进程管理:不管是常驻程序或者应用程序,他们都以进程为标准执行单位。
5内存管理:根据帕金森定律:“你给程序再多内存,程序也会想尽办法耗光”,因此程序员通常希望系统给他无限量且无限快的存储器。
6文件系统:对计算机系统中软件资源的管理(外存储器))7存储管理:进行资源存储管理操作系统类型:1批处理操作系统:操作系统根据作业说明书控制作业运行,无需人工干预(分为单道批处理和多道批处理2分时操作系统:计算机系统与多个终端设备相连,操作系统将Cpu的工作时间划分文时间片,轮流为各个终端提供服务。
3实时操作系统:对外来信息能够以足够快的速度进行处理,并在被控制对象允许的时间范围内做出反应。
(安全气囊)4网络操作系统:使联网计算机能共亨网络资源,为网络用户提供各种服务的软件和有关协议的集合5分布式操作系统:能直接对分布式计算机系统中各类资源进行动态分配和调度、任务划分、信息传输协调,并为用户提供统一-的界面。
(每个计算机分散的)6嵌入式操作:运行在嵌入式智能芯片中,特点是微型化(内存占有量少)、可定制(运营在不同的微处理器)、实时性(关键领域,迅速反应)、可靠性(防故障)、易移梢性。
计算机二级【公共基础知识】软件工程基础
3.软件的分类
根据应用目标的不同,软件可分应用软件、系 统软件和支撑软件(或工具软件)。
(1)应用软件。它是在特定领域内开发,为特定目 的服务的一类软件。
(2)系统软件。它能与计算机硬件紧密配合在一起, 使计算机系统各个部分、相关的软件和数据协调、 高效的工作的软件。例如:操作系统、数据库管理 系统。
3.4软件测试
软件测试的指用人工或自动手段来运行或测定
某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间
的差别。简单地说,软件测试的目的是尽可能 多地发现程序中的错误。
考点2:软件测试方法
按是否要执行被测试软件的角度分为:静态测 试和动态测试。
静态测试包括代码检查、静态结构分析、代码 质量度量。不实际运行软件,主要通过人工进 行。
1. 详细设计为软件结构图中的每一个模块确定
实现算法和局部数据结构,用某种选定的表 达工具表示算法和数据结构的细节。
详细设计常用工具:
1. 图形工具(程序流程图、 PAD图 、N-S图、 HIPO图)
2. 表格工具(判定表)
3. 语言工具(PDL )
开始 输入R S=3.14 * R*R
输出S
结束
答案:D
例题:
软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展
答案:C
例题:
软件设计中,有利于提高模块独立性的一个准 则是
A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
答案:C
例题:
下列不属于结构化分析的常用工具的是 A)数据流图 B)数据字典 C)判定树 D)PAD图
软考计算机基础知识
软考(计算机技术与软件专业技术资格(水平)考试)涉及广泛的计算机基础知识,以下是一些主要的考点:
1. 计算机系统基础知识:包括计算机硬件系统的组成和功能,如CPU、内存、硬盘、输入输出设备等;计算机软件系统的组成和功能,如操作系统、数据库管理系统、网络软件等。
2. 数据结构与算法:包括线性表、树、图等基本数据结构,以及排序、查找等常见算法。
3. 操作系统知识:包括操作系统的基本概念、功能、分类以及常见操作系统的特点和使用方法。
4. 数据库知识:包括数据库的基本概念、数据模型、数据库设计和管理等方面的知识。
5. 网络知识:包括计算机网络的基本概念、分类、拓扑结构以及网络协议等。
6. 软件工程知识:包括软件生命周期、软件开发模型、软件测试方法以及软件质量管理等方面的知识。
7. 信息安全知识:包括信息安全的基本概念、加密技术、防火墙技术、入侵检测技术等。
8. 多媒体技术知识:包括音频、视频、图像处理等多媒体技术的基本概念和应用。
此外,软考还涉及一些与计算机相关的法律法规和标准化知识,如知识产权、计算机软件保护条例、标准化基础知识等。
在备考软考时,建议考生根据考试大纲的要求,系统学习相关知识点,并结合实际案例进行练习,以提高自己的应试能力。
同时,也可以参加一些培训课程或模拟考试,以检验自己的学习成果和应试水平。
请注意,以上只是软考涉及的一些主要计算机基础知识考点,具体考试内容和要求可能会因考试科目和级别的不同而有所差异。
因此,在备考时,建议考生仔细阅读相关科目的考试大纲和要求,以确保自己能够全面、准确地掌握所需的知识点和技能。
《计算机基础知识》
计算机基础知识计算机基础知识是每个使用计算机的人都应该了解的内容。
无论你是一名程序员、学生、还是普通用户,了解计算机的基础知识都将有助于你更好地使用计算机,提高效率,避免出现一些常见的问题。
本文将介绍计算机基础知识的几个重要方面。
计算机硬件计算机的硬件部分包括了各种物理设备,如中央处理单元(CPU)、内存、硬盘、显示器、键盘等。
CPU是计算机的大脑,负责执行所有的计算任务;内存用于存储临时数据;硬盘用于永久存储数据;显示器用于显示图形界面;键盘用于输入。
了解这些硬件设备的功能和作用,可以帮助你更好地理解计算机是如何工作的。
计算机软件计算机软件是指安装在计算机上的各种程序,包括操作系统、应用程序等。
操作系统是控制计算机硬件和软件的核心程序,如Windows、MacOS、Linux等;应用程序则是运行在操作系统上的各种应用软件,如Microsoft Office、Photoshop等。
了解计算机软件的种类和功能,可以帮助你选择合适的软件,提高工作效率。
计算机网络计算机网络是多台计算机通过网络连接在一起,共享资源和信息。
常见的网络类型包括局域网(LAN)、广域网(WAN)、互联网等。
了解计算机网络的基本知识,如IP地址、子网掩码、路由器等,可以帮助你更好地理解网络通信的原理,解决网络问题。
计算机安全计算机安全是保护计算机系统和数据不受未经授权的访问、破坏或泄露的过程。
常见的安全威胁包括病毒、木马、勒索软件等。
了解计算机安全的基本概念和方法,如防火墙、杀毒软件、强密码等,可以帮助你保护个人计算机和数据的安全。
总结计算机基础知识涵盖了计算机硬件、软件、网络和安全等方面。
了解这些基础知识可以帮助你更好地理解计算机的工作原理,提高使用效率,保护个人数据安全。
希望本文能够帮助你更好地了解计算机基础知识,提升技能水平。
软件设计师基础知识
软件设计师基础知识:
1.计算机软件:计算机软件是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理
规则的描述,文档是为了便于了解程序所需的阐述性资料。
2.软件工程基本原理:软件工程基本原理包括用分阶段的生命周期计划严格管理、坚持进行阶段评
审、实现严格的产品控制、采用现代程序设计技术、结果应能清楚地审查、开发小组的人员应少而精、承认不断改进软件工程实践的必要性。
3.软件生存周期:软件生存周期包括可行性分析与项目开发计划、需求分析、概要设计、详细设计、
编码、测试和维护等阶段。
4.软件过程:软件开发中所遵循的路线图称为“软件过程”,包括能力成熟度模型(CMM)和能力
成熟度模型集成(CMMI)。
5.码制的表示:码制表示包括定点整数和浮点数的表示方法,其中定点整数包括原码、反码和补码
的表示方法,浮点数则包括阶码和尾数的表示方法。
6.CPU组成:CPU是计算机的核心部件,由运算器和控制器组成,运算器负责执行算术运算和逻
辑运算,控制器则负责协调计算机的各个部件并控制程序的执行。
计算机二级(软件工程基础)
公共基础知识
历年真题 从工程管理角度,软件设计一般分为两步 完成,它们是()。(2006.09)
概要设计与详细设计 数据设计与接口设计 软件结构设计与数据设计 过程设计与数据设计
公共基础知识
历年真题 两个或两个以上模块之间关联的紧密程度 称为()。(2006.04)
耦合度 内聚度 复杂度 数据传输特性
集成测试
• 集成测试是测试和组装软件的过程
确认测试
• 任务是用户根据合同进行,确定系统功能和性能的可接受性
系统测试
• 将软件系统与硬件、外设或其他元素结合在一起,对整个软件 系统进行测试。
公共基础知识
历年真题 下列叙述中正确的是()。(2007.04)
软件测试的主要目的是发现程序中的错误 软件测试的主要目的是确认程序中错误的位置 为了提高软件测试的效率,最好由程序编制者 自己来完成软件测试的工作 软件测试是证明软件没有错误
公共基础知识
在两种基本测试方法中,( )测试的原则之一 是保证所测模块中每一个独立路径至少要执行一 次。(2007.09) 程序测试分为静态分析和动态测试。其中( ) 是指不执行程序,而只是对程序文本进行检查, 通过阅读和讨论,分析和发现程序中的错误。 (2006.04) 再进行模块测试是,要为每个被测试的模块另外 设计两类模块:驱动模块和承接模块(桩模块)。 其中( )的作用是将测试数据传送给被测试的 模块,并显示被测试模块所产生的结果。 (2005.09)
软件生命周期可分为多个阶段,一般分为 定义阶段、开发阶段和维护阶段。编码和 测试属于()阶段。(2007.04)
公共基础知识
考点2:结构化分析方法 需求分析和需求分析方法
需求分析
程序设计与开发基础知识
程序设计与开发基础知识程序设计与开发是现代科技发展中至关重要的领域之一。
无论是移动应用、网站设计还是人工智能领域,都离不开程序设计与开发基础知识的支持。
本文将探讨程序设计与开发的基础知识,并介绍相关的编程语言、开发工具以及常见的开发流程。
一、基础知识概述程序设计与开发是指使用计算机语言编写代码来实现特定功能的过程。
它需要掌握一些基础知识,例如:1. 编程语言:常见的编程语言包括C、C++、Java、Python等。
不同编程语言拥有不同的特点和应用场景,开发者需要根据具体需求选择适合的编程语言。
2. 数据结构与算法:数据结构与算法是程序设计与开发的核心。
开发者需要了解不同的数据结构(如数组、链表、栈、队列等)以及相应的操作、算法(如查找、排序、递归等)来实现高效的程序设计。
二、编程语言编程语言是进行程序设计与开发的工具之一。
下面介绍几种常见的编程语言:1. C语言:C语言是一种通用的高级编程语言,被广泛应用于系统软件开发和嵌入式系统编程等领域。
它具有简洁、高效的特点,对底层硬件的操作比较灵活。
2. C++语言:C++语言是在C语言基础上发展起来的一种面向对象的编程语言。
它除了具备C语言的特性外,还支持面向对象的编程思想,能够更好地完成大型软件项目的开发。
3. Java语言:Java语言是一种跨平台的面向对象编程语言,具有可移植性和安全性等特点。
Java语言广泛应用于网络应用、企业级应用和移动应用等领域。
4. Python语言:Python语言是一种简单易学、高效灵活的脚本语言,适用于快速开发、网站搭建和科学计算等领域。
它具有丰富的第三方库和良好的可扩展性。
三、开发工具开发工具是进行程序设计与开发的必备工具。
下面介绍几种常见的开发工具:1. 集成开发环境(IDE):IDE是一种集成了代码编辑器、编译器和调试器等功能的开发工具。
常见的IDE有Visual Studio、Eclipse、IntelliJ IDEA等,它们提供了丰富的功能和辅助工具,能够提高开发效率。
软件技术基础知识
软件技术基础知识第一章1、算法和算法的特点2、数据结构:指相互关联的数据元素的集合。
数据结构分为逻辑结构和物理结构。
逻辑结构:表示了数据的逻辑关系(前后件关系)。
按照逻辑关系的不同分为:线形结构和非线形结构。
物理结构:表示了数据在计算机上的存放形式,也称存储结构。
按照存放形式的不同分为:顺序存储和链式存储。
3、线形结构的条件:4、线形结构通常称之为线性表。
顺序存储的线性表称为顺序表,链式存储的线性表称为线性链表。
5、对与空的数据结构可以为线性结构也可以为非线性结构。
6、顺序表和线性链表的特点。
7、栈和队列的特点。
8、栈和队列可以采用顺序存储也可以采用链式存储。
9、双向链表和循环队列。
10、树和二叉树11、二叉树的基本性质①第k层最多具有的结点数。
②深度为k的二叉树最具有的结点数。
③任何二叉树对为0的结点数和度为2的结点数的关系。
12、满二叉树的特点。
13、完全二叉树的特点。
14、二叉树的遍历15、顺序查找适用的情况。
对长度为n的线形表进行顺序查找最坏的情况需要查找的次数。
16、二分法查找适用的情况。
对长度为n的线形表进行二分法查找最坏的情况需要查找的次数。
17、排序的分类。
交换类排序:冒泡排序法,最坏的情况需要比较的次数。
插入类排序法,堆排序法。
第二章1、编程的良好习惯要求:根据需要添加相应的注释,应该有良好的视觉组织,在完成功能的前提下,优先考虑可读性和清晰性,然后在考虑效率。
2、注释的分类:序言性注释和功能性注释。
3、结构化程序设计的原则。
4、结构化程序设计的基本结构。
5、对象是属性和行为的封装体。
6、对象的基本特点:标识唯一性,分类性,多态性,封装性,摸快独立性。
7、类和实例之间的关系。
类是具有共同属性和方法对象的集合,是关于对象的抽象,一个具体的对象则称之为类的一个实例。
8、消息。
9、继承、多态性。
第三章1、软件的定义及软件的特点软件是程序、数据及相关文档的集合。
特点:2、软件危机是开软件过程中所遇到的一系列的严重问题。
软件工程基础知识
软件工程基础知识软件工程基础知识一.什么是软件1.满足功能要求和性能的指令或计算机程序集合;2.处理信息的数据结构;3.描述程序功能以及程序如何操作和使用所要求的文档;二.软件危机以及产生软件危机的原因1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势.软件产品"供不应求".2.软件成本在计算机系统总成本中所占的比例逐年上升.3.软件开发人员和用户之间的信息交流往往很不充分,用户对"已完成的"的软件系统不满足的现象经常发生.4.软件产品的质量不容易保证.5.软件产品常常是不可维护的.6.软件产品的重用性差,同样的软件多次重复开发.7.软件通常没有适当的文档资料.产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件开发所使用的方法和技术.三.有哪些软件工程方法学及其要素1.使用最广泛的软件工程方法学是结构化方法学和面向对象的方法学.2.要素:方法,工具和过程.四.什么是软件生存周期有哪些活动4.1软件生存周期一个软件从提出开发要求开始到软件废弃不用的整个过程.4.2开发活动可行性分析和项目开发计划,需求分析和定义,软件设计(先后细分为:概要设计和详细设计),编码,测试和运行维护4.3各活动阶段主要文档4.3.1可行行分析和项目开发计划可性行研究报告项目开发计划4.3.2需求分析中的文档需求规格说明书初步用户使用手册确认测试计划修改完善的软件开发计划4.3.3概要设计阶段文档概要设计说明书数据库说明书用户手册修订的测试计划(测试的策略,方法,步骤)4.4.4详细设计阶段详细设计说明书4.4.5系统测试阶段系统测试计划文档五.有哪些主要生存期模型瀑布模型,原型开发模型(快速原型模型,演化模型,增量模型),螺旋模型,喷泉模型,基于知识的模型和变化模型.5.1瀑布模型瀑布模型(传统的软件周期模型)严格遵循软件生命周期各阶段的固定顺序:计划,分析,设计,编程,测试和维护,上一阶段完成后才能进入到下一阶段,整个模型就像一个飞流直下的瀑布,如图4-1所示.优点:可强迫开发人员采用规范的方法,严格规定了各阶段必须提交的文档;要求每一阶段结束后,都要进行严格的评审.与它最相适应的开发方法是结构化方法.缺点:不适应用户需求的改动.5.2原型模型5.2.1快速原型模型快速原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃.主要用于需求分析阶段.不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法,所以不能定义完善的文档.特征:简化项目管理,尽快建立初步需求,加强用户参与和决策.具有广泛技能水平的原型化人员是原型实施的重要保证.原型化人员应该是具有经验与才干,训练有素的专业人员.衡量原型化人员能力的重要标准是他是否能够从用户的模糊描述中快速获取需求.5.2.2演化模型在快速原型模型中,原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃.而演化模型应用于整个软件开发过程,是从初始模型逐步演化为最终软件产品的渐进过程.也就是说,快速原型模型是一种"抛弃式"的原型化方法,而演化模型则是一种"渐进式"的原型化方法.5.2.3增量模型增量模型主要用于设计阶段,把软件产品划分为一系列的增量构件,分别进行设计,编程,集成和测试.新的增量构件不得破坏已经开发出来的产品.其示意图如图4-2所示.5.2.4原型模型小结从下面的有关原型化方法的叙述中,选择出正确的叙述:(1)快速原型方法是一种企图克服传统软件周期模型缺点的开发方法.(2)在用户的数据资源没有得到很好地组织和管理的时候,应该使用原型化方法.(3)在用户没有明确地肯定其需求的时候,应该使用原型化方法.(4)在用户不希望把自己的时间花在软件开发过程中的时候,应该使用原型化方法.(5)使用原型化方法时应该使用第三代编程语言.(6)原型化加强了开发过程中用户的参与和决策.(7)原型化方法大致可分为三类:抛弃式,演化式和递增式.(8)原型化方法大致可分为演化式和递增式.(9)采用原型化方法时,软件的开发成本较高.(10)采用原型化方法时,关键的因素是建立原形的速度,而不是原形运行的效率.5.3螺旋模型螺旋模型综合了瀑布模型和原型模型中的演化模型的优点,还增加了风险分析.螺旋线第一圈的开始点可能是一个概念项目.从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直转到软件生命期结束.5.4喷泉模型喷泉模型主要用于描述面向对象的开发过程.喷泉一词体现了面向对象开发过程的迭代和无间隙特征.六.软件过程基础知识6.1软件过程软件过程是指人们用于开发和维护软件及相关产品的一系列活动,包括软件工程过程和软件管理过程.6.2评估工具软件过程的评估,通常采用软件能力成熟度模型(Capability Maturity Model,CMM).CMM1.1的5个等级(由低级到高级):初始级软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力,管理是反应式(消防式)的.可重复级建立了基本的项目管理过程来跟踪费用,进度和功能特性.制定了必要的过程纪律,能重复早先类似应用项目取得的成功.已定义级已将软件管理和工程两方面的过程文档化,标准化,并综合成该组织的标准化软件过程.所有项目均使用经标准,裁减的标准软件过程来开发和维护软件.已管理级收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制.优化级加强了定量分析,通过来自过程质量反馈和来自新观念,新技术的反馈使过程能持续不断地改进.七.软件工程项目管理基本知识软件项目管理开始于任何技术活动之前,并且贯穿于整个的软件生命周期.软件工程项目管理一般分为时间管理,成本管理,人力资源管理,风险管理.7.1时间管理7.1.1 Gantt图是一种简单的水平条形图,它以水平线段表示子任务的工作阶段,线段的起点和终点分别对应着子任务的起始时间,线段长度指示完成该任务所需要的时间.甘特图的优点:直观简明,易学易绘,可从图上清楚地标出子任务间的时间对比,但它也有缺点:(a)不能显示地描绘各项彼此间的依赖关系;(b)进度计划的关键部分不明显,难以判断哪些部分应当是主攻和主控的对象;(c)计划中有潜力的部分以及潜力的大小不明确,往往造成潜力的浪费.7.1.2 PERT网图与关键路径PERT网图是一个由箭头(标识任务)和结点(标识事件)组成的有向图.将网络方法用于工作计划安排的评审和检查.开发模块A,B,C模块的任务网络图PERT图不仅给出了每个任务的开始时间,结束时间和完成该任务所需的时间,还给出了任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的"关键路径".关键路径(Critical Path)是由一连串的任务所组成的链,距离最大的一条路径.软件项目的管理人员应该密切注视关键任务的进展情况.如果希望缩短工期,只有往关键任务中增加资源才会有效果.7.2成本管理一种常用的成本估算方法是先估计完成软件项目所需的工作量(人月数),然后根据每个人月的代价(金额)计算机软件的开发费用:开发费用=人月数×每个人月的代价另一种方法是估计软件的规模(通常指源代码行数),然后根据每行源代码的平均开发费用(包括分析,设计,编码,测试所花的费用),计算机软件的开发费用:开发费用=源代码行数×每行平均费用估算源代码行数时,可以请n为有经验的专家,每位专家对软件给出3各估计值:ai---最少源代码行数(该软件可能的最小规模)bi---最大源代码行数(该软件可能的最大规模)mi---最可能的代码行数(该软件最可能的规模)然后计算出每位专家的估算期,n位专家的估算期望值的平均值就是代码行数的估算值.7.3其他管理人力资源管理风险管理风险管理的主要活动有风险识别,风险估算,风险评价和风险控制.八.模块化基本知识模块是指执行某一特定任务的数据和可执行语句程序元素的集合,通常是指可通过名字来访问的过程,函数,子程序或宏调用等.模块化就是将一个待开发的软件划分成若干个可完成某一子功能的模块,每个模块可独立地开发,测试,最后组装成完整的程序.8.1模块特性8.1.1可分解性如果一种设计方法提供了将问题分解成子问题的系统化机制,它就能降低整个系统的复杂性,从而实现一种有效的模块化解决方案.8.1.2可组装性如果一种设计方法使现存的(可复用的)设计构件能被组装成新系统,它就能提供一种不需要一切从头开始的模块化解决方案.8.1.3可理解性如果一个模块可以作为一个独立的单位(不用参考其他模块)被理解,那么它就易于构造和修改.8.1.4连续性如果对系统需求的微小修改只导致对单个模块,而不是整个系统的修改,则修改引起副作用就会被最小化.8.1.5保护性如果模块内部出现异常情况,并且它的影响限制在模块内部,不会影响其他模块,则错误引起的副作用就会被最小化.8.2模块与模块的耦合性耦合是对一个软件结构内不同模块之间互连程序的度量.耦合可以分成下列几种,它们之间的耦合度由高到低排列.8.2.1内容耦合直接操作或修改另一模块的数据,或不通过正常入口转入另一个模块.软件设计时应坚决禁止内容耦合,应设计成单入口,单出口的模块,避免病态连接.8.2.2公共耦合多个模块引用同一全局数据区.例如,C语言中的external数据类型,磁盘文件等都是全局数据区.8.2.3外部耦合模块与软件以外的环境有关联.例如,输入输出把一个模块与特定的设备,格式,通信协议耦合在一起.8.2.4控制耦合一模块明显把开关量,名字等信息送入另一模块,控制另一模块的功能.8.2.5标记耦合两个模块之间通过传递公共指针或地址相互作用的耦合.8.2.6数据耦合模块间通过传递数据交换信息.8.2.7非直接耦合(无耦合)模块间无任何关系,独立工作原则上讲,模块化设计总是希望模块之间的耦合表现为非直接耦合方式.在以上耦合中,耦合度从高到低,内容耦合度最高,非直接耦合度最低.8.3模块的内聚性内聚是指一个模块内各个元素彼此结合的紧密程序,它是信息隐蔽和局部的概念的自然扩展.设计时应该力求高内聚,理想内聚的模块应当恰好做一件事情.1).偶然内聚:一个模块的各成分之间毫无关系.比如:一组语句在程序的多处出现,为了节省内存空间,这些语句放在一个模块中,该模块的内聚是偶然内聚的.2)逻辑内聚:把几种逻辑上相关的功能组放在同一模块中.3)瞬时内聚(时间内聚):一个模块所包含的任务必须在同一时间间隔内执行,例如初始化模块.4)过程内聚:一个模块的处理元素是相关的,而且必须按特定的次序执行.5)通信内聚:一个模块的所有成分都结合再同一个数据结构上.6)顺序内聚:模块的成分同一个功能密切相关,且输出,作为另外一个成分的输入.7)功能内聚:模块内的所有成分属于一个整体,完成单一的功能.在以上的内聚中,内聚度从低到高,偶然内聚度最低,功能内聚度最高.模块的高内聚,低耦合的原则称为模块独立原则,也称为模块设计的原则.8.4模块的深度,宽度,扇出与扇入深度:表示软件结构中控制的层数.宽度是软件结构中同一个层次上的模块总数的最大值一个模块的扇入是指直接调用该模块的上级模块的个数.一个模块的扇出是指该模块直接调用的下级模块的个数.设计原则:低扇出高扇入8.5模块作用域和控制域软件设计时,模块的作用域应在控制域之内.8.6模块化基础知识小结通过模块的合并和分解,降低模块的耦合度.模块的扇入应尽量大,扇出应尽量小.一个模块的扇入是指直接调用该模块的上级模块的个数.一个模块的扇出是指该模块直接调用的下级模块的个数.扇入大表示模块的重用性高,利用率高.扇出大表示模块的复杂度高.所以要高扇入低扇出.要将模块的作用范围限制在模块的控制范围之内.降低模块之间的复杂性,避免"病态连接".九.什么是软件开发方法有哪些主要方法软件开发方法:使用已定义好的技术集及符号表示习惯组织软件生产的过程.结构化方法,面向对象方法,JACKSON方法,维也纳开发方法(VDM).9.1结构化方法学结构化方法学也称为生命周期方法学(瀑布模型方法),是一种面向数据流的需求分析方法.它的基本思想是自顶向下逐层分解.为了在需求改变时对软件的影响较小,结构化分析时应该使程序结构与问题结构相对应.常用工具:数据流图(DFD),数据字典(DD),实例-关系图(E-R图)及描述加工处理的结构化语言,判定表,判定树.9.1.1数据流图(DFD图)DFD的基本成分数据流图主要由4种成分组成,如下表所示:数据流(data flow):由一组固定成分的数据组成,表示数据的流向.它可以从源,文件流向加工,也可以从加工流向文件和宿,还可以从一个加工流向另一个加工.通常每个数据流必须有一个合适的名字,一方面是为了区别,另一方面也给人一个直观的印象,使人容易理解这个数据流的含义.但流向文件或从文件流出的数据流不必命名,因为这种数据流的组成部分就是相应文件的组成部分.加工(process):描述了输入数据流到输出数据流之间的变换,也就是输入数据流做了什么处理后变成了输出数据流.每个加工有一个名字和一个编号.编号反映了该加工位于分层DFD的哪个层次和哪张图中以及它是哪个加工分解出来的子加工.文件(file):可以表示数据文件,也可以表示一个数据记录.流向文件的数据流表示写文件,流出文件的数据流表示读文件,双向箭头表示对文件既读又写.每个文件都有一个文件名.源/宿(source/sink):源是指系统所需数据的发源地,宿(也称数据池)是指系统所产生的数据的归宿地.无论源或宿,均对应于外部实体,在框内应加注实体的名字,在一个软件各级软件系统中,有些源和宿可以是一个外部实体,外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地和系统所产生数据的归宿地.分层数据流图一套分层的的数据流图由顶层,底层,和中间层组成.画分层数据流图基本原则与注意事项a.自外向内,自顶向下,逐层细化,完善求精.b.保持父图与子图的平衡.也就是说,父图中某加工的输入数据流中的数据必须与它的子图的输入数据流在数量和名字上相同.c.保持数据守恒.也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据.c.加工细节隐藏.根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节.d.简化加工间关系.在数据流图中,加工间的数据流越少,各加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目.e.均匀分解.应该使一个数据流中的各个加工分解层次大致相同.f.适当地为数据流,加工,文件,源/宿命名,名字应反映该成分的实际意义,避免空洞的名字.g.忽略枝节.应集中精力于主要的数据流,而暂不考虑一些例外情况,出错处理等枝节性问题.h.表现的是数据流而不是控制流.i.每个加工必须既有输入数据流,又有输出数据流.在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一张子图中可能只有读没有写或者只有写没有读.小结:一个软件系统,其数据流图往往有多层.如果父图有N个加工(Process),则父图允许有0~N张子图,但是每张子图只能对应一张父图.在一张DFD图中,任意两个加工之间可以有0条或多条名字互不相同的数据流;在画数据流图时,应该注意父图和子图的平衡,即父图中某加工的输入输出数据流必须与其输入输出流在数量和名字上相同.DFD信息流大致可分为两类:交换流和事务流.9.1.2数据字典数据字典是关于数据的信息的集合也就是对数据流图中包含的所有元素的定义的集合.组成部分:a.数据项条目b.数据流条目c.文件条目d.加工条目加工条目是对数据流图中每一个不能再分解的基本加工的精确说明.对于加工的描述是数据字典的组成内容之一,常用的加工描述方法有结构化语言,判定树和判定表.9.1.3结构化语言结构化语言实际上是一种半形式化语言,它的结构通常可分为内外两层.外层接近于形式化语言,而内层近似于自然语言的描述.9.1.4实体--关系图(E-R图)实体--关系图(Entity-Relabionship Diagram),简称E-R图,包含实体,关系和属性等3种基本成分.通常用矩形框代表实体,并用直线把实体(或关系)与其属性连接起来.E-R图通常用于数据库应用系统.9.2结构化设计结构化设计通常可分为概要设计和详细设计,但是主要用于概要设计阶段.概要设计的任务是确定软件系统的结构,进行模块划分,确定每个模块的功能,接口以及模块间的调用关系.详细设计的任务是为每个模块设计实现的细节.9.2.1概要设计经过需求分析阶段的工作,系统必须"做什么"已经清楚了,概要设计的基本目的就是回答"概括地说,系统应该如实现"这个问题.概要设计的重要任务:将一个复杂的系统按功能化分为模块,确定每个模块的功能,确定模块之间的调用关系,确定模块之间的接口(模块之间传递的信息),评价模块的结构质量.1.软件结构图形工具结构化设计方法(SD)方法采用结构图(Structure Chart),层次图和HIPO图描述软件结构.结构图的主要成分有模块,调用和数据,结构图中的模块用矩形表示,在矩形框内可标上模块的名字.模块间如有箭头或直线相连,表明它们之间有调用关系.层次图用来描绘软件的层次结构.层次图中一个矩形框代表一个模块,方框间的连线表示模块间的调用关系.HIPO图实际上就是层次图加输入/处理/输出图.HIPO图是美国IBM公司发明的"层次图加输入/处理/输出图",是在层次图里出了最顶层的方框之外,每个方框都加了编号.编号规则和数据流图的编号规则一样.2.概要设计中的信息流变换流:信息沿着输入通道进入系统,然后通过变换中心(也称主加工)处理,再沿着输出通道离开系统.具有这一特性的信息流称为变换流.具有变换流型的数据流图可明显地分成输入,变换(主加工),输出三大部分.事务流:信息流沿着输入通道到达一个事务中心,事务中心根据输入信息(即事务)的类型在若干个动作序列(称为活动流)中选择一个来执行,这种信息流称为事务流.事务流有明显的事务中心,各活动以事务中心为起点呈辐射状流出.9.2.2详细设计概要设计已经确定了每个模块的功能和接口,详细设计的任务就是为每个模块设计其实现的细节.详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,得出对目标系统的精确描述.1.详细设计阶段的内容为每个模块进行详细的算法设计.为模块内部的数据结构进行设计.对数据库进行物理设计.其他详细设计工具主要包括程序流程图(系统流程图),盒图(N-S图),PAD 图和伪码(PDL).2.人机界面设计人机界面的设计质量,直接影响用户对软件产品的评价.界面的美观,灵活和风格都很重要,但人机界面设计中最重要的也是最基本的目标是软件的易操作性.人机界面设计主要包括系统响应时间,用户帮助设计,出错信息处理和命令交互设计等几个方面.9.3 Jackson方法上面讲的结构化设计方法是面向数据流的,另外还有一种面向数据结构的设计方法,Jackson方法是最著名的面向数据结构的设计方法,而不是面向数据流的设计方法.Jackson方法的基本步骤是:建立系统的数据结构;以数据结构为基础,对应地建立程序结构;列出程序中要用到的各种基本操作,再将这些操作分配到程序结构适当的模块中.9.4面向对象分析方法(00A)OTM方法的三个模型,分别从三个不同侧面描述了所要开发的系统:功能模型指明了系统应该"做什么";动态模型明确了什么时候做;对象模型则定义了做事情的实体.对象模型描述了系统中对象的静态结构及对象间的联系,用对象模型图来表示.动态模型描述了与时间和操作次序有关的系统属性.动态模型由多张状态图组成.各个类的状态图通过共享事件组成系统的动态模型.功能模型描述系统内数据值的变化,它由数据流图组成.数据流图说明数据流是如何从外部输入,经过操作和内部存储而得到输出的.十.软件工具软件工具是指用于辅助软件开发,运行,维护,管理,支持等过程中的活动的软件.通常也称为CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具.按软件过程的活动分为软件开发工具,软件维护工具和软件管理工具等.十一.软件开发环境集成型开发环境通常可由工具集和环境集成机制两部分组成.这种环境应具有开放性和可裁减性.环境集成机制主要有数据集成机制,控制集成机制和界面集成机制.十二.软件质量管理基础知识12.1软件质量ISO/IEC 9126软件质量模型可从软件功能性,可靠性,可用性,效率,可维护性,可移植性6个方面来衡量.(1).功能性与功能及其指定的性质的一组软件属性.(2)可靠性软件在规定的一段时间内和规定的条件下保持其性能水平有关的一组软件属性.也可以称为在规定的条件下和规定的时间间隔内,软件实现其规定功能的概率.。
软件工程考核知识点-第4章-软件概要设计
软件工程考核知识点-第4章-软件概要设计4.1 软件概要设计的基本任务在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。
进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。
4.1.1 基本任务1. 设计软件系统结构(简称软件结构)为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库(文件),对于程序,则首先进行结构设计,具体为:(1)采用某种设计方法,将一个复杂的系统按功能划分成模块。
(2)确定每个模块的功能。
(3)确定模块之间的调用关系。
(4)确定模块之间的接口,即模块之间传递的信息。
(5)评价模块结构的质量。
根据以上内容,软件结构的设计是以模块为基础的,在需求分析阶段,已经把系统分成层次结构。
设计阶段,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。
软件结构的设计是概要设计关键的一步,直接影响到下一阶段详细设计与编码的工作软件系统的质量及一些整体特性都在软件结构的设计中决定。
2.数据结构及数据库设计对于大型数据处理的软件系统,除了控制结构的模块设计外,数据结构与数据库设计也是很重要的。
(1)数据结构的设计逐步细化的方法也适用于数据结构的设计。
在需求分析阶段,已通过数据字典对数据的组成、操作约束、数据之间的关系等方面进行了描述,确定了数据的结构特性,在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。
在概要设计阶段,宜使用抽象的数据类型。
(2)数据库的设计数据库的设计指数据存储文件的设计,主要进行以下几方面设计:①概念设计。
在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用ER模型来表示数据模型,这是一个概念模型。
软件工程复习知识点
1.软件危机的概念,内容,原因及消除的途径;软件危机的概念:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题;概括地说,软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件;软件危机产生的原因:软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确;消除软件危机的途径:1对计算机软件应当有一个正确的认识;2应当有组织、有计划、通过严格的管理手段进行软件的开发;3及时总结软件开发的成功技术和方法并加以推广;4开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施;2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科;基本原理:软件工程的7条基本原理:1用分阶段的生命周期计划严格管理2坚持进行阶段评审3实行严格的产品控制4采用现代程序设计技术5结果应能清楚地审查6开发小组的人员应该少而精7承认不断改进软件工程实践的必要性3.软件工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型;软件工程方法学包含3个要素:方法、工具和过程;内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学;传统方法学也称为生命周期方法学或结构化范型;4.软件生命周期的具体内容,每一个阶段的任务是什么结合具体的工程例子来理解做软件项目主要分那几个个阶段;①问题定义:确定要求解决的问题是什么②可行性研究:决定该问题是否存在一个可行的解决办法③需求分析:深入了解用户的要求,在要开发的目标系统必须做什么问题和用户取得完全一致的看法;④概要设计:概括回答怎样实现目标系统;概要设计又叫逻辑设计、总体设计、高层设计;⑤详细设计:把解法具体化,设计出程序的详细规格说明;详细设计也叫模块设计、底层设计;⑥编码和单元测试:编写程序的工作量只占软件开发全部工作量的10%-20%;⑦综合测试:软件测试的工作量通常占软件开发全部工作量的40%-50%;⑧软件维护:软件维护的费用通常占软件总费用的55%-70%;①②③为软件定义时期,④⑤⑥⑦为软件开发阶段;④⑤为系统设计,⑥⑦为系统实现;5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、螺旋模型、喷泉模型等;瀑布模型内容:瀑布模型是带“反馈环”的;优点:1可强迫开发人员采用的规范的方法结构化技术;2严格地规定了每个阶段必须提交的文档;3要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;缺点:瀑布模型是由文档驱动的;1开发过程一般不可逆,否则代价太大;2实际的项目开发过程很难严格按照模型进行;3客户往往很难清楚地给出所有需求,而该模型却要求如此;4软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心;快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集;不带反馈环优点:软件产品的开发基本上是线性顺序进行的;1可以得到比较良好的需求定义,容易适应需求的变化;2有利于开发与培训的同步;3开发费用低、开发周期短且对用户更友好;缺点:1客户与开发者对原型理解不同;2准确的原型设计比较困难;3不利于开发人员的创新;增量模型也称为渐增模型;使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试;优点:在较短时间内可以向用户提交可完成部分工作的产品,逐步增加产品功能可以使用户有比较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击;1人员分配灵活,刚开始不用投入大量资源;2如果核心产品很受欢迎,则可增加人力实现下一增量;3可先发布部分功能给客户,对客户起到镇定剂的作用;缺点:1并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构2增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程失去整体性;螺旋模型的基本思想是使用原型及其他方法来尽量降低风险;理解这种模型的一种简便方法是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型;优点:1设计上的灵活性,可以在项目的每个阶段进行变更;2以笑得分段来构建大型系统,使成本计算变得简单容易;3客户始终参与每个阶段的开发,保证项目不偏离正确的方向一击项目的可控性;4随着项目的推进,客户始终掌握项目的最新信息,从而他能够和管理层有效地交互;缺点:1采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标示风险,势必造成重大损失;2过多的迭代次数会增加开发成本,延迟提交时间;喷泉模型:喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各阶段可以相互重叠和多次反复,而且项目的整个生存期中还可以嵌入子生存期;就像水喷上去又可以落下来,可以落在中间,还可以落在底部;6.了解可行性研究中的任务和过程;用最小的代价在尽可能短的时间内确定问题是否能够解决;不是解决问题,而是确定问题是否值得去解决;可行性研究的根本任务:对以后的行动方案提出建议;实质:一次大大压缩简化了的系统分析和设计;任务:1.初步确定项目的规模,目标,约束和限制;2.在澄清了问题定义之后,分析员应该导出系统的逻辑模型;3.从系统逻辑模型出发,探索若干种可供选择的主要解法即系统实现方案;4.对每种解决方法都要研究它的可行性;技术可行性、经济可行性、操作可行性过程:1.复查系统规模和目标访问关键人员,描述目标系统的限制和约束;2.研究目前正在使用的系统:现有系统的问题;3.导出新系统的高层逻辑模型;4.进一步定义问题;5.导出和评价供选择的解法;6.推荐行动方针;7.草拟开发计划;8.书写文档提交审查;7.掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图p388.掌握数据流图的概念和方法,会从具体的案例中画出0层数据流图和功能级数据流图P409.掌握数据字典的内容、方法、用户和实现p47内容:数据字典由4类元素定义组成;1数据流;2数据流分量即数据元素;3数据存储;4处理;定义数据的方法:数据字典中的定义就是对数据自顶向下的分解;由数据元素组成数据的方式只有下述3种基本类型:顺序选择重复用途:作为分析阶段的工具;实现:P4910.了解成本/效益分析方法p50货币的时间价值投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间纯收入:整个生存周期之内的累计经济效益折成现在值-投资;投资回收率:现在的投资额P和估算出的将来每年的收益Fn,假设系统的使用寿命为n年;11.了解需求分析过程中任务是什么.p471.确定对系统的综合要求功能需求;指定系统必须提供的服务性能需求;指定系统必须满足的定时约束或容量约束可靠性和可用性需求;应定量指定出错处理需求;指环境错误,非系统本身的错误;2.分析系统的数据要求接口需求;常见的接口需求有:用户接口需求、硬件接口需求、软件接口需求、通信接口需求; 约束;常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台;逆向需求;说明软件系统不应该做什么;将来可能提出的要求;3.导出系统的逻辑模型;用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型;4.修正系统开发计划;用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型;12.理解面向数据流自顶向下逐步求精的方法和意义;p59结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法;通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级;方法:为了达到这个目标,通常从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出,输出数据决定了系统必须具有的最基本的组成元素;意义:1对数据流图细化之后得到一组新的数据流图,不同的系统元素之间的关系变得更清楚了; 2对这组新数据流图的分析追踪可能产生新的问题,这些问题的答案可能又在数据字典中增加一些新条目,并且可能导致新的或精化的算法描述;3随着分析过程的进展,经过提问和解答的反复循环,分析员越来越深入具体地定义目标系统,最终得到对系统数据和功能要求的满意了解;13.理解分析及建模的意义,需求分析中应该建立哪三种模型有哪些工具来帮助建立这些模型14.需求分析需要建立三种模型:1.数据模型:实体-联系图E-R数据对象即实体之间的关系2.功能模型:数据流图DFD系统对数据进行变换的功能3.行为模型:状态转换图系统的各种状态行为模式及状态之间的转换15.掌握实体关系E-R图的概念,内容和实现方法,能结合具体实例建立实体关系图;P6216.掌握状态图的概念,内容,实现方法和作用;p6517.掌握层次方框图、warnier图、IPO图的概念,内容和作用p6818.有穷状态机的概念和内容;Petri的概念;P77有穷状态机:状态集、输入集、转换函数、初始态、终态集Petri:P8219.总体设计是做什么总体设计的过程是怎样的P9120.总体设计的目标是将需求分析阶段定义的系统模型转换成相应的软件结构,以规定软件的形态及各成分间的层次关系、界面及接口要求;总体设计通常由两个过程组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构;典型的设计过程包括:1.设想选择的方案2.选取理想的方案3.推荐最佳方案4.功能分解5.设计软件结构6.设计数据库7.制定测试计划8.书写文档9.省查和复审21.掌握软件设计的几个设计原理,理解他们的内容和意义;p941模块化就是把程序划分成独立命名且可独立访问的;2抽象;3逐步求精;4信息隐藏和局部化;5模块独立;它有两个定性标准度量:内聚和耦合;22.掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义;耦合:耦合是对一个软件结构内不同模块之间互连程度;内聚:内聚标志着一个模块内各个元素彼此结合的紧密;耦合是影响软件复杂程度的一个重要因素;设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性;23.耦合包含了哪些类型每个类型的具体内容是什么由低到高24.1非直接耦合:就是没有耦合;2数据耦合:就是参数传递耦合,它属于低级别耦合;3标记耦合:标记耦合指两个模块之间传递的是数据结构;4控制耦合:它属于中级别耦合,比如调度程序与进程之间的耦合,就是控制耦合;5外部耦合:属于高级别耦合6公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合;7内容耦合:属于最高级别耦合,例如,一个模块利用分支或跳转技术,转入到另一个模块中去执行,就是内容耦合;25.启发性规则的内容及部分概念;1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测26.层次图、HIPO图和结构图的内容;p10227.掌握面向数据流的设计方法,怎样用变换分析法基于数据流图设计出软件总体结构了解其中涉及到的概念,结合例子理解具体是怎么做的;p104概念:面向数据流的设计方法把信息流映射成软件结构,信息流决定了映射的方法,信息流有两种类型:1、信息沿输入通路进入系统,同时由外部形式变换成内部,进入系统的信息通过变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统;当数据流图具有这些特征时,这种信息流就叫做变换流;2、数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行;这类数据流应该划为一类特殊的数据流,称为事务流;28.详细设计是做什么p117详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,即经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某些程序设计语言书写的程序;29.什么是结构程序设计p117结构程序设计是尽可能少用GOTO语句的程序设计方法,最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句;30.人机界面设计问题包含哪些p1221、系统响应时间;2、用户帮助设施;3、出错信息处理;4、命令交互31.掌握设计过程中用到的工具:程序流程图的概念,内容和方法;盒图的概念、内容和方法;会结合实例使用这些工具;掌握PAD图的概念和内容;掌握判定表的概念和内容;要结合实例来掌握它们;P12432.结合Jackson图来掌握面向数据结构的设计方法;p13033.如何度量程序算法的复杂性p13634.掌握几种测试:单元测试、集成测试、确认测试、白盒测试技术和黑盒测试技术;掌握它们的概念,内容和方法;P14635.理解软件维护的定义、特点和维护过程;P189定义:在软件已交付使用之后,为了改正错误或满足新的需要而修改软件的过程;特点:1结构化维护与非结构化维护差别巨大2维护的代价高昂3维护的问题很多维护过程:1、维护组织2、维护报告3、维护的事件流4、保存维护记录5、评价维护活动;36.掌握面向对象方法学的要点,理解面向对象方法学的优点;P203四个要点:对象、类、继承、消息优点:1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好6、掌握面向对象的概念;37.掌握面向对象的概念;P209对象对象的形象表示,对象的定义,对象的特点其他概念类,实例,消息,方法,属性,封装,继承,多态性,重载38.面向对象建模是建立哪三个模型它们的具体内容是什么P21539.1、描述系统数据结构的对象模型类图:表示静态的、结构化的系统的“数据”性质;它是对模拟客观世界实体的对象彼此间的关系的映射,描述了系统的静态结构;2、描述系统控制结构的动态模型状态转换图:动态模型表示瞬时的,行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列;3、描述系统功能的功能模型用例图,数据流图:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求;40.建立对象模型的内容是什么P235建立对象模型,需要定义一组图形符号,并且规定一组组织这些符号以表示特定语义的规则;也就是说,需要用适当的建模语言来表达模型,建模语言由记号即模型中使用的符号和使用记号的规则语义、语法和语用组成;41.掌握用UML提供的类图来建立对象模型的方法;理解类图的定义、基本符号和具体内容;类图建立对象模型的方法:1、定义类2、定义属性3、定义服务4、定义类与类之间的各种关系关联、泛化、依赖和细化;类图的定义:类图描述类与类之间的静态关系;类图是一种静态模型,它是创建其他UML图的基础;基本符号:UML中类的图形符号为长方形,用两条横线把长方形分成上、中、下3个区域下面两个区域可省略3个区域分别放类的名字、属性和服务;42.能结合实例掌握类图中类与类之间的关系:关联、泛化继承、依赖和细化;能根据实例情况正确判断出类与类之间的具体关系类型;关联:关联表示两个类的对象之间存在某种语义上的联系;泛化继承:UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系;具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息;泛化关系指出类与类之间存在“一般-特殊”关系;泛化可进一步分成普通泛化和受限泛化;依赖:描述两个模型元素类、用例等之间的语义连接关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它是依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素;细化:当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系;43.动态模型的概念、内容;P223概念:动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列;内容:动态模型是基于事件共享而互相关联的一组状态图的集合;44.功能模型的概念、内容和建立功能模型的方法;P224概念:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此直接地反应用户对目标系统的需求;内容:功能模型由一组数据流图组成;用例图也是进行需求分析和建立功能模型的强有力工具;方法:创建用例模型的工作包括:定义系统,寻找行为者和用例、描述用例,定义用例之间的关系,确认模型;其中,寻找行为者和用例是关键;45.掌握用例图的概念、内容和方法;P224概念:用例图包括模型元素有系统、行为者、用例和用例之间的关系;内容:系统、用例、行为者、用例之间的关系;方法:创建用例模型的工作包括:定义系统,寻找行为者和用例、描述用例,定义用例之间的关系,确认模型;其中,寻找行为者和用例是关键;46.掌握面向对象分析的基本过程:三个子模型与5个层次;P232三个子模型:静态结构对象模型交互次序动态模型数据变换功能模型复杂问题大型系统的对象模型通常由5个层次组成:主题层、类与对象层、结构层、属性层和服务层;47.结合实例来掌握面向对象分析过程中建立对象模型的方法包含哪些步骤;P231 1.首先,系统分析员要对需求文档进行分析;发现和改正需求文档中的歧义性、不一致性,剔除冗余的内容,挖掘潜在的内容,弥补不足,从而使需求文档更完整、更准确;2.然后,是需求建模;系统分析员根据提取的用户需求,即用面向对象观点建立对象模型、动态模型和功能模型;3.最后,是需求评审;通过用户、领域专家、系统分析员和系统设计人员的评审,并进行反复修改后,确定需求规格说明;48.结合实例来掌握面向对象分析过程中建立动态模型的方法包含哪些步骤;P24749.结合实例来掌握面向对象分析过程中建立功能模型的方法包含哪些步骤;P25350.能结合实例画事件跟踪图P24951.能结合实例画类的状态图P25052.能结合实例画出0层数据流图与功能级数据流图;P42。
计算机软件基础部分简答题
1、软件是一系列按照特定顺序组织的计算机数据和指令的集合。
软件是用户与硬件之间的接口界面。
用户主要是通过软件与计算机进行交流。
软件是计算机系统设计的重要依据。
2、DNS(Internet Domain Name System)中包含了用来按照一种分层结构定义Internet上使用的主机名字的语法,还有名字的授权规则,以及为了定义名字和 IP 地址的对应,系统需要进行的所有设置。
实际上,DNS是一个分布式数据库。
它允许对整个数据库的各个部分进行本地控制;同时整个网络也能通过客户/服务器方式访问每个部分的数据,借助备份和缓存机制,DNS 将更强壮和足够的性能。
DNS系统基于客户机/服务器模式,从概念上说他主要由三个部分组成:(1)域名空间:域名空间中的记录标识一组主机并提供他们的有关信息。
域中的每一个节点都有它的有关信息的数据库。
查询命令试图从这个数据库中提取适当的信息。
简单地说,域名空间是所有不同类型信息的列表,这些信息是域名、IP地址、邮件别名和那些在DNS系统中能查到的内容。
(2)域名服务器:保持并维护域名空间中的数据的程序。
每个域名服务器含有一个域名空间子集的完整信息,并保存其它有关部分的信息。
一个域名服务器拥有它控制范围的完整信息。
控制的信息按区进行划分,区可以分布在不同的域名服务器上,以便为每个区提供服务。
每个域名服务器都知道所有负责其他区的域名服务器。
如果来了一个请求,它请求给定域名服务器负责的那个区的信息,那么这个域名服务器只是简单地返回信息。
但是,如果请求是不同区的信息,那么这个域名服务器就要与控制该区的相应服务器联系。
(3)解析器:解析器是简单的程序或子程序库,它从服务器中提取信息以响应对域名空间内主机的查询。
3、第一个步骤是市场调研,相关系统分析员向用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
软件工程知识点归纳
软件工程知识点归纳第1章软件工程学概述 (3)1.1 软件危机 (3)1.2 软件工程 (3)1.3 软件生命周期 (3)1.4 软件过程 (3)第2章可行性研究 (4)2.1 可行性研究的任务 (4)2.2 可行性研究过程 (4)2.3 系统流程图 (4)2.4 数据流图 (4)2.5 数据字典 (5)2.6 成本/效益分析 (5)第3章需求分析 (5)3.1 需求分析的任务 (5)3.2 与用户沟通获取需求的方法 (5)3.3 分析建模与规格说明 (5)3.4 实体-联系图 (5)3.5 数据规范化 (5)3.6 状态转换图 (6)3.7 其他图形工具 (6)3.8 验证软件需求 (6)第4章形式化说明技术 (6)第5章总体设计 (6)5.1 设计过程 (6)5.2 设计原理 (7)5.3 启发规则 (7)5.4 描绘软件结构的图形工具 (7)5.5 面向数据流的设计方法 (8)第6章详细设计 (8)6.1 结构程序设计 (8)6.2 人机界面设计 (8)6.3 过程设计的工具 (8)6.4 面向数据结构的设计方法 (8)6.5 程序复杂程度的定量度量 (8)第7章实现 (9)7.1 编码 (9)7.2 软件测试基础 (9)7.3 单元测试(模块测试) (10)7.4 集成测试(子系统测试和系统测试) (10)7.5 确认测试(验收测试) (10)7.6 白盒测试技术 (10)7.7 黑盒测试技术 (11)7.8 调试(修改测试发现的错误) (11)7.9 软件可靠性 (11)第8章维护 (11)8.1 软件维护的定义 (11)8.2 软件维护的特点 (11)8.3 软件维护过程 (12)8.4 软件的可维护性 (12)8.5 预防性维护 (12)8.6 软件再工程过程 (12)参考书目 (12)第1章软件工程学概述1.1 软件危机1. 软件危机的定义、表现、产生原因2. 消除软件危机的途径3. 软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。
软件工程复习知识要点
1 软件和软件工程概念软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。
2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序和数据是分别的。
程序的最小单位是类。
3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。
4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。
5.什么是软件工程?(课后题)软件工程是指导计算机软件开发和维护的工程学科。
接受工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
6.可以用功能性、牢靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。
功能性是指软件所实现的功能达到它的设计规范和满意用户需求的程度。
可移植性是指软件从某一环境转移到另一环境时所作努力得程度。
7.软件生存期由软件定义、软件开发和运行维护三个时期组成。
开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。
开发过程中的典型文档包括:项目支配、软件测试支配、软件设计说明书、用户手册。
8.需求分析的基本任务?(1)建立分析模型,了解系统的各种需求微小环节。
(2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试支配和初步的系统用户手册,并提交管理机构进行分析评审。
2 软件工程方法和工具1.面对对象方法的动身点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类相识问题和解决问题的方法和过程,从而使描述问题的问题空间和其解空间在结构上尽可能一样。
2.形式化方法的主要特点是:(课后题)(1) 软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;(2) 设计、实现和单元测试等开发过程由一个变换开发过程代替。
通过一系列变换将形式的规格说明细化成为程序。
3.面对对象 = 对象 + 类 + 继承 + 消息通信。
第二章 计算机硬件与软件概要
内存中存放的是程序和数据,从形式上看,均为二进
制数,一般将每一位二进制数叫做一个二进制位(bit),
8 个二进制位记做一个字节( byte ),每一个内存单元
中存放一个字节的信息。内存容量就是指它所能包含的
内存单元的数量,通常以字节为单位。 1024 ( 210 )字 节记做1KB,220字节记做1MB,230字节记做1GB。
常用的输入设备有 : 键盘、鼠标器、扫描仪、光笔等。
四、 输入设备(INPUT DEVICE)
输入设备与主机之间需通过接口连接。
设置接口的原因:
① 输入设备大多数是机电设备,传送数据的速度远 远低于主机,因而需用接口作数据缓冲。 ② 输入设备表示的信息与主机不同 ③ 接口可以向主机报告设备运行的状态,传达主机 的命令
第二章
计算机硬件结构及工作原理
一个完整的计算机系统由硬件系统和软
件系统两大部分组成。
硬件系统:指计算机的物理实体,是可以看得见、摸得着的部件的
总称 ,它通常指计算机中的电子线路和物理装置Eg:显示器、机箱等。
软件系统:指计算机的逻辑实体,是计算机接
受输入、产生输出、存储数据和处理数据的程序的 总称。 Eg:win2000/xp、office等。
操作系统——控制和管理软硬件系统 资源;提供用户与计算机之间的接口
五大部 件之一——运算器
运算器的任务是对信息进行加工处理。
算术逻辑单元 累 加 器
ALU——运算
暂存操作数和运算结果。
运算器
状态寄存器 通用寄存器
存放算术逻辑单元在工 作中产生的状态信息。 暂存操作数或数据地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号 9861109 9861107 9861103 姓名 张卓 刘忠赏 胡孝臣 成绩 100 95 86
树形结构
树形结构
非线性 结构
全校学生档案管理的树形结构的组织方式
树形结构
A
D
B C E F G H
A B C E D F H
树形结构 —结点间具有分层次的连接关系
٭2.算法的控制结构
▪ 算法中各操作之间的执行顺序 ▪ 描述算法的工具通常有传统流程图、N-S结构化流 程图、算法描述语言等 ▪ 算法可以用顺序、选择、循环三种基本机构组合 而成。
算法基本设计方法
(1)列举法:根据问题,列举所有可能的情况,并用问题 中给定的条件检验哪些是需要的,哪些是不需要的。 (2)归纳法:通过列举少量的特殊情况,经过分析,最后 找出一般的关系。 (3)递推:是指从已知的初始条件出发,逐次推出所要求 的各中间结果和最后结果。 (4)递归:将问题逐层分解的过程。 (5)减半递推技术: “减半”,是指将问题规模减半, 而问题性质不变; “递推”,是指重复“减半”过程。 (6)回溯法:分析问题,找出一个解决总线索,然后沿着 这个线索逐步试探。
٭基本特性
▪ ▪ ▪ ▪ 可行性:根据实际问题设计的算法,执行得到满意结果 确定性:每一步骤必须有明确定义,不允许有多义性。 有穷性:算法必须能在有限的时间内做完。 输入和输出:拥有足够的情报,方可执行。
算法的基本要素
٭1.对数据对象的运算和操作
▪ ▪ ▪ ▪ 算术运算:+、-、×、÷等 逻辑运算:>、<、=、>=、<=、!=等 关系运算:and、or、not等 数据传输:w、r等
1
计算机软件基础知识
软件基础
算法
算法的基本概念
٭算法:是一组有穷指令集,是解题方案的准确而完 整的描述。通俗地说,算法就是计算机解题的过程。 算法不等于程序,也不等于计算方法,程序的编制 不可能优于算法的设计。 ٭算法的基本特征:是一组严谨地定义运算顺序的规则,每
一个规则都是有效的,是明确的,此顺序将在有限的次数下终 止。算法不等于程序,程序不可能优于算法。
数据结构基本概念
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
对数据结构中的节点进行操作处理 (插入、删除、修改、查找、排序)
数据结构研究的主要内容
数据结构主要研究以下三个方面的问题: ٭数据的逻辑结构:数据集合中各元素的信息,及元 素之间所固有的逻辑关系(前后件关系)
٭数据的存储结构:各数据元素在计算机中的存储关 系
图形结构
图形结构:节点间的连接任意
1
4
D={ 1 , 2 , 3 , 4}
R={(1,2) , (1,3) , (1,4) , (2,3) 2
1 D={ 1 , 2 , 3 } R={ (1,2) , (2,3) , (3,2) , (1,3) } 2 3 有向图
3
(3,4) , (2,4) } 无向图
顺序存储与链式存储
顺序存储
٭
存储地址 存储内容 Lo Lo+m
元素1 元素2 ……..
常用于线性数据结构, 将逻辑上相邻的数据元 素存储在物理上相邻的 存储单元里。
三个弱点
插入或删除操作时,需 移动大量元数。 ٭长度变化较大时,需按 最大空间分配。 ٭表的容量难以扩充
٭
Lo+(i-1)*m
算法效率度量——算法的复杂度
算法的复杂度:时间复杂度、空间复杂度
٭算法的时间复杂度
▪ 算法时间复杂度是指执行算法所需要的计算工作量。 ▪ 工作量用算法所执行的基本运算次数来度量,而算法所执 行的基本运算次数是问题规模的函数,即 算法的工作量=f(n)
٭算法空间复杂度
▪ 算法空间复杂度是指执行这个算法所需要的内存空间。 ▪ 存储空间包括:①算法程序所占的空间、 ②输入数据所 占的空间、③算法执行过程中所需要的额外空间
元素i
……..
Lo+(n-1)*m 元素n Loc(a)=Lo+(i-1)*m
每个元 素所占 用的存 储单元 个数
顺序存储与链式存储
1345 元素1 1400
head
元素2 1536 元素3 1346 元素4
∧
存储地址
1345 1346
存储内容
图形结构
2、数据的存储结构
A 顺序存储
B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
线性结构和非线性结构
线性结构条件
(1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 (3)首节点无前件,尾节点无后件。
非线性结构:不满足线性结构条件的数据结构 注意:在一个线性结构中插入或删除任何一个节点后还应是线性结构;
数据结构基本概念
数据结构是一门研究数据组织、存储和运 算的一般方法的学科。
整数(1,2) 能输入到计算机中 、实数(1.1,1.2) 并能被计算机程序处理的 字符串(Beijing)、 符号的集合。 图形、声音。
数据结构基本概念
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
计算机管理图书问题 图书馆里有各种卡片:有按书名编排的、有按作 者编排的、有按分类编排。 如何将查询图书的这些信息存入计算机中既要考 虑查询时间短,又要考虑节省空间
数据结构基本概念
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
最简单的办法之一是建立一张表,每一本书的信 息在表中占一行,如
数据结构基本概念
数据元素在 计算机中的表示
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
如何将0,1,2,3,4,5,6,7,8,9这10个数存放在 计算机中能最快地达到你所需要的目的? 目的不同,最佳的存储方方法就不同。 从大到小排列:9,8,7,6,5,4,3,2,1,0 输出偶数:0,2,4,6,8,1,3,5,7,9
٭对各种数据结构进行的运算
主要目的是为了提高数据的效率。所谓提高数据处理的效
率,主要包括两个方面:一是提高数据处理的速度,二是尽量节省在 数据处理过程中所占用的计算机存储空间。
数据结构类型
线性表 A.线性结构 栈 队 B.非线性结构
1.数据的逻辑结构
数 据 结 构 的 三 个 方 面
树形结构