Welcome to
Hands-on Software Engineering Resources
This website provides hands-on resources in software engineering, consisting of principles, methods, and best practices—designed for students and practitioners. It delivers well-defined processes, clear guidelines, real-world examples, and case studies that demonstrate how to build industrial software systems.
Software Engineering is the disciplined application of engineering principles to the design, development, and maintenance of software systems. Whereas computer science emphasizes theoretical foundations and computational models, software engineering centers on building practical, reliable, and scalable solutions that operate under real-world constraints.
Hands-on Software Engineering brings these principles to life by enabling learners and practitioners to work directly with modeling, design, implementation, and evaluation activities in realistic scenarios. This approach strengthens problem-solving capabilities and fosters deeper technical and professional expertise. Beyond traditional topics, our focus extends to methods and best practices for engineering AI-driven systems, ensuring that practitioners are equipped to design, build, and manage modern intelligent software effectively.
Explore our Books and Resources
This website offers supplementary materials and practical resources that expand upon our published books. They are designed for researchers and practitioners, providing in-depth, hands-on guidance that is not readily available elsewhere but made accessible through our books and this site.
Software Architecture
Software architecture is a critical design activity in modern software development, forming the foundation for building reliable, scalable, and maintainable systems. Its importance becomes even greater in large-scale, industrial-strength applications, where complexity, performance requirements, and integration demands introduce significant design challenges. Addressing these challenges requires not only technical insight but also a systematic and disciplined architectural process.
A methodological approach to software architecture design provides this needed structure. It defines clear activities, artifacts, and decision workflows that guide architects from requirements understanding to architectural formulation and evaluation. By incorporating principles, quality attribute analysis, architectural patterns, and scenario-based assessment into a cohesive process, such methodologies promote consistency, traceability, and rigor in architectural decisions. This structured foundation supports the development of architectures that are adaptable, robust, and aligned with long-term system objectives.
The Unified Architecture Process (UAP) offers a comprehensive methodology for applying this structured approach in practice. UAP organizes architecture design into well-defined activities, work products, and architecture views that connect requirements to architectural solutions. It integrates quality attributes, architectural patterns, rationale documentation, and scenario-based evaluations into an iterative workflow that guides architects from early analysis to architectural consolidation. By providing a disciplined and repeatable process, UAP supports the creation of architectures that are transparent, justifiable, and aligned with both functional and non-functional system goals.

The Unified Architecture Process (UAP) provides a comprehensive and practical methodology for software architecture design. It offers a systematic framework that helps architects and professional designers create effective architectures that meet real-world requirements. This methodology is presented in detail in the following book:
Soo Dong Kim and Mira Kim, Hands-on Software Architecture: Unified Architecture Process, Springer, Nov. 2025. 517 pp., ISBN 978-3-032-01183-1
This website provides supplementary UAP resources and materials that extend the book’s contents, serving as a practical hub for both learning and applying software architecture design in practice.
AI Copilot-Assisted Object-Oriented Programming (Forthcoming)
Why Programming in The AI Era?
As AI and copilot tools increasingly generate code from natural-language prompts, it may seem that traditional programming skills are becoming less essential. In reality, programming is more important than ever. AI can generate solutions, but it cannot guarantee correctness, security, robustness, or adaptability. Skilled developers remain indispensable for validating AI-produced code, refining it for real-world constraints, and extending it to meet evolving system requirements.
Programming also cultivates a disciplined way of thinking: the ability to analyze problems logically, evaluate alternatives critically, and innovate beyond established patterns. While AI can reuse what it has learned, human developers create what does not yet exist. The future of software development lies in the synergy between human insight and machine intelligence—where programming expertise transforms AI from a tool into an effective and trustworthy collaborator.
AI Copilot-Assisted OOP: A New Development Paradigm
AI copilots are reshaping how developers apply object-oriented programming by accelerating tasks such as generating class structures, refactoring code, and exploring design alternatives. Yet the effectiveness of these tools depends on how clearly developers express design intentions and constraints. Copilot prompt templates play a crucial role in this process by providing structured, repeatable patterns for formulating high-quality prompts. These templates help developers articulate object responsibilities, relationships, behaviors, and design contexts with clarity, enabling copilots to generate outputs that are consistent, accurate, and aligned with established OOP principles.
Why Advanced Object-Oriented Programming?
OOP remains central to modern software development, providing the abstraction mechanisms and modeling constructs required for building reliable, scalable, and maintainable systems. Yet as software systems grow in size, complexity, and integration demands, basic OOP knowledge is no longer enough. Advanced OOP equips developers with deeper insight into object design, dynamic binding, design patterns, and architectural principles needed to engineer flexible and robust solutions.

This book has been completed and will be published as:
Soo Dong Kim and Jennifer Jin, AI Copilot-Assisted Object-Oriented Programming:
Best Practices for C++, Java, and Python. Forthcoming, Spring 2026.
This book presents a comprehensive treatment of object-oriented programming across four areas: (1) fundamental OOP constructs, (2) language-specific implementations in C++, Java, and Python, (3) copilot-assisted prompt patterns for OOP, and (4) advanced topics such as the object-oriented SDLC, UML, and design patterns.
AI Software Engineering (manuscript in preparation)
AI System refers to a system that integrates data acquisition, learning models, reasoning mechanisms, and deployment infrastructure to deliver intelligent functionality in real-world environments. It encompasses not only the machine learning or inference components but also the broader engineering processes—such as data management, system architecture, scalability, monitoring, and continuous improvement. Developing complete AI systems is highly demanding due to the complexity of acquiring and managing data, training and configuring models, integrating reasoning mechanisms, and deploying these components within robust and scalable infrastructures.
An upcoming book, AI Software Engineering: Foundations and Methods for Intelligent Systems, is scheduled for release in late 2026. This book provides a comprehensive framework for building intelligent systems that are not only effective but also reliable and sustainable. It introduces rigorous engineering principles, systematic design methods, and well-defined architectures that bridge the gap between machine learning and software engineering. Through disciplined development practices and lifecycle management strategies, it empowers professionals to design AI systems that are adaptable, trustworthy, and maintainable in real-world environments.
AI Systems in Healthcare (manuscript in preparation)
Healthcare systems are undergoing rapid transformation driven by advances in machine learning and artificial intelligence. From early disease detection to personalized treatment and population-level health management, AI is reshaping how medical data are analyzed, interpreted, and applied. Intelligent systems now play a central role in supporting clinicians, optimizing hospital operations, accelerating drug discovery, and enabling data-driven decision-making across the continuum of care. These developments require a systematic approach that integrates medical expertise, computational intelligence, and disciplined engineering practices to ensure accuracy, reliability, and ethical compliance in real-world healthcare environments.
An upcoming book, AI Systems in Healthcare: Foundations, Methods, Architectures, and Implementation, presents a rigorous framework for engineering intelligent healthcare systems that unify data-driven modeling, medical reasoning mechanisms, and scalable deployment infrastructures. It establishes systematic methods and architectural principles for designing, developing, and operating AI systems that are accurate, trustworthy, and aligned with clinical needs. Through structured methodologies and illustrative case studies, the book bridges the gap between artificial intelligence research and healthcare system engineering, guiding professionals in building dependable AI solutions for medical diagnosis, treatment planning, preventive medicine, drug discovery, public health management, and clinical decision support.
Meet Our Team
We are a team of researchers and practitioners with extensive R&D experience. Our team brings together two categories of experts: Computer Science experts and Application Domain experts.
Key members of the team include the following experts:
- Soo Dong Kim, Ph.D. (Software Architecture, Agentic AI Systems, AI in Healthcare)
Founder/CEO, PrimeAI Labs LLC, CA, USA
Emeritus Professor, School of Software, Soongsil University, Seoul, Korea - Jennifer Jin, Ph.D. (Software Engineering, Machine Learning)
Associate Professor, School of Computer Science and Engineering, California State University, San Bernadino, CA, USA - Mira Kim, Ph.D. (Software Engineering, AI Systems Design)
Assistant Professor, Department of Computer Science, California State University, Fullerton, CA, USA - Daniel Jin, M.D. (AI Systems for Medical Diagnosis)
Assistant Professor, Vascular & Interventional Radiology, Loma Linda University Medical Center, CA, USA - Myong Ho Song, Ph.D. (Software Engineering, Industrial AI Systems)
Project Manager, Division of Industrial AI, DeltaX Corporation, Seoul, Korea - And other contributors specializing in UX design, software development, quality assurance, and back-end engineering.
