cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Help us improve the PTC Community by taking this short Community Survey! X

Systems/Software Engineering Tips

Sort by:
Intention This tip lists different best practices how we are managing certain administrative use cases within Integrity LM. All of them are in production since some years, and very stable.   Status The list below is a working list. Feel free to comment or even add more. I will update the main tip section accordingly.   Best Practices with Use Cases   Topics #1 to #10 are here   Topic #11 Item Editability Restriction Use Case As a process responsible, I want to make sure that only specific persons are allowed to edit items. As a process responsible, I want to assign the current user as default value for "Assigned User", that any item has a value in this field. As a process responsible, I want to make sure that users assigned to a read-only group can not edit any item in Integrity. As a process responsible, I want to allow that Project Administrators and Team Leads can always edit an item. Best Practice Add the field "Assigned User" to any item type of interest Create a trigger which assigns the current user as "Assigned User" if not set. Create a static and also a dynamic group to handle Read Only permissions Create an Item Editability rule for each item type, like the following:   Topic #12 Effective Role Management: Object Access Roles Use Case As an process responsible, I like to make sure, that a user will see only the relevant objects for a his role, such as specific types, specific queries, specific reports, specific charts. Best Practice A common practice is to create so called Object Access Groups. Such a static group will bundle role specific types, queries, reports, charts etc.  For example, such a role might be named "ROLE_Req_OBJ", and will contain all objects needed to fulfill requirement tasks. Another will be named "ROLE_Test_Mgr_OBJ". This role will contain only test management related objects. When adding a new user and granting a User Role, the user will get a business role such as "Requirement Manager" and also this related Object Role, such as ROLE_Req_OBJ. When a new Report gets created for Requirement Managers, then the report gets assigned to the ROLE_Req_OBJ role, and immediately all Requirement Managers will see that report, but only by them. Example     Topic #13 Special Projects Use Case As a project responsible, I want to have the following special projects: Library, Templates, Trash Best Practices Create a "Library" project that holds common objects, such as Abbreviation Documents, or reusable Test Steps. You can use the tip #8 to prevent the user from putting something into this library project that you don't want to have as a library element. Create a "Template" project that holds templates for documents, or even items. You can use the tip #8 to prevent the user from putting something into this folder that you don't want to have as a template. Create a "Trash" project, into which a user or team lead can drop a no-more-needed document. You can use a trigger to prevent that someone can  drop a document with traces in it. You can use the tip #8 to prevent the user from dropping something that should never be dropped. You may schedule a purge process for automated purging. You may restrict this Trash folder visibility to Team Leads only.  Each of the mentioned special projects can be team specific or global. Usually, we create different of them depening on the collaboration processes in place.   Topic #14 Tracing and Trace Definition Use Case As a user, I want that the system helps me to define the right traces. As a user, I want that the system avoids creating traces to Headings and Comments. As an administrator, I want an easy way to define the Alt-drag-drop functionality. Best Practices When defining the Alt-drag-drop functionality for Tracing, always include the category. This would avoid that someone creates traces between Headings, or Comments. Activate a trigger that checks about any invalid tracing that a user might perform in the relationship fields itself. Again, check that only meaningful nodes will be traced. Use the Trace Manager App to define and review the trace definition easily. Use the Trace Manager App to create automatically the corresponding STeF tests. (see topic #10)   Topic #15 Dashboard Alternative with external Data Use Case As a Project Manager, I want to have an overview about my project, where some data are from Integrity itself, whereas other data are provided by other systems.  Best Practices There are many ways to handle this. My suggestion is to use a report, and feed external data into the report using JSON and/or JSP.   A JSP can also display data provided in XML files. If such an XML file contains the data provided by the external tool, then our report and/or dashboard can display local and remote data in parallel. If the build in capabilities for charts are not enougt, consider the use of modern JavaScript libraries where you can create almost any chart type.    Topic #16 Standardized Custom Trigger Logging Use Case As a System Responsible, I want to get a standardized and consistent Trigger logging spooled to the server.log Best Practice  Develop a Trigger Framework, in Java, to standardize the Custom Trigger logging.  Possible output might look like this:   Topic #17  Standartized Reminder e-Mails Use Case  As a User, I want to receive reminder e-Mails about upcoming deadlines, or already missed deadlines. Best Practice Implement a new Item Type which holds the definition and the rules of how and when a reminder shall be send out. Define a Trigger which reads the reminder definition, and sends out the email according to the defined reminder cycle. Plan how you track the items you already reminded. Store also a log file.        Topic #18  Custom Help System Use Case  As a User, I want to have the possibility to access context - means type specific - specific help right out of the UI. Best Practice  Adapt the Presentation Template and add another link to a type specific html page. This help page might be generated, with links in it to different other information sources, such as team help pages outside (e.g. sharepoint, standard help, templates, process descriptions etc.)  We manage the links directly in a new item type.   Topic #19  Scheduled Trigger Chart Use Case  As a system owner, I want to get an overview about the Triggers ran easily. Best Practice Use a Trigger Framework to track the start and end time of triggers. Take those data and store them in a new tracking item type. Use standard build-in Charting tool to present the details of which scheduled trigger fired when.   Topic #20  Validate any system configuration frequently Use Case  As a system owner, I want to get automated support to check my own configuration rules.  Best Practice  Use the Trigger Framework to define multiple validation tasks to check your configuration  Define for each validation a single JavaScript file  Execute the validations using dynamic script inclusion.  Send an email about the validation results to the system owner daily.   More to come 🙂
View full tip
Intention This tip lists different best practices how we are managing certain administrative use cases within Integrity LM. All of them are in production since some years, and very stable.   Status The list below is a working list. Feel free to comment or even add more. I will update the main tip section accordingly.   Best Practices with Use Cases   Topic #1 Environment specific images for the Presentation Layout. Use Case As a user or administrator, I want to see easily in which environment I am working. Best Practice Add an Image to the presentation layout, which has always the same name, such as environment.png The link is pointing to a file on that specific server. The image itself presents the Environment, such as TEST or PROD. This solution also works in a stage environment. Example   Topic #2 Stageable Gateway Configurations Use Case As a system administrator, I want to stage all files, including the XML files in gateway + gateway/mappings. Best Practice see HowTo-Stage-Gateway-Configuration-Files   Topic #3 Versioning of Customizations Use Case As an Integrity Administrator I want to version any customized file of my Integrity Server Best Practice Create a folder structure in Source which matches exactly the sever structure of your Integrity. Put all files that you want to version into this folder structure. Create also a folder structure under public_html/gateway to serve the Best Practice #2. Create another folder structure that matches the local folder structure for your client. Put any file into this structure which you need to deploy to your clients. In addition, create a separate folder structure for any custom development, such as local customized Java Classes. This approach will finally version any file that is needed to manage your Integrity Installation.   Topic #4 Easy recognizable Item Images Use Case As an user, I want to easily identify the item type I am working with. Best Practice We have seen very different ideas of how a type image is used by our PTC customers. Our suggestion is that you use different images for different types, like it is defined in the ALM solution. If you add more types, our suggestion is to reuse the small image and use it also for the main image. You can use MS PowerPoint to create such images ('save as image' functionality) All images should have the same height. The color itself shall rather be bright, and never bold. Because the user focus shall remain on the data, not on the image 🙂 Example It may look like this:   Topic #5 Use Stage Configuration for IM Use Case As a System Administrator, I want to get as much as possible process support for administrative changes. Best Practice If you have not considered yet, take a look at the Stage Configuration for Integrity IM. The Stage configuration allows you to utilize a transportation wizard helping you to move configuration changes along your environment chain. It is described in the Administration Guide from Integrity LM.   Topic #6 Keep the Database small with File Vaulting Use Case As an administrator, I want to utilize system possibilities to keep the database size small. Best Practice Enable File Vaulting for the Integrity Database This technique will move binary data out of the Source area into the file system, but the data files itself stay accessible. Finally, such files are no more part of the database, therefor the database size stays longer small. You may also consider this feature when you are life and you want to reduce the database size again. Hint: usually the data size stored in Integrity is caused by such binaries (usually ~ 70% of the total DB size).   Topic #7 See the Configuration from a different perspective Use Case As an administrator, I want a documentation of the Integrity configuration, to check specific elements without the need to open the Administration Client. Best Practice Use IntegrityDocs   Topic #8 Item Level Restriction Use Case As a user, I want to get more guidance into which project level I shall store Items and Documents. In other words, Integrity shall prevent me from putting any item into any project (level). Best Practice We have implemented a trigger preventing the user to put items and documents into projects which are not allowed. This trigger handles explicit item and document allowances, but also item and document restrictions on the project level only. For example, the trigger raises an error saying: "You are not allowed to store item of type XYZ into the project level 2. Such items can be stored in project level 1 or 3 only". This helps us to keep a good data project quality.   Topic #9 Dedicated Training and Development Environments Use Case  As a Training Coordinator or as a Developer, I need a dedicated Environment where I can prepare my data and run my own tests and/or prepare Training Material. Best Practice Use "im createsolution" to create a "configuration copy" of your environment. Install this "configuration copy" into a dedicated Integrity Server (or VM). From that minute on you can work completely disconnected, prepare the demo or test data you need, or execute certain development tasks. Later on you bring your results back into the production environment.  The "configuration copy" will be very fast and is very small, because it won't contain any production data. Exporting with "im createsolution" is a matter of some minutes, installing it might take a bit longer. Alternative approach: Stage-To-Empty   Topic #10 Functional Testing with Integrity STeF Use Case As a system responsible, I want to automate functional testing, to reduce regression test durations for configuration changes Best Practice If you are interested in a thorough testing approach for Workflow & Document changes, such as Trigger, Field or State configurations, consider the use of the framework "Integrity STeF". STeF stands for Setup Testing Framework and helps you in definining and automating any tests that you would usually perform manually.   The Framework is Wiki based, test cases are defined in so called Fitnesse tables. You can run each test separately, or combined in test suites, or all tests for the whole application at once. Also a command line execution method is supported, for nightly tests 🙂 Integrity STeF is also an excellent tool to generate test data for tip #9.   The next set of Best Practices is here
View full tip
Announcements