CR: COMP 3004 Learning Objectives: Difference between revisions
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 16: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