Some ways to encourage quality programming

Slides:



Advertisements
Similar presentations
MS-Access XP Lesson 1. Introduction to MS-Access Database Management System Software (DBMS) Store data in databases Database is a collection of table.
Advertisements

Computer Science & Engineering 2111 Text Functions 1CSE 2111 Lecture-Text Functions.
CSC1016 Coursework Clarification Derek Mortimer March 2010.
Bellevue University CIS 205: Introduction to Programming Using C++ Lecture 3: Primitive Data Types.
Group practice in problem design and problem solving
Chapter Seven Advanced Shell Programming. 2 Lesson A Developing a Fully Featured Program.
SAS Workshop Lecture 1 Lecturer: Annie N. Simpson, MSc.
IPC144 Introduction to Programming Using C Week 1 – Lesson 2
Designing a Database (Part I) -Identify all fields needed to produce the required information -Group related fields into tables -Determine Each Table’s.
Web Scripting [PHP] CIS166AE Wednesdays 6:00pm – 9:50pm Rob Loy.
XP Chapter 1 Succeeding in Business with Microsoft Office Access 2003: A Problem-Solving Approach 1 Preparing To Automate Data Management Chapter 1 “You.
WHAT IS A DATABASE? A DATABASE IS A COLLECTION OF DATA RELATED TO A PARTICULAR TOPIC OR PURPOSE OR TO PUT IT SIMPLY A GENERAL PURPOSE CONTAINER FOR STORING.
Functions CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Verification & Validation. Batch processing In a batch processing system, documents such as sales orders are collected into batches of typically 50 documents.
Chapter 17: Formatting Data 1 STAT 541 ©Spring 2012 Imelda Go, John Grego, Jennifer Lasecki and the University of South Carolina.
Lesson 4.  After a table has been created, you may need to modify it. You can make many changes to a table—or other database object—using its property.
Class 3Intro to Databases Class 4 Simple Example of a Database We’re going to build a simple example of a database, which will allow us to register users.
Microsoft Access Prepared by the Academic Faculty Members of IT.
FILES AND EXCEPTIONS Topics Introduction to File Input and Output Using Loops to Process Files Processing Records Exceptions.
SCP1103 Basic C Programming SEM1 2010/2011 Arithmetic Expressions Week 5.
Automation Testing- QTP Rajesh Charles Batch No: Date: jan
3.1.1 Data, Information, knowledge and processing
Architecture Review 10/11/2004
Egyptian Language School Computer Department
EET 2259 Unit 13 Strings and File I/O
Creating a database table
Arithmetic Expressions
CS 330 Class 7 Comments on Exam Programming plan for today:
Databases Chapter 9 Asfia Rahman.
User Interaction and Variables
Greg Steffens Noumena Solutions
Finite State Machines Dr K R Bond 2009
Data and Information.
Unit 16 – Database Systems
Objectives Identify the built-in data types in C++
Accelerate define.xml using defineReady - Saravanan June 17, 2015.
A First Book of ANSI C Fourth Edition
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
MAKE SDTM EASIER START WITH CDASH !
Quality Control of SDTM Domain Mappings from Electronic Case Report Forms Noga Meiry Lewin, MS Senior SAS Programmer The Emmes Corporation Target: 38th.
Time Manager Class Activity Material Manager Writer leader Communicator Programmer Start a journey from the capital AbuDhabi to Alasmaa School using your.
ORACLE SQL Developer & SQLPLUS Statements
3 Macro Storage.
IPC144 Introduction to Programming Using C Week 2 – Lesson 1
I/O in C Lecture 6 Winter Quarter Engineering H192 Winter 2005
Topics Introduction to File Input and Output
Chapter 3 The DATA DIVISION.
What they are and why to use them
Access Lesson 2 Creating a Database
Integrity Constraints
EKT150 : Computer Programming
To change this title, go to Notes Master
Databases Software This icon indicates the slide contains activities created in Flash. These activities are not editable. For more detailed instructions,
PHP.
Defining and Calling a Macro
Data Types & File Size Calculations
Creating Tables & Inserting Values Using SQL
Generating Variable Attributes for Define 2.0
Program Breakdown, Variables, Types, Control Flow, and Input/Output
Problem Solving Skill Area 305.1
Never Cut and Paste Again
How to organize and document your classes
EET 2259 Unit 13 Strings and File I/O
Data Types Every variable has a given data type. The most common data types are: String - Text made up of numbers, letters and characters. Integer - Whole.
Variables in C Topics Naming Variables Declaring Variables
Topics Introduction to File Input and Output
Enforcing Data Integrity with SAS Audit Trails
CSPA Templates for sharing services
CSPA Templates for sharing services
Presentation transcript:

Some ways to encourage quality programming Greg steffens Noumena solutions

Encourage (or Discourage) Quality The way we manage SAS programming groups has a big impact on programmers attitudes about quality Decisions about process and technology communicate to them what the real attitude is about quality Actions speak much more loudly than words when it comes to management. Mission statements, SOPs, values statements don’t have the impact that actions have. Let’s talk about a few easy things that can be done to encourage quality attitudes in a programming group … or discourage quality in a group by taking contrary actions Noumena Solutions

SAS Log Checks A macro that searches log files for a list of text strings that I created over the years - is the shortest list to find all the issues in SAS log files Automatically runs every time a SAS program is submitted Can also be run for … A single log file All log files in a specified directory All log files defined in an input data set All log files in a list of directories Can create an html report and an output data set A permanent record of the log scan is very important to audits Run by programmer, validation programmer, manager, etc. Reusable macros should not result in any of these messages Noumena Solutions

Why Scan Log Files? Automates the search for a standard list of log messages, instead of manual and inconsistent searches Supports search for any set of messages in the SAS log by augmenting or overriding the default list SAS log files can become very large, especially when running more intelligent macros, making manual review time consuming and error prone Messages are generated for a reason. They indicate a probable problem with the output Programming should be clean, especially when submitting to the FDA or if you work for a CRO providing code to a client Noumena Solutions

File comparison Performs a smart comparison of all same-named files in two directories and similar-named files with prefixes Displays a metric of how different files are E.g. comparing production to validation programs that create SDTM, ADaM, TFLs, to be sure there is no common code used by both programmers Can be used to compare program files, reports, etc. Noumena Solutions

Finding called macros Finds all SAS macro calls that exist in SAS program files Can be used to ensure a production and validation programmer don’t use the same macros Noumena Solutions

Checking Datetimes of files Checks datetimes of SAS program, log and lst files to ensure that the program was not changed after it was run Confirms the output file was created after the program file was last changed Noumena Solutions

SAS library Comparison Compares all members in two SAS libraries, of the same or similar names Can lookup primary key variables to add an ID statement to the proc compares that are run for each data pair Compares SAS catalog entries, as well as data sets Creates a lst output and an output data set Noumena Solutions

Define xml DataType Text Char Integer Num Float Num Datetime Char Date Char Time Char partialDate Char partialTime Char partialDatetime Char incompleteDatetime Char durationDatetime Char Noumena Solutions

Define xml SignificantDigits The number of digits following the decimal point in a floating point number. Business Rule: When DataType is float both Length and SignificantDigits must be provided. Noumena Solutions

Programmatic Derivation from Data The DataType and SignificantDigits can be programmatically determined from the data sets Consideration of the SAS variable type and assigned format is part of this derivation Looking at character variable values can determine whether there is an ISO date being stored. Also, map metadata can assist with this as well, since many ISO dates are created from SAS date and datetime source variables Metadata describing data standards can also be used Variable naming conventions can be used but as a last resort. This is not a good design because it becomes unreliable. Noumena Solutions

These are required for VLM too The paramrel variables need to be defined for each TESTCD or PARAMCD value Paramrels: orres oresu stresn stresc stresu, position, location, etc. So it isn’t as easy as looking at the variable type in SAS The values have to be considered as a set of values in a virtual variable being described If you don’t fully support VLM, you don’t support define 2.0 Noumena Solutions

Greg Steffens Noumena.solutions@gmail.com Noumena Solutions