SWE312 Software ArchitectureIstinye UniversityDegree Programs Software Engineering (English)General Information For StudentsDiploma SupplementErasmus Policy StatementNational Qualifications
Software Engineering (English)

Preview

Bachelor TR-NQF-HE: Level 6 QF-EHEA: First Cycle EQF-LLL: Level 6

Course Introduction and Application Information

Course Code: SWE312
Course Name: Software Architecture
Semester: Spring
Course Credits:
ECTS
7
Language of instruction: English
Course Condition:
Does the Course Require Work Experience?: No
Type of course: Compulsory Courses
Course Level:
Bachelor TR-NQF-HE:6. Master`s Degree QF-EHEA:First Cycle EQF-LLL:6. Master`s Degree
Mode of Delivery: Face to face
Course Coordinator: Doç. Dr. BAHMAN ARASTEH ABBASABAD
Course Lecturer(s): Assist. Prof. Dr. Alper Öner
Course Assistants:

Course Objective and Content

Course Objectives: Apply fundamental principles and guidelines for software architecture design, including the selection and implementation of appropriate architectural styles, patterns, and frameworks. Utilize methods, techniques, and tools to describe software architecture and effectively document design rationale. Demonstrate proficiency in software architecture design and evaluation processes, considering factors such as scalability, performance, and maintainability. Design and evaluate software architectures for cutting-edge technologies like cloud computing, service-oriented architecture, and mobile computing. Employ architectural styles and utilize architecture description languages (e.g., XCD) and UML to model software architectures. Specify software architectures to address non-functional properties, such as security, reliability, and usability.
Course Content: The content of the course consists of Meaning and History of Software Architecture, Project Management, Metrics, Project Planning, Analysis Concepts, Analysis Modelin, Risk Management in Software Projects, Architecture in Agile, Documenting Software Architectures – UML, Programming Paradigms, SOLID Design Principles 1, SOLID Design Principles 2, Independence concept in Software Architecture, Service Oriented Architecture, ServerLess Architecture and Cloud native Applications, Security & DevOps.

Learning Outcomes

The students who have succeeded in this course;
1) - Understanding the fundamentals of software architecture.
2) - Defining the phases of the agile software cycle
3) - Analyzing and evaluating different architectural styles and patterns.
4) - Designing the software architectures to meet specific quality attributes.
5) -Applying best practices for documenting and communicating software architectures.
6) - Utilizing tools and techniques for architectural analysis and validation.
7) - Defining the DevOps and software security cycles

Course Flow Plan

Week Subject Related Preparation
1) Meaning and History of Software Architecture
2) Project Management, Metrics, Project Planning
3) Analysis Concepts, Analysis Modeling
4) Risk Management in Software Projects
5) Architecture in Agile
6) Documenting Software Architectures – UML
7) Programming Paradigms
8) Midterm Exam
9) SOLID Design Principles 1
10) SOLID Design Principles 2
11) Independence concept in Software Architecture
12) Service Oriented Architecture
13) ServerLess Architecture and Cloud native Applications
14) Security & DevOps

Sources

Course Notes / Textbooks: L. Bass, P. Clements, R. Kazman. Software Architecture in Practice, Third Edition (or Fourth Edition). Addison-Wesley, 2013.
References: Robert Martin. Clean Architecture: A Craftsman's Guide to Software Structure and Design, 1st Edition. Addison-Wesley, 2018.

Course - Program Learning Outcome Relationship

Course Learning Outcomes

1

2

3

4

5

6

7

Program Outcomes
1) Adequate knowledge in mathematics, science and software engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems.
2) Ability to identify, formulate, and solve complex software engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose.
3) Ability to design, implement, verify, validate, measure and maintain a complex software system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose.
4) Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in software engineering applications; ability to use information technologies effectively.
5) Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or software engineering research topics.
6) Ability to work effectively within and multidisciplinary teams; individual study skills.
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effectice reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions.
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously.
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications.
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development.
11) Knowledge of the effects of software engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in software engineering; awareness of the legal consequences of software engineering solutions.

Course - Learning Outcome Relationship

No Effect 1 Lowest 2 Average 3 Highest
       
Program Outcomes Level of Contribution
1) Adequate knowledge in mathematics, science and software engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems.
2) Ability to identify, formulate, and solve complex software engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose.
3) Ability to design, implement, verify, validate, measure and maintain a complex software system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose.
4) Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in software engineering applications; ability to use information technologies effectively.
5) Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or software engineering research topics.
6) Ability to work effectively within and multidisciplinary teams; individual study skills.
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effectice reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions.
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously.
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications.
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development.
11) Knowledge of the effects of software engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in software engineering; awareness of the legal consequences of software engineering solutions.

Assessment & Grading

Semester Requirements Number of Activities Level of Contribution
total %
PERCENTAGE OF SEMESTER WORK % 0
PERCENTAGE OF FINAL WORK %
total %

Workload and ECTS Credit Calculation

Activities Number of Activities Workload
Course Hours 13 39
Study Hours Out of Class 13 26
Project 3 20
Homework Assignments 3 30
Midterms 2 20
Final 4 50
Total Workload 185