CMPSCI [620] 520
[Adv.] Software Engineering: Synthesis and
Development
Spring
Term 2006 |
|
Homepage
Introduction
Syllabi
520
Syllabus
620
Syllabus
Description
520
Description
620
Description
Topics/Outcomes
Learning
Outcomes
Topics
Class Materials
Announcements
Calendar
Readings
Lecture Notes [PDF]Assignments
Contacts
Professor Rick Adrion 310 Computer Science Bldg (413) 545-2475 Rick's Assistant: Wendy Cooper 312 Computer Science Bldg (413) 545-2492 FAX
for Wendy and Rick (413)
545-3729 |
1.
Knowledge
and understanding -
know and understand how software engineering principles and techniques
apply to the software development process including: -
the role of notation and abstraction in software engineering; -
the products (artifacts) and processes which are fundamental
to software development; -
know and understand relevant techniques and methods that apply
to each stage of the software development process, including: -
Requirements engineering, elicitation, analysis,
specification, validation and management; -
Software design issues, software architecture, software design
notations, strategies and methods; -
Software construction, including styles (linguistic,
mathematical and visual) and goals (managing complexity, anticipating
diversity, structuring for validation); -
Software process definition, measurement, analysis,
implementation and improvement; -
Software evolution, maintenance, re-engineering and reuse;
Software testing and analysis, including techniques, tools, planning and
management. 2. Cognitive skills - perform problem
analysis from written descriptions (analysis); - derive requirements
and design specifications from an understanding of problems (analysis,
synthesis); - create and/or
justify designs to satisfy given requirements (synthesis, evaluation,
application). 3. Practical skills - evaluate the
available options to select the most suitable technology for use in each
stage of software development, underpinned by a knowledge of the efficacy of
the various options; - apply systems, tools
and techniques to support development, analysis and modeling appropriate to
the different stages of software development. 4. Transferable
skills - communicate
effectively by oral, written and visual means; - work effectively as
an individual and as a member of a team; - perform independent
and efficient time management; - perform independent
information acquisition and management, using the scientific literature and
Web sources; - prepare technical
reports to a professional standard; -
demonstrate understanding of personal responsibilities and
professional codes of conduct. |
Last
Updated: 2/4/06 11:00 AM By Rick Adrion Copyright © 2006