还剩2页未读,继续阅读
文本内容:
软件工程基本概念软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面软件定义与软件特点11)软件的定义与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据2)软件的特点
(1)软件是一种逻辑实体,而不是物理实体,具有抽象性;
(2)软件的生产与硬件不同,它没有明显的制作过程;
(3)软件在运行、使用期间不存在磨损、老化问题;但为了适应硬件、环境以及需求的变化要进行修改,会导致一些错误的引入,导致软件失效率升高,从而使得软件退化;
(4)软件的开发、运行对计算机系统具有依赖性,受到计算机系统的限制,这导致了软件移植的问题;
(5)软件复杂性高,成本昂贵软件开发需要投入大量、高强度的脑力劳动,成本高,风险大;
(6)软件开发涉及诸多的社会因素许多软件的开发和运行涉及软件用户的机构设置,体制问题以及管理方式等,甚至涉及到人们的观念和心理,软件知识产权及法律等问题3)软件的分类按功能分,可分为应用软件为解决特定领域的应用而开发的软件系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件支撑软件(或工具软件)介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件软件危机与软件工程21)软件危机泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题它主要表现在
(1)软件需求的增长得不到满足,用户对系统不满意的情况经常发生;
(2)软件开发成本和进度无法控制开发的成本超预算和开发周期的超期经常出现;
(3)软件质量难以保证;
(4)软件不可维护或维护程度非常低;
(5)软件成本不断提高;
(6)软件开发生产率的提高赶不上硬件的发展和应用需求的增长2)软件工程软件工程的定义是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序软件工程包括3个要素方法、工具和过程方法完成软件工程项目的技术手段工具支持软件的开发、管理、文档生成过程支持软件开发的各个环节的控制、管理软件工程过程与软件生命周期31)软件工程过程软件工程过程把输入转化为输出的一组彼此相关的资源和活动支持软件工程过程的两方面内涵
(1)软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动它包括4种基本活动P一软件规格说明规定软件的功能及其运行时的限制;D一软件开发产生满足规格说明的软件;C一软件确认确认软件能够满足客户提出的要求;A一软件演进过程为满足客户的变更要求,软件必须在使用的过程中演进
(2)使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)软件工程过程是将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的2)软件生命周期将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期即软件的生命周期就是软件产品从开始考虑其概念开始,到软件产品不能使用为止的整个时期都属于软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动这些活动可以有重复,执行时也可以有迭代软件生命周期的主要阶段软件定义、软件开发、软件维护软件生命周期的主要活动阶段是
(1)可行性研究与计划制定
(2)需要分析
(3)软件设计
(4)软件实现
(5)软件测试
(6)运行和维护其中,
(1)和
(2)属于软件定义阶段
(2)-
(5)属于软件开发阶段
(6)属于软件维护阶段软件工程的目标与原则41)软件工程的目标软件工程的目标在给定成本、进度的情况下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品软件工程需要达到的基本目标付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发,及时交付使用软件工程的理论和技术性研究的内容包括软件开发技术和软件工程管理
(1)软件开发技术软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学软件开发方法学是根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料都做出规定,从而使软件开发能够进入规范化和工程化的阶段
(2)软件工程管理软件工程管理软件管理学、软件工程经济学、软件心理学等内容软件工程管理学包括人员组织、进度安排、质量保证、配置管理、项目计划等软件工程经济学是研究软件开发中成本的估算、成本效益分析的方法和技术,用经济学的基本原理事研究软件工程开发中的经济效益问题软件心理学从个体心理、人类行为、组织行为和企业文化等角度来研究软件管理和软件工程2)软件工程的原则为了达到上述软件工程目标,在软件开发过程中,必须遵守软件工程的基本原则这些原则适用于所有的软件项目这些基本原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性
(1)抽象抽取事物最基本的特性和行为,忽略非本质细节采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性
(2)信息隐蔽采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单
(3)模块化模块是程序中相对独立的成分,一个独立的编程单位,应用良好的接口定义
(4)局部化模块间具有松散的耦合关系,模块内部有较强的内聚性,这有助于控制解的复杂性
(5)确定性软件开发过程中所有概念的表达应是确定的、无歧义且规范的这有助于人们之间的交互不会产生误解和遗漏,以保证整个开发工作的协调一致
(6)一致性包括程序、数据和文档的整个软件系统的各模块应使用已知的概念、符号和术语,程序内外接口应该保持一致,系统规格说明与系统行为应保持一致
(7)完备性软件系统不会丢失任何重要成分,完全实现系统所需的功能
(8)可验证性开发大型软件系统需要对系统自顶向下,逐层分解系统分解应遵循容易检查、测评、评审的原则,以确保系统的正确性软件开发工具与软件开发环境51)软件开发工具早期的软件开发,最早使用的是单一的程序设计语言,没有相应的开发工具,效率很低,随着软件开发工具的发展,提供了自动的或半自动的软件支撑环境,为软件开发提供了良好的环境2)软件开发环境软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合计算机辅助软件工程将各种软件工具、开发机器和一个存放开发过程信息的中心数据库组成起来,形成软件工程环境。
个人认证
优秀文档
获得点赞 0