软件工程论文

2022-05-07 来源:其他范文收藏下载本文

推荐第1篇:软件工程实习论文

四川大学

毕业论文(设计)

题目学院学院专业学生姓名学号年级级指导教师

毕业教务处制表 毕业

软件工程实习论文

一、论文说明

本团队长期从事论文写作与论文发表服务,擅长案例分析、编程仿真、图表绘制、理论分析等,专科本科论文300起,具体信息联系

二、论文参考题目与思路

基于.NET架构的教学管理办公自化系统的设计实现

基于ARM和FPGA的无线遥控仿人机器人双重控制系统研究

飞行人员执照理论在线考试系统设计与实现

未来移动通信基站体系结构——定性理论、方法与实践

多维报表系统的设计实现

SAE J1939协议分析和SmartJ1939系统设计实现

小灵通VAS平台体系架构综述暨用户定位系统的设计实现

航空公司乘务员排班系统的优化算法研究及设计实现

基于组态软件的PLC控制系统设计实现

科研管理及项目监控系统研究

超宽带脉压雷达信号产生系统研究

机务段股基于ARM和FPGA的无线遥控仿人机器人双重控制系统研究 飞行人员执照理论在线考试系统设计与实现

未来移动通信基站体系结构——定性理论、方法与实践

多维报表系统的设计实现

SAE J1939协议分析和SmartJ1939系统设计实现

小灵通VAS平台体系架构综述暨用户定位系统的设计实现

航空公司乘务员排班系统的优化算法研究及设计实现

基于组态软件的PLC控制系统设计实现

科研管理及项目监控系统研究

超宽带脉压雷达信号产生系统研究

机务段股道管理自动化系统维修机软件的设计与实现

嵌入式实时飞行人员执照理论在线考试系统设计与实现

未来移动通信基站体系结构——定性理论、方法与实践

多维报表系统的设计实现

SAE J1939协议分析和SmartJ1939系统设计实现

小灵通VAS平台体系架构综述暨用户定位系统的设计实现

航空公司乘务员排班系统的优化算法研究及设计实现

基于组态软件的PLC控制系统设计实现

科研管理及项目监控系统研究

超宽带脉压雷达信号产生系统研究

机务段股道管理自动化系统维修机软件的设计与实现

嵌入式实时操作系统内核设计与实现

基于ARM的嵌入式系统及SNMP的未来移动通信基站体系结构——定性理论、方法与实践

多维报表系统的设计实现

SAE J1939协议分析和SmartJ1939系统设计实现

小灵通VAS平台体系架构综述暨用户定位系统的设计实现

航空公司乘务员排班系统的优化算法研究及设计实现

基于组态软件的PLC控制系统设计实现

科研管理及项目监控系统研究

超宽带脉压雷达信号产生系统研究

机务段股道管理自动化系统维修机软件的设计与实现

嵌入式实时操作系统内核设计与实现

基于ARM的嵌入式系统及SNMP的设计与实现

全程办税系统数据库访问中间件

推荐第2篇:软件工程相关论文

四川大学

毕业论文(设计)

题目学院学院专业学生姓名学号年级级指导教师

毕业教务处制表 毕业

软件工程相关论文

一、论文说明

本团队长期从事论文写作与论文发表服务,擅长案例分析、编程仿真、图表绘制、理论分析等,专科本科论文300起,具体信息联系

二、论文参考题目与思路

水下武器系统故障诊断与测试系统设计实现

植物数字检索信息系统的设计与实现

社区综合管理信息系统的研究

档案管理系统安全访问控制的设计与实现

基于Oracle ERP的零售管理系统的设计实现

基于嵌入式Linux的电力系统远程测控终端的研究与设计

EPON与WiMAX融合接入实验系统ONU核心功能的设计与实现

GIS支持下城镇土地定级估价信息系统的设计与实现

面向教学的排课选课系统的设计与实现

烟台安国特紧固件有限公司网上报销管理系统的设计与实现

车载相控阵天线跟踪控制系统的设计实现

一个植物数字检索信息系统的设计与实现

社区综合管理信息系统的研究

档案管理系统安全访问控制的设计与实现

基于Oracle ERP的零售管理系统的设计实现

基于嵌入式Linux的电力系统远程测控终端的研究与设计

EPON与WiMAX融合接入实验系统ONU核心功能的设计与实现

GIS支持下城镇土地定级估价信息系统的设计与实现

面向教学的排课选课系统的设计与实现

烟台安国特紧固件有限公司网上报销管理系统的设计与实现 车载相控阵天线跟踪控制系统的设计实现

一个基于B/S架构预算系统的设计和实现

试题社区综合管理信息系统的研究

档案管理系统安全访问控制的设计与实现

基于Oracle ERP的零售管理系统的设计实现

基于嵌入式Linux的电力系统远程测控终端的研究与设计 EPON与WiMAX融合接入实验系统ONU核心功能的设计与实现 GIS支持下城镇土地定级估价信息系统的设计与实现 面向教学的排课选课系统的设计与实现

烟台安国特紧固件有限公司网上报销管理系统的设计与实现 车载相控阵天线跟踪控制系统的设计实现

一个基于B/S架构预算系统的设计和实现

试题自动提取系统的设计与实现

光缆通信档案管理系统安全访问控制的设计与实现

基于Oracle ERP的零售管理系统的设计实现

基于嵌入式Linux的电力系统远程测控终端的研究与设计 EPON与WiMAX融合接入实验系统ONU核心功能的设计与实现 GIS支持下城镇土地定级估价信息系统的设计与实现 面向教学的排课选课系统的设计与实现

烟台安国特紧固件有限公司网上报销管理系统的设计与实现 车载相控阵天线跟踪控制系统的设计实现

一个基于B/S架构预算系统的设计和实现

试题自动提取系统的设计与实现

光缆通信传输网络维护系统的设计与实现

推荐第3篇:软件工程试验论文

班级:09级计算机本科班姓名:白路明学号:091220141046

软件工程开发工具case的学习心得

摘要:文章主要前线介绍了什么是计算机辅助软件工程CASE以及它的分类方式和主流的几种CASE工具的特点。

关键字:(1)CASE的基本定义及作用

(2)CASE工具的标准及种类

(3)主流CASE工具的各自特点

参考文献:窦万峰软件工程试验教程

徐培炎 PowerDesigner特点、优势[EB/OL].赛迪网

2006.10

Wendy Boggs, Michael BoggsUML与Rational Rose 2002入门与精通[M].电子工业出版社.2002

徐锋.实战OO:为问题域建模.程序员.2004.2

王文玲,金茂忠.UML模型与其应用.计算机工程与应用.1999

Doug Rosenberg, Kendall Scott.UML用例驱动对象建模.北京:清华大学出版社.200

3软件工程是将计算机科学理论与现代工程方法相结合,着重研究软件过程模型、设计方法、工程开发技术和工具,指导软件生产和管理的一门新兴的、综合的应用科学。随着计算机科学和软件产业的迅猛发展,软件工程学已成为一个重要的计算机分支学科,一个异常活跃的研究领域,正在不断涌现新方法、新技术,蓬蓬勃勃的发展着。软件工程是计算机专业和软件工程专业学生必修的一门专业课程,也是工科各专业学生在计算机应用方面的一门重要选修课程。随着软件工程理论与技术的发展和多种多样的辅助软件开发的case(计算机辅助软件

工程)工具不断涌现,既提高了软件开发效率,同时还大大的节约了开发成本,并且对从事软件及相关行业的人才和大学生提出了新的更高的要求。

一、CASE的基本定义及作用

计算机辅助软件工程CASE是通过一组集成化的工具,辅助软件开发者实现各项活动的全部自动化,是软件产品在整个生存周期中,开发和维护生产率得到提高,质量的保证。CASE环境、case工具、集成化CASE(I-CASE)等,实际是一切现代化软件开发环境(SEE)的代名词。CASE(Computer Aided Software Engineer计算机辅助软件工程) “用自动化手段对结构化概念和设计方法重新进行组装”。CASE的实质是为软件开发人员提供一组优化集成的且能大量节省人力的软件开发工具,以实现软件生存期各个环节的自动化并使之成为一个整体。 CASE是一套方法和工具,可使用系统开发商规定的应用规则,并由计算机自动生成合适的计算机程序。CASE工具分成\"高级\"CASE和\"低级\"CASE.高级CASE工具用来绘制企业模型以及规定应用要求,低级CASE工具用来生成实际的程序代码。CASE工具和技术可提高系统分析和程序员工作效率。其重要的技术包括应用生成程序、前端开发过程面向图形的自动化、配置和管理及寿命周期分析工具。

CASE的作用有通过自动检查提高软件的质量;使原型的建立成为可行;简化程序的维护工作;加快软件的开发过程;鼓励进化式和递增式的软件开发,使软件部件可重复使用。CASE的基本功能有提供一种机制,是环境中所有工具可以共享软件工程信息;每一个信息项的改变,可以追踪到其他相关信息项;对所有软件工程信息提供版本控制和配置管理;对环境中任何工具,可以进行直接的、非顺序的访问;在标准的分解结构中提供工具和数据的自动支持;是每个工具的用户,共享人机界面的所有功能;收集能够改善过程和产品的各项度量指标;支持软件工程师们之间的通信。

二、CASE工具的标准及种类

CASE 工具分类的标准可分为三种:功能,功能是对软件进行分类的最常用的标准;支持的过程,根据支持的过程,工具可分为设计工具、编程工具、维护工具等;支持的范围,根据支持的范围,可分为窄支持、较宽支持和一般支持工

具。窄支持指支持过程中特定的任务,较宽支持是指支持特定过程阶段;一般支持是指支持覆盖软件过程的全部阶段或大多数阶段。 1993 年,Fuggetta 根据 CASE 系统对软件过程的支持范围,提出 CASE 系统可分为三类:支持单个过程任务的工具。工具可能是通用的,或者也可能归组到工作台;工作台支持某一过程所有活动或某些活动。它们一般以或多或少的集成度组成工具集;环境支持软件过程所有活动或至少大部分。它们一般包括几个不同的工作台,将这些工作台以某种方式集成起来。

CASE 方法与其他方法相比有如下几方面的应用特点:解决了从客观世界对象到软件系统的直接映射问题,强有力地支持软件、信息系统开发的全过程;使结构化方法更加实用;自动检测的方法提高了软件的质量;使原型化方法和 00 方法付诸于实施;简化了软件的管理和维护;加速了系统的开发过程;使开发者从大量的分析设计图表和程序编写工作中解放出来;使软件的各部分能重复使用; 产生出统一的标准化的系统文档。

CASE 工具种类繁多,适应了不同方面的要求,随着技术的发展,还有不但推陈出新的趋势。给软件人员提供了更多的选择余地。例如: Enterprise Architect、Poseidon、ArgoUML、ModeIMaker、Gaphor、Visio、object Domain、UMLStudio、Visual Paradigm for UML、Rational Rose、Umbrello TOgether、Low -tech、Jude、ARIS、MagicDraw、CodeLogic、omondo、Micro Gold omnigraffle ( Mac OSX only )、Embarcadero Technologies 等等。主流的CASE工具有Visio、Smartdraw、SourceInsigt、Telelogic、ModelMaker、ArgoUML、Rose、v、cvs、Project、PowerDesigner、WinRunner、LoadRunner、Eclipse。

三、主流CASE工具的各自特点

Rational Rose

目前市面上最流行的UML Case工具,绘制的图形简洁美观它支持Java,J2EE,C++,MCF等语言和框架的建模.在加上他的Rational系列,RUP的方法论,是当之无愧的巨无霸.IBM Rational Rose 是一个完整的可视建模方案,开

发人员、项目经理、工程师和分析人员可以在提交编码之前对需求和构架进行可视化、理解和改进。利用模型驱动的方法进行软件开发,可以保证系统的可扩展性、灵活性和可靠性,使您更快更好地创建软件。其功能包括: 支持对象模型、数据模型和数据存储模型的创建。 映射逻辑和物理模型,从而灵活地将数据库设计演变为应用程序逻辑。 支持数据模型、对象模型和已定义数据语言(DDL)文件/数据库管理系统(DBMS)之间的双向工程 。变换同步选项(在变换期间对数据模型和对象模型进行同步)。 数据模型-对象模型比较向导。 支持一次性对整个数据库进行正向工程。 集成了其他 IBM Rational Software Development 生命周期工具。能集成任何兼容 SCC 的版本控制系统,包括 IBM Rational ClearCase 软件。 能够以 Web 页面的方式发布模型和报告,以此来提高整个团队的沟通效率。其最突出特点就是通过使所有的团队成员独立开发、协作沟通和交付更好的软件来统一开发团队 ,建立稳定、有弹性、基于构件的系统构架,以可控、可管理、可确认的方式进行开发,从而降低成本,加快面市的速度。 一个无缝集成所有领先的 IDE 与最新技术的工具可满足您的所有技术需要,最大化开发工作的速度和简便性。

ModelMaker

一个非常强大的软件工具,其功能与所有强大且具有多面性的产品一样。但ModelMaker的复杂性却会让一个新手望而却步。

ModelMaker常被认为是一个UML图形工具或是Delphi Case工具,然而,它比一般的图形工具和Case工具要快得多,有时,它可为你写一些人工智能式的代码。它是可扩展的,支持UML图,设计模式,逆向生成与分解的双向代码管理工具等。

它的核心则为,它支持本地代码模型,你所有的类及其关联元素(单元,图,文档及事件类型等等)都是模型内部的对象。ModelMaker为活动模型提供了多种视图,允许你在类列表,元素列表或图集中进行操作,如果你已有准备,你即可从模型中生成源代码单元,并可由Delphi来进行编译,以后生成的单元每次也可重新生成。你可对各种不同的设置进行修改(例如代码注释选项,代码次序,

方法使用等等),并且可为多种需求重新生成单元(调试代码,自动生成的大量注释代码等)。

Enterprise Architect

以目标为导向的软件系统。它覆盖了系统开发的整个周期,除了开发类模 型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。其主要特点包括:为整个团队提供高级的UML 2.0建模工具;特性丰富系统设计;端到端跟踪;EA提供使用工具,能够跟踪依赖关系、支持大型模型,帮助您管理大型复杂的工程;含有CVS或SCC提供工具,以时间快照为基线,通过比较来跟踪模型变动,从而实现版本控制;含有类似explorer的项目视窗,为您提供直观高性能的工作界面。EA还含有一个所见即所得形式的模板编辑器,提供强大的文档生成和报告工具,能够生成复杂详细的报告,报告可以按照公司或客户要求的格式提供所需信息。 EA具备源代码的前向和反向工程能力,支持多种通用语言;EA还提供变换模板,编辑和开发均非常简单,支持先进的模型驱动结构体系(MDA)。

Visual Paradigm

是由一家香港公司开发的 UML 工具。功能的强大不次于rose等case工具。可以和其他工具整合,包括Eclipse/IBM WebSphere 等并且支持多平台简单介绍如下特性:支持UML2.0;支持生成Html,PDF,Writer的报表; 可以导入Rose 的UML图; 汇出为XMI; 可以生成Java代码;有.Net的Add-In; 支持E-R图建模; 支持ORM; 智能化的提示即当你把鼠标移到一个UML图上时,周围自动显示能和此UML图相关的UML图可快速地添加。

推荐第4篇:软件工程论文 ——心得体会

软件工程课程

——心得体会

院系:经管学院

姓名:赵歆

学号:100510128

软件工程课程设计——心得体会

目录

摘要 ...................................................2 关键字 .................................................2 绪论 ...................................................2

一、需求分析和概要设计。...............................3 1)需求分析 ............................................3 2)概要设计 ............................................4

三、软件工程课程设计——心得体会 ......................5

1 软件工程课程设计——心得体会

软件工程课程

——心得体会

摘要:高校教职工工资管理系统是为了解决教职工工资管理的而设计的,目的是建立一个能够初步实现高校教职工工资管理系统的智能化管理,该系统能跟据每位教师的职称不同而确定不同的基本工资,同时能根据每个教职工的出勤率,加班时间计算出每个教职工的月工资,还能根据每个月的情况计算出年终奖金。利用此系统能减少工资计算管理教职工数量,增加教职工效率,同时还能使公司工资管理更加合理、透明,为高校节约成本。在进行软件需求说明书设计及概要设计的心得体会。

关键字:工资 管理 功能 心得

绪论:软件工程课程设计的题目是高校教职工工资管理系统,本文主要是对于软件工程课程设计中需求分析与概要设计分析的心得。

我们进行设计的项目是高校教职工工资管理系统。高校教职工工资管理系统是为了解决教职工工资管理的而设计的,目的是建立一个能够初步实现高校教职工工资管理系统的智能化管理,该系统能跟据每位教师的职称不同而确定不同的基本工资,同时能根据每个教职工的出勤率,加班时间计算出每个教职工的月工资,还能根据每个月的情况计算出年终奖金。利用此系统能减少工资计算管理教职工数量,增加教职工效率,同时还能使公司工资管理更加合理、透明,为高校节约成本。

2 软件工程课程设计——心得体会

一、需求分析和概要设计。

1)需求分析

按照软件工程的软件过程来说:

1需求分析产生了软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。

2.概要设计产生了软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。

在进行需求分析时,我们既是开发者又是用户,本系统的业务流程与业务分类的定义比较难。我们的团队进行了研讨,还充分运用了身边的各种资源,大量的查找了很多网络上关于工资系统的资料。通过资料的进行讨论、根据我们的课题进行分析,最后确定了用户的需求为:

1.本系统在高校应用后高校工资管理方面的教职工将减少至目前的50%左右;

2.本系统在高校应用后将在高校各方面的成本将会有所降低;

3.本系统在高校应用后将教职工的工资达到完全透明,计算更加精确教职工因纠纷事件减少到1%。

根据分析将系统的功能从一般教职工与系统管理者两个角度将功能划分为7个模块,当然介于我们的知识有限,有的功能没有实现: 3 软件工程课程设计——心得体会

员工工资与考勤直接挂钩,但本系统无法与员工考勤系统挂钩相连,由于涉及此系统时该高校并没有员工考勤系统,而且我们在最初进行商量的时候也没有提出该要求。

2)概要设计

从概要阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。由概要设计说产生大的概要说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。

在本阶段主要涉及处理流程的设计、总体结构和模块外部设计、功能分配。在接口设计上有用户接口、外部接口、内部接口;数据结构设计有逻辑结构设计、物理结构设计等等。在接口设计时参考了大量的资料。

最后就是编写文档——软件需求说明书、概要分析说明书。

而文档的作用在于:一是可以帮助整理思路。把要完成的目标,系统的结构,每一个模块的功能等整理一下,然后分门别类地写下来,这样在开发的过程中,就有据可依,在需要回过头来修改设计的时候,也有证可考。二是便于交流。三是可以作为以后维护时的参考资料。

4 软件工程课程设计——心得体会

三、软件工程课程设计——心得体会

我们进行了为期一周的课程设计。通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。对我们信息管理与信息系统专业的学生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。

5 软件工程课程设计——心得体会

在一个星期的课程设计之后,我们普遍感到不仅实际动手能力有所提高,更重要的是通过对软件开发流程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。

软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始。我体会到项目管理的重要性,随着软件规模、复杂度的不断增加,项目开发中更多的是协作、管理和控制。我学习到很多一般性的方法,例如:需求获取、模块化、计划等等。同时,我也认识到使用计算机解决实际问题的复杂性,人们认识表达的过程不断反复、逐步深化,软件工程方法要提供给程序员们一种更加有效的对客观世界问题域进行形式化的过程方法。

6

推荐第5篇:软件工程论文怎么写(材料)

四川大学

毕业论文(设计)

题目学院学院专业学生姓名学号年级级指导教师

毕业教务处制表 毕业

软件工程论文怎么写

一、论文说明

本团队长期从事论文写作与论文发表服务,擅长案例分析、编程仿真、图表绘制、理论分析等,专科本科论文300起,具体信息联系

二、论文参考题目与思路

十冬会冰壶成绩处理系统的设计与实现

基于端口代理的可扩展管理信息系统设计实现

变电站综合管理信息系统的设计与实现

航空公司现场运行系统的设计与实现

基于Java语言的操作系统设计与实现技术研究

嵌入式系统设计—特殊TA软件的设计与实现

基于嵌入式系统的设备信息采集系统设计实现

基于组件GIS的小区信息管理系统研究与开发

数字前兆台网中心自助式远程入库管理及共享服务系统的设计

基于Inmarsat-C和BGAN的船舶电子邮件系统的设计实现

基于J2EE的物流配送系统的设计实现及可靠性分析

基于端口代理的可扩展管理信息系统设计实现

变电站综合管理信息系统的设计与实现

航空公司现场运行系统的设计与实现

基于Java语言的操作系统设计与实现技术研究

嵌入式系统设计—特殊TA软件的设计与实现

基于嵌入式系统的设备信息采集系统设计实现

基于组件GIS的小区信息管理系统研究与开发

数字前兆台网中心自助式远程入库管理及共享服务系统的设计

基于Inmarsat-C和BGAN的船舶电子邮件系统的设计实现

基于J2EE的物流配送系统的设计实现及可靠性分析

基于B/S结构的税务管理信息系统的设变电站综合管理信息系统的设计与实现

航空公司现场运行系统的设计与实现

基于Java语言的操作系统设计与实现技术研究

嵌入式系统设计—特殊TA软件的设计与实现

基于嵌入式系统的设备信息采集系统设计实现

基于组件GIS的小区信息管理系统研究与开发

数字前兆台网中心自助式远程入库管理及共享服务系统的设计

基于Inmarsat-C和BGAN的船舶电子邮件系统的设计实现

基于J2EE的物流配送系统的设计实现及可靠性分析

基于B/S结构的税务管理信息系统的设计实现与关键技术研究

水下武器系统故障诊断航空公司现场运行系统的设计与实现

基于Java语言的操作系统设计与实现技术研究

嵌入式系统设计—特殊TA软件的设计与实现

基于嵌入式系统的设备信息采集系统设计实现

基于组件GIS的小区信息管理系统研究与开发

数字前兆台网中心自助式远程入库管理及共享服务系统的设计

基于Inmarsat-C和BGAN的船舶电子邮件系统的设计实现

基于J2EE的物流配送系统的设计实现及可靠性分析

基于B/S结构的税务管理信息系统的设计实现与关键技术研究

水下武器系统故障诊断与测试系统设计实现

植物数字检索信息

推荐第6篇:《软件工程专业导论》论文评分标准

《软件工程专业导论》课程考查论文评分标准

《软件工程专业导论》课程是软件工程专业的院级限选课。课程从软件工程的概念、方法、技术和工具多方面初步介绍软件工程做什么,怎么做;介绍软件工程专业的知识体系和课程体系;介绍软件工程专业的核心课程和专业方向课程以及实践实习环节课程;讨论软件工程专业的学习方法和能力培养的方法。通过该课程学习后,学生应该初步了解软件工程的知识体系和课程体系;了解软件工程专业的核心课程和专业方向课程,并对整个课程先后顺序和关系有初步的认识;对学习专业课程的方法有一定的了解,并能初步制定出四年学习规划。

该课程考查学生能否较好地了解软件工程的基本概念,初步理解软件工程的知识体系和课程体系;搞清楚要学习的基础课程、专业课程和方向课程,搞清楚要达到的动手能力、表达能力、团队沟通能力、组织能力和创新能力;能否初步制定出学习规划等等。

具体评分标准如下:

优秀:很好地了解软件工程的基本概念,初步理解软件工程的知识体系和课程体系;清楚要学习的基础课程、专业课程和方向课程,清楚要达到的各种能力;制定了较详尽的学习规划,论文描述清晰、分析独到,总结全面。

良好:较好地了解软件工程的基本概念,初步理解软件工程的知识体系和课程体系;清楚要学习的基础课程、专业课程和方向课程,清楚要达到各种能力;制定了学习规划,论文描述清晰、总结全面。

中等:了解软件工程的基本概念,初步理解软件工程的知识体系和课程体系;比较清楚要学习的基础课程、专业课程和方向课程,比较清楚要达到各种能力;制定了一定的学习规划,论文描述较清晰。

及格:对软件工程的基本概念、知识体系和课程体系有所了解;基本了解要学习的基础课程、专业课程和方向课程以及要达到各种能力。

不及格:对软件工程的基本概念、知识体系和课程体系认识模糊;不了解要学习的基础课程、专业课程和方向课程以及要达到各种能力。论文描述不清楚,分析和总结不到位。

主讲教师:范锐

2009年12月1日

推荐第7篇:软件工程

填好发给我!!!!

一、填空题:

1.面向对象分析的目的是对客观世界的系统进行 __________________,对象就是客观世界的;

2.软件工程方法学包括:工程环境建立、方法、工具和过程;

3.思想概括起来,就是以人为本,最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意;

4.UML是指,是用于建立面向对象系统模型的标记方法;

5.需求分析的基本任务是和一起完全弄清用户对系统的确切需求,确切地讲就是系统做什么的问题;

6.的目的就是用最小的代价在的时间内确定该软件项目是否能够开发,是否值得去开发;

7.在众多的软件工程环境的影响中,和是最重要的。

8.是对系统不同版本进行标识和跟踪的过程,主要分为版本的访问与同步控制、。

9.模块的耦合性分为四种类型:据耦合、、、;

10.软件工程学的主要内容包括和。

二、选择题:

1.软件维护的困难主要原因是()

A.费用低B.人员少

C.开发方法的缺陷D.维护难

2.模块(),则说明模块的独立性越强。

A.耦合越强B.扇入数越高C.耦合越弱D.扇入数越低

3.指出PDL是下列哪种语言()。

A.伪码B.高级程序设计语言

C.中级程序设计语言D.低级程序设计语言

4.在进行软件测试时,首先应当进行(),然后再进行组装测试,最后再进行有效性测试。

A.单元测试B.集成测试C.确认测试D.组合测试

5.软件测试的目的是()。

A. 评价软件的质量B.发现软件的错误

C. 找出软件的所有错误D.证明软件是正确的

6.软件设计阶段分为()。

A.逻辑设计与功能设计B.模型设计和功能设计

C.结构设计和模块过程设计D.数据库设计和文件设计

7.结构化设计方法是面向()的设计。

A.数据流B.数据编码

C.数据库D.数据结构

8.程序的三种基本控制结构是()。

A.过程、子程序和分程序

B.顺序、选择和重复

C.递归、堆栈和队列

D.调用、返回和转移

9.系统定义明确之后,应对系统的可行性进行研究,可行性研究应包括(

A.软件环境可行性、技术可行性、经济可行性、社会可行性

B.经济可行性、技术可行性、操作可行性

C.经济可行性、社会可行性、系统可行性

D.经济可行性、实用性、社会可行性

10.数据字典包括()个条目。

A.2B.3C.4D.

5三、名词解释题:

1.需求分析?

2.软件危机?

3.软件生存周期模型?

4.系统测试?

5.结构化分析?

。)

四、简答题:

1.快速原型法?

2.从软件开发的过程按阶段划分,软件测试分为哪些类型?

3.数据流程图的基本符号及各自的含义是什么?数据流程图的功能是什么?

4.软件维护包括哪些方面?主要由谁来完成?

5.简述软件项目管理的实质?

推荐第8篇:软件工程

2 6软件工程

1软件工程基本思想

用科学∞知识和技术原理来定义、开发、维护软件,用工程科学∞观点进行费 用估算,制定进度,制定计划和方案,用管理科学的方法和原理进行生产∞管理, 用数学的方法建立软件开发中的各种模型和算法。

2软件工程目标

付出较低开发成本,达到要求的功能,取得较好的性能,开发的软件易于移 植,只需较低的维护费用,能按时完成开发任务,及时交付使用,开发的软件可靠

性高。

3软件工程内客

研究内容包括开发技术和开发管理两个方面。开发技术主要研究软件开发方 法,开发过程,开发工具和环境。开发管理主要研充软件管理学,软件经济学,软

件心理学。

4软件工程需要解的问题

软件的费用,可靠性,可维护性,软件生产率和软件的重用。

5软件开发方法

使用早已定义好的技术集及符号表示习惯来组织软件生产∞过程。软件开发方 法是克服软件危机∞重要方面之一。

6软件开发的目标

通过使用成功的软件开发方法,在规定人投资和时间内,开发出符合用户需求 的高质量的软件。

推荐第9篇:《软件工程》

《软件工程》课程分析

本课程是软件技术专业学生必修的一门专业必修课。根据培养软件开发人员的需要,本课程的任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法。能在软件工程的理论指导下,开发一个小型管理系统,为今后从事软件工程实践打下良好的基础。

一、课程分析

(一)教学计划的制定和教学内容的选取

根据培养应用技能型人才的总目标,制订本专业教学计划,课程的教材配套,教学、实验、实训、课程设计大纲和指导书等教学文件齐全,近几年来引入了现代教学技术手段,已初步建设、形成了具有特色的全套课堂教学和实验教学课件。

根据该课程的基本教学要求和特点,结合学时的安排,从教材的整体内容出发,有侧重地进行取舍,筛选出学生必须掌握的基本教学内容,较好地解决了教学中质量与数量的矛盾。

(二)教学方法分析

由于该课程是用于指导软件开发的,和实践联系非常紧密。所以采用了理论联系实际的方法进行授课。一方面,让学生模拟软件公司的项目小组进行软件开发;一方面,对学生进行适时的理论指导。既调动了学生的积极性,又让学生了解了该课程的理论内容,收到了一举两得的效果。具体教学过程如下:

第一步:模拟软件公司的开发项目小组,分组,分设角色(项目经理、用户、需求人员、设计人员、程序员、测试人员、软件安装培训维护人员),确定开发题。让每个小组的学生聚在一起,在项目经理的组织下通过调研、讨论来制定自己小组的开发题目,大家感觉就象在软件公司实习一样,非常新鲜,感兴趣。每个学生都积极主动的去完成自己应承担的那部分工作。

第二步:模拟软件项目开发全过程的各个阶段,进行相关的理论授课和实际开发。即对软件开发的每一阶段,首先按照教材内容进行理论授课,然后让学生参照授课内容进行实际的软件开发实践。

在此阶段结束后,每班召开一个模拟方案论证会,由各开发小组选出代表上台讲解本组的开发方案,其他同学模拟用户对开发方案提出意见。 由于大家对模拟方案论证会非常感兴趣,发言积极踊跃,论证会结束后,每个小组的设计方案都得到了很好的补充和完善。

第三步:学期末各小组提交各自完成的软件系统及开发文档,并进行总结演示,由任课教师进行讲评。

抽象理论课的教学应理论联系实际,让学生在实际应用中掌握抽象的理论,在兴趣中学习,达到我们高职的双向型培养目标。

二、存在的问题与希望

在上述的教学中,虽然实现了理论联系实际,但也存在着一些问题,比如每个项目小组中总有个别同学存在依赖心理,不参与项目开发,最后抄袭别的同学的项目成果,自己得不到实际的锻炼,影响了大三的毕业设计和日后的软件开发。另外,如果该课程只上课,没有实训的话,实验课时太少,学生很难全面完成一个系统的开发。

推荐第10篇:软件工程

1.

软件工程:是指导计算机软件开发和维护的工程学科

2.

软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题

3.

软件过程:是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤

4.

软件生命周期:是指从软件定义、开发、使用、信息”。此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存 储。

23.

软件危机有那些典型表现?

(1)央一个索引号)。

针对若干个不同的NAME重复执行上述命令序列。

⑫测试系统非正常操作的测试数据 ①用过长的关键字作为命令b的参数:例如,b(reliability software and hardware combined)

预期的输出:系统截短过长的关键字,例如,上列命令中的关键字可能性被截预期的输出:X=1,Y=20,Z=3 ④ 3个判定表达式依次为假、真、真 输入:A=1,B=40,C=60 预期的输出:X=1,Y=20,Z=30 ⑤ 3个判定表达式依次为真、假、假 输入:A=20,B=1,C=1 预期的输出:X=10,Y=2,Z=3 ⑥ 3个判定表达式依次为真、假、真 输入:A=20,B=1,C=60 对软件开发成本和进度的估计常常很不准确。 维护到淘汰的全过程

5.

软件工程环境:方法与工具的结合,加上配套的软、硬件支持称为软件工程环境

6.

模块:是数据说明、可执行语句等程序对象的集合

7.

模块化:是按规定的原则将一个大型软件分为一个个较小的、相对独立但又相关的模块

8.

耦合:是对一个软件结构内不同模块之间互连程度的度量

9.

内聚:标志着一个模块内各个元素彼此结合的紧密程度

10.

结构程序设计:如果一个程序的代码块只有一个入口和一个出口,则称这个程序是结构化的

11.实现:通常指编码和测试

12.

软件可靠性:是指程序在给定的时间间隔内,按照规格说明书的规定成功地运行地概率

13.集成测试:是测试和组装软件的系统化技术 14.

软件维护:是指软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程

15.

对象:在应用领域中有意义的、与所解决的问题有关系的任何事物

16.

对象模型:表示静态的、结构化的系统的“数据”性质

17.功能模型:表示变化的系统的“功能”性质 18.

面向对象分析:就是抽取和整理用户需求并建立问题域精确模型的过程

19.

重用:是指同一事物不作修改或者稍加改动就多次重复使用

20.

可行性分析包括:技术可行性、经济可行性、操作可行性

21.

北京某高校可用的电话号码有以下几类:校内电话号码由 4 位数字组成„„定义上述电话号码

电话号码=[校内电话号码|校外电话号码]

校内电话号码=非零数字+ 3 位数字 //后面继续定义 校外电话号码=[本市号码|外地号码] 本市号码=数字零+8 位数字

外地号码=数字零+3 位数字+8 位数字 非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0

3 位数字=3{数字}3//3 至 3 个数字 8 位数字=非零数字+7 位数字 7 位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9]

22.

目前住院的病人主要由护士护理,这样做不仅需要大量护士„„写出问题定义,分析可行性 从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告

(2)用户对“已完成的”软件系统不满意的现象经常

发生。

(3)软件产品的质量往往靠不住。(4)软件常常是不可维护的。(5)软件通常没有适当的文档资料。(6)软件成本在计算机系统总成本中所占的比例

逐年上升。(7)软件开发生产率提高的速度,远远跟不上计算

机应用迅速普及深入的趋势

25.

银行计算机存储系统的工作过程大致如下:„„请用数据流图描绘本系统的功能,并用实体—联系图描绘系统中的数据对象 26.

复印机的工作过程大致如下:未接到复印命令时处于闲置状态„„请用状态转换图描绘复印机的行为

27.用面向数据流的方法设计下列系统的软件结构

(1)机票预定系统(2)患者监护系统 28.

耦合包括数据耦合、控制耦合、公共环境耦合、内容耦合

29.

内聚包括功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚

30.

美国某大学有200名教师,校方与教师工会刚刚签订一项协议。按照协议„„

31.

画出下列伪代码的流程图,计算它的环形复杂度

32.

某图书馆有一个使用CET

终端的信息检索系统,该系统有下列4个基本检索命令:

(1)设计测试数据以全面系统的正常操作

(2)设计测试数据以测试系统的非正常操作

解:⑪测试系统正常操作的测试数据 ①顺序执行下列3个命令:b(KEYWORD)s(L)d(N)

其中KEYWORD是正确的关键字;L是执行命令b后在屏幕上显示的约20个行号中的一个(至少应该使L分别为第一个、最后一个和中央一个行号);N是执行命令s后列出的索引号中的一个(至少应该使N分别为第一个、最后一个和中央一个索引号)。

针对若干个不同的KEYWORD重复执行上述命令序列。

②顺序执行下列2个命令:f(NAME)d(N)

其中,NAME是已知的作者姓名;N是执行命令f后列出的索引号中的一个(至少应该使N分别为第一个、最后一个和中

短为reliability software

②用不正确的关键字作为命令b的参数:例如,b(AARDVARK)

预期的输出:显示出最接近的匹配结果,例如,执行上列命令后可能显示 1.AARON,JULES(book) ③用比执行命令b后列出的最大行号大1的数作为命令s的参数

预期的输出:“命令s的参数不在行号列表中”

④用数字和标点符号作为命令b和命令f的参数

预期的输出:“参数类型错”

⑤用字母字符作为命令s和命令d的参数 预期的输出:“参数类型错”

⑥用0和负数作为命令s和命令d的参数 预期的输出:“参数数值错” ⑦命令顺序错:例如,没执行命令b就执行命令s,或没执行命令s就执行命令d 预期的输出:“命令顺序错”

⑧命令语法错:例如,遗漏命令名b、s、d或f;或命令参数没用圆括号括起来 预期的输出:“命令语法错” ⑨命令参数空:例如,b()、s()、d或f()

预期的输出:系统提供默认参数或给出出错信息

⑩使用拼错了的作者姓名作为f的参数 预期的输出:“找不到这们作者的著作”

33.(2)答:经验表明,在类似的程序中,单位长度

里的错误数ET/IT近似为常数。美国的一些统计数字告诉我们,通常

0.5X10-2≤ ET/IT ≤2X10-2

也就是说,在测试之前每1000条指令中大约有5~20个错误。

假设在该程序的每1000条指令中有10个错误,则估计在对它进行测试期间将发现的错误数为

5000X10/1000=50(个) (3)① 使3个判定表达式之值全为假 输入:A=1,B=1,C=1 预期的输出:X=1,Y=2,Z=3 ② 使3个判定表达式之值全为真 输入:A=20,B=40,C=60 预期的输出:X=10,Y=20,Z=30 ① 3个判定表达式之值全为假 输入:A=1,B=1,C=1 预期的输出:X=1,Y=2,Z=3 ② 3个判定表达式依次为假、假、真 输入:A=1,B=1,C=60 预期的输出:X=1,Y=2,Z=30 ③ 3个判定表达式依次为假、真、假 输入:A=1,B=40,C=1

预期的输出:X=10,Y=2,Z=30 ⑦ 3个判定表达式依次为真、真、假 输入:A=20,B=40,C=1 预期的输出:X=10,Y=20,Z=3 ⑧ 3个判定表达式全为真 输入:A=20,B=40,C=60 预期的输出:X=10,Y=20,Z=30 34.

软件的可维护性与哪些因素有关:软件的可理解性、可测试性、可修改性、文档描述符合要求、用户文档简洁明确、系统文档完整并且标准

35.

面向对象方法是一种运用对象、类、继承、封装、聚合、消息、多态等概念来构造系统的软件开发方法。

面向对象方法的优点是:符合人们习惯的思维方式、稳定性好、可重用性好、可维护性好、容易开发大型的软件产品

第11篇:软件工程

2.2软件开发的基本策略

人们都有自己的世界观和方法论,能自然而然地运用于生活和工作中。同样,程序员脑子里的软件工程观念会无形地支配其怎么去做事情。软件工程三十年的发展,已经积累了相当多的方法,但这些方法不是严密的理论。实践人员不应该教条地套用方法,更重要的是学会“选择合适的方法”和“产生新方法”。有谋略才会有好的战术。几千年前,我们的祖先就在打闹之际写下了很多心得体会,被现代人很好地运用于工业和商业。本节讲述软件开发中的三种基本策略:“复用”、“分而治之”、“优化——折衷”。

2.2.1复用

复用就是指“利用现成的东西”,文人称之为“拿来主义”。被复用的对象可以是有形的物体,也可以是无形的成果。复用不是人类懒惰的表现而是智慧的表现。因为人类总是在继承了前人的成果,不断加以利用、改进或创新后才会进步。所以当我们欢度国庆时,要搞清楚祖国远不止50岁,我们今天享用到的财富还有上下五千年人民的贡献。进步只是应该的,不进步则就可耻了。

复用的内涵包括了提高质量与生产率两者。由经验可知,在一个新系统中,大部分的内容是成熟的,只有小部分内容是创新的。一般地可以相信成熟的东西总是比较可靠的(即具有高质量),而大量成熟的工作可以通过复用来快速实现(即具有高生产率)。勤劳并且聪明的人们应该把大部分的时间用在小比例的创新工作上,而把小部分的时间用在大比例的成熟工作中,这样才能把工作做得又快又好。

把复用的思想用于软件开发,称为软件复用。据统计,世上已有1000亿多行程序,无数功能被重写了成千上万次,真是浪费哪。面向对象(Object Oriented)学者的口头禅就是“请不要再发明相同的车轮子了” 。

将具有一定集成度并可以重复使用的软件组成单元称为软构件(Software Component)。软件复用可以表述为:构造新的软件系统可以不必每次从零做起,直接使用已有的软构件,即可组装(或加以合理修改)成新的系统。复用方法合理化并简化了软件开发过程,减少了总的开发工作量与维护代价,既降低了软件的成本又提高了生产率。另一方面,由于软构件是经过反复使用验证的,自身具有较高的质量。因此由软构件组成的新系统也具有较高的质量。利用软构件生产应用软件的过程如图1.5所示。

软件复用不仅要使自己拿来方便,还要让别人拿去方便,是“拿来拿去主义”。面向对象方法,Microsoft公司的COM规范 [Rogerson 1999],都能很好地用于实现大规模的软件复用。

2.2.2分而治之

分而治之是指把一个复杂的问题分解成若干个简单的问题,然后逐个解决。这种朴素的思想来源于人们生活与工作的经验,完全适合于技术领域。软件人员在执行分而治之的时候,应该着重考虑:复杂问题分解后,每个问题能否用程序实现?所有程序最终能否集成为一个软件系统并有效解决原始的复杂问题?

图1.6表示了软件领域的分而治之策略。诸如软件的体系结构设计、模块化设计都是分而治之的具体表现。软件的分而治之不可以“硬分硬治”。不像为了吃一个西瓜或是一只鸡,挥刀斩成n块,再把每块塞进嘴里粉碎搅拌,然后交由胃肠来消化吸收,象征复杂问题的西瓜或是鸡也就此消失了。

2.2.3优化——折衷

软件的优化是指优化软件的各个质量因素,如提高运行速度,提高对内存资源的利用率,使用户界面更加友好,使三维图形的真实感更强等等。想做好优化工作,首先要让开发人员都有正确的认识:优化工作不是可有可无的事情,而是必须要做的事情。当优化工作成为一种责任时,程序员才会不断改进软件中的算法,数据结构和程序组织,从而提高软件质量。

著名的3D游戏软件Quake,能够在PC机上实时地绘制高度真实感的复杂场景。Quake的开发者能把很多成熟的图形技术发挥到极致,例如把Bresenham画线、多边形裁剪、树遍历等算法的速度提高近一个数量级。我第一次看到Quake时不仅感到震动,而且深受打击。这个PC游戏软件的技术水平已经远胜于我所见识到的国内领先的图形学相关科研成果。这对我们日益盛行的点到完止的研发工作真是莫大的讽刺。所以当我们开发的软件表现出很多不可救药的病症时,不要怨机器差。真的是我们自己没有把工作做好,写不好字却嫌笔钝。

就假设我们经过思想教育后,精神抖擞,随时准备为优化工作干上六天七夜。但愿意做并不意味着就能把事情做好。优化工作的复杂之处是很多目标存在千丝万缕的关系,可谓数不清理还乱。当不能够使所有的目标都得到优化时,就需要“折衷”策略。

软件中的折衷策略是指通过协调各个质量因素,实现整体质量的最优。就象党支部副书记扮演和事佬的角色:“…为了使整个组织具有最好的战斗力,我们要重用几个人,照顾一些人,在万不得已的情况下委屈一批人”。

软件折衷的重要原则是不能使某一方损失关键的职能,更不可以象“舍鱼而取熊掌”那样抛弃一方。例如3D动画软件的瓶颈通常是速度,但如果为了提高速度而在程序中取消光照明计算,那么场景就会丧失真实感,3D动画也就不再有意义了(如果人类全是色盲,计算机图形学将变得异常简单)。

人都有惰性,如果允许滥用折衷的话,那么一当碰到困难,人们就会用拆东墙补西墙的方式去折衷,不再下苦功去做有意义的优化。所以我们有必要为折衷制定严正的立场:在保证其它因素不差的前提下,使某些因素变得更好。

下面让我们用“优化——折衷”的策略解决“鱼和熊掌不可得兼”的难题。

问题提出:假设鱼每千克10元,熊掌每千克一万元。有个倔脾气的人只有20元钱,非得要吃上一公斤美妙的“熊掌烧鱼”,怎么办?

解决方案:化9元9角9分钱买999克鱼肉,化10元钱买1克熊掌肉,可做一道“熊掌戏鱼”菜。剩下的那一分钱还可建立奖励基金。

2.3一些不正确的观念

本节例举并分析一些不正确的软件工程观念,可帮助初学者少犯相似的错误。

观念之一:我们拥有一套讲述如何开发软件的书籍,书中充满了标准与示例,可以帮助我们解决软件开发中遇到的任何问题。

客观情况:好的参考书无疑能指导我们的工作。充分利用书籍中的方法、技术和技巧,可以有效地解决软件开发中大量常见的问题。但实践者并不能因此依赖于书籍,这是因为:(1)现实的工作中,由于条件千差万别,即使是相当成熟的软件工程规范,常常也无法套用。(2)软件技术日新月异,没有哪一种软件标准能长盛不衰。祖传秘方在某些领域很吃香,而在软件领域则意味着落后。

观念之二:我们拥有最好的开发工具、最好的计算机,一定能做出优秀的软件。

客观情况:良好的开发环境只是产出成果的必要条件,而不是充分条件。如果拥有好环境的是一群庸人,难保他们不干出南辕北辙的事情。

观念之三:如果我们落后于计划,可以增加更多的程序员来解决。

客观情况:软件开发不同于传统的农业生产,人多不见得力量大。如果给落后于计划的项目增添新手,可能会更加延误项目。因为:(1)新手会产生很多新的错误,使项目混乱。(2)老手向新手解释工作以及交流思想都要花费时间,使实际开发时间更少。所以科学的项目计划很重要,不在乎计划能提前多少,重在恰如其分。如果用“大跃进”的方式奔向共产主义,只会产生倒退的后果。

观念之四:既然需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时可以修改。

客观情况:对需求把握得越准确,软件的修修补补就越少。有些需求在一开始时很难确定,在开发过程中要不断地加以改正。软件修改越早代价越少,修改越晚代价越大,就跟治病一样道理。

2.4一些有争议的观念

本节探讨一些有争议的观念,目的不在于得出“正确”或“错误”的评断,而在于争议会激发更多理性的思考。

争议之一:如果软件运行较慢,是换一台更快的计算机,还是设计一种更快的算法?

作者观点:如果开发软件的目的是为了学习或是研究,那么应该设计一种更快的算法。如果该软件已经用于商业,则需谨慎考虑:若换一台更快的计算机能解决问题,则是最快的解决方案。改进算法虽然可以从根本上提高软件的运行速度,但可能引入错误以及延误进程。技术狂毫无疑问会选择后者,因为他们觉得放弃任何可以优化的机会就等于犯罪。

类似的争议还有:是买现成的程序,还是彻底自己开发?技术人员和商业人士常常会有不同的选择。

争议之二:有最好的软件工程方法,最好的编程语言吗?

作者观点:在软件领域永远没有最好的,只有更好的。能解决问题的都是好方法或是好语言。程序员在最初学习Basic、Fortran、Pascal、C、C++等语言时会感觉一个比一个好,不免有喜新厌旧之举。而如今

的Visual Basic、Delphi、Visual C++、Java等语言各有所长,真的难分优劣。开发人员应该根据客观条件,选择自己熟悉的方法和语言,才能保证合格的质量与生产率。

程序设计是自由与快乐的事情,不要发誓忠于某某主义而自寻烦恼。

争议之三:编程时是否应该多使用技巧?

作者观点:就软件开发而言,技巧的优点在于能另辟蹊径地解决一些问题,缺点是技巧并不为人熟知。若在程序中用太多的技巧,可能会留下隐患,别人也难以理解程序。鉴于一个局部的优点对整个系统而言是微不足道的,而一个错误则可能是致命的。作者建议用自然的方式编程,少用技巧。

《狼三则》的故事告诉我们“失败的技巧通常是技俩”。当我们在编程时无法判断是用了技巧还是用了技俩,那就少用。《卖油翁》的故事又告诉我们“熟能生巧”,表明技巧是自然而然产生的,而不是卖弄出来的。卖油翁的绝技是可到中央电视台表演的,而他老人家却谦虚地说:“没啥没啥,用熟了而已”。

争议之四:软件中的错误是否可按严重程度分等级?

作者观点:在定量分析时,可以将错误分等级,以便于管理。微软的一些开发小组将错误分成四个等级 [Cusumano 1996],如表1.1所示。

一级严重:错误导致软件崩溃。

二级严重:错误导致一个特性不能运行并且没有替代方案。

三级严重:错误导致一个特性不能运行但有替代方案。

四级严重:错误是表面化的或是微小的。

表1.1 错误的四个等级

上述分类是非常技术性的,并不是普适的。假设某个财务软件有两个错误:错误A使该软件死掉,错误B导致工资计算错误。按表1.1分类,错误A属一级严重,错误B属二级严重。但事实上B要比A严重。工资算多了或者算少了,将会使老板或员工遭受经济损失。而错误A只使操作员感到厌烦,并没有造成经济损失。另一个示例是操作手册写错,按表1.1分类则属四级严重,但这种错误可能导致机毁人亡。

开发人员应该意识到:所有的错误都是严重的,不存在微不足道的错误。这样才能少犯错误。

2.5小

软件工程学科发展到今天,已经有了很多方法和规范,学之不尽。本章只在宏观上讨论了软件工程的一些

思想,更具体的内容将在后面的章节论述。无论是什么好方法,贵在理解与灵活运用,而不可当成灵丹妙药,不象“吃了脑黄金或脑白金,就能使一亿人先聪明起来”。

3程序员与程序经理

工作在第一线的软件开发人员是程序员和程序经理,他们决定着软件的命运。良好的程序员队伍和出色的管理是软件项目成功的必要条件。管理不是管制,不是去卡住人家的脖子,因为程序员不是一群野鸭子。管理的目的是让大家一起把工作做好,并且让各人获得各自的快乐和满足。当一个组织被出色地领导时,雇员甚至不知道他们已被领导。在项目完成时,他们会自豪地说:“看看我们通过努力取得的成绩吧”。所以管理者不能老惦记着自己是一个官,而应时刻意识到自己是责任的主要承担者。

我们经常会听到有经理头衔的人在高谈阔论:“编程我不会,做个项目还不easy?派个人去搞系统分析,回头再叫几个程序员把需求译成程序,不就OK了吗?”

不懂英语的人准以为easy和OK是贬义词。要让软件项目失败很容易,只要符合下列条件之一即可:

(1)项目经理对软件一无所知;

(2)技术负责人对编程不感兴趣;

(3)真真编写代码的程序员是临时雇用的。

如果上述三个条件同时具备,就请放心失败好了。

让我们少幻想自己是比尔·盖茨,先当好程序员和程序经理再说。

3.1了解程序员

早期的程序员干活能从软件直通硬件,个个生猛无比。又因他们的作息时间、言行举止与常人不太一样,久而久之就给人们留下了“神秘”、“孤僻”的印象。如今软件行业被炒得热火朝天,有能耐的程序员即便躲在大山岙的军工厂里也能被挖出来。而更多原本不是程序员的人操起几本“速成”、“二十一天通”等书籍也加入了这个行业。现在国内号称有上百万程序员,这支大军鱼龙混杂,已搞不清那些是正规军,那些是民兵游击队了。

第12篇:软件工程

1.软件危机的概念 系统的数据要求,功能需求,性能需求,显示出程序的轮廓。

软件危机是指在计算机软件开发、使用与可靠性需求,可用性需求,出错处理需求,混合方式

维护过程中遇到的一系列严重问题和难接口需求,约束,逆向需求以及将来可能优点:综合了以上两种策略的长处 题。 提出的需求。 9.确认测试

补充: 5.常使用的图形工具 确认测试又称有效性测试。有效性测试是

1.软件危机的表现有哪些? 实体-联系图,数据流图,状态转换图,在模拟的环境下,运用黑盒测试的方法,答:1)对软件开发成本和进度的估计常层次方框图,warnier图,IPO图。 验证被测软件是否满足需求规格说明书常很不准确。 第五章 列出的需求。任务是验证软件的功能和性

2)用户对已完成的软件不满意1.总体设计的任务 能及其他特性是否与用户的要求一致。对的现象时有发生。 划分出组成系统的物理元素——程序、文软件的功能和性能要求在软件需求规格

3)软件产品的质量往往是靠不件、数据库、人工过程和文档等等 说明书中已经明确规定,它包含的信息就住的。 设计软件的结构。也就是要确定系统中每是软件确认测试的基础。

4)软件常常是不可维护的。 个程序是由哪些模块组成的,以及这些模10.什么是白盒测试,其测试技术有那些,

5)软件通常没有适当的文档资块相互间的关系。 覆盖标准的强弱程度

料。 2.模块化思想 白盒测试是一种测试用例设计方法,盒子

6)软件成本在计算机系统总成就是把程序划分成独立命名且可独立访指的是被测试的软件,白盒指的是盒子是本中所占比例逐年上升。 问的模块,每个模块完成一个子功能,把可视的,你清楚盒子内部的东西以及里面

7)软件开发生产率提高的速度这些模块集成起来构成一个整体,可以完是如何运作的。\"白盒\"法全面了解程序内远跟不上日益增长的软件需求。 成指定的功能满足用户的需求。 部逻辑结构、对所有逻辑路径进行测试。

2.产生软件危机的原因主要有哪些? 3.衡量模块独立的标准( 内聚和耦合的白盒测试的测试方法有代码检查法、静态答:1)用户对软件需求的描述不精确。 含义,种类) 结构分析法、静态质量度量法、逻辑覆盖

2)软件开发人员对用户需求的内聚:标志着每一个模块内各个元素彼此法、基本路径测试法、域测试、符号测试、理解有偏差。 结合的紧密程度,是信息隐藏和局部化概路径覆盖和程序变异。

3)缺乏处理大型软件项目的经念的自然拓展。偶然内聚,逻辑内聚,时种覆盖标准:语句覆盖、判定覆盖、条件验。 间内聚,功能内聚,顺序内聚,通信内聚,覆盖、判定/条件覆盖、条件组合覆盖和

4)开发大型软件易产生疏漏和过程内聚。 路径覆盖发现错误的能力呈由弱至强的错误。 耦合:是对一个软件结构内不同模块之间变化。

5)缺乏有力的方法学的指导和互连程度的度量。数据耦合,控制耦合,11.什么时候黑盒测试,其测试技术有哪有效的开发工具的支持。 特征耦合,公共环境耦合,内容耦合。 些,(等价划分,边介值分析法)

6)面对日益增长的软件需求,4.启发式规则 黑盒测试也称功能测试,它是通过测试来人们显得力不从心。 1.改进软件结构提高模块的独立性检测每个功能是否都能正常使用。

2软件的概念 2.模块规模应该适中等价类划分的办法是把程序的输入域划完成特点功能的程序以及数据结构和文 3.深度、宽度、扇出和扇入都应适当 分成若干部分(子集),然后从每个部分档 4.模块的作用范围应在控制范围之内中选取少数代表性数据作为测试用例

3.软件工程的基本原理 5.力争降低模块接口的复杂程度 边界值分析是通过选择等价类边界的测

1.用分阶段的生命周期计划严格管理 6.设计单入口单出口的模块试用例。边界值分析法不仅重视输入条件

2.坚持进行阶段评审 7.模块功能应该可以预测 边界,而且也必须考虑输出域边界。它是

3.实行严格的产品控制 5.面向数据流的设计方法把信息流映射对等价类划分方法的补充。

4.采用现代程序设计技术 成软件结构 12.软件调试技术有哪些

5.结果应能清楚地审查 信息流:变换流,事物流 蛮干法,蛮干法可能是寻找软件错误原因

6.开发小组的人员应该少而精 映射:变换分析,事物分析 的最低效的方法,仅当所有其他方法都

7.承认不断改进软件工程实践的必要性失败的情况下才使用。

4软件生命周期分成哪几个阶段?各阶第六章 回溯法,回溯法是一种相当常用的调试方段的任务是什么? 1.详细设计的基本任务 法,当调试小程序时很有效。从发现症

1.问题定义: 1.为每个模块确定采用的算法。2.确定状的地方开始,人工沿程序的控制流往回

2.可行性研究:研究问题的范围,探索这每一模块使用的数据结构追踪分析源程序代码,知道找出错误原因个问题是否值得去解决,是否有可行的解3.确定模块接口的细节,包括对系统外为止。

决方法。 部的接口和用户界面,对系统内部其 原因排除法,对分查找法、归纳法、演绎

3.需求分析:主要是确定目标系统必须具它模块的接口,以及关于模块输入数据、法都属于原因排除法。

备哪些功能 输出数据及局部数据的全部细节。13.软件可靠性(可靠性和可用性的含义)

4.总体设计: 4.为每一模块设计出一组测试用例。

5.详细设计:就是把解法具体化,设计出2.程序的三种基本结构

程序的详细规格说明。 顺序结构,选择结构,循环结构

6.编码和单元测试:写出正确的容易理解3.详细设计的工具

容易维护的程序模块。 1.图形工具

7.综合测试:通过各种类型的测试使软件2.表格工具

达到预定的要求 3.语言工具

8.软件维护:通过各种必要的维护活动使4.jackson方法

系统持久地满足用户的需要。(改正性维5.复杂性度量的方法

护,适应性维护,完善性维护,预防性维Halstead方法:它根据程序中运算符和

护) 操作数的总数来度量程序的复杂程度

5.瀑布模型,快速原型模型,增量模型,McCabe方法 :McCabe方法根据程序控制

螺旋模型的特点 流的复杂程度定量度量程序的复杂程度,

瀑布模型阶:段时间具有顺序性和依赖第七章

性。推迟现实的观点。质量保证的观点。 1.选择程序设计语言应考虑哪些因素

快速原型模型:软件产品的开发基本上是1.系统用户的要求

线性顺序进行的,本质是“快速”加速软2.可以使用的编译程序

件的开发过程,节约软件开发成本。3.可以得到的软件工具

增量模型:能在较短时间内向用户提交可4.工程规模

完成部分工作的产品。逐步增加产品功5.程序员的知识

能,可以使用户有较充裕的时间学习和适6.软件可移植性要求

应新产品,从而减少一个全新的软件可能7.软件的应用领域

给客户组织带来的冲击。 2.良好的编程风格包括哪些方面

螺旋模型:对可选方案和约束条件的强调1.程序内部的文档2.数据说明 3.语句构

有利于已有软件的重用,也有助于把软件造4.输入输出 5.效率

质量作为软件开发的一个重要目标。减少3软件测试的目标

了过多的测试或测试不足带来的风险。更目的:(1)测试是为了发现程序中的错误

重要的是在螺旋模型中维护只是模型的而执行程序的过程;

另一个周期,在维护和开发之间并没有本(2)好的测试方案是极可能发现迄今为

质区别。风险驱动的。 止尚未发现的错误的测试方案;

(3)成功的测试是发现了至今为止尚未

第二章 发现的错误的测试。

1.可行性研究的目的 定义:为了发现程序中的错误而执行程序

就是用最小的代价在尽可能短的时间内的过程。

确定问题是否能够解决。 补充:

补充: 软件测试步骤 :

可行性研究的步骤 :(1)模块测试(2)子系统测试(3)系统

1.复查系统规模和目标。测试(4)验收测试(5)平行运行

2.研究现有的系统。4.确定测试计划是在哪个阶段制定的

3.导出新系统高层逻辑模型。5.黑盒测试和白盒测试的概念

4.进一步定义问题黑盒测试

5.导出和评价供选择的解法。1把程序看作一个黑盒子,完全不考虑程

6.推荐行动方针序的内部结构和处理过程

7.草拟开发计划2对程序接口进行测试,检查程序功能是

8.书写文档提交审查 否能按规格说明书的规定正常使用;

程序是否能适当地接受输入数据并产生

2.系统流程图的作用 正确的输出信息;

系统流程图是描绘物理系统的传统工具,程序运行过程中能否保持外部信息的完

它用图形符号来表示系统中的各个部件。整性

它表达了系统中各个元素之间的信息流白盒测试

动的情况。 1把程序堪称装在一个透明的白盒子里,

3.数据流图的概念 测试者完全知道程序的结构处理算法

数据流图是一种图形化技术,它描绘信息2按照程序内部的逻辑测试程序,检测程

流和数据从移动到输出的过程中所经受序中的主要执行通路是否都能按

的变换。 预定要求正确工作

4.数据流图里面的符号,画数据流图。6.测试的步骤及每个步骤形成的文档

5.数据字典最基本的功能,以及与数据流单元测试:(模块测试)发现的往往是编

图的关系。 码和详细设计的错误

最基本的功能:在软件分析和设计的过程集成测试:着重测试模块的接口 中给人提供关于数据的描述信息。

关系:数据流图和数据字典共同构成系统系统测试:发现的往往是软件设计中的错的逻辑模型,没有数据字典,数据流图就误,也可能发现需要说明中的错误 不严格,然而没有数据流图,数据字典也验收测试:(确认测试)往往发现需求说难于发挥作用。只有数据流图和对数据流明书中的错误 图中每个元素的精确定义放在一起,才能7.渐增式和非渐增式的区别 共同构成系统的规格说明。 “非渐增式”,即先独立地测试每一模块,第三章 然后将所有这些模块连接到一起运行; 1.需求分析属于哪一个阶段,任务是什“渐增式”,即在已测试过的N个模块的么。 基础上再增加一个模块,再对N十1个模需求分析是软件定义时期的最后一个阶块进行测试。 段.渐增式比非渐增式优越,因为用渐增式,1.确定对系统的综合要求(功能需求,性如果是“由顶向下”则可利用前面已测试能需求,可靠性和可用性需求,出错处理过的模块,而不必另外准备驱动模块,如需求,接口需求,约束,逆向需求,将来果是“由底向上”,也可利用已测试过的可能提出的要求)模块,不必再准备桩模块。渐增式可以较2.分析系统的数据要求早地发现模块界面之间的错误,有利于排3.导出系统的逻辑模型 错,检查比较彻底 4.修正系统开发计划2.需求分析的产品是什么 8.自顶向下,自下而上,以及混合策略的3.面向过程的分析方法主要是建立三类优缺点 模型 自顶向下数据模型(按照用户的观点对数据建立的优点:能较早显示整个程序的轮廓,向用模型,把用户的数据要求清楚,准确地描户展示程序的概貌,取得用户的理解与支述出来。描述了从用户角度看到的数据,持。 缺点:当测试上层模块时因使用桩它反应了用户的现实环境,属性,联系),模块较多,很难模拟出真实模块的全部功功能模型,行为模型(通过描绘系统的状能,使部分测试内容被迫推迟,只能等待态及引起系统状态转换的事件来表示系换上真实模块后再补充测试。统的行为) 由底向上4.软件需求规格说明书的内容 优点:测试从下层模块开始,测试设计用通常用自然语言完整,准确,具体地描述例比较容易。 缺点:在测试的早期不能

第13篇:软件工程

软件工程

1.谈谈你对软件工具的理解,你用过什么软件工具

软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。它是为专门目的而开发的,在软件工程范围内也就是为实现软件生存期中的各种处理活动(包括管理、开发和维护)的自动化和半自动化面开发的程序系统。

开发软件工具的最终目的是为了提高软件生产率和改善软件的质量。

软件工具分为六类:模拟工具、开发工具、测试和评估工具、运行和维护工具、性能质量工具和程序设计支持工具。

应该是看对象来选择测试工具!比如:

功能测试工具:WinRunner

性能测试工具:LoadRunner

内存泄漏测试工具:Purify

单元测试工具:Junit

测试管理工具:TestDirector还有东软的bugbaseIBM开发的 rational。

2.什么是软件的可维护性:

软件可维护性即维护人员对该软件进行维护的难易程度,具体包括理解、改正、改动和改进该软件的难易程度。

决定可维护性的因素:

1.系统的大小

2.系统的年龄

3.结构合理性

可维护性的度量:

可理解性

可测试性

可修改性

可移植性

3.软件开发和写程序有什么不同?软件开发的内容是:需求、设计、编程和 测试 维护!

需求分析

软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。

设计

软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。

编码

软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的\"源程序清单\"。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。

测试

软件测试的目的是以较小的代价发现尽可能多的错误。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。黑盒法。

维护

维护是旨在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。

4.什么是软件设计的”高内聚 低耦合”

内聚:一个模块内各个元素彼此结合的紧密程度

耦合:一个软件结构内不同模块之间互连程度的度量

对于低耦合,(模块的独立性)

一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合.

对于高内聚:

在一个模块内,让每个元素之间都尽可能的紧密相连。也就是充分利用每一个元素的功能,各施所能,以最终实现某个功能。

5.case在软件工程中的作用

CASE(Computer Aided(or Aisted)Software Engineering计算机辅助软件工程。CASE的一个基本思想就是提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少劳动力的工具。CASE已被证明可以加快开发速度,提高应用软件生产率并保证应用软件的可靠品质。CASE工具由许多部分组成,一般我们按软件开发的不同阶段分为上层CASE和下层CASE产品。上层或前端CASE工具自动进行应用的计划、设计和分析,帮助用户定义需求,产生需求说明,并可完成与应用开发相关的所有计划工作。下层或后端CASE工具自动进行应用系统的编程、测试和维护工作。

除非下层CASE和上层CASE工具的供应商提供统一界面,否则用户必须编写或重新将所有信息从上层CASE工具转换到下层CASE工具。独立的CASE工具供应商愈来愈希望将它们的工具连接在一起建立统一的界面以减少用户不必要的开发工作。

CASE工具带来的好处

计算机专业人员利用计算机使他们的企业提高了效率,企业的各个部门通过使用计算机

提高了生产率和效率,增强了企业的竞争力并使之带来了更多的利润。

6.为什么要进行软件测试?常用的软件测试的方法有哪些?

软件测试的目的:尽可能发现并改正被测试软件中的错误,提高软件的可靠性。

软件测试方法主要包括单元测试,集成测试,系统测试,用户测试,回归测试。

还有就是自定而下,和自下而上的方法。

7.谈谈你对保证软件质量的技术和方法的认识? 1.作为一个软件质量保证人员需要良好的沟通能力,因为如果没有良好的沟通能力,很多问题都没有办法解决,原因很简单,测试人员发现了bug,开发人员或项目经理在怎么不理,但是他们都会想到,万一测试人员发现了bug而自己忽视了,那么就有可能成为软件里的一颗不定时地炸弹,那么作为一个开发人员或项目经理对bug的重视程度肯定相对比较高,至少要看测试人员发现的bug ,但是QA就不一定了,因为QA保证的流程的正确的执行,相关人员就是认为流程不重要,只要我开发的产品没有问题那就没有问题,客户肯定不会关注我的流程,在加上古人的名言“结果说明了一切”,所以没有良好的沟通能力,一些问题将很难去解决,做起来就没有成就感。

2.个人感觉比沟通能力更重要的是,坚持原则,在遇到困难的时候,是不是还能坚持原则,在遇到项目组的种种不理不睬的时候,是不是还能坚持原则,在项目组不按照计划走的时候,是不是还能坚持原则。

3.个人心态,我工作三年的经历告诉我,如果开发和测试相比,开发是天堂,测试是地狱的话,但如果测试和QA相比的话,那测试就是天堂,QA就是地狱,所以心态很重要,在三年里我就锻炼成一个非常好的心态,随便怎么说CMMI没用,随便怎么说CMMI就是写文档,随便怎么说QA真烦人,我笑容依然灿烂,从容面对,而且一个QA要有坚定的信念,如果你都不相信过程能给项目开发带来好处,那你还指望谁能相信。

8.提高软件生产率有哪些手段?

1.挑选精干人员 (管理 计划不好 技术搭配不当)

2.提高阶段效率 3消除人工阶段

4.减少重复劳动 5.建造简单产品

6.重用软部件库(已经存在的软件功能部件

9.什么是软件的可靠性和有用性

可靠性就是指软件运行的稳定性,可用性就是操作的便利性。比如一辆汽车,可靠性好应该归功于机械部分,可用性好则是内饰和中控系统的功劳。

10什么是软件规格说明?作用是什么?将其形式化的意义是什么?

11.什么是软件重用?实现软件重用的方法有哪些?

软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需要分析文档甚至领域知识。通常,可重用的元素也称作软构件,可重用的软构件越大,重用的粒度越大。

根据软件开发的不同阶段实现软件重用主要有四个途径:

抽象:对重用对象概括提炼, 从而得到能全面描述侧重算法和数据结构的软件构件的各部分的描述。

选择:是对重用对象进行存放,匹配和检索的功能。

实例化:对数据类型中对象进行参数的提供 转换。

集成:

12.什么是软件移植?你认为构造一个工具实现windows到Unix的移植有意义吗?难大不? 软件可移植性是指代码可以在不同平台间移植,我们一般说的软件的可移植性指的是软件可移植性,简单的说就是指源代码移到不同的平台下(不同的操作系统,例如从Windows

下移到Linux下)时,需要修改的内容越少,移植性越好。要保证软件可移植性,就是少用或不用系统特有的东西,比如你用C语言编程,你可以使用C语言本身的库,但不要用

WindowsAPI函数,因为WindowsAPI函数在Linux下是没有的,如果想移植到Linux平台下,使用WindowsAPI函数的部分代码就要做出修改了。

第14篇:软件工程

球经济一体化进程加速,虽然金融危机爆发,但中国市场对于外企来说显示是个比较好的避风港。而伴随着外企的进入和市场竞争的加剧势必将进一步带动国内软件市场的繁荣。随着外企的进入,缺乏软件系统理念指导的传统企业将面临严峻的挑战。他们弥补缺陷的唯一出路就是引进人才,实现自我改造,向管理要效益也成了目前国内许多大中型企业的共识。现在中国政府正在大力支持中国软件行业的发展,经过了系统化体系培训的软件人才更容易走向国际化,也更受国内大中型规模软件公司的欢迎(2009软件工程师的待遇城市之间差异比较大,一级城市初-高级软件工程师的待遇在4000-9000之间;内地其他省会城市一般在2000-6000之间。国外软件工程师绝对不是青春饭,但在中国情况不一样。如果一直走技术路线而且一直在国内民营企业做,那么基本上就是青春饭了。如果能够从技术转管理或者转咨询那就当然不是了,尤其是在跨国公司有过项目管理经验的话还是很吃香的。

目前我国的软件行业规模不是很大,有些软件企业在软件制作上,也只是采用了一些软件工程的思想,距离大规模的工业化大生产比较还是有一定的差距;原因有管理体制的问题,市场问题,政策问题,也有软件工程理论不全面和不完善的问题。所以软件工程的研究和应用,以及我国软件行业的进一步发展,都需要一定的既有软件工程的理论基础和研究能力,又有一定的实践经验的软件工程科学技术人员来推动。

软件工程人才的就业前景十分看好。未来几年,国内外高层次软件人才将供不应求。毕业生主要在各大软件公司、企事业单位、高等院校、各大研究所、国防等重要部门从事软件设计、开发、应用与研究工作。有数据表明,我国软件出口规模达到215亿元,软件从业人员达到72万人,在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景十分乐观。

信息化是IT界的焦点。而信息化的实现,除了需要技术支持,人才也是很重要的环节。如何培养与国际接轨的高素质软件工程人才,已经成为中国软件产业的当务之急。

软件产业的发展水平,决定了一个国家的信息产业发展水平及其在国际市场上的综合竞争力。目前,我国软件高级人才的短缺已经成为制约我国软件产业快速发展的一个瓶颈。在中国,国内市场对软件人才的需求每年高达80万人,而院校毕业生中的软件工程人才还很缺乏,尤其是高素质的软件工程人才的极度短缺。尽快培养起适合信息产业所需要的高素质软件工程人才,已经成为信息化工作中的重中之重。

第15篇:软件工程

软件工程—心得体会

摘要

本文结合基层实践教学的实际情况和现实需要,系统地总结了《软件工程》实践教学的特征,详细分析了实践教学过程存在的问题,并提出了该课程实践教学改革的新格式。

关键字:软件工程,教学素质,软件开发,实践,实验

正文

通过这学期的“软件工程”这门课,我拓宽了知识面,锻炼了能力,综合素质得到较大的提高。我觉得在大四安排这门课的学习,其主要目的,在于在课堂中学到的理论知识与实际的结合,尤其是观察、分析、解决问题的实际工作能力。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在1968年第一次提出了软件工程的概念,至今软件工程已经走过了30多年的历程。在不断发展的过程中,人类越来越加注重在软件的开发中应该按工程化的方法进行开发,并注重进行软件项目工程的管理。在现代社会中,软件应用于多个方面,典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等,这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

中国的软件行业规模不是很大,有些软件公司在软件制作上,也只是采用了一些软件工程的思想,与大规模的工业化大生产比较还是有一定的差距,原因有管理体制的问题,市场问题,政策问题,也有软件工程理论不全面和不完善的问题。所以软件工程的研究和应用,以及中国软件行业的进一步发展,都需要一定的既有软件工程的理论基础和研究能力,又有一定的实践经验的软件工程技术人员来推动。软件工程的前途是光明的。软件服务外包属于智力人才密集型现代服务业。大量著名外包企业落户宁波。主要就业去向包括软件外包与服务企业、信息产品与服务企业,担任程序员、软件测试员、项目经理等工作岗位

软件工程是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策。本专业培养掌握计算机软件基本理论知识,熟悉软件开发和管理技术、能够在计算机软件领域中从事软件设计、开发和管理的高级人才。软件工程的七条原理:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采纳现代程序设计技术、结果应能清楚地审查、开发小组的人员应少而精、承认不断改进软件工程实践的必要性。根据这几条原理,不仅要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错类型和问题报告统计。这些数据既可以用来评估新的 软件技术的效果,也可以用来指明必须着重注意的问题和应该优先进行研究的工具和技术。

第16篇:软件工程

一、名词解释

软件: 指计算机系统中的程序及其文档。

支持软件:支持软件的开发和维护的软件。

系统软件:属于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥作用,它与具体的应用领域无关。

软件工程:是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程。

软件过程模型:是软件开发全部过程、活动和任务的结构框架,也称软件开发模型或软件生存周期模型。

技术可行性:主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现。

需求管理:是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动。信息流:表示了数据和控制在系统中流动时的变化方式,输入对象被变换为中间信息(数据和/或控制),然后进一步被变换为输出。

软件项目管理:是指软件生存周期中软件管理者所进行的一系列活动,其目的是在一定的时间和预设范围内,有效地利用人力、资源、技术和工具,使软件系统或软件产品按原定计划和质量要求如期完成 。

软件度量:是指计算机软件范围内的测量,主要是为产品开发的软件过程和产品本身定义相关的测量方法和标度。

面向对象的多态性:是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。(也就是说,相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。 )

动态绑定:是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来 数据耦合:两个模块之间仅通过参数表传递简单数据,则称为数据耦合。

功能内聚 :指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割的。

二、简答

1.、克服软件危机的途径:

 消除错误的概念和做法

 推广使用成功的开发技术和方法

 使用软件工具和软件工程支持环境

 加强软件管理

2、计算机系统工程的任务:

 确定待开发软件的总体要求和范围,以及它与其它计算机系统元素之间的关系

 进行成本估算,做出进度安排

 进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。

3、软件过程三层含义:

① 个体含义,即指软件产品或系统在生存周期中的某一类活动的集合,如软件开发过

程,软件管理过程等;

② 整体含义,即指软件产品或系统在所有上述含义下的软件过程的总体;

③ 工程含义,即指解决软件过程的工程,它应用软件工程的原则、方法来构造软件过

程模型,并结合软件产品的具体要求进行实例化,以及在用户环境下的运作,以此进一步提高软件生产率,降低成本。

4、创建用况模型的步骤包括:

1) 定义系统

2) 确定执行者

3) 确定用况

4) 描述用况

5) 定义用况间的关系,

6) 确认模型

5、需求分析原则

① 必须能够表示和理解问题的信息域

② 必须能够定义软件将完成的功能

③ 必须能够表示软件的行为(作为外部事件的结果)

④ 必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

⑤ 分析过程应该从要素信息移向细节信息

6、需求验证目的是要检验需求是否能够反映用户的意愿

评审人员评审时往往需要检查以下内容:

① 系统定义的目标是否与用户的要求一致;

② 系统需求分析阶段提供的文档资料是否齐全;文档中的描述是否完整、清晰、准确

地反映了用户要求;

③ 被开发项目的数据流与数据结构是否确定且充足;

④ 主要功能是否已包括在规定的软件范围之内,是否都已充分说明;

⑤ 设计的约束条件或限制条件是否符合实际;

⑥ 开发的技术风险是什么;

⑦ 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。

三、选择填空

软件分类:系统软件、支持软件和应用软件。

软件按工作方式划分:实时处理软件、分时软件、交互式软件、批处理软件。

软件按服务对象的范围划分:项目软件和产品软件 。

软件按使用的频度进行划分: 一次使用和频繁使用。

软件按失效的影响进行划分:高可靠性软件、一般可靠性软件

典型的软件过程模型有:瀑布模型、演化模型、增量模型、原型模型、螺旋模型、喷泉模型、基于构件的开发模型、形式方法模型。

技术可行性分析通常包括:风险分析、资源分析和技术分析。

软件需求工程细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理六个阶段。

需求跟踪两种方式:正向跟踪、逆向跟踪。

正向跟踪:以用户需求为切入点,检查《需求规约》中的每个需求是否都能在后继工作产品中找到对应点。

逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在《需求规约》中找到出处。 软件设计:把软件需求变换成软件表示的过程。

软件设计的两个阶段:软件体系结构设计阶段和部件级设计 。

测试用例的设计方法大体可分为两类:白盒测试和黑盒测试,也称白箱测试和黑箱测试 一种测试策略就是将测试分为单元测试、集成测试、确认测试和系统测试。

测试类型:静态测试和动态测试。

软件的特点

 软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算  软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大

 软件的使用没有硬件那样的机械磨损和老化问题

为了使程序能在不同的计算机上运行:

1)要使程序具有较好的可移植性。

2)对程序段的设计具有功能性。

3)变量名的使用对提高编程效率没有影响。

可维护性关键在于:选择好的程序设计风格。

软件开发生命周期中的编程阶段任务:得到好的源程序代码。 软件特点:抽象性、复杂性、开发成本高。

第17篇:学生公寓生活服务系统软件工程研究论文

摘要:随着高校信息化的飞速发展,数字化校园建设不断推进,高校的学生群体备受关注,而高校学生的公寓生活管理并没有完全得到数字化的有力支持,因此本研究将结合软件工程相关技术分析搭建一套完整的学生公寓生活服务系统的主要环节。在实际的功能上,完全按照学生的具体需求,提供在线申请及信息查询操作,给学生提供了生活琐事的解决途径,意见实时反馈,信息实时传输,这在校园数字化建设上具有重大意义。

关键词:软件工程;系统设计流程;生活服务系统

1引言

软件工程是将规范的、系统化的、可度量的方法应用于软件开发、运行和维护的过程[1]。在软件工程方面,大量学者对其进行了深入研究。随着各大高校的网络信息技术的迅速发展,数字化校园建设不断推进,致力于打造智慧校园[2]。在智慧校园建设过程中,高校的核心管理信息系统越来越完善,但学生活动方式和内容不断地被复杂化、具体化,存在大量信息处理需求,却没有得到完善的一体化系统的支持。因此,设计一个符合高校自身特点的学生公寓生活服务系统重要且迫切,这为校园生活服务奠定了基础,提升了标准化、高效率的管理[3],并促进了智慧校园的发展。通过对软件工程的研究,在信息发展的大环境下铺开的一个落于细节的项目,结合当前的信息化在校园中的发展趋势,迎合目前公寓管理的数字化建设目标,将着力解决学生在公寓生活中的具体问题,以信息化带动生活为主旨,以为学生的实际生活带来便利为目标,分析搭建一套完整的学生公寓生活服务系统的相关环节。

2需求分析

在需求分析过程中,使用统一建模语言(UnifiedModelingLanguage,UML)进行形象化描述。在对系统需求描述时,需要考虑全面,对其功能、性能、用例、运行环境、约束条件、可行性等都要进行有效性分析。根据对软件工程的研究,学生公寓生活服务系统的体系结构设计模式采用浏览器/服务器(B/S)模式,用户通过角色身份登录。该系统包含管理员、学生及工人等三大角色和七大板块十三大功能,用户可通过此服务系统快速解决生活中的设备故障、海报张贴、连廊使用、早出晚归等复杂性申请问题,同时给学生提供失物招领、意见反馈的渠道,为学校后勤公寓中心与各在校学生之间搭建了桥梁。另一方面,系统充分考虑了社会、团队及技术等实现的可行性,在系统性能上考虑了系统效率、处理方式、适应性、可靠性及安全性等各个方面,使系统具备实时性强、响应速度快、稳定性高等优点。

3系统设计

在系统设计方面,系统原型是需求交流中最好的表达方式,非常便于客户及参与项目开发者等人员对系统框架及功能点的认识与理解。在高校学生公寓生活服务系统中,重点对系统的后台功能进行了原型设计。当前系统的原型设计使用Axure软件,界面设计使用PhotoShop软件;系统前端使用DreamWeaver,技术采用HTML5+CSS3、BootStrap等;系统后端使用VisualStudio2012作为开发工具,技术采用C#、ASP.NET等,XML作为后台数据存储介质;系统数据库使用SQLServer2008[4]。在原型设计、UI设计、Web前端设计的基础上,进一步进行数据库设计和详细设计。数据库设计中具体需要设计实体-联系图、对实体间的关系进行分析,根据分析结果,创建数据表。数据表创建成功后,就可以利用现有的相关框架或者是自定义结构进行功能研发。

4系统测试

软件测试是通过执行软件来判断软件是否具备所期望的性质,是可信软件开发中一个行之有效的、必不可少的、客观地评估软件可信性的方法[5]。对于软件测试的管理,不同的公司都根据各自的经验采取不同的流程进行管理。本研究系统在需求分析和界面设计阶段主要采用静态测试,在前端页面设计阶段主要采用的是白盒测试,而在系统功能开发阶段主要采用的是黑盒测试。系统测试贯穿整个软件开发生命周期,在本研究过程中,对界面、前端和数据库等内容都进行了测试。通过测试,尽快尽早地发现了该学生公寓生活服务系统所存在的各种缺陷,通过对该服务系统进行不断验证和确认,最终完成了一个实用型的高校学生公寓生活服务系统。

5结语

软件工程是研究系统设计的主要方法工具,通过结合软件工程相关技术,对学生公寓生活服务系统进行合理研究,该系统用于提高学生生活质量并将学生生活中的各项繁琐事务网络化、信息化。在研究过程中,软件工程中分析、设计和测试技术目前仍是在工程上保障软件高可信性的主要手段[5],在本文软件工程研究中,也是以高校学生公寓生活服务系统为例对此研究过程进行实例化分析。通过每个阶段的具体分析,不仅梳理了用户需求、系统设计及系统测试等环节,同时还提高了系统本身的研发效率,节约了研发成本,对自身今后学习软件工程也奠定了基础。

参考文献:

[1]张健,曾广周,and杨鹏,\"面向Agent软件工程研究现状与展望,\"计算机工程与应用,vol.42,pp.30-33,2006.

[2]王燕,高新城,卢清,and王雷,\"校园移动信息化平台研究,\"吉林师范大学学报(自然科学版),vol.34,pp.145-147,2013.

[3]W.Wang,L.Bai,andL.Zhu,\"StudentApartmentManagementSystemDesignandImplementationBasedonASP,\"AppliedMechanics&Materials,vol.687-691,pp.2234-2238,2014.

[4]刘静,\"高校学生公寓管理系统设计与开发,\"西北农林科技大学,2010.

[5]陈火旺,王戟,and董威,\"高可信软件工程技术,\"电子学报,vol.31,pp.1933-1938,2004.

第18篇:软件工程情景Seminar教学法研究论文

[摘要]为培养软件工程实用人才,提高软件工程课程授课效果,可以将传统理论讲授方式和情景Seminar教学方式相结合的形式用于软件工程课程教学中。其中,情景Seminar教学方式是结合软件工程课程特点提出的,包括分组研讨、主题报告、答辩评审三个内容。情景Seminar教学方法的应用,能有效地提高学生的阅读能力、表达能力,培养学生的独立思考、探索问题和解决问题的能力,增强学生的团队协作意识。

[关键词]软件工程;Seminar教学法;情景教学

一、引言

软件工程是计算机专业的一门必修课,也是一门内容涉及面广的综合性课程,课程理论性强、内容抽象、晦涩难懂,学生学习兴趣不高,难以掌握。课程内容主要包括软件产品开发的理论、方法、过程、工具及一些实践积累的原则、经验等,不仅涉及计算机科学的相关知识,还融合数学、管理科学、社会学等多学科的知识,具有内容丰富、关系复杂、理论性和实践性强的特点。[1]传统教学模式根据赫尔巴特的五段教学法,将教学过程划分为五个环节:组织教学、复习提问、讲授知识、巩固知识、布置作业。如采用传统讲授的教学方式,学生只能被动学习,很难体会到软件工程的工程化理念。同时,软件开发过程中,在进度、质量和成本的制约下,软件开发活动需要团队协作完成。传统的教学方式不能让学生体会到团队沟通协调的重要性,难以培养学生的团队意识。本文将传统教学方法与Seminar教学法相结合,根据软件工程课程特点,提出了情景Seminar教学法,它能有效地调动学生的学习积极性,提高学生的自主学习能力,培养学生的创新能力和团队协作精神。

二、Seminar教学法

Seminar可译作讨论会、研讨会,是在欧美大学课堂中流行的一种教学或学术交流方式。Seminar研讨式教学方法起源于德国洪堡大学,其让学生认领学习研讨任务,课前查阅相关文献资料,总结、提炼撰写报告,充分调动学生的积极性,激励学生主动参与,与教师共同就研究问题进行多角度、多方位、多层次的讨论,从而加强对该问题的深入认识,提高学生深入学习、自主学习的能力。Seminar研讨式教学的核心是充分挖掘课程参与者的学习探索潜能,最大限度地进行多角度、多层次的认识互动,从而深化对某一主题的认识,实现学术交流的最佳效果,真正达到“学有所获、教学相长,日学日进”的教育目的。[2]-[4]Seminar教学法倡导在生长中获得个性品质和创新能力的发展,倡导在探究过程中理解知识和获取经验,以期获得课程教学的真正价值。[5]

三、Seminar教学法在软件工程教学中的应用

将软件工程课程中的教学方法总体分为两个部分:一是传统的教师讲授部分,一是Seminar研讨式教学。前者针对软件工程课程的授课内容,包含软件工程基础知识、需求分析、概要设计、详细设计、编码、测试和运维等理论知识。采用教师讲授、学生听课学习的方式,通过传统教学模式将软件工程的基本理论知识传授给学生。Seminar研讨式教学模式则可以充分调动学生的学习主动性,将任务下发给学生们,让学生自己选择认领任务,课外通过上网、借阅查看各种任务相关阅读文献,探索问题解决方案,分析汇总形成课题报告,课堂上通过报告的讲解,开展与教师、学生间的深入讨论,从而内化传统课堂的授课知识,使学生真正地理解、掌握知识的内涵,学会知识的灵活运用。

(一)情景Seminar教学法

软件工程课程中情景Seminar教学法的组织形式如图1所示,根据课程需求将授课内容分为五个模块(软件工程基础知识模块、需求分析模块、软件概要设计模块、软件详细设计模块、编码和测试模块),每个模块都由传统授课方式+情景Seminar研讨方式组成,其中传统授课方式教授该模块理论知识,知识主要是单向流动的,由教师讲授,学生接受知识;情景Seminar研讨方式实现知识的双向流动,学生与学生之间交流,学生与教师之间交流,学生与教师之间是平等的研讨地位,更能激发学生研讨的热情,深化对知识的理解和领悟。情景Seminar研讨方式包含三个环节:基于模块理论知识以及本模块需完成的阶段报告进行分组研讨,模块报告负责人撰写并讲解报告,答辩评审报告。图1中每个模块都是独立应用传统教学法+情景Seminar教学法的个体,五个模块之间同时又具有前后依赖,相互衔接的关系。

(二)软件工程教学中情景Seminar教学法的应用

在课程的首次授课中,讲授软件工程课程的地位及意义,同时让学生明确本课程将要采取的完整的授课形式:传统讲授形式+情景Seminar研讨式。情景Seminar教学法在软件工程教学中的实施步骤如下。

1.确定分组

根据软件工程课程的具体教学内容,将学生分组,每组学生由5人组成(1名组长,4名组员)。每组学生在软件工程课程整个课程的学习中,可以从教师给出的课题库中选取课题题目,也可以根据兴趣爱好自定课题题目,由于每组课题要模拟软件在生命周期中的各阶段(省略编码阶段,测试阶段只进行基于需求的测试),故课题可称为模拟项目。

2.课题认领,任务分工

每组组内学生都有选择课题的权利,最终的课题需通过组内学生商议、讨论,达成一致意见,共同确定课题题目。组长有协同分工、平衡组员工作的责任。课题经小组成员一致认领后,组长要将课题的子任务分配给组员。每个模拟项目有5个子任务,分别需撰写项目策划方案、需求分析报告、软件概要设计报告、软件详细设计报告和软件测试计划。组长必须认领课题的项目策划方案,剩余的四个报告可由组员根据自己的专长、兴趣分别认领,报告的最终分配由组长协调完成。上交选定课题题目及各阶段报告撰写人名单,如无特殊情况,整个课程实施过程中,分配给各组员的任务不得改变。

3.穿插授课

虽然课程中采用两种教学模式,但这两种教学模式不是孤立进行的。根据软件工程具体的课程标准和教学实施计划,传统讲授形式和情景Seminar研讨方式是结合进行的,是相互影响、互为依赖的关系。软件工程知识按内容划分成几个模块,每个模块都以传统讲授形式和情景Seminar研讨方式独立进行。通过传递讲授形式将理论知识系统的传授给学生,学生通过自主学习,课下查阅资料,将知识逐渐内化吸收,通过课堂的情景Semi-nar研讨方式使学生与学生之间、学生与教师之间能更公平、轻松地沟通交流,深化了对知识的理解。

4.小组研讨

小组成员选择课题题目时,需要组员共同讨论、研究确定最终模拟项目的内容。并且,在组长的协调下,组员认领选定模拟项目下的任务报告。小组内每个组员的任务报告,都需要小组分工合作,查阅资料,研讨、质疑、确定方案,这个过程锻炼了学生协同合作的能力,在研讨中主动探索问题、解决问题的能力。

5.撰写报告

组内成员根据自己认领的任务,经过组内研讨确定最终方案,独立撰写个人的任务报告。这个过程锻炼了学生阅读文献能力、文字组织能力和写作能力,同时也为其以后毕业设计论文的撰写奠定了基础。

6.走上讲台

为了增强学生表达能力,应该鼓励学生走上讲台,大胆、清晰地表述自己的方案设计,每个组的组员都有机会把自己负责的任务报告通过讲授的形式,让其他学生与教师对自己的报告有一定的了解。

7.答辩环节

答辩环节是评审报告的关键环节,学生登台讲解自己的报告时,其他组成员和教师为评审组成员,可针对学生的报告,提出自己的质疑,不合理、不正确、有歧义的地方都应该被指出。答辩环节不仅是对主讲报告的学生表达能力的锻炼,对报告内容的审查,更能激发其他组员学习的兴趣,使其主动找出主讲学生的报告中的问题,深入对问题的理解及相关知识的内化。

四、结束语

情景Seminar教学法是一种结合软件工程课程特色的Seminar教学法,将Seminar教学法有效地融入软件工程课程的不同模块中,与传统讲授方式相结合,同时又不限于研讨,增加了软件工程的阶段情景特色,锻炼了学生的自主学习能力和创新能力,增强了学生的团队合作意识。真正做到师生的互动交流,通过良好的双向沟通以最终达到教学相长的目的,取得了较好的教学效果,值得进一步推广应用。

[参考文献]

[1]孟繁锋.结合模拟项目组的软件工程教学[J].计算机教育,2014(22):54-56

[2]佟玉军等.软件工程专业教学改革研究[J].计算机工程与科学,2011(33):49-54.

[3]陈荣群等.教育信息化环境下Seminar教学方法得应用研究[J].中国电化教育,2014(325):114-118.

[4]周美林等.近三年我国Seminar教学研究文献综述[J].教育与教学研究,2013(11):12-15.

[5]张跃忠.论Seminar教学范式的现代价值[J].教育与现代化,2006(2):24-29.

第19篇:软件工程对银行储蓄的作用的论文

0引言

一个优秀的系统软件最重要的是软件需求的获取,并且需求不能单一地从一群客户中获取。应从软件涉及的所有人员中得到软件需求。

对于银行储蓄系统来讲大致分为用户、银行系统操作人员和系统维护人员、系统管理人员等。从这些人群中分别获取对设计系统有用的相关信息。获取需求只是软件开发的第一步,下面对需求进行详细的分析。

1银行储蓄系统内部功能分析

从上述的涉众中可以分析得到,对于该软件的功能应该分为对于用户、后台管理人员等功能。与传统银行储蓄相同,新型银行储蓄软件也有基本的增、删、改的功能,具体为:新建账户、修改、查询账户、更新账户信息等。当然一个完整的储蓄软件必须链接几个大型的数据库。整个软件分为几个模块进行。

1)新建账户:通过键盘输入新账户所有信息,将身份证号作为主码,将该账户添加到储存账户信息的库中,利用数据库自动增加功能automatic。由于身份证号唯一,所以即使其他信息全部一致也可以避免出现相同的两个账户。

2)存储和读取账户信息:由于账户是银行客户,所以用户个人信息必须非常完善,账户个人信息至少应包括姓名、身份证号、密码、币种、金额、利率、日期、有效家庭地址、联系方式等。将所有账户信息永久地保存在数据库或者是库文件中,形成一个环境,一旦系统开始运行,所有账户信息全部加载到内存中,以方便读取使用。

所有的账户在软件中实行的一切操作都必须由前台银行服务人员进行账户登入,账号为身份证号也就是主键,密码为客户在账户创建时的密码。在登入过后即可进行存取款的功能。当然软件所有的实现都需要银行工作人员操作。

3)存取款功能:在登入账户过后,即可对账户进行修改,按照客户实际存入的金额和利率对账户进行修改,并且自动生成存取日期,以及对剩余金额进行统计。客户也可修改自己个人信息,账户内的一切个人信息都可以根据用户自己来修改,然后保存入库。

4)查询功能:查询功能主要是按照账户查询,进入查询由于不对数据进行更新操作,所以不需要进行登入操作,只需要提供账户信息中的主键即可对账户信息进行查询,这样即保护了账户的安全,又可以让用户简单了解到自己的账户信息。

5)删除功能:删除功能就是对指定的某一个账户进行删除,并且释放数据库内存,对长期不使用的账户,如(账户不使用达到6年)进行删除,减少数据库内存的使用。

上面所述,为该软件内部功能即软件必须实现的技术操作。一个优秀的软件也应当保证其性能需求。

2银行储蓄系统性能需求

银行不断地与数据打交道,在银行软件中首先需要的是数据精确度,可将金额等数据设置为double型的双精度,减少在高数目存储时出现错误。再者,如身份证号等长数据应该采用字符型char数据类型,减少数据冲突。

金融这个高效率的行业,充分体现“时间就是金钱”这句话。在大量数据信息更新交换的时候应该减少程序相应的时间,在程序调用前调用后必须保证与数据库保持同步更新。每个程序模块在完成所有功能的前提下,择优选择时间复杂度小的算法设计,提高程序运行效率。

在尽量满足上述两类性能的前提下,空间性能也是值得关注的。庞大的数据和客户信息占据了很大的内存容量,所以应减少空间复杂度,利用数据结构中链表等功能对数据进行线性储存,减少空间复杂度。时间复杂度和空间复杂度是一个软件性能好坏的主要体现。

3软件应用需求

软件的开发最终目的是为了应用于生活,银行储蓄就是为了应用于银行工作。既然需要用于工作就必须将界面人性化,不求绚丽,但至少看起舒服。用C#、MFC等都可以用于设计图形窗口,使应用程序不再是命令化窗口。该产品的接口问题包括软件接口、硬件接口等。硬件接口的条件也就是门槛低,使一般的电脑都可以运行该软件。此外,软件接口,windows标准化接口,要求与其他软件完全没有冲突,符合上述三个环境要求。界面图形化、软件接口、硬件接口等一个新型软件就能在市场上有销售市场。

4基于软件的银行储蓄系统的优点

一个软件的开发最重要的是对用户、操作人员大脑和手等器官的解放,基于软件工程的银行储蓄系统操作简单,联通各大银行以及互联网,用户在家就能对自己的银行账户进行相应的修改,在任何一家银行的分行一可以对账户进行修改。总体来说简单、高效、方便就是基于软件工程的银行储蓄系统的优点。

5结语

快捷、高效的银行储蓄系统对现代化银行金融业的发展有显著的推进作用,并且银行储蓄计算机系统技术在目前IT界是一个成熟的系统。为了使银行公司适应现代化高场竞争的需求,促进银行管理信息化,不断满足储户的要求,争取银行更高的利益,银行储蓄软件化是银行业发展的一个基本趋势。

第20篇:软件工程合理设计与实际应用研究论文

1软件工程的合理设计分析

1.1软件工程的不合理设计分析

1.1.1客户的不合理要求造成软件开发的不合理性由于软件工程的客户要求不合理,因此造成软件开发的不合理性。由于客户自软件工程的开发缺少一定的了解和认识,因此客户的而要求一向十分的简单,且更加偏重于实用价值。客户的要求虽然简单易懂,但是在对软件工程的设计上造成一定程度的困难。提出一些不以软件设计的技术基础和原理为基础的要求,造成软件的设计开发上的困难,使其实现起来十分不易。因为在软件的开发上,技术人员需要的是一些十分具体、详细的需求,并非是宽泛意义上的需求。由于骨科的不合理要求,造成了软件开发上的不合理现象。

1.1.2软件工程中的烂尾现象一些软件的设计人员以利润为主要目标,忽视了软件开发的兼善尽美,造成了一些软件开发上的烂尾设计现象。软件工程中的烂尾设计一般表现为:软件的理念和设计方法上都是十分正确的,但是将软件在实际的应用中,出现了一些功能无法实现的现象,这种现象的出现就是软件工程中的烂尾设计。

1.2软件工程的合理设计分析

1.2.1软件的合理设计要以合理、具体的需求分析为前提软件工程的合理设计一定要首先对顾客的需求作分析,要根据顾客的需求进行设计的具体化安排。顾客过于广泛的需求是无法应用到设计中来的,因此在某些方面不能一味地迎合客户的需求。一味地迎合顾客,软件的设计上会产生不合理现象,反而对顾客的满意程度造成影响。

2.2.2软件设计的合理性要以硬件作为发挥的基础平台软件需要硬件的支持,才能在今后的实际应用中起到更好的作用。没有硬件的支撑,再好的软件也无法得以实践和应用。因此,软件在设计的过程中,一定要以硬件作参考,考虑软件与硬件的匹配度,才能保证软件在使用上与硬件相匹配。

2软件工程在实际中的应用

2.1软件工程在互联网领域的实际应用

互联网领域在满足人们远程沟通的需要上起到了十分积极的作用。在互联网中,软件工程的实际应用是最多的,且需求仍然朝着不断上升的趋势发展。为了方便互联网的远程信息交互系统,软件开发工程使用高级语言等方面实现了技术的革新与开发,在互联网领域的前段性方面提供了保证。

2.2软件工程在工业领域的实际应用

软件工程应用最为突出的领域应该是在工业领域,软件工程为工业领域的发展中奠定了稳定的基础。譬如,工业中的自动化控制和智能控制、工业车间的流水线生产,这些都可以通过软件工程发送指令得以实现。软件工程在实际领域中一般需要借助硬件设施为平台支持。因此,在软件工程的设计之初,要对工业硬件进行最基础的了解,然后通过计算机软件技术实现智能化、自动化的生产车间,加快工业生产的同时,完善了生产车间的流水线。

3结语

随着软件使用上的逐渐广泛,对软件工程设计的合理性上的要求也越来越高。因此,软件设计人员要在软件设计的合理性方面进行思考。加强软件的合理性设计,保证软件在使用过程中可以充分发挥自身的应用效果。软件在不同的领域中提高使用效果的同时,软件工程也促进了该行业的协调发展。

《软件工程论文.doc》
软件工程论文
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

相关推荐

实施方案自查报告整改措施先进事迹材料应急预案工作计划调研报告调查报告工作汇报其他范文
下载全文