Software Maintenance and Evolution
|
|
- Jeffrey McDaniel
- 5 years ago
- Views:
Transcription
1 Software Maintenance and Evolution Minsoo Ryu Hanyang University
2 Topics Covered 1. Software Maintenance and Evolution 2. Reverse Engineering 3. Reengineering 2 2
3 Software Change Software change is inevitable New requirements emerge when the software is used; The business environment changes; Errors must be repaired; New computers and equipment is added to the system; The performance or reliability of the system may have to be improved A key problem for organizations is implementing and managing change to their existing software systems 3 3
4 Software Maintenance and Evolution Maintenance is modifying a program after it has been put into use The terms, maintenance, evolution, and reengineering can often be used interchangeably Software maintenance is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment. (ISO/IEC 14764) 4 4
5 Types of Maintenance Maintenance to repair software faults Changing a system to correct deficiencies in the way meets its requirements Maintenance to adapt software to a different operating environment Changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation Maintenance to add to or modify the system s functionality Modifying the system to satisfy new requirements 5 5
6 Change reports Maintenance Process Every change needed must be first reported, i.e., fault report Change authorization Changes must be checked and authorized Software reengineering Reverse engineering Forward engineering 6 6
7 Reengineering 7 7
8 1. Software Maintenance and Evolution 2. Reverse Engineering Reverse Engineering of Source Code Source code analysis Diagram generation Document generation Reverse Engineering of Binary Software Disassembly Decompilation Reverse Engineering with HW Support 3. Reengineering Topics Covered 8 8
9 Reverse Engineering Reverse engineering is the process of design recovery Analyze a program in an effort to create a representation of the program at a higher level of abstraction It can also be seen as "going backwards through the development cycle In this model, the output of the implementation phase (in source code form) is reverse engineered back to the analysis phase, in an inversion of the traditional waterfall model Reverse engineering is a process of examination only: the software system under consideration is not modified 9 9
10 Two Types of Reverse Engineering In the first case, source code is already available for the software, but higher level aspects of the program, perhaps poorly documented or documented but no longer valid, are discovered In the second case, there is no source code available for the software, and any efforts towards discovering one possible source code for the software are regarded as reverse engineering This second usage of the term is the one most people are familiar with Reverse engineering of software can make use of the clean room design technique to avoid infringing copyrights 10 10
11 Notes on Clean Room Design Clean room design (also known as the Chinese wall technique) is the method of copying a design by reverse engineering and then recreating it without infringing any of the copyrights and trade secrets associated with the original design Clean room design is useful as a defense against copyright and trade secret infringement because it relies on independent invention However, because independent invention is not a defense against patents, clean room designs typically cannot be used to circumvent patent restrictions 11 11
12 Notes on Legality of Reverse Engineering In the United States and many other countries, even if an artifact or process is protected by trade secrets, reverse-engineering the artifact or process is often lawful as long as it is obtained legitimately Patents, on the other hand, need a public disclosure of an invention, and therefore patented items do not necessarily have to be reverse engineered to be studied One common motivation of reverse engineers is to determine whether a competitor's product contains patent infringements or copyright infringements 12 12
13 Reverse Engineering of Source Code Source code analysis tools for C in UNIX ctags: creates an index of functions cxref: shows where each symbol is mentioned in the program cflow: shows which function calls which others cxref cflow 13 13
14 Reverse Engineering of Source Code Producing diagrams from source code Object-oriented implementation can easily be reverse engineered to produce its original design model Java Studio Enterprise 8 (based on NetBeans) can take code sources and reverse engineer the code into a UML model IBM rational Software Modeler can perform reverse transformations source code into a UML model CVF (Code Visual to Flow chart) CVF can automatically generate programming flow chart from source code, help programmers to document, visualize and understand code 14 14
15 Reverse Engineering of Source Code Document generation Some tools can generate documents from commented source code Doxygen is a documentation generator for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D and ActionScript It runs on most Unix-like systems, including Mac OS X, as well as on Windows Javadoc is a documentation generator from Sun Microsystems for generating API documentation in HTML format from Java source code Javadoc is the industry standard for documenting Java classes Most IDEs will automatically generate Javadoc HTML 15 15
16 Reverse Engineering of Source Code ROBODoc is a documentation tool similar to javadoc and licensed under the GPL ROBODoc works with C, C++, Fortran, Perl, shell scripts, Assembler, DCL, DB/C, Tcl/Tk, Forth, Lisp, COBOL, Occam, Basic, HTML, Clarion 16 16
17 Reverse Engineering of Binary Software Disassembly (machine language assembly language) The raw machine language of the program is read and understood in its own terms, only with the aid of machine language mnemonics The Interactive Disassembler is a particularly popular tool The Interactive Disassembler, more commonly known as simply IDA, is a commercial disassembler widely used for reverse engineering It supports a variety of executable formats for different processors and operating systems including Windows PE, Mac OS X Mach-O, and Linux ELF executables 17 17
18 Reverse Engineering of Binary Software Decompilation A decompiler can perform the reverse operation to that of a compiler It translates a file containing information at a relatively low level of abstraction into a form having a higher level of abstraction (usually designed to be human readable) 18 18
19 Reverse Engineering of Binary Software The dcc decompiler was developed by Cristina Cifuentes while a PhD student at the Queensland University of Technology (QUT), Australia, , under the supervision of Professor John Gough Mike Van Emmerik developed the library signature recognition algorithms while employed by QUT The dcc distribution is made available under the GPL license The dcc decompiler decompiles.exe files from the (i386, DOS) platform to C programs The final C program contains assembler code for any subroutines that are not possible to be decompiled at a higher level than assembler 19 19
20 Reverse Engineering of Binary Software Decompilation using dcc 20 20
21 Reverse Engineering at Low-Level Hardware trace Hardware trace provides a complete history of a microprocessor is doing as software runs Data values read and written Context switching State of microprocessor Hardware trace data is output over a dedicated port from a trace-enabled microprocessor There are several embedded microprocessors available today that can output trace data, including the ARM7, ARM9, and ARM11; the IBM PowerPC 405 and 440; and the PowerPC 5500 and MAC7100 families from Freescale 21 21
22 Reverse Engineering at Low-Level Logic analyzer A logic analyzer is an electronic instrument that displays signals in a digital circuit that are too fast to be observed and presents it to a user so that the user can more easily check correct operation of the digital system They are typically used for capturing data in systems that have too many channels to be examined with an oscilloscope Software running on the logic analyzer can convert the captured data into timing diagrams, protocol decodes, state machine traces, assembly language, or correlate assembly with source-level software 22 22
23 Reverse Engineering with HW Support Packet sniffer A packet sniffer (also known as a network sniffer, network analyzer or protocol analyzer or, for particular types of networks, an Ethernet sniffer or wireless sniffer) is computer software or computer hardware that can intercept and log traffic passing over a digital network or part of a network As data streams flow across the network, the sniffer captures each packet and eventually decodes and analyzes its content according to the appropriate RFC or other specifications A bus analyzer is a type of protocol analyzer 23 23
24 Topics covered 1. Software Maintenance and Evolution 2. Reverse Engineering 3. Reengineering 24 24
25 Reengineering Typical reengineering activities Code restructuring Program structure improvement Program modularization Data restructuring Data abstraction Source code translation (e.g. FORTRAN to C) 25 25
26 Program Structure Improvement (before) Spaghetti logic Start: Get (Time-on, Time-off, Time, Setting, Temp, Switch) if Switch = off goto off if Switch = on goto on goto Cntrld off: if Heating-status = on goto Sw-off goto loop on: if Heating-status = off goto Sw-on goto loop Cntrld: if Time = Time-on goto on if Time = Time-off goto off if Time < Time-on goto Start if Time > Time-off goto Start if Temp > Setting then goto off if Temp < Setting then goto on Sw-off: Heating-status := off goto Switch Sw-on: Heating-status := on Switch: Switch-heating loop: goto Start 26 26
27 Program Structure Improvement (after) loop -- The Get statement finds values for the given variables from the system 뭩 -- environment. Get (Time-on, Time-off, Time, Setting, Temp, Switch) ; case Switch of when On => if Heating-status = off then Switch-heating ; Heating-status := on ; end if ; when Off => if Heating-status = on then Switch-heating ; Heating-status := off ; end if; when Controlled => if Time >= Time-on and Time < = Time-off then if Temp > Setting and Heating-status = on then Switch-heating; Heating-status = off; elsif Temp < Setting and Heating-status = off then Switch-heating; Heating-status := on ; end if; end if ; end case ; end loop ; 27 27
28 Data Restructuring Program 1 Program 2 Program 3 File 1 File 2 File 3 File 4 File 5 File 6 Program 4 Program 5 Program 6 Program 7 Becomes Program 3 Program 4 Program 5 Program 6 Program 2 Program 7 Program 1 Database management system describes Logical and physical data models 28 28
29 Source Code Translation Translation of code in one language into another in different language E.g., Fortran to C or C to C++ PROMULA is a Fortran to C translator This tool translates FORTRAN source code to correct (compilable) and clean (readable and maintainable) C source code The article Object-Oriented Programming with ANSI-C Shows how object-oriented programming is done with ANSI-C and how to translate the notions classes, inheritance, instances, linkage, methods, objects, polymorphisms, and more into the things in ANSI-C 29 29
Chapter 11 Program Development and Programming Languages
Chapter 11 Program Development and Programming Languages permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. Programming
More informationREVERSE ENGINEERING. Reverse Engineering
REVERSE ENGINEERING Tarja Systä, tsysta@cs.tut.fi modified by Jyrki Nummenmaa Reverse Engineering Trying to figure out the structure and behaviour of existing software by building general-level static
More informationSoftware re-engineering
Software re-engineering Reorganising and modifying existing software systems to make them more maintainable Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 1 Objectives To explain
More informationANZSCO Descriptions The following list contains example descriptions of ICT units and employment duties for each nominated occupation ANZSCO code. And
ANZSCO Descriptions The following list contains example descriptions of ICT units and employment duties for each nominated occupation ANZSCO code. Content 261311 - Analyst Programmer... 2 135111 - Chief
More informationIntroduction to Computers and Visual Basic.Net Pearson Education, Inc. All rights reserved.
1 1 Introduction to Computers and Visual Basic.Net 2 OBJECTIVES In this chapter you will learn: Basic computing concepts. The different types of programming languages. The evolution of the Basic Programming
More informationConcepts in Programming Languages
Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture
More informationIntroduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University
Introduction to Computers and Programming Languages CS 180 Sunil Prabhakar Department of Computer Science Purdue University 1 Objectives This week we will study: The notion of hardware and software Programming
More informationWeb Application Performance Testing with MERCURY LOADRUNNER
Web Application Performance Testing with MERCURY LOADRUNNER Course Overview (17 lessons) Introduction...2 1. Introduction...2 Web Application Development - overview and terminology...3 2. Two tiers configuration...3
More informationTopic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.
Topic I Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 1 of Programming languages: Design and implementation (3RD EDITION)
More informationChapter 1: Introduction
Chapter 1: Introduction Outline Introduction What Is a Computer? Computer Hardware Computer Software Computer Programming Languages Machine Code, Assembly Languages and High-Level Languages. The History
More informationChapter 1. Preliminaries
Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language
More informationCOMPUTER FORENSICS (CFRS)
Computer Forensics (CFRS) 1 COMPUTER FORENSICS (CFRS) 500 Level Courses CFRS 500: Introduction to Forensic Technology and Analysis. 3 credits. Presents an overview of technologies of interest to forensics
More informationDiscovering Computers 2008
Discovering Computers 2008 Chapter 13 (a) Programming Languages and Program Development 1 Chapter 13 Objectives Differentiate between machine and assembly languages Identify and discuss the purpose of
More informationChapter 1 Preliminaries
Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language
More informationHistory of Compilers The term
History of Compilers The term compiler was coined in the early 1950s by Grace Murray Hopper. Translation was viewed as the compilation of a sequence of machine-language subprograms selected from a library.
More informationChapter 1. Preliminaries
Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language
More information1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction
Introduction (Cont.) Introduction to CSE 1325 Object Oriented Programming (Using Java) Sharma Chakravarthy Information Technology Laboratory (IT Lab) Computer Science and Engineering Department The University
More informationFundamental Concepts and History
Fundamental Concepts and History Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered I. Fundamental Concepts II. Evolution of OS 2 Key Concepts
More informationComputer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.
Hardware and Software Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages Computer systems consist of hardware and software. Hardware includes the tangible
More informationSKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)
SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2
More informationSoftware Maintenance. Maintenance is Inevitable. Types of Maintenance. Managing the processes of system change
Software Maintenance Managing the processes of system change Maintenance is Inevitable The system requirements are likely to change while the system is being developed because the environment is changing.
More informationIntroduction to Java Programming
Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific
More information8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES
CS-3304 Introduction In Text: Chapter 1 & 2 COURSE DESCRIPTION 2 What will you learn? Survey of programming paradigms, including representative languages Language definition and description methods Overview
More informationChapter. Focus of the Course. Object-Oriented Software Development. program design, implementation, and testing
Introduction 1 Chapter 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design 2007 Pearson Addison-Wesley. All rights reserved Focus of the Course Object-Oriented Software Development
More informationCMSC131. Hardware and Software. Hardware
CMSC131 Hardware and Software Hardware Hardware is what makes up the physical machine. Two of the same type of machines can have different brands of hardware used to build them. eg : Hayes Modem -vs- US
More informationCMSC131. Hardware and Software
CMSC131 Hardware and Software Hardware Hardware is what makes up the physical machine. Two of the same type of machines can have different brands of hardware used to build them. eg : Hayes Modem -vs- US
More informationLegacy Systems. Older software systems that remain vital to an organisation. Legacy systems. Legacy system replacement
Legacy Systems Older software systems that remain vital to an organisation Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 26,27,28 Slide 1 Legacy
More informationComputer Basics 1/6/16. Computer Organization. Computer systems consist of hardware and software.
Hardware and Software Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages Computer systems consist of hardware and software. Hardware includes the tangible
More informationSoftware. Software. Software. Program Language. Programs written for the ENIAC
1 Purpose - In order for the CPU to control the physical states of the digital circuitry, it must receive signals from a computer program and convert these signals into action (switching circuits on and
More informationDIABLO VALLEY COLLEGE CATALOG
COMPUTER SCIENCE COMSC Despina Prapavessi, Dean Math and Computer Science Division Math Building, Room 267 The computer science department offers courses in three general areas, each targeted to serve
More informationA NET Refresher
.NET Refresher.NET is the latest version of the component-based architecture that Microsoft has been developing for a number of years to support its applications and operating systems. As the name suggests,.net
More information8/16/12. Computer Organization. Architecture. Computer Organization. Computer Basics
Computer Organization Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages 1 2 Architecture Computer Organization n central-processing unit n performs the
More informationChapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains
Chapter 1. Preview Reason for Studying OPL Reason for Studying OPL? Programming Domains Language Evaluation Criteria Language Categories Language Design Trade-Offs Implementation Methods Programming Environments
More informationFundamentals of Programming. By Budditha Hettige
Fundamentals of Programming By Budditha Hettige Overview Machines solve problems? How Machine Solve a Problem? What is Programming? What are Programming Languages Compilers Tools and Tips for Programming
More informationThe Frame API s baseline requirements
LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T980117-00- E 12/4/1998 The Frame API s baseline
More informationChapter 1 Introduction to Computers, Programs, and Java. What is a Computer? A Bit of History
Chapter 1 Introduction to Computers, Programs, and Java CS170 Introduction to Computer Science 1 What is a Computer? A machine that manipulates data according to a list of instructions Consists of hardware
More informationFundamentals of Python: First Programs. Chapter 1: Introduction Modifications by Mr. Dave Clausen
Fundamentals of Python: First Programs Chapter 1: Introduction Modifications by Mr. Dave Clausen Objectives After completing this chapter, you will be able to: Describe the basic features of an algorithm
More informationPROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING
PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING JAN BARTONÍČEK This paper's goal is to briefly explain the basic theory behind programming languages and their history
More informationChapter 1: Introduction to Computers and Java
Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:
More informationPrinciples of Programming Languages. Lecture Outline
Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation
More information8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java
Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:
More informationIBM WebSphere. IBM WebSphere Adapter for PeopleSoft Enterprise Quick Start Scenarios
IBM WebSphere Adapter for PeopleSoft Enterprise 7.5.0.0 Quick Start Scenarios Note: Before using this information and the product it supports, read the information in the Notices section, at the end of
More informationDescriptions for CIS Classes (Fall 2017)
Descriptions for CIS Classes (Fall 2017) Major Core Courses 1. CIS 1015. INTRODUCTION TO COMPUTER INFORMATION SYSTEMS. (3-3-0). This course provides students an introductory overview to basic computer
More informationChapter 1 Introduction to Computers, Programs, and Java
Chapter 1 Introduction to Computers, Programs, and Java 1 Objectives To understand computer basics, programs, and operating systems ( 1.2 1.4). To describe the relationship between Java and the World Wide
More informationSoftware metrics for open source systems. Niklas Kurkisuo, Emil Sommarstöm, 25697
Software metrics for open source systems Niklas Kurkisuo, 26389 Emil Sommarstöm, 25697 Contents Introduction 1 Open Source Software Development 1.1 Open Source Development advantages/disadvantages 1.2
More informationCS 113: Introduction to
CS 113: Introduction to Course information MWF 12:20-1:10pm 1/21-2/15, 306 Hollister Hall Add/drop deadline: 1/28 C Instructor: David Crandall See website for office hours and contact information Prerequisites
More informationDiscovering Computers Chapter 13 Programming Languages and Program Development
Discovering Computers 2009 Chapter 13 Programming Languages and Program Development Chapter 13 Objectives Differentiate between machine and assembly languages Identify and discuss the purpose of procedural
More informationCS101 Introduction to Programming Languages and Compilers
CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights
More informationIntroduction to Engineering Using Robotics Experiments. Dr. Yinong Chen
Introduction to Engineering Using Robotics Experiments Dr. Yinong Chen Outline Historical Perspective Programming Language Generations Programming Language Paradigms Imperative Programming Paradigm Writing
More informationBCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT
BCS THE CHARTERED INSTITUTE FOR IT BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT March 2015 EXAMINERS' REPORT Programming Paradigms General comments on candidates'
More informationIntroduction. A. Bellaachia Page: 1
Introduction 1. Objectives... 2 2. Why are there so many programming languages?... 2 3. What makes a language successful?... 2 4. Programming Domains... 3 5. Language and Computer Architecture... 4 6.
More informationLanguage Translation, History. CS152. Chris Pollett. Sep. 3, 2008.
Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008. Outline. Language Definition, Translation. History of Programming Languages. Language Definition. There are several different ways one
More informationIn the most general sense, a server is a program that provides information
d524720 Ch01.qxd 5/20/03 8:37 AM Page 9 Chapter 1 Introducing Application Servers In This Chapter Understanding the role of application servers Meeting the J2EE family of technologies Outlining the major
More informationTopic 1: Programming concepts
Topic 1: Programming concepts Learning Outcomes Upon successful completion of this topic you will be able to: identify stages of a program development implement algorithm design techniques break down a
More informationCOURSE OVERVIEW. Introduction to Computer Engineering 2015 Spring by Euiseong Seo
COURSE OVERVIEW Introduction to Computer Engineering 2015 Spring by Euiseong Seo Course Objectives Introduction to computer engineering For computer engineer-wannabe For students studying other fields
More informationDeveloping Java TM 2 Platform, Enterprise Edition (J2EE TM ) Compatible Applications Roles-based Training for Rapid Implementation
Developing Java TM 2 Platform, Enterprise Edition (J2EE TM ) Compatible Applications Roles-based Training for Rapid Implementation By the Sun Educational Services Java Technology Team January, 2001 Copyright
More informationIntroduction to Operating Systems. Note Packet # 1. CSN 115 Operating Systems. Genesee Community College. CSN Lab Overview
Introduction to Operating Systems Note Packet # 1 CSN 115 Operating Systems Genesee Community College CSN Lab Overview Dual booted Windows/Linux Workstations Linux workstations currently run CentOS and
More informationDebug your build by (s)tracing and reversing
Debug your build by (s)tracing and reversing foo.h /bin/gcc foo.c foo.o /bin/ld foo.exe Philippe Ombredanne My mission: make it easier to reuse FLOSS Enthusiast FLOSS developer AboutCode, Linux kernel,
More informationIntroduction to Programming
Introduction to Programming session 3 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2010 These slides are created using Deitel s slides Sahrif University of Technology Outlines
More informationCS 536. Class Meets. Introduction to Programming Languages and Compilers. Instructor. Key Dates. Teaching Assistant. Charles N. Fischer.
CS 536 Class Meets Introduction to Programming Languages and Compilers Mondays, Wednesdays & Fridays, 11:00 11:50 204 Educational Sciences Charles N. Fischer Instructor Fall 2012 http://www.cs.wisc.edu/~fischer/cs536.html
More informationLegacy Metamorphosis. By Charles Finley, Transformix Computer Corporation
Legacy Metamorphosis By Charles Finley, Transformix Computer Corporation Legacy Metamorphosis By Charles Finley, Transformix Computer Corporation Introduction A legacy application is any application based
More informationCHAPTER 1 Introduction to Computers and Java
CHAPTER 1 Introduction to Computers and Java Copyright 2016 Pearson Education, Inc., Hoboken NJ Chapter Topics Chapter 1 discusses the following main topics: Why Program? Computer Systems: Hardware and
More informationIntroduction to Computer Systems and Operating Systems
Introduction to Computer Systems and Operating Systems Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered 1. Computer History 2. Computer System
More informationThe MPI API s baseline requirements
LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T990086-00- E 09/14/1999 The MPI API s baseline
More informationLecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)
Lecture 09 Ada to Software Engineering Mr. Mubashir Ali Lecturer (Dept. of dr.mubashirali1@gmail.com 1 Summary of Previous Lecture 1. ALGOL 68 2. COBOL 60 3. PL/1 4. BASIC 5. Early Dynamic Languages 6.
More informationIntroduction to Java. Lecture 1 COP 3252 Summer May 16, 2017
Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began
More informationAn Operating System History of Operating Systems. Operating Systems. Autumn CS4023
Operating Systems Autumn 2017-2018 Outline 1 2 What is an Operating System? From the user s point of view an OS is: A program that acts as an intermediary between a user of a computer and the computer
More informationCS Computer Architecture
CS 35101 Computer Architecture Section 600 Dr. Angela Guercio Fall 2010 Structured Computer Organization A computer s native language, machine language, is difficult for human s to use to program the computer
More information1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem and Opportunity Identification D) Development
Technology In Action, Complete, 14e (Evans et al.) Chapter 10 Behind the Scenes: Software Programming 1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem
More informationAbout Database Adapters
About Database Adapters Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 820 5069 07/08/08 Copyright 2007 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054
More informationIBM ^ iseries Logical Partition Isolation and Integrity
June 2002 IBM ^ iseries Logical Partition Isolation and Integrity Dave Boutcher IBM Corporation boutcher@us.ibm.com Version 1.0 Page 1 Introduction The purpose of this document is to provide information
More informationChapter 1. Hardware. Introduction to Computers and Programming. Chapter 1.2
Chapter Introduction to Computers and Programming Hardware Chapter.2 Hardware Categories Input Devices Process Devices Output Devices Store Devices /2/27 Sacramento State - CSc A 3 Storage Devices Primary
More informationWebSphere Application Server Base Performance
WebSphere Application Server Base Performance ii WebSphere Application Server Base Performance Contents WebSphere Application Server Base Performance............. 1 Introduction to the WebSphere Application
More informationCOSE222 Computer Architecture
COSE222 Computer Architecture Cross-Compilation for MIPS using Eclipse - Updated on Sep. 10, 2017 Here, we are going to set up an environment to cross-compile C and/or MIPS Assembly code with Eclipse to
More informationChapter 7. Expressions and Assignment Statements ISBN
Chapter 7 Expressions and Assignment Statements ISBN 0-321-49362-1 Chapter 7 Topics Introduction Arithmetic Expressions Overloaded Operators Type Conversions Relational and Boolean Expressions Short-Circuit
More informationDistributed Objects. Object-Oriented Application Development
Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming
More informationProject Title REPRESENTATION OF ELECTRICAL NETWORK USING GOOGLE MAP API. Submitted by: Submitted to: SEMANTA RAJ NEUPANE, Research Assistant,
- 1 - Project Title REPRESENTATION OF ELECTRICAL NETWORK USING GOOGLE MAP API Submitted by: SEMANTA RAJ NEUPANE, Research Assistant, Department of Electrical Energy Engineering, Tampere University of Technology
More informationChapter 7. Expressions and Assignment Statements
Chapter 7 Expressions and Assignment Statements Chapter 7 Topics Introduction Arithmetic Expressions Overloaded Operators Type Conversions Relational and Boolean Expressions Short-Circuit Evaluation Assignment
More informationMindSet Development Tools (MDT) Development Guide
MindSet Development Tools (MDT) Development Guide June 28, 2009 e NeuroSky product families consist of hardware and software components for simple integration of this biosensor technology into consumer
More informationModule 1: Introduction to Computers, Programs, and Java
Module 1: Introduction to Computers, Programs, and Java Module 1: Introduction to Java page 1 Objectives To review Program Design and Problem-Solving Techniques To describe the relationship between Java
More informationCOMP 201: Principles of Programming
COMP 201: Principles of Programming 1 Learning Outcomes To understand what computing entails and what the different branches of computing are. To understand the basic design of a computer and how it represents
More informationChapter 1. The Big Picture
Chapter 1 The Big Picture 1.1 Computing Systems Hardware The physical elements of a computing system (printer, circuit boards, wires, keyboard ) Software The programs that provide the instructions for
More informationFrom High Level to Machine Code. Compilation Overview. Computer Programs
From High Level to Algorithm/Model Java, C++, VB Compilation Execution Cycle Hardware 27 October 2007 Ariel Shamir 1 Compilation Overview Algorithm vs. Programs From Algorithm to Compilers vs. Interpreters
More informationRelease Notes. IBM Tivoli Identity Manager Rational ClearQuest Adapter for TDI 7.0. Version First Edition (January 15, 2011)
IBM Tivoli Identity Manager for TDI 7.0 Version 5.1.1 First Edition (January 15, 2011) This edition applies to version 5.1 of Tivoli Identity Manager and to all subsequent releases and modifications until
More informationCareers with GNU/Linux
Indian Linux Users' Group, Chennai (ILUGC) in association with Thiagarajar College of Engineering, Madurai presents Careers with GNU/Linux by Shakthi Kannan MS Thiagarajar College of Engineering, Madurai
More informationLecture (02) Networking Model (TCP/IP) Networking Standard (OSI) (I)
Lecture (02) Networking Model (TCP/IP) Networking Standard (OSI) (I) By: Dr. Ahmed ElShafee ١ Dr. Ahmed ElShafee, ACU : Fall 2016, Networks II Agenda Introduction to networking architecture Historical
More informationCS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007
CS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007 Course Web Site http://www.nps.navy.mil/cs/facultypages/squire/cs2900 All course related materials will be posted
More informationRichard Mallion. Swift for Admins #TEAMSWIFT
Richard Mallion Swift for Admins #TEAMSWIFT Apple Introduces Swift At the WWDC 2014 Keynote, Apple introduced Swift A new modern programming language It targets the frameworks for Cocoa and Cocoa Touch
More informationC H A P T E R 1. Introduction to Computers and Programming
C H A P T E R 1 Introduction to Computers and Programming Topics Introduction Hardware and Software How Computers Store Data How a Program Works Using Python Computer Uses What do students use computers
More informationWhat is Java Platform?
What is Java Platform? Java is a programming language and a computing platform for application development. It was first released by Sun Microsystem in 1995 and later acquired by Oracle Corporation. A
More informationMath 230 Assembly Programming (AKA Computer Organization) Spring MIPS Intro
Math 230 Assembly Programming (AKA Computer Organization) Spring 2008 MIPS Intro Adapted from slides developed for: Mary J. Irwin PSU CSE331 Dave Patterson s UCB CS152 M230 L09.1 Smith Spring 2008 MIPS
More informationMultithreading: Exploiting Thread-Level Parallelism within a Processor
Multithreading: Exploiting Thread-Level Parallelism within a Processor Instruction-Level Parallelism (ILP): What we ve seen so far Wrap-up on multiple issue machines Beyond ILP Multithreading Advanced
More informationAn Introduction to Software Engineering. David Greenstein Monta Vista High School
An Introduction to Software Engineering David Greenstein Monta Vista High School Software Today Software Development Pre-1970 s - Emphasis on efficiency Compact, fast algorithms on machines with limited
More informationECE 2400 / ENGRD 2140 Computer Systems Programming Course Overview
ECE 2400 / ENGRD 2140 Computer Systems Programming Course Overview Christopher Batten School of Electrical and Computer Engineering Cornell University http://www.csl.cornell.edu/courses/ece2400 What is
More informationComparative analyses for the performance of Rational Rose and Visio in software engineering teaching
Journal of Physics: Conference Series PAPER OPEN ACCESS Comparative analyses for the performance of Rational Rose and Visio in software engineering teaching To cite this article: Zhaojun Yu and Zhan Xiong
More informationTable of Contents EVALUATION COPY
Table of Contents Introduction... 1-2 A Brief History of Python... 1-3 Python Versions... 1-4 Installing Python... 1-5 Environment Variables... 1-6 Executing Python from the Command Line... 1-7 IDLE...
More informationPerformance and Environment Monitoring for Continuous Program Optimization
IBM T.J. Watson Research Center Performance and Environment Monitoring for Continuous Program Optimization Evelyn Duesterwald Joint work with R. Azimi, C. Cascaval, M. Hauswirth, K. Sudeep, P. F. Sweeney,
More informationIBM WebSphere Sample Adapter for Enterprise Information System Simulator Deployment and Testing on WPS 7.0. Quick Start Scenarios
IBM WebSphere Sample Adapter for Enterprise Information System Simulator 7.0.0.0 Deployment and Testing on WPS 7.0 Quick Start Scenarios Note: Before using this information and the product it supports,
More informationVP-UML Installation Guide
Visual Paradigm for UML 6.0 Installation Guide The software and documentation are furnished under the Visual Paradigm for UML license agreement and may be used only in accordance with the terms of the
More informationAdvanced Operating Systems. COMP9242 Introduction
Advanced Operating Systems COMP9242 Introduction Staff Lecturer in Charge Gernot Heiser Lecturer Kevin Elphinstone Various Support Staff TBA 2 Why are you here? You ve done comp3231 Did well (minimum credit)
More information