软件工程学

本文介绍了软件工程学的历史、软件危机的产生原因和表现,以及解决软件危机的策略。软件危机表现为软件成本高、质量差、维护困难等问题。为解决这些问题,需要采用良好的开发技术和管理方法,如使用现代软件开发工具,实施严格的组织管理和流程。软件工程方法包括面向对象方法和传统方法,采用不同模型如瀑布模型、原型模型等进行开发。此外,文章还探讨了需求分析、设计过程、编码和测试的重要环节,以及面向数据流和数据结构的设计方法。最后,提到了面向对象方法学和UML在软件开发中的应用。
摘要由CSDN通过智能技术生成

软件工程
概述——软件工程是指导计算机软件开发和维护的学科
软件工程的产生
软件工程的发展史
软件危机产生并越来越严重,因为逐步形成了研究如何消除软件危机,以及如何合理的开发和维护软件的学科——软件工程学
软件危机
软件危机是指在计算机软件开发和维护时所遇到的一系列问题。
1、 软件危机产生的原因
软件危机的产生的原因与软件的特点有关,也与软件开发的方式、方法、技术和软件开发人员本身的素质有关。具体来说,有以下几点:
1> 软件是计算机系统中的逻辑部件,软件产品往往规模庞大,给软件的开发和维护带来客观的困难。
2> 软件一般要使用5-10年,在这段时间里,很可能出现开发时没有预料到的问题。例如,当系统运行的硬件、软件环境发生变化时,系统需求发生了变化时,需要及时地维护软件,使软件可以继续使用。
3> 软件开发技术落后,生产方式和开发工具落后。
4> 软件开发人员忽视软件需求分析的重要性,对软件可维护性不重视,也是造成软件危机的原因之一。
2、 软件危机的主要表现形式
1> 软件的发展速度跟不上硬件的发展和用户的需求。
2> 软件的成本和开发进度不能预先估计,用户不满意。
3> 软件产品质量差,可靠性不能保证。
4> 软件产品可维护性差。
5> 软件没有合适的文档资料
3、 解决软件危机的途径
现代计算机普遍采用的是冯诺依曼计算机系结构,硬件的基本解功能只是做简单的运算与逻辑判断,主要还是适用于数值计算。随着计算机应用的日益广泛,许多企事业单位的计算机,80%以上用于管理方面。管理方面大多为非数值计算问题,需要设计计算机软件来进行处理,因而可能会使软件变得复杂、庞大,从而导致软件危机的产生。
要解决软件危机问题,需要采用以下措施:
1> 使用好的软件开发技术和方法
2> 使用好的软件开发工具,提高软件生产率
3> 开发软件时有良好的组织、严密的管理,各方面人员相互配合共同完成任务
为了解决软件危机,既要有技术措施(好的工具和方法),也要有组织管理措施。软件工程正是从技术和管理两个方面来研究如何更好地开发和维护计算机软件的。
软件工程学
什么是软件
软件是计算机程序及其有关的数据和文档的完整集合。
计算机程序是能够完成预定功能可执行的指令序列;数据是程序能适当处理的信息,具有适当的数据结构,并且可以可以储存;软件文档(Software Documentation)是开发、使用和维护程序所需要的图文资料。
什么是软件工程
软件工程是指导计算机软件开发和维护的工程学科,它采用工程的概念、原理、技术和方法来开发与维护软件。
软件工程的目标是实现软件的优质高产。
软件工程学的内容
软件工农程雪的主要内容是软件开发技术和软件工程管理。其中,软件开发技术包括软件工程方法学、软件工具和软件开发环境;软件工程管理包括软件工程经济学和软件管理学。
软件工程方法学的3要素,分别为方法、工具和过程。
方法:完成软件开发任务的技术方法
工具:为方法的运用提供自动或半自动的软件支撑环境
过程:规定完成任务的工作阶段、工作内容、产品、验收的步骤和完成准则
目前使用最广泛的软件工程方法学可以分为传统方法学和面向对象方法学:
1> 传统方法学
2> 面向对象方法学
面向对象方法学是多次反复、迭代开发的过程。
软件生存周期
软件生存周期(Software Life Cycle)是从设计软件产品开始到产品不能使用为止的时间周期。让通常包括需求设计、设计阶段、实现阶段、测试阶段、安装和验收阶段、操作和维护阶段,有时还包括退役阶段。
软件生存周期一般由软件计划、软件开发和软件运行维护3个时期组成
软件计划期分为问题定义、可行性研究和需求分析3个阶段
软件开发时期可分为软件设计、软件实现、单元测试和综合测试阶段。其中,软件设计阶段可分为概要设计和软件详细设计阶段;软件实现阶段进行程序设计和软件单元测试;软件开发的最后阶段是进行综合测试等。
软件交付使用后,在软件运行过程中,需要不断地进行维护,才能使软件持久地满足用户的需要。(维护时期费用最高、时间最长——完善型维护)
软件开发模型
1> 瀑布模型:瀑布模型的特点是由文档驱动(规范的、文档驱动的方法。开发阶段按顺序进行,适合于需求分析较明确、开发技术叫成熟的情况)
2> 快速原型模型:(构建原型系统让用户试用并收集用户意见,获取用户真实需求)
3> 增量模型:增量模型是对瀑布模型的改进,他使开发过程具有一定的灵活性和可修改性(优点是能在早期向用户提交部分产品且易于维护,缺点是软件的体系结构必须是开放的)
4> 迭代模型
5> 喷泉模型(Fountain Model)是典型的面向对象软件开发模型(适用于面向对象方法)
6> 螺旋模型:螺旋模型要求在软件开发的初期就完全确定软件的需求,这在很多情况下往往是做不到的。螺旋模型试图克服瀑布模型的这一不足之处。(适用于大规模内部开发项目,分析风险和排除风险)
7> 统一过程(Rational Unified Process ,RUP)使用统一建模语言(Unified MOdelingLanguage,UML),采取用例(Use case)驱动和架构优先的策略,采用迭代增量建造方法。
通常结构化方法可使用瀑布模型、增量模型和螺旋模型进行开发;而面向对象方法可采用快速原型模型、增量模型、喷泉模型和统一过程进行开发

软件计划——软件计划是软件项目开发前期的一个重要阶段,分为软件问题定义、可行性研究和需求分析3个阶段
软件问题定义及可行性研究
系统定义是整个工程的基础,他的任务是:
充分理解所涉及的问题,对问题的解决办法进行论证。
评价问题解决办法的不同实现方案
表达解决方案,以便进行复审。
1> 明确系统的目标、规模和基本要求
在调查研究的基础上,弄清你开发软件的基本要求、目标、假定、限制、可行性研究的方法、评价尺度等。
1) 基本要求。包括软件的功能、性能、输入(数据的来源、类型、数量,数据的组织以及提供的频度)、输出(如报告、文件和数据,说明其用途,产生频度、接口及分发对象)、处理流程和数据流程、安全和保密方案的要求、同本系统相连接的其他系统等
2) 系统目标。例如,人力与费用设备的减少;处理速度的提高;控制精度及生产能力的提高;管理信息服务的改进;人员利用率的改进等
3) 系统开发的条件、假定和限制。例如,系统运行寿命的最小值;经费、投资的来源和限制;硬件、软件、运行环境和开发环境的条件和限制;可利用的信息和资源ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值