Software Architecture Recovery based on Dynamic Analysis

合集下载

22类高频场景词汇

22类高频场景词汇

22类高频场景词汇一、家庭场景(Family Scene)1. father [ˈfɑːðə(r)] n. 父亲。

2. mother [ˈmʌðə(r)] n. 母亲。

3. son [sʌn] n. 儿子。

4. daughter [ˈdɔːtə(r)] n. 女儿。

5. brother [ˈbrʌðə(r)] n. 兄弟。

6. sister [ˈsɪstə(r)] n. 姐妹。

7. grandfather [ˈɡrænfɑːðə(r)] n. 祖父;外祖父。

8. grandmother [ˈɡrænmʌðə(r)] n. 祖母;外祖母。

9. home [həʊm] n. 家;adv. 在家。

10. family [ˈfæməli] n. 家庭。

二、学校场景(School Scene)1. teacher [ˈtiːtʃə(r)] n. 教师。

2. student [ˈstjuːdnt] n. 学生。

3. classroom [ˈklɑːsruːm] n. 教室。

4. desk [desk] n. 书桌。

5. chair [tʃeə(r)] n. 椅子。

6. book [bʊk] n. 书。

7. pen [pen] n. 钢笔。

8. pencil [ˈpensl] n. 铅笔。

9. blackboard [ˈblækbɔːd] n. 黑板。

10. schoolbag [ˈskuːlbæɡ] n. 书包。

三、购物场景(Shopping Scene)1. shop [ʃɒp] n. 商店;v. 购物。

2. supermarket [ˈsuːpəmɑːkɪt] n. 超级市场。

3. grocery [ˈɡrəʊsəri] n. 食品杂货店。

4. product [ˈprɒdʌkt] n. 产品。

5. price [praɪs] n. 价格。

软件测试术语中英文对照

软件测试术语中英文对照
data corruption:数据污染
data definition C-use pair:数据定义C-use使用对
data definition P-use coverage:数据定义P-use覆盖
data definition P-use pair:数据定义P-use使用对
data definition:数据定义
data definition-use coverage:数据定义使用覆盖
data definition-use pair :数据定义使用对
data definition-use testing:数据定义使用测试
Check In :检入
Check Out :检出
Closeout : 收尾
code audit :代码审计
Code coverage : 代码覆盖
Code Inspection:代码检视
Core team : 核心小组
corrective maintenance:故障检修
correctness :正确性
coverage :覆盖率
coverage item:覆盖项
crash:崩溃
Beta testing : β测试
Black Box Testing:黑盒测试
Blocking bug : 阻碍性错误
Bottom-up testing : 自底向上测试
boundary value coverage:边界值覆盖
boundary value testing:边界值测试
Bug bash : 错误大扫除
bug fix : 错误修正
Bug report : 错误报告

2024版VMware2

2024版VMware2

02 VMWare2 Architecture and Technical Features
Overall architecture design concept
Virtualization layer
Create a virtual version of hardware, including CPUs, memory, and storage, to enable multiple operating systems and applications to run simultaneously on a single physical server
• Audit and compliance: Enable auditing of VM access and changes for compliance purposes, as well as integration with third party security information and event management (SIEM) systems
contents
目录
• VMWare2 Management and Maintenance Operations Guide
• Application Cases of VMWare2 in the Field of Virtualization
Introduction
01 and Background of
• Memory overallocation: Allow more memory to be allocated to VMs that is physically available on the host, releasing on memory recall techniques to free up unused memory when needed

计算机经典教材

计算机经典教材

1前言。

2Mathematics(数学)。

3DataStructures&Algorithms(数据结构、算法)。

4Compiler(编译原理)。

5OperatingSystem(操作系统)。

6Database(数据库)。

7C(C语言)。

8C++(C++语言)。

9Object-Oriented(面向对象)。

10SoftwareEngineering(软件工程)。

11UNIXProgramming(UNIX编程)。

12UNIXAdministration(UNIX系统管理)。

13Networks(网络)。

14WindowsProgramming(Windows编程)。

15Other(*)。

Mathematics(数学)。

书名(英文):DiscreteMathematicsandItsApplications(FifthEdition)。

书名(中文):离散数学及其应用(第五版)。

原作者:KennethH.Rosen。

书名(英文):ConcreteMathematics:AFoundationforComputerScience(SecondEdition)。

书名(中文):具体数学:计算机科学基础(第2版)。

原作者:RonaldL.Graham/DonaldE.Knuth/OrenPatashnik。

DataStructures&Algorithms(数据结构、算法)。

书名(英文):DataStructuresandAlgorithmAnalysisinC,SecondEdition。

书名(中文):数据结构与算法分析--C语言描述(第二版)。

原作者:MarkAllenWeiss。

书名(英文):DataStructures&ProgramDesignInC(SecondEdition)。

书名(中文):数据结构与程序设计C语言描述(第二版)。

原作者:RobertKruse/C.L.Tondo/BruceLeung。

计算机专业术语中英文对照

计算机专业术语中英文对照

计算机专业术语中英⽂对照计算机专业术语对照Aabstraction layer,抽象层access,获取,存取acoustic coupler,声⾳耦合器Active Directory,活动⽬录Acyclic Dependencies Principle,⾮循环依赖原则(ADP)acyclic digraph,有向⽆环图Adaptive Code,⾃适应代码Add Parameter,添加参数ADSL,Asymmetrical Dingital Subscriber Loop,⾮对称数字⽤户环线affinity,绑定affinity group,地缘组agent,代理agent-based interface,代理⼈界⾯Agile,敏捷⽅法论agile practice,敏捷实践agile peocess,敏捷流程agility,敏捷性AI,Artificial Intelligence,⼈⼯智能air waves,⽆线电波algorithm,算法analog,模拟的animation,动画annotation,注解,注释answering machine,电话应答机antenna,天线anti-pattern,反模式APM,异步编程模型(Asynchronous Programming Model)Apocalyptic defect,灾难缺陷application,应⽤,应⽤程序,应⽤软件application life cycle,应⽤程序⽣命周期application pool,应⽤程序池Application Programming Interface,应⽤程序编程接⼝(API)architecture,体系机构,结构architecture decay,架构腐坏Architecture Style,架构风格ARPA,Advanced Research Projects Agency,(美国国防部)⾼级研究计划署ARPAnet,ARPA⽹Arrange-Act-Assert,准备-执⾏-断⾔(AAA)artifact,构建物4ASF,Apache Software Foundation 的简写Aspect-Oriented Programming,⾯向切⾯编程(AOP)aspect ratio,屏幕⾼宽⽐assembly,程序集Asynchronous Programming Model,异步编程模型(APM)ATM,asynchronous transfer mode,异步传输模式atomic opreation,原⼦操作atomic transaction,原⼦事务atomicity,原⼦性attribute,特性augmented reality,增强实现authentication,⾝份验证authorization,授权automated unit testing,⾃动化单元测试automation,⾃动化autonomous,独⽴性availability,可⽤性availability set,可⽤性集AZs,可⽤性区域(Availability Zones,亚马逊 AWS 中数据中⼼的叫法)4BBackend as a Service,后端即服务(BaaS)backpane,底板backward compatibility,向后兼容性bandwidth,带宽bar code,条形码Base Class Library,基类库(BCL)baseline,准线baud,波特BCL,基类库(Base Class Library)bear,熊behavior,⾏为behavior preserving program transformations,⾏为保留式程序转换1 Behavioral error,⾏为错误BFF,为前端服务的后端(Backends For Frontends)4Big Ball of Mud,⼤泥球(BBM)big data,⼤数据Big Design Up Front,⼤优先设计(BDUF)binary,⼆进制的binochlar,双⽬并⽤的bit,⽐特Bit-field,位域bitnik,⽐特族blob,BLOBblock,阻断block blob,块 BLOBBlockchain as a Service,区块链即服务(BaaS)bottleneck,瓶颈bounded context,边界上下⽂、界限上下⽂4box,装箱bps,bits per second,⽐特/秒breakpoint,断点broadcast,(⽆线电或电视)⼴播Broken Hierarchy,⽀离破碎的层次结构2Broken Modularization,拆散的模块化2brownfield project,⾏进中项⽬Browser Object Model,浏览器对象模型(BOM)browser-server,浏览器-服务器bug,缺陷built-in,内置的,内建的;嵌⼊的;内置bulkhead,舱壁4business intelligence,商业智能business layer,业务层business logic layer,业务逻辑层busy (status),忙(状态);繁忙(状态)byte,字节Ccable,电缆Cache/Caching,缓存call stack,调⽤堆栈callout box,标注框camelCase,camel ⼤⼩写canary releasing,⾦丝雀发布4carbon copy,复写本,副本;抄送(CC)carriage return,回车Cascading Style Sheets,层叠样式表(CSS)catastrophic failover,灾难性故障转移4CD,持续交付(Continuous Delivery)4CDC,消费者驱动的契约(Customer-Driven Contract)4CDN,内容分发⽹络(Content Delivery Network)cell,单元cellular telephone,移动电话Central Processing Unit,中央处理器(CPU)certificate,(数字)证书Certificate Authority,证书认证机构Change Bidirectional Association to Unidirectional,将双向关联改为单向关联1Change Point,修改点:需要往代码中引⼊修改的点Change Reference to Value,将引⽤对象改为值对象1Change Unidirectional Association to Bidirectional,将单向关联改为双向关联1Change Value to Reference,将值对象改为引⽤对象1channel,信道,频道character,字符Characterization test,特征测试:描述软件某部分的当前⾏为的测试,当你修改代码时能够⽤来保持⾏为check in,签⼊check out,签出chip,芯⽚choreography,协同CI,持续集成(Continuous Integration)4cipher,密码claim,声明class definition,类定义CLI,公共语⾔基础结构(Common Language Infrastructure)client-server,客户端-服务器clone,克隆,复制cloud computing,云计算cloud service,云服务CLR,公共语⾔运⾏时(Common Language Runtime)CLS,公共语⾔规范(Common Language Specification)cluster,集群clustered index,聚集索引CMS,内容管理系统(Content Management System)co-occurring smells,同时出现的坏味2coaxial cable,同轴电缆COBIT,信息和相关技术的控制⽬标,Control Objectives for Information and Related Technology4 CoC,更改开销(Cost of Change)code smell,代码味道Collapse Hierarchy,折叠继承关系1comcurrency,并发command,命令command prompt,命令⾏提⽰Command/Query Responsibility Segregation,命令/查询职责分离(CQRS)Command/Query Separation,命令/查询分离(CQS)commingled bits,混合的⽐特communication,通信community,社区committed,已提交(的)Common Intermediate Language,公共中间语⾔Common Language Infrastructure,公共语⾔基础结构(CLI)Common Language Runtime,公共语⾔运⾏时(CLR)Common Language Specification,公共语⾔规范(CLS)Common Type System,公共类型系统(CTS)common name,通⽤名称compatibility,兼容性Competing Consumer pattern,消费者竞争模式4Component Object Model,组件对象模型(COM)composite formatting,复合格式化Composite Pattern,复合模式concurrency conflicts,并发冲突concurrency mode,并发模式conditional compilation,条件编译conditional compilation statement,条件编译语句configuration,配置,设置connection string,连接字符串Consolidate Conditional Expression,合并条件表达式1Consolidate Duplicate Conditional Fragments,合并重复的条件⽚段1consistenct,⼀致性constructor,构造函数container,容器Container As A Service,容器即服务(CaaS)4content,内容context,上下⽂contextual keyword,上下⽂关键字continuous integration,持续集成contribute,贡献Contributor License Agreement,贡献者许可协议convention,约定covariance,协变contravariance,逆变convert,转换Convert Procedural Design to Objects,将过程化设计转化为对象设计1cookie,Cookiecore,内核;.NET Core 的简写(能且仅能与 .NET Framework 的简写nfx同时出现,作如nfx/core,单独使⽤时应为全称.NET Core)corruption,损毁Cosmetic issue,外观上问题Cost of Change,更改开销(CoC)COTS,现成的商业软件(Commercial Off-The Shelf)4counterpoint,对位4Coupling count,耦合数:当⼀个⽅法被调⽤时传给它以及从它传出来的值的数⽬。

系统架构设计师大纲(Systemarchitectprogram)

系统架构设计师大纲(Systemarchitectprogram)

系统架构设计师大纲(System architect program)System Architect exam outlineI. examination instructions:1. test objectivesQualified personnel should be able to according to the system requirements specification, combined with the actual situation of the development of technology and application, considering the constraint conditions, correct and reasonable design of software architecture, system architecture to ensure the good properties of the project; to look askance in system architecture description, analysis, design and evaluation; to write corresponding design documents in accordance with the relevant standards; able to work with the system analyst, project manager of mutual collaboration and cooperation; senior engineer with the actual work ability and professional level.2. examination requirements(1) master the basic knowledge of computer hardware, software and network;(2) familiar with the information system development process;(3) understand the standard of information system development and the standard of common information technology;(4) familiar with the mainstream middleware and applicationserver platforms;(5) master the basic techniques of software system modeling and system architecture design;(6) familiar with information security technology, security strategy and safety management knowledge;(7) to understand the basic knowledge of information technology and related laws and regulations;(8) understand the industry characteristics of users, and design appropriate system design according to the characteristics of the industry;(9) master the basic mathematical knowledge of application(10) proficiency in reading and correctly understanding English literature in related fields;3. test subjects design settings(1) comprehensive knowledge of information systems, examination time is 150 minutes, written examination, multiple-choice questions;(2) system architecture design case analysis, examination time is 90 minutes, written test, question and answer question;(3) system architecture design papers, examination time is 120 minutes, written test, thesis questions.Two, examination scopeExamination subjects 1: comprehensive knowledge of information systems1. basic knowledge of computer software and network1.1 operating systemThe type and structure of the L operating systemFundamentals of L operating systemsL network operating system and network managementL embedded operating system and real time operating system1.2 database systemThe type, structure and performance evaluation of L database management systemL commonly used relational database management systemL database schemaL database normalizationL distributed database system, parallel database systemL data warehouse and data mining technologyL Database EngineeringL backup recovery1.3 embedded systemsFeatures of L embedded systemHardware composition and design of L embedded systemL embedded system application software and development platformL embedded system networkL embedded system database1.4 data communication and computer networkBasic knowledge of L data communicationL open system interconnection reference modelL common protocol standardsL network interconnection and common network equipmentThe classification and application of L computer network1.5 multimediaTypes, characteristics and data formats of L multimediaCompression coding of L multimedia data1.6 system configuration and performance evaluationL multilayer structure, distributed systemL system configuration methods (double, double, hot backup, fault tolerance, clustering)L performance calculations (response time, throughput, TAT)L performance design (system tuning, Amdahl solutions, response characteristics, load balancing)L performance metrics (SPEC-Int, SPEC-Fp, TPC, Gibsonmix, response times)L performance evaluation2. basic knowledge of information technology2.1 overall planning of information systems engineeringL overall planning objectives and scopeMethodology of L master planningComposition of L information systemsImplementation of L information system2.2, government informatization and e-governmentThe concept, content and technical form of L E-government L strategy and course of Chinese government informatizationThe process model and technical model of L e-government construction2.3 enterprise informatization and e-commerceL enterprise informatization concept, purpose, planning and methodThe main modules and main algorithms of L ERPL enterprise business process reengineering (BPR) Application of L, CRM and PDM in EnterpriseL knowledge managementL enterprise application integrationL idea of whole supply chain managementL Business IntelligenceTypes and standards of L E-commerceTwo4 Information Resource Management2.5 international and domestic standards, laws and regulations concerning informatization3. basic knowledge of system development3.1 development managementThe scope, time, and cost of the L projectL document management, configuration managementQuality and risk of L software developmentOperation and evaluation of L software3.2 demand managementL requirements changeL requirements trackingL demand change risk management3.3 software development methodL software development life cycleL software development model (waterfall model, evolution model, incremental model, spiral model, prototype, component assembly model, RUP, agile method)L components and software reuseL reverse engineeringL formal method3.4 software development environment and toolsL integrated development environmentL development tools (modeling tools, analysis and design tools, programming tools, testing tools, project management tools, etc.)3.5 design methodsL analysis and design diagrams (DFD, ERD, UML, flow charts, NS diagrams, PAD)L structured analysis and designL module designL object oriented analysis and designL I/O design, man-machine interface designL design patterns3.6 component based developmentThe concept and classification of L componentsL Middleware TechnologyL typical application architecture (J2EE,.NET)3.7 application system constructionL application system design and development (use of analysis and design methods, external design, internal design, programming design, testing)The use of L packages (development tools, operations management tools, business processing tools, ERP, groupware, OA tools)3.8 test and reviewL test review methodL validation and validation (V&V)L test automationL test design and management methods4. basic knowledge of software architectureThe concept of L software architectureThe style of L software architectureL domain specific software architectureL architecture based software development methodologyL software architecture evaluationL software product lineL design patterns5. safety and reliability technology4.1 information security and privacyL encryption and decryptionL authentication (digital signature, key, password)L access controlL security and security management (anti leakage, digital watermarking)L Security Protocols (SSL, PGP, IPSec)Backup and recovery of L systemL prevents viruses4.2 system reliabilityL reliability design (fault tolerance technique, error avoidance technique)L reliability index and evaluation4.3 safety regulations and rules for protecting private informationL information system security regulations and systemsL computer antivirus systemL protects private information rules6. standardization and intellectual property rightsL standardization awareness, standardization of development, standard life cycleL international standards, American standards, national standards, trade standards, local standards and enterprise standardsL code standards, file format standards, security standards,software development standards and documentation standardsL standardization bodiesL intellectual property7. application dataL probability and statistics applicationsL graph theory applicationsL combination analysisSelection and application of L algorithm (numerical algorithm and non numerical algorithm)L methods of operations (network planning technology, linear programming, forecasting, decision making, inventory management, simulation)L mathematical modeling8. professional EnglishL has the level of English reading required by senior engineersL master English terminology in this fieldExamination subjects 2: system architecture design case analysis1. system planningProposal and feasibility analysis of L system projectL system formulation, evaluation and improvementAnalysis and comparison of new and old l systemsL effective use of existing software, hardware, and data resources2. software architecture designL software architecture designL XML TechnologyL architecture based software development processL software quality attributesL architecture model (style)L domain specific software architectureL architecture based software development methodologyL architecture evaluationL software product lineL system evolution3. design patternsThe concept of l design patternsThe composition of the l design patternL schema and software architectureL design pattern classificationImplementation of l design pattern4. system designL process designL man-machine interface designL file design, storage designL database designDesign of l network application systemIntegration and design of L system running environment L middleware and application serverL performance design and performance evaluationL system conversion plan5. software system modelingL system requirementsThe role and significance of L modelingL defines problems (goals, functions, performance, etc.) and resolution models (static structure models, dynamic behavior models, and physical models)L structured system modeling and data flow diagramsL object oriented system modelingL unified modeling language (UML)L database modeling and E-R diagramL reverse engineering6. distributed system designDesign of L distributed communication protocolL object based distributed system designDesign of Web based distributed system for LL distributed system design based on messaging and collaborationInteroperability design of L heterogeneous distributed systems7. embedded system designL real time systems and embedded system featuresL real time task scheduling and multitask designL interrupt handling and exception handlingDesign and development of L embedded system8. reliability analysis and design of the systemFault model and reliability model of L systemReliability analysis and reliability calculation of L systemL measures to improve system reliabilityFault countermeasures and backup and recovery of L system9. security and privacy design of the systemAccess control techniques for L systemsL data integrityL data and file encryptionSecurity of L communicationSecurity design of L systemExamination subjects 3: system architecture design papersAccording to the given system architecture design, a number of topics, select one of the topics, in accordance with the requirements of the thesis.1. system modelingL definition, problem, and resolution modelL structured system modelingL object oriented system modelingL database modeling2. software architecture designL software architecture designL domain specific software architectureL architecture based software development methodologyL software evolution3. system designL process designHuman computer interface design of L systemL file design, storage designL database designDesign of l network application systemIntegration and design of L system running environment L system performance designL middleware and application server4. distributed system designDesign of L distributed communication protocolL object based distributed system designDesign of Web based distributed system for LL distributed system design based on messaging and collaborationInteroperability design of L heterogeneous distributed systems5. reliability analysis and design of the systemFault model and reliability model of L systemL measures to improve system reliabilityFault countermeasures and backup and recovery of L system6. security and privacy design of the systemAccess control techniques for L systemsL data integrityL data and file encryptionSecurity of L communicationSecurity design of L systemExamples of questionsExamination subjects 1: comprehensive knowledge of information systems(a) multiple-choice questions1. in the TCP/IP protocol hierarchy, SNMP is (2) request / response protocol over (1) protocol. The public managementinformation service / public management information protocol CMIS/CMIP based on ISO/OSI/RM is a complete network management protocol family, and the network management application process uses the OSI reference model (3).(1) A.TCP, B.UDP, C.HTTP, D.IP(2) A. asynchronous B. synchronization, C., master-slave D., connection oriented(3) A. network layer, B. transport layer, C. presentation layer,D. application layerTwoThe software product line is mainly composed of (4) and the product collection two parts.(4) A. component library, B. core resource, C. architecture,D. Development Organization(two) questions and answersRead the following narrative about software architecture, answer questions 1 and 2.A group company to develop a network of financial procedures, so that employees can work on the Internet for financial processing and reimbursement. When designing the architecture of the financial process, the project team was divided:(1) Zhang engineer believes that client / server (C/S) architecture should be adopted. The Finance Department of each branch should install a software client which is connected to the head of the Finance Department of the head office through the client. If employees are out of town on business, they need to reimburse their accounts, and they also need to install this client.(2) Li engineer believes that the browser / server (BS) structure should be adopted, and the branch offices and staff directly through the Windows operating system own IE browser, you can connect to the head office of the finance department.After the intense discussion of the project team, the hybrid structure of C/S and B/S was selected.[problem 1]Please discuss briefly the differences between the C/S structure and the B/S structure and their respective advantages and disadvantages in a word less than 200 words.[problem 2]How do you design the C/S and B/S hybrid structures with words less than 200 words, so what are the benefits of the design?(three) thesis questionsOn the grasp of user's needs in system designFor systems engineers, it is the most difficult to properly understand the content of the work and design effective systems when a work is systematized.In order to correctly reflect the user's requirements to the specifications of the system, the conventional approach is to submit the specifications and output statements to the user for comments. In some cases, a prototype of the system is also available. Ask the user for a trial.Please focus on the topic of "grasp user needs in system design", and then discuss the following three problems in turn.1. describe the development project you are involved in, and the work you do.2. describe where you've done your work, and what means of communicating with users in order to reflect user requirements into the system specifications?3. give a brief account of what you think is effective and no effect on the means you employ.。

VMware的数据中心间的SRM方案

VMware的数据中心间的SRM方案

实现业务连续性的转型成本及其复杂性
连续
数小时
数天
RTO/RPO
成本效益美元/每应用
1,000 美元
数分钟
10,000 美元
100,000 美元
100 美元
MSCS
RAC
复制
备份
VMware 业务连续性 HA、FT、vMotion、SRM 和 VDR
传统解决方案
提高业务连续性是实施虚拟化的首要目标
前五大目标
VMware vSphere
vCenter Server
Virtual Machines
Site Recovery Manager Manages recovery plans Automates failovers and failbacks Tightly integrated with vCenter and replication
VR的限制条件
专注于开机状态的虚拟机磁盘 ISOs 和floppy images不被复制 关机和挂起的虚拟机不被复制 非关键的文件不被复制例如 logs, stats, swap, dumps VR工作在虚拟设备层 和磁盘格式无关 VM的Snapshots也会被复制,但是恢复时,snapshots被删除 不支持物理模式的RDMs VR不支持FT,linked clones, VM templates VR保护的VM不支持自动的failback,以后的版本会支持 必须是Virtual Hardware 7或更高的版本
灾难随时可能发生.您是否需要保护
关键业务应用需要业务连续性
对 vSphere 的可用性期望继续增长 RTO 从 24 小时以上缩短至不到 12 小时
38%
43%

2022-2023年软件水平考试《高级系统架构设计师》预测试题1(答案解析)

2022-2023年软件水平考试《高级系统架构设计师》预测试题1(答案解析)

2022-2023年软件水平考试《高级系统架构设计师》预测试题(答案解析)全文为Word可编辑,若为PDF皆为盗版,请谨慎购买!第壹卷一.综合考点题库(共50题)1.应用系统构建中可以采用多种不同的技术,()可以将软件某种形式的描述转换为更高级的抽象表现形式,而利用这些获取的信息,(请作答此空 )能够对现有系统进行修改或重构,从而产生系统的一个新版本。

A.逆向工程((Reverse Engineering)B.系统改进 (System Improvement)C.设计恢复 (Design Recovery )D.再工程 (Re-engineering)正确答案:D 本题解析:所谓软件的逆向工程就是分析已有的程序,寻求比源代码更高级的抽象表现形式。

一般认为,凡是在软件生命周期内将软件某种形式的描述转换成更为抽象形式的活动都可称为逆向工程。

与之相关的概念是:重构(restructuring),指在同一抽象级别上转换系统描述形式;设计恢复(design recovery),指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计的信息(不一定是原设计);再工程(re-engineering),也称修复和改造工程,它是在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。

2.企业数字化转型的五个发展阶段依次是()A.初始级发展阶段、单元级发展阶段、流程级发展阶段、网络级发展险段、生态级发展阶段B.初始级发展阶段、单元级发展阶段、系统级发展阶段、网络级发展阶段、生态级发展阶段C.初始级发展阶段、单元级发展阶段、流程级发展阶段、网络服发展输段、优化级发展阶段D.初始级发展阶段、流程级发展阶段、系统级发展险段、网络级发展阶段、生态级发展阶段正确答案:A本题解析:企业数字化转型的五个发展阶段依次是:初始级发展阶段、单元级发展阶段、流程级发展阶段、网络级发展险段、生态级发展阶段。

3.The objective of (请作答此空) is to determine what parts of the application software will be assigned to what hardware. The major software components of the system being developed have to be identified and then allocated to the various hardware components on which the system will operate. All software systems can be divided into four basic functions. The first is (72). Most information systems require data to be stored and retrieved, whether a small file, such as a memo produced by a word processor, or a large database, such as one that stores an organization's accounting records. The second function is the (73), the processing required to access data, which often means database queries in Structured Query Language. The third function is the (74), which is the logic documented in the DFDs, use cases, and functional requirements. The fourth function is the presentation logic, the display of information to the user and the acceptance of the user's commands. The three primary hardware components of a system are (75).A.architecture designB.modular designC.physical designD.distribution design正确答案:A本题解析:架构设计的目标是确定应用软件的哪些部分将被分配到何种硬件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Software Architecture Recovery based on Dynamic AnalysisAline Vasconcelos1,2, Cláudia Werner11COPPE/UFRJ – System Engineering and Computer Science ProgramP.O. Box 68511 – ZIP 21945-970 – Rio de Janeiro – RJ – Brazil2CEFET Campos (Centro Federal de Educação Tecnológia de Campos) Dr. Siqueira, 273 – Pq. Dom Bosco – ZIP 28030-130 - Campos dos Goytacazes- RJe-mail: [aline, werner]@cos.ufrj.brAbstractArchitecture recovery from legacy systems has been claimed to offer great contributions to software maintenance and reuse. Most of the approaches to architecture recovery is based on the static analysis of systems and lack a sound support to architectural elements identification. In this context, this paper presents an approach to architecture recovery based on dynamic analysis of systems. The system is executed for some specified use-cases and execution traces are collected. By analyzing the execution traces, interaction patterns are detected and architectural elements are defined based on these interaction patterns and their relation to use-case realizations. Moreover, in order to evaluate the proposed approach a case study is presented.1.IntroductionThis paper presents an approach to software architecture recovery from object-oriented legacy systems mainly based on the dynamic analysis of systems. Software architecture represents the description of a system global structure in terms of their elements and relationships among them, along with the principles that guide their design and evolution [1]. The proposed approach has been investigated in the context of the Odyssey project [11], which involves the development of a software development environment based on domain models named Odyssey. Our goals are to contribute to program comprehension and software maintenance and to generate artifacts that can later be used to specify a domain reference architecture.Architecture recovery involves a set of methods for the extraction of architectural information from lower level representations of a software system, such as source code [7]. The abstraction process to generate architectural elements frequently involves clustering source code entities (such as files, classes, functions etc.) into subsystems according to a set of criteria that can be application dependent or not. Architecture recovery from legacy systems is motivated by the fact that these systems do not often have an architectural documentation, and when they do, this documentation is many times out of synchronization with the implemented system. Most approaches to software architecture recovery has been exploring the static analysis of systems [2] [5] [6] [7]. When considering object-oriented software, which employs a lot of polymorphism and dynamic binding mechanisms, dynamic analysis becomes an essential technique to comprehend the system behavior, object interactions, and hence to reconstruct its architecture. In this work, the criteria used to determine how source code entities should be clustered in architectural elements are mainly based on the dynamic analysis of the system, taking into account the occurrences of interaction patterns and types (classes and interfaces) in use-case realizations.The proposed architecture recovery approach aims at the extraction of a functional decomposition of the system, clustering entities that implement similar and coherent functionality. However, it is important to state that an application can have many architecture descriptions, considering, for example, the different architectural views [3] or the diversity of implemented architectural patterns [2]. In this work, we adopt the 4+1 view model [3] to describe an architecture and, besides the functional decomposition that corresponds to the logical view of the architecture, the process and scenario views are also recovered by a dynamic reverse engineering sub-process. T o present the proposed approach, following this introduction, section 2 describes the proposed software architecture recovery process; section 3 presents a case study used to evaluate the process; and section 4 outlines some conclusions and lists our ongoing work.2.The Proposed ApproachThe proposed process to software architecture recovery is depicted in figure 1.Figure 1: The proposed software architecture recovery process.The process is iterative and incremental. The architecture is recovered in cycles, starting by the use-case modeling activity, and in each cycle a more complete description of the system architecture is obtained. The process is semi-automatic and guided by a developer who must have some knowledge about the application. This knowledge, if not existent, can be obtained from system experts, available system documentation and application execution. In the following we briefly describe the process activities.Static Reverse Engineering and Use-Case ModelingThe process starts by the static reverse engineering and use-case modeling activities. The static reverse engineering aims at the recovery of a static model of the system, which is represented through UML Class Diagrams. This activity is executed only once.The use-case modeling can start in parallel to the static reverse engineering. Its goal is to establish the focus of the architecture recovery in the current cycle of the process. To recover the whole architecture of an application in one step is a hard task [5]. In [9] the focus of the recovery process is also established by the use-case modeling. However use-cases are selected according to the change and evolution requirements of the application. In our work, the recovery must start by some key use-cases of the application, representing essential functionality, and incorporates more use-cases as the developer feels it is necessary.The use-case modeling activity involves a manual reconstruction of some system use-cases whenever an up-to-date use-case model of the application is not available. Besides use-cases definition, this activity also involves use-case scenarios description. A use-case scenario encompasses a set of steps that guide the developer during the application execution. In order to specify the use-cases and their scenarios, as stated in [4], which is also a reverse engineering method that performs the analysis of input and output events of the application, user manuals and application execution may be investigated. In application executions, menu options at the application user-interface are a good indicator of system use-cases. Moreover, test cases documentation, if available, can also be analyzed. Dynamic Reverse Engineering and Architectural Elements DefinitionDynamic reverse engineering aims at the reconstruction of a system behavioral model, represented through UML sequence diagrams, in this case. To this end, the system is executed for the specified use-case scenarios and these executions are monitored, allowing the collection of execution traces. Execution traces encompass the set of events and messages generated during system execution, with their sender and receiver instances and their types. They are the input source of information to the reconstruction of sequence diagrams and the definition of architectural elements.The criteria to architectural elements definition are based on the analysis of these execution traces. Most of the approaches to architecture recovery does not establish general criteria to architectural elements definition [5] [9]. When they do, architectural elements identification is based on the static analysis of the system [2] [6]. In this work, our assumption is that the dynamic model of the system, considering object-oriented software, reveals significant information about object interactions that is essential to support architectural elements reconstruction. We propose two criteria to architectural elements definition, namely:•Criterion 1: Clustering in subsystems source-code entities (classes and interfaces) that participate in interaction patterns that appear in a large1 set of use-cases. An interaction pattern that participates in the realization of a large set of use-cases indicates types that represent a central functionality in the architecture.•Criterion 2: Clustering of source-code entities that participate in the realization of a small set of use-cases together with these use-cases in subsystems.An interaction pattern represents an ordered sequence of messages and events that frequently occur during system execution. Moreover, the architectural elements defined must thereafter be mapped to the sequence diagrams reconstructed in order to allow a representation of a dynamic model of the system architecture, corresponding to the process and scenarios view [3]. The scenarios view relates use-cases to architectural elements.A challenge we face, however, to conduct this dynamic analysis is the volume of information obtained in the traces. One of the solutions proposed to this problem is to filter out from the traces the events and messages to/from Java API classes.EvaluationIn each cycle of the recovery process, the architecture reconstructed must be evaluated by system experts. The goal is to validate if the recovered elements really correspond to an expected architecture representation, being helpful to system comprehension.1 The number of use-cases that indicate a large set is application-dependent. As we perform several case studies applying the proposed process, a percentage value for this number can be defined.In order to reduce the frequently required manual effort to architecture recovery, a tool set to support the process has been developed in the context of the Odyssey project [11]. The following section presents a case study that was performed to evaluate the proposed process along with the description of our tool set.3.Case StudyA case study to evaluate the proposed process has been done with the support of the Odyssey environment, aiming at the reconstruction of its own architecture. Odyssey is a software development environment that covers the development for reuse, through domain engineering, and the development with reuse, through application engineering. It has two main views, namely Environment and Modeling Environment, in which the developer can create domains, applications, model domains and applications etc. Odyssey is written in Java programming language and contains around 650 classes.Along the years Odyssey became a huge environment, with drawbacks related to performance, usage complexity and evolution. Many tools, such as the pattern detection tool, are not necessary in some particular usage scenarios, and they can represent an overhead to the whole environment in these scenarios. Since Odyssey continues to evolve, in 2003 the team decided to reengineer the environment in order to reduce its complexity and to allow its customization to specific needs. However, only a few of the original developers were available and there was no up-to-date documentation of the whole environment design to be investigated. Thus the team realized the need to recover the Odyssey architecture in order to allow its comprehension and facilitate its reengineering. The following sections illustrate how the proposed process was applied to the recovery of the Odyssey architecture, taking into account a few architectural elements, i.e., the kernel of the application and some elements related to essential features of the environment.3.1.Static Reverse Engineering and Use-Case ModelingThe static reverse engineering was performed with the Ares tool, a reverse engineering tool integrated to the Odyssey environment, which is capable of extracting a UML static model from Java source-code. The use-case modeling activity started through the identification of some key use-cases, namely: Create a New Domain; Create a New Class; Create a New Use-Case; Create a New Class Diagram; and Define a New User. The identification of key use-cases is the developer responsibility, but may take into account some essential features of the application. In the case of Odyssey, since it represents a development environment, which encompasses reuse through domain engineering, the key use-cases were the ones related to domain creation and its modeling. Moreover, an important feature of the Odyssey environment is its control over authorized users. Some more use-cases were defined along the other recovery cycles.Create a New ClassMain Scenario: Create a new class through pop-up menu option. To start this scenario the user must be in theModeling Environment view of Odyssey.Steps:1.The user goes to the Structural View and presses the mouse right button.2.Odyssey shows a menu window with some options.3.The user chooses “Creates New Class”.4.Odyssey creates a new class element in its Structural View, with a graphical representation and a set ofdocumentation items to be fulfilled.Figure 2. Main scenario for Create New Class use-case.The main scenarios for each use-case were specified. Figure 2 exemplifies a scenario description to the main scenario for the use-case “Create a New Class”.3.2.Dynamic Reverse EngineeringDuring the dynamic reverse engineering, Odyssey was executed to the specified use-case scenarios and the execution traces were collected. To support the dynamic reverse engineering, we developed a trace collector tool, named Tracer, that uses aspects [10] to monitor Java program executions and collect the messages and events generated during execution. Tracer fits well the process needs, since it allows the collection of execution traces to be enabled and disabled at run-time, making it feasible to collect only the execution traces related to a specific use-case scenario or application functionality. Moreover, some filters can be applied while using Tracer, allowing the user to determine packages and/or classes to be traced. Tracer stores the trace in a XML file, facilitating the post-processing of the generated information. Based on these execution traces, sequence diagrams, associated to the use-case scenarios, were reconstructed using Odyssey.3.3.Architectural Elements DefinitionArchitectural elements definition started with the detection of interaction patterns in the reconstructed dynamic model. By comparing the sequence diagrams reconstructed to the Odyssey use-cases, it was possible to identify two interaction patterns that appear in almost all of the use-case scenarios. They are depicted in figures 3 and 4.Figure 3 illustrates the first pattern in the context of the “Create New Class” use-case. This pattern occurs anytime a new semantic element (like a class, a use-case or a user) needs to be created in Odyssey. Environment and ModelingEnvironment classes control a semantic element creation, asking SemanticFactory to fabricate the correspondent element. There are little differences in this pattern considering the different use-case scenarios, such as the ClassNode class, which is UseCaseNode in the “Create New Use-Case” use-case. It is important to state, however, that we assume that an interaction pattern can have some interleaved messages.The second interaction pattern detected is illustrated in figure 4. This pattern is in fact a continuation of the first one. By analyzing the patterns in figures 3 and 4, it was possible to realize that every model element, like classes, use-cases, diagrams etc., are modeling items (class ModelItem) and abstract models (class AbstractModel).Through the interaction patterns detected, it was possible to visualize the Odyssey kernel, the Semantic Core element, which encompasses the classes that are essential to the definition and instantiation of any semantic element and appear in the realization of almost all the use-cases, like Environment, ModelingEnvironment, AbstractModel etc. It is depicted in figure 6. Moreover, since Odyssey works with some factories, an architectural element to encapsulate them was defined. Architectural elements are depicted in figure 5. The Semantic Core depends on the Factories in order to create new semantic elements. The Class Modeling architectural element contains the classes (e.g. ClassModelRepresentation) that only appear in the realization of the use-cases related to class modeling. The same holds for the Use-Case Modeling architectural element. The classes in the Class Modeling and UseCase Modeling architectural elements are subclasses of classes in the Semantic Core.Figure 3. First interaction pattern detected in the Odyssey execution.Figure 4. Second interaction pattern detected in the Odyssey execution.In order to reconstruct the internal structure of each architectural element, a tool that queries the Odyssey internal class model was applied. The Class Manipulation tool provides some query capabilities to the Odyssey environment, allowing the user to select classes in the static model of an application based on some search criterion.The static reverse engineering of Odyssey was performed within Odyssey itself, making it possible to use the Class Manipulation tool to locate in the static model the classes that appeared in the interaction patterns detected. Since Odyssey has 650 classes, by using this tool, we could slice its static model and reduce the time to reconstruct its partial architecture. Moreover, by querying classes using their name string, allowed us to find classes with similar names. Grouping classes with a common string in their names,although not being one of our main crietria to architectural elements definition, is also helpful since designers use to follow this criterion in order to characterize architectural elements, like layers. The Class Manipulation tool also computed the high-level dependencies between the architectural elements (shown in figure 5) as their internal structures were reconstructed.Figure 5. Some Odyssey architectural elements.Figure 6. Semantic Core internal structure. 3.4. EvaluationBy evaluating the Odyssey architecture with experts we could confirm that the recovered architectural elements were reasonable. However, some static relationships between classes, as the aggregation between the classes Model and ModelItem (figure 6), were not recovered by the static reverse engineering tool and needed to be added manually to the diagram. Nevertheless, the recovered architecture was successfully used as the basis to the reengineering of the Odyssey, which lead to the generation of a new version of the environment, named OdysseyLight [12].4. Conclusions and Ongoing WorkThrough the presented case study it was possible to have an initial evaluation of the effectiveness of architecture recovery based on dynamic analysis of software. There are Odyssey Architectural Elementsalso a few approaches to architecture recovery that take into account the dynamic analysis. In [8], the authors apply the formal concept analysis technique to identify methods shared by use-cases implementation. Each concept in the generated conceptual lattice encompasses a set of use-cases and their shared methods. However, the lattice does not make clear where a source-code entity, such as a class, must be located in the architecture, since the same entity appears in more than one concept. In [9], dynamic analysis is also considered in the recovery process. However, this analysis is not automated and it is not used as the basis to architectural elements identification.In our proposal, criteria to architecture reconstruction are clearly defined based on use-case realizations. Moreover, we are currently specifying and developing tools to support the process activities to which an automated support still does not exist, such as the sequence diagram reconstruction and interaction patterns detection.References1. Garlan, D., Perry, D. Introduction to the Special Issue on Software Architecture. IEEETransactions on Software Engineering, April 1995, p. 269-274.2. Harris, D. R., Yeh, A., Reubestein, H.B., Yeh, A.S. Reverse Engineering to theArchitectural Level. In Proceedings of the 17th International Conference on Software Engineering, Scattle, Washington, April 1995, p. 186-195.3. Kruchten, P.B. The 4+1 View Model of Architecture. IEEE Software, November 1995, Vol. 12, Number 6, p. 42-50.4. Penteado, R.A.D., Germano, Masiero, F., P.C. An Overall Based on Fusion to ReverseEngineer Legacy Code. In Proceedings of the 3rd IEEE Working Conference on Reverse Engineering, Monterey, California, November, 1996, p. 179-188.5. Kazman, R., Carrière, S.J. Playing Detective: Reconstructing Software Architecturefrom Available Evidence. Technical Report CMU/SEI-97-TR-010, Carnegie Mellon University, October 1997.6. Mendonça, N. C., Kramer, J. Developing an Approach for the Recovery of DistributedSoftware Architectures. In Proceedings of the 6th IEEE International Workshop on Program Comprehension, Ischia, Italy, June 1998, p. 28-36.7. Sartipi, K., Kontogiannis, K., Mavaddat, F. Software Architecture Recovery. SoftwareEngineering Group, University of Waterloo, Waterloo, Ontario, Canada, Technical Report, 1999.8. Bojic, D., Velasevic, D. A Use-Case Driven Method of Architecture Recovery forProgram Understanding and Reuse Reengineering. In Proceedings of the 4th European Software Maintenance and Reengineering Conference, Zuriq, Swiss, February 2000, p.23-31.9. Ding, L., Medvidovic, N. Focus: a LightWeight, Incremental Approach to SoftwareArchitecture Recovery and Evolution. Working IEEE/IFIP Conference on Software Architecture, Amsterdam, Netherlands, August 2001, p. 191-200.10. AOSD Steering Committee. Aspect-Oriented Software Development. In:. Accessed in 09/02/2004.11. Odyssey Project. In: http://www.cos.ufrj.br/~odyssey. Accessed in 05/10/2004.12. Murta, L., Vasconcelos, A., et al. Run-Time Variability through Component DynamicLoading. To appear in the Proceedings of the Tools Session at the 18th Brazilian Symposium on Software Engineering, Brasilia, Brazil, October 2004.。

相关文档
最新文档