Computer Science 684 - Spring 2012

MidTerm Exam (Take-Home)

Due: Tuesday, March 27, 2012

 

 

1.    It is clear that the business goals of an organization influence the architecture of any system under development, but our authors also claim that an architecture can, in turn, influence the organization’s business goals.  Explain this claim and give (hypothetical) examples.

 

2.    What is meant by the software architecture of a system and why is it important?  The authors of our textbook offer one definition of software architecture and explain several other definitions.  Do you accept the Bass, Clements, and Kazman definition or do you feel another is better (possibly one not even mentioned in the textbook)?  Defend your answer.  Since many systems (if not most) are developed without formally defining the software architecture up front, is the software architecting step just an unnecessary waste of time?  After all, every software system has an architecture, whether it was designed or not.  Explain why developing an architecture for a proposed software system is an important activity (unless, of course, you feel it is not – in which case defend your position).

 

3.    Give three examples of systems in which important quality requirements conflict, that is, achieving one makes it harder to achieve the other.  Be specific regarding the quality requirements, and explain clearly why they are in conflict?

 

4.    Consider the CSUN system (SOLAR) for course registration, access to student data, and other features.  Identify one availability, one security, and one usability requirement that you think is necessary for that system and develop concrete scenarios for each of them.  The quality requirements you identify do not necessarily have to reflect the system as it exists, but rather, might reflect the system as it should be.

 

5.    Identify the tactics you should consider in designing an architecture for meeting all of the quality scenarios you developed in question 4?  Be sure to identify all applicable tactics for each scenario even if one tactic might suggest a different architectural approach than another.  Then explain how the tactics you identify will help achieve that requirement, and in cases where there are competing tactical approaches, discuss their relative advantages and disadvantages.