The primary objectives of this course are to understand the role of a software architecture in the development of application systems, to understand the role of a software architect, examine and compare various architecture view types and styles, develop the ability to read and understand the models that are used to document a software architecture, and to understand the nature of and the advantages and disadvantages for various architectural choices.
Fundamentals, Requirements, Design, Implementation, Analysis and Testing, Evolution and Maintenance, Processes.Basic Concepts: Terminology, Models, Processes, Stakeholders.
Design Process, Architectural Conception, Styles and Architectures Patterns, Architectural Conception in unprecedented design, Design Processes.
Connectors: Connectors Foundations, Roles, Types and their Variation Dimensions, Examples (Event-Based, Grid-Based, Client-Server-based, P2P-based Data Distribution Connectors), Connector Framework.
Modeling: Modeling Concepts, Ambiguity, Accuracy and precision, Complex Modeling, Evaluating Modeling Techniques, Specific Modeling Techniques.
Visualization: Visualization Concepts, Evaluating Visualizations, Common issues in Visualization, Visualization Techniques and its Evaluation.
Analysis Goals, Scope of Analysis, Architectural Concern being Analyzed, Level of Formality of Architectural Models, Type of Analysis, Level of Automation, System Stakeholders, Analysis Techniques.
Implementation: Mapping Problem, Frameworks and its evaluation, Middleware, Component models and Application frameworks, Concurrency, Architecture-to-Implementation Consistency. Frameworks for the Pipe-and-filter and C2 architectural Style.
Deployment and Mobility: Challenges, Software Architecture and Deployment: Concepts, Activities and Tool Support, Software Architecture and Mobility: Concepts, Paradigms and Challenges in migrating code