太原理工大学软件工程-第一章软件工程概述
- 格式:ppt
- 大小:303.50 KB
- 文档页数:61
第一章软件工程概述1.1软件工程的产生和发展软件工程是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。
自1968年在北大西洋公约组织(NATO)举行软件可靠性的学术会议上正式提出“软件工程(Software Engineering)”的概念以来,在不到40年的时间里,软件工程在理论和实践两方面都取得了长足的进步。
软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科,它涉及到计算机科学、工程科学、管理科学、数学等多学科,软件工程的研究范围广,不仅包括软件系统的开发方法和技术、管理技术,还包括软件工具、环境及软件开发的规范。
软件是信息化的核心,国民经济、国防建设、社会发展及人民生活都离不开软件。
软件产业关系到国家经济发展和文化安全,体现了国家综合实力,是决定21世纪国际竞争地位的战略性产业。
因此大力推广应用软件工程的开发技术及管理技术,提高软件工程的应用水平,对促进我国软件产业与国际接轨,推动软件产业的迅速发展起着十分重要的关键作用。
1.1.1 软件工程的发展过程软件工程的产生和发展是与软件的发展过程紧密相关的。
自从第一台电子计算机诞生以来,就开始了软件的生产,“软件工程”提出至今,它的发展已经历了四个重要阶段:1.第一代软件工程(60年代末到70年代)60年代末,软件生产主要采用“生产作坊方式”。
随着软件需求量、规模及复杂度的迅速增大,生产作坊的方式已不能够适应软件生产的需要,出现了所谓“软件危机”,即软件生产效率低,大量质量低劣的软件涌入市场或在开发过程中夭折。
由于“软件危机”的不断扩大,对软件生产已经产生了严重危害。
为了克服“软件危机”(Software crisis),在著名的NATO(北大西洋公约组织)软件可靠性会议上第一次提出“软件工程”的名词,将软件开发纳入了工程化的轨道,基本形成了软件工程的概念、框架、技术和方法。
这阶段又称为传统的软件工程。
2.第二代软件工程(80年代中到90年代)80年代中开始,以Smalltalk为代表的面向对象的程序设计语言相继推出,面向对象的方法与技术得到发展,从90年代起,研究的重点从程序设计语言逐渐转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系。
第1章软件工程概述软件工程的研究领域包括软件的开发方法、软件周期以及软件工程的实践等。
软件危机与软件工程的起源1. 计算机系统的发展历程20 世纪 60 年代中期以前,是计算机系统发展的早期:软件为每个具体应用而专门编写的。
软件实质为规模较小的程序,编写容易,没有系统化的方法,对软件开发工作更没有进行任何管理。
编写者和使用者为同一个(或同一组)人。
软件设计只是一个模糊的过程,除了程序清单之外,没有其他文档资料。
20 世纪 60 年代中期到 70 年代中期,是计算机发展的第二代:硬件发展:多道程序、多用户系统引入了人机交互的新概念,使硬件和软件的配合上了一个新层次。
实时系统能够从多个信息源收集、分析和转换数据,使得进程控制能以毫秒而不是分钟来进行。
在线存储技术的进步导致了第一代数据库管理系统的出现。
软件发展:软件个体化特性。
软件数量极具膨胀。
在程序运行时发生的错误必须设法改正。
用户有了新的需求时必须相应的修改程序。
硬件或操作系统更新时,通常需要修改程序以适应新的环境。
软件维护工作,以令人吃惊的比例耗费资源,许多程序的个体化特性使得它们最终成为不可维护的。
2. 软件定义:软件是由一个完整的配置组成:程序:能够完成预定功能和性能的可执行的指令序列。
数据:是使程序能够适当地处理信息的数据结构。
文档:是开发、使用和维护程序所需要的图文资料。
1983 年 IEEE 对软件的定义:计算机程序、方法、规则、相关的文档资料、运行程序时所必须的数据。
特点:1) 软件是一种逻辑实体,而不是具体的物理实体。
2) 软件的生产与硬件不同。
在软件开发过程中没有明显的制造过程。
3) 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。
4) 软件成本相当高。
3. 软件危机介绍软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护,数量不断膨胀的已有软件。
太原理工软件工程
太原理工软件工程专业概况
软件工程专业是太原理工大学信息科学与工程学院的一门重要学科。
该专业致力于培养学生在软件设计、开发和测试方面的能力,培养学生具备扎实的软件工程理论基础和实践能力。
太原理工软件工程专业设置了多门专业课程,涵盖了软件工程的各个领域。
学生将学习计算机基础知识、编程语言、算法与数据结构、数据库等课程,同时还将学习软件设计、软件测试、软件项目管理等相关理论和技术。
在培养学生专业技能的同时,太原理工软件工程专业也注重培养学生的创新能力和实践能力。
学生将有机会参加各种软件开发项目,锻炼从项目需求分析到软件设计和开发的综合能力。
除了课程学习,太原理工软件工程专业也鼓励学生积极参与实习和科研活动。
学生将有机会在相关企业进行实习,了解软件行业的实际工作环境,提升自己的实践能力。
同时,学生还可以参与科研项目,深入学习软件工程的前沿技术和理论,为学术研究做出贡献。
毕业后,太原理工软件工程专业的学生可以选择从事软件工程师、软件开发工程师、系统分析员等职业。
随着信息技术的飞速发展,软件工程专业的就业前景广阔,待遇也较为优厚。
总之,太原理工软件工程专业致力于培养学生具备软件设计、
开发和测试的能力,注重培养学生的实践和创新能力,为学生未来的职业发展打下坚实的基础。
软件工程一二章知识点总结一、软件工程概述1.1 软件工程定义软件工程是指将系统化、规范化、可靠化、高效化地开发、维护和管理软件的过程。
它包括了一系列的方法和工具,旨在提高软件开发的质量和效率。
1.2 软件危机软件危机是指在软件开发和维护过程中所出现的一系列问题,包括进度滞后、成本超支、质量不高等。
软件工程的出现正是为了解决这些软件危机。
1.3 软件工程的目标软件工程的主要目标是提高软件开发的质量、提高开发效率、降低开发成本,并且使得软件能够满足用户的需求。
1.4 软件工程的原则软件工程有七大原则,包括可管理性、稳定性、可维护性、灵活性、可重用性、可移植性和高效性。
1.5 软件工程的特点软件工程有其自身的特点,包括软件的不可见性、复杂性、变化性和一致性。
软件开发过程要充分考虑这些特点。
1.6 软件危机的原因软件危机主要是由于软件的复杂性、需求的不断变化、开发过程的管理不善和技术水平的不足等诸多原因导致的。
要解决软件危机,就需要采用科学的方法进行软件开发。
二、软件生命周期2.1 软件生命周期模型软件生命周期模型是描述软件开发过程中不同阶段的模型。
常见的软件生命周期模型包括瀑布模型、原型模型、迭代模型、螺旋模型、敏捷开发模型等。
2.2 软件生命周期阶段软件生命周期通常包括需求分析、设计、编码、测试、部署和维护等不同阶段。
每个阶段都有其特定的任务和目标。
2.3 瀑布模型瀑布模型是软件开发中最经典的一种模型,它将软件开发过程分为需求分析、设计、编码、测试和维护五个阶段,严格按照顺序进行。
该模型适用于需求变化不大的项目。
2.4 原型模型原型模型是一种以原型开发为基础的模型,它能够快速生成原型,帮助用户更好地理解需求,并且在软件开发过程中充分考虑需求的变化。
2.5 敏捷开发敏捷开发是一种迭代、灵活、快速响应需求变化的软件开发方法。
它强调团队合作、交付价值、持续改进和迭代开发。
三、需求工程3.1 需求工程定义需求工程是指对需求进行理解、规范、记录和验证的过程。
《软件⼯程》第⼀章软件⼯程学概述第⼀章软件⼯程学概述1.1 软件危机1.1.1 软件的定义——定义:软件=“完成特定功能的程序+数据结构+⽂档”——特征:(3个)软件是开发的,⽽不是制造的;软件不磨损,但退化;⾃定义。
——发展问题1.1.2 软件危机的表现——定义:在计算机软件的开发和维护过程中所遇到的⼀系列严重的问题。
——表现:(6个)(1)对软件开发成本和进度的估计常常很不准确。
(2)软件产品质量较差,可靠性低。
(3)⽤户对开发出来的软件产品不满意。
(4)软件常常是不可维护的。
(5)软件产品缺少应有的⽂档资料。
(6)软件产品的供不应求。
1.1.3 软件危机的原因——客观原因——主观原因1.2 软件⼯程1.2.1 软件⼯程的概念——定义:指导软件开发与维护的⼯程科学。
采⽤⼯程的概念、原理、技术和⽅法来开发和维护软件,综合运⽤正确的管理技术和最好的技术⽅法,以经济地开发出⾼质量的软件并有效维护它。
IEEE的定义:①软件⼯程是把系统的、规范的、可度量的途径应⽤于软件开发、运⾏和维护过程,也就是把⼯程应⽤于软件;②对这些途径加以研究。
1.2.2 软件⼯程的基本原理(7个)——(1)⽤分阶段的⽣命周期计划严格管理(2)坚持进⾏阶段评审(3)实⾏严格的产品控制(4)采⽤现代程序设计技术(5)结果可以清楚地审查(6)开发⼩组成员少⽽精(7)承认不断改进软件⼯程实践的必要性1.2.3 软件⼯程⽅法学:3个要素(⽅法、⼯具和过程)——传统⽅法学:结构化技术,软件⽣命周期——⾯向对象⽅法学:类+对象+继承+消息,软件开发过程更接近⼈类认知模式1.3 软件⽣命周期1.3.1 软件⽣命周期的概念——定义:⼀个软件从定义、开发、使⽤和维护,直⾄最终被废弃,要经历的漫长的时期称为软件⽣命周期。
——构成:3个时期,8个阶段软件定义:问题定义,可⾏性研究,需求分析软件开发:总体设计,详细设计,编码和单元测试,综合测试;运⾏维护:软件维护1.3.2 各阶段的基本任务(8个阶段)——问题定义:需要解决的问题是什么?书⾯报告——可⾏性研究:确定软件系统是否值得去解《可⾏性研究报告》——需求分析:解决这些问题需要系统做什么?《软件需求规格说明书》——总体设计:应该怎样实现⽬标系统?《概要设计说明书》——详细设计:如何具体地实现这个系统?——编码和单元:写代码,测试每个模块!——测试、综合测试:通过各类测试和调试来完善软件《测试计划/⽅案》——软件维护:通过各种必须的维护活动使系统持久地满⾜⽤户的需要。
软件工程-1-概述XXXX1. 引言软件工程是关于软件开发过程中的原理、方法和工具的学科。
随着计算机应用的广泛普及,软件已经成为现代社会不可或缺的一部分。
而软件工程作为一门学科,则致力于提供一套规范和有效的方法来管理、开发和维护软件系统。
2. 软件工程的定义与范畴软件工程的定义是指应用系统化、规范化和可量化的方法,对软件的开发、运行、维护和管理,以及软件的工程化过程进行研究的学科。
从范畴上来说,软件工程主要包含以下几个方面:2.1 需求分析需求分析是软件开发过程中的首要阶段,主要目的是明确用户需求,并将其转化为软件系统的功能和性能需求。
2.2 软件设计软件设计是根据需求分析结果,制定软件系统的架构和模块设计方案,以确定最终的系统结构和模块间的交互方式。
2.3 软件开发软件开发是根据软件设计方案,使用编程语言和开发工具进行代码编写、测试和调试的过程。
2.4 软件测试软件测试是为了发现并纠正软件中存在的错误和缺陷,以确保软件系统的质量和稳定性。
2.5 软件维护软件维护是对软件系统进行改进和优化的过程,包括修复错误、添加新功能和适应新的硬件或软件环境等操作。
3. 软件工程的原则和原则软件工程的实践和研究依赖于一系列基本原则和原则,这些原则和原则旨在确保软件系统在开发和维护过程中具有高质量、高效率和可靠性。
以下是几个软件工程的重要原则和原则:3.1 模块化模块化原则指将软件系统划分为若干个相对独立的模块,每个模块实现一部分功能,模块间通过接口进行交互。
这样做可以提高代码的可读性、可维护性和重用性。
3.2 可维护性可维护性原则指设计和开发一个易于理解、易于修改和易于测试的软件系统,以便在需求变更或错误修复时能够迅速进行更新和维护。
3.3 可重用性可重用性原则指设计和开发具有高度重用性的软件模块,使得开发人员在不同项目中可以复用现有的模块,从而提高开发效率和降低成本。
3.4 风险管理风险管理原则指为软件开发过程中可能遇到的各种风险制定相应的策略和计划,以降低风险对项目进度和质量的影响。