====== Essays on software design topics ====== These are essays prepared by students of [[:asd|Advanced software design course]]. When ready, please a link to your essay to the appropriate category below. ===== Product requirements ===== - [[template|An example of link to the template for an essay]] - [[taxonomyofproductrequirementselicitationanddevelopmentmethods|Taxonomy of product requirements elicitation and development methods]] - [[rational_user_story_modeling|Rationale and justification for different job and user story modeling]] - [[arch:efficiency_and_effectiveness_of_different_methods_in_customer_development|Efficiency and effectiveness of different methods in customer development]] - [[unresolvedchallengesindifferentuxandcustomerdevelopmentmethods|Unresolved challenges in different UX and customer development methods]] - [[bestmethodsforcheckingandmeasuringqualityofproductrequirements|Best methods for checking and measuring quality of product requirements]] - [[arch:recommendedpracticeforcapturingnonfunctionalrequirements|Recommended practice for capturing non-functional requirements]] - [[arch:how_do_we_scale_ux_and_customer_development_to_large_systems|How do we scale UX and customer development to large systems?]] - [[arch:definitions_of_product_and_system_quality_in_the_industry_standards|Definitions of product and system quality in the industry standards]] - [[arch:quantitativeapproachestoprioritizeandevaluateproductfeatures|Quantitative approaches to prioritize and evaluate product features]] - [[arch:the_significance_of_non-functional_requirements_in_product_development|The Significance of Non-Functional Requirements in Product Development]] - [[arch:verification_of_software_requirements_with_simulation | Verification of software requirements with simulation]] - [[arch:how-to-develop-good-product-features | How to develop good product features?]] - [[arch:bestmethodsforcheckingandmeasuringqualityofproductrequirements|Best methods for checking and measuring quality of product requirements]] ===== Domain analysis ===== - [[arch:evolutionofdomainmodelingapproachesandtools|Evolution of domain modeling approaches and tools]] - [[arch:role-of-dsl-in-domain-analysis|Role of Domain Specific Languages in Domain Analysis]] - [[arch:strategic_domain_driven_design_and_enterprise_architecture|Strategic domain driven design and enterprise architecture]] - [[arch:industry_recognized_challenges_in_domain_driven_design_practice|Industry recognized challenges in domain driven design practice]] - [[arch:lop|Language-Oriented Development as a Software Engineering Method]] - [[adm|POJO, POCO, POPO - when anemic domain model is preferrable?]] - [[arch:good-dsl|Qualities of a 'good' domain specific language]] ===== UML2 and modeling ===== - [[arch:metamodels_for_low-code_and_no-code_platforms|Metamodels for low-code and no-code platforms]] - [[modelingPracticalUsage|Practical uses of modeling in enterprises]] - [[arch:structured-modeling|Modern structured modeling approaches for software systems]] - [[arch:alternativestouml2notationfordomaindrivendesign|Alternatives to UML2 notation for domain driven design]] - ===== Data modeling ===== - [[arch:knowledge_description_methods|Ontologies, topic maps, ER diagrams and other methods for knowledge description]] - [[arch:data_modeling|Data modeling languages for data warehouses and data lakes]] - [[orm-nosql|ORM' for NoSQL: main challenges and solutions]] - [[arch:knowledge-based-modeling-in-healthcare|Practical knowledge-based modeling in healthcare]] ===== Software design ===== - [[arch:oop-async-design|Object-oriented vs. async design - friends or foes?]] - [[arch:modularization_techniques_in_functional_programming]] - [[arch:mathematics_in_software_design|How do you apply Math to software design?]] - [[arch:beyound-gof|Beyond GoF: the most important design patterns after 30 years]] - [[arch:betterlanguagesorbetterdesignpatternsawaytoeffectivedevelopment|Better languages or better design patterns - a way to effective development?]] ===== High load ===== - [[arch:distributingdatabases|Distributing databases with sharding and replication – why and when]] - [[arch:can_rdbms_scale_under_load|Can RDBMS scale under load? A survey of the case studies]] ===== Microservices architecture ===== - [[arch:a_comparison_of_load_balancing_approache_in_k8s_clusters_on_cloud|A comparison of load balancing approaches in k8s clusters on-cloud]] - [[arch:strategies_for_evolving_microsevices_arhitectures|Strategies for evolving microservices achitectures]] - [[arch:intelligent_monitoring_for_msa_what_are_the_design_choices|Intelligent monitoring for MSA, what are the design choices?]] - [[arch:the_best_container_hosting_platform_for_the_private_cloud|The best container hosting platform for the private cloud]] - [[arch:patterns-for-strategic-ddd|Connecting the domains: patterns for strategic DDD]] - [[arch:how_can_we_secure_an_msa_and_manage_access_efficiently|How can we secure an MSA and manage access efficiently?]] ===== Future trends ===== - [[arch:dapps_challenges|Challenges in architecting dApps for blockchain platforms]]