Corel Paradox Chapter 1

You might also like

Download as pdf
Download as pdf
You are on page 1of 21
615724, 16.03 Power: Chapter 01, The Paradox Development Environment (Corel Paradox ObjectPAL Coding) i Mobile Edition! Home Search Company My. Paradox P9 Book: Power Programming: Power: Chapter 01, The Paradox Development Environment By Mike Prestwood Posted 21, years. agg on 3/20/2003 and updated 6/9/2008 Take Away: Chapter 1 titled, "The Paradox Development Environment" from Paradox 9 Power Programming by Mike Prestwood. KB100194 Updated version of chapter 1. The definition of the word paradox seems to fit the software rendition well. A paradox is something that appears to contradict itself or be contrary to common sense but might be true. The name applies well to the Paradox database development environment because it is very powerful, yet easy to learn and use. With Paradox, you can quickly prototype an application for a client and then turn the prototype into the full application; this is known as rapid application development (RAD). Paradox brings RAD development to a new height of simplicity and power. ObjectPAL stands for Object Paradox Application Language. The acronym portion of the name (PAL) comes from the DOS version of Paradox. The term Object was added to the name because ObjectPAL is an object-based event-driven programming environment that is much more advanced then its PAL predecessor. What does this mean to you? It means you get to work with a development environment that uses the analogy of objects to represent programming elements such as windows, buttons, fields, and bitmaps. Why is this so important? It is important because humans perceive everything in life as objects-- for example, cars, houses, trees, dogs, and cats. Furthermore, we naturally break down each of these objects into other objects. For example, a car object is made up of other objects, including tires, frame, engine, and steering wheel. This makes using a cara relatively simple experience. We do not need to know that a carburetor is an object contained within an engine. We don't even have to know that an engine is an object contained within a car. We simply have to know how to use the interface the designers of the car gave us to work with. We have to know how to use the door, key, steering wheel, gas, and brakes. We don't need to know the specifics of how the engine generates energy that is transferred to the wheels. The concept of just using the interface to an object and not knowing the details inside is called the black box component model. In other words, a nitps:im prestwood.comvASPSuteIKBdacument_view.asp7qid=1001848GrouplO= wat 615724, 1603 Power Chapter 01, The Paradox Development Enviorment (Corel Paradox / ObjeciPAL. Coding) designer creates something (an object) and gives the users of the object an interface. The term black box refers to not being able to see what is within the box. In Paradox, you do not need to concern yourself with the details of what happens when you push a button you simply attach code to the pushButton event of a button (the interface given to us by the designers of Paradox). This is the basis for object-based and object-oriented programming--hot topics these days. Before we continue our journey into object-based programming and ObjectPAL, you need to review a few concepts. The first few chapters deal with issues such as planning, table design, and interactive form design. These chapters also discuss interactive issues that an ObjectPAL programmer needs to keep in mind. The rest of this chapter gives you an overview of the design and development process. It begins with a discussion of why you should use Paradox. Then, it moves into a discussion of types of applications and which types of applications Paradox is suitable for, then follows by discussing how to design and develop a good database application. Why Should You Use Paradox? A database is an organized collection of information. For Paradox table users, this meaning is stretched to mean a set of related tables (usually in the same directory). Paradox allows you to access Paradox tables and other types of databases, and is much more than a simple database program. Paradox has made complex databases accessible to the average user. In my opinion, Paradox has three levels of usability: easy database access, complex database access, and custom database application development. Although this book touches on the first two levels of usability, it is primarily concerned with the third: custom database application development. Easy database access enables you to create simple database tables and to enter and browse through data quickly with the traditional table window or a more flexible form. In addition, Paradox delivers easy database access by providing you with a plethora of experts available in Paradox. These Corel Paradox Experts allow non-programmers and programmers to easily accomplish tasks like creating a complete employee records database application or documenting an existing application Complex database access enables you to ask complex questions about your data. In Paradox, you can set a filter in a form or ask a question of your data with a query. After you find the answer, you can use crosstabs, graphs, and reports to communicate the answer to your users. Custom database application development includes bringing all the elements that display data~such as table views, forms, and reports-into a cohesive presentation. The application development side of Paradox brings a friendly user interface to the end user and a powerful language called ObjectPAL to the programmer. These elements together enable you to better control the application environment. Paradox is the best tool on the market for delivering these three levels of usability. This should be a major consideration when deciding what tool to develop a custom database application with for yourself or a client. Deliver a custom database application in Paradox ritps:im prestwood.comvASPSuteIKBdacument_view.asp7qid=1001848GrouplO= 21 615724, 1603 Power Chapter 01, The Paradox Development Enviorment (Corel Paradox / ObjeciPAL. Coding) and you deliver the most powerful data manipulation environment available with a balance of easy and complex database access and custom database application development. Types of Tables-Which Type to Use Paradox is capable of using both local tables (such as Paradox or dBASE) and remote tables (such as Oracle and Sybase). This means that, as a Paradox or dBASE developer, you can read and write Paradox and dBASE tables and indexes without importing them. This is important. Some developers get confused about this issue and ask how to convert a dBASE table to a Paradox table or vice versa. The answer is, you don't. Paradox is a front end to any type of data that the database engine can access. If you need to copy the data from dBASE to Paradox format, or vice versa, then simply copy the table giving it anew extension (for example .DBF to .DB). The database engine takes care of the details. In addition to local table structures such as Paradox and dBASE, you can use any of the SQL servers supported by the database engine. This includes InterBase, Oracle, Sybase, MS-SQL, DB/2, and Informix. Also, the database engine is ODBC compliant. This means that you can use almost any ODBC driver to connect to almost anything, including text files, Btrieve databases, Excel spreadsheets, and Access databases. Types of Applications There are many types of applications, but because Paradox is a database management system (DBMS), it's best suited for developing custom database applications. This doesn't mean that custom database applications are the only type of application you can develop. In fact, you can develop many types of applications with Paradox. Table 1-1 discusses how well suited Paradox is for developing various types of applications. ee ee Manager Pometimes — uitable when the appliations ae writen in Paradox system es Business datas Paroder’s strong point. Informational es Parador's strong point. Kiosk es Paradox’ strong point Educational Usually yes — Fdvcatoral sofware often uses tables (Desk accessory ometimes — fultable only when a Paradox application is used. sri sew reg presen cane er Prtoype fer Proteins plone in Pardo very ft ner wii Ree ceptor nase rape Ro hou Pradox has good phi pay Hirt wal ake o downs Preone eam Table 1: Types of Applications and Paradox Usually, choosing a tool is easy. When you are asked to do a certain project or when you get an inspiration to develop an application, usually you know what tool you should use. ritps:im prestwood.comvASPSuteIKBdacument_view.asp7qid=1001848GrouplO= 321 615724, 1603 Power: Chapter 01, The Paradox Development Envicrment (Carel Paradox ObjectPAL Coding) Clearly, Paradox isn't the best tool for every category of software. For example, you probably would not wish to write a file utility with it. Ifa project involves extensive amounts of data, Paradox will likely be well suited for the job. ObjectPAL is the powerful backbone of Paradox and therefore can be the backbone of a large DBMS. Paradox also is. Useful for prototyping an application that you plan to write in Delphi or C++Builder. Prototyping is the process of application development in which small parts or the general structure of an application are designed and tested. These models are used as the basis for building the finished system. If you are going to develop applications, it is important to know what tool--or development environment--to use. Where to See Various Types of Paradox Applications Before jumping into the formal discussion, you should see what Paradox is capable of. Sometimes it's nice to see what a product can do. As they say, "Seeing is believing.” Knowing what a product can do is half the battle. If you haven't done so already, take some time now to study the applications that shipped with Paradox and run the application experts, too. If you have Internet access, you can view many completed Paradox applications with source code at the following URL: © tte//wrestwood com/forums/peradn/books/ofcal This Internet page is the support page for this book. It is part of the Paradox Online forum, which is hosted by Mike Prestwood. The Paradox Online forum is one of many forums contained on PrestoNet (a FREE worldwide Internet environment). Multiprogrammer Developing When developing a large application, you will need to program ina team environment. Programming in a team environment is dramatically different than programming by yourself. Divide and Conquer The most dramatic part of getting used to programming in a multiprogrammer environment is getting used to the fact that you are not in charge of all the code. The best way to create a successful multi-programmer environment is to divide the responsibility of the program among all the programmers, with no overlapping assignments. This way, you establish pride of ownership, and each programmer can do his or her best to make modules complete and bug-free. Establishing Programmer Roles Depending on the size of the team created, you can have any of the following roles: grunt programmer, lead programmer, architect, project leader, QA tester, unit tester, business analyst, user interface expert, and so on. The role a particular programmer will fill depends on his or her programming skills, how well he or she gets along with others, his ritps:im prestwood.comvASPSuteIKBdacument_view.asp7qid=1001848GrouplO= 421 ss, 1609 Power Chapter 01, The Paradox Development Enviorment (Corel Paradox / ObjeciPAL. Coding) or her leadership capabilities, and finally his or her knowledge of the requirements, design specification, and database. Note: Many Paradox developers act as the analyst, programmer, tester, and project manager-a single-person team. If you are a single-person team, this section still applies to you and you can still benefit from the information by adapting it to your environment. For example, you may be the only developer, but perhaps you can find someone on the business side that can do the testing or project management. Development Roles Whether you are an individual developer or part of a team, you need to fully understand the various roles individuals play during the software development life cycle. No matter how many individuals are involved with a large project, the development team usually consists of a project manager, a business analyst, a system architect, and one or more lead programmers. Even in multiprogrammer development teams, an individual may commonly fill more than one role. If you are an individual developer, you fill all the development team roles. Project Manager The project manager is the glue that keeps the project moving. He or she may be a technical or nontechnical project manager. Although it is not usually recommended, the technical project manager often doubles as the system architect. In either case, the project manager is responsible for coordinating efforts among the user community and the development team. Usually, the programmers, analysts, and quality assurance personnel report directly to the project manager and the project manager reports indirectly to the executive sponsor. Business Analyst The business analyst can work either for the user community or the development team. This person coordinates, gathers, refines, defines, and prioritizes the various user requirements. This role is often filled by a lead programmer or the system architect. Database Administrator The database administrator (DBA) takes the business requirements and develops the database specification. The database specification contains all the table names, field definitions, data restrictions, trigger definitions, and stored procedure definitions. The DBA is also responsible for creating and modifying the database. On smaller projects, this role is often filled by the lead programmer or system architect. ritps:im prestwood.comvASPSuteIKBdacument_view.asp7qid=1001848GrouplO= 821 615724, 1603 Power: Chapter 01, The Paradox Development Environment (Corel Paradox! ObjectPAL Coding) System Architect The system architect takes the business requirements and the database specification and develops the software specification at the highest level. The system architect is also responsible for selecting the tools used for development Lead Programmer The lead programmer (often the same person as the system architect) works with the system architect to flush out the details of the software specification. The lead programmer understands the big picture; he or she understands the goals and high-level architecture of the application. Programmer A regular programmer works with the lead programmer or system architect to code specific tasks. This level programmer may not understand the whole picture. In fact, this position is usually told very specifically what and how to code. User Community ‘As a software developer, you need to identify the key players in the user community for whom you are developing an application. Identify who will be using the software and get them involved in the design and testing of the software while it is being developed. EXECUTIVE SPONSOR The executive sponsor is responsible for final decisions. Often, conflicts may arise among the development participants, and only the executive sponsor can resolve them. Also, the executive sponsor signs off on requirements, accepts the application, and usually pays for the application. DEVELOPMENT PARTICIPANT A development participant is the person who at first deals with the business analyst and system architect to define and refine requirements. If you are using the rapid application development (RAD) process, the development participants also participate during development with the programmers, approving the features as they are implemented. Finally, the development participants are involved at the end of the process in testing (beta testing). Versioning Software ritps:im prestwood.comvASPSuteIKBdacument_view.asp7qid=1001848GrouplO= 621 615724, 1603 Power Chapter 01, The Paradox Development Enviorment (Corel Paradox / ObjeciPAL. Coding) Versioning software enables you to keep track of various versions of the same file. This way, you can roll back to any version of the file that you have checked into the versioning software. Versioning software tracks and organizes all revisions of all files associated with a project. It also enables developers in a multiprogrammer environment to lock files being developed to safeguard against duplicate development. ‘One such commercial versioning software program | recommend is PVCS. PVCS (Project Version Control System) is a third-party software program created to track the revisions of files associated with a project. It has become one of the standard versioning software applications in the industry. Developing Large Applications It's important to understand the elements of ObjectPAL, but if you don't keep the big picture in mind, the end product suffers. Gaining the ability to develop large applications as an individual or as a small or large development shop requires that you set up a process for developing software and then document it. Many methodologies for developing software exist. This section will introduce you to what is needed to develop large applications and will help developers of all levels create better, more elegant applications. Its intent is to start you thinking about the big picture and to spark your interest in the software life cycle. Whether you are an individual or part of a large development shop, | hope you will go out and pick up a few books on the software life cycle and software development methodologies. Note: To see a complete software development methodology in use by Prestwood Software & Consulting (PSC), log on to the Internet and go to http://www.prestwood.net/psdm. There, you will find Prestwood Software Development Methodology. This is the methodology used by PSC to develop software for companies, and you can use it as a starting point to developing your own software development methodology. The Software Development Cycle The software development cycle, also known as full cycle development, is the process of developing a software application. Without a set and documented process, the end application is likely to be buggy, not meet the users’ needs, and take too long to develop. The purpose of this section is to define the software development cycle as it affects the development team and the user community. The cycle itself is composed of a series of steps punctuated with milestones. These steps lead from the analysis of a new application to its development, testing, and eventual deployment. Each step is defined in detail. ‘An approximate duration for each step, if applicable, is given for example only; the estimation assumes five developers, one business analyst, one quality assurance tester, ritps:im prestwood.comvASPSuteIKBdacument_view.asp7qid=1001848GrouplO= 721

You might also like