ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Patterns in the Machine: A Software Engineering Guide to Embedded Development

دانلود کتاب الگوها در ماشین: راهنمای مهندسی نرم افزار برای توسعه تعبیه شده

Patterns in the Machine: A Software Engineering Guide to Embedded Development

مشخصات کتاب

Patterns in the Machine: A Software Engineering Guide to Embedded Development

ویرایش: 1 
نویسندگان:   
سری:  
ISBN (شابک) : 1484264398, 9781484264393 
ناشر: Apress 
سال نشر: 2021 
تعداد صفحات: 300 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 5 مگابایت 

قیمت کتاب (تومان) : 34,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 8


در صورت تبدیل فایل کتاب Patterns in the Machine: A Software Engineering Guide to Embedded Development به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب الگوها در ماشین: راهنمای مهندسی نرم افزار برای توسعه تعبیه شده نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب الگوها در ماشین: راهنمای مهندسی نرم افزار برای توسعه تعبیه شده



با نحوه اعمال الگوهای مهندسی نرم‌افزار برای توسعه میان‌افزار قوی‌تر سریع‌تر از رویکردهای توسعه تعبیه‌شده سنتی آشنا شوید. در تجربه نویسندگان، پروژه‌های نرم‌افزاری تعبیه‌شده سنتی به برنامه‌های یکپارچه تمایل دارند که برای پلتفرم‌های سخت‌افزاری مورد نظرشان بهینه شده‌اند. این منجر به نرم افزاری می شود که از نظر توسعه پذیری شکننده است و بدون نرم افزار و سخت افزار کاملاً یکپارچه تست آن دشوار است. Patterns in the Machine بر ایجاد پیاده‌سازی‌هایی با جفت آزاد که هم تغییر و هم آزمایش‌پذیری را در بر می‌گیرد، تمرکز دارد.

این کتاب نحوه اجرای یکپارچه‌سازی مداوم، آزمایش واحد خودکار، کد مستقل از پلتفرم و موارد دیگر را نشان می‌دهد. بهترین روش‌هایی که معمولاً در دنیای سیستم‌های تعبیه‌شده اجرا نمی‌شوند، نه تنها امکان‌پذیر هستند، بلکه برای پروژه‌های تعبیه‌شده امروزی نیز عملی هستند.

پس از خواندن این کتاب، ایده بهتری درباره نحوه ساختار پروژه‌های نرم‌افزاری تعبیه‌شده خود خواهید داشت. . متوجه می‌شوید که در حالی که نوشتن تست‌های واحد، ایجاد شبیه‌سازها، و پیاده‌سازی یکپارچه‌سازی مداوم مستلزم زمان و تلاش است، در پایان پروژه از نظر کیفیت، سازگاری و قابلیت نگهداری کدتان پاداش زیادی خواهید گرفت.

آنچه یاد خواهید گرفت

  • ادغام تست واحد خودکار در یک پروژه تعبیه شده
  • طراحی و ساخت شبیه سازهای کاربردی برای پروژه تعبیه شده
  • نوشتن نرم افزار با کیفیت تولید زمانی که سخت افزار در دسترس نیست
  • از الگوی معماری Data Model برای ایجاد طراحی و پیاده سازی بسیار جدا از هم استفاده کنید
  • درک اهمیت تعریف معماری نرم‌افزار قبل از شروع پیاده‌سازی و نحوه انجام آن
  • پیدا کنید که چرا اسناد برای یک پروژه جاسازی شده ضروری است
  • استفاده از ماشین‌های حالت محدود در پروژه‌های تعبیه‌شده

این کتاب برای چه کسی است

توسعه دهندگان سیستم های تعبیه شده (سیستم افزار) سطح متوسط ​​یا بالاتر، سرنخ های فنی، معماران نرم افزار، و مدیران توسعه.

توضیحاتی درمورد کتاب به خارجی

Discover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors’ experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability.

This book illustrates how implementing continuous integration, automated unit testing, platform-independent code, and other best practices that are not typically implemented in the embedded systems world is not just feasible but also practical for today’s embedded projects.

After reading this book, you will have a better idea of how to structure your embedded software projects. You will recognize that while writing unit tests, creating simulators, and implementing continuous integration requires time and effort up front, you will be amply rewarded at the end of the project in terms of quality, adaptability, and maintainability of your code. 

What You Will Learn

  • Incorporate automated unit testing into an embedded project
  • Design and build functional simulators for an embedded project
  • Write production-quality software when hardware is not available
  • Use the Data Model architectural pattern to create a highly decoupled design and implementation
  • Understand the importance of defining the software architecture before implementation starts and how to do it
  • Discover why documentation is essential for an embedded project
  • Use finite state machines in embedded projects

Who This Book Is For

Mid-level or higher embedded systems (firmware) developers, technical leads, software architects, and development managers.


فهرست مطالب

Table of Contents
About the Authors
About the Technical Reviewer
Acknowledgments
Preface
Chapter 1: Introduction
	Patterns in the Machine
	What Is Software Engineering?
	Software Engineering Best Practices
	What PIM Is Not
	What You’ll Need to Know
Chapter 2: Core Concepts
	Software Architecture
	Automated Unit Testing
	Functional Simulator
	Continuous Integration
	Data Model
	Finite State Machines
	Documentation
Chapter 3: Design Theory for Embedded Programming
	SOLID
		Single Responsibility Principle
		Open-Closed Principle
			Using ifndef
			Using Model Points
			Using Abstract Interfaces
			OCP Flexibility
		Liskov Substitution Principle
		Interface Segregation Principle
		Dependency Inversion Principle
	Binding Time
		Source Time Binding
		Compile Time Binding
		Link Time Binding
		A SOLID Conclusion
Chapter 4: Persistent Storage Detailed Design Example
	Persistent Storage Example
		Software Requirements
		High-Level Design
		A Monolithic Detailed Design
		A PIM-Informed Detailed Design
		Benefits of the PIM Design
		Expanded Layering
	Example PIM Thermostat Application
		High-Level Design
		Detailed Design
			The PIM-ness in the Design
	The PIM Dilemma
Chapter 5: Software Architecture
	About the Software Architect
	About Software Architecture Documents
		Major Sub-systems
		Major Interface Semantics
		Threading and Processor Model
		Communications Mechanisms
		Memory Strategy or Rules
		Performance Requirements and Constraints
		Hardware Interfaces
		Operating System
		Third-Party Software
		Functional Simulator
		File Organization
		Localization and Internationalization
		Conventions
		Unit Test Strategy
		Build System
	Creating “Real” Architecture Documents
Chapter 6: Unit Testing
	What Is a Unit Test?
		Source Directories and Unit Tests
		Manual Unit Tests
		Automated Unit Tests
		Code Coverage Metrics
	About Testing Frameworks
	Continuous Integration
	Tips for Unit Testing
		Minimize Dependencies
		Use Abstract Interfaces
		Use the Data Model Pattern
		Test Early
		Develop and Test Incrementally
	The Dark Side of Unit Testing
	Unit Testing vs. Integration Testing vs. System Testing
Chapter 7: Functional Simulator
	Operating System Abstraction Layer
	Hardware Abstraction Layer
	Main Pattern
	Simulated Time
		How to Implement Simulated Time
	Platform Boundaries
		Mocked Simulation
		Simulated Devices
		Emulated Devices
	Simulated Use Cases
		A Simulated LCD
		An Algorithm with Simulated Time
		A Model Simulator with Simulated Time
		A Communication Channel
	The Functional Simulator for the Thermostat Example
Chapter 8: Continuous Integration
	Implementing Continuous Integration
	Continuous Integration and PIM
	About the Build Machine
		Maximizing Build Machine Performance
	About Software Configuration Management
		Implementing Branching Strategies
	About Formal Builds
	About the Build Automation Tool
	About Build Scripts
Chapter 9: The Data Model Architecture
	Additional Model Point Features
	Model Points vs. Global Variables
Chapter 10: Finite State Machines
	Example of a Thermostat FSM
	State Tables
	Design vs. Implementation
	Code Generation Is a Good Thing
	Tips, Hints, and Suggestions
Chapter 11: Documentation
	Documenting Header Files
	Document First, Then Implement
	Documenting Your Development Process
	Document Your Software Architecture and Design
	Document Your Team’s Best Practices
Chapter 12: File Organization and Naming
	Organizing Files by Namespace
	Organizing External Packages
	Naming
		Naming Recommendations for C++
		Naming Recommendations for C
Chapter 13: More About Late Binding
	LHeader
		Implementation Example
			Caveat Implementor
	LConfig
Chapter 14: Initialization and the Main Pattern
	Staged Initialization
		About Open/Close with Inter-thread Communication
	Main Pattern
		Main Minor
		Main Major
Chapter 15: More Best Practices
	Avoid Dynamic Memory Allocation
	Documenting Header Files
	Interfaces and More Interfaces
		Compile Time Binding
		Link Time Binding
		C++ Pure Virtual and Virtual Constructs
	Data Model
	Build System
Chapter 16: PIM Thermostat Example
	Features and Requirements
	Target Hardware
	Installation and Setup
		Linux Setup
		Windows Setup
	Building
		Building on Linux with the GCC Compiler
		Building on Windows with the Visual Studio Compiler
		Build Directory Naming Conventions
		PIM Thermostat Application Usage
			Running on the Target Hardware
			Functional Simulator
			Command-Line Interface (CLI)
			CLI—Basic Help
			CLI—Running Cooling
			Documentation
	About NQBP
		Installing NQBP
		NQBP Usage
		NQBP Build Model
		NQBP Object Files vs. Libraries
		NQBP Build Variants
		NQBP Build Scripts
		Selecting What to Build with NQBP
		NQBP Extras
	Colony.core
	Colony.Apps
	Colony.Arduino
	RATT
Chapter 17: The Tao of Development
	John’s Rules of Development
	Wayne’s Rules of Development
Appendix A:
Terminology
Appendix B:
State Machine Notation
Appendix C:
A UML Cheat Sheet
Appendix D:
Why C++
Appendix E:
About Package Management with Outcast
	Outcast
	Outcast Model
Appendix F:
Requirements vs. Design Statements
Index




نظرات کاربران