高级软件工程第1章概述_第1页
高级软件工程第1章概述_第2页
高级软件工程第1章概述_第3页
高级软件工程第1章概述_第4页
高级软件工程第1章概述_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章软件工程概述

§1.1软件工程回顾1.软件工程(SoftwareEngineering)软件工程:是指“运用工程学的原理和方法来组织管理软件的生产、研究、开发和维护的过程、方法和技术。特征:它是一门介于计算机科学、软件科学、系统工程学和管理工程学之间的综合性交叉学科。产生原因:软件危机的出现2.软件生命周期指“软件从孕育、诞生、成长、成熟到衰亡的生存过程”软件生命周期一般划分为3个时期和8个阶段(1)软件定义时期包括3个阶段:问题定义可行性研究需求分析(2)软件开发时期包括4个阶段:概要设计、详细设计编码、测试(3)软件维护时期包括1个阶段:软件维护软件维护通常有4类活动:改正性维护适应性维护完善性维护预防性维护注意:软件定义时期的主要任务是解决“做什么”的问题软件开发时期的主要任务是解决“如何做”的问题软件维护时期的主要任务是使软件持久地满足用户需要§1.1软件工程回顾3.软件工程的目标、性能指标和原则

(1)软件工程的目标目标:生产具有正确性、可用性和开销合宜的软件产品其中:正确性:指软件产品达到预期的功能和性能程度可用性:指软件产品为用户可用的程度。开销合宜:指软件开发、运行和维护的整个开销满足用户或开发者要求的程度。§1.1软件工程回顾(2)软件产品的性能指标为达到上述目标软件产品应具有的性能指标:(10项)

①可修改性:在开发进程中出现问题能够改正的程度②有效性:能最有效地利用计算机的时空资源③可靠性:具有挽回软件系统失效的能力④可理解性:可视性和可读性(包括文档、模型和程序等)⑤可维护性:即交付使用后的修改性和更新性⑥可重用性:软件可在多种场合被重复使用(包括文档、源代码、目标代码等)⑦可适应性:软件在不同系统约束条件下,使用户的需求都可以得到不同程度的满足。§1.1软件工程回顾⑧可移植性:不同系统和环境互用(包括源程序、目标程序、模型和文档等)。⑨可追踪性包括:正向追踪:根据需求对软件设计和程序进行追踪逆向追踪:根据程序和软件设计对需求进行追踪注意:在软件开发工具中称“正向工程”和“逆向工程”,如UML⑩可互操作性:多个软件元素相互通信并协同完成任务的能力。如Office§1.1软件工程回顾(3)软件工程原则为实现上述目标和性能指标软件开发过程中应遵循的原则:(7项)①抽象:抽象指“抽出事物最基本的特性和行为,暂时忽略其非基本的细节”作用:控制软件开发过程的复杂性,有利于软件的可理解性和开发过程的管理§1.1软件工程回顾②信息隐蔽:信息隐蔽指“一个模块内的信息(过程或数据)对不需要这些信息的模块不能访问”。进一步讲是“将模块中的设计内容和实现决策封装起来,即设计和实现细节被隐藏,而外部只提供模块功能和接口的有关说明。如下图所示:接口(函数名)

模块接口(公有虚函数)接口(公有函数)类

抽象类(组件)§1.1软件工程回顾③模块化模块化指“将大的、复杂的程序化分成若干个逻辑上相对独立、功能相对简单的小程序(模块)”作用:是实现抽象和信息隐蔽的手段和方法,有助于降低软件系统复杂性。在程序结构中,模块可分为3类:

•顺序模块特点:在没有中断的情况下,被引用和执行

•增量模块(也称协同程序)特点:在引用完之前,可以被中断,然后在中断处重新启动

•并行模块(也称并发程序)特点:在并行处理机的环境中,与另外的模块同时执行。在单个处理机上则称多线程。§1.1软件工程回顾内聚:标志着一个模块内各个元素彼此间结合的紧密程度包括:功能、顺序、通讯、过程、时间、逻辑、偶然内聚耦合:是对一个软件结构中不同模块之间互连程度的度量包括:数据、控制、公共环境、内容耦合

原则:多使用数据耦合、少用控制耦合 限制使用公共环境耦合、完全不用内容耦合④局部化局部化指“把一些逻辑上关系密切软件元素物理的放在一起”作用:保证系统中模块内部的高内聚性和模块间的低耦合性,有助于模块的独立性。§1.1软件工程回顾⑤一致性一致性指:要求整个软件系统(包括文档和程序)使用:

一致的概念、符号和术语

•一致的程序内部接口和软、硬件接口

一致的系统规格说明与形式化公理系统

•一致的系统界面、编码风格和数据组织形式等作用:方便阅读、修改、维护和进一步开发。⑥完整性完整性指“功能完备、资料齐全”⑦可验证性可验证性指“系统容易检查、测试和评审等”

§1.1软件工程回顾§1.2软件工程方法学

通常把在软件生命周期全过程中使用的一整套技术的集合称为方法学(也称为范型)软件工程方法学包含3个要素:方法、工具和过程1.软件工程方法指“完成软件开发各项任务的技术方法”包括:(1)项目计划和估算如:估算技术有:参数方程、标准值、COCOMO模型等计划方法有:Gantt图、横道图、工程网图(2)软件分析和设计如:•SA和SD:主流技术是数据流图+层次图+流程图

Jackson方法

Warnier方法OOA和OOD:

OMT方法(ObjectModelingTechnology)

Rumbaugh提出,分析是强项,设计是弱项

Booch方法

Booch提出,分析是弱项,设计是强项

OOSE方法(Objec-OrientedSoftwareEnginneering)

Jacobson提出,(亦称Jacobson方法)

行为分析是强项,其它是弱项形式化分析和设计方法:Petri网,时态逻辑,…(3)编码和测试如:编码技术有:SP、OOP

测试技术有:白盒和黑盒等(4)维护技术(上述方法技术的综合)

§1.2软件工程方法学

2.软件工具

指“为方法的运用提供的软件支撑环境”包括:项目管理工具:MSProject(注:进度和经济(成本、效益分析))配置管理工具:TrueChange(注:是一种组织和控制修改的技术)分析设计工具:UML(注:面向对象软件建模工具)

UnifiedModelingLanguage程序设计工具:VC++、C#、VB、Java测试工具:WinRunner(功能测试)

LoadRunner(性能测试)维护工具:上述工具的综合

CASE(ComputerAidedSoftwareEngineering)

I--CASE(

Integrated--……)注:计算机辅助软件工程和集成化的计算机辅助软件工程§1.2软件工程方法学

3.软件过程

指“软件生命周期中的一系列相关活动”

进一步讲,是指“软件开发所需完成的一系列任务及完成这些任务的工作步骤。任务有:分析、设计、编码、测试、运行和维护等

工作步骤:可用软件生命周期过程模型(框架)来描述是基于面向过程

瀑布模型

增量模型过程模型有原型模型螺旋模型喷泉模型:是基于面向对象

变换模型:是基于形式化方法§1.2软件工程方法学

§1.3

面向对象方法回顾基本思想:是把对象(客观世界的事物或实体)作为基本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论