您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 计算机导论第11章 软件工程
第十一章软件工程面向职业体现系统重视实践强化应用计算机导论扬州职业大学第十一章软件工程面向职业体现系统重视实践强化应用第十一章软件工程第十一章软件工程面向职业体现系统重视实践强化应用学习目标了解软件的定义和特点理解软件工程的概念与思想熟悉软件生命周期的理论与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用任务1:了解软件的定义与特点软件的定义软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列,程序是软件的主体。数据是使程序能正常操纵信息的数据结构。文档是与程序开发,维护和使用有关的图文材料。第十一章软件工程面向职业体现系统重视实践强化应用软件的特点抽象性可复制性无磨损性依赖性复杂性任务1:了解软件的定义与特点第十一章软件工程面向职业体现系统重视实践强化应用软件危机软件危机主要表现在以下几个方面:软件的需求不断地增长,用户对系统不够满意。软件开发的进度和成本难以控制,经常会出现经费超预算、完成期限一再拖延的现象。软件需求在开发初期不明确,导致矛盾在后期集中爆发。由于缺乏完整规范的资料,加之软件测试不充分,从而造成软件质量低下,运行中出现大量问题。任务1:了解软件的定义与特点第十一章软件工程面向职业体现系统重视实践强化应用任务2:理解软件工程的概念与思想软件工程的定义软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。第十一章软件工程面向职业体现系统重视实践强化应用对于软件工程的理解可以包含以下几个方面:软件工程是一门指导计算机软件开发和维护的工程学科。软件工程不是传统意义上的工程,没有陈述的系统化方法。任务2:理解软件工程的概念与思想第十一章软件工程面向职业体现系统重视实践强化应用软件工程的内容软件工程的主要内容:是软件开发技术和软件工程管理。软件开发技术:包含软件开发方法、软件工具、软件工程环境。软件工程管理:包含软件工程经济、软件管理。任务2:理解软件工程的概念与思想第十一章软件工程面向职业体现系统重视实践强化应用软件工程包括3个基本要素:方法、工具和过程。方法:完成软件工程项目的技术手段、为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列任务。工具:支持软件的开发、管理和文档的生成。过程:支持软件开发的各个环节的控制和管理。任务2:理解软件工程的概念与思想第十一章软件工程面向职业体现系统重视实践强化应用软件工程的主要目标:合理预算成本,降低开发费用,提高开发效率;控制开发进度,实现预期功能,满足用户需求;提高软件质量,使软件具有可靠性、可理解性、可重用性、可适应性、可移植性、可追踪性和可维护性。任务2:理解软件工程的概念与思想第十一章软件工程面向职业体现系统重视实践强化应用软件工程的思想软件工程的核心思想:把软件产品看成一个工程产品来处理。软件开发阶段包含以下基本思想和方法:抽象化:从编程对象中抽取最基本的属性和行为,忽略非基本的细节。模块化:通过对象、类等模块化手段,实现系统的模块化和层次化,控制软件系统的复杂性。任务2:理解软件工程的概念与思想第十一章软件工程面向职业体现系统重视实践强化应用局部化:在模块内部保持较强的内聚,模块之间保持松散耦合,控制软件模块的复杂性。隐蔽化:将模块设计成“黑箱”,实现细节隐藏在模块内部,模块使用者只能通过接口进行访问,达到使用与实现的分离,保证软件系统的可组装性。确定性:软件开发过程中的所有概念表达应是确定的、无歧义的、规范的。一致性:软件系统的各个模块应使用一致的概念、符号和术语。任务2:理解软件工程的概念与思想第十一章软件工程面向职业体现系统重视实践强化应用完备性:软件系统所需要的各个部件应是齐全的、完备的、正确的。可验性:软件系统开发过程中的各个环节应是可检查的、可测试的、可评审的。任务2:理解软件工程的概念与思想第十一章软件工程面向职业体现系统重视实践强化应用任务3:熟悉软件生命周期的思想与各阶段的任务软件生命周期的概念软件生命周期,就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的周期一次划分为若干阶段,每个阶段有相对独立的子任务,然后逐步完成每个阶段的任务。第十一章软件工程面向职业体现系统重视实践强化应用软件生命周期的划分软件的生命周期的阶段划分有两种方式:6个阶段和3个阶段。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用1、计划阶段可行性研究和计划的制定。确定待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源成本以及进度进行合理的估算。2、需求分析阶段分析整理和提炼所收集到的用户的需求,建立完成的分析模型,编写软件需求规格说明和初步的用户手册,提交评审。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用3、软件设计阶段系统设计人员和程序设计人员应该在反复理解软件需求的基础上,按照需求规格说明书确定软件的结构、模块的划分、进而确定每个模块的算法,数据结构和结构等,编写概要设计说明书、详细设计说明书和测试计划初稿,提交评审。4、软件实现阶段将所设计的各个模块编写成计算机可以接受的程序代码以及实现相关的文档。也就是完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用5、软件测试阶段在设计测试用例的基础上,测试软件的各个组成部分。然后,将各个模块集成起来,测试整个产品的功能和性能是否满足已有的规格说明。6、软件运行维护阶段在运行使用过程中多软件产品进行不断地维护工作。维护的是软件过程的一个组成部分,应该在软件的设计和实现阶段充分考虑到其可维护性,维护阶段需要测试是否正确地实现了所要求的修改,并确保在产品维护过程中没有其他无关的改动。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用软件生命周期理论的应用1、计划计划包括问题定义和可行性研究两个方面。问题定义:主要确定开发项目要解决的问题是什么。可行性研究:要确定的问题是,对于问题定义阶段确定的项目是否有行之有效的解决方法。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用一般从以下3个方面进行分析研究:技术可行性:使用现有的技术是否能够完成这一项目。经济可行性:项目完成后产生的经济效益是否能超出开发成本,并能获得预期的收益。操作可行性:项目实现后的运作方式在用户组织内部是否可以实施。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用2、需求分析需求分析的目标:是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求。(1)需求分析定义1997年IEEE软件工程标准词汇表对需求定义如下:用户解决问题或达到目标所需要的条件或权能;系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。一种反映前两点所描述的条件或能力的文档说明。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用(2)需求分析过程需求分析阶段的工作,可以分成4个方面:需求的获取需求获取的目的是确定对目标系统的各个方面的需求。需求分析需求分析主要是对收集到的需求进行提炼、分析和仔细审查,以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏或其它不足的地方,形成完整的分析模型。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用编写软件需求规格说明书软件需求规格说明书是需求开发的最终结果,它精确地阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件。需求评审在需求分析的最后,应该对功能的正确性、一致性、完备性、准确性和清晰性,以及其他需求给予评审。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用(3)需求分析方法常见的需求分析方法有:面向数据流的结构化分析方法(SA,StructureAnalysis)面向数据结构的Jackson方法(JSD,Jacksonsystemdevelopmentmethod)面向数据结构的结构化数据系统开发方法(DSSD,Datastructuredevelopmentmethod)面向对象的分析方法(OOA,Object-Orientedmethod)任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用3、设计设计工作通常分两个阶段:概要设计、详细设计(1)概要设计的任务:设计软件的系统体系结构以及数据库的相关设计并编写概要设计文档,进行概要设计文档评审。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用设计软件体系结构:概要设计阶段将需求分析的结果进一步分解,划分为模块和模块的层次结构。概要设计首先采用某设计方法,将一个复杂的系统按照功能划分成若干个模块,确定个模块的功能以及调用关系,而后确定模块间的接口,最后模块的质量进行评价。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用数据设计:确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计确定输入,输出文件的详细的数据结构结合算法设计,确定算法所必需的逻辑数据结构及其操作,确定对逻辑数据结构所必需的那些操作的程序模块(软件包);数据的保护性设计:防卫性设计、一致性设计、冗余性设计、可靠性设计。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用编写概要设计文档:在概要设计阶段,要编写概要设计说明书、数据库设计说明书、用户手册以及制定初步的测试计划。概要设计文档评审:在概要设计阶段,对设计部分是否完成地实现了需求中规定的功能、性能等要求。对设计方案的实用性、技术清晰度、可维护性、质量等问题进行评审。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用具体进行模块设计时,一般遵循以下原则:提高模块的独立性模块的规模要适中模块之间的控制以及调用关系要适度模块的作用域应该在该模块的控制域内减少模块接口和界面的复杂度设计成单路口、单出口的模块设计功能可以预测的模块任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用(2)详细设计详细设计也叫做过程设计或程序设计,它不同于编码或编程详细设计,是为软件结构图中的各个模块确定实现算法以及数据结构,并用相应的描述工具加以细节性表达。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用4、编码编码的主要任务:写出正确的容易理解的、容易维护的程序模块。5、测试测试阶段的主要任务:通过各种类型的测试,保证项目软件达到预定的要求。任务3:熟悉软件生命周期的思想与各阶段的任务第十一章软件工程面向职业体现系统重视实践强化应用(1)测试的目的广义上讲,测试是指软件产品生存周期内所有的检查、评审和确认活动,如设计评审、系统测试。狭义上讲,测试是对软件产品质量的检验和评价,它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价。任务3
本文标题:计算机导论第11章 软件工程
链接地址:https://www.777doc.com/doc-3381210 .html