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

adrion@cs.umass.edu

Rick's Assistant: Wendy Cooper

312 Computer Science Bldg

(413) 545-2492

cooper@cs.umass.edu

FAX for Wendy and Rick  (413) 545-3729

Learning Outcomes

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