Due: 7.00 pm, May 7. This is the last day of class. No extensions!
The purpose of the term project will be to create a frontend
system-level representation for an engineering system of your choice.
We only have 16 students, so either work as an individual or as a team of two.
No three-person teams.
Your project should set the stage for a detailed design and implementation that could be in software, hardware, biology, chemistry, or any combination of these entities.
Choosing a Project Focus
You can find the best projects from recent years in the folders of support material distributed in class.
I am particularly interested in seeing things that have not been tried in previous semesters.
Here are a few suggestions (and they are only suggestions) for directions that you project might take:
Recently tools (e.g., MagicDraw and ParaMagic; Artisan Studio ParaSolver) have been created where you can interface SysML with simulation (e.g., written in Matlab or Modelica), thereby allowing for the exploration of design alternatives through the execution of SysML parametric models, enabling optimal system design solutions to be determined quickly and easily.
Backend simulations calculate system measures-of-effectiveness (MoEs), such as cost, risk, reliability and performance characteristics and automatically verify design constraints.
Suitable problem domains could include: buildings, roadways, railways, hybrid transportation systems (e.g., combinations of rail and bus).
If you think you have something, let's talk about it and I'll try to help.
Things to Do
I realise that this semester we are dealing with a wide variety of project types and, as such, I want to be flexible. Something that works really well for one project may be completely inappropriate for another.
Here is a suggested list of topics you might like to include in your project:
Briefly summarize the goals and associated scenarios for this problem domain.
Identify the actors and system boundary? Develop set of "textual" use cases for this problem domain.
For each use case, identify the actors, flow of events for normal and alternative courses of action, and pre- and post-conditions (if they exist).
Develop activity diagrams showing the sequence of tasks that are accomplished in the execution of individual scenarios.
Also develop sequences of message passing among objects during the execution of these scenarios.
Organize the use cases into a use case diagram. Indicate <<extends>> and <<uses>> relationships between use cases, if they exist.
If your project has more than about 10 use cases, think about creating a hierarchy of use case diagrams.
Develop a set of system and test requirements for this problem domain. Identify the source (i.e., "goal" or "use case") of each requirement (or group of requirements).
Organize the requirements into layers of development -- each layer should have a well-defined purpose.
Create a hierarchy of tasks for "what the system will do."
Use activity, sequence and statechart diagrams to create models of behavior.
Identify the key components and subsystems that are needed for the system structure.
Organize the components and subsystems into a composition hierarchy diagram and/or component schematic (if you think that is appropriate).
Show multiplicities when they exist.
Map the model of behavior onto the system structure, and show how the various logical scenarios will be handled by the system (i.e., what is the pathway of calculations and messages for each type of computation).
I'm envisioning that one or more collaboration, statechart and/or composite-structure diagrams will be appropriate for this task.
Show how the components will interface with each other, and the external world. Consider:
Explain how the architecture-level design is constrained by the selection of standards and adoption of technologies.
Develop a use case/component task interaction matrix.
Develop traceability matrices to show:
Some projects will be amenable to improvement via clustering and modular design with design structure matrices.
One possibility would be to implement the concepts explained in "Modularity in Design of Products and Systems" by Huang and Kusiak, 1998.
What are the measures of effectiveness for system- and component-level assessment?
Assemble a library of reusable components.
Each component should be described in terms of its cost and the measures of effectiveness identified in the previous section.
Use either CPLEX or the optimization procedures in Excel to find families of Pareto-Optimal designs.
Your tradeoff study should include at least three measures of effectiveness, one of them being cost.
The remaining parameters will depend on the nature problem you are addressing, e.g., performance, reliability.
Create trade-off curves for pairs of measures of effectiveness, and then use a step-by-step procedure to identify the best designs.
Wrap things up:
For team projects, indicate the main contribution of each member in your team to the project.
For the UML I sugest that you use either MS Visio or ArgoUML.
We also have MagicDraw installed on the PCs in the SEIL Laboratory (Rm 2250, A.V. Williams).
This semester we have more than ten project teams, so you'll need to keep your presentation short!
Aim for 15 minutes (i.e., no more than 10 slides).
Focus on the problem statement, and "what you are trying to do that's new..."
If you are at a remote site then your can either:
What to Hand In
Hand in a hardcopy of your final report and presentation (if need be, it can be revised to account for constructive feedback) in an appropriate format (e.g., MS word, pdf, Powerpoint).
Also, please e-mail me copies of your presentation and project.
Developed in February 2012 by Mark Austin
Last modified: February 13, 2012.
Copyright © 2012, Institute for Systems Research, University of Maryland