As the software infrastructure get more complex with pieces of applications running on server, mobile or cloud locations, the discipline of software architecture is more important than ever. The Agile approach has done its part to bring the software architects down from an ivory tower, but some developers have also started to believe that you didn’t have to think about software architecture anymore. This is a big mistake.
Here are nine articles on software architecture published last year that can help you understand the current trends in software architecture: Agile, Cloud, SOA, API… and even a little bit of UML.
* Architecting for Large Scale Agile Software Development: A Risk-Driven Approach (PDF)
Focusing on two agile architecting methods that provide rapid feedback on the state of agile team support: architecture-centric risk factors for adoption of agile development at scale and incremental architecture evaluations.
* SOA Maturity
In this article, we present and explore the fundamentals of applying the factory approach to modern service-oriented software development in an attempt to marry SOA industrialization with service contracts. As service developers and designers, how can we successfully fulfill factory requirements and achieve the essential characteristic of industrialized SOA while remaining compliant with standards on the service contract level?
Software architectures diagrams (Source: Simple Sketches for Diagramming your Software Architecture)
* Strategies for Real-Time System Specification: Creating the System Architecture Model
This article explains how to use the architecture model to map the enhanced requirements model allocations to architecture modules.
* IOC Containers and MVVM
In recent years, dependency injection (DI) and inversion of control (IOC) have gained popularity as means for creating and retrieving instances of classes in applications and libraries. This article examines these mechanisms, using MVVM Light’s SimpleIoc to illustrate the usefulness of implementing an IOC container in MVVM-based applications.
* How Value-Stream-Oriented Architecture Can Help You Create Better Software
Organizing software architecture around real customer problems and focusing on enabling one value stream at a time enables an architect to greatly improve his effectiveness. Reluctant software architect Max Guernsey shows you how to design a solution that applies lean thinking principles and creates an elegant, reusable answer to whatever assignment you and your team have been tasked with solving.
* Supply cloud-level data scalability with NoSQL databases
Relatively low-cost, high-performance NoSQL (Not Only SQL) databases contain some features that are useful when it comes to data scalability: Horizontal scalability, support for weaker consistency models, more flexible schemas and data models, and support for simple low-level query interfaces. This article explores NoSQL databases, including an overview of the capabilities and features of NoSQL systems HBase, MongoDB, SimpleDB. It also covers cloud and NoSQL database design basics.
* API Business Models: 20 Models in 20 Minutes
In this keynote from the 2013 API Strategy Conference, John Musser, founder of ProgrammableWeb, reviews the API business models that have been adopted by the worlds leading technology companies.
* Simple Sketches for Diagramming your Software Architecture
As an industry, we’ve become pretty adept at visualising our software development process over the past few years although it seems we’ve forgotten how to visualise the actual software that we’re building. I’m not just referring to post-project documentation, this also includes communication during the software development process. Agile approaches talk about moving fast, and this requires good communication, but it’s surprising that many teams struggle to effectively communicate the design of their software.
* Best Practices to Integrate Software Architecture Needs in A Scrum Project
Modern Agile software development approaches like Scrum recommend a “just in time” vision of application development that tends to make people focus only on the activities that are directly useful for the current sprint. How can you include an activity with a long-term perspective like enterprise software architecture in the iterative process of Scrum?