Title: PowerGen
1Session No. IA364 Improving Software
Configuration Management Practices for
PowerBuilder Applications
Phil Wallingford E. Crane Computing,
Inc. philw_at_ecrane.com
2Improving Software Configuration Management
Practices for PowerBuilder Applications
- Abstract
- This session discusses some of unique problems
of release management and configuration
management for PowerBuilder applications. It
describes tools and techniques that address these
problems.
3Phil WallingfordE. Crane Computing, Inc.
- Developer of PowerGen, the award-winning product
for automating the build process for PowerBuilder
applications - Previously founder of SQA, Inc., a pioneer in
developing software test automation products,
such as SQA Robot - Involved in the software industry for 20 years,
serving primarily the needs of Fortune 1000
companies
4Topics of Discussion
- Topic 1 - Source Traceable Builds
- Topic 2 - Source Control for PowerBuilder
Development - Topic 3 - Build Automation
- Demonstration
5FirstSome Background
- Whats Different about Software Configuration
Management (SCM) for PB? - In a nutshell the PowerBuilder Library (PBL)
6The PBL
- A Proprietary, Binary Formatted File
- Includes many kinds of information
- Object source
- P-Code
- Source Control Attributes for Objects
- Housekeeping information
- Free sector map
- Directory
7The Troubles with PBLs
- They are fragile
- Information gets out-of-sync.
- Objects must be regenerate-able when they are
saved (or imported) - Cant save work-in-progress
- Cant easily reconstruct PBLs from objects
- Dont accommodate standard SCM interfaces
- Source control attributes conflict with external
source management system
8Creating release versions from controlled
PowerBuilder source
Source Traceable Builds
9What is Source?
- Plain text
- Individual files
- Should represent modular elements of design
- Use to build deliverables
10PowerBuilderSource?
- PBLs
- Plain text - No
- Individual files - Yes
- Should represent modular elements of design -
No - Use to build deliverables - Yes
11PowerBuilderBuild Process
PBLs
Deliverables
EXE
PBD
PBD
PBD
12PowerBuilderSource?
- Exported Objects
- Plain text - Yes
- Individual files - Yes
- Should represent modular elements of design -
Yes - Use to build deliverables - No
13PowerBuilder SourceBuild Process
PowerBuilder Objects
PBLs
Deliverables
EXE
?
PBD
PBD
PBD
14The Problem
- PB Objects must be able to be Regenerated
(without errors) to be Imported
- Order (of import) dependencies
- Circular reference problem
15Circular Reference Problem
Circular Reference Problem
Circular Reference Problem
PB
Object 1
Object 2
function a ... b ( ) ... end
function b ... a ( ) ... end
Import Object 1 - Error cant find function b,
import fails Import Object 2 - Error cant find
function a, import fails
16A SolutionPowerGen Feature
- Bootstrap Import
- Reconstitutes application from exported object
source - Creates PBLs and imports all objects, using a
unique, multi-pass import process - Enables source-traceable builds
17PowerBuilder SourceBuild Process
PowerBuilder Objects
PBLs
Deliverables
EXE
PBD
PBD
Bootstrap Import
PBD
18Bootstrap Import
Folder 1
PBL1
Objects.sr
Folder 2
PBL2
Objects.sr
...\Folder 1\.sr, ...\PBL1.PBL ...\Folder
2\.sr, ...\PBL2.PBL
19Managing Object Check-in/Check-out in PowerBuilder
Source Control for PB Development
20Source Control Problems
PB Native function for source control lacks
many required features Interface to third-party
tools (SCC-API) is architecturally flawed
21PB SCC Interface Architecture
Check-In
Registered PBLs
Source Archive PB Objects
Check-Out
Working Library List
- Keeping objects in Registered PBLs in sync.
with archive - Registered objects in sync. with Working copy
- File locking
Working PBLs
22Improved Architecture
Source Archive PB Objects
Check-In
Check-Out
Import/Export
Working Library List
Working PBLs
23Producing PowerBuilder deliverables (EXEs and
PBDs) with an automated repeatable process
Build Automation
24The Problem
- PowerBuilder (PB) applications are difficult to
build - Can build only one application at a time
- Many manual steps
- Little control over the build process
- Not robust
- Cannot be integrated with other build operations
25The Solution
- PowerGen
- Define project to build many applications
- Can specify in detail how to build the
applications - Command line interface
- Logs detailed information about build
- Proven with the largest PB applications
26Features
- Application builds
- Regeneration
- PBD/DLL creation
- EXE creation
- PBL optimization
- Duplicate object detection
- Automatic PBR scanning for missing resources
- All PB code generation options
27More Features
- Build process control
- Specify which libraries are regenerated
- Specify when and if dynamic libraries will be
created - Use PBDs or write-protected PBLs in a library
list - Specify directory to save created dynamic
libraries
28Build Process Control
Application B
Application A
Application C
Third-Party Common PBLs
29Tool Demonstration
PowerGen
PBExplorer
PBRescue
30PowerGen Specs.
- Supports PowerBuilder Versions 4, 5, 6, and 7
- Enterprise and Professional
- All Windows platforms
- Uses PowerBuilders ORCA interface
- Began shipping more than 4 years ago
31Customer Acceptance
- 600 customers
- 2000 installations
- Many site licenses
- Recommended by TeamPS and Powersoft Tech. Support
32Session Summary
- PowerBuilder is a great development environment
- Holes in performing and managing releases
- PowerGen and CCC/Harvest have filled the holes
33Questions Answers
?