实验1软件工程概念与相关工具1.1软件工程的计算环境(实验估计时间:90分钟)1.1.1背景知识软件工程学主要研究如何以较少的代价获得高质量的软件,而要达到这个目的,就必须研究软件开发方法和软件开发工具。软件开发方法就是开发软件的规范化方法。软件工具是指能支持软件生存周期中某一阶段(如系统定义、需求分析、设计、编码、测试或维护等)的需要而使用的软件系统;软件开发环境则是面向软件整个生存周期,为支持各个阶段的需要,在基本硬件和宿主软件的基础上使用的一组软件系统。软件工具和软件开发环境都是软件工程的重要支柱,对于提高软件生产率,改进软件质量,以及适应计算机技术的迅速发展有着越来越大的作用。从20世纪70年代末开始,专家们就致力于软件开发自动化工具的研究,并逐步形成了应用于软件过程的集成的项目支撑环境(IntegratedProjectSupportEnvironment)和计算机辅助软件工程(CASE,Computer-AidedSoftwareEngineering)工具。在此基础上建立集成式软件开发环境,全面支持软件开发过程,以期实现软件设计过程的自动化或半自动化。1.1.2实验目的1)理解软件工程的基本概念,熟悉软件、软件生存周期、软件生存周期过程和软件生存周期各阶段的定义和内容。2)通过Internet搜索与浏览,了解网络环境中主流的软件工程技术网站,掌握通过专业网站不断丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持来开展软件工程应用实践。1.1.3工具/准备工作在开始本实验之前,请预习教科书第一章的相关内容。需要准备一台带有浏览器、能够访问因特网的计算机。1.1.4实验内容与步骤《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)21)请查阅有关资料,给“软件”下一个权威性的定义:软件(中国大陆及香港用语,台湾作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。另也泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规等等。这个定义的来源是:)“软件生存周期”是软件工程技术的重要基础,是对软件的长远发展的看法,这种看法把软件开始开发之前和软件交付使用之后的一切活动都包括在软件生存周期之内。请查阅有关资料,给出“软件生存周期”的定义:软件生存周期(SDLC,软件生命周期)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。这个定义的来源是:)“软件生存周期过程”概念进一步完善了关于软件生存周期的定义,其主要内容是:软件工程的传统途径是生命周期法,强调结构化分析,结构化设计.1.生命周期法的起源人类解决复杂问题时普遍采用的一个策略是各个击破,也就是对问题进行分解,然后再分别解决各个子问题的策略.软件工程采用的生命周期法,就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后再逐步完成每个阶段的任务.2.1软件生命周期2.生命周期划分的原则各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理.3.生命周期的划分软件生命周期一般分为:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码和单元测试,综合测试),软件使用与维护等三个时期.生命周期法各阶段的工作小结生命周期法各阶段的工作小结2.1软件生命周期4.生命周期法的特点阶段具有顺序性和依赖性《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)3推迟实现的观点质量保证的观点每个阶段都必须完成规定的文档每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误.这个定义内容的来源是:)由于工作对象和范围的不同以及经验的不同,对软件生存周期过程中各阶段的划分也不尽相同。但是,这些不同划分中有许多相同之处。相关的软件工程国家标准把软件生存周期划分为8个阶段,这8个阶段是:①系统分析②可行性分析③需求分析④概要设计⑤详细设计⑥编写代码⑦用户测试⑧运行与维护你认为把软件生存周期划分为不同阶段的意义何在:同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大。5)上网搜索和浏览,了解软件工程技术的应用情况,看看哪些网站在做着软件工程的技术支持工作?并将搜索结果记录下来。目前软件工程9个专业的内容和就业情况如下:1可视化编程掌握程序设计方法及可视化技术,精通一种可视化平台及其软件开发技术。获取Delphi程序员系列、Java初级或VB开发能手认证。就业方向:企业、政府、社区、各类学校等可视化编程程序员。2WEB应用程序设计具有美工基础和网页动画设计能力,掌握交互式网页程序的设计技术,能进行网站建设和维护。获取Macromedia多媒体互动设计师或Delphi初级程序员或Delphi快速网络开发工程师认证。就业方向:企业、政府、社区、各类学校等WEB应用程序员。3软件测试《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)4掌握软件测试的基本原理、方法和组织管理,精通软件测试工具。获取ATA软件测试工程师或Delphi初级程序员或Java初级程序员认证。就业方向:企业、政府、社区、各类学校等软件测试员。4数据库管理能应用关系范式进行数据库设计,精通SQL语言,胜任数据库服务器管理与应用工作。获取Oracle数据库管理或SQLServer数据库应用或WindowsXP应用认证。就业方向:企业、政府、社区、各类学校等部门的中、大型数据库管理员。5图形图像制作精通国际上流行的图形/图像制作工具(如CorelDraw、Photoshop、Pagemaker等)。获取平面设计师相关的认证。就业方向:广告制作公司、建筑设计公司、包装装璜设计公司、居室装修公司、出版印刷公司。6网络构建技术熟悉网络结构和组网方式,掌握建网方法,能利用工具分析和排除常见网络故障。获取Cisco路由配置或华为网络工程或AMP应用工程师认证。就业方向:企业、政府、社区、各类学校等网络构建工程师。7网络系统管理掌握网络系统管理的基本知识与应用技能,能进行网络系统的安全设置。获取Window2000Server或TurboLinuxTLCE或Cisco路由配置专家认证。就业方向:企业、政府、社区、各类学校等网络系统管理员。8多媒体制作具有多媒体程序设计与多媒体制作策划的能力。基本掌握面向对象程序设计与建模、造型设计、场景设计、分镜头原理等技能。获取多媒体设计师相关的认证。就业方向:多媒体设计与制作公司、动画美术制作出版公司、广告制作公司。9计算机办公应用精通办公自动化应用与管理,熟悉服务器的安装、管理和维护,基于应用服务器的相关服务和软件系统,具备对服务器的网络安全设置、邮件、网页发布、FTP、OA、BBS等系统的应用和维护能力。就业方向:企业、政府、社区、各类学校等系统管理提示:一些软件工程专业网站的例子包括(软件工程专家网)(系统分析&软件工程网)(软件工程研究中心)(火龙果软件工程-UML软件工程组织)《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)5你习惯使用的网络搜索引擎是:百度、google你在本次搜索中使用的关键词主要是:软件工程的现状与未来表1-1软件工程专业网站实验记录网站名称网址内容描述软件工程专家网系统分析在本实验中将你感觉比较重要的2个软件工程专业网站记录下来:①网站名称:②网站名称:综合分析,你认为各软件工程专业网站当前的技术(如培训内容)热点是:①名称:主要内容:②名称:主要内容:③名称:主要内容:1.2工具、环境与CASE(实验估计时间:90分钟)1.2.1背景知识软件工程的主要目标是提高软件生产率,改善软件质量和降低软件成本,而这些目标的实现必须依靠软件工具、软件开发环境和计算机辅助软件工程(CASE)的广泛应用。1.软件工具《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)6软件工具是“可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理等目的而编制的计算机程序或软件。”它一般是为专门应用而开发,其主要目的是为了提高软件生产率和改善软件的质量。如今,软件工具重视用户界面的设计,不断地采取新理论和新技术,正由单个工具向多个工具集成的方向发展,且注重工具间的平滑过渡和互操作性。软件工具的商品化推动着软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。软件工具的范围很广,它既包括比较成熟的传统工具,如操作系统、编译程序、解释程序和汇编程序等,又包括支持软件生存周期各阶段,如需求分析、设计、编码、测试、维护等的开发和管理工具。例如,一项分类标准把软件工具分为13类,它们是系统模拟和模型工具、需求追踪工具、需求分析工具、设计工具、编码和单元测试工具、测试和集成工具、文档工具、项目管理工具、配置管理工具、质量保证工具、度量工具、软件再用工具、其他工具。2.软件开发环境软件开发环境是指在计算机基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。1985年第八届国际软件工程会议提出的关于“软件开发环境”的定义是:“软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成。”一般说来,软件开发环境都具有层次式的结构,例如可区分为四层:1)宿主层:它包括基本宿主硬件和基本宿主软件。2)核心层:包括工具组、环境数据库、通信设施和运行时刻支持设施。3)基本层:包括一组工具,如编译程序、编辑程序、调试程序、连接程序和装配程序等。这些工具都是由核心层来支持的。4)应用层:以特定的基本层为基础,包括一些补充工具,借以更好地支持各种应用软件的研制。按内容分,软件开发环境一般由环境数据库、接口软件和工具组等构成。1)环境数据库。这是软件开发环境的核心,其中存放的信息有被研制软件在其生存周期中所必需的信息和软件研制工具的有关信息等。例如,它把经过各种软件工具加工后的软件产品和半成品(如各种文件、源代码及测试数据)存入库内,以便根据需要进行查询、修改或输出等。在环境数据库中,可以分别标识的信息组称为对象;作为一组相关的版本而存在的一组对象称为版本组。把一个项目中各个不同的“对象组”组合起来,就可《软件工程》实验指导书---计科09本(软件工程)、数信08本(信息与计算科学)7以构成各种不同的软件配置。2)接口软件。包括系统与用户的接口、子系统和子系统之间的接口。开发环境要求所有的接口都具有统一性。例如,为了实现用户和各种系统的通信,要求有统一调用方式。3)工具组。软件开发环境中的工具彼此有交互作用。工具组中的各个工具被设计成由一些基本功能成分组成。这些成分可以组合,供