{"id":232,"date":"2023-12-24T13:48:36","date_gmt":"2023-12-24T18:48:36","guid":{"rendered":"https:\/\/blogs.bu.edu\/john2011\/?p=232"},"modified":"2023-12-24T13:52:01","modified_gmt":"2023-12-24T18:52:01","slug":"system-proposal-document","status":"publish","type":"post","link":"https:\/\/blogs.bu.edu\/john2011\/john_aghadiuno\/2023\/system-proposal-document.html","title":{"rendered":"System Proposal Document"},"content":{"rendered":"<p><strong>9-2 Final Project &#8211; System Proposal Document<\/strong><\/p>\n<p>John C. Aghadiuno<\/p>\n<p><a href=\"\/john2011\/files\/2023\/12\/9-2-Final-Project-System-Proposal-Document.pdf\">9-2 Final Project &#8211; System Proposal Document<\/a><\/p>\n<p>Southern New Hampshire University<\/p>\n<p>Professor Allyson Heisey<\/p>\n<p>07\/01\/2018<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Contents<\/p>\n<p><span><a href=\"#_Toc518237278\">Introduction. 4<\/a><\/span><\/p>\n<p><a href=\"#_Toc518237279\">Background. 4<\/a><\/p>\n<p><a href=\"#_Toc518237280\">Problem Statement 4<\/a><\/p>\n<p><a href=\"#_Toc518237281\">Audience. 5<\/a><\/p>\n<p><a href=\"#_Toc518237282\">Systems Requirements. 5<\/a><\/p>\n<p><a href=\"#_Toc518237283\">Requirements Models. 5<\/a><\/p>\n<p><a href=\"#_Toc518237284\">Output 5<\/a><\/p>\n<p><a href=\"#_Toc518237285\">Input 6<\/a><\/p>\n<p><a href=\"#_Toc518237286\">Process. 6<\/a><\/p>\n<p><a href=\"#_Toc518237287\">Performance. 6<\/a><\/p>\n<p><a href=\"#_Toc518237288\">Control 7<\/a><\/p>\n<p><a href=\"#_Toc518237289\">Data Process Model 8<\/a><\/p>\n<p><a href=\"#_Toc518237290\">Data Flow Diagram.. 9<\/a><\/p>\n<p><a href=\"#_Toc518237291\">Data Dictionary. 10<\/a><\/p>\n<p><a href=\"#_Toc518237292\">Object Modelling. 13<\/a><\/p>\n<p><a href=\"#_Toc518237293\">Use Cases and Actors. 14<\/a><\/p>\n<p><a href=\"#_Toc518237294\">Use Case Diagram.. 15<\/a><\/p>\n<p><a href=\"#_Toc518237295\">State Transition. 16<\/a><\/p>\n<p><a href=\"#_Toc518237296\">Systems Design. 17<\/a><\/p>\n<p><a href=\"#_Toc518237297\">Specification. 17<\/a><\/p>\n<p><a href=\"#_Toc518237298\">Requirements Models. 20<\/a><\/p>\n<p><a href=\"#_Toc518237299\">Data Design. 22<\/a><\/p>\n<p><a href=\"#_Toc518237300\">Logical Data Model 23<\/a><\/p>\n<p><a href=\"#_Toc518237301\">Data Flow Diagram.. 30<\/a><\/p>\n<p><a href=\"#_Toc518237302\">Data Dictionary. 31<\/a><\/p>\n<p><a href=\"#_Toc518237303\">Object Models. 34<\/a><\/p>\n<p><a href=\"#_Toc518237304\">User Interface Design. 36<\/a><\/p>\n<p><a href=\"#_Toc518237305\">Sitemap. 36<\/a><\/p>\n<p><a href=\"#_Toc518237306\">Homepage Template. 36<\/a><\/p>\n<p><a href=\"#_Toc518237307\">People Search Template. 37<\/a><\/p>\n<p><a href=\"#_Toc518237308\">Person Details Template. 38<\/a><\/p>\n<p><a href=\"#_Toc518237309\">Case Details Template. 39<\/a><\/p>\n<p><a href=\"#_Toc518237310\">System Architecture. 40<\/a><\/p>\n<p><a href=\"#_Toc518237311\">Feasibility Analysis. 42<\/a><\/p>\n<p><a href=\"#_Toc518237312\">Project Plan. 46<\/a><\/p>\n<p><a href=\"#_Toc518237313\">Work Breakdown Structure. 46<\/a><\/p>\n<p><a href=\"#_Toc518237314\">Project Monitoring and Control Plan. 47<\/a><\/p>\n<p><a href=\"#_Toc518237315\">Definition of Done. 47<\/a><\/p>\n<p><a href=\"#_Toc518237316\">Timeline. 49<\/a><\/p>\n<p><a href=\"#_Toc518237317\">Resource Sheet 50<\/a><\/p>\n<p><a href=\"#_Toc518237318\">Cost Sheet 51<\/a><\/p>\n<p><a href=\"#_Toc518237319\">References. 52<\/a><\/p>\n<p>&nbsp;<\/p>\n<h1><a name=\"_Toc518237278\"><\/a>Introduction<\/h1>\n<h2><a name=\"_Toc518237279\"><\/a>Background<\/h2>\n<p>CPCS currently maintains three separate \u201ccase management\u201d systems in use by staff (i.e., CASEY, TRIS, and CMS). They share a core set of functionalities, mandated by statute and ethical obligation. They also attempt, with varying degrees of success, to address a separate tier of functions aimed at improving staff efficiency and practice, as well as the allocation of resources. The agency\u2019s recent growth and a desire to better leverage our data for the good of our clients has resulted in the addition of functions to this separate tier. Design of the current systems, however, impedes implementation of such expanded functionality.<\/p>\n<h2><a name=\"_Toc518237280\"><\/a>Problem Statement<\/h2>\n<p>Due to deficiencies in the current system design and the lack of standard data input practices, most of the data collected for purposes other than case \u201ccounts\u201d (i.e., everything except case numbers and runsheet narratives) is of poor quality, and in their current form they do not seem to be either complete or accurate. The data are inconsistent when considered across multiple offices\/working groups (even within the same division), as various groups adhere to differing practices. Additionally, the current system introduces demonstrably unnecessary work and complexity (e.g., duplicate data entry). Consequently, users have had to adapt their workflows to the system rather than having the system support the best workflows.<\/p>\n<p>Based on the above deficiencies in the current systems, it is necessary to construct a system built on a more robust understanding of our data and user needs. The purpose of this document is to outline the business requirements for such a solution, one that would replace the existing systems with a single, well-designed system capable of ensuring the following:<\/p>\n<ul>\n<li><strong>Improved efficiency:<\/strong> ensure that users are required to enter data in the system only once, and that they can enter what they need, and that they can easily find the information they require<\/li>\n<li><strong>Improved data quality:<\/strong> create robust data validation mechanisms that ensure the system can use the data that users enter<\/li>\n<li><strong>Effective, user-friendly design:<\/strong> ensure that users are able to easily view necessary system information, and navigate seamlessly through the system<\/li>\n<li><strong>Improved system flexibility:<\/strong> ensure the system is adaptable to the evolving needs of CPCS.<\/li>\n<\/ul>\n<h2><a name=\"_Toc518237281\"><\/a>Audience<\/h2>\n<p>The intended audience for this document shall be the Project Sponsors, Project Team, IT Development team, Quality Assurance team and other interested parties, including anyone who will be involved in support and maintenance of this application.<\/p>\n<h1><a name=\"_Toc518237282\"><\/a>Systems Requirements<\/h1>\n<h2><a name=\"_Toc518237283\"><\/a>Requirements Models<\/h2>\n<h3><a name=\"_Toc518237284\"><\/a>Output<\/h3>\n<ul>\n<li>The system must provide UIs for reporting current and historical case data statewide.<\/li>\n<li>The system must provide functionality for filtering and aggregating case data.<\/li>\n<li>The system must be simple and intuitive, and unambiguous output.<\/li>\n<li>The system must provide authentication to access its resource.<\/li>\n<li>The system must provide authorization and implement access control to its resource.<\/li>\n<li>The system must provide secure access online and be available to any device.<\/li>\n<li>The system must allow access to customizable reports based on staff roles.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a name=\"_Toc518237285\"><\/a>Input<\/h3>\n<ul>\n<li>The system must allow for case management by staff.<\/li>\n<li>The system must store case activity and event logs.<\/li>\n<li>The system must capture relevant information about staff reporting preferences.<\/li>\n<li>The system must allow management to assign staff to roles.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a name=\"_Toc518237286\"><\/a>Process<\/h3>\n<ul>\n<li>The system must integrate with the existing case systems.<\/li>\n<li>The system must be able to generate reports based on user provided metrics.<\/li>\n<li>The system must be able to pull data from existing systems and aggregate data.<\/li>\n<li>The system must have built-in algorithms to enforce agency rules and objectives.<\/li>\n<li>The system must be able to export data in various formats.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a name=\"_Toc518237287\"><\/a>Performance<\/h3>\n<ul>\n<li>The system must be able to scale and support thousands of users simultaneously.<\/li>\n<li>The system must be able to handle core business processes.<\/li>\n<li>The system must have a friendly interface, easy to use and accessible on any device.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><a name=\"_Toc518237288\"><\/a>Control<\/h3>\n<ul>\n<li>The system must provide a secure single log-in enterprise-wide.<\/li>\n<li>The system must provide authentication, authorization and access control mechanisms consistent with business rules.<\/li>\n<li>The system must provide for the security, integrity, reliability, retention and back-up of data in accordance with applicable state laws, governing bodies, industry standards and business rules.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><a name=\"_Toc516311527\"><\/a><a name=\"_Toc518237289\"><\/a>Data Process Model<\/h2>\n<h2><a name=\"_Toc516311528\"><\/a><a name=\"_Toc518237290\"><\/a>Data Flow Diagram<\/h2>\n<p><a name=\"_Toc516311529\"><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<h2><\/h2>\n<h2><a name=\"_Toc518237291\"><\/a>Data Dictionary<\/h2>\n<h4><a name=\"_Toc516311530\"><\/a>Associative Entity<\/h4>\n<h4><a name=\"_Toc516311531\"><\/a>Notation Entity<\/h4>\n<p>&nbsp;<\/p>\n<h2><a name=\"_Toc516311532\"><\/a><a name=\"_Toc518237292\"><\/a>Object Modelling<\/h2>\n<p>Use appropriate object modeling techniques and tools to describe the system requirements.<\/p>\n<p>Every person in the database will inherit from the PERSON class, including attorneys, clients, investigators, judges, defendants, witnesses, etc. While they inherit and share a common set of characteristics, as can be seen in the models below, they can possess their own characteristics.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><a name=\"_Toc516311533\"><\/a><a name=\"_Toc518237293\"><\/a>Use Cases and Actors<\/h2>\n<p>Primary use cases and actors for the ZENO system include:<\/p>\n<ol>\n<li>ATTORNEY (actor) can VIEW OWN CASE REPORTS (use case).<\/li>\n<li>MANAGER (actor) can VIEW ALL CASE REPORTS (use case).<\/li>\n<li>OFFICE ASSISTANT (actor) can PRINT CASE REPORTS (use case).<\/li>\n<\/ol>\n<h2><a name=\"_Toc516311534\"><\/a><a name=\"_Toc518237294\"><\/a>Use Case Diagram<\/h2>\n<p>&nbsp;<\/p>\n<h2><a name=\"_Toc516311535\"><\/a><a name=\"_Toc518237295\"><\/a>State Transition<\/h2>\n<p>&nbsp;<\/p>\n<h2><\/h2>\n<h1><a name=\"_Toc518237296\"><\/a>Systems Design<\/h1>\n<h2><a name=\"_Toc518237297\"><\/a>Specification<\/h2>\n<table width=\"654\">\n<tbody>\n<tr>\n<td colspan=\"2\" width=\"654\">The reporting application will provide UIs for reporting current, and\/or historical case data statewide. These reports will also provide additional functionality for filtering and aggregating case data.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>1<\/strong><\/td>\n<td width=\"576\">Given a set of filters (e.g., Division, Unit, Office, date) the <em>Events<\/em> screen will return a list or graphical display of aggregate counts for the given filters grouped by filtered agency entities. When comparing multiple date ranges, aggregate counts will be replaced by differences.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>2<\/strong><\/td>\n<td width=\"576\">Filtering characteristics should include:<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Period (e.g., custom, today, yesterday, last week\u2026)<\/p>\n<p>\u25cb\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 From (Starting Date)<\/p>\n<p>\u25cb\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 To (Ending Date)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Comparison (i.e., no comparison, compare to previous period, and compare to previous year)<\/p>\n<p>\u25cb\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 When not \u201cno comparison\u201d<\/p>\n<p>\u25a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 From (Starting Date)<\/p>\n<p>\u25a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 To (Ending Date)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Division (e.g., PD, CAFL, YAD, MH)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Unit (e.g., trial, appeals)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Office (e.g., Lowell District)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Staff Detail<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>3<\/strong><\/td>\n<td width=\"576\">The <em>Period<\/em> filter should present a set of predefined periods including:<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Custom<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Today<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Yesterday<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Last Week<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Last Month<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Q2 FY2017<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Q1 FY2017<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Q4 FY2016<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Q3 FY2016 . . .<\/p>\n<p>Where the divisions by quarter are the preceding 8 quarters, excluding the current quarter.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>4<\/strong><\/td>\n<td width=\"576\">The values of the <em>From<\/em> and <em>To<\/em> dates associated with <em>Period<\/em> are automatically set after selecting a period. If they are altered, the <em>Period<\/em> selection is set to <em>Custom<\/em>.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>5<\/strong><\/td>\n<td width=\"576\">The <em>Comparison<\/em> selection can be:<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 No comparison<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Custom<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Compare to previous period<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Compare to previous year<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>6<\/strong><\/td>\n<td width=\"576\">The <em>Comparison\u2019s<\/em> <em>From<\/em> and <em>To<\/em> fields only appear when <em>Comparison<\/em> is not equal to \u201cNo comparison\u201d<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>7<\/strong><\/td>\n<td width=\"576\">The values of the <em>From<\/em> and <em>To<\/em> dates associated with <em>Comparison<\/em> are automatically set after selecting a <em>..previous period <\/em>or &#8230;<em>previous year<\/em>. If they are altered, the selection is set to <em>Custom<\/em>.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>8<\/strong><\/td>\n<td width=\"576\">The span of time covered by the <em>From<\/em> and <em>To<\/em> dates associated with <em>Comparison<\/em> must be the same as that covered by the <em>From<\/em> and <em>To<\/em> dates associated with <em>Period.<\/em><\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>9<\/strong><\/td>\n<td width=\"576\">The <em>Division<\/em>, <em>Unit<\/em>, and <em>Office<\/em> fields should be pulldown menus.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>10<\/strong><\/td>\n<td width=\"576\">All pulldown values should default to ALL.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>11<\/strong><\/td>\n<td width=\"576\">The <em>Division<\/em>, <em>Unit<\/em>, and <em>Office<\/em> pulldowns should allow for multiple selections.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>12<\/strong><\/td>\n<td width=\"576\">The available <em>Unit<\/em> options should be contingent of selected <em>Divisions<\/em>, and the available <em>Office<\/em> options should be contingent on the selected <em>Unit<\/em>. This is to avoid logical impossibilities that would lead to null results (e.g., Division = CAFL and Office = Lowell District).<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>13<\/strong><\/td>\n<td width=\"576\"><em>Staff Detail<\/em> should be a pulldown, defaulting to all, and allowing for multiple selects (e.g., attorney, SSA, investigator).<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>14<\/strong><\/td>\n<td width=\"576\">Filtered results should be displayed in four slices:<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mixed Division, Unit and Office List<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Staff List<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Graph<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Cases List<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>15<\/strong><\/td>\n<td width=\"576\">The <em>Mixed Division, Unit and Office List<\/em> should display<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 A nested list of the selected Divisions, Units and Offices<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 As well as a TOTALS row at the top, aggregating values for the following rows.<\/p>\n<p>Each row should contain columns noting<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Start: The number of open cases at the Start of the Period<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Asd: The number of cases Assigned during the Period that are not Probation or Bail<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Prob: The number of Probation cases assigned during the Period<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Bail: The number of Bail cases assigned during the Period<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Tch: The number of Touched Cases (start + asd + prob + bail)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Clsd: The number of cases that were closed during the Period<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 End: The number of cases open at the end of the Period.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>16<\/strong><\/td>\n<td width=\"576\">When fetching search results the system should display a loading message to make clear that a search is underway. Ideally, this would take the form of a progress bar to indicate how much time is left.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>17<\/strong><\/td>\n<td width=\"576\"><em>Mixed Division, Unit and Office List<\/em> counts should count each individual case, not each time a staffer touches a case. So if two attorneys worked the same case, it would show up only once.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>18<\/strong><\/td>\n<td width=\"576\">The content of the <em>Mixed Division, Unit and Office List<\/em> is contingent on the filtering selections.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>19<\/strong><\/td>\n<td width=\"576\">The content of the <em>Staff List<\/em> is contingent on those rows selected in the <em>Mixed Division, Unit and Office List<\/em>. It should be possible to select more than one such row.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>20<\/strong><\/td>\n<td width=\"576\">The <em>Staff List <\/em>should display rows for each involved staff member with subdivisions for offices. Office subdivisions should not include counts. However, each staff row should include the same columns and counts as the <em>Mixed Division, Unit and Office List<\/em> but tailored for the staff member<em>. <\/em><\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>21<\/strong><\/td>\n<td width=\"576\">The <em>Staff List<\/em> should count each time a staffer touches a case. So if two attorneys worked the same case, it would show up as a single case in each attorney\u2019s row.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>22<\/strong><\/td>\n<td width=\"576\">The report will show either <em>Details <\/em>or <em>Graph<\/em><\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>23<\/strong><\/td>\n<td width=\"576\">When <em>Comparison <\/em>is not <em>No Comparison<\/em>, the counts in rows will show the difference between the older period and the newer period. For example, if period 1 had 20 touched cases and period 2 had 19, the displayed number would be -1.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>24<\/strong><\/td>\n<td width=\"576\">When <em>Comparison <\/em>is not <em>No Comparison<\/em>, the Graph will display lines for period 1 and period 2.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>25<\/strong><\/td>\n<td width=\"576\">Graphed data will plot counts for the number of open cases. That is, the Y axis should start with the number of open cases at the beginning of the period, going up with newly opened cases and going down with newly closed cases.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>26<\/strong><\/td>\n<td width=\"576\">The graph will contain data for the most granular selection above. For example, if Lowell District is selected in <em>Mixed Division, Unit and Office List <\/em>and there no selection in the Staff List, the counts will be those of all Lowell District cases matching the filtering criteria. If, however, Attorney Smith is selected in the Staff List, the counts will be those of Attorney Smith\u2019s cases.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>27<\/strong><\/td>\n<td width=\"576\">The start and end dates on graphed data will be set by the min and max opening dates found in matching cases.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>28<\/strong><\/td>\n<td width=\"576\">The granularity of dates in graphed data will allow for user editing. <em>For example, the x axis could show individual days, weeks, months or quarters, depending on the user selection. These delineations would count cases in groupings. So, if the divisions were by weeks, the Y axis would display counts per week. <\/em><\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>29<\/strong><\/td>\n<td width=\"576\">The granularity of date data in graphed data should be a function of the difference between the start and end date of the graph. <em>For example, if the time spans days, the level of detail should be days, if it spans years, quarters or months would be appropriate. <\/em><\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>30<\/strong><\/td>\n<td width=\"576\">The <em>Case Grid<\/em> should display a row for each case encompassed by the above selections, with columns for<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Case Number<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Docket Number<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Client Name<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 The \u201cmost important\u201d charges (limited by space)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 The case\u2019s office<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 The opening date<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 The attorney(s) on the case<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 The closing date<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 An indicator if there was an adverse disposition on any charge<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>31<\/strong><\/td>\n<td width=\"576\">The results should include a <em>total number of matches <\/em>as an output.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>32<\/strong><\/td>\n<td width=\"576\">When the total number of matches is sufficiently small, there should be the option to output results to a csv or xls file.<\/td>\n<\/tr>\n<tr>\n<td width=\"78\"><strong>33<\/strong><\/td>\n<td width=\"576\">When a case number is displayed, it should be a hyperlink to the case\u2019s details as seen in the current system (i.e., CASE, TRIS or CMS).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h2><\/h2>\n<h3><a name=\"_Toc516311521\"><\/a><a name=\"_Toc518237298\"><\/a>Requirements Models<\/h3>\n<h4><a name=\"_Toc516311522\"><\/a>Output<\/h4>\n<ul>\n<li>The system must provide UIs for reporting current and historical case data statewide.<\/li>\n<li>The system must provide functionality for filtering and aggregating case data.<\/li>\n<li>The system must be simple and intuitive, and unambiguous output.<\/li>\n<li>The system must provide authentication to access its resource.<\/li>\n<li>The system must provide authorization and implement access control to its resource.<\/li>\n<li>The system must provide secure access online and be available to any device.<\/li>\n<li>The system must allow access to customizable reports based on staff roles.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4><a name=\"_Toc516311523\"><\/a>Input<\/h4>\n<ul>\n<li>The system must allow for case management by staff.<\/li>\n<li>The system must store case activity and event logs.<\/li>\n<li>The system must capture relevant information about staff reporting preferences.<\/li>\n<li>The system must allow management to assign staff to roles.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4><a name=\"_Toc516311524\"><\/a>Process<\/h4>\n<ul>\n<li>The system must integrate with the existing case systems.<\/li>\n<li>The system must be able to generate reports based on user provided metrics.<\/li>\n<li>The system must be able to pull data from existing systems and aggregate data.<\/li>\n<li>The system must have built-in algorithms to enforce agency rules and objectives.<\/li>\n<li>The system must be able to export data in various formats.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4><a name=\"_Toc516311525\"><\/a>Performance<\/h4>\n<ul>\n<li>The system must be able to scale and support thousands of users simultaneously.<\/li>\n<li>The system must be able to handle core business processes.<\/li>\n<li>The system must have a friendly interface, easy to use and accessible on any device.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4><a name=\"_Toc516311526\"><\/a>Control<\/h4>\n<ul>\n<li>The system must provide a secure single log-in enterprise-wide.<\/li>\n<li>The system must provide authentication, authorization and access control mechanisms consistent with business rules.<\/li>\n<li>The system must provide for the security, integrity, reliability, retention and back-up of data in accordance with applicable state laws, governing bodies, industry standards and business rules.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><a name=\"_Toc518237299\"><\/a>Data Design<\/h2>\n<p>This document will define the data architecture for the CPCS Case Management System. The data architecture for a system is comprised of the following:<\/p>\n<ul>\n<li>Logical\/physical data models that detail the structure and relationships between the major entities of the system. The data models defined during data architecture may not be fully flushed out to include every possible column or data point required. However, the primary entities and their relationships will be completed.<\/li>\n<li>Standards and best practices to be used in designing and developing the data architecture.<\/li>\n<li>A data migration strategy for migration of data from existing databases into the new database.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3><a name=\"_Toc518237300\"><\/a>Logical Data Model<\/h3>\n<p>In order to develop the data model for this project, an SSDT (SQL Server Data Tools) Database Project was created and used in order to define a set of schemas and tables that will become the persistence layer of the system.\u00a0 In this way, a more \u201clogical\u201d data model was not generated in favor of creating a detailed physical data model that will have immediate use in development of the system. However, the following diagrams and descriptions will act as a logical data model, describing the major entities of the system and how they relate to each other.<\/p>\n<p>&nbsp;<\/p>\n<h4>Person<\/h4>\n<p>The person entity and its assorted one-to-many related entities will store personal and demographic information with various degrees of completeness for any person who has a role in the Case Management System. Examples of person include, but are not limited to, a client, a CPCS attorney, a non-CPCS attorney, a judge, a witness, and a victim. As each person is entered into the system, the system\/UI will incorporate workflow and other mechanisms in order to minimize duplicate entry of the same person into the system as much as possible.\u00a0 The details of the duplicate check mechanism are not part of the data architecture documentation.\u00a0 Although there is the concept of a Person being in one or more \u201cposition\u201d (see PersonPosition entity below), that will be primarily used as a filtering mechanism when searching for a specific Person. It is when related to other entities that a Person will take on a role as part of that relationship through the PersonRelateType entity.\u00a0 See the Person Main Entity Diagram below followed by descriptions of the nature and usage of each entity.<\/p>\n<h5>Person Entity Diagram<\/h5>\n<h4>Organization<\/h4>\n<p>The organization entity and its assorted one-to-many related entities will store details about any conceptual or physical organization of persons that will be used in the system. There will be a special set of Organization records that will conceptualize an organization structure for CPCS itself. Although that organizational structure is currently loosely modelled as divisions with regions, units and offices below them, the OrganizationRelate\/OrganizationType concept will allow for the hierarchy to be defined at any number of levels over time, while preserving the history of how it was structured at any earlier point in time. This flexible Organization relationship concept can also be used to model flat or hierarchical relationships outside of the CPCS realm. For example, if there is a hierarchy to the Massachusetts court system courts, the courts could be related this way. See the Organization Main Entity Diagram below followed by descriptions of the nature and usage of each entity.<\/p>\n<p>&nbsp;<\/p>\n<h5>Organization Main Entity Diagram<\/h5>\n<p>&nbsp;<\/p>\n<h4>Matter<\/h4>\n<p>The Matter entity will store details about the possible matters that could be associated with a case. The Matter entity will store both criminal and civil matter data. Think of the Matter entity as more of a specialized reference table. The Matter entity is somewhat equivalent to the current \u201cCharge Index\u201d in the current system, in that it contains the definitions of the types of matter that could be related to any Case in the system but does not hold the actual instances of matters for each case. See the Matter Main Entity Diagram below followed by descriptions of the nature and usage of each entity. Since the Matter entity contains mostly pointers to the reference tables described below, the Matter Main Entity Diagram depicts both the Matter entity and its related reference tables.<\/p>\n<h5>Matter Main Entity Diagram<\/h5>\n<p>&nbsp;<\/p>\n<h4>Case<\/h4>\n<p>The Case entity and all of its related entities will store all of the information about each case that is handled by CPCS in the Case Management system. See the Case Main Entity Diagram below followed by descriptions of the nature and usage of each entity.<\/p>\n<h5>Case Main Entity Diagram<\/h5>\n<h3><a name=\"_Toc518237301\"><\/a>Data Flow Diagram<\/h3>\n<p>&nbsp;<\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<h2><\/h2>\n<h3><a name=\"_Toc518237302\"><\/a>Data Dictionary<\/h3>\n<h4>Associative Entity<\/h4>\n<h4>Notation Entity<\/h4>\n<p>&nbsp;<\/p>\n<h3><a name=\"_Toc518237303\"><\/a>Object Models<\/h3>\n<p>Every person in the database will inherit from the PERSON class, including attorneys, clients, investigators, judges, defendants, witnesses, etc. While they inherit and share a common set of characteristics, as can be seen in the models below, they will possess, in varying degrees, their own characteristics.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><a name=\"_Toc518237304\"><\/a>User Interface Design<\/h2>\n<h3><a name=\"_Toc518237305\"><\/a>Sitemap<\/h3>\n<h3><a name=\"_Toc518237306\"><\/a>Homepage Template<\/h3>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3><a name=\"_Toc518237307\"><\/a>People Search Template<\/h3>\n<p>&nbsp;<\/p>\n<h3><a name=\"_Toc518237308\"><\/a>Person Details Template<\/h3>\n<h3><a name=\"_Toc518237309\"><\/a>Case Details Template<\/h3>\n<h2><a name=\"_Toc518237310\"><\/a>System Architecture<\/h2>\n<p>&nbsp;<\/p>\n<h2><a name=\"_Toc518237311\"><\/a>Feasibility Analysis<\/h2>\n<p>For the past four years CPCS has collected data on user needs regarding case management. This has involved both formal and informal conversations, including insights gained from direct user feedback, multiple listening tours, surveys, and formal meetings for the Gideon Project. Since May, we have conducted thirty-six new interviews, and five group lunch talks, as part of site visits. Interviews have included sessions with Deputy Chief Counsels, Managing Directors, AICs, AAs, SSAs, Social Workers, Investigators, Directors of SSAs\/social workers, PD\u2019s lead investigator, and a paralegal. These recent meetings included members from PD, CAFL, YAD, MH, and A&amp;O in offices across the commonwealth, including Boston, Lawrence, Norwood, Quincy, Roxbury, and Worcester. All told, it is estimated that the entire multi-year process has involved in-person meetings with roughly a hundred staff members in offices from Boston to Pittsfield. This is in addition to a little over two hundred anonymous survey replies. Consequently, we have spoken with members of every practice area, including representatives of every user type. All of these have served to inform the current set of functional requirements.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Findings<\/strong><\/p>\n<p>We have identified eight high-level themes that apply to the system as a whole, and four areas of focus that help to define specific groupings of features. The focus areas are themselves comprised of specific requirements and a summary is presented below.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Themes<\/strong><\/p>\n<ul>\n<li>Centralization (Facilitates Collaboration and Avoids Duplicate Data Entry)<\/li>\n<li>Mobile Access<\/li>\n<li>Granular Data Collection &amp; Flexible Data Elements<\/li>\n<li>Data Aggregation &amp; Analysis (e.g., Standard Reporting and Predictive Modeling)<\/li>\n<li>User Interface &amp; Workflow Support<\/li>\n<li>Permissions, Security, &amp; Privacy<\/li>\n<li>Reliability of Data and System (Including Technical Performance and Data Quality)<\/li>\n<li>Smooth Transition to a New System (Data and Training)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Focus Areas &amp; Features<\/strong><\/p>\n<table width=\"631\">\n<tbody>\n<tr>\n<td colspan=\"5\" width=\"631\"><strong>People &amp; Groups<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"335\">Requirement(s)<\/td>\n<td width=\"89\">In Current?<\/td>\n<td width=\"86\">Complexity<\/td>\n<td width=\"63\">Impact<\/td>\n<td width=\"58\">Priority<\/td>\n<\/tr>\n<tr>\n<td width=\"335\">The ability to find, edit, and add information on people and groups, including the relationships of people to each other, to cases, and to groups.<\/td>\n<td width=\"89\">in part<\/td>\n<td width=\"86\">med<\/td>\n<td width=\"63\">high<\/td>\n<td width=\"58\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"335\">Radically improved search: fuzzy\/statistical search\/match (esp. conflict check)<\/td>\n<td width=\"89\">no<\/td>\n<td width=\"86\">high<\/td>\n<td width=\"63\">high<\/td>\n<td width=\"58\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"335\">Public person and group profiles w\/ user comments<\/td>\n<td width=\"89\">no<\/td>\n<td width=\"86\">low<\/td>\n<td width=\"63\">med<\/td>\n<td width=\"58\">low<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table width=\"631\">\n<tbody>\n<tr>\n<td colspan=\"5\" width=\"631\"><strong>Case Management, Document Management, and Calendaring<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"335\">Requirement(s)<\/td>\n<td width=\"89\">In Current?<\/td>\n<td width=\"86\">Complexity<\/td>\n<td width=\"62\">Impact<\/td>\n<td width=\"59\">Priority<\/td>\n<\/tr>\n<tr>\n<td width=\"335\">The ability to find, edit, and add information on cases. Such information includes:<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Relationships of people and groups to cases<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Runsheets, including fine-grain action tracking (e.g., did you argue a motion today?)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Calendars<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Documents (external and internal)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Matter dispositions and procedural history<\/td>\n<td width=\"89\">in part<\/td>\n<td width=\"86\">high<\/td>\n<td width=\"62\">high<\/td>\n<td width=\"59\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"335\">The system should be capable of producing documents from user-defined templates.<\/td>\n<td width=\"89\">in part<\/td>\n<td width=\"86\">high<\/td>\n<td width=\"62\">high<\/td>\n<td width=\"59\">med<\/td>\n<\/tr>\n<tr>\n<td width=\"335\">Improved collaboration:<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 In-system referrals (investigators et al.)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Separate communications channel for supervision<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Internal notifications of involved parties (e.g., letting SSA know when a runsheet entry was made)<\/td>\n<td width=\"89\">in part<\/td>\n<td width=\"86\">med<\/td>\n<td width=\"62\">high<\/td>\n<td width=\"59\">high<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table width=\"631\">\n<tbody>\n<tr>\n<td colspan=\"5\" width=\"631\"><strong>Reports &amp; Research<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Requirement(s)<\/td>\n<td width=\"90\">In Current?<\/td>\n<td width=\"86\">Complexity<\/td>\n<td width=\"62\">Impact<\/td>\n<td width=\"59\">Priority<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Standard reporting nomenclature (e.g., agreement on what one counts when counting cases)<\/td>\n<td width=\"90\">no<\/td>\n<td width=\"86\">med<\/td>\n<td width=\"62\">high<\/td>\n<td width=\"59\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Static reports (e.g., trends &amp; counts by office, employee et al.)<\/td>\n<td width=\"90\">in part<\/td>\n<td width=\"86\">med<\/td>\n<td width=\"62\">high<\/td>\n<td width=\"59\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Dynamic Reports (e.g., Boolean queries of most data fields)<\/td>\n<td width=\"90\">in part<\/td>\n<td width=\"86\">high<\/td>\n<td width=\"62\">med<\/td>\n<td width=\"59\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">The ability to export or make available via API information for consumption by external systems (e.g., export to csv, Excel)<\/td>\n<td width=\"90\">in part<\/td>\n<td width=\"86\">low<\/td>\n<td width=\"62\">high<\/td>\n<td width=\"59\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Access to CPCS research material (e.g., training and synced charge info) and pointers to external resources (e.g., linking to statutory language or model jury instructions).<\/td>\n<td width=\"90\">no<\/td>\n<td width=\"86\">med<\/td>\n<td width=\"62\">med<\/td>\n<td width=\"59\">low<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table width=\"631\">\n<tbody>\n<tr>\n<td colspan=\"5\" width=\"631\"><strong>Administration<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Requirement(s)<\/td>\n<td width=\"90\">In Current?<\/td>\n<td width=\"86\">Complexity<\/td>\n<td width=\"61\">Impact<\/td>\n<td width=\"60\">Priority<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Permissions based on relationships to cases and groups\u2019 membership (roles)<\/td>\n<td width=\"90\">no<\/td>\n<td width=\"86\">med<\/td>\n<td width=\"61\">high<\/td>\n<td width=\"60\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Workflow management &amp; business rules<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Contextual delivery of best practices (e.g., serving up appropriate documents and presenting links to additional resources)<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Data entry support<\/td>\n<td width=\"90\">no<\/td>\n<td width=\"86\">high<\/td>\n<td width=\"61\">high<\/td>\n<td width=\"60\">low<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Flexible nomenclature<\/td>\n<td width=\"90\">no<\/td>\n<td width=\"86\">med<\/td>\n<td width=\"61\">high<\/td>\n<td width=\"60\">high<\/td>\n<\/tr>\n<tr>\n<td width=\"334\">Adaptive presentation<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Custom Home Screen \/ Dashboard<\/p>\n<p>\u25cf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Data filters for specific roles and divisions<\/td>\n<td width=\"90\">no<\/td>\n<td width=\"86\">med<\/td>\n<td width=\"61\">med<\/td>\n<td width=\"60\">high<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h1>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <a name=\"_Toc518237312\"><\/a>Project Plan<\/h1>\n<h2><a name=\"_Toc518237313\"><\/a>Work Breakdown Structure<\/h2>\n<p>&nbsp;<\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<h2><a name=\"_Toc518237314\"><\/a>Project Monitoring and Control Plan<\/h2>\n<h3><a name=\"_Toc518237315\"><\/a>Definition of Done<\/h3>\n<p>The Definition of Done is a set of agreed-upon definitions for when a given software feature is regarded as truly completed (feature complete), and ready to be delivered and closed out as a work item. The definition, as agreed upon by all key stakeholders,\u00a0consists of far more than just the code, as regarded by the developer, being completed; rather, each delivered feature is subjected to the same standards for quality and delivery to ensure a greater\u00a0level\u00a0of efficiency\u00a0and verifiability\u00a0when developing a given feature.<\/p>\n<p>To ensure quality of delivery of features, CPCS defines the following checklist items as its Definition of Done:<\/p>\n<ol>\n<li><strong>Code\u00a0Completed\u00a0<\/strong><\/li>\n<\/ol>\n<p>The code is considered complete by the developer. All to-do items present in the code are resolved, and the developer considers it completed\u00a0and that it fully\u00a0addresses\u00a0the scope of the User Story in question.<\/p>\n<ol>\n<li><strong>Code Commented, Checked In,\u00a0and run against current Source Control Version\u00a0<\/strong><\/li>\n<\/ol>\n<p>The developer has sufficiently documented the code, based on the agreed-upon code documentation standards, and checked it into source control. Normally, this means the code check-in has been associated with the relevant work item in the relevant project management utility. Additionally, the developer has gotten the latest version of the code branch in question and ensured that their code still runs against that branch.<\/p>\n<ol>\n<li><strong>Builds without Errors or Warnings\u00a0<\/strong><\/li>\n<\/ol>\n<p>The developer has produced code that compiles without errors. Additionally, it is a standard best practice that production-ready code should also build without any compiler warnings\u00a0whatsoever. Typically, consistent checks against this are performed on a nightly or on-demand basis by a Continuous Integration process, that automatically compiles the application as of its current version.<\/p>\n<ol>\n<li><strong>Unit Tests Written and Passing\u00a0<\/strong><\/li>\n<\/ol>\n<p>The developer has produced accompanying unit tests, encompassing an acceptable level of code coverage (60-75% code coverage would be recommended in general, with the level reflective of how critical and complex the component is) for the given component. These unit tests must\u00a0all pass.<\/p>\n<ol>\n<li><strong>Code Reviewed, and meets Development Standards\u00a0<\/strong><\/li>\n<\/ol>\n<p>The developer has produced code that meets the agreed-upon code quality standards, as determined by a peer review.\u00a0The peer review will ensure that the code not only meets general syntax and stylistic guidelines, but also that the code adheres to general principles of abstraction and DRY (Don\u2019t Repeat Yourself).<\/p>\n<ol>\n<li><strong>Any Build\/Deployment\/Configuration Changes are<\/strong> Implemented\/Documented\/Communicated<\/li>\n<\/ol>\n<p>Any configuration changes necessary (application-level configuration, or permissions changes, or credentials)\u00a0are documented\u00a0and communicated to the team.<\/p>\n<ol>\n<li><strong>Hours for the Task or User Story are set to Zero, and the work item is marked as \u201ccompleted\u201d\u00a0<\/strong><\/li>\n<\/ol>\n<p>Once the item has passed the previous enumerated items, the work item can be marked as completed.<\/p>\n<ol>\n<li><strong>The Code is deployed to a Test Environment, and System Tests are completed\u00a0<\/strong><\/li>\n<\/ol>\n<p>After the item is marked as completed, it\u00a0must be deployed to a dedicated test environment for further vetting and ensured that the system still functions as expected.<\/p>\n<ol>\n<li><strong>The Code is verified in the Test environment and signed off on\u00a0<\/strong><\/li>\n<\/ol>\n<p>A person other than the developer who implemented the code (typically a dedicated QA resource) tests and verifies the code, and ensures that it matches expectations, as set out by the requirements for the work item.\u00a0If available, UAT signoff may be incorporated into the development process, but is not necessary to consider an item to be \u201cdone\u201d.<\/p>\n<ol>\n<li><strong>The work item is marked as closed, and considered \u201cdone\u201d\u00a0<\/strong><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2><a name=\"_Toc518237316\"><\/a>Timeline<\/h2>\n<h2><a name=\"_Toc518237317\"><\/a>Resource Sheet<\/h2>\n<h2><a name=\"_Toc518237318\"><\/a>Cost Sheet<\/h2>\n<p><a name=\"_Toc518237319\"><\/a>References<\/p>\n<p>Rosenblatt, H., &amp; Scott, T. (2017). <em>Systems Analysis and Design (11<sup>th<\/sup> ed.)<\/em><em>.<\/em> Retrieved from https:\/\/mbsdirect.vitalsource.com\/#\/books\/9781337424202\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>9-2 Final Project &#8211; System Proposal Document John C. Aghadiuno 9-2 Final Project &#8211; System Proposal Document Southern New Hampshire University Professor Allyson Heisey 07\/01\/2018 &nbsp; &nbsp; Contents Introduction. 4 Background. 4 Problem Statement 4 Audience. 5 Systems Requirements. 5 Requirements Models. 5 Output 5 Input 6 Process. 6 Performance. 6 Control 7 Data Process &hellip; <a href=\"https:\/\/blogs.bu.edu\/john2011\/john_aghadiuno\/2023\/system-proposal-document.html\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;System Proposal Document&#8221;<\/span><\/a><\/p>\n","protected":false},"author":8553,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,7],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/posts\/232"}],"collection":[{"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/users\/8553"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/comments?post=232"}],"version-history":[{"count":3,"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/posts\/232\/revisions"}],"predecessor-version":[{"id":238,"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/posts\/232\/revisions\/238"}],"wp:attachment":[{"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/media?parent=232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/categories?post=232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.bu.edu\/john2011\/wp-json\/wp\/v2\/tags?post=232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}