CS 319 -
Object-Oriented Software Engineering

Instructor:
Dr. Bedir Tekinerdoğan

Midterm Exam Guidelines

The midterm exam covers the topics of chapter 1 to chapter 5 of the textbook.

You should be able to answer, among others, the following questions:

General Process - Engineering

  • What is engineering?

  • What is software engineering?

  • What are key principles in software engineering?

  • What is a stakeholder?

  • Why are stakeholders important?

  • What is a workproduct, activity, task, resource?

  • What is modeling, what is a model?

  • What is UML?

  • What was the situation before UML wrt (a) modeling languages (b) tool support?

  • What is a software life cycle?

  • What are the key activities in software development (according to textbook)

  • What are the relations among these activities?

  • What are the deliverables for each activity?

  • What are the relationships among the deliverables?

Requirements Analysis

  • What is application domain?

  • What is solution domain?

  • Which activities analyze and model the application domain?

  • Which activities analyze and model the solution domain?

  • What is requirements analysis? What is its goal?

  • What are the steps in requirements analysis?

  • What is a problem statement? Who defines the problem statement?

  • What are the deliverables of a requirements analysis activity?

  • What are functional requirements?

  • What are non-functional requirements?

  • What are constraints (pseudo-requirements)?

  • Can you give examples of functional, nonfunctional, pseudo requirements?

  • What are domain requirements?

  • What are the requirements elicitation practices?

  • What are textual requirements?

  • What is a scenario?

  • What are the types of scenarios?

  • How to derive scenarios?

  • What is requirements validation? Why is it important?

  • What is a Software Requirements Specification (SRS) document?

  • What are the characteristics of a good SRS?

  • What is a use case?

  • What is an actor?

  • How to identify/find use cases? How to find actors?

  • What is the relation between an actor in a use case model and stakeholder?

  • What is the relation between an actor and a physical entity?

  • What is a use case model?

  • What is a use case diagram?

  • How to represent use case model textually?

  • What do we do with stakeholders of the system who are not assigned as actors in the use case model?

  • Can we represent non-functional requirements in a use case model? If not, how to represent these functional-requirements?

  • What are use case associations?

  • What are the <<include>>, <<extend>>, generalization relations? When and how to apply these?

  • What is a template for a use case model?

Analysis - Object Modeling

  • What is the role of the Analysis activity?

  • What are the sub-activities, what are the relations?

  • What are the deliverables, what are the relations?

  • What is a static model?

  • What is a dynamic model?

  • What is an object?

  • What is a class?

  • What is an abstraction?

  • What are the key abstractions in structured software development and object-oriented software development?

  • What is concept? What is phenomenon? What are the relations to class and object?

  • How to model classes?

  • How to model objects?

  • What is a class diagram?

  • Why does OO lower ‘representational gap’ with real world concepts?

  • What is an association relation? How to model this?

  • What is aggregation relation? How to model this? What is the special composition relation?

  • What is association relation? How to model this?

  • What is generalization relation? How to model this?

  • What is an abstract class? What is a concrete class? How to model these?

  • What is realization relation? How to model this?

  • What is an association class? When to use this?

  • How to implement an association, aggregation, generalization relation?

  • What are class identification approaches? Can you compare these?

  • What is domain analysis, domain modeling?

  • How to identify classes from use case model?

  • How to identify classes from domain analysis?

  • What is the role of the analyst?

Analysis - Dynamic Modeling

  • What are the steps in dynamic modeling?

  • What are the artefacts in dynamic modeling? How do they relate to each other, and to artefacts in requirements analysis?

  • What is a sequence diagram?

  • How to represent objects in sequence diagram?

  • What is an actor, message, activiation, lifeline in a sequence diagram? How to represent these?

  • What is a synchronous message? What is an asynchronous message? How to represent these in sequence diagram?

  • How to represent condition in sequence diagram?

  • How to represent iteration in sequence diagram?

  • How to represent creation and destruction in sequence diagram?

  • How to implement a sequence diagram?

  • What is a collaboration diagram? What is the relation with sequence diagram? How to model it?

  • What is a state diagram? How to model it?

  • What are different types of states (initial, final, nested, etc). ?

  • What are states, events, transitions in a state diagram?

  • How to identify objects from sequence diagram?

  • What is an activity diagram? How to model it?

  • What are CRC cards?

  • When are they used?

  • How are they used?