PPTOK :您身边最贴心好用的PPT站!

您当前所在位置:澳门视频百家乐 > PPT课件 > 学校ppt > 高校大学PPT → sad03软件工程方法ppt

sad03软件工程方法ppt

  • 素材大小:2.09 MB
  • 素材授权:免费下载
  • 更新时间:2016-09-26
  • 素材类别:高校大学PPT
  • 素材格式:.ppt
  • 关键提要:软件工程
  • 素材版本:PowerPoint2003及以上版本(.ppt)
网友评分:
PPT介绍优秀PPT相关PPT精品PPT

这是一个关于sad03软件工程方法ppt,主要介绍了过程与方法、结构化开发方法、面向对象开发方法、基于构件的方法、形式化开发方法等内容。

PPT预览

sad03软件工程方法ppt

PPT内容

系统分析与设计 System Analysis and Design
谭火彬
第03章 软件工程方法
Software Engineering Method
过程与方法
过程与方法
过程是一种“战术”,而方法则是基本的“作战技能”
是一种多对多的关系,没有严格的对应,但有些最佳实践
过程只是一个模板,每个团队都有自己的特点,结合不同的方法定义自己的过程
软件开发方法
结构化开发方法
面向对象开发方法
基于构件的方法
形式化开发方法
软件开发方法
结构化开发方法
面向对象开发方法
基于构件的方法
形式化开发方法
结构化开发方法
一种传统的开发方法
使用结构化编程、结构化设计和结构化分析技术的系统开发方法
20世纪60年代:结构化编程(首次通过工程化方法来提高计算机编程的质量)
20世纪70年代:结构化设计(把分散的程序组合为更加复杂的信息系统)
20世纪80年代:结构化分析(开发人员在设计程序之前定义明确的需求)
结构化编程
结构化编程(Structured Programming, SP)
提高程序质量
允许其他程序员可以非常容易地阅读和修改程序
每个程序模块都有一个开始和一个结束
程序执行过程中的每一步都由三种程序结构之一组成:顺序、选择、循环
自顶向下(模块化)程序设计:把更复杂的程序分解为程序模块的层次图
结构化编程的三种结构
自顶向下(模块化)程序设计
结构化设计
结构化设计(Structured Design, SD)是一项技术,它为确定下列事物提供指导:
程序集的组成
每一个程序应该实现哪些功能
如何把这些程序组织成不同层次
利用结构图(Structure chart, SC)描述程序的模块层次关系
结构化设计基本原则
低耦合(Loosely coupled):模块间尽可能保持相对独立
高内聚(Highly cohesive):每一个模块实现一件清晰的任务
SC图示
流程图的基本要素
结构化设计中的结构图
结构化分析
结构化分析(Structured Analysis)是一项技术,它帮助开发人员定义:
系统需要完成的功能(功能需求)
系统需要存储和使用的数据(数据需求)
系统需要的输入和输出
如何这些功能结合在一起完成任务
利用数据流图(Data Flow Diagram, DFD)和实体关系图(Entity Relationship diagram, ERD)描述结构化分析的结果
数据流图
从数据流动和变换的角度,以图形的方式刻画数据从输入到输出的流动变换过程
结构化分析中的数据流图
ER图中的元素
描述数据实体(Entity)及实体之间的关系(Relationship)
结构化分析中的实体关系图
结构化开发方法总结
结构分析过程
获取原始需求
数据建模:实体关系图ERD(定义数据对象、属性和关系)
功能建模:数据流图DFD 、数据字典DD(指明数据如何在系统内被变换)
行为建模:状态-迁移图STD、控制流图CFD(描述事件的影响)
主要实施步骤
由DFD图变换到SC图
根据SC图设计模块间调用的接口
定义数据结构
定义数据库结构
描述过程的实现算法: 流程图
案例3-1:结构化分析设计
售票员根据旅客需要的航班,首先查询有无该航班机票。若有,则负责录入旅客基本信息(姓名、身份证号码、航班号、票价和到达港);保险公司的服务员负责录入保险金额;售票部经理可随时查询每一个航班的售票情况(航班号、售出机票的数量、营业额),并在当日结算时计算出日营业额。
由DFD开始分析
分层细化DFD
分层细化DFD:查询和录入
分层细化DFD:统计和计算
定义数据字典-数据流
定义数据字典-数据存储
定义数据字典-数据项
定义数据字典-数据变换
评审DFD,找出变换中心
根据变换中心设计顶层、一层SC
设计下层SC…
详细设计(以录入保险信息为例)
接口设计-定义模块间的接口
//获取保险信息
struct BX_info * get_BX_info();
//获取保险级别
int get_BX_rank();
//获取保险标准
int get_BX_stand();
//录入保险信息
struct basic_BX_info * BX_input(char input *);
数据设计-定义程序级数据结构
//个人保险信息
struct BX_info {
struct basic_BX_info basic_info;
int   rank;
int  stand;
};
过程设计-获取保险信息算法
算法表述
软件开发方法
结构化开发方法
面向对象开发方法
基于构件的方法
形式化开发方法
面向对象的开发方法
面向对象方法是一种把面向对象的思想运用于软件开发过程,指导开发活动的系统方法,包括分析、设计和实现等活动
面向对象方法学基于对象概念,以对象为中心,以类和继承为构造机制,充分利用接口和多态提供的灵活性,来认识、理解、刻划客观世界和设计、构建相应的软件系统
面向对象的开发方法示例
面向对象开发方法的一般思路
面向对象方法的一般思路
取得一组需求
用各种手段构造对象模型
识别与问题有关的类与类间的关联
添加与解决方案相关的类
对类进行编码和测试,得出结果
主要难点
从需求中识别出对象,并构造相应的类
如何验证识别出的类和对象能够满足需求
面向对象方法与结构化对应
面向对象方法的组成
面向对象分析(OOA, Object-Oriented Analysis)
定义待解决问题的类(对象)、类之间相互关联和交互的方式、对象的内在结构和允许对象在一起工作的通信机制
面向对象设计(OOD, Object-Oriented Design)
定义分析类在具体环境下的实现机制
面向对象编程(OOP, Object-Oriented programming)
利用面向对象的编程语言实现设计元素
常见的面向对象方法
20世纪80年代末、90年代初,随着C++语言的广泛应用,面向对象的技术得到广泛认可,结合软件工程理论和实践,产生了许多面向对象的开发方法
P. Coad和E.Yourdon提出OOA和OOD
G. Booch提出面向对象开发方法
Rumbaugh提出的OMT方法
Jacobson提出OOSE方法
……
1997年11月诞生的UML已成为面向对象建模的事实标准
面向对象方法基础
面向对象的方法就是遵循一系列的软件开发原则,构造软件系统的思想
核心概念
1.对象
2.类
构造机制
3.抽象
4.封装
5.继承
6.多态
1.对象
定义:对象是由数据及其操作所构成的封装体
特点
每一个对象必须有一个名字以区别于其他对象(对象的标识Identity)
用状态来描述对象的某些特征(对象的状态State)
有一组操作,每一个操作决定了对象的一种行为(对象的行为Behavior)
举例:对象
由对象到类
每一个对象都独一无二,对于软件开发人员而言不可能对其进行完全的逐一的描述
很多对象非常类似,只是在某一时刻拥有不同的特征值
都是椅子,只是颜色不同、位置不同…
对于这些不同的特征值进行抽象,通过这种抽象就可以一次描述若干个对象,抽象出来的事物就是类
2.类
定义:类是对一组具有相同的属性、行为、关系和语义的对象的抽象描述
类和对象的关系
对象是类的实例(Instance),类是创建对象的模板
类是抽象的,对象是具体的
类是如何进行抽象的?
类的几大要素
属性(attributes)
类所知道的数据/信息
每个类的对象为其指定特定的值
操作(operations)
类所拥有的“能力”
类的对象通过操作对外提供行为
关系(relationships)
类与外界通信的”桥梁”
属性和操作
类的属性和操作的定义也取决于项目的上下文
是基于特定上下文对对象的特征和行为的抽象
通过可见性支持封装
公有
私有
保护
3.抽象(Abstraction)
含义
抽象是通过特定的实例抽取共同特征后形成概念的过程
强调主要特征,而忽略次要特征
类即是对象的抽象
4.封装(Encapsulation)
是将相关的概念组成一个单元,然后通过一个名称来使用它
是软件模块化思想的体现
实现信息隐藏和数据抽象
信息隐藏:对象的私有数据不能被外界存取,只能以合法的手段访问
将数据抽象为一组行为,而不是内部的具体数据结构,把用户隔离在细节之外
5.继承(inheritance)
表示类之间的层次关系,这种关系使得某类对象可以继承另外一个或多个对象的全部属性和操作
is a 或 is kind of关系
在UML中这种类间的关系称之为泛化(generalization)
单继承、多重继承
继承什么?
类B继承类A,则
类B中的对象具有类A的一起属性和操作
类B同时会继承类A的关系
类A:基类、父类、超类
类B:派生类、子类
6.多态
是一种机制
这种机制使得在多个类中可以定义同一个操作或属性,并在每一个类中可以有不同的实现
这种机制使得一个属性或操作在不同时期可以表示为不同的类的对象
在一个接口后面隐藏许多不同的实现
软件开发方法
结构化开发方法
面向对象开发方法
基于构件的方法
形式化开发方法
基于构件的软件工程
基于构件的软件工程(Component-Based Software Engineering,CBSE)是一种软件开发新范型,它是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程
是以面向对象的方法为基础,实现软件重用,构造新系统的过程
为了实现软件重用,基于软件构件的软件工程强调领域工程与软件工程同时进行
领域工程创建应用领域的模型,标识、构造、分类和传播一组可重用的软件
软件工程师则在软件开发过程中重用它们
基于构件的软件工程发展背景
背景
研究方面:现代软件工程思想,特别是对复用技术的强调
产业方面:支持用构件建造GUI、数据库和应用的其他部件的一些理论上质朴但实际可用的技术的成功
政治方面:某些主流互操作技术,如CORBA、COM/DCOM、J2EE、.Net的开发者的推动
在软件界:对象技术的广泛使用,提供了建造和使用构件的概念基础和实用工具
现状
当前主要局限于基于COM、CORBA、EJB、.Net等的二进制构件
应该涉及整个软件生存周期
构件
构件(component)是使软件走向工业化的一种软件标准件
是可复用的软件组成成份,
是可被用来快速构造其他软件的预制的特殊软件
是被封装的对象类、类族、一些功能模块、软件框架、软件构架(或体系结构Architectural)、文档、分析件、设计模式等
构件分为构件类和构件实例
通过给出构件类的参数,生成实例
通过实例的组装和控制来构造相应的应用软件
实质上是对已存在的软件开发知识(开发过程和技能)和软件开发各阶段的各种结果的重复使用
可复用的构件
一个软件只有在多个系统中被使用才可称为“可复用构件”,必须具备的条件
独立性:解决一个相对独立的问题,或大问题中某个相对独立的部分
完整性:提供较完整的解决,不要遗留很多缺口,让复用者做大量补充
可标识性:构件所解决的问题应该是可标识的,可命名
通用性:构件解决的问题,应在同类应用中具有一般性
适应性:应用场合有某些变化时,构件仍是可用的,使构件的某些数据参数化和数据类型参数化
可靠性:要求构件对预计将要使用它的系统时可靠的
标准化:可复用构件的标准化对于软件复用是至关重要的
构件体系
COM家族(Component Object Model)
93年发布,脱胎于MS的OLE
规范+实现
CORBA家族(Common Object Request Broker Architecture)
91年第1版,OMG(Object Management Group)
规范+实现
Java家族RMI、EJB、J2EE
.Net家族
构件工程重用过程
软件开发方法
结构化开发方法
面向对象开发方法
基于构件的方法
形式化开发方法
形式化开发方法
形式化方法(formal methods)是建立在严格数学基础上,具有精确数学语义的开发方法
简单地说,凡在系统研究中,应用了数学的方法,都是形式化方法
形式化方法与结构化和OO区别
结构化和OO方法使用了大量的自然语言
自然语言的二义性、不完整和抽象层次的混杂等问题的解决,必然使开发成本和进度增加;尤其对安全性或其他质量因素要求极高的软件,任何微小的错误都可能带来灾难性的后果
形式化的开发方法可以帮助软件开发人员开发出无二义性、完整的和准确的需求规格说明,进而通过严格的验证发现问题,以达到对软件质量、开发成本和开发进度的有效控制
形式化开发方法发展历史
起始于20世纪60年代末的Floyd、Hoare和Manna等在程序正确性证明方面的研究
20世纪80年代末,在硬件设计领域形式化方法的工业应用结果,又掀起了软件形式化开发方法的学术研究和工业应用的热潮,建立了一些较为成熟的方法和语言
Petri网、statecharts、通信顺序过程、通信系统演算、程序正确性证明、时态逻辑、模型验证、Z语言、VDM及Larch等
目前流行的形式化开发方法
形式化规格说明建模
形式化验证
形式化程序求精
形式化规格说明建模
操作类
基于状态和转移
Petri网、有限状态机和状态图
描述类
基于数学公理和概念
基于逻辑的描述方法:命题线性时态逻辑(PLTL)、一阶线性时态逻辑(FOLTL)、计算树逻辑(CTL)
基于代数的描述方法:Z语言、VDM和Larch
双重类
兼有操作类和描述类两者的特点
扩展状态机(ESM)、实时时态逻辑(RTTL)
形式化验证
模型验证和定理证明
模型验证是对规格说明所建立起来的模型状态空间进行搜索,以确认该系统模型是否具有所期望的某些性质
定理证明以逻辑公式所为系统及其性能的规格说明,其中逻辑由一个具有公理和推理规则的形式化系统给出
形式化程序求精
将自动推理与形式化规格说明相结合而形成的一门技术
研究如何从形式化的规格说明推演出具体的面向计算机的程序代码的全过程
基本思想就是用一个抽象程度低和过程性弱的程序,并保证它们的功能和性质完全一致
形式化开发方法主要问题
对软件开发人员的数学素质有较高的要求
主要是离散数学中的集合、代数结构、数理逻辑等基础内容在软件工程中的具体应用
Bowan和Hinchley提出了“形式化法方法的十条戒律”
实例3-2:自动售货机Petri网模型
本章小结
目标
了解典型的软件开发方法,掌握结构化开发方法的基本技巧和面向对象开发方法的核心概念
重点提示
方法与过程的区别和联系
结构化开发方法和实践
面向对象的开发方法中的核心概念
基于构件的开发方法基本思想
形式化开发方法的基本思想
下章提示
可视化建模技术
建模的优点
UML基本概念
UML2.0的13种模型
静态(6种):类图、对象图、构件图、部署图、包图、组合结构图
动态(7种):顺序图、通信图、计时图、交互纵览图、活动图、状态机图、用例图
 

相关PPT

软件工程中期答辩ppt:这是软件工程中期答辩ppt,包括了已完成的任务,未完成的任务 ,遇到的难题,问题拟解决的办法等内容,欢迎点击下载。
软件工程(Software-Engineering)ppt:这是一个关于软件工程(Software-Engineering)ppt,主要介绍了软件工程学概述、软件危机、软件工程、软件生命周期、软件过程等内容。
第1章--软件工程学概述ppt:这是一个关于第1章--软件工程学概述ppt,主要介绍了软件危机、软件工程、软件生命周期、软件过程等内容。
《sad03软件工程方法ppt》是由用户风铃鹿于2016-09-26上传,属于高校大学PPT。

标签:

优秀PPT

缩略图

  • sad03软件工程方法ppt

下载地址

  • sad03软件工程方法ppt

相关PPT

推荐

颜色分类黑色PPT模板橙色PPT模板紫色PPT模板蓝色PPT模板黄色PPT模板红色PPT模板绿色PPT模板彩色PPT模板黑白PPT模板

行业分类科技PPT模板医学PPT模板教育PPT模板工业PPT模板金融PPT模板音乐PPT模板汽车房地产互联网培训手机

实用必备个人简历自我介绍年终总结职业规划述职报告工作汇报工作总结岗位竞聘公司简介发布会年会论文答辩

PPT推荐语文课件数学课件英语课件美术课件物理课件科学课件化学课件地理课件生物课件主题班会家长会绘本故事

节日PPT新年元旦节农历春节情人节元宵节三八妇女节愚人节清明节五一劳动节母亲节六一儿童节端午节

节日PPT 父亲节七夕情人节教师节中秋节国庆节重阳节万圣节光棍节感恩节平安夜圣诞节纪念日

澳门百家乐技巧 百家乐网址大全 百家乐网址 威尼斯百家乐 pk10官网 百家乐网址 澳门百家乐网站官网 澳门现场百家乐 百家乐网址 澳门百家乐技巧