Sprint 7 Review
So, since my professor is still out on Christmas break (and so am I, for that matter) I asked my husband to be my accountabilibuddy. Yesterday I did a demo for him and showed him all the stuff I on which I worked during the sprint. He was suitably impressed. That's really about all I can say about the review, since I was unable to get any feedback from my adviser.
I have also started pondering what I absolutely need to get done before the system is live, and I decided that really the primary thing is to get all the database schema changes done. So those will be my first priority in the next sprint.
Some research was required to figure out exactly what changes are required for task dependency and subtask relationships, so I did that yesterday. I bought the book SQL Antipatterns some time ago, and it had a section on representing a tree structure in a database. The subtask relationships do form trees, as each task can only be a subtask of one task, but the task dependency relationships form directed graphs, since each task can depend on multiple tasks. Based on the advice in the book, I will use path enumeration for the subtask relationships, as the most frequent usecase (seeing all descendents/ancestors) is very fast for that method. And it would be fairly simple to implement.
However for the dependency relationships, it's going to be a bit more difficult. I did find an article on representing directed acyclic graphs (I do indeed want these to be acyclic!) with the use of a second table, an adjacency list, containing the complete list of paths (transitive closure) in the graph. I will admit this method makes my inner math geek very happy... So this is probably what I'll do.
My plan is to at least make the database schema changes, but actually using the new columns and table can wait until I have time later in the semester (hopefully).
Thus ends sprint 7.
I have also started pondering what I absolutely need to get done before the system is live, and I decided that really the primary thing is to get all the database schema changes done. So those will be my first priority in the next sprint.
Some research was required to figure out exactly what changes are required for task dependency and subtask relationships, so I did that yesterday. I bought the book SQL Antipatterns some time ago, and it had a section on representing a tree structure in a database. The subtask relationships do form trees, as each task can only be a subtask of one task, but the task dependency relationships form directed graphs, since each task can depend on multiple tasks. Based on the advice in the book, I will use path enumeration for the subtask relationships, as the most frequent usecase (seeing all descendents/ancestors) is very fast for that method. And it would be fairly simple to implement.
However for the dependency relationships, it's going to be a bit more difficult. I did find an article on representing directed acyclic graphs (I do indeed want these to be acyclic!) with the use of a second table, an adjacency list, containing the complete list of paths (transitive closure) in the graph. I will admit this method makes my inner math geek very happy... So this is probably what I'll do.
My plan is to at least make the database schema changes, but actually using the new columns and table can wait until I have time later in the semester (hopefully).
Thus ends sprint 7.
Comments
Post a Comment