Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCTION
As organizations strive to build larger, more complex, fully integrated software applications the
challenge to manage the development is ever-increasing. Developers are expected to produce quality
software that integrates with existing applications and other projects, while working at Internet
speed. If control of the versions of software released into a production environment is lost huge
costs can be incurred backtracking to a working solution. With global development teams, expected
to communicate all changes and dependencies to each other, a more rigorous approach is required
beyond email and paper based control systems.
Software Configuration Management (SCM) aids development by controlling who has access to
versions of code and managing the particular versions that go together to create a release. Further
control can be achieved by permitting parallel development combined with merging of the
development streams. Dependency management between versions and products can also improve
the quality and reliability of developed software.
(Oracle9i SCM) provides these SCM capabilities as an integral component of Oracle Internet
Developer Suite.
Education is essential to ensure that development teams take maximum advantage of SCM. This
includes a clear understanding of the tools and the benefits of using them.
To enable software developers to work together in a carefully managed, secure development
environment requires:
This document discusses each of the above, adding repository driven impact analysis, and continues
with a discussion on how the tools in Oracle Internet Developer Suite integrate with Oracle 9i SCM.
Repository Reports provides a variety of reports on Oracle Repository and its usage.
STORING DATA
Oracle9i SCM acts as a central storage area for structured and unstructured data. Structured data is
the meta data used as application building blocks. Application developers use modeling tools such
as Oracle9i Designer to create these object definitions in the underlying repository. Unstructured data
consists of all types of files and file systems e.g. Oracle Forms .FMB files, text documents, XML
files, DTDs, schemas, XSL stylesheets, SQL scripts, Java programs and images. Individual files or
complete file systems can be copied into the Oracle9i SCM repository (uploaded), and can then be
accessed by other tools (e.g., text editors or word processors). Files created in the repository, or
uploaded to it, can also be copied to any accessible file system (downloaded).
In this overview, we use the generic term 'object' to refer to both structured objects and file system
objects. Within the SCM repository, objects are stored in containers.
Objects can be manipulated via a Java or PL/SQL API or via tools that use these APIs, such as the
Oracle9i SCM Command Line Interface or Repository Object Navigator. For more information on
these APIs see the Oracle9i SCM documentation.
CONTAINERS
Containers are a means of organizing data in a logical fashion, and are similar to directories in a file
system. Each object is owned by a container and has a set of audit properties that record details such
as the date when the object was created and who created the object.
There are two types of container: folders and application systems. Either can hold instances of any
type of repository object. Folders are available if you install only the core repository (for example
when using the repository as a source control system). Application systems are available (as well as
folders) if you install Oracle Designer model in the SCM repository. Containers are also used to
control access to repository objects. A user may be granted access to a container and thus to the
container objects.
Workarea
Containers
MANAGING DATA
Within the repository there may be many versions of objects. Oracle9i SCM has two primary
mechanisms for managing versioned repository objects:
WORKAREAS
Worakareas are specific views of the repository through which you can work on your own objects.
An individual user may not want to see a list of every version of every object in the repository. In
addition, some kind of mechanism is needed to ensure that one user does not interfere with another
user's work. Oracle9i SCM addresses both these requirements with workareas.
C ONFIGURATIONS
Configurations identify specific versions of objects and group them, e.g., to build a test suite or
release a product. A configuration is a collection of repository object versions that are related in
some way. Usually a configuration details all the object versions that represent a checkpoint in
development or component of an application, for example, all the object versions that make up a
payroll production application.
Oracle9i SCM provides facilities for the management of configurations, rather like the idea of
striping or labeling in some software configuration management systems. A specific object version
that is included in a configuration is said to be a member of that configuration. For example, when
the development of individual objects reaches the stage where you can build a particular application,
you need to specify exactly which version of each object is to be used for the build. The same
applies when assembling a set of objects to be used for a test or included in a patch release the
configuration defines which versions of which objects are to be used.
branching
version labeling
locking
When an automatic branching policy is set, all checked -out objects check in to the default branch set
for each workarea. Doing so ensures that specific development branches are not populated with
new object versions at critical periods in development, for example during a build. If no default
branch is set, or the automatic branching policy is not set, then objects check in to the same branch
they were checked out from.
When automatic version labeling is set, the repository automatically assigns a label for an object
version when it is checked in. This ensures adherence to a system-specified version-labeling scheme.
Users have the option to lock an object version when they check out the object.
IMPACT ANALYSIS
For many Oracle9i SCM users, it is important to assess the impact on the rest of an application of
changing one component - a process known as impact analysis. For example, developers could
investigate how many applications use a particular PL/SQL function, and thus discover whether a
change to the function would have a significant impact across the enterprise. Oracle9i SCM provides
a set of tools that are useful for impact analysis. For example, the Dependency Analyzer is a utility
that analyzes the relationships between objects in an application and allows users to determine the
effects of change.
LATEST(GrantAccess)
LATEST(AccessRights)
LATEST(Payroll_1)
INCLUDE_CONFIG(Payroll{MAIN;1}=Configuration)
The above workarea ruleset is taken from an Access Rights project on a Payroll Project and reads, in
order:
include all the latest files that exist on a branch named GrantAccess. This is the task branch on
which a developer is working.
then include all the latest files on the AccessRights branch, as long as they do not exist in the
above rule. This is known as the project branch.
then include all the latest files on the Payroll_1 branch, as long as they do not exist in the above
rule. This is known as the Release branch.
then include all files that exist in the named configuration, again provided they are not already
included in the above two rules.
Using the Workarea Wizard save the above Workarea ruleset to a file. This file is made available to
developers working on the Access Rights Project. Viewed as a set of branches this looks like the
following:
Release
Project
Task
Branch
Branch
Branch
Each developer takes the Workarea ruleset file and creates his/her own workarea and private task
branch. A local filesystem directory is mapped to the root folder of the folder system, enabling files
to be checked out and worked upon. Files are created or modified and once complete are checked
onto the developers task branch. A modified or new file from the task branch is then merged onto
the Project branch by the developer or team leader. A team leader would then merge the Project
branch onto the Release branch. At each stage, both before and after merging, testing is performed.
The Repository Object Navigator and Commandline Tool are ideal for creating the above
environment. The Version History Viewer enables discrete versions of a file to be examined,
compared and merged.
Once all the required files from a project branch are complete and merged a configuration is created
of the Release branch at a point in time. This configuration is used to create a workarea from which
10
a complete set of files can be downloaded to the filesystem. This then forms the release set of
software, which in turn goes on for testing.
Multi developer software projects with many code streams and developer branches are supported,
taking advantage of the underlying Oracle database performance and scalability features.
development environments by providing access to relevant models, documents and code for team
members. Within Oracle Internet Developer Suite, the following products offer access to Oracle9i
SCM repository:
Oracle Designer
The remainder of this paper illustrates how each of the above works with Oracle Repository.
11
Parsing Java files provides dependency information that can be viewed in summary or detail form
using the Dependency Manager, as illustrated by Figure 6:
12
13
ORACLE D ESIGNER
Oracle Designer structured objects (i.e. Table and Entity definitions) are stored in Oracle Repository.
They can also be versioned, compared, merged and parsed to offer dependency information using
the Oracle Repository toolset. As an example, Figure 8 illustrates check-in of an Entity Relationship
diagram.
14
SUMMARY
Several Software Configuration Management tools exist, ranging from single user, single code stream
to multi user, multi code stream. Oracle Repository offers a highly scalable, multi user SCM
environment, ideally suited to large-scale projects where rapid change and continuous delivery and
maintenance are required.
Oracle Repository provides a multi-user, managed and secure development environment enabling
the building of complex integrated applications. Oracle Repository stores both structured and
unstructured information, ensuring that all project documentation, definitions and code are stored in
one place. Without management of all project artifacts developers might work on the wrong code,
15
wasting valuable resources. As developers are required to be more productive and react to change
more quickly a managed and integrated SCM environment becomes essential.
16
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
+1.650.506.7000
F ax +1.650.506.7200
http://www.oracle.com/
Copyright Oracle Corporation 2001
All Rights Reserved
This document is provided for informational purposes only,
and the information herein is subject to change without notice.
Please report any errors herein to Oracle Corporation. Oracle
Corporation does not provide any warranties covering and
specifically disclaims any liability in connection with this
document.
Oracle is a registered trademark, and Oracle8i, Oracle8,
PL/SQL, and Oracle Expert are trademarks of Oracle
Corporation. All other company and product names
mentioned are used for identification purposes only and may
be trademarks of their respective owners.
17