SE2030 -- Detailed Outcomes

At the time of the midterm exam a successful student should be able to:

  • describe the elements of UML class and sequence diagrams
  • use a revision control system to maintain versions of source code and related design documents
    • explain why revision control systems are critical to software development
    • describe the lock-modify-unlock approach for managing conflicts
    • describe the copy-modify-merge approach for managing conflicts
    • list advantages/disadvantages between the lock-modify-unlock and copy-modify-merge approaches for managing conflicts
    • use TortoiseSVN to manage version control for a multi-developer project
    • demonstrate how conflicts are resolved with TortoiseSVN
    • explain the role of branching a repository
  • create an installable software package using an automated build tool
    • use java.exe and javaw.exe to execute a Java program
    • create a desktop shortcut for executing a Java program
    • distinguish between the java.exe and javaw.exe
    • use jar.exe tools to create a .jar file
    • explain the purpose of the manifest file used in a .jar file
    • write a manifest file to be used by a specified .jar file
    • explain the purpose for automated build tools
    • explain the purpose of the build script used by ANT
    • interpret the contents of an ANT build script
  • describe elements of multithreading
    • define the term process
    • define the term thread
    • explain how a class must be modified to allow it to run on a separate thread

A successful student should be able to:

  • understand basic concepts of software engineering practice
    • describe the various phases of the software lifecycle
    • describe the various roles software engineers may have
    • explain the purpose of requirements gathering and specification
    • distinguish between high-level and low-level designs
  • interpret requirements documented as use cases
    • demonstrate use case textual analysis for a given use case
    • effectively transform use cases into a high level design
    • distinguish between function and non-functional requirements
    • describe and demonstrate the use of a scenario
    • describe and demonstrate the use of an actor
    • describe and demonstrate the use of a goal
    • describe and demonstrate the use of an alternate flow
    • explain how pre-conditions and post-conditions are used in use cases
  • interpret UML interaction diagrams
    • define a boundary object and draw its symbol
    • define an entity object and draw its symbol
    • define a control object and draw its symbol
    • distinguish between boundary, entity and control objects
    • identify which objects may interact with an actor
    • identify which objects may interact with each other
  • transform requirements and use case diagrams into high-level object-oriented design models
    • define cohesion
    • define coupling
    • explain why cohesion and coupling are important design considerations
  • transform high-level object-oriented designs to detailed design models, including class, sequence, interaction and state diagrams
    • describe the elements of UML class and sequence diagrams
    • create UML class diagrams in Enterprise Architect
    • interpret and denote relationships between classes using standard UML notation
    • demonstrate proper use of association, aggregation and composition in UML class diagrams
    • distinguish between association, aggregation and composition in UML class diagrams
    • explain the differences between association, aggregation and composition
    • demonstrate the use of generalization and realization
    • distinguish between generalization and realization in UML class diagrams
    • explain the differences between generalization and realization
    • create UML sequence diagrams in Enterprise Architect
    • demonstrate iteration in a sequence diagram
    • demonstrate selection in a sequence diagram
    • create UML interaction diagrams in Enterprise Architect
  • transform detailed designs to source code, both manually and by using automated tools
  • synchronize detailed object-oriented design models with changed source code
    • generate Java code from an Enterprise Architect model
    • generate an Enterprise Architect model from an existing Java project
    • update Java code from a modified Enterprise Architect model
    • update an Enterprise Architect model from a modified Java project
  • use a revision control system to maintain versions of source code and related design documents
    • explain why revision control systems are critical to software development
    • describe the lock-modify-unlock approach for managing conflicts
    • describe the copy-modify-merge approach for managing conflicts
    • list advantages/disadvantages between the lock-modify-unlock and copy-modify-merge approaches for managing conflicts
    • use TortoiseSVN to manage version control for a multi-developer project
    • demonstrate how conflicts are resolved with TortoiseSVN
    • explain the role of branching a repository
  • create an installable software package using an automated build tool
    • use java.exe and javaw.exe to execute a Java program
    • create a desktop shortcut for executing a Java program
    • distinguish between the java.exe and javaw.exe
    • use jar.exe tools to create a .jar file
    • explain the purpose of the manifest file used in a .jar file
    • write a manifest file to be used by a specified .jar file
    • explain the purpose for automated build tools
    • explain the purpose of the build script used by ANT
    • interpret the contents of an ANT build script
  • describe elements of multithreading
    • define the term process
    • define the term thread
    • explain how a class must be modified to allow it to run on a separate thread
    • explain how the time out mechanism in the ATM Application works
  • © 2001-2015 Dr. Christopher C. Taylor •
  • Office: L-343 •
  • Phone: 277-7339 •
  • npǝ˙ǝosɯ@ɹolʎɐʇ