Pattern-Oriented Software Architecture For Dummies
eBook - ePub

Pattern-Oriented Software Architecture For Dummies

Robert S. Hanmer

Share book
  1. English
  2. ePUB (mobile friendly)
  3. Available on iOS & Android
eBook - ePub

Pattern-Oriented Software Architecture For Dummies

Robert S. Hanmer

Book details
Book preview
Table of contents
Citations

About This Book

Implement programming best practices from the ground up

Imagine how much easier it would be to solve a programming problem, if you had access to the best practices from all the top experts in the field, and you could follow the best design patterns that have evolved through the years. Well, now you can. This unique book offers development solutions ranging from high-level architectural patterns, to design patterns that apply to specific problems encountered after the overall structure has been designed, to idioms in specific programming languages--all in one, accessible, guide. Not only will you improve your understanding of software design, you'll also improve the programs you create and successfully take your development ideas to the next level.

  • Pulls together the best design patterns and best practices for software design into one accessible guide to help you improve your programming projects
  • Helps you avoid re-creating the wheel and also meet the ever-increasing pace of rev cycles, as well as the ever-increasing number of new platforms and technologies for mobile, web, and enterprise computing
  • Fills a gap in the entry-level POSA market, as well as a need for guidance in implementing best practices from the ground up

Save time and avoid headaches with your software development projects with Pattern-Oriented Software Architecture For Dummies.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Pattern-Oriented Software Architecture For Dummies an online PDF/ePUB?
Yes, you can access Pattern-Oriented Software Architecture For Dummies by Robert S. Hanmer in PDF and/or ePUB format, as well as other popular books in Informatik & Objektorientierte Programmierung. We have over one million books available in our catalogue for you to explore.

Information

Publisher
For Dummies
Year
2012
ISBN
9781119966319
Part I
Introducing Software Architecture and Patterns
9781119963998-pp0101.eps
In this part . . .
The first part of this book introduces the underlying concepts to get you ready to use the patterns described later. I begin by giving you some background on software architecture and then discuss the basics of software patterns.
Chapter 1
Software Architecture Basics
In This Chapter
arrow
Understanding the basics of software architecture
arrow
Finding the problem
arrow
Identifying requirements
arrow
Considering your software development style
The term software architecture means different things to different people. To the developer, it means the structure of the system being built. To the framework developer, it’s the shape of the system that is created with the framework. To the tester, it’s the shape of what needs to be tested. For all concerned, it’s the high-level structure of the solution to a problem that the customer or client wants solved.
In this chapter, I explain the basics of software architecture — what it is and how you get started. Knowing the problem that you’re solving and the important requirements of the system are also very important, and I help you get going with these tasks in this chapter. In Chapter 4, I explain how software patterns fit into the picture.
Understanding Software Architecture
Every system has an architecture — some high-level structure that underlies the whole system. Software architecture is how the pieces fit together to build the solution to some business or technical need that your customer or client wants solved. The architecture has a purpose.
The decisions made during the creation of the architecture are truly fundamental to the system because they set the stage for all the other decisions that will come later.
Some systems’ architectures are best described as a Big Ball of Mud (see Chapter 2). These systems are hard to build and hard to maintain, and they may not meet the customer’s needs. Tackling the development of a software system with good software architecture will lead to a more successful result.
remember.eps
To an unsophisticated customer or client, software architecture is a meaningless term, so don’t get hung up trying to explain how wonderful your architecture is. The customer wants the finished product that solves the problem at hand, not a description of the software that you’ll build to solve it. (For more information on explaining software architecture to others, see Chapter 3.)
Components of software architecture
The software architecture provides the high-level view of the system you’re building and must cover the following aspects:
check.png
Goals and philosophy of the system: The architecture explains the goals and describes the purpose of the system, as well as who uses it and what problem it solves.
check.png
Architectural assumptions and dependencies: The architecture explains the assumption made about the environment and about the system itself. The architecture also explains any dependencies on other systems or on the builders of the system.
check.png
Architecturally significant requirements: The architecture points to the most significant requirements that shaped it.
check.png
Packaging instructions for subsystems and components: The architecture explains how the parts of the system are deployed on computing platforms and how the parts must be combined for proper functioning. The subsystems and components are the building blocks of the architecture.
check.png
Critical subsystems and layers: The architecture explains the different views and parts of the system and how they relate. It also explains the most critical subsystems in detail.
check.png
References to architecturally significant design elements: The architecture describes the most prominent and significant parts of the design.
check.png
Critical system interfaces: The architecture describes the interfaces of the system, with special attention to the interfaces that are critical to meet the system’s requirements.
check.png
Key scenarios that describe critical behavior of the system: The architecture explains the most important scenarios that illustrate and explain how the system will be used.
Architecture document
All the components in the preceding section go into an architecture document, which contains the information needed to interpret the architecture. The document includes assumptions, key decisions that shaped the architecture, how the parts of the architecture work together, and how the system will be packaged. I tell you more about the architecture document in Chapter 3.
Architecture models (views)
The software architecture has several audiences, including fellow architects, programmers, configuration managers, testers, and customers. All are interested in different information, and all look for different things within the architecture. To make your architecture useful to all these audiences, divide the architectural description into ...

Table of contents