Case Study

profiledloand
Casestudy.docx

Week 2 Assignment - Case Study: Introduction to Software Architecture

Introduction

Read the following case studies in the article, Introduction to Software Architecture [PDF], and complete this case study assignment.

· 4.1 Case Study 1: Key Word in Context.

· 4.2 Case Study 2: Instrumentation Software.

· 4.3 Case 3: A fresh View of Compilers.

The article is an overview of the topic of software architecture and contains several brief case studies in Chapter 4. Each case study offers its own attributes in regard to the approach of software architecture that the author is addressing and when read together it allows for compressions to be made.

Instructions 

Write a 5–6 page paper that:

1. Identify both the similarities and the challenges that the architects faced in each of the cases.

2. Compare and contrast each architectural solution and determine which solution provided the optimal results in the first case study, Key World in Context. Justify your answer.

3. Compare and contrast the differences in architecting systems that are specific to a particular domain versus systems that are far less domain-specific. 

4. Explain how developing domain-specific software affects the planning and testing phases of the software development life cycle.

5. Given the flow of process involved with compiling code, select another application that is not related to compiling or intercepting code that could borrow from either architecture of compilers presented in the third case. Justify your selection.

6. Explain how architecting systems provide a means to deliver a product that was in line with the requirements based on the information you gathered from the three cases. 

This course requires the use of Strayer Writing Standards. For assistance and information, please refer to the Strayer Writing Standards link in the left-hand menu of your course. Check with your professor for any additional instructions.

The specific course learning outcome associated with this assignment is:

· Examine the different methods and processes a software program architect uses to combat challenges they face.