Multidisciplinary Software and Systems Engineering Supplementary Coursework 2019/20
Supplementary Coursework 2019/20: Personal Electric Transport
Recent improvements in battery technology has enabled a variety of personal transportation devices to reach the mass market. These take various forms to accommodate the needs for portability, size, range, wheel size, learning curve and intended use. Examples of devices include the electric scooter, electric skateboard, electric bicycle, electric unicycle, self-balancing scooter
https://www.behance.net/gallery/14592747/Snail-Personal-Urban-Transportation
In the module lectures, we considered the design of an Intelligent Kettle which had an electronic control panel allowing temperature control and various sensors to avoid overfilling and safety. we reviewed the patent it was inspired from, which includes a schematic describing the system structure and behaviours, and the user interface control panel and how it relates to a system design.
For your coursework assignment, you are asked to outline a design and simulation of a Personal Electric Transport of your choosing. The only constraints on your design is that it must have electronic sensing and actuator capabilities.
Deliverables
There are two deliverables for this work which should be submitted to Canvas:
1) Diagrams: A set of 3 draft SysML diagrams: Requirements diagram, Block diagram and Activity Diagram.
2) Demonstration and Code: The output of a Python prototype demonstrating the device operation, together with the python source code.
Advice on completing this assignment:
1) SysML diagrams: Your SysML diagrams should preferably be electronic. Each diagram should be no more than one page in landscape format and have approximately 10-20 nodes and relations between them, and conform to the SysML standard exactly. Do not provide more detail than this e.g. multiple activity diagrams.
2) Python code: The Python prototype should aim to demonstrate the main operation of your device. It should follow on from the structure block diagram and activity diagrams, which themselves build on the requirements diagram. For example, the block diagram identifies the user’s interaction with the kettle such as closing the lid and pressing buttons. These can be designed in python through a simple button interface to initiate the function calls to (e.g.) increment the temperature or change the lid state (a Boolean variable). Conversely, the activity diagram identifies the internal flow of control such as checking the current temperature and switching the heating element on or off. Ensure that your code is verified and validated through inline tests if possible.
3) Keep it simple and creative – consider basic device that you have some personal interest in! 1
Multidisciplinary Software and Systems Engineering Supplementary Coursework 2019/20
Support
Please refer to canvas module for lectures, lab exercises and guidance on Python and SysML.
Submission Details:
Upload to Canvas a report in PDF format AND a zip file containing your python source code which e.g. a .py file plus any supporting libraries. You report should contain the following:
1. Title page: Include your name, username and student ID and illustration of your technology.
2. Report: 1-page introduction introducing your choice with justifications and references.
3. Requirements: A SysML Requirements diagram – landscape format
4. Structure: A SysML Block diagram – landscape format
5. Behaviour: A SysML Activity Diagram – landscape format
6. Python Prototype: Screenshots from your Python code
7. References
8. Appendix: Your python source code (copied from your .py file in a readable format).
Ensure that all details including test on the SysML diagrams are readable if printed at A3 printer at 300DPI (they will be marked primarily on a screen). The diagrams can be by hand drawings scanned in or electronic. Each diagram should be no more than one page in landscape format and have a maximum of 20 nodes (elements) and relations between them, and conform to the SysML standard as outlined in the lectures and references given on Canvas.
Marking Criteria:
This coursework will be marked against the following criteria (with weightings)
Introduction/References (5%)
SYSML: Notational correctness (15%), Design detail (15%), Representational consistency
(15%)
Python Prototype: Execution (20%), Comments (10%), Syntax and Structure (20%)
Benchmark Statement of expectation:
The following outlines an example of what an excellent and a failing submission would include. These are indicative and the final assessment will take account of all aspects. Thus, you should only use this as an indication of what an excellent and a poor submission would include:
An excellent submission:
An innovative choice worthy of patent application; references are provided to justify this claim in the introduction. The SysML diagrams are professional, correct notation, and plausible and have a consistent level of detail. The Requirements diagram captures both the functional and non-functional requirements and includes all essential and advanced elements with full descriptions on all relationships. The SysML block diagram captures system structure and has the correct associations between blocks, and between blocks and external actors and systems/organisations. In should include key signal flows. The SysML Activity diagram has a clear activity frames with fully defined input and output parameters. There should be a clear, coherent and distinct data and control flows within each activity frame. Through descriptive notes, all diagrams should be easy to follow and the links between diagrams easy to identify through consistent naming of elements. The Python
2
Multidisciplinary Software and Systems Engineering Supplementary Coursework 2019/20
demonstrator should function flawlessly with a rich graphical output conveying the system behaviour. Inspection of the code will be easily facilitated by detailed commenting throughout. The syntax and structure will be standardised closely following that PEP8 guidelines (https://www.python.org/dev/peps/pep-0008/) with consistent variable/function naming convention, good functional decomposition and evidence of testing.
A poor submission:
A trivial, questionable, implausible or uninspired choice with little in the way of references. English is unintelligible. The SysML diagrams are incomplete, sloppy, error-prone, badly labelled, pen-drawn drafts submitted on canvas with a poor quality barely readable scan. The Requirements diagram misses key requirements and contains irrelevant elements. The SysML block diagram fails to capture system structure with spurious block associations without external actors and systems/organisations or key signal flows. The SysML Activity diagram does not properly frame activity boundaries and the data and control flows are missing or flawed conveying a misunderstanding of these concepts. Diagrams are disjointed and not consistently labelled. The Python demonstrator is incomplete and fails to run. Inspection of the code is made difficult with little or no commenting. The syntax and structure is non-standard with inconsistent naming of variables and functions, poorly decomposed functions and no evidence of testing.
Example of a poor submission (SysML) Example of a good submission (SysML)
3