软件工程与UML 09 逆向工程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程与UML
单元九 逆向工程
目录
CONTENTS
任务:系统实现的逆向工程
【知识目标】
掌握源代码转换 理解软件再工程、逆向工程
【能力目标】
能准确分析源程序,进行系统实现逆向
从软件重用方法学来说,如何开发可
重用软件和如何构造采用可重用软件的
系统体系结构是两个最关键问题。在本
引例描述
单元里,我们通过对“用户登录模块” 这段代码的逆向工程来理解如何最大限 度地重用既存系统的各种资源。
• 对“饮料销售机类”的部分源码进行逆向工程
• 逆向工程是以复原软件的描述和设计为目标的软件分析过程。程序本身经过逆
向工程过程并无变化。软件源程序代码总是能得到的,用它作为逆向工程过程 的输入推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
• 宠物管理系统的逆向工程
• 目前正在开发的是某宠物诊所的“宠物管理系统 ”的项目,目前有比较完整的需求分析说明及详 细的源代码,请依照需求分析说明书及源代码画 出详细的类图及顺序图以帮助其他同事了解整个 项目的概况,并用以建档。源代码见光盘,现有 的文字材料见教材:
THANK YOU
高等教育出版社
• 2.逆向工程:对程序进行分析并从中抽取信息来记录它的结 构和功能。
• 3.程序结构改善:对程序的控制结构进行分析和修改,使它 更易读、易理解。 • 4.程序模块化:程序的相关部分被收集在一起,消除一定程 度上的冗余。Biblioteka Baidu
• 5.数据再工程:改变程序处理的数据从而变更程序。
• 1.了解 MVC的设计模式。
• 代码级的逆向工程实际工作中重要应用是反汇编
•
软件再工程
• 对既存对象系统进行调查,并将其重构为新形式代码的 开发过程,最大限度地重用既存系统的各种资源。 • 从软件重用方法学来说,如何开发可重用软件和如何构
造采用可重用软件的系统体系结构是两个最关键问题。
• 再工程涉及到以下几种形式:
• 1.源代码转换:程序从旧的开发语言转换到一个新版本的相 同语言或另一种开发语言。
• 2.基于MVC模式及包图结构图,构建出“用户登录模块”的组件图 及部署图。 • 3.观察运行效果,利用软件建模方法分析 “用户登录模块”,重构 用例模型。 • 4.利用UML软件建模方法分析 “用户登录模块”,提取其类图模型 、顺序图模型。
• 5.完成“用户登录模块”的数据库重构、网站页面设计框架。
01
任务
系统实现的逆向 工程
• 对Java Web网站项目中常见的“用户登录模块”进行逆向
工程,并从中抽取信息来记录它的结构和功能。
• 9.1 逆向工程
• 9.1.1 逆向分析 • 9.1.2 代码级逆向
• 9.1.3 软件再工程
• 计算机领域的逆向工程一般分为两种
代码级的逆向工程是指通过分析来推导出具体的实现方法。比如你看到别人写的 某个exe程序能够做出某种漂亮的动画效果,你通过反汇编、反编译和动态跟踪等 方法,分析出其动画效果的实现过程。 系统级的逆向工程是以复原软件的描述和设计为目标的软件分析过程。程序本身 经过逆向工程过程并无变化。软件源程序代码总是能得到的,用它作为逆向工程过 程的输入推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
单元九 逆向工程
目录
CONTENTS
任务:系统实现的逆向工程
【知识目标】
掌握源代码转换 理解软件再工程、逆向工程
【能力目标】
能准确分析源程序,进行系统实现逆向
从软件重用方法学来说,如何开发可
重用软件和如何构造采用可重用软件的
系统体系结构是两个最关键问题。在本
引例描述
单元里,我们通过对“用户登录模块” 这段代码的逆向工程来理解如何最大限 度地重用既存系统的各种资源。
• 对“饮料销售机类”的部分源码进行逆向工程
• 逆向工程是以复原软件的描述和设计为目标的软件分析过程。程序本身经过逆
向工程过程并无变化。软件源程序代码总是能得到的,用它作为逆向工程过程 的输入推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
• 宠物管理系统的逆向工程
• 目前正在开发的是某宠物诊所的“宠物管理系统 ”的项目,目前有比较完整的需求分析说明及详 细的源代码,请依照需求分析说明书及源代码画 出详细的类图及顺序图以帮助其他同事了解整个 项目的概况,并用以建档。源代码见光盘,现有 的文字材料见教材:
THANK YOU
高等教育出版社
• 2.逆向工程:对程序进行分析并从中抽取信息来记录它的结 构和功能。
• 3.程序结构改善:对程序的控制结构进行分析和修改,使它 更易读、易理解。 • 4.程序模块化:程序的相关部分被收集在一起,消除一定程 度上的冗余。Biblioteka Baidu
• 5.数据再工程:改变程序处理的数据从而变更程序。
• 1.了解 MVC的设计模式。
• 代码级的逆向工程实际工作中重要应用是反汇编
•
软件再工程
• 对既存对象系统进行调查,并将其重构为新形式代码的 开发过程,最大限度地重用既存系统的各种资源。 • 从软件重用方法学来说,如何开发可重用软件和如何构
造采用可重用软件的系统体系结构是两个最关键问题。
• 再工程涉及到以下几种形式:
• 1.源代码转换:程序从旧的开发语言转换到一个新版本的相 同语言或另一种开发语言。
• 2.基于MVC模式及包图结构图,构建出“用户登录模块”的组件图 及部署图。 • 3.观察运行效果,利用软件建模方法分析 “用户登录模块”,重构 用例模型。 • 4.利用UML软件建模方法分析 “用户登录模块”,提取其类图模型 、顺序图模型。
• 5.完成“用户登录模块”的数据库重构、网站页面设计框架。
01
任务
系统实现的逆向 工程
• 对Java Web网站项目中常见的“用户登录模块”进行逆向
工程,并从中抽取信息来记录它的结构和功能。
• 9.1 逆向工程
• 9.1.1 逆向分析 • 9.1.2 代码级逆向
• 9.1.3 软件再工程
• 计算机领域的逆向工程一般分为两种
代码级的逆向工程是指通过分析来推导出具体的实现方法。比如你看到别人写的 某个exe程序能够做出某种漂亮的动画效果,你通过反汇编、反编译和动态跟踪等 方法,分析出其动画效果的实现过程。 系统级的逆向工程是以复原软件的描述和设计为目标的软件分析过程。程序本身 经过逆向工程过程并无变化。软件源程序代码总是能得到的,用它作为逆向工程过 程的输入推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。