1.什么是软件工程 2

2.软件工程必须遵循什么原则 2

3.什么是软件工程环境 2

4.什么是结构化方法 3

5.什么是软件包 3

6.什么是软件方法学 4

7.软件方法学的分类和基本内容有哪些 4

8.什么叫软件复用 5

9.什么是软件工具 5

10.什么是软件过程 6

11.什么是软件结构 6

12.什么是软件开发方法 7

13.什么是软件开发环境 7

14.什么是软件开发模型 8

15.什么是软件语言 8

16.什么是人机交互技术 9

17. 什么 是面向对象方法 9

1.什么是软件工程

软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。

(1) 软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开 销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及 工程方法选取的约束。

(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过 程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。 需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。 详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实 现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。

(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

2.软件工程必须遵循什么原则

  围绕工程设计、工程支持以及工程管理已提出了以下四条基本原则:

(1)选取适宜的开发模型

该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,经常需要权衡。因此,必需认识需求定义的易变性,采用适当的开发模型,保证软件产品满足用户的要求。

(2)采用合适的设计方法

在软件设计中,通常需要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

(3)提供高质量的工程支撑

工欲善其事,必先利其器。在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

(4)重视软件工程的管理

软件工程的管理直接影响可用资源的有效利用,生产满足目标的软件产品以及提高软件组织的生产能力等问题。因此,仅当软件过程予以有效管理时,才能实现有效的软件工程。

3.什么是软件工程环境

  软件工程环境(SoftWare Engineering Environment ,简称SEE)是指以软件工程为依据,支持典型软件生产的系统。

软件工程环境是软件工程学科各方面研究发展的物化表现,具有以下特点:

(1) 软件工程环境强调支持软件生产的全过程。实践表明:软件工具仅支持生命周期中某些特定活动,工具箱将一些相互关联的工具组织到一起,使其相互通信,从而支 持了生命周期中某些成组活动,自动化程序有所提高。软件开发环境旨在通过环境信息库和消息通信机制实现工具的集成,从而为软件生命周期中某些过程的自动化 提供了更有效的支持。不同的过程模型导致不同类型的软件开发环境。然而,软件过程领域的最新研究结果表明,软件过程概念已不仅局限在软件开发和软件维护, 而是发展到包括系统集成和软件产品的制作与生产。SEE旨在解决软件过程中各个过程和活动如何按照各条路径并行完成。管理、支持、获取、供应等过程贯穿于 整个生存周期,特别是管理活动和支持活动,从合作观点来看,对于软件生产具有更为重要的地位。因此,促使人们在更高的层次上考虑如何运用“整体大于各部分 之和”的系统工程,提高整个软件过程的整体计算机辅助支持程度。

(2)软件工程环境强调大型软件的工业化生产。软件发展已经形成了大规模 的产品市场。因此,软件产品的生产也必将走上工业化的道路。所请的工业化是指能够形成规模经济的生产形式。工程化注重软件生产过程中软件生产者具有一定的 工程训练,遵循一定的工程准则。工业化则更加强调软件生产过程中生产资料的作用,表现为把大量的生产者的技能和经验转移到生产工具之中,从而减少生产过程 中的劳动比例、减少生产工具的增值比例。SEE是为工业化生产提供一整套的支持设施。

(3)软件工程环境以集成和剪裁作为主要技术路径,实现软件工业化生产的目标。SEE具有多维性,表现在不仅要集成与软件开发技术相关的工具,还要集成与支持技术、管理技术相关的工具,并将它们有机地结合在一起。

(4)标准化。软件生产走向工业化需要建立相应的工业标准。SEE正在形成一个国际性标准。

4.什么是结构化方法

  结构化分析方法(Structured Method)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构 化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析( SA )、结构化设计( SD )和结构化 程序设计 (SP)等方法。

结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达 用户需求 ,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。

结 构化分析的步骤如下:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,生成数据字典和基元描述; ④建立人机接口,提出可供选择的目标系统物理模型的DFD;⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;⑥选择一种方案;⑦建立完整的需求 规约。

结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。 SD 方 法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下: ①评审和细化数据流图;②确定数据流图的类型;③把数据流图映射到软件模块结构,设计出模块结构的上层;④基于数据流图逐步分解高层模块,设计中下层模 块;⑤对模块结构进行优化,得到更为合理的软件结构;⑥描述模块接口。

5.什么是软件包

  软件包(SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。可分为应用软件包和系统软件包两大类。应用软件包与特定的应用领域有关,又 可分为通用包及专用包两类。通用软件包根据社会的一些共同需求开发,专用软件包则是生产者根据用户的具体需求定制的,可以为适合其特殊需要进行修改或变 更。

软件包这一术语出现于20世纪60年代。60年代初,IBM公司曾将IBM1400系列上的应用程序库改造成更为灵活易用的软件包形式。 Informatics公司根据 用户需求 ,以包的形式设计并开发了自动流程图生成包AUTOFLOW。1969年,软件开始从计算机系统中分离出来成为独立成分,软件包这个术语开始广泛使用。

软件包由一个基本配置和若干可选部件构成,既可以是源代码形式,也可以是目标码形式。用户手册和指南等文档是软件包的重要组成部分。此外,软件包的维护及技术支持也是非常必要的

6.什么是软件方法学

  软件方法学(SoftWare Methodology)是以方法为研究对象的软件学科。主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。狭义的也指某种特定的软件设计指导原则和方法体系。不论何种 含义 ,其关注的中心问题是如何设计正确的软件和高效率地设计软件。

软 件方法学的目的是寻求科学方法的指导,使软件开发过程“纪律化”,即要寻找一些规范的“求解过程”,把软件开发活动置于坚实的理论基础之上。软件工程与软 件方法学的方法不同,软件工程是侧重于借鉴传统工程学科,最终目的是把软件生产变成一门制造工程。两者之间的关系是软件工程需要软件方法学为依据和指导; 方法学依赖于软件工程,特别是环境工具来发挥实际效用。

7.软件方法学的分类和基本内容有哪些

  1)软件方法学的分类

从开发风范上看,有自顶向下的开发方法和自底向上的开发方法。在实际软件开发中,大都是两种方法的结合,只不过是应用于开发的不同阶段和以何者为主而已。

从性质上看,有形式方法与非形式方法。形式方法是一种具有坚实数学基础的方法,从而允许对系统和开发过程作严格处理和论证,适用于那些运载系统安全级别要求极高的软件的开发。非形式方法则不把严格性作为其主要着眼点。

从适用范围来看,有整体性方法与局部性方法。适用于软件开发全过程的方法称为整体性方法,如自顶向下方法、自底向上方法和各种软件自动化方法等均为整体性方法。适用于开发过程具体阶段的软件方法称为局部性方法,如需求分析阶段的各种需求分析方法、设计阶段的各种设计方法。

2)几种常用的软件方法

(1) 自顶向下方法自顶向下是一种决策的策略。软件开发涉及到作什么决策、如何决策和决策顺序等决策问题。

自 顶向下方法在任何时刻所作的决定都是当时对整个设计影响最大的那些决定。如果把所有决定分组或者分级,那么决策顺序是首先作最高级的决定

什么是软件工程-基础概念相关推荐

  1. 软考中级——软件工程基础概念总结

    目录 一.需要记和背的 1.软件工程基本原理 2.软件生存周期 3.软件过程中的能力成熟度模型 CMM 4.能力成熟度模型集成 5.概要设计内容 6.软件配置管理内容 7.风险管理内容 8.软件质量特 ...

  2. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析

    关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 -- IIC总线 ,下面回顾下 IIC 基础概念 一.IIC 基础概念 IIC(Inter-Integrated Ci ...

  3. 软件工程基础-个人项目-数独游戏

    软件工程基础-个人项目-数独游戏 ----------------------------------------------------------------------------------- ...

  4. 软件工程基础知识复习宝典

    前言:此文档为个人大学时期应付期末考试时自行总结,用于理解并背诵相应的基本概念.一些计算和画图之类的内容需要结合书本例题进行复习,多做习题深刻掌握.中间大标题为老师给出的考纲中建议每一章需要掌握的一些 ...

  5. I2C的基础概念和框架

    一.IIC 基础概念 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.IIC总线产生于在80年代,最初为音频 ...

  6. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析 (iic驱动框架,i2c驱动框架)...

    转载于 : http://blog.csdn.net/zqixiao_09/article/details/50917655 关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸 ...

  7. 软件工程基础个人项目——数独(5)

    软件工程基础个人项目--数独 点击这里可看github上的具体代码 本次个人项目关于数独的生成与求解 PSP表格 PSP2.1 Personal Software Process Stages 预估耗 ...

  8. 软件工程基础知识--运行和维护

    在系统测试.调试中,使用的是系统测试数据,有些实际运行中可能出现的问题很难通过这些数据被发现.所以,一个系统开发后,让它实际运行一段时间,是对系统最好的检验和测试方法. 系统转换 系统试运行阶段的主要 ...

  9. 软件工程期末概念复习

    软件工程期末概念复习 简答题6道,猜想软件.软件工程.软件危机.软件过程模型.软件测试和软件维护各一道. 画图题看ppt吧,也可以看这个大佬的总结软件工程期末总结 其他随缘了 1. 软件 软件:软件是 ...

最新文章

  1. sql server 清空数据库表数据
  2. 读书笔记:黑客与画家
  3. 软件测试mysql常用语句_测试中常用到的SQL语句(Oracle)
  4. eShopOnContainers 看微服务 ①:总体概览
  5. c# 编程学习(二)
  6. CNNIC:我国网民规模达9.4亿,月收入5000元以上的却不到1/4
  7. 超10000支团队参赛,阿里云首届云原生编程挑战赛完美收官
  8. 从零基础入门Tensorflow2.0 ----八、39.5. gpu5
  9. PLSQL导入SQL文件
  10. 安卓下最强的3款pdf阅读器测评
  11. 安装完成postgresql 后,启动大象pgAdmin4 报the application server could not be contect 错误
  12. linux ls和cd命令详解,Linux基础cd、pwd和ls命令
  13. LeetCode 344.Reverse String
  14. 中国全自动洗地机器行业现状调研及趋势分析报告
  15. 科技碰撞:元宇宙与虚幻引擎,被掩盖的底层逻辑何在?
  16. 创始股东四招掌握公司控制权
  17. 卡尔曼滤波原理及其在RSSI测距中的应用
  18. python数据透视表计数去除重复_如何用Python实现数据透视表?解除你对透视表的疑惑!...
  19. CDO安装步骤(for Mac)
  20. 纯前端实现 传统验证码功能

热门文章

  1. Maven相关常见面试题
  2. matlab和投影寻踪,基于遗传算法的投影寻踪模型Matlab源码
  3. 任意角度的图像画法(椭圆、矩形、菱形)
  4. AudioTrack使用
  5. 深度 | 阿里为什么不用 ZooKeeper 做服务发现?
  6. JAVA801_Lambda表达式的格式、使用前提、省略模式、注意事项、和匿名内部类的区别
  7. 算法优化之c++多线程优化:思考与总结
  8. Git 分支管理常见三种方式
  9. CVPR2023论文 连续手语识别解读
  10. 如何提高Win7系统的反应速度