021014软件工程:面向21世纪
- 格式:pdf
- 大小:726.67 KB
- 文档页数:3
本科软件工程专业介绍
软件工程(Software Engineering)是一门普通高等学校本科专业,属计
算机类专业,基本修业年限为四年,授予工学学士学位。
该专业涉及程序设计语言、数据库、软件开发工具、系统平台、设计模式等方面,培养学生适应计算机应用学科的发展,特别是软件产业的发展,使其具备计算机软件的基础理论、基本知识和基本技能,具有用软件工程的思想、方法和技术来分析、设计和实现计算机软件系统的能力。
软件工程专业的培养目标是使学生掌握网站建设与维护技能,从事软件与信息服务相关技术及管理工作。
毕业生应具有良好的就业前景,能够胜任软件开发、软件设计、软件测试、Web前端开发以及软件技术支持等工作。
该专业以应用为主,课程设置与教学内容紧跟现代服务业的发展和时代步伐。
专业课程采用模块化设计,宽口径多模块,适应社会不同岗位的需要。
此外,该专业采用混合式教学模式,学历与非学历教育结合,学习方式灵活。
软件工程专业的课程设置包括主干课程如HTML5+CSS3技术基础、C程序设计、程序设计等,实践项目课程如软件测试案例、接口开发实训、前端网页实训等,以及主要实践性教学环节如数据库原理及应用课程设计、面向对象程序设计课程设计等。
就业方面,软件工程专业学生可从事软件开发、设计、测试和维护,软件外包服务、网络安全与管理、大数据挖掘与分析等相关工作。
主要面向岗位包括软件测试工程师、软件开发工程师、软件产品经理等职业或岗位。
以上是关于本科软件工程专业的介绍,如需获取更多信息,建议查阅相关高校官网或咨询相关专业人士。
1软件工程:面向21世纪关键词:软件工程软件工程(Software Engineering)的定义五花八门,比较公认的是美国电气与电子工程师协会(IEEE)给出的1:“(1)将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件(The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software);(2)在(1)所定义的过程中的方法研究(The study of approaches as in(1))”。
“软件工程”一词公认产生于1968年和1969年召开的带有标志性的NATO (North Atlantic Treaty Organization,北大西洋公约组织)科学委员会会议。
美国南加州大学的巴里·贝姆(B a r r y B o e h m )教授总结了国际上软件工程的发展历程2 : 20世纪50年代的类似硬件工程(Hardware Engineering)、60年代的软件手工生产(Software Crafting)、70年代的形式化方法和瀑布模型(Formality and Waterfall Processes)、80年代的软件生产率和可扩展性(Productivity and Scalability)、90年代的软件并发和顺序进程(Concurrent vs. Sequential Processes)和21世纪初的软件敏捷性和价值(Agility and Value)。
我国北京大学杨芙清院士也系统地回顾了起步于1980年的中国软件工程的研究与实践3。
《软件工程》课程教学大纲一、课程代码与名称(小四号宋体加粗)课程代码: CS132201中文名称: 软件工程英文名称: Software Engineering二、课程概述及与相关课程关系软件工程是计算机科学与技术专业的专业必修课, 是指导学生按照工程化、标准化和规范化的方法开发软件系统的一门课程。
通过本课程学习, 学生能够掌握现代软件设计与开发的基本原理、方法和技术;熟悉结构化和面向对象软件设计与开发的全过程;了解软件项目管理、软件维护等方面知识。
软件工程与前后课程间关联关系、课程群对应的局部鱼骨图分别如下所示:图例:应用方向软件工程课程群及对应课程群项目、学年项目(局部)图图例:三、课程教学对象与教学目的适用专业: 计算机科学与技术教学目的:通过理论教学和实践相结合, 使学生初步具备运用软件工程的概念、原理、技术和方法开发与维护软件的能力, 并提高学生编写相关技术文档的能力, 及分析问题和解决问题的能力和团队工作交流能力。
*注: 该表所列指标可对照培养方案中所列指标来解释。
A: 认知, 指从教、学活动中、从生活经验和社会经验等多种信息渠道获得知识, 侧重知识的获取, 没有实训要求。
B: 训练, 指教、学活动中由教师引导开展的基础测试或练习, 匹配有课程讨论、课后研讨等环节。
C: 实践, 指以学生为主导, 通过实练而形成的对完成某种任务所必须的活动方式, 匹配有课程的三级项目或其它实践环节。
D: 探索, 指学生独立探寻问题、摸索、解答的活动, 不设置专门的考核。
(留空表示无该项要求)四、课程内容、学时分配及主要的教学方法本课程对主要软件开发方法采用项目驱动教学模式, 结合实验和项目开发实践, 使课程的实践与理论教学内容紧密配合, 同步进行, 达到理论指导实践, 实践促进理论学习目的。
通过理论教学、实践(实验)、团队项目开发实践3环节将理论与实践紧密联系。
教学中采用问题引导方式推进学生基于问题的学习(problem based learning), 以为学生为中心鼓励学生参与课程讨论, 促进学生采用主动学习方法(active learning)。
《软件工程》课程教学大纲一、课程基本信息课程名称:软件工程英文名称:SoftwareEngineering课程编码:U223C课程类别:专业主干课总学时:48学时(含实验IO学时)总学分:3适用专业:计算机科学与技术/网络工程方向先修课程:高级语言程序设计,数据库设计原理,数据结构开课系部:计算机科学与技术系二、课程的性质和任务《软件工程》是计算机科学与技术专业本科生的一门专业主干课程。
它是一门指导计算机软件系统开发和维护的工程学科,也是计算机科学与技术领域的一个重要学科。
软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学,通过本课程的学习,使学生掌握软件工程的基本概念、基本原理、实用的开发方法和技术,了解软件工程各领域的发展动向;开发软件项目的工程化的方法及在开发过程中应遵循的流程、准则、标准和规范等。
使学生掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为今后从事软件开发和应用打下良好的基础。
通过本课程的学习,培养学生对软件开发能力和项目管理能力。
三、课程教学基本要求(一)理论教学内容和基本要求第1章软件工程概述了解软件工程的产生和发展、软件危机的原因,知道如何消除软件危机。
明白软件工程的基本概念,知道软件工程中包含的领域范围重点:软件危机的产生和消除方法第2章软件过程软件与软件生命周期任务,软件开发过程中的基本开发模型,软件开发工具与软件开发环境。
掌握软件生存期模型,软件开发模型方法介绍。
重点:软件与软件生存期,软件开发过程模型难点:软件开发过程模型第3章结构化分析掌握软件需求获取的方法、软件需求工程的任务、软件需求的原则、主要的需求分析方法;需求工程的基本活动、需求的有效性验证、需求变动管理、需求规格说明;建立结构化分析的三种模型;三种模型对应的描述方法:E-R图,数据流图,状态图。
掌握分层数据流图、数据词典和加工逻辑说明的基本构造方法。
重点:软件需求获取方法、结构化分析方法、分析建模方法难点:结构化分析建模方法第4章结构化设计理解软件结构化分析与结构化设计的映射关系,软件设计的基本原理。
软件工程专业介绍软件工程专业介绍软件工程是一门关于软件开发、维护和管理的学科,旨在培养学生具备开发高质量软件的能力和技术知识。
本文将对软件工程专业的基本信息、学习内容和就业前景进行介绍。
一、专业概述软件工程是计算机科学与技术学科中的一个重要分支,它涉及到软件的设计、开发、测试、部署、维护和管理等方面。
软件工程旨在培养学生的软件开发能力和软件设计思维,从而满足现代社会对高质量软件的需求。
二、学习内容1. 基础知识:软件工程专业的学生需要掌握计算机科学与技术的基础知识,包括数据结构、算法、数据库等。
这些知识是软件开发的基础,能够帮助学生解决实际问题。
2. 软件开发技术:学生需要学习各种软件开发技术,如面向对象编程、软件测试、需求分析等。
通过实际项目的实践,学生能够掌握开发高质量软件的方法和技巧。
3. 软件工程方法与工具:学生需要了解和应用各种软件工程方法与工具,如敏捷开发、迭代开发、版本控制工具等。
这些方法与工具有助于提高软件开发的效率和质量。
4. 项目管理:软件工程师不仅需要具备良好的开发技术,还需要具备良好的项目管理能力。
学生将学习项目管理的理论知识和实践技巧,如项目计划、团队合作和风险管理等。
三、就业前景目前,软件工程专业的就业前景非常广阔。
随着信息技术的快速发展,各行各业对软件工程师的需求不断增加。
毕业生可以选择在软件开发公司、互联网企业、金融机构等行业就业,也可以创业开发自己的软件产品。
软件工程专业毕业生的就业岗位多样化,包括软件工程师、系统架构师、软件测试工程师、项目经理等。
随着经验的积累,他们还可以晋升为技术总监、项目经理或者创业者。
软件工程专业的薪资待遇也相对较高。
根据行业调研数据显示,软件工程师的平均薪资在全国范围内属于较高水平,且随着工作经验的增加,薪资也会有相应的提升。
除了在国内就业,软件工程专业的毕业生还可以选择去国外就业。
许多国外知名软件公司对于软件工程专业的人才需求量大,薪资待遇相对较高,这为软件工程专业毕业生提供了更广阔的发展空间。
中北大学本科培养方案(2013 级使用)专业名称软件工程(电子设计与信息处理软件开发)专业代码 080902学院名称软件学院培养方案执笔人签字学科(术)带头人签字教学院长签字院长签字2013年4月软件工程专业(电子设计与信息处理软件开发)培养方案培养目标:本专业培养德、智、体等方面全面发展,掌握自然科学和人文社科基础知识,系统地掌握信息处理等方面的基本理论、基本知识和基本技能与方法,掌握有关信息处理软件应用、设计及开发方面知识的高素质软件工程人才。
培养要求:本专业学生主要学习自然科学和人文社科基础知识,学习计算科学、软件工程相关的基础理论和基本知识,接受软件工程的基本训练,具有软件开发实践的基本能力和初步经验、软件项目组织的基本能力以及基本的工程素养,具有初步的创新和船业意识、竞争意识和团队精神,具有良好的外语运用能力。
毕业生应获得以下几方面的知识和能力:1.掌握基本的人文和社会科学知识,具有良好的人文社会科学素养、职业道德和心理素质,社会责任感强;2.掌握本专业领域宽广的技术基础理论知识,适应电子和信息工程方面广泛的工作范围;3.掌握信息获取、处理的基本理论和应用的一般方法,具有设计、集成、应用及计算机模拟信息系统的基本能力;4.了解电子设备和信息系统的理论前沿和发展趋势,有较强的自主学习能力,具有开发新系统、新技术的初步能力;5.具有综合运用掌握的知识、方法和技术解决实际问题的能力,能够权衡和选择各种设计方案,使用适当的行业开发工具设计和开发软件系统,能够建立规范的系统文档;6.充分理解团队合作的重要性,具有个人工作和团队协作的能力、人际交往和沟通能力以及一定的组织管理能力;7.具有初步的外语应用能力、能阅读本专业的外文材料,具有一定的国际视野和跨文化交流、竞争与合作能力;8.了解软件工程学科的前沿技术和软件行业的发展动态,在基础研发、工程设计和实践等方面具有一定的创新意识和创新能力;主干学科:软件工程主要实践教学:程序设计实训、面向对象程序设计(JAVA)实训、数据结构与算法课程设计、数据库课程设计、操作系统课程设计、电子线路综合实践、信息处理综合实践、专业实习、毕业设计(论文)等。
国家开放大学电大本科《软件工程》2021-2022期末试题及答案(试卷号:1260)一、选择题(请从四个可选项中选择正确答案。
共60分,每小题3分)1.业务需求描述的是( )。
A.功能需求 B.用户需求C.用户的具体业务流程 D.软件的目标、规模和范围2.针对需求不确定的软件开发,比较好的模型是( )。
A.快速原型化模型 B.瀑布模型C.软件成熟度模型 D.系统化模型3.可行性分析研究的费用大约是项目总经费的( )。
A.2% B.6%C.20% D.5‰4.下面的哪个选项不是软件工程的宗旨( )。
A.开发满足用户需求的软件 B.研究算法C.及时交付软件 D.生产无故障软件5.一个数据流程图中的图形符号有且仅有( )种。
A.3 B.5C.4 D.76.源程序的效率与( )阶段确定的算法的效率直接有关。
A.概要设计 B.总体设计C.单元设计 D.详细设计7.可行性研究的主要任务是( )。
A.确定系统做什么 B.确定性能C.确定功能 D.进行一次简要的需求分析8.内容耦合是模块间最紧密的耦合,( )是模块间最松散的耦合。
A.数据耦合 B.非直接耦合C.控制耦合 D.外部耦合9.UML是一种( )语言。
A.高级编程 B.可视化建模C.分析方法 D.过程10.下面哪个选项不是软件工程研究的内容?( )A.生产无故障的软件 B.精通一门编程语言C.生产满足用户需求的软件 D.生产及时交付的软件11.对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。
在面向对象方法中,由( )实现。
A.顺序图 B.类图C.状态图 D.组件图12.如果对象之间的耦合是通过( )来实现的,则这种耦合就是交互耦合。
A.消息机制 B.参数C.方法 D.公共数据区13.定义类的属性类型时尽量使用已有类型,太多自定义类型会降低系统的( )指标。
A.有效性 B.安全性C.可维护性 D.开发效率14.在设计测试用例时,应该包括( )测试用例。
2021国家开放大学电大本科《软件工程》期末试题及答案(试卷号:1260)(最终五篇)第一篇:2021国家开放大学电大本科《软件工程》期末试题及答案(试卷号:1260)2021国家开放大学电大本科《软件工程》期末试题及答案(试卷号:1260)一、选择题,请从四个可选项中选择正确答案。
(60分,每题3分)1.可行性研究的主要任务是()。
A.确定系统做什么 B.确定性能 C.确定功能 D.进行一次简要的需求分析 2.下面的哪个选项不是软件工程的宗旨()。
A.开发满足用户需求的软件B.研究算法C.及时交付软件D.生产无故障软件 3.数据流程图的主要作用是()。
A.描述模块组成 B.说明用户数据结构 C.描述软件功能 D.建造系统的逻辑模型 4.业务需求描述的是()。
A.功能需求 B.用户需求 C.用户的具体业务流程 D.软件的目标、规模和范围 5.一个数据流程图中的图形符号有且仅有()种。
A.3 B.5 C.4 D.7 6.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()。
A.把软件划分成模块 B.确定模块之间的调用关系 C.确定各个模块的功能D.设计每个模块的伪代码7.程序流程图与数据流程图的关系()。
A.不确定 B.数据流程图可以转换成程序流程图 C.数据调用关系D.程序流程图可以转换成数据流程图8.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合 B.隐藏 C.封装 D.抽象 9.类有3种类型,即()。
A.边界类、实体类、控制类 B.实体类、控制类、界面类 C.控制类、实体类、虚类D.界面类、控制类、公共类10.()是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。
A.消息连接 B.参数传递 C.方法重写 D.继承 11.对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。
在面向对象方法中,由()实现。
A.顺序图 B.类图 C.状态图 D.组件图 12.如果对象之间的耦合是通过()来实现的,则这种耦合就是交互耦合。
软件工程概述软件工程是指应用系统化、规范化、可重复的方法构建和维护软件的一门学科。
它涵盖了软件开发的全过程,包括需求分析、设计、编码、测试、部署和维护等环节。
软件工程旨在提高软件开发过程的效率和质量,以满足不断增长的软件需求。
本文将从软件工程的定义、发展历程以及核心概念等方面进行综述。
1. 软件工程的定义软件工程是一门工程学科,它应用了工程原理、管理原则和科学方法来开发和维护软件。
软件工程是一种系统化、规范化的方法论,旨在提高软件开发过程的效率和质量,以满足用户需求。
2. 软件工程的发展历程软件工程的起源可以追溯到20世纪50年代,当时软件开发项目规模越来越大,传统的编程方法已经无法满足需求。
于是人们开始探索一种更有效的软件开发方法。
在20世纪60年代末,软件工程开始被正式提出并逐渐成为软件开发的主流方法。
在20世纪70年代,软件工程的概念逐渐得到了认可,并且出现了一系列软件工程方法论,如结构化设计、模块化、自顶向下等。
这些方法大大提高了软件开发的效率和质量。
进入21世纪,随着互联网和移动互联网的兴起,软件工程的发展进入了一个新的阶段。
敏捷开发、DevOps等新方法被广泛采用,以适应快速迭代和持续交付的需求。
3. 软件工程的核心概念(1)需求分析:需求分析是软件工程的第一步,它关注的是用户的需求和期望。
通过与用户充分沟通、访谈和调研,软件工程师能够准确把握用户的需求,为后续的设计和开发工作打下基础。
(2)设计:软件设计是根据需求分析的结果,将软件系统划分为一系列的模块,并定义模块之间的接口和交互关系。
设计阶段需要考虑软件的可维护性、可扩展性和安全性等问题。
(3)编码:编码是将设计好的软件模块转化为机器语言的过程。
在编码过程中,开发人员需要遵循编码规范和最佳实践,确保代码的可读性、可维护性和高效性。
(4)测试:测试是保证软件质量的关键环节。
通过设计和执行测试用例,测试工程师能够发现和修复软件中的错误和缺陷,以确保软件在交付给用户之前达到预期的质量标准。
软件工程课程教学大纲(SoftwareEngineering)学时数:32其中:实验学时:6课外学时:0学分数:2适用专业:计算机科学与技术一、课程的性质、目的与任务《软件工程》是计算机科学与技术专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。
根据培养基层应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程实践打下良好的基础。
二、课程教学的基本要求(-)基本概念和基本知识:软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。
(二)基本技能:能用软件工程的方法参与软件项目的分析、设计、实现和维护重点:系统分析、系统设计、系统实现、系统维护难点:需求分析、软件测试课程的教学要求在每一章教学内容之后给出,大体上分为三个层次:了解、理解和掌握。
了解即能正确判别有关概念和方法:理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用三、课程的教学内容、重点和难点第一章概论一、软件(一)软件的发展;(二)软件的定义;(三)软件的特点、软件的种类。
二、软件工程的概念(一)软件危机与软件工程的定义;(二)软件工程的目标;(三)软件工程的原则。
三、软件生存周期与软件开发模型(一)瀑布模型、原型模型、螺旋模型、基于四代技术模型、面向对象与组件模型、混合模型。
教学要求:软件和软件工程的基本概念,软件生命周期及软件开发的各个模型重点:软件生存周期与软件开发模型第二章可行性分析一、可行性研究的任务二、可行性研究的步骤三、系统流程图四、成本/效益分析第三章需求分析一、需求分析的任务与步骤(一)需求分析的任务;(二)需求分析的步骤;(三)需求分析的原则。
0835软件工程一级学科简介一级学科(中文)名称:软件工程(英文)名称: Software Engineering一、学科概况软件工程经过四十余年的发展,明确了自身的学科问题,形成了软件工程领域的基础理论、工程方法与技术体系,完善了软件工程教育体系,具备了学科的完整性和教育学特色,具有广泛的研究领域和研究方向,作为独立学科为软件产业发展提供了理论、技术与人才支撑。
1968年在德国举行的NATO软件工程会议上,为应对“软件危机”的挑战,“软件工程”术语被首次提出。
在这个时期,具有代表性的软件工程定义是“为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法”。
1972年,IEEE学会计算机协会第一次出版了“软件工程学报”。
此后,“软件工程”这个术语被广泛用于工业、政府和学术界,众多的出版物、团体和组织、专业会议在它们的名称中开始使用“软件工程”这个术语,很多大学的计算机科学系先后开设了软件工程课程。
1980年代末到1990年代初,基于瀑布模型的软件开发过程和结构式过程语言编程范型占主导地位,软件工程研究在软件需求分析、软件设计、软件测试、软件质量保证、软件过程改进等多个子领域得到深化和扩展,形成了软件工程学科的雏形。
同期,软件工程教育得到卡内基·梅隆大学软件工程研究所(SEI)的培育和支持。
该研究所调查软件工程教育的现状,出版软件工程推荐教程,在卡内基·梅隆大学建立软件工程硕士教育计划,并组织和推动软件工程教育者研讨会。
1991年,ACM和IEEE-CS的计算学科教程CC1991专题组将“软件工程”列为计算学科的九个知识领域之一。
1993年,IEEE-CS和ACM为了将软件工程建设成为一个专业,建立了IEEE-CS/ACM联合指导委员会。
随后,该指导委员会被软件工程协调委员会(SWECC)替代。
SWECC 提出了“软件工程职业道德规范”、“本科软件工程教育计划评价标准”以及“软件工程知识体系(SWEBOK)”。
软件工程复习题一、单项选择题1、需求分析阶段的任务是确定( D )。
A.软件开发方法 B.软件开发工具C.软件开发费 D.软件系统的功能2、软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了__(1)__。
采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对__(2)__ 进行识别和分析,并采取相应的对策。
螺旋线第一圈的开始点可能是一个__(3)__ 。
从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。
(1) A.版本管理 B.可行性分析 C.风险分析 D.系统集成( C )(2) A.系统 B.计划 C.风险 D.工程( C )(3) A.原型项目 B.概念项目 C.改进项目 D.风险项目( B )二、名词解释1、软件生命周期:答:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
2、CASE:答:CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。
CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。
因而,CASE领域是一个应用、继承和综合的领域。
3、数据字典:答:用来定义数据库流图中的各个成分的具体含义。
有以下四类条目:数据流,数据项,数据存储,基本加工。
4、数据流图:答:数据流图DFD是一种图形化技术,它描绘了信息流和数据从输入到输出的过程所经历的变换。
三、简答题1、什么是黑盒测试法?答:所谓黑盒测试是指在完全不考虑程序的内部结构和处理过程的前提下,在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接受输入数据产生正确的输出信息,并且保持外部信息的完整性。
软件工程专业课程教学大纲计算机导论课程教学大纲课程名称:计算机导论课程编号:学时/学分:48 / 3 开课学期:1适用专业:计算机科学与技术/软件工程/网络工程课程类型:学科与专业基础必修课一、课程的目的和任务1.初步了解计算机的基本知识,为后续课程的学习打下一定的基础;2.初步了解计算机科学与技术学科知识体系,了解社会对计算机人才的需求情况,培养学生学习兴趣和专业自豪感;3.初步掌握文献检索、资料查询及运用现代信息技术获取相关信息的基本方法;4.了解与计算机相关职业和行业的法律、法规;5.初步培养学生对终身学习的正确认识和学习能力;二、课程的基本要求1.了解计算机的入门基础知识,掌握计算机的运算基础知识;2.了解计算机系统的基本组成和工作原理;3.了解计算机程序设计和数据结构基础知识;4.了解计算机系统软件的基础知识;5.掌握常用办公软件的操作应用;6.了解数据库系统基本概念及其应用基础知识;7.了解多媒体技术及其应用基础知识;8.了解计算机网络及其应用基础知识9.了解软件工程的基本概念;10.了解计算机信息安全技术;11.了解计算机在各领域的应用发展趋势;12.了解计算机与信息技术相关的法律法规,了解相关的职业及其道德准则。
三、课程基本内容和学时安排第1章绪论(2学时)1.1计算机的基本概念;1.2信息化社会的挑战;1.3 计算机科学技术的研究范畴;1.4计算机工程教育认证通用标准与补充标准。
第2章计算机科学技术的基础知识(8学时)2.1计算机的运算基础;2.2逻辑代数基础;2.3计算机的基本结构与工作原理;2.4程序设计基础;2.5算法基础;2.6数据结构基础。
第3章计算机硬件结构(2学时)3.1计算机系统3.2系统单元3.3输入输出系统第4章计算机系统软件与工具软件(2学时)4.1程序设计语言翻译系统4.2操作系统4.3工具软件第5章计算机应用软件(2学时)5.1文字处理软件5.2电子表格软件5.3文稿演示软件第6章数据库系统及其应用(2学时)6.1数据库系统的基本概念6.2结构化查询语言6.3数据仓库6.8数据库系统的应用第7章多媒体技术及其应用(2学时)7.1多媒体7.2超文本与超媒体7.3多媒体技术第8章计算机网络及其应用(2学时)8.1数据通信与连通性8.2计算机网络体系结构8.3计算机网络的分类和使用方式8.4internet与tcp/ip协议8.5internet的服务功能8.6web和浏览器8.7局域网的基础构架第9章软件工程(2学时)9.1软件工程的概念9.2软件开发模型9.4软件过程和过程改进第10章计算机信息安全技术(2学时)10.1计算机信息安全面临的威胁10.2保密技术10.3防御技术第11章计算机的应用领域第12章职业道德与择业第11、12章共10课时,由企业工程师与本校任课教师共同完成。
软件工程一级学科摘要:一、软件工程一级学科的概念与重要性二、软件工程学科的起源与发展历程三、软件工程的研究领域与主要任务四、软件工程在我国的发展现状与趋势五、软件工程一级学科在实际应用中的价值与意义正文:软件工程一级学科是我国高等教育中非常重要的一门学科,它涵盖了软件开发、软件项目管理、软件测试、软件维护等多个方面,旨在培养具备软件开发、项目管理、系统分析与设计等能力的复合型人才。
软件工程学科起源于20世纪60年代的美国,随着计算机技术的飞速发展,软件在各个领域的应用也越来越广泛,因此对软件开发过程进行科学管理的需求日益迫切。
在这样的背景下,软件工程学科应运而生,其主要任务是研究软件开发过程中的规律和方法,以提高软件质量和开发效率。
软件工程一级学科的研究领域包括软件开发方法、软件需求工程、软件设计、软件验证与测试、软件项目管理等。
其中,软件开发方法主要研究软件开发的理论和方法,如结构化分析和设计、面向对象分析和设计等;软件需求工程关注如何获取、分析和管理软件需求;软件设计研究软件系统的模块划分、接口设计等;软件验证与测试关注如何保证软件的正确性和可靠性;软件项目管理则涉及软件开发过程中的资源分配、进度控制、风险管理等。
在我国,软件工程学科的发展取得了显著成果。
近年来,我国软件产业呈现出快速发展的态势,软件工程一级学科在其中发挥了关键作用。
政府和企业对软件工程学科的重视程度越来越高,投入不断加大,推动软件工程学科在人才培养、科学研究、技术研发等方面取得了丰硕的成果。
目前,我国软件工程学科已经形成了较为完善的教育体系,为我国软件产业的发展提供了有力支持。
总之,软件工程一级学科在实际应用中具有极高的价值。
它为软件开发过程提供了科学的管理方法和理论指导,有助于提高软件质量和开发效率,降低开发成本。
国家开放大学电大本科《软件工程》2023-2024期末试题及答案(试卷号:1260)一、选择题(请从四个可选项中选择正确答案。
共60分,每小题3分)1.下面哪个选项不是软件工程研究的内容?( )A.生产无故障的软件 B.精通一门编程语言C.生产满足用户需求的软件 D.生产及时交付的软件2.螺旋模型是一种考虑了( )的软件开发模型。
A.效率 B.风险判断C.可移植性 D.如何选择开发项目经理3.SW-CMM是一种( )规范。
A.编程规范 B.软件工作通用模型C.软件设计模型 D.软件成熟度模型4.可行性研究实质上是在较高层次上、以较抽象的方式进行( )的过程。
A.详细软件设计 B.需求分析过程C.深入的需求分析 D.测试设计5.与传统行业的生产相比较,软件的需求具有( )。
A.主观性 B.稳定性C.明确性 D.客观性6.源程序的效率与( )阶段确定的算法的效率直接有关。
A.概要设计 B.总体设计C.单元设计 D.详细设计7.DFD中的每个加工至少需要( )。
A.-个输入流 B.一个输出流C.一个输入或输出流 D.一个输入流和一个输出流8.耦合度最高的是( )。
A.外部耦合 B.内容耦合C.控制耦合 D.数据耦合9.为了提高模块的独立性,模块之间最好是( )。
A.控制耦合 B.公共耦合C.内容耦合 D.数据耦合10.UML中,包图是一种( )。
A.集合 B.数据结构C.分组机制 D.对系统的动态描述11.面向对象设计首先要确定系统的总体结构和风格,构造系统的( )。
A.逻辑模型 B.物理模型C.数据模型 D.用例模型12.面向对象设计的步骤中,正确的顺序是( )。
A.系统构架设计、用例设计、类设计B.系统构架设计、数据库设计和用户界面设计C.类设计、用例设计、构架设计D.用例设计、构架设计、类设计13.类有3种类型,即( )。
A.边界类、实体类、控制类 B.实体类、控制类、界面类C.控制类、实体类、虚类 D.界面类、控制类、公共类14.( )是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。
软件工程-(带附加条款)软件工程是一种系统化的、规范的、可量化的方法,用于开发、运行和维护软件。
它涉及到软件设计、实现、测试、评估、部署和维护等方面,旨在提高软件质量、降低开发成本、缩短开发周期、提高开发效率、确保软件安全可靠。
本文将从软件工程的定义、发展历程、基本原则、方法体系、实践应用等方面进行详细阐述。
一、软件工程的定义软件工程是一种将系统化、规范化和可量化的方法应用于软件开发、运行和维护的过程。
它强调软件开发的工程性质,将软件开发视为一个工程过程,遵循工程化的原则和方法,以确保软件产品的质量、可靠性和可维护性。
二、软件工程的发展历程1.早期阶段(1940s-1970s)在计算机诞生之初,软件开发主要依赖于程序设计。
随着计算机技术的发展,软件规模不断扩大,软件开发逐渐成为一个复杂的过程。
在这个阶段,软件开发方法和技术逐渐形成,如结构化分析、结构化设计等。
2.软件工程阶段(1970s-1990s)20世纪70年代,软件危机的爆发促使人们开始关注软件质量、开发效率和项目管理。
软件工程的概念应运而生,标志着软件开发进入了一个新的阶段。
在这个阶段,软件工程方法和技术得到了广泛的研究和应用,如面向对象技术、软件复用、软件过程改进等。
3.现代软件工程阶段(1990s-至今)随着互联网、移动计算、云计算等技术的发展,软件工程面临新的挑战和机遇。
现代软件工程强调敏捷开发、DevOps、微服务架构等方法和技术,以满足快速变化的市场需求和用户期望。
三、软件工程的基本原则1.分而治之将复杂问题分解为若干个简单问题,逐一解决,将各个部分整合在一起。
这种方法有利于降低开发难度、提高开发效率、确保软件质量。
2.抽象忽略问题的细节,关注问题的本质,将具体问题抽象为一般性问题。
抽象有助于提高软件的可重用性、可维护性和可扩展性。
3.模块化将软件划分为若干个独立、可替换的模块,每个模块负责实现一个特定的功能。
模块化有助于提高软件的可重用性、可维护性和可扩展性。
软件工程定义及其产生背景软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
另外,关于软件工程产出的背景,首先我们要确定软件这一定义及其作用,软件:计算机程序及其说明程序的各种文档。
“程序”是计算任务的处理对象和处理规则的描述。
软件的特点:1 是一种逻辑产品,与物质产品有很大的区别。
2 软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。
3 软件产品不会用坏,不存在磨损,消耗。
4 生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是“定做”的。
5 开发软件的费用不断增加,致使生产成本相当昂贵软件生产的发展:1 程序设计时代这个阶段生产方式是个体劳动,生产工具是机器语言,汇编语言。
1
软件工程:面向21世纪
关键词:软件工程
软件工程(Software Engineering)的定义五花八门,比较公认的是美国电气与电子工程师协会(IEEE)给出的1:“(1)将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件(The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software);(2)在(1)所定义的过程中的方法研究(The study of approaches as in(1))”。
“软件工程”一词公认产生于1968年和1969年召开的带有标志性的NATO (North Atlantic Treaty Organization,北大西洋公约组织)科学委员会会议。
美国南加州大学的巴里·贝姆(B a r r y B o e h m )教授总结了国际上软件工程的发展历程2 : 20世纪50年代的类似硬件工程(Hardware Engineering)、60年代的软件手工生产(Software Crafting)、70年代的形式化方法和瀑布模型(Formality and Waterfall Processes)、80年代的软件生产率和可扩展性(Productivity and Scalability)、90年代的软件并发和顺序进程(Concurrent vs. Sequential Processes)和21世纪初的软件敏捷性和价值
(Agility and Value)。
我国北京大学杨芙清院士也系统地回顾了起步于1980年的中国软件工程的研究与实践3。
代表性工作包括软件自动化系统、XYZ系统4、MLIRF系统和青鸟工程等,都在国内外有广泛的影响。
关于21世纪软件工程的发展,同样有多种预测,国内外研究机构、软件企业以及业界专家,也都分别发表了各自的看法和议论。
值得注意的是,2007年在美国明尼阿波利斯(Minneapolis)召开的国际软件工程大会(International Conference on Software E ngineering)上专门安排了一次“软件工程的未来(Future of Software Engineering,FoSE 2007)”专题研讨会。
来自学术界和工业界的数十位专家,从软件工程教育、学术界与工业界合作、复杂软件开发、行业应用、软件测试、代码分析、模型检测、安全软件、软件可靠性工程、软件性能工程、社会-技术协同、Web应用开发、软件设计和体系结构、中间件、自管理系统、软件部署、需求工程、软件经济学、程序语言环境、逆向工程、软件搜索以及经验软件工程等多个方面,展望了软件工程未来的发展动向。
其中,美国麻省大学利昂·奥斯特维尔(Leon Osterweil)
特邀编辑:李明树
中国科学院软件研究所
1 IEEE Standard 610.12:1990,Glossary of Software Engineering Terminology,IEEE,19902
Barry Boehm,A View of 20th and 21st Century Software Engineering,ICSE 20063
杨芙清,中国软件工程二十六年,中国计算机学会纪念中国计算机事业50周年大会,20064
XYZ系统是一个以时序逻辑语言XYZ/E为基础的软件工程工具系统,共有20余种工具,分为5组
2教授提出了另一番见解5:到目前为止,软
件工程的研究大多针对工程实践中出现的问
题,而这些问题通常不是由研究群体提出。
作
为研究人员,我们能不能尝试将“问题驱动
(Problem-driven)”的研究扩展到“好奇驱动
(Curiosity-driven)”的研究?例如,生物学
家在研究过程中认识到,与其花费巨大精力探
索为什么有这么多疾病抗生素无法应对,不如
先试图理解这些抗生素无法应对的疾病有什么
共同之处,然后再有针对性地设计更有效的办
法。
这种新思路与旧的研究方法比较的主要特
点是建立研究方向的出发点源于研究者的自身
探索。
奥斯特维尔教授认为,许多学科都是将某
些深入且为研究者持久关注的问题作为研究核
心。
这些问题在相当长的时间内推动着人们加
深对研究对象的理解并不断为解决实际问题提
供途径,而追随这些问题深入下去又会引起无
数新的兴趣与重要发现。
同样,对于软件工程
来说,或许也是到了在做“问题驱动”研究的
同时融入“好奇驱动”的研究作为补充的时侯
了。
软件工程这门学科的发展有着与其他学科
发展相近的轨迹,就像在其他领域,人们从不
断寻求适合的表达方式来描述所看到的世界开
始,渐渐不满足于对事物的观察与描述,而要
试图去理解、控制、改善甚至预测研究对象的
发展。
但是,当事物的变化超出我们所能理解
和控制的范围时,就谈不上改善和预测了,回
到最初的观察也许能找到问题的实质所在。
本期专题正是基于如何面对21世纪的挑
战,邀请了来自国内几家有代表性的软件工程
研究机构的作者撰文,最后共收录4篇报告。
他们从各自熟悉的角度,报道了软件工程诸多
分支中一些主要的国际、国内热点方向及其研
究进展,特别是这些稿件的作者都面向21世纪
的软件工程发展,描述了自己的认识并阐述了
个人观点。
北京大学梅宏教授等的《领域工程—实
现软件复用的有效途径》一文从领域、领域工
程、领域工程关键问题和代表性方法等几个方
面全面回顾和分析了领域工程的主要进展。
文
中还介绍了著名的青鸟领域工程方法/FODM6。
文章认为,领域工程的研究和实践虽然还没有
达到完全成熟的阶段,但是已经为我们指出了
进一步凝练软件共性和提高软件开发抽象层次
的可行途径,即:通过面向特定的问题领域,
识别和复用其中可复用的成分,并以此促进软
件产业达到与传统产业相同的工业化生产水
平。
南京大学吕建教授等的《开放环境下基于
信任管理的软件可信保障》一文基于这样一个
背景:互联网(Internet)的快速发展和普及
使软件系统开发、运行和维护的环境开始从封
闭、静态、可控逐步走向开放、动态、难控,
出现了计算实体的共享性和自主性、系统组织
的协同性、运行环境的动态性和用户需求的多
变性等显著特征,使得传统的分析方法(包括
基于测试的动态分析方法和基于形式化证明的
静态分析方法)在实现软件系统可信保障时表
现出一定的局限性。
文章认为,在开放环境
下,软件系统中参与主体及主体间信任关系构
成其最主要的复杂性特征。
因此,从主体间信
任关系管理出发来解决软件系统的可信保障问
题是一种应该受到重视的途径。
中国科学院数学与系统科学研究院金芝
研究员等的《软件需求工程:部分研究工作进
展》一文选取了中科院数学院、软件所和武汉
大学等几家有代表性的研究工作进行介绍,但
也特别指出:“本文并没有囊括中国需求工程
5 Leon J. Osterweil, A Future for Software Engineering? ICSE 2007
6 Feature-Oriented Reuse Method,面向特征的软件复用方法
3
研究的所有方面,文章选择这些方向也并不表示这些方向比其它方向更重要”。
文章认为,结构化的需求抽取过程、系统化的需求建模方法、形式化的需求验证技术和规范化的需求管理途径是提高目标软件需求规格说明质量的主要手段。
随着基于互联网的应用软件的快速发展,面向服务的需求工程(Service-Oriented Requirements Engineering,SORE)将成为21世纪面向服务的软件工程时代的主要发展方向。
中国科学院软件研究所王青研究员等的《软件过程技术—解决软件质量问题的有效途径》一文从软件过程模型、软件过程度量与控制、软件过程改进与评估和中国软件产业的过程技术实践等几个方面,全面回顾总结了软件过程技术领域国内外科技界和工业界的研究与实践。
文章认为,到目前为止,解决软件质量问题的“银弹(Silver Bullet)7”还没有出现,特别是国内大多数企业还停留在初步尝试阶段,或者仅仅以评估为目的的层面,深层次的软件过程技术还没有很好地开展和应用。
21世纪软件过程技术将和其它领域知识融合,通过
李明树
中国科学院软件研究所研究员,中国计算机学会常务理事、高级会员。
目前主要研究兴趣为软件工程方法学、软件过程技术、需求工程和
软件工程经济学等。
强调管理与技术相结合以及注重量化管理,使其在实践中不断丰富、完善和发展。
毋庸置疑,当前无论在软件工程的研究还是在产业的实践方面,我们与国际最好水平还有相当大的差距,甚至与一些新兴国家和地区相比,也不占任何优势。
这给我们带来了巨大的压力,但同时也带来了无限的机遇。
从根本上讲科技的发展是平等的,因此从某种意义上说面对技术和产业转型,我们还可能有一定的后发优势。
问题是我们能不能及时、准确和牢牢把握住这些机遇,从容面对21世纪的软件工程发展。
我想,这也是《中国计算机学会通讯》安排我组织这样一期专题报道的初衷吧。
■
7 银弹是软件领域的说法,意为解决一切问题的方法。