Courses:

Laboratory in Software Engineering >> Content Detail



Exams



Exams

The quiz will be a closed-book quiz. Here is a list of topics that have been covered this term that may appear in the quiz. You won't be tested on obscure details of JavaTM.



Basic Programming Notions


  • Assignment Semantics, Aliasing and Sharing
  • Class Hierarchy, Dynamic Dispatch, Inheritance
  • Subclasses and Interfaces
  • Exceptions, Checked and Unchecked
  • Namespace and Access Control Mechanisms
  • Static Variables and Methods
  • Constructors; References to this and super Object
  • Hash Tables and Hash Codes
  • Casts and Runtime Type Checks
  • Overloading of Method Names
  • Runtime Assertions
  • Subtyping in JavaTM
  • Deep vs. Shallow Copying
  • Reference vs. Value Equality
  • Parametric Polymorphism


Specification


  • Declarative vs. Operational Specification
  • The Relational Model of Behavior
  • Preconditions and Postconditions
  • Frame Conditions
  • Standard Syntax for Specifications
  • Non-deterministic or 'Underdetermined' Specifications
  • The Idea of Substitutability
  • The Refinement Ordering
  • Subtypes vs. Subclasses
  • Co- and Contra-variance
  • The Object Contract


Abstract Data Types


  • The Idea of Representation Independence
  • Encapsulating the Representation
  • Representation Invariants
  • Classification of Operations into Constructors, Mutators, Observers
  • Abstraction Functions
  • Representation Exposure
  • Arguments by Structural Induction
  • Mutable and Immutable Types
  • Beneficent Side Effects
  • Notions of Equality
  • The Basic Idea of Algebraic Specification


Object Models


  • Instances versus Models
  • Multiplicity Constraints
  • Final Markings


Module Dependency Diagrams


  • The Dependence Relation
  • Dependences Mediated by Specifications
  • Effect of Dependence Structure on Division of Labour, Reuse, Reasoning, Testing
  • Decoupling by Weakening Dependences


Design Patterns


  • The Idea of Design Patterns
  • Effect of Design Patterns on Dependences
  • Composite, Decorator, Iterator, Factory Method, Abstract Factory, Strategy, Template


Testing


  • Oracles, Stubs and Drivers
  • Kinds of Testing: Unit Testing, Regression Testing, etc.
  • Basic Notion of Coverage
  • Value and Limitations of Testing
  • Code-based vs. Specification-based Testing


Usability


  • Basic Principles
  • Simple Cognitive Model and its Consequences
  • Standard Heuristics
  • Methods for Improving Usability

 








© 2017 Coursepedia.com, by Higher Ed Media LLC. All Rights Reserved.