Computational Science & Engineering Department CSE The Software Engineering Group SESP Software Analysis & Tools David J Worth and Chris Greenough 10th.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition.
Mi-Joung choi, Hong-Taek Ju, Hyun-Jun Cha, Sook-Hyang Kim and J
Network+ Guide to Networks, Fourth Edition Chapter 10 Netware-Based Networking.
Chapter Nine NetWare-Based Networking. Objectives Identify the advantages of using the NetWare network operating system Describe NetWare’s server hardware.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Web Service Testing Solution Accelerator
RSS RSS is a method that uses XML to distribute web content on one web site, to many other web sites. RSS allows fast browsing for news and updates.
Linux Operations and Administration
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES API documentation.
1 Introduction to Web Development. Web Basics The Web consists of computers on the Internet connected to each other in a specific way Used in all levels.
HTML Comprehensive Concepts and Techniques Intro Project Introduction to HTML.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Introduction 01_intro.ppt
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Computational Science & Engineering Department CSE 1 Software Engineering Tools – can they be of any practical use? Dr Chris Greenough Software Engineering.
Providing a Software Quality Framework for Testing of Mobile Applications Dominik Franke and Carsten Weise RWTH Achen University Embedded Software Laboratory.
Classroom User Training June 29, 2005 Presented by:
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
1 Web Basics Section 1.1 Compare the Internet and the Web Compare Web sites and Web pages Identify Web browser components Describe types of Web sites Section.
XHTML Introductory1 Linking and Publishing Basic Web Pages Chapter 3.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Computational Science & Engineering Department CSE The Software Engineering Group Software Engineering in the Computational Science and Engineering Department.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
Chapter Nine NetWare-Based Networking. Introduction to NetWare In 1983, Novell introduced its NetWare network operating system Versions 3.1 and 3.1—collectively.
Computational Science & Engineering Department CSE The Software Engineering Group 1 Software Engineering Tools for Fortran Software Development Chris Greenough.
The Network Performance Advisor J. W. Ferguson NLANR/DAST & NCSA.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Computational Science & Engineering Department CSE The Software Engineering Group 1 Software Quality Chris Greenough and David J Worth Software Engineering.
CHAPTER TWO INTRODUCTION TO VISUAL BASIC © Prepared By: Razif Razali 1.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Visualization in Problem Solving Environments Amit Goel Department of Computer Science Virginia Tech June 14, 1999.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
Web Browsing *TAKE NOTES*. Millions of people browse the Web every day for research, shopping, job duties and entertainment. Installing a web browser.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
A centre of expertise in digital information managementwww.ukoln.ac.uk UKOLN is supported by: Effective Web Site Training Workshop: Benchmarking Web Sites.
FlowLevel Client, server & elements monitoring and controlling system Message Include End Dial Start.
An overview of C Language. Overview of C C language is a general purpose and structured programming language developed by 'Dennis Ritchie' at AT &T's.
introductionwhyexamples What is a Web site? A web site is: a presentation tool; a way to communicate; a learning tool; a teaching tool; a marketing important.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
CIS 375 Bruce R. Maxim UM-Dearborn
A quick guide to other statistical software
Project 1 Introduction to HTML.
Software Application Overview
Modern Systems Analysis and Design Third Edition
Introduction and Principles
CSCI-235 Micro-Computer Applications
Chapter 18 Maintaining Information Systems
Modern Systems Analysis and Design Third Edition
Software for scientific calculations
Introduction to Programming the WWW I
Web Engineering.
Advantages OF BDD Testing
Networks Software.
Chapter 4 Automated Tools for Systems Development
Implementation and Maintenance
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Analysis models and design models
How to stop Fortran programming problems at the source
Use of VNC and RAL Systems
Modern Systems Analysis and Design Third Edition
Palestinian Central Bureau of Statistics
Presentation transcript:

Computational Science & Engineering Department CSE The Software Engineering Group SESP Software Analysis & Tools David J Worth and Chris Greenough 10th November 2006 Software Engineering Group Computational Science & Engineering Department Rutherford Appleton Laboratory

Computational Science & Engineering Department CSE The Software Engineering Group Software Engineering Group  Software Engineering Support Programme (SESP)  Funded by EPSRC  SLA for CSED and CCPs  Intelligent Agent Technology  University of Sheffield  Biological Systems  EURACE – EU Economic Modelling  CCPForge  Collaborative development environment for CCPs  SourceForge-like service based on GForge  Funded by JISC to set up initial service

Computational Science & Engineering Department CSE The Software Engineering Group Software Engineering Support Programme (SESP) SESP activity to provide and encourage the use of up-to-date software engineering techniques and tools within computational science and engineering. The main goals of SESP are:  accelerate the introduction and widespread use of high-payoff software engineering practices and technology by identifying, evaluating, and maturing promising or underused technology and practices;  maintain a long-term competency in software engineering and technology transition;  enable the UK academic community to make measured improvements in their software engineering practices by working with them directly;  encourage the adoption and sustained use of standards of excellence for software engineering practice;  foster collaborations with other groups, in the UK, Europe and the US, that have an interest in the applications of advanced software engineering techniques in computational science.

Computational Science & Engineering Department CSE The Software Engineering Group Elements of SESP  Software Quality Assurance  Processes for Legacy Software  Technology Watch  Evaluation of Methodologies, Tools and Technology  Integrated Design Environments  Parallelisation & vectorisation software  Symbolic Algebra Systems  Problem Solving Environments (PSE)  GUIs and user interfaces  Component technologies ...

Computational Science & Engineering Department CSE The Software Engineering Group Software Quality Assurance  Software Quality Assurance is the basis of software engineering processes that should be undertaken by all software developers.  The software life cycle should include:  Requirements gathering  Design - software and testing  Implementation  Testing  Deployment  The initial target language for most applications is now Fortran 95 or even Fortran Although the commercial world of Software QA is dominated by C, C++ and Java, there are good Fortran tools available.  PlusFORT, ForCheck and the NAG Ware are but three examples of QA tools for use in implementation and testing.  CVS or Subversion is the current tool of choice for version control - but there are others.

Computational Science & Engineering Department CSE The Software Engineering Group Processes for Legacy Software  For many applications within the science and engineering community the root language has been Fortran 77 and for some - even Fortran 66.  Software engineering has developed and languages have grown and now Fortran 95 and C provide the main modern vehicles for these applications.  To maintain and continue to develop the science encapsulated in these legacy codes a process of transformation and re-engineering must be formalised.  This can be broken into three basic steps:  standardisation,  transformation and  re-engineering.  SESP has developed a process and gathered a set of tools to aid this transformation process.

Computational Science & Engineering Department CSE The Software Engineering Group A Step-by-step process for legacy software Legacy Software Standard-Base Compilation Transform software into standard compliance Undesirable Features COMMON Blocks Implicit typing #def/#include Create Interfaces Wrappers for legacy code Interfaces for all routines Add New Capabilities Dynamic memory Interoperability Array Operations Components & OO Abstraction Integration

Computational Science & Engineering Department CSE The Software Engineering Group Dissemination of Software and Results  All the results of the activity will be disseminated through a CSE Software Engineering Support Programme Web site and through seminars and workshops. The SESP web site contains: –An overview of the aims and objectives of SESP –Detail of contacts in the programme –Summary pages on the programmes activities and findings –All technology watch and assessment reports (pdf, ps, html) –Selected software –Links to software and other software engineering pages of interest to computational scientists.  Seminars and workshops have been arranged to disseminate the results of the activity and to provide hands on experience with specific software tools.

Computational Science & Engineering Department CSE The Software Engineering Group SESP Web - The SESP web site provides access to:  Information on software tools  Documentation on the SESP tool set  Reports & publication on software engineering  Links to public domain tools that may be of use

Computational Science & Engineering Department CSE The Software Engineering Group Software tools – acquired or licensed  ftnchek (netlib)  FORCHECK (Leiden University)  NAGWare Tools (Numerical Algorithms Group Ltd)  plusFORT (Polyhedron Software Ltd)  Understand for Fortran (Scientific Toolworks Inc.)  DDT (Alinea)  VTune (Intel)  A variety of other public domain tools

Computational Science & Engineering Department CSE The Software Engineering Group FORCHECK - Leiden University Forcheck is the oldest and most comprehensive Fortran verifier on the market.  It performs a static analysis of Fortran programs or separate Fortran program units.  Generally Forcheck detects more anomalies in your program than most compilers do.  Forcheck is ideally suited to get a fast insight in existing and legacy programs.  It composes documentation of your project with cross-reference tables of each program unit, the complete program and produces a call-tree.  Forcheck can be used as a software engineering tool in the various stages of the development process and can verify the conformance to each level of the Fortran standard.  Beside the full Fortran syntax Forcheck supports many language extensions of all popular compilers by compiler emulation.

Computational Science & Engineering Department CSE The Software Engineering Group FORCHECK  Program Unit analysis  syntax and type checking  flags unused, unreferenced, undefined variables  indicates truncation or loss of precision  validates standards compliance  Global analysis  verification of subprogram references  verification of argument lists  consistency of COMMON blocks  verification of public module variables  Documentation  cross-reference reports  call tree

Computational Science & Engineering Department CSE The Software Engineering Group plusFORT - Polyhedron Software Ltd plusFORT is a suite of tools for Fortran programmers. The main components are summarized below:  SPAG - The primary analysis and restructuring tool of plusFORT. SPAG processes Fortran 77 with all common extensions, and almost all Fortran 90/95. It can also translate Fortran 77 to Fortran 95  GXCHK - A global static analysis tool  CVRANAL - A coverage analysis reporting tool  QMERGE - A version selection tool  QSPLIT - A small file-splitting utility  AUTOMAKE - A tool for minimal recompilation of Fortran (66, 77, 90 and 95) and C programs.

Computational Science & Engineering Department CSE The Software Engineering Group NAGWare Tools - Numerical Algorithms Group Ltd  The NAGWare Fortran Tools provide users with the ability to analyse and transform Fortran 77, Fortran 90 and Fortran 95 codes.  These tools can be used in a range of ways:  Quality Assurance - enforcing coding standards  Porting to new platforms  Converting from fixed format Fortran 77 to free format Fortran 95  Normal day-to-day development  The NAGWare Fortran Tools suite consists of the following components:  NAGWare Fortran 95 Tools  NAGWare Fortran 77 Tools

Computational Science & Engineering Department CSE The Software Engineering Group Understand for FORTRAN - Scientific Toolworks Inc.  Understand for FORTRAN is an interactive development environment (IDE) tool providing reverse engineering, automatic documentation, metrics and cross referencing of FORTRAN source code.  It supports FORTRAN 77 (F77) and FORTRAN 90 (F9X) language standards, with common VAX, Cray and Salford extensions.  Understand for FORTRAN helps you reverse engineer, understand and maintain large amounts of legacy FORTRAN source code.  It also includes numerous graphical reverse engineering views designed to help you understand and assess changes you are considering in your code.

Computational Science & Engineering Department CSE The Software Engineering Group The QAPortal -  The QA Portal provides a simple web interface to a number of the common software engineering processes  analysis  transformation.  It is built on a standard client/server model with user registration and password protection.  Will process Fortran 77 and Fortran 90/95 software.  Single files or archive (tar, zip) collections can be processed.  The results can be viewed or saved to a local file.  Documentation on the QA Portal and the associated tools is provided online. The User Web Server QA Server ssh/scp http

Computational Science & Engineering Department CSE The Software Engineering Group Summary  SESP will provide CSE with software engineering tools and expertise which, to some extent, will be driven by user needs.  A process for migrating legacy Fortran software has been defined and some software tools identified.  The legacy process tested on a number of applications with reasonable results - much more automation is required.  A software tools resource has been started - needs expanding.  A web interface to some of the tools has been written - this need to be expanded and more flexible.  There are software tools to aid migration of codes - conformance to a standard source form is the penalty (not really a penalty).  There are tools to help in the understanding and documentation of software - a short learning curve is required.

Computational Science & Engineering Department CSE The Software Engineering Group Using the tools  Today – via the portal  Portal only available inside CCLRC (licensing issues!)  So use it from a CSED server  Here’s how….

Computational Science & Engineering Department CSE The Software Engineering Group Connecting to CSED Server  Use VNC  Client-server model  Server already running on hsl  Start client  Connect to hsl.rl.ac.uk:n  n = workshop user number  Enter password  Right click on task bar or F8  Options menu  Choose ‘Full Screen’

Computational Science & Engineering Department CSE The Software Engineering Group Using the Portal  Start mozilla  Go to Portal - URL  Click “Run a tool”  Log in – trial account details are already registered  Now you can play  Code in the examples directory (under home)  Fortran 77 – use files from examples/f77/model/  Fortran 90 – use files from examples/f90/other/