按计算机承担的任务性质划分,归纳起来,计算机应用主要分以下几个方面。近年来,由于计算机科学技术的迅速发展,特别是网络技术和多媒体技术的迅速发展,计算机不断应用于新的领域。......
2023-11-25
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。简言之,软件工程是研究软件的工程化生产的技术和方法。
软件工程的目标是在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有益于提高软件产品的质量和开发维护效率,减少后期维护的难度和成本。
(1)适用性:软件在不同的系统约束条件下,使用户需求得到满足的难易程度。
(2)有效性:软件系统能最有效地利用计算机的时间和空间资源。人们把系统的时、空开销作为衡量软件质量的一项重要技术指标。在很多情况下,在追求时间有效性和空间有效性时会发生矛盾,这时要么牺牲时间有效性换取空间有效性,要么牺牲空间有效性换取时间有效性。时间、空间折中是经常采用的技巧。
(3)可修改性:允许对系统进行修改而不增加原系统的复杂性。它支持软件的调试和维护,是一个难以达到的目标。
(4)可靠性:能防止由概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回操作不当造成软件系统失效的能力。
(5)可理解性:系统具有清晰的结构,能直接反映问题的需求,避免对问题理解的二义性。可理解性有助于控制软件系统的复杂性,支持软件的维护、移植或重用。
(6)可维护性:软件交付使用后,能够容易地对它进行修改,以改正潜藏的错误,提高软件性能,使软件产品适应新环境的变化。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。
(7)可重用性:把概念或功能相对独立的,且在多处使用的一个或一组相关模块定义为一个软部件,用时可组装在系统的相应位置,从而降低软件开发的工作量。
(8)可移植性:软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。可移植性可提高软件的适用范围,提高软件的覆盖面的重要属性。这需要软件具有较高的相对硬件的独立性,与硬件的关系越松散越好,与硬件彻底无关是最理想的状态。
(9)可追踪性:根据软件需求对软件设计、程序进行正向追踪,或根据软件设计、程序对软件需求逆向追踪的能力。
(10)可互操作性:多个软件元素相互通信并协同完成任务的能力。
一般软件开发流程分为需求分析、概要设计、详细设计、程序编码、软件测试、软件交付、验收和维护等8 个阶段,具体划分也与软件的规模有直接关系,尽管划分阶段的多少和具体名称不尽相同,但软件开发过程基本涵盖了这些内容,不会有大的变化。
1.需求分析
(1)系统分析员初步了解用户需求,然后列出要开发的软件系统的功能模块,罗列每个功能模块有哪些小功能模块,有些用户比较明确地提出软件相关界面时,在这里可初步定义少量界面。
(2)系统分析员深入了解和分析需求,形成一份用户需求分析报告文档。该文档要清楚列出系统大致的功能模块,以及功能模块包含的小功能模块,还要列出相关的界面和界面功能。
(3)系统分析员向用户再次确认需求,根据用户提出的问题,修改用户需求分析报告,经用户签字确认后作为下一步概要设计工作的依据。
2.概要设计(www.chuimin.cn)
开发者依据用户需求分析报告对软件系统进行概要设计(又叫系统设计、总体设计)。概要设计需要对软件系统的总体架构进行设计,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计奠定基础。需要对硬件进行设计的,要给出硬件需求清单。
3.详细设计
在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计思路,以便进行编码和测试。应当保证软件的需求完全得以实现。详细设计应当足够详细,最终形成软件系统详细设计报告。
4.程序编码
在程序编码阶段,开发者根据软件系统详细设计报告中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的程序编写工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常为1/3。所谓“磨刀不误砍柴工”,设计过程完成得好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心考虑的,也许一个小模块的问题会影响整体进度,让很多程序员被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug 永远存在,必须面对这个问题。
5.软件测试
测试编写好的程序系统,除编码过程中小段程序需要测试外,小模块组装成大模块也需要测试,后者是更重要的测试。交给用户使用后,要逐一确认每个模块的功能。软件测试有很多种类型:按照测试执行方,可以分为内部测试和外部测试(又叫白盒测试和黑盒测试);按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常操作情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。总之,测试同样是项目研发中一个相当重要的步骤,根据软件的规模不同,测试的时间有长有短,因为永远都会有不可预料的问题存在。测试完成后,需要提交验收的帮助文档,整体项目才算完成。
6.软件交付
在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、用户安装手册、用户使用指南、需求报告、设计报告、测试报告等双方合同约定的文档和程序代码。
用户安装手册应详细介绍安装软件对运行环境的要求,安装软件的定义和内容,客户端、服务器端及中间件的具体安装步骤,安装后的系统配置过程等内容。
用户使用指南应包括软件的使用流程、操作步骤、相应业务功能、操作过程介绍、特殊提示和注意事项等内容,若有需要还应举例说明。
7.验收
用户验收无误后,开发者和用户分别在验收报告上签字,这标志着项目开发工作的正式结束。
8.维护
根据用户需求的变化或环境的变化,应对应用程序进行全部或部分的修改。一般用户会委托开发者或自己配备程序员,专门负责软件的升级和修补工作,因为很难避免系统不存在瑕疵。用户的需求也是不断变化的,软件运行环境(硬件和系统)也是在不断更新的,要保持软件正常运行,适应新的变化,就要不停地跟踪软件的运行状况,持续迭代升级,直到软件被彻底淘汰为止。
人类社会正在步入“万物皆可互联、一切皆可编程”的新时代,软件代码将成为一种最为重要的资产形式,软件编程将成为一种最为有效的生产方式。软件定义将迅速引发各个行业的变革。从软件定义无线电、软件定义雷达、软件定义网络、软件定义存储、软件定义数据和知识中心,到软件定义汽车、软件定义卫星,再到软件定义制造、软件定义服务,软件定义将成为科技发展的重要推手,极大地提高各行各业的智能化程度和整个社会的智能化水平。
有关计算机导论(第2版)的文章
按计算机承担的任务性质划分,归纳起来,计算机应用主要分以下几个方面。近年来,由于计算机科学技术的迅速发展,特别是网络技术和多媒体技术的迅速发展,计算机不断应用于新的领域。......
2023-11-25
该专业学制四年,主要开设人工智能基础、深度学习、Python 程序设计、模式识别与计算机视觉、高级数据结构与算法分析、数据挖掘技术与应用、医学图像处理、数据可视化技术、机器学习导论、概率论与数理统计等课程,学生毕业后被授予工学学士学位。......
2023-11-25
网络事件营销的本质是将企业新闻变成社会新闻,在引起社会广泛关注的同时,将企业或产品的信息传递给目标受众。网络事件营销的最大特点是成本低、见效快,相当于“花小钱办大事”。网络事件营销中利益与风险并存,因此企业既要学会取其利,还要学会避其害。......
2023-11-25
本专业培养德、智、体、美全面发展,有良好的科学素养,系统掌握网络工程专业所必需的基本理论和基本知识,掌握计算机网络系统的规划设计、组建维护、安全保障和管理应用的相关理论、知识、技能和方法,具有一定的工程管理能力和良好的综合素质,能够承担计算机网络工程建设、网络应用系统开发、网络管理和维护等工作的应用型技术人才。......
2023-11-25
智能移动终端以及可穿戴设备的出现,标志着操作系统的发展进入大互联网时代。②小型机操作系统。虽然受到苹果公司的挑战,但微软MS-DOS 及其后续开发的Windows 3.1、Windows 95通过广泛授权,迅速占领了PC 市场的有利位置,成为PC 操作系统的主流产品。1998 年,微软公司推出Windows 98,在2000 年又发布Windows NT,在2001 年发布Windows XP,逐步巩固了个人操作系统的全球霸主地位,市场份额超过95%。......
2023-11-25
①数据库技术与分布处理技术相结合,出现了分布式数据库系统。多媒体数据库系统是数据库技术与多媒体技术结合的产物。多媒体数据库系统不是对现有的数据进行界面上的包装,而是从多媒体数据与信息本身的特性出发,改进数据库管理技术,方便声音、图像、视频等多媒体数据的管理和应用。数据仓库是为企业所有级别的决策制定过程,提供所有类型数据库支持的战略集合。统计数据库是指对统计数据进行存储、统计、分析的数据库。......
2023-11-25
该专业学制四年,主要开设面向对象程序设计、数据结构、计算机网络、数据库系统、操作系统、电路与电子技术、计算机组成原理、网络程序设计、物联网感知技术、物联网通信技术、网络规划设计、嵌入式系统、嵌入式软件设计等课程,学生毕业后被授予工学学士学位。......
2023-11-25
相关推荐