Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Module Guide #28

Closed
smiths opened this issue May 9, 2022 · 6 comments
Closed

Module Guide #28

smiths opened this issue May 9, 2022 · 6 comments
Assignees

Comments

@smiths
Copy link
Owner

smiths commented May 9, 2022

@EmilSoleymani as you finish going through the FORTRAN code we should start planning your implementation. To discuss the design, I would like you to write a module guide. To write your module guide you can look at these resources:

You can consider using my template module guide. You don't need to fill in all of the sections though. Your goal, to begin with, is to identify your proposed modules and the secrets and services for each module.

To understand your design, we'll also need a preliminary Module Interface Specification (MIS). I'll create another issue (#29) about that.

@EmilSoleymani
Copy link
Collaborator

Since I have not seen an MG before I felt quite overwhelmed at first by the documents. I decided to break it down into the more familiar problem of drawing out a rough UML Class diagram of how I imagine our program will work. The diagram along with my notes about why I did certain things, and some pseudocode of certain important procedures is available in this pdf:
MG.pdf
Using this as a guide (either of what to do or what not to do based on your feedback 😄 ), I will develop a MG as my next step

@smiths
Copy link
Owner Author

smiths commented May 10, 2022

Great start with the UML diagram @EmilSoleymani. Let's talk about it further after our meeting with Dr. Stolle tomorrow. I like the direction you are going, but some of the aspects are unclear to me.

We may end up documenting the design using UML, but I would like to give a good go at the MIS (Parnas inspired) approach. Maybe we'll use both. Using UML diagrams to think about the design is great. Drawing the boxes and arrows can help clarify the design. Using design patterns is also a great idea. The advantage of the MIS approach is that we can be more mathematical. Tool support isn't great though.

It might help you to look at a sample module guide and module interface specification for a solar water heating problem.

It might also help to look at the MIS Format that I used for 2AA4/2ME3.

As I mentioned above, we might decide to go with UML, but I am more comfortable with the Parnas-inspired approach. We can discuss further on Wednesday.

@EmilSoleymani
Copy link
Collaborator

After looking through the examples, things were more clear to me. I think I have come up with a decent preliminary version of the MG however there are still some things unclear to me (noted with question marks). Apologies for the poor handwriting
image

@EmilSoleymani
Copy link
Collaborator

IMG_8571

@EmilSoleymani
Copy link
Collaborator

EmilSoleymani commented May 11, 2022

What's left for the preliminary MG:

  • List down modules in module guide in Table 1: Module Hierarchy
  • Explain each modules secrets and services in Section 7: Module Decomposition
  • List anticipated changes (i.e. built-in unit conversions) in Section 4.1: Anticipated Changes

@EmilSoleymani
Copy link
Collaborator

Issue closed by #36

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants