Software Architecture typically refers to the bigger structures of a software system, and it deals with how multiple software processes cooperate to carry out their tasks. Software Design refers to the smaller structures and it deals with the internal design of a single software process. You will learn Key Principles, Architecture Models, Object-Oriented Paradigm, Data Flow Architecture, Data-Centered Architecture, Hierarchical Architecture, Interaction Oriented, Distributed Architecture, Component-Based Architecture, User Interface and Architecture Techniques.
The line between software development and software architecture is a
tricky one. Some people will tell you that it doesn't exist and that
architecture is simply an extension of the design process undertaken by
developers. Others will make out it's a massive gaping chasm that can
only be crossed by lofty developers who believe you must always abstract
your abstractions and not get bogged down by those pesky implementation
details. As always, there's a pragmatic balance somewhere in the
middle, but it does raise the interesting question of how you move from
one to the other.
Some of the key factors that are often used to differentiate software architecture from software design and development include an increase in scale, an increase in the level of abstraction and an increase in the significance of making the right design decisions. This course is all about having a holistic view and seeing the bigger picture to understand how the software system works as a whole. While this helps to differentiate software development and software architecture, it also helps to understand how somebody moves from development into architecture.
Get ready to begin the course!