![]() |
Specification Analysis Tool |
1.0 About 2.0 Overview 3.0 Use Cases 3.1 Getting Started 3.2 Your First Analysis 3.3 Finding Key Requirements in Any Document 3.4 Finding Key Requirements in a Specification 3.5 Doing Requirement Text Analysis 3.6 Looking for Duplicates 3.7 Looking for Generic Capabilities 3.8 Looking for Domain Capabilities 3.9 Finding the Document Reading Level 3.10 Finding the Document Shape 3.11 Create and Modify Rules 3.12 Create and Modify Services 3.13 Saving Your Modified Services or Rules 3.14 Saving Your Analysis Results 3.15 Changing the SAT Default Template 4.0 Frequently Asked Questions Nothing Works HELP 5.0 Control Panel 6.0 Services 7.0 Rules
8.0 Report Areas 9.0 Libraries 10.0 Installation and License
Note: Not all screen shots in this manual match the current SAT version. They are for demonstration and training purposes.
The story of SAT goes back more than two and a half decades, in a time and place very different from today. Back then young engineers mathematicians and scientists found themselves in large organizations with massive capability. Part of this capability included senior staff to mentor the new technologists, many of whom never saw a specification or could not imagine the use of a requirement. In that environment, the senior staff would slowly introduce the concepts of technology development and management, which included the fundamentals of specifications and requirements. They would use check lists, papers, examples, classroom training, and on the job training. The more dedicated young technologists would visit the company library to confirm and correct the directions of the senior staff.
Today, the environment for the young technologist is very different. Gone are the senior staff roles, gone are the mentoring concepts, gone are the vast company libraries. In its place we have people, young and old, still just as eager to produce and push the existing boundaries, and we have unlimited computing capacity. This is where SAT comes in to fill the void. SAT uses todays' massive computing capacity to capture the work of the senior staff of decades ago. It replaces check lists, classroom instruction, on the job training, and personal research at the company library with a tool that helps both the professional and the young technologist to write good specifications and requirements.
Note: SAT opens different Browser windows as needed. The idea is to keep similar information in the same browser window. So if you click a link and nothing happens, check all your open browsers.
With the Specification Analysis Tool (SAT), there is no reason to fear a specification review. Your management will gladly schedule this project critical review because SAT will allow them to close on the activity in a controlled efficient manner. No more arguments and bouncing back and forth as schedule slips away and the process is marginalized. The process shines with SAT.
SAT allows a user to submit specifications for req's review. The reqs are subjected to predefined and user defined rules. These rules are well known, but rarely found consistently and completely within an organization. Even when some of the rules are known, examination of a specification may never happen. The trick is to actually schedule a review of a spec once there is a sufficient level of content to stop poor requirements and effectively control requirement generation. The price for not cleaning up a specification is now trivial with the introduction of SAT. The price of a messy spec is project failure, plain and simple.
You upload your specification and press submit.
Your suspect requirements are listed with color, status, and descriptive text of the offense and what to do about it. Too much information, no problem, enable and disable the reports as you need to accomplish your analysis and recommendations. Need to modify or create a rule, just check show rules and author what you need. |
|
![]() Note: Simple SAT version on CassBeth Web Site |
The beauty of SAT is its ability for you to define consistently applied rules. SAT comes preloaded with a set of rules that allow you to immediately start adding value to your project while at the same time providing you with real world examples to help you synthesize your special rules for your world.
![]() Note: Simple SAT version on CassBeth Web Site |
Rules are independent of your uploaded specification file format. Your
specification file can be a DOORS spreadsheet export or a text version of
your document.
The kinds of requirement deficiencies the preloaded SAT rules look for are: Untestable, Unsure, Vague, Compound, Internal References, Not Standalone, Fragments, Directives, Duplicates. The rules use the power of regular expressions in a format that is intuitive and based on the popular internet search engine paradigm. In the end metrics are gathered so that you know when you are done. |
So how long should it take to review a specification? The answer is simple: 1 to 3 days. Shocking, but that is correct. In 1-3 days any specification analysis should be complete regardless of size. Once you know your possible requirement issues, the next step is to make the appropriate modifications and close the activity. Predicting specification modifications resulting from this type of review is more difficult, but 1 - 5 minutes per requirement is a reasonable starting point for your planning, because there is no argument, no conflict, no one being marginalized. The problem is shown in color and most solutions are instantly apparent. That does not mean you will not be challenged. The difference is you will now address your challenge as mature men and women using logic and reason in the open rather than hidden agendas, whispers, and mumbo jumbo.
Once your stakeholders buy into SAT you will never go back to your backward ways again...
This section contains typical user scenarios to help you get started. There are links to the actual SAT content which open other browsers. After you review the open browser, close the window. This will prevent confusion as you go through the use cases.
There are 2 ways to start SAT:
1. Go to Start => Programs => CassBeth SAT => Start SAT
2. Open Windows Explorer, go to z-cassbeth-dev\sat and double click Start SAT
Selecting the Start SAT Icon starts an Apace Server bundled with SAT, opens your default web browser, and goes to a static HTML page that is your default template. This default template is also your Control Panel. The SAT program did not execute. The SAT program only executes when the Submit button is pressed on your Control Panel.
The Control Panel includes links to the help area. Selecting the links will transfer the user to the specific help area or perform an action. While in the Control Panel feel free to press the links to find those that transfer you to Help and those that perform an action.
If you select the Default Rules link you will be transferred to your default template Control Panel.
If you select No Rules link you will execute SAT without any template, and so there will be no services or rules provided. You can use this option as a clean slate once you become proficient in SAT operations.
If you select any of the links in the Libraries, you will be presented with a directory listing of other HTML pages that contain different service and rule settings. As you use SAT and create your own templates you should save your HTML pages within these directories.
To perform your first analysis we will invoke the Requirement Test Analysis Service.
1. Select the file to be analyzed by pressing the Browse button
2. Go to the SAT Document Library z-cassbeth\sat\documents and select
document sat-spec.txt
3. Optionally select Show Object Comments
4. Select the Requirement Text Analysis service
5. Press the Submit button and examine the report
6. Optionally Enable Disable the Rules such as Untestable, Unsure,
Incomplete, etc and press Submit
The Default HTML page with your new settings will be uploaded to the Apache Server. The Apache Server will present the HTML page with your new settings to the SAT application. The SAT application will process your request and present a new HTML page to the Apache Server. The Apache Server will transfer this new page to your Web Browser.
Once you upload a file it stays uploaded until you restart SAT, select Default Rules, No Rules, or open a different Template page under Libraries. This allows you to select different services, rules, and perform service rule modifications without the need to constantly upload the document to SAT. If you see no results after a submit action, just upload the document again, you performed an operation that cleared the currently uploaded document.
You can proceed to scroll through the new web page or you can select the links under Report Areas to take you to the various points within the body of the report. Selecting Analysis Results will take you to a report area which contains mined objects, based on the rule settings. In this case the Service was Requirement Text Analysis and the Rules were related to finding bad requirements based on word and phrase patterns.
If you select the Show Object Comments option then the comments associated with each finding are shown with the object as in the above report. If you did not select Show Object Comments, then links are provided with each object to a common area that contains all the comments in one area. This second option reduces the report size and allows the user to focus on the object text rather than the comment and object text.
You can continue to scroll through the report or press the back button on your Browser. If you press the back button, select the Metrics link under Report Areas. This will show you metrics and provide an analysis of the metrics.
The above screen shot is slightly below the start of the Metrics area. Each item represents a rule. The count for each item represents the number of times that rule was triggered in the analysis. Th z-Mined Objects is a count of the objects that had one or more rules triggered by the object. It is NOT a total of the above list. So we see in this analysis there are a total of 18 possible problem objects while the total rules triggered are 21 instances.
SAT Message: This document is 51% imperatives suggesting you have a specification. But, you should move some of the descriptive text to your analysis or design documents. There is an online audio power point segment on this topic. Take a few minutes to listen to the speaker and view the slides. Audio Specs (PPT) |
The top of the Metrics area contains additional additional information. It includes metrics such as Total Lines and an analysis of the metrics, as shown by the SAT Message.
Repeat the above steps with one of your documents. Although SAT can process a spreadsheet saved in .csv format, a MsWord document saved in .doc, for your starting case, convert your document to .txt. This will show you what happens to cover pages, tables of contents, tables, figures, and indexes. None of these items will be part of your requirement analysis and converting your information product to .txt will allow you to remove this Noise from your uploaded file.
In this scenario an analyst may not be aware of the project key requirements but has access to various information products and needs to start finding the project key requirements. These information products could be from the current project or similar projects. They could be customer A-Level specifications, other specifications, manuals, analysis documents, statements of work, etc. In this scenario the user is fishing for key requirements. Conceptually this fishing is similar to an Internet search engine, except the SAT search options are grouped into services and rules. The analyst should start from the framework of the Internet search engine paradigm.
1. Locate all the exiting documents in your program you suspect might
help you find key requirements
2. Optionally convert your documents to .txt and manually remove the
noise like table of contents, tables, index, etc
3. Copy them into your SAT Document Library
z-cassbeth-dev\sat\documents
4. Select the file to be analyzed by pressing the Browse button
4. Select the Key Requirements Analysis service
5. Press the Submit button and examine the report
6. Optionally enable and disable different rules and re-run the report
7. Optionally modify the rules to tune the findings
8. Stop refining the rules when you have reached diminishing returns
9. Stop refining the rules if you are not converging, go have a drink, then
try again
You can scroll through the report or select the links under Report Areas to access the findings. In this case there are findings in the report areas that can be accessed by selecting the Analysis Results, Accessed Patterns, and Metrics links.
The Analysis Results show objects that are candidates for becoming your key requirements. For example Object 24 in this analysis shows hits against 3 areas, but examination of the text reveals a requirement for a remote installation. The analyst might decide to update the rules and services to mine for all instances of remote installation and operations. The most significant key requirement might actually be remote installation and operations.
The Accessed Patterns show words that are candidates for becoming your key requirements. Selecting any of the words and pressing the submit button will return all object text containing the selected word pattern. Examining the Accessed Patterns Not Found is just as revealing as the patterns found. These are potential key requirements that are not in this information product. The found words are all candidates for your key requirements and they should be the focus of your analysis. The counts are also important and should be considered as a level of strength for each keyword that could translate to a key requirement.
The Metrics show "Rules" that represent Key Requirement Categories that are candidates for becoming your key requirements.
This analysis shows that all Key Requirement categories are addressed. We also see that there are more hits associated with Environment, Mechanical, EMI suggesting a hardware influence. We also see a heavy emphasis on Systems and Safety. Most projects have no safety references. See Key Requirements Analysis
In this scenario an analyst is aware of the key requirements and would like to verify that the key requirements are addressed in the specification. The analyst should start with the default Key Requirements Analysis service and modify the rules to match the unique key requirements of the project.
1. Locate all the exiting specifications in your program you would
like to analyze
2. Optionally convert your documents to .txt and manually remove the
noise like table of contents, tables, index, etc
3. Copy them into your SAT Document Library
z-cassbeth-dev\sat\documents
4. Select the file to be analyzed by pressing the Browse button
4. Select the Key Requirements Analysis service
5. Press the Submit button and examine the report
6. Optionally enable and disable different rules and re-run the report
7. Optionally modify the rules to tune the findings
8. Stop refining the rules when you have reached diminishing returns
9. Stop refining the rules if you are not converging, go have a drink, then
try again
You can scroll through the report or select the links under Report Areas to access the findings. In this case there are findings in the report areas that can be accessed by selecting the Analysis Results, Accessed Patterns, and Metrics links.
The Metrics show "Rules" that represent your Key Requirement Categories. This report should be the starting point for your analysis. If you have items with no hits, then either your key requirement is not in your specification or your rule for accessing the key requirement is not appropriate and needs to be modified.
This analysis shows that all Key Requirement categories are addressed. We also see that there are more hits associated with Environment, Mechanical, EMI suggesting a hardware influence. We also see a heavy emphasis on Systems and Safety. Most projects have no safety references.
The Analysis Results show objects that are candidates for meeting your key requirements. They should be reviewed to make sure the object text meets the actual intent of the key requirement.
The Accessed Patterns show words that are candidates for representing your key requirements. Selecting any of the words and pressing the submit button will return all object text containing the selected word pattern.
Examining the Accessed Patterns Not Found is just as revealing as the patterns found. These are potential key requirements that are not in this information product. Any words in this area should be of concern to the analyst because they reflect possible missing key requirements from the specification. See Key Requirements Analysis
In this scenario an analyst is trying to identify poorly written requirement text. The analyst should start with the default Requirements Text Analysis service and modify the rules to match the unique needs of the project. The user is fishing for poor requirements. Conceptually this fishing is similar to an Internet search engine, except the SAT search options are grouped into rules within this service. The analyst should start from the framework of the Internet search engine paradigm.
1. Locate a specification you would like to analyze
2. Optionally convert your document to .txt and manually remove the
noise like table of contents, tables, index, etc
3. Copy it into your SAT Document Library
z-cassbeth-dev\sat\documents
4. Select the file to be analyzed by pressing the Browse button
4. Select the Requirements Text Analysis service
5. Press the Submit button and examine the report
6. Optionally enable and disable different rules and re-run the report
7. Optionally modify the rules to tune the findings
8. Stop refining the rules when you have reached diminishing returns
There are different templates for this service in the SAT Library. Try using these different templates then converge on a final set of rules for your program. If you find yourself on a tight budget and just do not want to modify the rules, then run the default Requirements Text Analysis service.
You can proceed to scroll through the new web page or you can select the links under Report Areas to take you to the various points within the body of the report. Selecting Analysis Results will take you to a report area which contains mined objects, based on the rule settings. In this case the Service was Requirement Text Analysis and the Rules were related to finding bad requirements based on word and phrase patterns. This report area should be your primary focus if you are trying to fix requirement text.
If you select the Show Object Comments option then the comments associated with each finding are shown with the object as in the above report. If you did not select Show Object Comments, then links are provided with each object to a common area that contains all the comments in one area. This second option reduces the report size and allows the user to focus on the object text rather than the comment and object text.
You can continue to scroll through the report or press the back button on your Browser. If you press the back button, select the Metrics link under Report Areas. This will show you metrics and provide an analysis of the metrics. This report area should be your primary focus if you are trying to compare this specification with other specifications.
The above screen shot is slightly below the start of the Metrics area. Each item represents a rule. The count for each item represents the number of times that rule was triggered in the analysis. Th z-Mined Objects is a count of the objects that had one or more rules triggered by the object. It is NOT a total of the above list. So we see in this analysis there are a total of 18 possible problem objects while the total rules triggered are 21 instances.
SAT Message: This document is 51% imperatives suggesting you have a specification. But, you should move some of the descriptive text to your analysis or design documents. There is an online audio power point segment on this topic. Take a few minutes to listen to the speaker and view the slides. Audio Specs (PPT) |
The top of the Metrics area contains additional additional information. It includes metrics such as Total Lines and an analysis of the metrics, as shown by the SAT Message.
Optionally repeat the above steps using different Templates in the Library before you try to create or modify the baseline rules. Prior to running a prestored template or analysis run, press the Submit button to reset the report and get it ready for the analysis. Press the Submit button a second time to execute the analysis. See Requirement Text Analysis
In this scenario an analyst is trying to identify duplicate requirements. This is tricky when the same requirement may be duplicated but written slightly differently. To address this issue, this service includes a mask to filter certain words and increase the possibility of finding similar requirements. This mask can only be matured in an ad-hoc fashion using empirical data. However, even if the mask is not mature, it is amazing how duplicate text can surfaced within a specification as evidenced by our analysis of random specifications accessed from the Internet.
1. Locate a specification you would like to analyze
2. Optionally convert your document to .txt and manually remove the
noise like table of contents, tables, index, etc
3. Copy it into your SAT Document Library
z-cassbeth-dev\sat\documents
4. Select the file to be analyzed by pressing the Browse button
4. Select the Find Duplicate Objects service
5. Press the Submit button and examine the report
6. Optionally modify the mask and re-run the report
You can proceed to scroll through the new web page or you can select the links under Report Areas to take you to the various points within the body of the report. Selecting Analysis Results will take you to a report area which contains mined objects, based on the rule settings.
In this case the Service was Find Duplicate Objects and the Rule was preset by the service to locate duplicate objects based on the mask value. This report area should be your primary focus if you are trying to find duplicate requirements. See Find Duplicate Objects
In this scenario an analyst may not be aware of the project capabilities but has access to various information products and needs to start finding the project capabilities. These information products could be from the current project or similar projects. They could be customer A-Level specifications, other specifications, manuals, analysis documents, statements of work, etc. In this scenario the user is fishing for capabilities. This service works by mining every word in the document and placing it either into the imperative or non imperative category. The analyst should focus on reviewing the keywords returned in the report results.
1. Locate all the exiting documents in your program you suspect might
help you find capabilities
2. Optionally convert your documents to .txt and manually remove the
noise like table of contents, tables, index, etc
3. Copy them into your SAT Document Library
z-cassbeth-dev\sat\documents
4. Select the file to be analyzed by pressing the Browse button
4. Select the Generic Capabilities Analysis service
5. Press the Submit button and examine the report
6. Select the Filter Noise Words option and re-run the report
7. Optionally change the pattern . | to
.....| in the noise list to filter all words
with less than 5 letters
8. Stop refining the noise list when you have reached diminishing returns
9. Stop refining the noise list if you are not converging, go have a drink,
then try again
Note: The "vertical pipe" | represents the logical or function.
You
can scroll through the report or select the links under Report Areas
to access the findings. In this case there are findings in the report areas
that can be accessed by selecting the Accessed Words, Reading
Level, and Metrics links.
The Accessed Words show words that are candidates for becoming your capabilities. Selecting any of the words and pressing the submit button will return all object text containing the selected word pattern. The counts are also important and should be considered as a level of strength for each keyword that could translate to a capability.
The Reading Level, and Metrics are of no interest when trying to understand what may be the capabilities in your project. The metrics show the split between imperatives and non imperatives. See Generic Capabilities Analysis
In this scenario an analyst is aware of the capabilities and would like to verify that the capabilities are addressed in the specification. The analyst should start with the default Domain Capabilities Analysis service and modify the rules to match the unique key requirements of the project.
1. Locate all the exiting specifications in your program you would
like to analyze
2. Optionally convert your documents to .txt and manually remove the
noise like table of contents, tables, index, etc
3. Copy them into your SAT Document Library
z-cassbeth-dev\sat\documents
4. Select the file to be analyzed by pressing the Browse button
5. Select the Domain Capabilities Analysis service
6. Press the Submit button and examine the report
7. Optionally enable and disable different rules and re-run the report
8. Optionally modify the rules to tune the findings
9. Stop refining the rules when you have reached diminishing returns
10. Stop refining the rules if you are not converging, go have a drink, then
try again
You
can scroll through the report or select the links under Report Areas
to access the findings. In this case there are findings in the report areas
that can be accessed by selecting the Accessed Words, Reading
Level, and Metrics links.
The Accessed Words show words that are candidates for becoming your capabilities. Selecting any of the words and pressing the submit button will return all object text containing the selected word pattern. The counts are also important and should be considered as a level of strength for each keyword that could translate to a capability.
Examining the Accessed Patterns Not Found is just as revealing as the patterns found. These are potential capabilities that are not in this information product. Any words in this area should be of concern to the analyst because they reflect possible missing capabilities from the specification.
The Reading Level, and Metrics are of no interest when trying to understand what may be the capabilities in your project. The metrics show the split between imperatives and non imperatives. See Domain Capabilities Analysis
To determine
the reading level the Count options need to be enabled in the rules.
The Generic Capabilities Analysis mines all the words in a report
and has a Count option enabled. To determine the reading level:
1. Select the file to be analyzed by pressing the Browse button
2. Select the Generic Capabilities Analysis service
3. Press the Submit button
You can scroll through the report or select the links under Report Areas to access the findings. In this case there are findings in the report areas that can be accessed by selecting the Accessed Words, Reading Level, and Metrics links. Select the Reading Level link.
To determine
the document shape:
1. Select the file to be analyzed by pressing the Browse button
2. Select the Generic Structure Analysis service
3. Press the Submit button
4. Select the Domain Structure Analysis service
5. Press the Submit button
You can scroll through the report or select the links under Report Areas to access the findings. In this case there are findings in the report areas that can be accessed by selecting the Analysis Results, Metrics, and Document Shape links. Select the Document Shape link. See Generic Structure Analysis and Domain Structure Analysis
To create or modify rules you can have a document loaded or unloaded. Obviously the process will work faster if there is no up loaded document.
1. Select the Service containing the Rule you would like to modify and press
the Submit button
2. Select Show Simple Rules, optionally select Show Complex
Rules, and press the Submit button
3. Optionally modify existing rules and press the Submit button
4. Scroll to the bottom of the rule authoring list, enter the name, parameters,
and press the Submit button
Note: To delete a rule, remove its name. Only delete the last rule, DO NOT delete rules in the middle of the list.
The best way to view a rule is as a complex search engine and the isolated word searches many individuals would perform within a document, spreadsheet, or collection of files on a hard drive. The difference is that the searches are organized by services and rules. See Rules
To create or modify service you can have a document loaded or unloaded. Obviously the process will work faster if there is no up loaded document.
1. To get a feel for the existing services and their rules select all the services and press the Submit button
2. Select the New Service Name option and press the Submit button
3. Enter the New Service Name and press the Submit button
4. Select the New Service and press the Submit button
5. Enter the Service Description
6. Enter the first new rule Name
7. Enter rule parameters
8. Press the Submit button
See Services
In this scenario services and rules have changed and a new template needs to be saved for future use on the same project or another project. The difference between a template and a report is both the template and report contain the rules and services, however, the report also contains the results of the analysis. A report can be turned into a template at any time by disabling (unchecking) all the services and pressing the Submit button. Obviously it is in the users best interest to manage reports and templates by saving them in the appropriate directories.
If you would like to save a new service and its rules:
1. Select the Template Comments option and press the Submit
button
2. Enter the Title and Description for this new template and
press the Submit button
3. Once you have completed authoring this new service and its rules use the browser File save option
Netscape
Internet Explorer
4. Select the option to only save the HTML page, NOT the whole page
|
|
5. Save this new template into z-cassbeth\sat\templates
You can save this new template anywhere, but we suggest you use the SAT Library Directories. See Services
In this scenario an analysis was performed and the report needs to be saved for future reference or for future re-running on the same project or another project. The difference between a template and a report is both the template and report contain the rules and services, however, the report also contains the results of the analysis. A report can be turned into a template at any time by disabling (unchecking) all the services and pressing the Submit button. Obviously it is in the users best interest to manage reports and templates by saving them in the appropriate directories.
1. Follow the steps in Saving
Your Modified Services or Rules, except for the last Save step
2. Save this new report into z-cassbeth\sat\previous-analysis
You can save this new report anywhere, but we suggest you use the SAT Library Directories. See Services
In this scenario a user converged onto a new template an would like to make this template the SAT default template. Caution needs to be exercised so that the user can return back to the SAT Installed Default Template at any time. The SAT Installed Default Template is stored as index.html in the main SAT directory. This file must be renamed prior to setting a New SAT Startup Default template.
1. Go to z-cassbeth\sat and find index.html
2. Rename index.html to index-installed-default.html (this
step is extremely important)
3. You are now ready to Save your New SAT Startup
Default Template
4. Verify the new template has no report artifacts (all services disabled)
and Press Submit button
5. If needed go to z-cassbeth\sat\temp and delete the spec.tmp file
and Press Submit button
6. This will fully clear the template
7. Follow the steps in Saving
Your Modified Services or Rules, except for the last Save step
8. Save this template into z-cassbeth\sat using the name
index.html
9. Select Default Rules at the top of the Control Panel and
verify your New Template is presented
If you would like to bring back the SAT Installed Default Template
1. Rename index-installed-default.html to index.html
2. You are essentially renaming files being careful not to lose previous
versions
1. What should my specification format be prior to uploading to SAT? If your spec is a document, save it in text format. If your spec is in DOORS export it as an Excel Spread Sheet using .csv (comma delimited) format. Be careful to set your DOORS ID field to something else like PUI prior to the export otherwise you will be unable to open it in Excel. Apparently Excel uses ID in .csv format.
2. Should I have a PUI for my requirements?
Project Unique Identifiers (PUI) can be part of your file. If so remember to add the PUI mask in the SAT rules. The mask is currently set to REQ-\d+. If you have no PUI, SAT will add its own PUI with the preface of "REQ-".
3. Should I have requirement attributes?
Sure. Especially an attribute that identifies if an object is or is not a requirement. The SAT pre-defined rules use NotReq for the requirement attribute field. Attributes can be very valuable when creating your own unique rules.
4. How can I save my unique rules?
Just save your web page on your hard drive. When you want to duplicate your analysis, just load your saved web page into your browser and press the submit button prior to submitting a specification for analysis. You are now back to where you can duplicate your analysis.
5. Is there a size limitation on my Specification file?
The demo is set to 75 Kbytes. Your solution can be set to 2^17, but something like 1 Mbyte is a practical size. Empirical data suggests that 1Mbyte is 5000+ objects.
6. Why do my links not work on Template and Demo reports reports?
You need to press the submit button to reset the path of the report from the library area to the SAT execution area. The SAT execution area is located in the <sat> folder. The libraries are folders found within <sat>. If your submit button fails to respond, make sure the web server is up and running, and the URL address is live in the browser, not a "file path".
7. I made a mess of my Template, how can I recover my rules?
Your Template is an html file. All you need to do is open it in a text editor or a good html editor and modify the "form action field" to point to your sat program. Basically search for this tag and make sure the action reads satpro.cgi:
<form method='POST' enctype='multipart/form-data' action='http://localhost:4444/~sat/satpro.cgi'>
<form method='POST' enctype='multipart/form-data' action='satpro.cgi'>
The SAT base URL is http://localhost:4444/~sat but you may have changed it within your setup at some time, thus the panic and recovery. Place the template in the same directory as the sat program.
8. What's with this original processing URL?
Things happen and this value can help you determine why a Template is broken. See FAQ 6 and 7.
9. What browser should I use with SAT?
You can use whatever browser you like. SAT uses basic universal HTML. It currently does not use JAVA just for this reason. However, you need to make sure your browser behaves like you expect. For example the newer Netscape versions strip out the absolute URL addresses unless you select the "web page" complete option. So run some experiments and make sure a template will fire up when placed in the SAT library directories and accessed in the future. See FAQ 6 and 7.
10. I am really excited about SAT, is the user interface complex?
The SAT interface is very simple. The links take you to either "help" or "report areas" on the same web page or another web page. Nothing happens unless you press the submit button. When you press the submit button, the web page is transferred to the server, it processes whatever check boxes and text fields you set, and returns the results. So you press check boxes to uncover lower layer options. You keep pressing check boxes and filling in fields while pressing the submit button between each cycle. At some point you are happy with the setup and then you upload a file for processing. Remember, SAT starts with a template and all you need to do is upload a file and select a service for processing all in one step.
11. Do I really need to use the libraries to hold my data?
Not really, but if you place your documents and templates in those directories you will simplify your use of SAT. Those directories also contain a few SAT unique artifacts so that links and images will work once an item is loaded from one of the library directories.
12. Nothing works / My Apache server will not start? If Apache does not start, you may running a web server, your Firewall may be blocking access, the Port (4444) may be in use, or your Shortcuts may not be working properly. You can start Apache in a DOS window so that some status is provided.
If you are running a web server it must be stopped or configured to access the SAT web portal using the URL address of z-cassbeth/sat/index.html. We STRONGLY suggest you find the running web server and stop it, unless YOU actually started it in the first place.
You can download and use wed servers from www.apache.org or www.indigostar.com or use your Microsoft Web Server. It sounds like you may be using your Microsoft Web server or some downloaded artifact. If you wish to go down this path then, install / configure your web server and verify that the web server works by accessing the default page. After you install and configure your web server you will need to add the "local web address" for SAT on your computer. For IndigoStar go to the <conf> directory open the <PerlConsole.conf> file, search for "aliases", you will come across a pattern as follows, assuming you installed it in an <IndigoPerl> directory:
Alias /icons/ "C:/IndigoPerl/icons/" #ISEXT Alias /html "C:/IndigoPerl/perl/html" Alias /~sat "C:/z-cassbeth/sat"
add the last line: Alias /~sat "C:/z-cassbeth/sat" and save the file. Restart the web server and it will load the modified file. Access SAT using your new URL: http://localhost:4444/~sat. For Apache go to the <conf> directory open the <httpd.conf> file and follow the same general steps as for IndigoPerl.
13. I want to start Apache in a DOS window and get some status on why it does not work?
Go to z-cassbeth/ . . . /Apache/bin and open a DOS window. Type <apache> and look at the response. If there is no response then Apache should be started and running. You can verify if its running by pressing Cntrl ALT DEL at the same time and examine your running processes in the process tab. If Apache is running, all is good.
While you are here type apache -h. This will list all the Apache commands. CAUTION do not start Apache as a service unless you are prepared to learn how to Stop Apache Service.
14. My Firewall may be blocking Access?
Start Apache in a DOS window. If you get a message back, Apache did not start. If the message says something like "unable to open sockets" then your firewall is blocking access. Even though this Apache instance is running on your local machine and the httpd.conf file has no directives to allow others to access your computer, it uses Internet technologies and your fire wall assumes it is accessing the Internet. You will need to access your firewall controls and get to the list where you see the names of applications that are permitted to access the Internet and those that are BLOCKED. If you see Apache, remove the block.
15. My Port is in use?
Start Apache in a DOS window. If you get a message back, Apache did not start. If the message says something like "4444 port in use" then either you already started the Apache server for SAT or there is another application using port 4444. Unfortunately port 4444 is hardcoded in our application so you will need to change the port number of the other application or stop it while you use this Apache server instance.
16. Apache works in DOS but not from my Shortcuts?
Start Apache in a DOS window. Next try to use your shortcuts to start SAT. If you get error messages in the DOS window created to start Apache but not when you started it manually in DOS then your shortcuts are bad. Just recreate the shortcuts and place them in the start menu. Make sure you delete the bad shortcuts. The Icon images are located in z-cassbeth/ico.
17. Why do I have a DOS Window - Stop Apache Service?
The Apache DOS window started with SAT is used to execute your Apache server. Minimize it if it disturbs you... We wanted a very simple mechanism to guarantee that Apache would stop when you wanted it stopped. The philosophy behind web servers are that they should always run because other computers on the network may need their services. So if you start Apache as a service, you will have difficulty stopping Apache. In fact to stop Apache, or any other server, you may need to rename the httpd.conf file. After you rename httpd.conf, go through the official Apache uninstall and stop command sequences, and reboot. After this sequence Apache should not restart behind the scenes.
Default Rules | This resets all parameters and starts the engine with the default rules. |
No Rules | This resets all parameters and starts the engine with no rules. It is a clean slate for the advanced user. |
File to upload | Upload the file using the browse button. Once a file is uploaded it stays in the temp directory. Each time the engine is ReStarted all temp directory contents is deleted. |
PUI Mask | If your are exporting from another tool and wish to preserve the PUI, use a mask that looks like the PUI in the export. |
Imperatives | Imperatives are words and phrases that command something must be provided. Imperatives in descending order of strength: Shall, Must, Must Not, Is Required To, Are Applicable, Responsible For, Will, Should |
Process Only Imperatives | Descriptive text is filtered from the analysis. Only objects matching the imperative pattern are accessed. |
Parse Text | Use this option to parse your file into meaningful objects. Obviously the best approach for analysis is to use a document that is properly parsed. However if that is not possible, use this option to attempt an automated parse. |
Access - Parse Text | As part of trying to parse a document you may need to remove garbage text. Use this option to access only desired text. |
Reject - Parse Text | As part of trying to parse a document you may need to remove garbage text. Use this option to remove undesired text such as tables of contents, headers, footers, and other irrelevant text from a document. |
Chop Top - Parse Text | This will remove all the text starting from the top of a document up to the first instance that this pattern is detected. This pattern is part of your valid results. |
Chop Bottom - Parse Text | This will remove all the text starting from the bottom of a document up to the first instance that this pattern is detected. This pattern is part of your valid results. |
MsWord OLE - Parse Text | If you have Microsoft Word installed, this option will load the file using Microsoft Word services. This will remove garbage text that is found when a Microsoft Word binary file is loaded and viewed as text. The first time this option is executed, Microsoft Word creates a VBE folder within the engine folder. You can leave or delete this folder. |
Strip HTML Tags | Filters tags in uploaded HTML files. This is done by removing all carriage return line feeds, since many HTML editors will split text across lines. Objects are established by looking for <BR>, <P>, <LI> and <H.> tags. |
Strip Blank Lines | Strips blank lines. Use this filter when working with norm values entered for each rule. The norm is a percentage of the total lines and there is no reason to skew the data with blank lines. |
Access Object | This is a global filter that is applied to the analysis results. Placing a pattern in this text box will only return objects with the pattern. Use this to refine your analysis. The report state is maintained when it is saved. |
Reject Object | This is a global filter that is applied to the analysis results. Placing a pattern in this text box will remove objects with the pattern from the results. Use this to refine your analysis. The report state is maintained when it is saved. |
Access Risk | This is a global filter that is applied to the analysis results. Placing a pattern in this text box will only return objects associated with a risk that matches the pattern. Use this to refine your analysis. The report state is maintained when it is saved. |
Show Processed Upload | If you don't trust your upload, you can view the uploaded file to be processed by the engine. This is also a useful feature when uploading binary documents such as word format files. Use this if you also want a full context view of the findings. |
Show Comment Details | Checking this box will attach the rule comments to each reported object text item. For the daily user this becomes noise. Leaving this item unchecked provides links for each reported object text item to a common area that summarizes all the service descriptions and rule comments. |
Hide All Comments | Checking this box will hide all object comments in the Analysis Results report area. This allows a user to copy and paste all mined objects without dealing with non document data. |
Hide Checked Items | Next to each object in the Analysis Results is a check box. The user can select any of these check boxes. Use this to track your decisions for each object, such as this is not an issue at this time. Selecting the Hide Checked Items is a display filter. When the Hide Checked Items display filter is checked, all the checked objects will be hidden. The report state is maintained in all cases when it is saved. The check boxes are tracked by the PUI. If the PUI changes, then the check box settings may no longer be valid, and must be re-examined. |
Save Results | When this option is checked a tab delimited file is saved as "srbd.xls"
in the "previous-analysis" folder. This can be used to update your System
Requirements Database (SRDB) using an Excel import. This can also be used
as a copy and paste from Excel to MsWord. This will paste as a MsWord table.
This file is over written each time the analysis is executed.
There are 4 ways to communicate your results to the team:
1. Save the HTML report, after you are done |
Filter Noise Words | Checking this box will filter all noise words. Once checked upon submit the user is presented with a text field to modify the noise words. Changing the pattern from . | to .....| in the noise list will filter all words with less than 5 letters. |
Save Metrics | When this option is checked a tab delimited file is saved as "metrics.xls" in the "previous-analysis" folder. This can be used to update your Metrics using an Excel spreadsheet. This can also be used as a copy and paste from Excel to MsWord. This will paste as a MsWord table. This file is appended each time the analysis is executed. Each append event includes the file name and a time stamp. This file needs to be maintained by the user and deleted when it gets too big. |
Browse | Used to upload a file.The file is placed in the temp directory. Once a file is uploaded, it will stay for all analysis until the engine is restarted. |
Submit | This submits your settings to the web server so that the engine can process your request. |
Rules are defined by setting various text areas and processing options. The rules are grouped into services. Each service has its own description and setting.
Parameter | Type | Comment |
Template Comments | CheckBox | Use this to name your template, provide a description, and offer instructions on how to use the template. |
Unique Service Name | CheckBox | Checking this box allows SAT to subject the document to rules within this service. |
Show Simple Rules | CheckBox | This becomes visible when the service is enabled. Shows the simple rules. |
Show Complex Rules | CheckBox | This becomes visible when the service is enabled. Shows the complex rules. |
Service Description | TextArea | Once the Show Simple Rule is selected this text field becomes enabled and the user is able to describe the service. This description becomes visible in selected analysis results. |
Requirement Text Analysis: This looks for word and phrase patterns that typically result in less than optimal reqs. In the past these rules have been encoded in check lists or kept in senior staff heads. Most organizations have different takes on these rules and they tend to change with time. This is a basic service but critical if the project expects to succeed. This should be the starting point of all your analysis.
Most think of specification analysis within the framework of this service. There are several SAT templates that are available which represent different views from different organizations on this topic. These templates are as interpreted by the SAT staff. The Requirement Text Analysis sat sample report uses the sat-spec.txt file and Requirement Text Analysis par sample report uses the par.txt file.
Template | Reports | RTA Rule Summary | Source |
SAT-Rules | SAT-Reports | Untestable, Unsure, Vague 1, Vague 2, Vague 3, Vague 4, Compound Req, Internal Reference, Not Standalone, Fragment, Declarative, Duplicates | CassBeth |
CMSEI-Rules | CMISEI-Reports | vague, Subjective, Choice or Option, Implicit Expressions, Weakness, Under Specification, Multiplicity, Duplicates | CMISEI presentation given at INCOSE Local Chapter meeting in 2005 |
INCOSE-Rules | INCOSE-Reports | Standard Constructs, Words to Avoid - Vague, Completeness, Duplicates | Rules found in various INCOSE papers. |
NASA-Rules | NASA-Reports | Completeness, Continuances, Directives, Options, Weak Phrases | Rules found in the NASA ARM tool. |
SAT-All-Services | SAT does more than RTA rules. | CassBeth |
Find Duplicate Objects: This looks for duplicate objects. If a mask pattern is entered then similar objects will be shown as duplicates, if the mask pattern is good. The Find Duplicate Objects sample report uses the sat-spec.csv file. This is the only sample file containing duplicates. Notice how the mask value blots out "shall allow a user" and "shall permit users" to allow for a match. Other patterns to consider are aircraft ID, PUIs, etc.
Generic Structure Analysis: This service looks for and counts reqs at particular levels. It works by triggering a count of reqs following an accessed pattern such as paragraph numbers. These are considered children. This is a higher level service that becomes useful when you have a collection of specifications.
The number of children at a particular level translates to a document shape. For example, if there are more children at lower document paragraph levels than higher levels, the document shape will be a pyramid, suggesting reasonable decomposition and leveling of requirements. There are different document shapes and each have implications. The document shapes are: random, rectangle, pyramid, inverted pyramid, trapezoid and diamond. Open the sample reports and click on the "Shape" link or scroll to the bottom of the report. Generic Structure Analysis sat and Generic Structure Analysis faa nice shape eh? The child text is set to hidden.
Domain Structure Analysis: This service looks for and counts reqs that represent specific capabilities at each level of interest. It should be viewed as a more narrow filter of the Generic Structure Analysis Service. It works by triggering a count of reqs following an accessed pattern such as paragraph number and title. These are considered children. This is a higher level service that becomes useful when you have a collection of specifications.
This is like the the Generic Structure Analysis service but is applied to a unique domain. The number of children at a particular level translates to a document shape. There are different document shapes and each have implications. The document shapes are: random, rectangle, pyramid, inverted pyramid, trapezoid and diamond. Open the sample report and click on the "Shape" link or scroll to the bottom of the report. Domain Structure Analysis
Notice how you can show and hide the child text.
Generic Capabilities Analysis: This service looks for and counts all word instances in the accessed object. Selecting a word from the list and submitting the report will provide the related text. These word instances can be subjected to an internal noise filter to remove words. The user can also enter word patterns to remove additional noise words. This is a higher level service that relies on human ability to recognize patterns when a word or group of words is provided.
This service paints a collection of words, first sorted by number, then by name. The hope is that this generic mining based on "shall" -green- then "non shall" -red- will yield patterns on capabilities within an unknown document. The words are then subjected to Polysyllabic analysis to provide a reading level. Generic Capabilities Analysis sat or Generic Capabilities Analysis faa interesting right...
This service allows each word in the report to be searched and returns objects associated with the word. This broadens the view allowing the analyst to further determine the capabilities. Key Word Search
Domain Capabilities Analysis: This service looks for and counts all word or phrase instances set in the access field. Selecting a word from the list and submitting the report will provide the related text. Since these are user defined words there is no reason to enable noise word filters. This is a higher level service that relies on human ability to recognize their capability from a single word or phrase.
This is like the the Generic Capabilities Analysis service but is applied to a unique domain. The most interesting part of the report is not what capabilities and found in a document but what capabilities are not found as shown at the bottom of the report area "Accessed Patterns Not Found". Domain Capabilities Analysis
Key Reqs Analysis: Key reqs should be methodically sought by asking each stakeholer what they feel are their key reqs. These reqs are cost and or schedule drivers. They can be found by asking:
1. have we done this before
2. has someone else done this before
3. is a new technology, process, or method needed
4. is a new product needed...
This service looks for and counts all word or phrase instances set in the access field. Selecting a word from the list and submitting the report will provide the related text. Since the user defines these words there is no reason to enable noise word filters. This is a very high level service that relies on human ability to recognize their key req from a single word or phrase.
This is really what its all about - are the key req's found in the document. Key Requirements Analysis sat or Key Requirements Analysis faa is this what you expected?
Other Domains or Industries - Constitutions: This is a SAT application in another domain or industry. This examines constitutions and identifies power granted by the people to the government and power taken from the people by the government. United States Constitution
Add New Service Name: Just add and delete your services. Pressing Default Rules will always bring you back to the default services and rules.
Rules are defined by setting various text areas and processing options. The rules are grouped into services. So to view and modify the rules, you must enable a service. Once the service is visible you must enable the show simple and or complex rule options.
Parameter | Type | Level | Comment |
Name | TextField | Simple | The name of the rule. You can use numbers and letters to try to order the results in the metrics table. |
Color | TextField | Simple | This applies color to the text mined by this rule. The colors can be hex for RGB or names such as: red, green, blue, yellow, orange, purple, navy, etc. |
Norm Metric | TextField | Simple | This is an external value once entered is reported in the metrics table next to the current run in the Metrics Report area. |
Case Sensitive | CheckBox | Simple | The mining patterns are case insensitive unless this box is checked. |
Access Object | TextField | Simple | This is the pattern used to access an object. It can be any regular expression recognized by PERL. It is shown in Analysis Results. |
Previous Object | TextField | Complex | This is the pattern used to access a previous object. It can be any regular expression recognized by PERL. It works in conjunction with the Access Object parameter. Placing a parameter in this field increases the processing time. It is shown in Analysis Results. |
Next Object | TextField | Complex | This is the pattern used to access a next object. It can be any regular expression recognized by PERL. It works in conjunction with the Access Object parameter. Placing a parameter in this field increases the processing time. It is shown in Analysis Results. |
Reject Object | TextField | Simple | This is the pattern used to reject an object. It can be any regular expression recognized by PERL. |
Comment | TextArea | Simple | This is a user comment reflecting what it means when this rule is triggered. It is shown either in Analysis Results and the Comments report areas. |
Hide Accessed Objects | CheckBox | Complex | This hides objects in the Analysis Results so that other services can be supported that offer keyword mining results. |
Show Child Objects | CheckBox | Complex | This will show a child object in the Analysis Results. The parent is defined by the access pattern. A new parent is identified for each access pattern within an entire service. When a parent is identified the child count is reset. |
Count Child Objects | CheckBox | Complex | This will report the number of child objects each time a new parent is detected either within this rule or another rule in the same service. This count is used to determine the Document Shape report. |
Count Accessed Patterns | CheckBox | Complex | The access patterns are concatenated for a service and counted as the document is processed by each rule. The results are provided in the Accessed Patterns report. |
Count Accessed Words | CheckBox | Complex | Every time an object is accessed, all its words are mined and counted. The results are provided in the Accessed Words report. This report is used to calculate the Reading Level report. |
Count Rejected Words | CheckBox | Complex | Every time an object is rejected, all its words are mined and counted. The results are provided in the Accessed Words report. This report is used to calculate the reading level. |
There are several report areas and they become populated based on the rule definitions. The reports areas are: Analysis Results, Accessed Words, Accessed Patterns, Metrics, Doc Shape, Reading Level, Comments
This report is created when a rule requests a pattern to be accessed from an object. It is the main area that outputs the object text. Placing patterns in Access Object, Previous Object, Next Object mines the document and presents it to the user. The Comment is provided based the Show Object Comments and Hide Object Comments check boxes. Doing Requirement Text Analysis
When Hide Accessed Objects is checked, the object text is not provided, but the mining still happens so that other rule processing can be applied, such as the Counting operations.
This area is also populated when looking for Duplicates or when Show Child Objects is checked. Looking for Duplicates
This report is created when Count Accessed Words or Count Rejected Words is checked and there are mined objects based on the patterns entered. The objects are parsed and all words in all the accessed objects are identified. There is a Noise Filter than can be applied by checking the Filter Noise Words check box. The Noise filtered can be tuned by modifying the Noise Patterns. The default is unchecked so you should probably check this box and immediately re-run the report. Looking for Generic Capabilities
This report is created when Count Accessed Patterns is checked. This report is like the Accessed Words report except the words that are identified are only those that were actually found in the mined objects, not all the words in the object. Also, there is a list of words that were not found in any of the objects. Looking for Domain Capabilities
This report is created when a service and a rule is enabled to support some analysis view. The item is placed in the metrics table even if the rule is not triggered. The metrics are analyzed and a judgment is made to determine if the document is a specification or non specification document. Your First Analysis
Doc Shape
This report is created when Count Child Objects is checked. This is actually a report within the Metrics report area. Finding the Document Shape
Reading Level
This report is created when Count Accessed Words or Count Rejected Words is checked and there are mined objects based on the patterns entered. This is actually a report within the Metrics report area. Finding the Document Reading Level
This report is created when a Service is selected. It provides the service description, rule comments, and summarizes the rule settings. The links in the Analysis Results area take the user to this report area so that a mined object can be fully understood and analyzed.
The libraries are subdirectories in the SAT directory on your computer. There are also SAT artifacts, like html and gif files, in those directories to help in adding confidence that the reports will work when you press the submit button. Prior to running a prestored template or analysis run, press the Submit button to reset the report and get it ready for the analysis. Press the Submit button a second time to execute the analysis.The default libraries are:
Documents
Templates
Demo Reports
Previous Analysis
Copyright (c) 2005 Cassbeth Inc - All Rights Reserved
http://www.cassbeth.com
CONTENTS
I. SAT INSTALL
II. OPERATING WITH YOUR WEB SERVER
III. SAT UNINSTALL
IV. LICENSE AGREEMENT
I. SAT INSTALL
Your SAT is compiled to execute on a PC. It uses a web server and browser to support its operations.
1. To install SAT, run installsat.exe on the CD.
2. Do NOT rename the z-cassbeth directory.
3. SAT has internal hyper links to SAT directories.
4. Do NOT rename any other lower level SAT directories.
5. Feel free to create directories within SAT.
6. Complete the install by starting SAT.
7. You will enter your product key and accept the license.
II. OPERATING WITH YOUR WEB SERVER
1. SAT is bundled with the Apache web server.
2. The bundled software license agreements can be found in their respective directories.
3. It will start automatically and open the main SAT web page.
4. If Apache does not start, you are currently running a web server and it must be stopped or configured to access the SAT web portal at z-cassbeth/sat/index.html. See Nothing Works HELP
III. SAT UNINSTALL
1. Move your personal SAT generated data to an area outside of z-cassbeth.
2. Run the uninstall, and z-cassbeth with all its contents will be removed.
IV. LICENSE AGREEMENT
This license and disclaimer statement constitutes a legal agreement ("License Agreement") between you (either as an individual or a single entity) and Cassbeth, for this software product ("Software") Specification Analysis Tool (SAT), including any software, media, and accompanying on-line or printed documentation.
BY DOWNLOADING, INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE, YOU AGREE TO BE BOUND BY ALL OF THE TERMS AND CONDITIONS OF THIS LICENSE AND DISCLAIMER AGREEMENT.
You are hereby licensed to use a demonstration version of SAT for evaluation purposes without charge for a period of up to 30 days.
A separate registered copy of SAT (non demonstration version) must be obtained for each workstation on which SAT will be used even if such use is only temporary. This is not a "concurrent use" license. For example, SAT may either be used by a single person who uses the software personally on one or more computers, or installed on a single workstation used nonsimultaneously by multiple people, but not both. This is not a concurrent use license.
You may access this copy through a network, provided that you have obtained an individual SAT license for each workstation that will access SAT through the network. For instance, if 8 different workstations will access SAT on the network, each workstation must have its own SAT license, regardless of whether they use SAT at different times or concurrently.
You may not modify, reverse engineer, decompile, or disassemble the object code portions of this software.
You may not resell, bundle, offer for download, and offer as service on or off any network, including Intranets and the Internet this software without express written permission from Cassbeth.
This Software is owned by Cassbeth and is protected by copyright law and international copyright treaty. Therefore, you must treat this Software like any other copyrighted material (e.g., a book).
All rights not expressly granted in this license agreement are reserved entirely to Cassbeth.
This software is provided "as is" and without any warranties expressed or implied, including, but not limited to, implied warranties of fitness for a particular purpose.
In no event shall Cassbeth be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, loss of life, or other loss) arising out of the use of or inability to use this software or documentation, even if Cassbeth has been advised of the possibility of such damages. Good data processing procedure dictates that any program be thoroughly tested with non-critical data before relying on it. The user must assume the entire risk of using the program. This disclaimer of warranty constitutes an essential part of this License Agreement.
In no event shall Cassbeth, or its principals, shareholders, officers, employees, affiliates, contractors, subsidiaries, or parent organizations, be liable for any incidental, consequential, or punitive damages whatsoever relating to the use of SAT, or to your relationship with CassBeth.
In no event does Cassbeth authorize you to use SAT in applications or systems where SAT's failure to perform can reasonably be expected to result in physical injury, or in loss of life. Any such use by you is entirely at your own risk, and you agree to hold CassBeth harmless from any claims or losses relating to such unauthorized use.
ANY LIABILITY OF Cassbeth WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE exclusively at the discretion of Cassbeth.
Any feedback given to Cassbeth will be treated as non-confidential and may be used by Cassbeth free of charge without limitation.
SAT is based on a proprietary process and methods that have been disclosed. The SAT process and methods are owned by Cassbeth and may not be disclosed or used except for educational purposes. Whenever the SAT process and methods are presented, Cassbeth is to be clearly identified as the sole originator of the SAT process and method. Under no circumstances does SAT grant permission to codify the SAT process and methods without express permission of Cassbeth.