Schedule of CS446

(this schedule is subject to changes)

week 1:
Sep 22
Introduction to CS446 (gw)  and Overview (db)
The software development process can be looked at from various angles. Though the starting points may be different (assuring high product quality - managing a project - addressing software development as an engineering discipline), the same issues come come up in the various viewpoints. In this talk I will give an overview of the various subtopics embraced by the term software engineering and will show how these topics relate to each other. 
week 2:
Sep 27 
UML (db)
slides: part1, part2
(for printing disable "black&white")
UML (Unified Modeling Language) is the object-oriented modeling technique that evolved from modeling languages used in methods like Booch, OMT (Rumbaugh) and OOSE (Jacobson). It has been adopted by OMG, is now widely used in many companies, and is an integral part of many software development methods. This series of  lectures will give an in depth introduction into UML, covering most yet not all of its elements. Prior knowledge about object-oriented concepts (classes, objects, inheritance) is assumed, and knowing basic entity-relationship modeling is helpful.
Part one: Introduction into semi-formal modelling, Actors, Use Cases
week 2:
Sep 29
UML (db)
Part two: Class diagrams
week 3: 
Oct 4
UML (db)
Part three: Dynamic Diagrams
week 3: 
Oct 6
Software development processes (rb)

Taks/workflows and different methodologies,  watersluice methodology as an  in depth example ?
(Ron Burback ?)
 or Cost Estimation (Stoica?)
week 4: 
Oct 11
UML (db)
slides: part1, part2, part3
(for printing disable "black&white")
Part four: Processes for UML, Rational Unified Process, use-case driven development,  risk-driven iterative development
week 4:
Oct 13
Risk Management (as)
week 5: 
Oct 18
Design Patterns (db)
week 5: 
Oct 20
Architectures for large systems (rb)
By architecture, I mean the components of a large distributed software system and their interfaces, methods of communication, and behavior. This talk  will give an overview of typical architecture patterns, and will survey several architecture examples with a more detailed discussion of DADL.
week 6: 
Oct 25
Testing (gw)
week 6: 
Oct 27
Maintenance (gw)
week 7: 
Nov 1
Component based development , Reuse , Reuse Organization
week 7: 
Nov 3
Modeling for Reuse
week 8: 
Nov 8
Modeling for Reuse, Interaction diagrams (SEAM) and Abstraction Levels, Frameworks (db or external)
 week 8: 
Nov 10
Requirements Engineering (db)
Requirements engineering: content of a requirements document, activities to determine requirements (requirements analysis, validation, evolution), taking into account multiple viewpoints in the requirements engineering process.
week 9: 
Nov 15
Prototyping (db)
slides, see Requirements Engineering
When, how and why and what for  to use prototyping. Various kinds of prototyping. 
 week 9:  
Quality Assurance, Software Metrics, CMM and PSP  (db or Stoica)
We will look at the content and role of various elements of qualitity assurance like reviews, code inspection, metrics, QA-group, QA-standards, metrics and code inspection tools (e.g. Logiscope) etc. 
Cost Estimation (db or Stoica?)
General principle of software cost estimation. Metrics for software size. Some estimation approaches:
  • proxy-based estimation (in depth)
  • use case estimator (in depth)
  • function point, COCOMO (just overview)
  • fuzzy-logic method, wideband-delphy method, standard component method, PROBE (just overview)
Important socialogical developlment process related considerations when applying software cost estimation.
week 10: Nov 24 
CHAIMS (gw or db)
How could automated composition of large, distributed, heterogenous (also concerning the protocol like CORBA, RMI, DCE, DCOM) and automonous software modules look like? The CHAIMS project has the goal to investigate and develop a language and a system for the high-level composition of such modules. 
 week 11:
Software Tools: Past, Present, and Future
(Anthony I. Wasserman, Principal of Software Methods & Tools)
This talk describes both the technical and market forces in the software tools industry. 
Key topics of tool integration and environment architectures are traced to their historical roots. Different forms of tool integration are discussed, 
including data integration through a shared repository. 
Future directions include speculations about the use of Java, the activities of the dominant vendors, the emergence of tool suites, and the role of the Internet. 
 week 11:
Standards (Carl Cargill)


Classes not yet scheduled

In reserve: