Articles tagged with: Design
Architecture »
In any significant software project, complexity happens. The question is what are you going to do about it? In Software Architect Bootcamp (2nd Edition), Ralphael Malveau and Thomas J. Mowbray, Ph.D. write about five ways of dealing with software complexity.
Why Complexity Happens
Malveau and Mowbray write the following:
Many software projects fail to manage complexity because they do not consider control of complexity to be part of architecture. System-level design details are often delegated to multiple developers, who readily produce unique, uncoordinated designs. Other projects inherit excess complexity from the architecture of …
Architecture »
When you zoom in or zoom out of a software system, what do you call the different levels of the software? Design levels are a key issue for architecture because they define the problems and forces that the architecture needs to solve. In Software Architect Bootcamp (2nd Edition), Ralphael Malveau and Thomas J. Mowbray, Ph.D. write about different models for software design levels.
Machine, Code and Architecture
Shaw and Garlan [Shaw 1996] proposed a three-level model for software design levels:
Machine
Code
Architecture
Malveau and Mowbray write the following:
The machine level comprises unmodifiable binary software, …
Security »
Having a frame of reference for how to think about security helps you cut through information overload. While working on our patterns & practices Improving Web Application Security: Threats and Countermeasures book, one of our favorite mantras was “Secure your network, host and application!” We learned this by talking to our infrastructure group at Microsoft. The main security problem was the issues that fall through the cracks. The holistic approach is to secure the network, host and application. The host included runtime services and components, platform services and components, and …
Modeling »
How can you quickly determine whether a recommendation or technique is relevant to your context? You can use context-precision. Context precision is simply a set of categories that help clarify the context. I use context-precision both for creating more relevant guidance and for evaluating the relevancy of guidance.
Example
Here’s an example figure I draw on a whiteboard or use in slides when I need to show context-precision.
Categories for Context
Here’s an example set of categories:
Application Type: Web application, Web service, component/library, desktop application, mobile application
Deployment Scenario: Intranet, Extranet, Internet.
Project Type: In …