CS 411:
Software
Architecture
Design

Bilkent University

Description
Study Material
Schedule
Grading
Projects
Related Links
Miscellaneous
Exam Guidelines

Bilsen Logo

Instructor:
Dr. Bedir Tekinerdoğan
bedir@cs.bilkent.edu.tr

Exam Guidelines

The course includes a mid-term exam and final exam. Both exams will assess your knowledge and skills that you have learned from the study material, the course slides and the mid-term and final project experiences. The exams will be open book; you can bring your slide notes and textbook with you.
Rather than assessment of simple factual knowledge the exam will be heavily focused on your knowledge on application of these concepts and critical evaluation using this knowledge.

The following list represents a set of questions that you should be able to answer appropriately:

  • What is a software architecture?

  • Why do we need a software architecture?

  • How to model software architecture in UML?

  • What are the limitations of the different architecture design modeling techniques (packages, stereotypes, specific models)?

  • What are architecture description languages?

  • What are the advantages/disadvantages of architecture description languages?

  • What are the different software architecture design approaches? 

  • What are the obstacles of each of the architecture design approaches?

  • What are the different requirements analysis techniques for architecture design?

  • What is a prototype? What are the two different uses of a prototype?

  • What is a stakeholder? What is their impact on the software architecture design? What are the problems of multiple stakeholders for architecture design?

  • What is domain analysis?

  • What are the different interpretations of the concept of domain in the literature?

  • Why is domain analysis crucial for software architecture design?

  • What are the different sub-processes in domain analysis?

  • What are the obstacles of uncontrolled domain analysis?

  • What is a knowledge source?

  • How to evaluate knowledge sources? What is abstraction quality?

  • What is the relation between the concepts domain, knowledge source, concept?

  • What is a domain lexicon? Why is it important?

  • What is a conceptual/domain model?

  • What is domain scoping? Why is it important?

  • What is feature-oriented domain modeling? How to use it?

  • What is the synthesis-based software architecture design approach (Synbad)?

  • Why are client requirements/use cases not a solid basis for architecture design abstractions?

  • What  is the role of technical problem analysis in Synbad?

  • What is the role of taxonomies of knowledge domains?

  • What should be done if domain knowledge is lacking?

  • What is the relation between technical problem, solution domain, and concept?

  • Why do we need to iterate between technical problem analysis and domain analysis?

  • What is top-down and bottom-up synthesis process?

  • What is a feature diagram?

  • What is alternative space analysis process in Synbad?

  • What are the sources of alternatives?

  • What are the requirements for a proper alternative management?

  • How to map architecture to object-model?

  • What is the impact of adaptability requirements on object-oriented design?

  • What is an architectural view? Why do we need it?

  • What is the 4+1 view model?

  • What is the Views and Beyond Approach (V&B approach)?

  • How to map conceptual architecture (domain model) to architectural view?

  • What is the difference between a view, viewpoint and style?

  • What is the relation among V&B and the 4+1 view model?

  • What is the relation between stakeholders and views?

  • What is the IEEE 1471 Standard?

  • What is a module viewpoint?

  • What is a component-and-connector viewpoint?

  • What is an allocation viewpoint?

  • How do the views in the viewpoint approaches related to each other?

  • What is a recovery style? Why do we need it?

  • What is Layering? What are the constraints of its usage?

  • How to document an architecture?

  • How to model dynamic behavior of architecture?

  • What is an architectural pattern? Why do we need it?

  • When should we apply an architectural pattern?

  • How to compose architectural patterns?

  • What is the Layers Pattern? How to apply it?

  • What is the MVC Pattern? How to apply it?

  • What is the Pipes and Filters Pattern? How to apply it?

  • What is the Blackboard Pattern? How to apply it?

  • What is the Proxy Pattern? How to apply it?

  • What is the Broker Pattern? How to apply it?

  • What are the risks in an architecture design process?

  • When should we evaluate architecture?

  • Why do we need to evaluate architecture?

  • What are the existing architecture evaluation approaches?

  • What is an architectural scenario? What are scenario types?

  • What are scenario-based evaluation approaches?

  • How to extract architectural scenarios?

  • What is a scenario interaction? What are good/bad scenario interactions?

  • What is cohesion and coupling?

  • What is SAAM?

  • What are the benefits and limitations of SAAM?

  • What is a quality attribute? What is a quality attribute model? Why are these important for architectural evaluation?

  • What is a quality attribute scenario?

  • What is a risk, non-risk, sensitivity point, trade-off point? What are the relations among these?

  • What are business quality attributes?

  • What is a quality attribute utility tree?

  • What are the costs and benefits of an architecture evaluation approach?