May 1, 2014
There are many methods for the development of application architecture and the approach at which to take for this meticulously thought out process depends on the analysis of the information gathered from the company during the initial phase of the system development lifecycle. Application architecture is defining structured solutions that conform to the specifications of the company’s goals as defined during the planning phase, not to discount common quality attributes such as manageability, security, and performance. The derivative of the true definition of this breed of technological architecture was refined by Rich Reitman, Kurt Bittner, Grady Booch, and Phillipe Kruchten.
They based their definition on the work of Mary Shaw and David Garlan stated (Shaw and Garlan 1996):
Software architecture encompasses the set of significant decisions about the organization of a software system including:
Selection of the structural elements and their interfaces by which the system is composed.
Behavior as specified in collaboration among those elements.
Composition of these structural and behavioral elements into larger subsystems.
Architectural style that guides this organization.
Thus, software architecture is a symphony of carefully crafted plans for modular elements to work together in order to achieve a higher degree of efficiency. The Baseline and Candidate architectures are the most fitting approach for Riordan Manufacturing’s situation. The current system for the human resources department at Riordan are already utilizing modular systems but these systems are detached and do not communicate with each other causing a significant lack in potential productivity. Baseline architecture describes the system in place as it exists today and uses it as a baseline. Because a new architecture is being developed this baseline serves as the first high-level design utilized in building the candidate architecture. Candidate architecture involves developing structures for the application type, technology choices, deployment architecture, style, attributes, and cross-cutting concerns. The recommendations for obtaining a high-level of security include high-level design audits should be carried out frequently to identify the path of information in the application environment and develop countermeasures to reduce risk. The program EverCrack should be used regularly for cryptanalysis to find vulnerabilities in the system and secure encrypted information. User group access to maintain control of who has access to what information along with testing communication behavior, identifying fault-injection points, identifying the application’s client-side behavior, interpreting file formats, and frequent source code reviews among other security measures. Riordan is in need of a high