ENGG * 4450 – Large-Scale Software Architecture Engineering F (3-2) [0.50]

This course introduces the students to the analysis, synthesis and design of large-scale software systems at the architectural level. This is in contrast to the algorithmic and data structure viewpoint of most software systems. Large-scale software systems are complex, execute on many processors, under different operating systems, use a particular or many language(s) of implementation, and typically rely on system layers, network connectivity, messaging and data management and hardware interfacing. The material covered includes architectural styles, case studies, architectural design techniques, formal models, specifications and architectural design tools. The laboratory sessions will expose the students to analyzing and redesigning an existing large-scale software system.

Posted By : Anonymous
Posted On : December 9, 2016

Is the textbook recommended by the student? No
Did the student enjoy the professor? Yes
Professor : Taylor

Comment :
To start, this course is found to be very vague and abstract, as the prof stresses that there is often more than one correct answer. It is related most to the OOP Java class but the focus is on the theory of developing good software, not coding itself. The 6 or 7 person group projects can be tricky, mainly just because it is hard to communicate with that many people. Its also hard for all members to actually work on the project, so it is a good idea to split work into pairs or individuals. Also the members this year were spread out over two lab sessions so there was no guarantee of a time when we could all meet up. Use whatsapp, Facebook, and google docs to your advantage. At the start, they give more time to decide the project than actual time to work on the project. It will involve reverse-engineering and adding to an open-source Android app of some kind from GitHub. Choose a simple but interesting Java choice here or you\'ll dread working on it all semester. Assignments can get complex at times but generally marked pretty easy. Not too too much work if it is split up well. Start assignments early or the whole group will slack hard. Labs are not worth any marks but you\'ll learn tools like UML, Git commands, and codeReview which are crucial for the Lab test which replaces the midterm for this course. Study for this lab test, it is not necessarily easy unless you are a git wizard. Overall, many interesting tools are learned from this course. Another weird part of this course was that since project due dates often got delayed, we only received 5% of our marks back before the drop date which was sketchy. Lecturers Graham and Griffin are both pretty good and lectures are very good but slightly boring. Final exam (40%) is not terribly hard, but there is so much to study for that there will be some questions you have no idea about.
Recommendation Rating
Overall Difficulty