Computer Science 684 - Spring 2012
MidTerm Exam (Take-Home)
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.