Introduction To Software Architecture. Usaace. Ncoa. Ssg
1220 WordsMar 30, 20175 Pages
INTRODUCTION TO SOFTWARE ARCHITECTURE
SSG Guy A. Johnson
17-003 The world is becoming more and more dependent on software systems. It is difficult to find any organization today that is not reliant or dependent on complex software systems in order to function. Software systems are comprised of many components and have become increasingly complex over time. As the complexity of the software systems grew, it has introduced new design problems and challenges. Many organizations adopted software architecture to resolve those challenges and problems and to build solid and reliable systems needed by organizations today. The comparison between traditional (civil) architecture and software design began in…show more content…
It attempts to achieve the right balance between these competing interests. In order to find a balance, four key areas must be addressed. They include:
1. The business. The company’s mission, values, philosophy, strategy, and activities.
2. Processes and existing computer systems. How workers accomplish their work and the software systems they are currently using.
3. Project constraints. What the business wants the software to do, hardware/software that already has capital investment and is already in use, timeline, and budget.
4. Technology Suitability, cost, and compatibility with existing systems
Often times these four areas have competing and conflicting interests. A proper software architecture is one that can provide the best solution that can satisfy the conflicting interests. Software architecture identifies a solution that meets the functional requirements (describes what the software should do) as well as quality attributes the software must support. Quality attributes define things about the behavior of the software, like how many users need to access the system at one time or when the system must be available to the users. In today’s world, most organizations in every industry perform some level of software development. The reason they develop software varies, but often times it is that they cannot buy software that meet their needs or that