SYSC 4120: Software Architecture and Design Lab #2: Identifying Architecture Characteristics Winter 2023 Dr. J. Jaskolka Carleton University Department of Systems and Computer Engineering Section: L3O Due: January 24, 2023 by 5:30PM This lab assignment contains 5 pages (including this cover page) and 4 exercises. You are responsible for ensuring that your copy of the lab assignment is complete. Bring any discrepancy to the attention of your instructor or TA. To receive credit for this lab, you must make reasonable progress towards completing the problems/tasks and individually submit the final result of your work on Brightspace. Special Instructions: 1. Do as many problems/tasks as you can. 2. The burden of communication is upon you. Solutions not properly explained will not be considered correct. Part of proper communication is the appearance and layout. If we cannot “decode” what you wrote, we cannot grade it as a correct solution. 3. You may consult outside sources, such as textbooks, but any use of any source must be documented in the assignment solutions. 4. You are permitted to discuss general aspects of the exercises with other students in the class, but you must hand in your own copy of the solutions. 5. Your lab assignment is due at the end of the lab session (5:30PM) and must be submitted on Brightspace. • Late lab assignments will receive a grade of 0. • A lab is considered late if submitted after 5:30PM on the day of lab session. • If you have not completed each of the problems/tasks, please document the troubles that you faced and comment on what could have helped you to complete the problems/tasks in the lab session. 6. You must attend your section of the lab. Attendance in the lab will be taken by the TAs. • Absent Penalty: Lab assignments submitted by the deadline by students that are absent from the lab, except for reasons accepted by the Academic Regulations of the University, will be graded with a penalty of the 20% of the full assignment grade. • If you finish the lab assignment early (before the attendance is taken), please ensure that you notify the TAs so that your attendance can be marked. Total Points 20 Page 1 of 5 SYSC 4120 — Lab #2 (Section L3O) Due: January 24, 2023 by 5:30PM The purpose of this lab is to participate in activities related to identifying architecture characteristics. In particular, it will exercise your ability to extract architecturally relevant characteristics from a collection of requirements and domain concerns for a software system. 1 GridMinistrator Description: A company who builds management software for electrical grids needs to update their outdated software solution. They plan to sell their offering as a platform, known as GridMinistrator. Users: Small to medium size market electric market companies, able to accommodate electrical grids from 250,000-3,200,000 electrical customers Requirements: 1. The system shall be configurable for specific grid company characteristics (e.g., province/state, tax rates, etc.). 2. The system shall provide a state-of-the-art user experience. 3. The system shall provide dashboards with analytics reports with near-real time data from the grid. 4. The system shall have excellent reporting capabilities. 5. The system shall contain a sophisticated analytics-based engine to determine best throughput/money. 6. The system shall be administered through either desktop or mobile devices. 7. The system shall have a security penetration attempt reporting feature. Additional Context: • Four nines (99.99%) reliability is needed • Turn-key deployment on remote sites is highly desired • Security is a first-class concern • Company wants to shift from managing electrical grids to becoming a software reseller Figure 1: GridMinistrator is a management software for electrical grids Page 2 of 5 SYSC 4120 — Lab #2 (Section L3O) Due: January 24, 2023 by 5:30PM *Important Note* The primary challenge in this lab lies in identifying the relevant details from an informal description of a system. Often software engineers are provided with a messy collection of details for a problem, and they must make decisions about which details are important and which are not. They need to make important judgements to decompose complex problems into a form that is comprehensible by a variety of system stakeholders. Software architects need to identify the most important architecture characteristics that will influence the software architecture and design. For this reason, a software engineer needs to be systematic in their approach and develop a system that captures the most important details that must address the most important domain concerns. In practice, identifying important structural elements may facilitate a simpler or more elegant design. It is important to remember that: There is no best design in architecture, only a least worst collection of trade-offs! Page 3 of 5 SYSC 4120 — Lab #2 (Section L3O) 2 Due: January 24, 2023 by 5:30PM Lab Assignment Problems/Tasks For each of the following problems/tasks, consider the description, requirements, and domain concerns for the GridMinistrator system provided in Section 1. Problem 1 Identify the explicit architecture characteristics from the domain concerns, specifically the domain-level predictions about expected metrics. For each identified characteristic, provide a brief justification of its relevance to the system. Problem 2 Identify the explicit architecture characteristics from the requirements. Be sure to consider each part of the requirements to see if it contributes to an architecture characteristic. For each identified characteristic, provide a brief justification of its relevance to the system. Problem 3 Identify the implicit architecture characteristics based on your knowledge of software solutions of managing critical systems (such as electric grids). For each identified characteristic, provide a brief justification of its relevance to the system. Problem 4 Compile the architecture characteristics identified in Problems 1–3 in a final (prioritized) list of architecture characteristics for the GridMinistrator system. Separate those characteristics that are architectural and those that may be design concerns. Briefly explain your considerations for making the separation. Describe several trade-offs that may need to be made when architecting the GridMinistrator system. Page 4 of 5 SYSC 4120 — Lab #2 (Section L3O) 3 Due: January 24, 2023 by 5:30PM Grading Rubric Each problem in this lab assignment will be graded according to the following rubric. Score Description Excellent (5) Demonstrates complete understanding of the problem. A reasonable and acceptable solution free from issues of notation, presentation, and clarity and description of the solution is presented. All requirements of the problem solution are included. Good (4) Demonstrates considerable understanding of the problem. Good progress was made towards a reasonable and acceptable solution. All requirements of the problem solution are included. Few minor issues of notation, presentation, and clarity and description of the solution. Satisfactory (3) Demonstrates partial understanding of the problem. Sufficient progress was made towards a reasonable and acceptable solution. Most requirements of the problem solution are included. Several issues of notation, presentation, and clarity and description of the solution. Poor (2) Demonstrates little understanding of the problem. Little progress was made towards a reasonable and acceptable solution. Many requirements of the problem solution are missing. Major issues of notation, presentation, and clarity and description of the solution. Unacceptable (1) Demonstrates no understanding of the problem. No progress was made towards a reasonable and acceptable solution. Significant major issues of notation, presentation, and clarity and description of the solution. Not Attempted (0) No response/task not attempted 4 Submission Requirements Please read the following instructions very carefully and follow them precisely when submitting your assignment! The following items are required for a complete assignment submission: 1. PDF Lab Assignment Solutions: Submit a detailed document that carefully and concisely describes your solutions to the problems/tasks in this lab assignment. Please ensure that your document is well-organized and that the problem numbers and sub-parts are clearly provided to facilitate the grading of your solutions. END OF LAB Page 5 of 5