Index: openacs-4/packages/acs-core-docs/www/filename.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/filename.html,v diff -u -N -r1.8.2.8 -r1.8.2.9 --- openacs-4/packages/acs-core-docs/www/filename.html 4 May 2003 06:30:02 -0000 1.8.2.8 +++ openacs-4/packages/acs-core-docs/www/filename.html 7 May 2003 17:40:58 -0000 1.8.2.9 @@ -1,5 +1,5 @@ -Detailed Design Documentation Template

Detailed Design Documentation Template

By You

Start Note

+Detailed Design Documentation Template

Detailed Design Documentation Template

By You

Start Note

NOTE: Some of the sections of this template may not apply to your package, e.g. there may be no user-visible UI elements for a component of the OpenACS Core. Furthermore, it may be easier in some circumstances @@ -14,9 +14,9 @@ Also, bear in mind the audience for detailed design: fellow programmers who want to maintain/extend the software, AND parties interested in evaluating software quality. -

Essentials

+

Essentials

When applicable, each of the following items should receive its own link: -

  • User directory

  • OpenACS administrator directory

  • Subsite administrator directory

  • Tcl script directory (link to the API browser page for the package)

  • PL/SQL file (link to the API browser page for the package)

  • Data model

  • Requirements document

  • ER diagram

  • Transaction flow diagram

Introduction

+

  • User directory

  • OpenACS administrator directory

  • Subsite administrator directory

  • Tcl script directory (link to the API browser page for the package)

  • PL/SQL file (link to the API browser page for the package)

  • Data model

  • Requirements document

  • ER diagram

  • Transaction flow diagram

Introduction

This section should provide an overview of the package and address at least the following issues:

  • What this package is intended to allow the user (or different @@ -33,15 +33,15 @@ Note: it's entirely possible that a discussion of what a package is not intended to do differs from a discussion of future improvements for the package. -

Historical Considerations

+

Historical Considerations

For a given set of requirements, typically many possible implementations and solutions exist. Although eventually only one solution is implemented, a discussion of the alternative solutions canvassed - noting why they were rejected - proves helpful to both current and future developers. All readers would be reminded as to why and how the particular solution developed over time, avoiding re-analysis of problems already solved. -

Competitive Analysis

+

Competitive Analysis

Although currently only a few package documentation pages contain a discussion of competing software, (e.g. chat, portals), this section should be present whenever such competition exists. @@ -52,7 +52,7 @@ lacks.

Note that such a discussion may differ from a discussion of a package's potential future improvements. -

Design Tradeoffs

+

Design Tradeoffs

No single design solution can optimize every desirable software attribute. For example, an increase in the security of a system will likely entail a decrease in its ease-of-use, and an increase in the @@ -62,7 +62,7 @@ should include a discussion of the tradeoffs involved with the design chosen, and the reasons for your choices. Some areas of importance to keep in mind are: -

Areas of interest to users:

  • Performance: availability and efficiency

  • Flexibility

  • Interoperability

  • Reliability and robustness

  • Usability

Areas of interest to developers:

  • Maintainability

  • Portability

  • Reusability

  • Testability

API

+

Areas of interest to users:

  • Performance: availability and efficiency

  • Flexibility

  • Interoperability

  • Reliability and robustness

  • Usability

Areas of interest to developers:

  • Maintainability

  • Portability

  • Reusability

  • Testability

API

Here's where you discuss the abstractions used by your package, such as the procedures encapsulating the legal transactions on the data model. Explain the organization of procedures and their @@ -80,7 +80,7 @@ handle transactions, instead of encapsulating them via procedures). Experience has taught us that we need to focus on the API for maintainability of our systems in the face of constant change. -

Data Model Discussion

+

Data Model Discussion

The data model discussion should do more than merely display the SQL code, since this information is already be available via a link in the "essentials" section above. Instead, there should be a high-level @@ -97,7 +97,7 @@ packages.

  • Transactions

    Discuss modifications which the database may undergo from your package. Consider grouping legal transactions according to the invoking user class, i.e. transactions by an OpenACS-admin, by - subsite-admin, by a user, by a developer, etc.

  • User Interface

    + subsite-admin, by a user, by a developer, etc.

    User Interface

    In this section, discuss user interface issues and pages to be built; you can organize by the expected classes of users. These may include:

    • Developers

    • OpenACS administrators (previously known as site-wide administrators)

    • Subsite administrators

    • End users

    @@ -114,26 +114,26 @@ Finally, note that as our templating system becomes more entrenched within the OpenACS, this section's details are likely to shift from UI specifics to template interface specifics. -

    Configuration/Parameters

    +

    Configuration/Parameters

    Under OpenACS 4.6.3, parameters are set at two levels: at the global level by the OpenACS-admin, and at the subsite level by a sub-admin. In this section, list and discuss both levels of parameters. -

    Future Improvements/Areas of Likely Change

    +

    Future Improvements/Areas of Likely Change

    If the system presently lacks useful/desirable features, note details here. You could also comment on non-functional improvements to the package, such as usability.

    Note that a careful treatment of the earlier "competitive analysis" section can greatly facilitate the documenting of this section. -

    Authors

    +

    Authors

    Although a system's data model file often contains this information, this isn't always the case. Furthermore, data model files often undergo substantial revision, making it difficult to track down the system creator. An additional complication: package documentation may be authored by people not directly involved in coding. Thus to avoid unnecessary confusion, include email links to the following roles as they may apply: -

    • System creator

    • System owner

    • Documentation author

    Revision History

    +

    • System creator

    • System owner

    • Documentation author

    Revision History

    The revision history table below is for this template - modify it as needed for your actual design document.

    Document Revision #Action Taken, NotesWhen?By Whom?
    0.3Edited further, incorporated feedback from Michael Yoon9/05/2000Kai Wu
    0.2Edited8/22/2000Kai Wu
    0.1Creation8/21/2000Josh Finkler, Audrey McLoghlin
    ($Id$)
    View comments on this page at openacs.org