توضیحاتی در مورد کتاب Downloaded Introduction to Software Architecture: Innovative Design using Clean Architecture and Model-Driven Engineering
نام کتاب : Downloaded Introduction to Software Architecture: Innovative Design using Clean Architecture and Model-Driven Engineering
عنوان ترجمه شده به فارسی : دانلود مقدمه ای بر معماری نرم افزار: طراحی نوآورانه با استفاده از معماری پاک و مهندسی مدل محور
سری : Undergraduate topics in computre science
نویسندگان : Kevin Lano, Sobhan Yassipour Tehrani
ناشر : Springer
سال نشر : 2023
تعداد صفحات : 264
ISBN (شابک) : 9783031441424 , 9783031441431
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 12 مگابایت
بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.
فهرست مطالب :
Preface
Acknowledgements
Contents
Chapter 1 Introduction to Software Architecture Concepts
1.1 What is software architecture?
1.1.1 Why is software architecture important?
1.1.2 The software architect role
1.1.3 Development methods and software architecture
1.1.4 Representing architectures
1.2 Key architectural concepts
1.2.1 Components
1.2.2 Connectors
1.2.3 Congurations
1.3 UML component diagram notation
1.3.1 Provided and required interfaces
1.3.2 Assembly connectors
1.4 Properties of components and architectures
1.4.1 Reusability
1.4.2 Substitutability
1.4.3 Sustainability
1.4.4 Maintainability
1.4.5 Extensibility
1.5 Quality of service (QoS) properties
1.6 Architectural design approaches
Summary
Further Reading
Exercises
Chapter 2 Introduction to Clean Architecture Concepts
2.1 Motivation for the clean architecture
2.2 The clean architecture: SOLID principles
2.2.1 SRP: Single responsibility principle
2.2.2 OCP: Open-closed principle
2.2.3 LSP: Liskov substitution principle
2.2.4 ISP: Interface segregation principle
2.2.5 DIP: Dependency inversion principle
2.2.6 Architecture design principles
2.3 Component boundaries
2.4 Technical debt at the architectural level
Further Reading
Exercises
Chapter 3 Development Methods
3.1 Model-driven engineering
3.2 Agile development and architectural design
3.2.1 Architectural refactoring
3.3 Derivation of architectures from requirements models
3.3.1 Three-tier architectures
3.3.2 Requirements models
3.3.3 Derivation of architectures from requirements
3.4 Analysis of clean architecture principles at the specification stage
3.5 Generation of architectures from specification models
Summary
Further Reading
Chapter 4 Compound Components and Complex Connectors
4.1 Composite components
4.2 Advanced connectors
Summary
Exercises
Chapter 5 Architectural Styles
5.1 Adapter architectural style
5.2 Pipes and filters architectural style
5.2.1 Pipes and filters example: Order processing system
5.3 Two-tiered (Client/Server) architectural style
5.4 N-tiered architectural style
5.4.1 Example N-tier architectures: enterprise and mobile systems
5.4.2 N-tiered style: advantages and disadvantages
5.5 Layered architectural style
5.6 Blackboard architectural style
5.6.1 Blackboard example: IDE
5.6.2 Blackboard example: Holiday reservation system
5.6.3 Blackboard example: Realtime cloud datastore
5.6.4 Advantages and disadvantages of the blackboard style
5.7 Model-View-Controller (MVC) architectural style
5.7.1 Model-View-Controller advantages and disadvantages
5.8 Heterogeneous styles
Summary
Exercises
Chapter 6 Mobile Application Architectures
6.1 Mobile applications
6.1.1 Similarities between mobile applications and enterprise systems (EIS)
6.1.2 Distinctive aspects of mobile applications
6.1.3 Mobile app example
6.2 Mobile architecture patterns
6.2.1 Model-View-Controller and alternative versions
6.2.2 Value Object/Data Transfer Object pattern
6.2.3 Model Facade/Session Facade pattern
6.2.4 Service Activator pattern
6.2.5 Data Access Object (DAO) pattern
6.3 The Android platform and applications
6.4 The iOS platform and applications
6.4.1 UIKit
6.4.2 SwiftUI
6.5 Comparison of iOS versus Android
6.6 Mobile app development approaches
6.7 Mobile backend as a service (MBaaS)
Summary
Further Reading
Exercises
Projects
Chapter 7 Enterprise Information Systems and Application Servers
7.1 Enterprise systems
7.1.1 Application servers
7.2 .NET enterprise services
7.3 Transactions service
7.4 Object pooling service
7.5 Just-in-time activation service
7.6 Loosely-coupled events service
7.7 Queued components service
7.8 COM+ services as basic enterprise styles
Summary
Exercises
Chapter 8 Web Application and Enterprise System Architectures
8.1 Enterprise system architectures
8.2 Java Enterprise Edition
8.2.1 Java EE Components: Servlets
8.2.2 Java EE Components: Java Server Pages (JSPs)
8.2.3 Java EE Components: Enterprise JavaBeans (EJBs)
8.3 Web application architectures
8.3.1 Client tier
8.3.2 Presentation tier
8.3.3 Business tier
8.3.4 Web application frameworks
8.4 View Helper style
8.5 Front Controller style
8.6 Intercepting Filter style
8.7 Composite View style
8.8 Session Facade style
8.9 Service Locator style
8.10 Extract-transform-load (ETL) style
8.11 Using multiple styles
Summary
Further Reading
Exercises
Projects
Chapter 9 Service-oriented Architectures
9.1 The cloud and cloud services
9.1.1 Infrastructure-as-a-Service (IaaS)
9.1.2 Platform-as-a-Service (PaaS)
9.1.3 Software-as-a-Service (SaaS)
9.1.4 Virtualisation servers
9.2 Service-oriented architecture (SOA)
9.3 Web services
9.3.1 SOAP web services
9.3.2 REST and RESTful web services
9.3.3 Web service patterns
9.4 Microservices
Summary
Exercises
Chapter 10 Safety-critical and Embedded Systems Architectures
10.1 Safety-critical systems
10.1.1 Technological risk
10.1.2 Fault tolerance versus fault avoidance
10.2 Fault tolerance
10.2.1 Static redundancy: Triple Modular Redundancy architecture
10.2.2 Dynamic redundancy: Standby spare architecture
10.2.3 Software fault tolerance
10.3 Safe states and safety shutdowns
10.4 Design approaches for SCS components
10.4.1 Programming languages for SCS
10.5 Embedded system architectures
10.6 Reactive control systems
10.7 Examples of SCS architectures
10.8 Software safety standards
Summary
Further Reading
Exercises
Chapter 11 Architectural Design for Machine Learning Systems
11.1 Machine learning (ML)
11.1.1 Machine learning techniques
11.1.2 ML system construction and operation
11.2 Machine learning example: requirements classification
11.3 Machine learning systems architectural issues
11.3.1 Language-specific issues: Python
11.4 Trustworthiness of ML systems
Summary
Exercises
Chapter 12 Software Architectures and Re-engineering
12.1 Legacy software systems
12.2 Challenges of legacy code abstraction
12.2.1 BASIC and variants
12.2.2 COBOL
12.3 Program abstraction using ANTLR and CST L
12.3.1 VB6/VBA
12.3.2 Cobol85
12.4 Quality analysis and restructuring
12.4.1 Quality analysis
12.4.2 Restructuring
12.4.3 Rearchitecting
12.5 Code synthesis and test case generation
12.6 Re-engineering examples
12.6.1 VB6/VBA re-engineering
12.6.2 Cobol85 re-engineering
Summary
Exercises
Summary and Conclusions
References
Appendix A User guide for architecture diagram tool
Appendix B User guide for AgileUML
Index