Difference between revisions of "CR: COMP 3004 Learning Objectives"

From Soma-notes
Jump to navigation Jump to search
Line 35: Line 35:
* Requirements elicitation
* Requirements elicitation
** able to extract functional and non-functional requirements from a problem description
** able to extract functional and non-functional requirements from a problem description
** able to construct corresponding functional model, with use cases and scenarios
** able to construct corresponding functional model, with UML use cases and scenarios
** able to incorporate traceability into every work product
** able to incorporate traceability into every work product


* Analysis
* Analysis
** able to identify high level objects and categorize them into entity, boundary and control objects
** able to construct corresponding object model, with UML class diagrams


* High-level system design
* High-level system design

Revision as of 12:40, 8 April 2011

Calendar Description

Theory and development of software systems. This course will discuss computer ethics. Possible topics include: software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project using a CASE tool.

Assumed Background

  • Practical experience with rudimentary software design techniques
    • able to take an assignment description and identify the objects that are required
    • able to apply concepts of encapsulation to organize the required objects
    • able to identify opportunities for code reuse and implement them
    • able to apply advanced object-oriented programming concepts, including polymorphism and generic programming
  • Practical experience in designing, implementing, testing and documenting small to medium size object-oriented programming assignments


Learning Objectives

  • Understand the theory of large scale software system development
    • recognize the need for using a formal development process
    • learn the phases of software development life cycle (requirements elicitation, analysis, high-level design, detailed design, implementation, testing)
    • learn basics of project management
  • Gain the practical experience to:
    • analyze a problem description for a large system
    • apply each phase of the software development life cycle
    • produce quality output for each phase
  • Prepare for a career as a software development professional:
    • develop tools and strategies for working as a member of a team
    • understand the Software Engineering Code of Ethics; learn to identify and analyze ethical dilemmas in a systematic fashion

Topics

Software Development Life Cycle

  • Requirements elicitation
    • able to extract functional and non-functional requirements from a problem description
    • able to construct corresponding functional model, with UML use cases and scenarios
    • able to incorporate traceability into every work product
  • Analysis
    • able to identify high level objects and categorize them into entity, boundary and control objects
    • able to construct corresponding object model, with UML class diagrams
  • High-level system design
  • Detailed object design
  • Implementation
  • Testing

Topic 2

Learning objectives for topic 2