1 Programming Tools Slides by: Noppadon Kamolvilassatian Source: Code Complete by Steve McConnell, Chapter 20.

Slides:



Advertisements
Similar presentations
Ch. 91 Software Engineering Tools and Environments.
Advertisements

Productivity Tools For SAS . SAS ® users today ASAP ™Enhancement complementSoft introduces ASAP ™ an innovative productivity tool for SAS ® Diagramming.
SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
Systems Software.
1 Program Design Language (PDL) Slides by: Noppadon Kamolvilassatian Source: Code Complete by Steve McConnell, Chapter 4.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Lecture 1 Introduction to the ABAP Workbench
CS1061 C Programming Lecture 3: The Programming Environment + Introduction to the Concept of an Algorithm A. O’Riordan, 2004.
Computers: Tools for an Information Age
COMP205 Comparative Programming Languages Part 1: Introduction to programming languages Lecture 3: Managing and reducing complexity, program processing.
Program Flow Charting How to tackle the beginning stage a program design.
Program Flow Charting How to tackle the beginning stage a program design.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
Guide To UNIX Using Linux Third Edition
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
1 Chapter Two Introduction to the Programming Language C.
Computer Software.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Programming In C++ Spring Semester 2013 Programming In C++, Lecture 1.
Lesson 4 Computer Software
Introduction to High-Level Language Programming
Chapter 13 Programming Languages and Program Development 1.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering.
Languages and Environments Higher Computing Unit 2 – Software Development.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Higher Grade Computing Studies 2. Languages and Environments Higher Computing Software Development S. McCrossan 1 Classification of Languages 1. Procedural.
HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.
CHAPTER FOUR COMPUTER SOFTWARE.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 CASE Computer-aided software engineering Excerpted from Ian Sommerville’s.
Program Development Life Cycle (PDLC)
1 3. Computing System Fundamentals 3.1 Language Translators.
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
CSC 230: C and Software Tools Rudra Dutta Computer Science Department Course Introduction.
1 Chapter 13 Understanding Computers, 11 th Edition 13 Program Development and Programming Languages TODAY AND TOMORROW 11 th Edition CHAPTER.
Productivity Tools Ken Nguyen Department of Information Technology Clayton State University.
Software Engineering. Software Engineering is… Design Coding Testing Debugging Documentation Maintenance …of new software.
Chapter 1 Introduction Chapter 1 Introduction 1 st Semester 2015 CSC 1101 Computer Programming-1.
Chapter 0 Overview. Why you are here? Where will you go? What is this course for?
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
Computing System Fundamentals 3.1 Language Translators.
Software AS Module Heathcote Ch.20. Importance of Information  Information technology is fundamental to the success of any business  The information.
Application Software System Software.
Slide 5.1 © The McGraw-Hill Companies, 2002 CASE (Computer-Aided Software Engineering) l Scope of CASE –Can support the entire life-cycle l Graphical display.
CPS120: Introduction to Computer Science Compiling a C++ Program From The Command Line.
A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems.
Chapter – 8 Software Tools.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
CASE Tools and their Effect on Software Quality
Chapter 6 Testing and running a solution. Errors X Three types Syntax Logic Run-time.
Debuggers. Errors in Computer Code Errors in computer programs are commonly known as bugs. Three types of errors in computer programs –Syntax errors –Runtime.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
Ashima Wadhwa Assistant Professor(giBS)
PRINCIPLES OF COMPILER DESIGN
Chapter 5- Assembling , Linking, and Executing Programs
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
CSCI-235 Micro-Computer Applications
Microprocessor and Assembly Language
Chapter 1: Introduction to Compiling (Cont.)
Maintaining software solutions
TRANSLATORS AND IDEs Key Revision Points.
Introduction to System Programming
COMPUTER SOFT WARE Software is a set of electronic instructions that tells the computer how to do certain tasks. A set of instructions is often called.
Program Design Language (PDL)
System Programming By Prof.Naveed Zishan.
Programming Logic and Design Eighth Edition
Presentation transcript:

1 Programming Tools Slides by: Noppadon Kamolvilassatian Source: Code Complete by Steve McConnell, Chapter 20

2 A Quote A dog might be man’s best friend, but a few good tools are a programmer’s best friends.

3 Design Tools n Support common graphical notations and PDL –hierarchy charts, E-R diagram, Jackson Structured Design, etc. n Helps on housekeeping –e.g., rearrange bubbles automatically when you add or delete a bubble n Enable you to move between higher and lower levels of abstraction n Check consistency of your design n Some may be able to create code directly from your design

4 Source-code Tools: Editing n Editors –syntax checks, search and replace, multi-level undo, etc. n Multiple-file string changers –AWK n File comparators n Source-code beautifiers n Templates –automatically creating skeleton of your programs

5 Source-code Tools: Browsing n Helps you find what you look for more easily n Multiple-file string searchers –grep ”\[ *[0-9]* *\]” *.c (Look for magic numbers) n Cross-reference tools –look for variable and routine names in all places at once n Call-structure generator –produce information about how routines call each other –useful for packaging a program into modules, debugging.

6 Tools: Analyzing Code Quality n Picky syntax and semantics checker –e.g., detection of “while ( i = 0)” n Metrics reporters –Report the quality of your routines. –Identify most complicated routines, so you can review them. –Track defects and the programmers who made them. –Count modifications on the software –etc.

7 Tools: Restructuring Source Code n Code translators –Translate from one language to another n Version Control –Track different versions of modules, routines n Data Dictionaries –Keeping track of thousands of variable names on a larger project

8 Code Creation Tools n Linkers –links one or more object files with the standard code to make executable programs n Code Libraries –something you can buy (in many cases cheaper and perhaps better-quality than coding them yourself) –multimedia application creation, networking, graphics functions, mathematical operations, data compression, etc. n Code generator –esp. on user interface and database –the prime examples are Borland Builder Series

9 Code Creation Tools n Macro preprocessors –e.g., #define MAX_EMPS 5000 –the preprocessor replace MAX_EMPS with 5000 before compilation

10 Debugging Tools n Compiler warning messages n File comparators n Interactive debuggers –Watch, Breakpoint, Jump, etc

11 Testing n Results comparators n Automated test generators n Test-case record and playback utilities n Coverage monitors (logic analyzer, execution profilers) n etc.

12 Code Tuning n Execution profilers –watches your code while it runs and tells you how many times each statement is executed or how much time the program spends on each statement –helps you in focus your code-tuning effort n Assembler listings and disassemblers –show you the assembler code generated by compilers

13 Building your own programming tools n Project-specific tools –An insurance company developed software to calculate its rate increases. Hundreds of computed rate needs to be checked carefully. Checking for errors by hand take a long time. They wrote another software to check the main program’s rates. –Microsoft planned to use a new font technology. Software was developed to check whether errors are in the font data or software. n Scripts –automate something repetitive