版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章软件工程概述LOADINGLOADINGDGIL
第1章软件工程概述背景知识软件工程软件危机软件生命周期软件过程教学单位教师介绍SoftwareEngineering1.41.11.21.31.5第1章软件工程概述1.1背景知识第1章软件工程概述1.1.1什么是软件程序软件数据文档计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。按事先设计的功能和性能要求执行的指令序列(instructions)使程序能正常操纵信息的数据结构与程序开发,维护和使用有关的图文材料第1章软件工程概述1.1.2软件的分类按软件的规模进行划分 类别参加人员数 研制期限源程序行数
微型
1 1~4周0.5k
小型
1 1~6月1k~2k
中型
2~5 1~2年5k~50k
大型
5~20 2~3年50k~100k
甚大型
100~10004~5年1M(=1000k)
极大型
2000~50005~10年1M~10M
第1章软件工程概述1.1.2软件的分类1系统软件操作系统数据库管理系统设备驱动程序通信处理程序2支撑软件文本编辑程序文件格式化程序磁盘向磁带进行数据传输的程序程序库系统3应用软件商业数据处理软件系统仿真软件计算机辅助设计系统仿真软件等按软件的功能进行划分第1章软件工程概述1.2软件危机Case:美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序......据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果......这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“......正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。......程序设计工作正像这样一个泥潭,......一批批程序员被迫在泥潭中拼命挣扎,......谁也没有料到问题竟会陷入这样的困境......”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。SoftwareCrisis!第1章软件工程概述1.2.1软件危机的概念如何维护数量不断膨胀的已有软件。如何开发软件,以满足对软件日益增长的需求。软件危机在计算机软件的开发和维护过程中所遇到的一系列严重问题。第1章软件工程概述1.2.1软件危机的概念
对软件开发成本和进度的估计常常很不准确。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件危机主要有以下典型表现:第1章软件工程概述1.2.2产生软件危机的原因在软件开发和维护的过程中存在这么多严重问题:与软件本身的特点有关。与软件开发与维护的方法不正确有关。第1章软件工程概述软件的特点表现形式软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性生产方式软件的生产与硬件不同,在它的开发过程中没有明显的制造过程,大多数软件仍是定制的。维护在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题要求软件产品不允许误差第1章软件工程概述软件的特点软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性软件的开发至今尚未完全摆脱手工艺的开发方式软件本身是复杂的实际问题的复杂性程序逻辑结构的复杂性
软件成本相当昂贵相当多的软件工作涉及到社会因素第1章软件工程概述软件开发与维护的方法相当多的软件专业人员在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。轻视软件维护等。轻视维护是一个最大的错误。对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。必须认识到程序只是完整的软件产品的一个组成部分。必须清除只重视程序而忽视软件配置其余成分的观念。忽视软件需求分析的重要性。作好软件定义时期的工作,是降低软件成本提高软件质量的关键。第1章软件工程概述1.2.3消除软件危机的途径彻底消除“软件就是程序”的错误观念。充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法。开发和使用更好的软件工具。第1章软件工程概述1.3软件工程第1章软件工程概述1.3.1软件工程定义软件工程是一类求解软件的工程,它应用计算机科学、数学(用于构造模型和算法)和管理科学(用于计划、资源、质量和成本等的管理)等原理,借鉴传统工程(用于制定规范、设计范型、评估成本、权衡结果)的原则和方法,创建软件以达到提高质量、降低成本的目的。第1章软件工程概述1.3.1软件工程定义软件工程是一门交叉学科软件开发技术:软件开发方法学
软件开发过程
软件工具和软件工程环境软件工程管理:软件管理学
软件经济学软件心理学软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。第1章软件工程概述1.3.1软件工程定义和谐地合作是开发软件的关键中心课题是控制复杂性软件必须有效地支持它的用户开发软件的效率非常重要关注于大型程序的构造软件经常变化软件工程本质特征
第1章软件工程概述1.3.2软件工程原理⑴用分阶段的生命周期计划严格管理
项目概要计划
里程碑计划
项目控制计划
产品控制计划
验证计划
运行维护计划⑵坚持进行阶段评审⑶实行严格的产品控制——基准配置管理(Baselineconfigurationmanagement)⑹开发小组的成员应该少而精1+1<2⑷采用现代程序设计技术⑸结果应能清楚地审查—setstandards⑺承认不断改进软件工程实践的必要性第1章软件工程概述1.3.3软件工程方法学通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。方法学包含3个要素:方法、工具和过程。目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。第1章软件工程概述1.3.3软件工程方法学
1.传统方法学传统方法学也称为生命周期方法学。它采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。开发软件的时候,从对问题的抽象逻辑分析开始,一个阶段一个阶段地进行开发。第1章软件工程概述1.3.3软件工程方法学
2.面向对象方法学面向对象方法学具有下述4个要点:把对象作为融合了数据及在数据上的操作行为的统一的软件构件。用对象分解取代了传统方法的功能分解。把所有对象都划分成类。每个类都定义了一组数据和一组操作。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据之上的操作用于实现对象的动态行为。第1章软件工程概述1.3.3软件工程方法学按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。对象彼此间仅能通过发送消息互相联系。对象的所有私有信息都被封装在该对象内,不能从外界直接访问。第1章软件工程概述1.4软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成。软件定义(系统分析)时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。软件定义时期通常划分成3个阶段,即问题定义、可行性研究和需求分析。第1章软件工程概述1.4软件生命周期软件开发时期通常由4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。维护时期的主要任务是使软件持久地满足用户的需要。第1章软件工程概述1.4软件生命周期1.问题定义必须回答的关键问题是:“要解决的问题是什么?”
通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。第1章软件工程概述1.4软件生命周期2.可行性研究
要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”
可行性研究应该比较简短,但是一个压缩和简化了的系统分析和设计过程。这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。第1章软件工程概述1.4软件生命周期3.需求分析
这个阶段要准确地确定“为了解决这个问题,目标系统必须做什么?”,主要是确定目标系统必须具备哪些功能、性能。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。该阶段的重要任务是编写规格说明书。第1章软件工程概述1.4软件生命周期4.总体设计回答的关键问题是:“概括地说,应该怎样实现目标系统?”
。设计出实现目标系统的几种可能的方案并推荐一个最佳方案。用适当的表达工具描述每种方案,分析每种方案的优缺点。制定出实现最佳方案的详细计划。设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。第1章软件工程概述1.4软件生命周期5.详细设计回答的关键问题是:“应该怎样具体地实现这个系统呢?”设计出程序的详细规格说明。这种规格说明包含必要的细节,程序员可以根据它们写出实际的程序代码。详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。第1章软件工程概述1.4软件生命周期6.编码和单元测试关键任务是写出正确的容易理解、容易维护的程序模块。程序员应该根据目标系统的性质和实际环境,选取一种适当的程序设计语言,把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。第1章软件工程概述1.4软件生命周期7.综合测试关键任务是通过各种类型的测试使软件达到预定的要求。最基本的测试是集成测试和验收测试。用正式的文档资料把测试计划、详细测试方案以及实际测试结果保存下来,作为软件配置的一个组成部分。第1章软件工程概述1.4软件生命周期8.软件维护关键任务是通过各种必要的维护活动使系统持久地满足用户的需要。通常有4类维护活动:改正性维护;适应性维护;完善性维护;预防性维护。软件维护实质上是经历了一次压缩和简化了的软件定义和开发的全过程。第1章软件工程概述1.5软件过程软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。通常使用生命周期模型简洁地描述软件过程。第1章软件工程概述1.5.1瀑布模型图1.1传统的瀑布模型第1章软件工程概述1.5.1瀑布模型1阶段间具有顺序性和依赖性必须等前一阶段的工作完成之后,才能开始后一阶段的工作。前一阶段的输出文档就是后一阶段的输入文档。3质量保证的观点为保证软件质量需要做到:每个阶段都必须完成规定的文档,每个阶段结束前都要对所完成的文档进行评审。2推迟实现的观点对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。忽视认真地系统分析与设计,过早地考虑进行程序实现,往往导致大量返工。第1章软件工程概述
图1.2实际的 瀑布模型第1章软件工程概述1.5.1瀑布模型可强迫开发人员采用规范的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。使用户全面正确地认识动态的软件产品。用户最初提出的需求发生了变化。优点缺点第1章软件工程概述1.5.2快速原型模型快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。第1章软件工程概述图1.3快速原型模型第1章软件工程概述1.5.2快速原型模型快速原型模型是不带反馈环的,这正是这种过程模型的主要优点:软件产品的开发基本上是线性顺序进行的。软件开发可以线性进行的主要原因如下:原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西,因此在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。第1章软件工程概述1.5.3增量模型增量模型分批地逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发人员一个构件接一个构件地向用户提交产品。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个模块构成,并且能够完成特定的功能。把软件产品分解成增量构件时,应该使构件的规模适中,规模过大或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 48323-2026电动道路车辆用镍氢动力蓄电池包和系统电性能试验方法
- T/ZPMA 0002-2024RFID技术物联网应用与数据安全技术规范
- T/JSCTS 87-2025地铁车站高效通风空调系统设计技术规范
- T/CNFAGS 20-2025液体肥料塑料包装容器
- T/CC 16-2026跨境商品交易所国际协作指南
- T/CSPSTC 187-2025板桁(板梁)组合体系钢-混凝土组合桥面板设计技术规程
- GB/T 48286-2026运载火箭和航天器地面分离试验要求
- 2025~2026学年广东省深圳市罗湖区北师大版三年级上册阳光评价数学试卷【附答案】
- 人工智能在证据整 理与案情分析中的应用
- AI农产品品质检测分级分拣技术
- 《TCWTCA装配式高桩码头节点连接技术规程》
- 2026秋统编版小学道德与法治三年级上册各单元综合测试卷(附期中、末测试卷)(含答案)
- 2026年校招:中国国际航空试题及答案
- 2025 年党员发展对象培训核心考点速记手册
- 中国临床肿瘤学会(CSCO)抗肿瘤治疗相关恶心呕吐诊疗指南2025
- 河南政务服务中心招聘笔试必刷题题库及解析
- 2026中国建设银行招聘考试(信息技术类)历年参考题库含答案详解
- 2025年河南省省直机关公务员遴选笔试真题及完整答案解析
- 2026-2027学年七年级语文上册期中综合冲刺模拟测试试卷
- 2026年工贸企业有限空间作业专项整治考核试卷及答案
- 2026年研发人员薪酬考核方案
评论
0/150
提交评论