CSC 508 Milestone 7 Details and Milestone 8 --
Formal Model Specification
M8 ISSUED: Monday 22 November 1999
M8 DUE: Friday 10 December 1999
Per the original Milestone 7 writeup, the work of M7 focuses on the formal specification of the specialized artifact object for your project. As discussed in Lecture Notes weeks 6 and 7, tool-specific model objects will inherit from the generic Artifact object, a revised definition of which will appear in
kdat:~yliu/projects/work/artifact-navigator/specification/artifact.rsl
An example of artifact specialization (for the DesignArtifact) is attached, and
online at
kdat:~gfisher/projects/work/inferno/specification/artifact-hierarchy.rsl
The following are specific Milestone 7 details for each group:
Process Navigator (Ying-Pong, Yajun, Alfedo, J.T.)Define extensions to the Process object, as indicated in the comments in the revised process.rsl; separate the specific objects to be extended into separate .rsl files to avoid file conflictsArtifact Navigator (Bob, Andrew)Define extensions to the Artifact object, as indicated in the comments in the revised artifact.rsl; the extensions are in the area of artifact linkingRequirements Tool (Joe, Paul)Define RequirementsArtifact with a components based on the simple structured text and graphics grammars discussed in our meetings.Prototyping Tool (Sharon, Ryan)Define PrototypeArtifact as an extension to the RequirementsArtifact structure with additions to model the canvas and scripting objects specific to the prototyping tool.Design Tool (Margaret, Ahmed)Define DesignArtifact with a components based on a subset of the Java grammar, as discussed in our meetings.Implementation Tool (Luke, Eric)Define ImplementationArtifact with a components based on a subset of the Java grammar, as discussed in our meetings.Configuration Tool (John, Alan)Define ConfigurationArtifact based on the syntactic structure of a config file. NOTE: Fisher will define the artifact structure for version control information.Testing Tool (Kathryn, Jim)Define TestingArtifact based on the revised artifact structure discussed in meetings.Administration Tools (Don, Peter)Define AdministrationArtifact based on the syntactic structure of the inferno Process (in process.rsl), with the addition of subtasks and milestones.
The tasks of Milestone 8 are the following:
The commentary in this file describes in general how a specific tool specializes the Tool object to define its external operational interface. The basic strategy is to define each tool as a module that exports all public operations of the tool. The "public operations" are those traceable to the external user interface of the tool, which are the operations on the tool's menu(s).kdat:~gfisher/projects/work/inferno/specification/tool.rsl
(* * Module ArtifactHiearchy is a self-contained example illustrating how a * tool-specific artifact specializes the generic Artifact definition. The * general idea is that the artifact specializations for each process level * (e.g., design, etc) use the inherited SubArtifacts list to hold their * children, for as far down as they want the Artifact Navigator to see the * children. For strong typing, a generic specialization of SubArtifacts is * defined for each level. *) module ArtifactHiearchy; obj Artifact is n:Name and gi:GraphicIcon and sa:SubArtifacts and ... description: (* This is a reduced definition of Artifact to illustrate how a specialization deals with the SubArtifacts list. *); end; obj SubArtifacts is Artifact* description: (* This object is a place-holder for the specialized components of a specialized, tool-specific artifact. *); end; obj DesignArtifact < Artifact where: SubArtifacts = DesignSubArtifacts; description: (* This is an example of how the top-level artifact of a specific tool, in this case the design tool, specializes Artifact. Note the use of the where clause, which defines generic instantiation in RSL. See the RSL reference manual, Section 4.2, page 24. *); end; obj DesignSubArtifacts inherits from SubArtifacts where: Artifact = PackageOrClass; description: (* This is an example of the further specialization required to fully specify the type of subartifact element within a design artifact. end; obj PackageOrClass is PackageArtifact or ClassArtifact description: (* In the case of a design artifact, the elements of a design are an interspersed collection of packages and/or classes. *); end; obj PackageArtifact inherits from Artifact is ClassArtifact*; obj ClassArtifact inherits from Artifact is Name and (Member or Method)*; (* Stubs *) obj GraphicIcon; obj Name; obj Member; obj Method; end ArtifactHiearchy;