asd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
asd [2021/09/20 18:53] userasd [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
-===== Course Advanced Software Design (Fall 2021) =====+===== Advanced Software Design (Fall 2023) =====
  
 The course learning objective is to understand modern software design and practice design and modeling methods in a team project The course learning objective is to understand modern software design and practice design and modeling methods in a team project
Line 7: Line 7:
 === Module 1 === === Module 1 ===
  
-  - Course introduction. Software quality and requirements. Why do we need good architecture?  +  - Course introduction. Software quality and requirements. Why do we need good architecture? 
-  - Software requirements primer. Functional/non-functional. Elicitation and specification. Methods: structured text, scenarios, features/jobs. Overview of testing approaches  +  - Software requirements primer. Functional/non-functional. Elicitation and specification. Methods: structured text, scenarios, features/jobs. Overview of testing approaches 
-  - Object oriented design. Type systems. Abstract data types. UML2 basic class models. Reminder: data modeling and database design. ER diagrams (crow-foot) vs. UML2 data modeling.   +  - Object oriented design. Type systems. Abstract data types. UML2 basic class models. Reminder: data modeling and database design. ER diagrams (crow-foot) vs. UML2 data modeling. 
-  - Introducing Domain Driven Design. How to find classes? Checklists, noun phrases, language concepts. Domain modeling: ubiquitous lang, bounded context. Elements: entities, value objs, aggregates, services  +  - Introducing Domain Driven Design. How to find classes? Checklists, noun phrases, language concepts. Domain modeling: ubiquitous lang, bounded context. Elements: entities, value objs, aggregates, services 
-  - Explain Responsibility Driven Design as a method to decompose behavior among objects. Collaborations, roles and interfaces. Interface implementation. UML2 behavior modeling. Basic activities. Interactions.  +  - Explain Responsibility Driven Design as a method to decompose behavior among objects. Collaborations, roles and interfaces. Interface implementation. UML2 behavior modeling. Basic activities. Interactions. 
-  - Introduce basic UML2 state diagrams, package models. Describe UML2 Big Picture for logical modeling +  - Introduce basic UML2 state diagrams, package models. Describe UML2 Big Picture for logical modeling
  
 === Module 2 === === Module 2 ===
  
-  - General structured design approach (contrast with e.g. tuning). Decomposition principles. Modularization. Cohesion and coupling. Structure charts and dataflow modeling. Define software architecture, reference architecture, 4+1 views or C4 model and basic styles  +  - General structured design approach (contrast with e.g. tuning). Decomposition principles. Modularization. Cohesion and coupling. Structure charts and dataflow modeling. Define software architecture, reference architecture, 4+1 views or C4 model and basic styles 
-  - Definition of resources and microservices. Microservices identification in bounded contexts. Conway's Law. Domain integrations in DDD. Sync/async APIs  +  - Definition of resources and microservices. Microservices identification in bounded contexts. Conway's Law. Domain integrations in DDD. Sync/async APIs 
-  - Hexagonal and microservices architecture (MSA). API patterns: BFF, API GW, Client Integration. Implementation of RESTful HTTP service. Basic internet tech: DNS, TCP/IP, HTTP/1.1, WebSockets. How to select and evaluate COTS. Licensing.  +  - Hexagonal and microservices architecture (MSA). API patterns: BFF, API GW, Client Integration. Implementation of RESTful HTTP service. Basic internet tech: DNS, TCP/IP, HTTP/1.1, WebSockets. How to select and evaluate COTS. Licensing. 
-  - How to implement a microservice using frameworks OO languages. SOLID principles. Frameworks. Define design patterns. Classification of patterns.  +  - How to implement a microservice using frameworks OO languages. SOLID principles. Frameworks. Define design patterns. Classification of patterns. 
-  - Data storage in applications and MSA. Reminder: relational and NoSQL DBMSs. Transactions and state management. ACID and BASE. Data access patterns.  +  - Data storage in applications and MSA. Reminder: relational and NoSQL DBMSs. Transactions and state management. ACID and BASE. Data access patterns. 
-  - Detailed design for microservices and MSA. Applications of object-oriented patterns (GoF). Microservices patterns. +  - Detailed design for microservices and MSA. Applications of object-oriented patterns (GoF). Microservices patterns.
   - What is good/bad design? Coherence/coupling metrics. OOP metrics Chidamber/Kemerer. MSA metrics   - What is good/bad design? Coherence/coupling metrics. OOP metrics Chidamber/Kemerer. MSA metrics
  
Line 33: Line 33:
  
 Individual assignments also include writing a short essay on a research topic in software design from a list provided by instructors. Individual assignments also include writing a short essay on a research topic in software design from a list provided by instructors.
- 
  
 ==== Course grading ==== ==== Course grading ====
  
-Module grade = 0.* Attendance + 0.* Team Project + 0.1 * Essay + 0.* Practice+Module grade = 0.* Attendance + 0.45 * Team Project + 0.1 * Essay + 0.35 * Practice
  
 Module grade cannot exceed 10. The final grade is an average of Module 1 and Module 2 grades rounded up. Module grade cannot exceed 10. The final grade is an average of Module 1 and Module 2 grades rounded up.
Line 43: Line 42:
 Attendance is 0..10 and covers lectures and practice sessions, 10 is all but one week of absence. Attendance is 0..10 and covers lectures and practice sessions, 10 is all but one week of absence.
  
-Team Project is 0..15 is proportional to project score achieved by the team, score includes completed project assignments during the practice and the final project report in each Module. Score 10 is given for a project well-done, a greater score may be achieved for larger projects, more detailed solutions or more complex project topics.+Team Project is 0, 4..12 is proportional to project score achieved by the team, score includes completed project assignments during the practice and the final project report in each Module. Score 10 is given for a project well-done, a greater score may be achieved for larger projects, more detailed solutions or more complex project topics.
  
-Essay is {05, 10}.+Team Project scores less than 4 are rounded down to 0 (failed). 
 + 
 +Essay is 0..5. Grading details for the essay are provided along with the topics.
  
 Practice is 0..10 is proportional to individual activity during the practice sessions, including reporting for the team, reports at the blackboard etc. Practice is 0..10 is proportional to individual activity during the practice sessions, including reporting for the team, reports at the blackboard etc.
- 
  
 ==== Books ==== ==== Books ====
Line 56: Line 56:
   - Head-first design patterns   - Head-first design patterns
   - Sommerville. Software Engineering 10th ed.   - Sommerville. Software Engineering 10th ed.
 +  - K. Wiegers, D. Beatty. Software requirements engineering, 3rd Ed.
  
 ==== Resources ==== ==== Resources ====
Line 66: Line 67:
 Prof. Anton S. Khritankov, Ph.D. Prof. Anton S. Khritankov, Ph.D.
  
-Assist IgorYMezhuevPh.D.+Assist. ProfSofia Yakusheva2022-curr. 
 + 
 +TA Azamat Ismagulov, 2023-curr. 
 + 
 +**In the past years**
  
 +Assist. Prof. Igor. Y. Mezhuev, Ph.D., 2021-2022
  • asd.1632163990.txt.gz
  • Last modified: 2026/08/29 07:59
  • (external edit)