基于软件工程的方法构建林业云服务平台

基于软件工程的方法构建林业云服务平台
基于软件工程的方法构建林业云服务平台

Software Engineering and Applications 软件工程与应用, 2014, 3, 57-69

Published Online June 2014 in Hans. https://www.360docs.net/doc/1b9044188.html,/journal/sea

https://www.360docs.net/doc/1b9044188.html,/10.12677/sea.2014.33008

Design of Forestry of Cloud Service Splat

Form Based on Software Engineering

Method

Fan Li1, Yan Ma1, Xu Zhang1, Yong Ma2, Pengdong Gao3

1Institute of Forest Resource Information Technique, Chinese Academy of Forestry, Beijing

2Institute of Remote Sensing and Digital Earth, Chinese Academy of Sciences, Beijing

3High Performance Computing Center, Communication University of China, Beijing

Email: lifan@https://www.360docs.net/doc/1b9044188.html,

Received: Apr. 5th, 2014; revised: May 7th, 2014; accepted: May 15th, 2014

Copyright ? 2014 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

https://www.360docs.net/doc/1b9044188.html,/licenses/by/4.0/

Abstract

With full development of information technologies, such as cloud computing, big data and Internet of things, the forestry informatization also entered a new stage of development. This paper de-signed the standardization of forestry cloud service platform including requirement analysis and profile design through the software engineering method, which serves for the development and testing of forestry cloud service platform.

Keywords

Soft Engineering, Cloud Computing, Forestry Information Resources

基于软件工程的方法构建林业云服务平台

李凡1,马琰1,张旭1,马勇2,高鹏东3

1中国林业科学研究院资源信息研究所,北京

2中国科学院遥感与数字地球研究所,北京

3中国传媒大学高性能计算中心,北京

Email: lifan@https://www.360docs.net/doc/1b9044188.html,

收稿日期:2014年4月5日;修回日期:2014年5月7日;录用日期:2014年5月15日

摘要

随着云计算、大数据、物联网等信息技术的兴起和日渐成熟,林业信息化也步入了崭新的发展阶段。本文将通过软件工程的方法,从需求分析到概要设计,对林业云服务平台进行规范化的设计,方便林业云服务平台的开发与测试。

关键词

软件工程,云计算,林业信息资源

1. 引言

森林作为陆地生态系统主体,在调节全球碳平衡、减缓大气CO2浓度上升,以及调节全球气候方面具有不可替代的作用。现代林业科研信息化是依靠先进的计算机技术、遥感技术、GIS技术与地面调查相结合。随着遥感、地面传感器等观测数据的快速增加、数据资源的复杂度和计算量的也随之加大,传统的科学研究方法和手段已经暴露出其明显的不足:一方面,小范围、封闭式的科学研究活动,造成信息不能快速流动和充分共享,造成重复劳动、效率低下的问题,延长了重大科研成果产出的时间。另一方面,传统的观测实验、理论分析的科研手段,在面对很多复杂问题时已经显得无能为力,迫切需要对大规模数据的处理分析、计算模拟和仿真等新的科研方法的支持[1]。

利用先进的云计算技术,解决林业遥感海量数据存储、处理以及系统共享等问题,将硬件资源、数据资源、处理技术、应用服务以及产品信息等打包成可动态使用的服务,提供给开发者和普通用户。林业信息系统开发工作者提供了一站式工作平台,使其无需关注基础建设,而专注于自身业务应用,有利于降低成本,推动林业科研的深入快速发展;并且也通过社会化、专业化的服务,降低了林业信息技术应用的门槛,为向公众普及林业知识、全面了解林业资源、宣传林业贡献提供了方便的途径和渠道[2]-[4]。2. 总体需求

林业资源是森林资源、荒漠化/沙化与石漠化土地资源、湿地资源和生物多样性资源的统称。林业资源信息是指在一定时间和空间范围内,利用各种信息采集、处理和分析技术及其它相关技术,对森林生态系统、荒漠生态系统、湿地生态系统及其它相关的生态系统进行系统的观察、测定、分析和评价而获取的各类数据,能有效反映资源历史、现状、动态及趋势等。

围绕林业的四类业务职能,目前存在的主要的林业信息系统有:森林资源监测系统、湿地资源监测

系统、荒漠化监测系统、生态工程监测系统、森林灾害监测系统和公众门户(图1)。

1) 森林资源监测系统主要是利用少量地面调查样地对应的遥感和GIS信息,采用非线性算法,建立以样地大小为单位的森林蓄积量、生物量和郁闭度定量估测模型。结合监测区域地理信息资料和高分辨率遥感影像,实现对任意区域森林蓄积量、生物量和郁闭度的定量估测;

2) 湿地资源监测系统主要利用遥感数据和湿地植被光谱地面调查数据、湿地资源调查数据,实现对湿地类型信息、湿地植被信息提取为主要目的湿地资源监测。

3) 荒漠化监测系统主要是利用遥感手段监测荒漠化地区的生态环境、指标覆盖以及评估土地生产力,为改造荒漠化做决策支撑;

4) 生态工程监测系统利用遥感数据的分析,实施连续监测,随时掌握林业生态工程实施情况,通过

Figure 1.Main forestry business applications

图1. 林业主要业务应用

对工程建设成果数据的统一管理,及时了解工程建设情况,充分发挥监测成果对生态工程建设的决策支撑作用;

5) 森林灾害监测系统是利用林业基础数据以及天气、地质等部门的监测信息,采用模型预测的方法,实现对森林重大灾害和生态状态的预报预警、应急处理和影响评估;

6) 公众门户主要以网站的形式的存在,主要是发布林业信息,方便公众用户查询、检索。

林业云服务平台就是在整合分散于不同地理位置的高性能计算集群、专用计算设备、各种遥感数据资源等的基础上,实现了多用户无冲突、安全、灵活地访问各种异构动态的资源,为林业科研人员提供一个开放、透明的资源使用平台,为公众提供各种标准化或者个性化林业应用服务[5] [6]。因此其需求主要包括如下四个方面:

1) 实现各类林业信息的数据管理,如矢量森林资源分布数据的质检、入库、更新、备份等等;

2) 提供各类林业信息的服务管理,如森林资源分布数据制作成标准的Web Server服务,并进行服务的注册、审核、发布、查询、定制等等;

3) 实现高性能的林业信息处理,对林业应用产品进行实时或者近实时的生产,并按照一定的级别向不同权限的用户进行分发、共享和发布;

4) 实现各类林业服务用户管理,如用户注册、用户权限等等。

该平台采用云计算技术,通过平台管理系统不仅要实现各类计算资源的实时监控与管理、作业环境管理、数据资源管理以及林业专业应用管理等功能,而且还要实现平台框架的管理子系统,以便支持林业业务应用子系统的运行,构成一个统一授权、统一认证、统一管理的平台管理系统。

根据上述需求分析,该平台可以分为接口与界面管理子系统、通用支撑服务子系统、数据资源管理子系统、平台资源管理子系统以及应用系统管理子系统,如图2所示。

3. 子系统设计

对林业云服务平台的5个子系统流程的进行了分析,并给出了系统流程图,对其中的数据资源管理系统进行了详细的设计。

3.1. 接口与界面管理子系统

接口与界面管理负责林业应用示范系统的界面管理和应用程序的接口管理。界面管理是平台的重要

组成部分,管理基于Portal架构实现的各类组件,为林业应用示范系统提供界面定制功能,包括专题组件的选取、界面格局的定制,界面风格的配置等。接口管理负责应用程序接口的维护和发布,针对不同的林业应用系统开发人员发布相应授权的应用程序接口。接口与界面管理的流程图如图3所示。

3.2. 应用系统管理子系统

应用系统管理对所有的林业计算应用进行集中管理,是一个开放的应用管理和消费平台。应用系统

Figure 2.Structure of forest cloud services platform

图2. 林业云服务平台组成

Figure 3.?nterface and user interface management flow

diagram

图3. 接口与用户界面管理流程图

管理子系统实现在因特网环境下进行信息和林业计算应用的集成,能够依据新的需求,快速、灵活地集成和发布各种已有的和新增的林业计算应用,使它们可以有机协同地为终端用户提供服务,并满足不同用户所需的服务质量标准[7] [8]。应用管理子系统提供了林业计算应用的发布、订阅、注册、消费统计等机制。应用系统管理流程如图4所示。

3.3. 数据资源管理子系统

数据资源管理根据林业遥感数据资源分类及其服务规划,以文件或数据库的方式对数据资源进行集中管理,实现表格数据、空间矢量数据与栅格数据等多种林业及其相关资料的集中管理和交换,形成统一开发调用接口,规范数据访问,确保数据编辑与汇交数据的开放性,通过版本控制数据变化轨迹,管理数据的签入、签出、回滚、分支等操作,保证资源数据在共享操作状态中的安全性与完整性,并实现在线与近线的两线存储方式和多镜像数据同步机制。此外,为了加强数据的安全管理,实现对数据的定期备份,并提供相应的快速恢复机制。在数据服务上,对外提供在线服务调用和域空间数据共享两种方式。数据资源管理流程图如图5所示。

数据管理子系统在当在页面需提交请求之后要后,直接调用数据请求的接口,将页面标记传送给数据层,验证提交请求的信息,成功后获取相应的数据或者生成相应的数据元信息,并进行快视图显示,之后相关请求例如查询、下载等。该实例根据页面相关信息进行实例化,生成请求任务。活动图见图6。

数据管理子系统的设计包括共包含图像主窗口显示类(ImageMainWindow类)、图像显示级联类(ImageCoordinatedsWindow类)、图像属性显示类(PixelInfomationDlg类)、文件导出类(FtpInterface类)、文件执行类(FtpTaskMessage类)、文件管理支撑类(FtpDo类)、文件下载类(FtpDownloadTask类)、文件上传类(FtpUploadTask类)。类图见图7。

1) ImageCoordinatedsWindow类用于管理多波段的遥感数据的显示。

Figure 4. Application system Management Flow diagram

图4. 应用系统管理流程图

Figure 5.Data resource management flow diagram

图5. 数据资源管理流程图

Figure 6.Data management module activity diagram

图6.数据管理模块活动图

2) ImageMainWindow类用于集成了遥感图像增强算法,通过设置不同的参数来显示遥感图像。

3) PixelInformationDlg类继承于Swing的Dialog类,主要用于显示当前图像的属性信息,如:基本信息、投影信息等。

4) FtpInterface类的作用是响应客户端的文件导出按钮。

5) FtpTaskMessage类是上传下载模块的模型类,定义一些上传下载所需要成员变量及对应的set/get

Figure 7.Data management module class diagram

图7.数据管理子系统部分类图

方法。

6) FtpDownloadTask类存放了下载文件的一些信息,如下载文件名和文件个数。

7) FtpUploadTask类存放了上传文件的一些信息,如上传文件名和文件个数。

8) FtpDo类是上传下载模块的业务逻辑支撑类,定义并实现了具体的上传下载方法。

用户通过页面发出请求,通过FtpInterface类,生成任务请求,并调用FtpDo类与数据库进行交换,可以显示图像快视图,确认后进行数据的请求。数据管理子系统时序图如图8所示。

Figure 8.Data management module timing diagram

图8.数据管理模块时序图

3.4. 平台资源管理子系统

平台资源管理主要负责对平台中所有的硬件设备、软件资源和算法库资源进行统一的管理和调度。其中,硬件设备包括高性能计算机、平台服务器、应用服务器、专有仪器等;软件资源即包括林业系统用户自己开发的专业应用,还包括第三方的工具软件和应用软件;算法库资源是林业云服务平台已经实现并完成封装、用户可以直接调用的专用函数库资源。林业云服务平台不仅实现了对上述各类资源的集成,而且还实现了对硬件系统的状态监控,以及对高性能计算机、应用服务器和专有仪器的资源管理、作业调度和使用统计等功能。平台服务器是连接用户和平台资源的桥梁与纽带[9] [10]。

用户在使用平台资源时,从门户网站登录后,需要由平台服务器对其身份和权限进行验证。只有验证通过的授权用户才能有资格使用平台提供的软硬件资源。

平台资源管理流程图如图9所示。

3.5. 通用支撑服务子系统

通用支撑服务为平台提供基础支撑服务,是平台的基础服务支撑。它和管理层通过一系列接口进行交互。本系统基于提供用户、权限、日志等基础服务和使用这些服务的接口。

通用支撑服务的设计要包括对用户及权限的统一管理、业务系统的配置信息管理、平台公共信息的管理以及平台系统日志文件的管理等内容。

具体流程如图10所示。

4. 功能性需求

林业云服务平台所提供的服务的主要对象主要有系统管理人员、业务开发人员和公众用户,使用的资源主要由硬件资源、软件资源、数据资源、算法库等,提供专题图产品和公众信息。林业应用系统粗粒度用例图如下面3个图所示。

1) 业务开发人员主要利用林业云平台的数据资源、算法资源以及平台中固有的处理模型或者自定义

Figure 9.Platform resource management flow diagram

图9.平台资源管理流程图

Figure 10.General support service flow diagram

图10. 通用支撑服务流程图

的处理模型进行产品的生产处理,获得相应的应用处理服务。如图11所示。

2) 系统管理人员主要通过平台提供的一系列管理监控服务对平台的数据资源、硬件资源、软件资源和模型设计服务等进行维护与开发,保证各项资源重复地利用,各项服务可靠安全提供,系统高效低运行。如图12所示。

Figure 11.Business development staff use case diagram

图11. 业务开发人员用例图

Figure 12.System administrators use case diagram

图12.系统管理人员用例图

3) 公共用户主要通过云平台提供的服务资源进行信息查询、产品下载,及时有效地了解相关的信息资源和动态。如图13所示。

5. 数据结构设计

林业云服务平台的数据来源分为本地资源管理和远程资源管理。

本地资源根据存储方式的不同划分为文件系统与关系型数据库两大类。文件系统再细分为本地磁盘存储数据资源与操作系统存储在同一台服务器的多个物理磁盘,第二类网络磁盘数据资源分布存储于局域网环境下其它服务器的多个物理磁盘,通过网络映射磁盘在操作系统的本地使用。

Figure 13.Public users use case diagram

图13. 公众用户人员用例图

文件系统的特点多是独立存储,通过目录管理分散的文件资源,支持的资源类型没有任何限制,资源访问方式简单支持所有的应用系统使用。

本地资源的另一个分类是关系型数据库,数据库保存的信息可以根据业务逻辑的需要定义数据间相互关联的信息,对资源的管理提供方便、灵活的实现途径,并且便于发现、分析与统计数据的更多信息。按照数据库存储资源的不同又划分为文本数据库与空间数据库,文本数据库多用来存储属性信息,而空间数据库在属性信息基础上增加地理坐标与空间数据表达等信息的存储,不同的数据库产品存储的空间信息不兼容彼此。

远程资源按照提供服务类型的方式划分为数据文件路径与网络数据服务两大类。基于网路的数据文件路径通常表示为网络资源定位符,遵照W3C标准中明确定义的资源URL路径包含有协议、主机、端口、路径及参数等信息共同组成。常见URL路径按照HTTP、FTP协议提供资源文件访问路径。

网络数据服务类型属于基于网络提供数据资源访问接口,按照访问接口的定义不同划分有OGC标准是开放地理信息联盟提出并制定的地理信息系统间数据和服务的互操作提供的统一服务接口定义。这种基于网络的数据与服务的互操作提供了Web地图服务、Web要素服务、Web覆盖服务等空间数据资源的高级别的数据资源服务。

为整个数据库设计的总体ER图。整个数据库设计了13个数据表,通过外键将各个表联系起来(图14)。

6. 结论

本文主要从软件工程设计的角度出发,在深入剖析当前林业应用服务现状的基础上,结合林业应用服务需求,提出了适合林业的云服务平台,该服务平台包括“通用支撑服务子系统”、“资源管理子系统”、“数据资源管理子系统”、“应用系统管理子系统”和“接口与界面管理子系统”五个子系统。通过五个子系统的彼此支持,实现各项服务的可靠高效。

通过构建林业云服务平台,为林业应用系统的开发者提供公共算法服务、海量的林业监测数据服务,并为他们提供了虚拟开发和工作环境,使他们能够方便的调用云平台中的资源,提高了开发效率,也节省了大量的分析处理的时间,使他们更加关注于本领域的业务工作。对公众用户,林业云服务平台对他们是透明的,他们只会感受到更加方便快捷的下载林业信息化产品和服务,不会感觉到平台的存在,这才是平台的意义所在。

基金项目

项目来源:中央级公益性科研院所基本科研业务费专项“森林资源与生态环境监测e-Science平台设

Figure 14.Database ER diagram

图14.数据库ER图

计与初步实现(编号IFRIT201104)”和高分重大专项(21-Y30B05-9001-13/15)。

参考文献(References)

[1]Yang, C., Goodchild, M., Huang, Q., et al. (2011) Spatial cloud computing: How can the geospatial sciences use and

help shape cloud computing? International Journal of Digital Earth, 4, 305-329.

[2]方雷(2011) 基于云计算的土地资源服务高效处理平台关键技术探索与研究. 浙江大学, 杭州.

[3]石永阁, 边馥苓(2011) 基于云平台的遥感信息公共服务研究. 地理信息世界, 3, 26-29.

[4]康俊锋(2011) 云计算环境下高分辨率遥感影像存储与高效管理技术研究. 浙江大学, 杭州.

[5]Nogueras-Iso, J., Zarazaga-Soria, F.J., R. Bejar, Alvarez, P.J. and Muro-Medrano, P.R. (2005) OGC Catalog Services:

a key element for the development of Spatial Data Infrastructures. Computers & Geosciences, 31, 199-209.

[6]Frehner, M. and Bra’ndli, M. (2006) Virtual database: Spatial analysis in a Web-based data management system for

distributed ecological data. Environmental Modelling & Software, 21, 1544-1554.

[7]李珺, 张贵, 谭三清(2012) 林业信息共享中云计算应用. 湖南林业科技, 3, 10-14.

[8]刘异, 呙维, 江万寿, 等(2009) 一种基于云计算模型的遥感处理服务模式研究与实现. 计算机应用研究, 9,

3428-3431.

[9]郭美荣, 李瑾, 秦向阳(2012) 农业信息服务云平台架构初探. 农业网络信息, 2, 13-16.

[10]刘亚秋, 景维鹏, 井云凌(2011) 高可靠云计算平台及其在智慧林业中的应用. 世界林业研究, 5, 18-24.

软件、软件工程的基本概念和特点

2017-2018 学年第一学期第四次作业 专业:计算机科学与技术班级:17级3班学号:1701110140姓名:任亚磊 作业内容: 简述软件、软件工程的基本概念和特点 软件: 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发,维护和使用有关的图文资料。 软件的特点: 1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性 2.软件的生产和硬件不同,在它的开发过程中没有明显的制造过程、没有磨损 3.在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。 4.软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同的依懒性 5.软件的开发至今尚未完成摆脱手工艺的开发方式,没有实现自动化 6.软件本身是复杂的、实际问题的复杂性、程序逻辑结构的复杂性 7.软件的成本相当昂贵。 8.相当多的软件工作涉及社会因素。 软件的分类: 1.系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序 2.应用软件:商业数据处理软件、工程和科学计算软件、系统仿真软件 软件的其他角度分类: a.按规模划分:微型软件、小型、中型、大型、甚大型、极大型 b.按工作方式划分:实时处理软件、分时软件、交互式软件、批处理软件

c.按软件服务对象的范围划分:项目软件、产品软件 软件生产的发展: 1 程序设计时代:这个阶段生产方式是个体劳动,生产工具是机器语言,汇编语言。(1946-1956年) 2 程序系统时代:这个阶段生产方式是小集团合作生产,生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。(1956-1968年) 3 软件工程时代:这个阶段生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分布式面向对象技术来开发软件。(1968年至今) 软件工程: 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。主要包括三个方面的内容:软件开发方法,软件过程和软件工具。 软件工程的原则: 1.抽象2.信息隐蔽3.模块化4.局部化5.确定性6.一致性7.完备性8.可验证性。

最新软件工程试题

软件工程的基本目标是_____________________。 软件项目规划的第一步是______________________。 功能点估算技术需要以______________________为基础进行问题分解,代码行估算技术需要以_________________________为基础进行问题分解。 任务集是工作任务、里程碑、_________________的集合。 形式证明与验证技术主要包括_________________________和定理证明。 在各种不同的软件需求中,__________________描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,__________________是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确____________________。 状态图是由状态机扩展而来的,用来描述对象所经过的对外部事件作出响应的______________。 类的行为是由________________决定的。 ______________是目前一种主流的软件开发技术,被看作是解决软件危机的一种先进技术。 行式证明与验证技术主要包括模型检测和_____________,模型检测就是对模型状态空间进行____________,以确认该模型是否具有某些性质。 1、请简要说明软件过程的概念和基本元素。 2、需求工程包括哪些基本活动?每一项活动的主要任务是什么? 3、面向对象设计与面向对象分析的区别是什么?设计包括哪些活动? 4、请分析比较下面两个for循环的优缺点 现在要对一个自动饮料售货机软件进行黑盒测试,该软件的规格说明如下: 一个自动售货机软件可以销售单价1元5角的盒装饮料。该售货机只接收1元和5角两种硬币,若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,则送出相应的饮料;若投入的硬币少于1元5角,则显示错误信息并退出硬币;若投入的硬币多于1元5角,则送出饮料的同时退还多余的硬币。请设计测试该软件的全部测试用例。 软件会逐渐退化而不会磨损,其原因在于() A.软件通常暴露在恶劣的环境下 B.软件错误通常发生在使用之后 C.不断的变更使组件接日之间引起错误 D.软件备件很难订购 软件开发的瀑布模型是( )。 A.适用于需求被清晰定义的情况 B.一种需要快速构造可运行程序的好方法 C.最适合于大规模团队开发的项日 D.己不能用于现代环境的过时模型

软件工程一级学科的发展和内容(精)

软件工程一级学科简介 一、软件工程一级学科出现的理由: (一软件工程学科已发展为计算机科学与技术、数学、工程学、管理学等相关学科的交叉性学科。传统的计算机科学与技术学科已经涵盖不了软件工程可归属的二级学科问题, 不适应软件产业对软件工程人才培养的需要。 (二软件工程学科已形成较完整的理论与工程技术体系,课程体系基本明确,高端人才培养能力基本形成,创新型复合型人才的社会需求不断提高。 (三软件工程涉及软件产业、信息产业和现代服务业,代表未来社会产业发展方向。 (四现有软件工程人才培养体系不完整,需要通过进一步学科建设方能适应产业发展对高端人才的需求。 二、软件工程学科的主要支撑二级学科: 软件工程理论 软件工程技术 软件工程管理 软件服务工程 三、软件工程学科的主要研究方向及研究内容: (一软件工程理论:主要研究软件工程形式化方法、软件自动生成与演化、软件建模分析与验证、软件行为学等。

(二软件工程技术:主要研究需求工程、软件方法学、软件规范语言、软件体系结构、软件测试与质量保证、软件再工程、基于模型和逻辑推理的软件验证方法、软件工程环境与开发工具、面向领域的软件工程方法与技术等。 (三软件工程管理:主要研究软件配置管理、软件过程技术、软件项目管理、软件度量方法与技术等。 (四软件服务工程:主要研究软件服务的理论、方法、技术与应用,软件工程过程服务、面向服务的计算及服务工程。 四、研究生培养 软件工程学术型硕士研究生的课程设置侧重于软件理论知识和学术基础研究, 核心课程包括算法分析与设计、并行与分布式计算、软件工程的形式化方法、软件工程统计方法、软件工程经济学、软件需求工程、软件体系结构、软件质量工程、软件项目管理、信息系统安全、机器学习与知识发现、数据服务工程、软件服务工程等。

【教育学习文章】教育教学改革研究项目申请书

教育教学改革研究项目申请书项目名称:基于“翻转课堂”的软件工程课程教学模式研究 项目负责人: 杨XX 申请部门: XX学院 联系电话: 3507XX E-mail: yXX968@https://www.360docs.net/doc/1b9044188.html, 填表日期: XX-10-23 二、项目立项依据 、项目的研究意义 高职教育由规模扩张阶段进入注重质量、发展内涵阶段,如何以多种方式满足多样化需求,并应用现代教育技术丰富教学形式、提高教学效果,是亟待解决的问题。首先肯定的说,尽管翻转课堂在培养学生自主学习意识和提升学习效率方面,有着非常大的优势,但考虑到中国孩子学习的根深蒂固的习惯,一下子彻底推翻传统,也是不适宜的。所以选择

哪些知识,什么时候来实施就显得格外重要。对于基础和入门内容,仍然采取先教后学的传统模式,目的是在老师手把手的帮助下,带学生入门,打好基础;对于拓展的知识内容,则会适当选择“翻转课堂”新模式来进行。这样,既可以使学生享受新的学习模式带来的学习效率的提高,也避免出现知识陌生带来的学习挫败感。 本课题拟从“软件工程”这门课程入手,以软件技术(企业应用软件开发方向)专业的13级学生为载体,以课程资源系统、丰富和适合网络传播为基本要求建设教学资源共享体系,提出“翻转课堂”下软件工程课程资源共建共享的策略,并进行相应教学模式的研究与实施。 2、国内外研究现状分析 软件工程是一个迅速发展的新兴学科,软件工程的教育始于20世纪70年代末期,IEEE-cS发起创建软件工程教程的建议,美国建立了一系列的课程计划,但是这些课程主要集中在研究生的教育。历史的经验告诉我们,软件行业是个聚集财产、快速致富的行业;中国要走向世界,占据世界软件工程中的份额,必须大力发展计算机软件工程专业教育。正是在此种情况下,XX年6月,国务院发布《鼓励软件产业和集成电路产业发展的若干政策》,明确提出鼓励资金、人才等资源投向软件产业,进一步促进我国信息产业快速发展,力争到XX年使我国软件产业研究开发和生产能力达到或接

软件工程方法与实践 期末考试复习资料(江理)

软件工程的定义:软件工程是一门研究如何用系统化、规范化、数量化等工程化思想和方法去进行软件开发、维护和管理的学科。软件危机的定义:软件开发和维护过程中所遇到的如软件规模越来越大,复杂度不断增加,软件的需求量日益增大等的严重问题我们称之为软件危机。 软件工程有哪些基本的思想:a.推迟实现的观点b.逐步求精的观点c.分解与抽象的观点d.信息隐蔽的观点e.质量保证的观点 CMM(Capability Maturity Model)能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 极限编程(Extreme Programming , XP)是一种软件工程方法学是敏捷软件开发中最富有成效的几种方法学之一。它的的核心有四个要点:交流、简单、反馈、勇气 软件生命周期模型:通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型。 软件需求分类:功能需求、非功能需求和领域需求 结构化分析(Structured Analysis, SA) 结构图(Structure Chart ,SC) 面向对象的一些概念:类是具有相同或相似性质的对象的抽象。实例是类的具体化。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。消息是指对象间相互联系和相互作用的方式 数据流类型:变换型数据流、事务型数据流、混合型数据流 Jackson图:Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。Jackson方法用某种形式的伪码给出程序的过程性描述。伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。

软件工程课程表

软件工程专业本科教学计划 专业代码080611W (国家)0406 (学校) 一、培养目标和基本规格 (一) 培养目标 软件工程专业本科生的培养目标是:针对国民经济信息化建设和发展的需要,面向软件产业界对软件工程技术人才的需求,培养具有良好的综合素质、良好的职业道德、扎实的软件工程理论知识及较强的英语综合应用能力,掌握自然科学和与软件有关的法律基础知识、具有自主学习和使用先进软件开发技术和工具的能力,具有软件开发实践和项目组织的初步经验,具有创新、创业、竞争意识和团队精神。学生毕业后能从事大型软件项目的开发,具有软件企业所需要的较高层次的软件工程技术和管理人才的素质,能适应技术进步和社会需求变化对高素质软件工程专门人才的基本要求。 (二) 培养规格 本专业学生应掌握软件工程领域坚实的基础理论和宽广的专业知识,具有良好的系统分析、设计及软件工程项目的组织与管理能力,具备运用先进软件开发技术、方法和工具的能力,具备与软件有关的法律知识,具备独立工作能力和团队精神。 毕业生应获得以下几方面的知识和能力: 1、掌握软件工程专业的基本理论、基本知识和基本技能,特别是软件项目管理与开发技术、信息系统的分析与设计技术、网络数据库开发技术、网络信息安全和嵌入式软件开发技术; 2、熟练掌握需求分析和建模、软件设计和实现、软件评审与测试、软件过程改进与项目管理、设计人机交互界面的基本方法,能运用先进软件技术和开发工具进行软件系统的开发与维护工作。 3、掌握与软件有关的法律法规、国际惯例,具备自觉运用法律知识进行软件知识产权保护的素质。 4、具有创业意识、创新精神和良好的职业素质,具有良好的人际沟通能力和团队精神。 5、了解软件工程领域的最新成果、发展动态和法律法规; 6、具有良好的英语写作和交际能力,外语水平达到规定的等级要求。 二、学制:四年。 三、授予学位:工学学士。

软件工程实践者的研究方法(中文版第七版)课后习题答案

作业答案。 2.1 a.设计者对于用户要问的问题: 项目的目标是什么?做到什么程度就成功了?谁会对项目的成功做最后的评判?项目的使用者包括那些? b. 用户对设计者应该问的问题: 目前问题有哪些解决方案,项目完成有哪些难点,在时间范围内能否完成? c. 软件问题用户自问? 还有其他解决方案吗?哪些功能是必须的?乙方资质和能力够吗? d. 软件过程问题自问? 用敏捷还是用瀑布?质量检查点分别有哪些?有几个MileStone? 2.2 为沟通活动设计一系列动作,选定其一并设计任务集。 (批作业的时候,以合理为目标,不一定要一样) 需求获取、需求规范说明(建模)、需求协商、需求确认等。 例如,书上page 23。 2.7 详细描述三个适合用于瀑布模型的软件项目。 (要求学生不仅仅列出项目的名称,而要说明为什么适合) 瀑布模型适合于项目开发而不是产品开发。信息管理系统一般适合于用瀑布模型。因为这类系统业务功能较为明确,架构比较单一,技术难点较少。图书馆系统、销售管理系统都是。 3.11 重构:已经写好的正确的代码,不断修正,使得代码更加精简并易读。 结对编程:两个人同时编写一段代码,一般一个人负责实现,一个人负责检查代码质量。 3.16 利用FDD,为“Web浏览器”定义一系列特征集合与特征。 特征集合模板: an 如:出售一件商品 特征定义模板: the a(n) 特征集合:展示Web页面内容。 特征: 1)本地解析HTML页面 2)展示HTML页面 3)从网络上下载页面相关图片 4)在浏览器上展示图片 附加:统一过程模型的图。 (要求有图有说明)

软件工程要点(包括部分内容)

1,软件工程基本概念 软件工程是软件工程师用工具和技术(方法),按照某一过程和范例来构造软件,从而增强软件产品的质量,更有效地解决问题. 2,软件危机的原因 a , 软件产品是复杂的人造系统,具有复杂性、不可预见性和易变性,难以处理。 b ,个人和小组非常有效的开发小型软件的编程技术和过程,在开发大型、复杂系统时难以发挥同样的作用。 c ,软件是知识产品,技术更新快,行业竞争激烈,难以在可以接受的成本和工期内提供高质量的产品。 3,软件工程包括的四个元素(特点) 方法(methods) 语言(languages) 工具(tools) 过程(procedures) 4,软件的生命周期(由哪几部分组成) 计划需求分析设计程序编写测试运行维护等六个步骤 5,瀑布模型(有哪几种模型) 6,面向对象生存期模型 7,面向对象性—统一过程 8,可行性研究目的、任务(技术、经济、操作) 目的:确定问题是否值得去解 任务 进一步分析和澄清问题的定义 导出系统的逻辑模型 探索若干种解决方案,并分析各种方案的 技术可行性 经济可行性 操作可行性 对以后的行动方针提出建议 9,数据流图(*) 数据字典的定义 对数据流图中包含的所有元素的定义的集合 10,需求分析的任务,综合要求 分析系统的数据要求 导出系统的逻辑模型: 数据流图, 数据字典, 处理算法。 修正系统开发计划 开发原型系统 功能性能可靠性和可用性出错处理接口需求约束逆向需求 11,分析过程的基本方法 结构化分析方法(SA) 面向对象的分析方法(OOA) 12,什么是概念模型或信息模型 按用户的观点来对数据和信息建模

13,概念模型的基本概念E-R图 概念模型的基本概念 实体(Entity):客观存在并可相互区分的事务 属性(Attribute) 码(Key) 域(Domain) 实体型(Entity Type) 实体集(Entity Set) 联系 14,状态转换图 15,IPO图 16,知道有哪几种形式化说明技术 形式化方法:用基于数学的技术描述系统需求规格说明和设计结果。 非形式化方法:用自然语言描述系统需求规格说明和设计结果。 半形式化方法:用数据流图或E-R图描述需求规格说明和设计结果。17,总体设计的任务 划分出组成系统的物理元素;设计软件的结构。 18,总体设计的过程 设想供选择的方案:设计各种可能的分组。 选取合理的方案。 对每个方案准备以下资料: 系统流程图 物理元素清单 成本/效益分析 进度计划 推荐最佳方案,并制定详细的实现计划。 19,模块化(*)(概念) 模块化:将程序分成若干个模块。 模块化的目的:将复杂问题简单化。 模块化程度应适当。 20,抽象的定义 抽象是抽取事务的本质特性而暂不考虑细节 21,模块独立 模块的独立性:每个模块的功能相对独立,与其他模块的关系简单。 模块独立的优势 易于分工开发; 易于测试和维护。 通过模块化、抽象、信息隐蔽和局部化,即可达到模块独立。 22,耦合内聚(*) 低内聚 偶然内聚:一个模块完成的一组任务之间有松散的关系。 逻辑内聚:完成的任务在逻辑上属于相同或相似的一类。 时间内聚:完成的任务必须在同一段时间内执行。 中内聚

教育教学改革研究项目申请书

教育教学改革研究项目申请书 教育教学改革研究项目申请书 项目名称:基于“翻转课堂”的软件工程课程教 学模式研究 项目负责人:杨XX 申请部门:XX学院 联系电话:13507XX E-mail: [email protected] 填表日期:XX-10-23 二、项目立项依据 1、项目的研究意义 高职教育由规模扩张阶段进入注重质量、发展内 涵阶段,如何以多种方式满足多样化需求,并应用现 代教育技术丰富教学形式、提高教学效果,是亟待解 决的问题。首先肯定的说,尽管翻转课堂在培养学生 自主学习意识和提升学习效率方面,有着非常大的优势,但考虑到中国孩子学习的根深蒂固的习惯,一下 子彻底推翻传统,也是不适宜的。所以选择哪些知识,

什么时候来实施就显得格外重要。对于基础和入门内容,仍然采取先教后学的传统模式,目的是在老师手 把手的帮助下,带学生入门,打好基础;对于拓展的 知识内容,则会适当选择“翻转课堂”新模式来进行。这样,既可以使学生享受新的学习模式带来的学习效 率的提高,也避免出现知识陌生带来的学习挫败感。 本课题拟从“软件工程”这门课程入手,以软件 技术专业的13级学生(软件技术3131-3134班)为载体,以课程资源系统、丰富和适合络传播为基本要求 建设教学资源共享体系,提出“翻转课堂”下软件工 程课程资源共建共享的策略,并进行相应教学模式的 研究与实施。 2、国内外研究现状分析 软件工程是一个迅速发展的新兴学科,软件工程 的教育始于20世纪70年代末期,IEEE-cS发起创建软件工程教程的建议,美国建立了一系列的课程计划,但是这些课程主要集中在研究生的教育。历史的经验 告诉我们,软件行业是个聚集财产、快速致富的行业;中国要走向世界,占据世界软件工程中的份额,必须 大力发展计算机软件工程专业教育。正是在此种情况下,XX年6月,国务院发布《鼓励软件产业和集成电

软件工程课程教学大纲

《软件工程》课程教学大纲 (Soft Engineering) 课程编号: 学分:3 学时:48 (其中:讲课学时:42 实验学时:上机学时:6 )先修课程:C语言程序设计、数据结构与算法、计算机网络、数据库原理与应用、操作系统 后续课程:面向对象程序设计、信息工程监理、信息系统测评技术、软件工程实训 适用专业:计算机相关专业 开课部门:专业数学教研室 一、课程教学目的和课程性质 《软件工程》是信息与计算机科学专业本科学生的专业选修课,是一门综合性和实践性很强的课程。本课程主要介绍如何把工程化的思想和技术应用于软件系统的开发过程,以及在软件开发过程中必须遵循的基本原理、方法和工程标准。通过教学,使学生对软件生产工程化的具体思想、要求和方法均有较全面的了解, 为今后独立从事软件系统的开发打下相应的工程基础。 二、课程的主要内容及基本要求 第1单元软件工程学概述(3学时) [知识点] 软件的发展过程、软件危机、软件工程及开发方法。 [重点] 软件工程的基本概念、软件工程学的基本内容和软件生命周期中各阶段的基本任务。 [难点] 软件过程模型 [基本要求] 1、识记:软件、软件危机、软件工程、软件工程方法学; 2、领会:软件工程过程模型的定义及其特点; 3、简单应用:软件危机的产生原因; 4、综合应用:解释软件工程产生的原因,结合不同的软件特点对其开发应

当采用的软件过程模型。 [考核要求] 1、软件工程的定义; 2、软件生命周期的定义及其各个开发阶段的任务; 3、软件工程方法学定义及经典软件过程模型。 第2单元可行性研究(5学时) [知识点] 可行性研究的主要内容、任务及研究过程,系统流程图、数据流图、数据字典。 [重点] 系统流程图、数据流图的画法。 [难点] 可行性研究中的上层数据流图的构成方法。 [基本要求] 1、识记:可行性研究的主要内容、任务; 2、领会:如何画出所需的系统流程图; 3、简单应用:分析所需的数据字典并根据数据字典定义方法定义相关词条; 4、综合应用:在可行性研究过程中分析系统流程图,总结其数据字典,画出上层的数据流图。 [考核要求] 1、可行性研究的主要内容、任务; 2、数据流图的定义及画法,能够分析并画出可行性研究中的上层数据流图; 3、数据字典的组成及其符号定义方法。 第3单元需求分析(5学时) [知识点] 需求分析的任务、与用户沟通获取需求的方法、分析建模与规格说明、实体—联系图、状态转换图、其他图形工具、数据规范化。 [重点] 实体-联系图的概念及画法、状态转换图的定义及画法和常用图形工具的使用方法。 [难点]

软件工程实践者的研究方法-背诵知识点

软件的定义:软件是:1)指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;2)数据结构,使得程序可以充分利用信息;3)软件描述信息,以硬拷贝和虚拟形式存在,描述程序操作和使用。 软件与硬件的区别:软件是设计开发的;软件不会磨损;大多数软件是按需求定制的。 IEEE定义:(1)将系统化、规范化、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件;(2) 在(1)中所述方法的研究。 软件工程的层次:软件工程的根基在于质量关注点。软件工程的基础是过程层。过程将各个技术层次结合在一起,使得合理地、及时地开发计算机软件成为可能。方法为构建软件提供技术上的解决方法("如何做")。工具为过程和方法提供自动化或半自动化的支持。 通用过程模型的5种框架活动:沟通、策划、建模、构建、部署 8个典型的普适性活动:软件项目跟踪与控制;风险管理;软件质量保证;技术评审;测量;软件配置管理;可复用管理;工作产品的准备和生产 软件神化:关于软件及其开发过程被人们盲目相信的一些说法,它实际上误导了人们对软件开发的态度。 螺旋模型:?一种风险驱动型的过程模型,一种演进式软件过程模型。它结合了原型的迭代性质和瀑布模型的系统性和可控性特点。具有快速开发越来越完善软件版本的潜力。 统一过程(UP):以用例为驱动、以系统架构为核心,迭代式增量式开发过程。RUP包括起始、细化、构建、转换和生产5个阶段。五个UP阶段并不是顺序地进行,而是阶段性地并发进行。 成熟度级别:第0级:不完全级、1已执行级、2已管理级、3已定义级、4已定量管理级、5优化级软件生命周期:软件计划与可行性研究、需求分析、软件设计、编码、软件测试、运行与维护 瀑布模型:一个系统的、顺序的软件开发方法。缺点:实际项目开发中很少遵守瀑布模型提出的顺序;客户难以清楚的描述所有的需求;客户要等到开发周期的晚期才能得到可执行的程序;在线性过程的开始和结束,容易发生“阻塞状态”。 敏捷团队成员特点:基本能力、共同目标、精诚合作、决策能力、模糊问题解决能力、相互信任和尊重、自我组织 极限编程过程包含4个框架活动:策划、设计、编码、测试设计原则:KIS 重构:以不改变代码外部行为而改进其内部结构的方式来修改软件系统的过程 结对编程:两个人面对同一台计算机共同为一个故事开发代码。 优点:结对的两人完成其工作,他们所开的代码将与其他人的工作集成。这种集成作为集成团队的日常工作实施。还有一些情况下,结对者自己负责集成,这种“连续集成”策略有助于避免兼容

软件工程简答题

简答题: 软件工程的内容和方法 1.开发文档都有哪些?用图来表示他们之间的关系。 开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同,它们之间的关系如图所示。 2.说明软件工程研究的内容。 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 其中软件开发方法的内容又含盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型。 软件支持过程由所支持的CASE工具组成,常用的CASE工具有PowerDesigner和RationalRose。 软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。 3.请详细解释软件的定义和程序的定义。 软件的定义:软件=程序+数据+文档。这里的程序是指程序系统。这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。 现在有一种新提法正在引起关注,这种提法是:软件=知识+程序+数据+文档。 程序是计算机为完成特定任务而执行的指令的有序集合。从应用的角度可理解为: 面向过程的程序=算法+数据结构 面向对象的程序=对象+信息 面向构件的程序=构件+构架 4.是否存在这样一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI 和ISO模式只适用于搞应用软件的企业?如果是,为什么?如果不是,又是为什么? 不是。因为CMMI和ISO9000模式规定了严格的管理制度、文档和评估软件能力与成

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

软件工程教学大纲正式版

软件工程教学大纲正式 版 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

《软件工程导论》课程教学大纲一、课程基本信息 课程编号: 英文名称名:Software Engineering 总学时:54学时 学分:3 课程类别:专业必修课 适用专业:全校本(专)计算机科学与技术 先修课程:数据结构,大学数学,离散数学,计算机算法设计。 二、课程性质与目的、要求 《软件工程》是计算机专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。《软件工程》已成为高等学校计算机软件教学体系中的一门核心课程, 本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践” 软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。 通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。 本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。 三、教学内容及学时分配 本课程的教学内容共分十三章。

软件工程方法与实训

软件工程方法与实训 习题答案 2011-9-22

习题一 ............................................................................................................ 错误!未定义书签。 1 软件是什么?软件有那些特点?................................................................. 错误!未定义书签。 2 按照功能层次,软件可分为那些层次的软件?......................................... 错误!未定义书签。 3 按照服务对象,软件可分为用户定制软件通用商业软件.举例说明两类软件的区别错误!未定义书签。 4 什么是软件工程,其对软件产业化发展有什么积极意义?..................... 错误!未定义书签。 5 软件工程涉及工程,方法,工具三个方面的技术问题.这三个方面存在着什么相互关系? 试举例说明它们之间的联系............................................................................. 错误!未定义书签。 6 软件工程管理主要体现在四个p上,简述各个管理,并谈谈自己的认识错误!未定义书签。7对工程目标进行优先级排序...................................................................... 错误!未定义书签。 8 结构化方法有什么特点?........................................................................... 错误!未定义书签。9操作Microsoft Visio 谈谈你自己的感受........................................... 错误!未定义书签。习题二 ............................................................................................................ 错误!未定义书签。 1 软件开发期的目标任务是什么?概要设计需要完成什么任务?............. 错误!未定义书签。2瀑布模型的一大特点是里程碑管理机制,对此,你有什么认识?............ 错误!未定义书签。3为什么瀑布模型不能很好的适应用户需求变更?.................................... 错误!未定义书签。 4 试说明抛弃型原型与进化型模型的异同................................................. 错误!未定义书签。5一般认为,原型进化模式不能适应较大型软件项目的开发,原因是什么?错误!未定义书签。6增量模式可体现出那些方面的优越性?.................................................... 错误!未定义书签。7开发一个”综合信息管理系统”,选择一个比较合适的过程模式,说明理由.错误!未定义书签。 习题三 ............................................................................................................ 错误!未定义书签。 1 软件开发机构内都设有质量控制部,并将其防灾开发部服务部之上,对此,你什么看法 ... 错误!未定义书签。 2 通常认为,项目负责人不一定是技术专家,但必须是管理专家,对此,你有什么看法?错误!未定义书签。 3 你将如何管理项目小组,以使其具有较高的工作热情?......................... 错误!未定义书签。4是比较民主分权制与住程序员负责制的优劣?为什么?.......................... 错误!未定义书签。 5 需要开发一个学生管理系统,对该项目作出比较合理的任务及进度安排.错误!未定义书签。 6 用c语言开发一个矩阵运算程序,计算工期和人力成本....................... 错误!未定义书签。 7 开发一个设备监控程序,并计算人力成本............................................... 错误!未定义书签。 8 软件项目中主要有那些技术文档,管理文档和用户文档....................... 错误!未定义书签。 9 为什么软件开发需要有配置管理,其主要包括那些方面的管理? ......... 错误!未定义书签。 10 为什么配置管理中需要有开发库,基线库和产品库这三个配置库? ... 错误!未定义书签。 11 什么是质量标准?..................................................................................... 错误!未定义书签。习题四 ............................................................................................................ 错误!未定义书签。 1 计算机系统有哪些元素组成?特征是什么?............................................. 错误!未定义书签。 2 举例说明Client/Server 结构的系统扩充性........................................ 错误!未定义书签。 4 B/S结构有哪些特点?与C/S相比有哪些优势?...................................... 错误!未定义书签。

软件工程的内容和方法

软件工程复习提纲 第一章软件与软件工程 1. 什么是软件工程?构成软件工程的要素是什么? 2. 什么是软件危机?软件危机有那些表现? 3.软件开发的三种最主要方法是什么? 4.软件工程实践中的五个面向理论的含义是什么? 5.用图表方式说明软件的生存周期 6.结合软件生存周期理论,阐述几个重要的软件开发模型的特点及适用条件(如瀑布模型、快速原型模型、增量模型、迭代模型等) 第四章需求分析基础 1.什么是软件需求?软件需求的属性是什么? 2.需求分析阶段的一般工作流程是什么? 3.什么是需求分析?需求分析的任务、目的是什么? 4.什么是需求定义? 5.简述软件需求分析的任务与步骤,并以图书管理系统为例说明 6.需求的分析的方法与切入点?(过程分析、对象分析;功能分析、对象分析、数据分析?) 7.需求分析的描述工具? 8.什么是业务流程图?业务流程图的主要绘图元素有哪几种? 9.什么是数据流图?数据流图的绘图元素有哪几种? 10.分别画出图书管理系统的业务流程图和数据流图 11.画出图书管理系统的用例图 12.画出一个网上招聘系统(招聘网站)的用例图 第五章面向数据流的分析方法 1. 阐述数据流图、数据字典和E-R图的构成 2. 阐述基于数据流图进行需求分析的大致过程。 3. 归纳总结CASE工具的核心思想。 4. 如何判断数据流图的一致性和完全性?可否用CASE工具自动或半自动地完成这两类检查?如果可以,请给出相应的软件设施途径。 5. 设计一个简单图书信息系统上网E-R模型 第六章面向对象的需求分析 1. 基本概念:对象、类、消息、继承、聚集 2. 简述利用UML尽心需求分析的主要步骤。 3. 简述面向对象的消息传递机制在程序设计语言中的实现过程。 4. 绘制表示“书籍”的UML类图,“书籍”可以描述为:一本书由许多部分组成,每一部分又由许多章组成,每一张由许多节组成。部分、章和节都具有标题和序号属性。 第八章软件设计基础 1.什么是软件设计?软件设计过程的输入和输出是什么? 2.理解软件设计的原理 3.什么是软件架构?理解软件的三层架构的内容及特点 4软件设计有两大类方法是什么? 5.面向过程设计的主要任务和内容和方法是什么? 6.面向对象设计的内容和步骤是什么?

软件工程课程教学实施方案

中国大学教学 2011年第2期 41 刘 强,清华大学软件学院副教授;陈 越,浙江大学软件学院教授;骆 斌,南京大学软件学院教授。 “软件工程”课程教学实施方案 刘 强 陈 越 骆 斌 古天龙 吴洁明 裴小兵 朱少民 白晓颖 摘 要:“软件工程”是一门理论与实践并重的计算机软件专业基础课程。在教育部高等学校计算机科学与技术教学指导委员会统一组织下,作者针对软件工程课程的培养目标和教学实施中的关键问题,提出了该课程的教学实施方案。本文介绍了该实施方案的总体框架,结合不同类型的计算机人才培养阐述了课程实施的侧重点,并从课程实验和综合训练两个方面构建了实践教学方案。 关键词:软件工程;计算机科学与技术;核心课程;课程教学;教学实施 “软件工程”是计算机科学与技术专业和软件工程专业的一门专业基础核心课程,讲授软件工程的基本概念、基本原理和基本方法,强调软件开发问题的分析和解决。使学生从工程学角度认识软件在大型系统中的设计和应用,掌握软件工程的基本理论和方法,并将这些知识运用到软件开发的分析、设计、编码和测试等活动中,同时培养较好的团队合作能力和实践能力,具备一定的分析与解决问题能力和创新能力。 “软件工程”是一门理论与实践并重的基础课程,在教学实施方面存在较大的难度。现有的软件工程课程存在着体系不统一、定位不明确、知识与现实脱离等问题,课程内容比较庞杂和抽象,教学实践环节薄弱。对于缺乏软件开发实际经验的本科生来说,单纯地讲授抽象的理论知识往往使学生感到枯燥无味且难以理解。特别是随着软件工程日新月异的发展,传统的教学内容已经远远地落后于当前的理论和技术,无法满足现代软件工程人才的培养要求。本课程的教学目标是使学生了解和掌握现代软件工程的方法、技术和思想,具备作为软件工程师所需的专业能力。因此,如何使教学内容先进、讲授生动实际、实践效果良好,一直是软件工程课程教学需要解决的难点问题。 近年来,国内高校教师积极开展软件工程课程的教学改革,在教学内容、教学模式、实践体系等方面进行了深入探索和创新尝试,取得了一些有意义的成效,在不同层次上建设了一批软件工程精品课程。为了更好地总结软件工程教学改革的成功经验,在教育部高等学校计算机科学与技术教学指导委员会的统一组织下,由清华大学刘强、浙江大学陈越、南京大学骆斌、桂林电子科技大学古天龙、北方工业大学吴洁明、华中科技大学裴小兵、中国科学技术大学朱少民、清华大学白晓颖等 老师组成课题组,结合课题组成员在软件工程教学第一线所获得的经验,共同研究形成了软件工程课程教学实施方案,目前该方案已由高等教育出版社出版。 本文介绍了该实施方案的总体框架,针对不同类型计算机人才的培养要求,围绕教学内容组织、课程讲授重点、实践教学环节等方面描述了课程的实施要点。 一、课程教学实施方案总体框架 软件工程课程既涉及计算学科的抽象和设计形态,又关注工程学科的系统性、规范性和可度量性等属性,强调培养学生的软件系统开发能力,案例教学和实践环节是课程教学的重要途径。 1.课程的教学定位与培养目标 本课程的教学定位包括三个方面:一是从软件生命周期的角度讲解软件工程的基本概念、基本原理和基本方法;二是从系统工程的角度讲解层次化的、系统性的、规范化的、可定量的软件工程方法学;三是从软件工程技术发展的角度讲授一些新技术和新方法,这样既有助于开拓学生视野和培养创新意识,又可以很好地适应现代软件行业发展的需要。经过本课程的学习,学生能够掌握软件工程的基础知识,从工程学角度认识软件在大型系统中的设计和应用,具备作为软件工程师从事软件开发所需的专业能力。 本课程通过一个具有一定规模的软件项目开发全过程,培养学生掌握扎实的软件工程基础知识,具备应用所学技术解决真实问题的能力。包括获取和分析用户需求、选择和设计适当应用解决方案以及使用规范化的软件工程方法和工具设计、实现和测试软件系统,并在过