计算机导论(2009)第6章软件开发知识6.1数据库原理及应用6.2软件工程6.3本章小结计算机广泛应用于各行各业,除了有性能优良的硬件支持外,各种功能强大的软件是不可或缺的。计算机导论(2009)6.1数据库原理及应用关系数据库关系数据库语言常用关系数据库管理系统数据库应用系统开发工具数据库设计数据库的发展数据库技术在开发信息处理类软件中发挥着重要作用。计算机导论(2009)6.1.1关系数据库有关数据库的4个概念数据(Data)描述事物的符号记录。计算机导论(2009)6.1.1关系数据库有关数据库的4个概念数据库(DataBase,简称DB)长期存储在计算机内的、有组织的、可共享的数据集合。数据库管理系统(DataBaseManagementSystem,简称DBMS)位于用户和操作系统之间的一层数据管理软件。完成数据定义、数据操纵、数据库运行管理与维护功能。数据库系统(DataBaseSystem,简称DBS)以数据库为核心的,在数据库管理系统的支持下完成一定的数据存储和管理功能的应用软件系统。计算机导论(2009)6.1.1关系数据库数据管理技术的三个阶段人工管理阶段/文件系统阶段/数据库阶段。数据库的主要特点数据冗余度小重复数据少,节省存储空间并有利于保持数据的一致性。数据共享度高多个应用程序共享使用同一个数据库。数据独立性高物理独立性/逻辑独立性。计算机导论(2009)6.1.1关系数据库数据库管理系统分类层次数据库/网状数据库。关系数据库/对象-关系数据库。面向对象数据库。关系模式示例学生(学号,姓名,年龄,系别)课程(课程号,课程名,学时)选课(学号,课程号,分数)计算机导论(2009)6.1.1关系数据库关系示例学生(学号,姓名,年龄,系别)0701张三18计算机0702李四19计算机0703王五19化学选课(学号,课程号,分数)0701C01920701C02780702C01650703C02860703C0395课程(课程号,课程名,学时)C01计算机导论34C02高等数学102C03大学英语68计算机导论(2009)6.1.2关系数据库语言关系数据库语言的特点非过程化只要提出做什么,而不必指明如何做。功能一体化数据定义与数据操纵格式统一。一种语法两种使用方式。人机交互方式与嵌入主语言方式。面向集合操作语法简捷、易学易用计算机导论(2009)6.1.2关系数据库语言应用示例对于上述学生选课关系,如果查询选修了“计算机导论”课程的学生的姓名,可以写出如下查询语句:SELECT学生.姓名FROM学生,选课,课程WHERE学生.学号=选课.学号AND选课.课程号=课程.课程号AND课程.课程名=“计算机导论”;计算机导论(2009)6.1.3常用关系数据库管理系统小型数据库管理系统dBASE/FoxBASEFoxPro/VisualFoxProAccess大型数据库管理系统OracleMSSQLServerDB2SybaseInformix计算机导论(2009)6.1.3常用关系数据库管理系统大型数据库管理系统的特点基于网络环境的数据库管理系统。支持大规模的应用。自动锁功能使得并发用户可以安全而高效地访问数据。可以保证系统的高度安全性。提供方便而灵活的数据备份和恢复方法及设备镜像功能。提供多种维护数据完整性的手段。提供了方便易用的分布式处理功能。计算机导论(2009)6.1.4数据库系统开发工具自带开发工具专用开发工具PowerBuilderDelphiVisualBasicVisualC++计算机导论(2009)6.1.5数据库设计需求分析对组织的工作现状和用户需求进行调查分析。明确用户的信息需求和系统功能。提出拟建系统的逻辑方案。计算机导论(2009)6.1.5数据库设计概念结构设计将需求分析阶段得到的用户需求抽象为反映现实世界信息需求的数据库概念结构(E-R图)。设计局部E-R图。集成局部E-R图为全局E-R图。优化全局E-R图。计算机导论(2009)6.1.5数据库设计逻辑结构设计把概念结构设计阶段的E-R图转换成与具体的DBMS产品所支持的数据模型相一致的逻辑结构。将E-R图转换为关系模型。对关系模型进行优化。计算机导论(2009)6.1.5数据库设计物理结构设计确定数据库在实际的物理设备上的存储结构和存取方法。确定数据的存储安排。存取路径的选择与调整。确定系统配置。计算机导论(2009)6.1.5数据库设计数据库实施根据逻辑设计和物理设计的结果,在选用的DBMS上建立起数据库建立数据库结构。载入实验数据并测试应用程序。载入全部实际数据并试运行应用程序。计算机导论(2009)6.1.5数据库设计数据库的运行和维护数据库的转储和恢复。数据库的安全性完整性控制。数据库性能的监督和分析。数据库的重组织与重构造。计算机导论(2009)6.1.6数据库的发展分布式数据库由一组数据组成,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力,可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局应用。本地数据库管理系统。全局数据库管理系统。全局数据字典。通信管理。计算机导论(2009)6.1.6数据库的发展XML数据库可扩展标记语言(eXtensibleMarkupLanguage)的简称,正在逐步成为新一代Web数据描述和数据交换的标准。与HTML的主要区别内容与形式的分离。良好的可扩展性。良好的跨平台移植性。良好的自描述性。计算机导论(2009)6.1.6数据库的发展数据仓库面向主题的、集成的、时变的、非易失的数据集合,支持管理部门的决策过程。计算机导论(2009)6.1.6数据库的发展数据挖掘是从存放在数据库、数据仓库或其他信息库中的大量数据中发现有用知识的过程。主要功能概念描述/关联分析/分类/聚类。孤立点分析/演变分析。计算机导论(2009)6.2软件工程软件开发的复杂性软件工程的基本原则软件开发方法系统分析系统设计系统实施系统运行与维护应用工程化方法来开发大型软件,以保证软件开发的质量和效率。计算机导论(2009)6.2.1软件开发的复杂性软件危机软件开发成本和开发进度的估计往往很不准确。用户对“已完成”的软件系统不满意的现象经常发生。软件产品的质量往往不可靠。软件没有适当的文档资料。软件通常是不可维护的。软件工程采用工程的概念、原理、技术和方法来开发和维护软件。计算机导论(2009)6.2.1软件开发的复杂性复杂性的表现开发环境的复杂性用户需求的多样性技术手段的综合性计算机硬件和软件技术。数据通信与网络技术。数据采集与存储技术。多媒体技术。计算机导论(2009)6.2.2软件工程的基本原则B.W.Boehm总结的7条基本原则用分阶段的生命周期计划进行严格的管理。坚持进行阶段评审。实行严格的产品控制。采用现代程序设计技术。结果应能清楚地审查。开发小组的人员应该少而精。承认不断改进软件工程实践的必要性。计算机导论(2009)6.2.3软件开发方法生命周期法含义:将整个软件的开发过程分解成若干个阶段,并对每个阶段的目标、任务、方法作出规定,使整个软件的开发过程具有合理的组织和科学的秩序。生命周期的四个主要阶段系统分析/系统设计/系统实施/系统运行与维护。遵循的原则用户参与的原则/先逻辑后物理的原则。自顶向下的原则/工作成果描述标准化原则。计算机导论(2009)6.2.2软件开发方法快速原型法含义:以少量代价快速地构造一个可执行的软件系统,使用户和开发人员可以较快地确定需求。需求规格原型。渐进原型。计算机导论(2009)6.2.2软件开发方法面向对象法含义:把数据和对数据的操作同等看待,是一种以数据为主线,把数据和对数据的操作紧密结合起来的方法。主要特点把对象作为融合了数据及在数据上的操作行为的统一软件构件,用对象分解取代了结构化方法的功能分解。把所有对象都划分为类。每个类定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。计算机导论(2009)6.2.2软件开发方法面向对象法主要特点按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。下层子类自动拥有上层父类中定义的数据和操作,这种现象称为继承。对象彼此之间仅能通过发送消息互相联系,对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是封装性。计算机导论(2009)6.2.4系统分析系统分析的任务对组织的工作现状和用户需求进行调查、分析,明确用户的信息需求和系统功能,提出拟建系统的逻辑方案。系统分析步骤系统初步调查可行性研究技术可行性/经济可行性/运行可行性。系统详细调查新系统逻辑方案的提出系统分析说明书--全面/系统/准确/详实/清晰。计算机导论(2009)6.2.5系统设计系统设计任务从软件的总体目标出发,根据系统分析阶段对系统逻辑功能的要求,并考虑到技术、经济、运行环境等方面的条件,确定系统的总体结构和系统各组成部分的技术方案,合理选择计算机和通信的软、硬件设备,提出系统的实施计划,确保总体目标的实现。系统设计依据系统分析的成果/现行技术。国家标准与行业规范/用户需求/系统运行环境。计算机导论(2009)6.2.5系统设计系统设计步骤总体结构设计运行模式选择/操作系统选择。数据库管理系统选择。网络平台及结构选择。系统功能结构设计。详细设计算法设计/编码设计。数据库设计/用户界面设计。计算机导论(2009)6.2.6系统实施系统实施的任务以系统分析和系统设计阶段的工作成果为依据,将技术设计方案转化成物理实现。主要工作步骤程序设计系统测试模块测试/集成测试/验收测试。系统转换直接转换/并行转换/分阶段转换。计算机导论(2009)6.2.7系统运行与维护维护含义在系统运行阶段,为了改正错误或满足新的需要而修改/完善系统的过程。维护内容应用程序维护/数据维护。编码维护/硬件设备维护。维护类型纠错性维护/适应性维护。完善性维护/预防性维护。计算机导论(2009)6.2.8软件工具软件工具定义用来辅助软件开发的软件,能在软件开发的各个阶段为开发人员提供帮助,有助于提高软件开发的质量和效率。软件工具种类项目管理工具/配置管理工具/分析和设计工具。编程工具/测试工具/维护工具。计算机导论(2009)6.2.8软件工具软件开发环境定义在基本硬件和软件的基础上,为支持软件的工程化开发而使用的软件系统。由软件工具和和环境集成机制构成。计算机辅助软件工程定义用一些计算机软件来辅助软件的出开发。计算机导论(2009)6.3本章小结软件开发所需知识程序设计语言/数据库技术/软件工程。数据库技术数据库语言/常用DBMS/开发工具。数据库设计(需求分析/概念设计/逻辑设计/物理设计/实施与维护)。软件工程软件危机导致软件工程的出现。生命周期法/快速原型法/面向对象法。软件开发过程(分析/设计/实现/测试/维护)。软件工具/软件开发环境/计算机辅助软件工程。