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 |
Topics to be covered
1 Why and How to
Study Software Engineering
1.1
Software's Role in the World
1.1.1 Where and how is it
used?
1.1.2 Software Economics
1.1.3 Sociological Issues
1.2 The nature of
software
1.2.1 What makes it
different?
1.2.2 What is it like?
1.2.3 Some useful analogies
1.2.4 Some desirable
qualities
1.3 Engineering Software
1.3.1 Software Product Anatomy
1.3.2 Stakeholders and their
Stakes
1.3.3 Software Processes
2 Software
Product/Artifact Representation
2.1 The Central Role of
Representation
2.1.1 Communication/Coordination
2.1.2 Quality Evaluation
2.1.3 Analysis, comparison,
understanding
2.2 Abstraction Ð a historical
perspective
2.3 Approaches
2.3.1 Informal approaches
2.3.2 Natural language
2.3.3 Structured Natural
Language
2.3.4 Pictorial and
diagrammatic approaches
2.3.5 Boxologies
2.3.6 Charts and Graphs
2.3.7 Formalized approaches
2.3.8 Dataflow Diagrams
2.3.9 State Diagrams and
Charts
2.3.10 Petri Nets
2.3.11 Programming Languages
2.3.12 Mathematical and
formal approaches
2.3.13 Formal specifications
overview
2.3.14 Z
2.3.15 Algebraic
Specifications
2.3.16 Predicate Logic
2.3.17 An Introduction to UML
2.3.18 UML fundamentals
2.3.19 Four views into the software
development process (Use case, Logical, Component, Deployment views)
2.3.20 Examples
3 A Careful Look at
Software Products, Their Specification, and the Processes Associated with
them:
3.1 Requirements
3.1.1 What are they for?
3.1.2 What is their anatomy?
3.1.3 Representation
Approaches
3.1.4 General Approaches
3.1.5 Some Examples
3.1.6 Associated Processes
3.2 Designs and
Architectures
3.2.1 What are they for?
3.2.2 What is their anatomy?
3.2.3 Representation
Approaches and Examples
3.2.4 Associated Processes
3.2.5 Developing Designs
3.2.6 Philosophical
Approaches
3.2.7 Some Examples of
Design Methods
3.2.8 Rigorous Design Method
Comparison
3.2.9 Analysis/Validation/Testing
of Designs
3.2.10 Design Methodology
Comparison
3.3 Code
3.3.1 Code Paradigms and
Languages
3.3.2 Coding Styles and
Practices
3.3.3 Associated Processes
3.3.4 Testing and Analysis
of Code
4 Software Process
Representation
4.1 The role of process
in software engineering
4.2 Software process
representation approaches
4.2.1 Informal approaches
4.2.2 Pictorial approaches
4.2.3 Programming Languages
4.2.4 Process requirements
4.2.5 Process models
4.2.6 Process Code
4.3 Process Execution
4.4 Process Improvement:
The Capability Maturity Model (CMM)
4.5 Some Additional
Software Processes:
4.5.1 Lifecycle Testing and
Analysis (and Perpetual Testing)
4.5.2 Configuration
Management
4.5.3 Version Control
4.5.4 Reuse
4.5.5 Evolution/Maintenance
|
Last
Updated: 2/4/06 11:05 AM By Rick Adrion Copyright © 2006