Fall 2008
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
|