next up previous


A Course on Software Engineering

Dines Bjørner
Department of Informatics &c.
Technical University of Denmark
DK-2800 Lyngby, Denmark
E-Mail: db@it.dtu.dk

September 25, 2000

Abstract:

A 15 point, 0-13 grade scale, course on Software Engineering (SE) is outlined.

The author is a main originator of research and courses in software abstraction and modelling, as well as -- now -- in the ``upstream'' research and teaching of domain engineering.

The author has, since 1977 given -- now the third[*] version of -- parts 1, 4 and 7 (with extensive additions given, in the past, to part 4) of the suggested SE course. In the last 10 years the other parts have been added and previous parts changed considerably.

The author intends to spend the next years on research in relations between, on one side domain and requirements engineering, and, on the other side, requirements engineering and software design (architecture and program structures).


Contents

Introduction

This document is put forward as a contribution to the course planning currently taking place in the section for Computer Science & Technology in the Department of Informatics & Mathematical Modelling at The Technical University of Denmark (DTU).[*]

The course proposed here is one of several core computing science & engineering courses being formulated. The assumptions for these `core' courses are (i) that they all take place during the 5th to 6th semester, (ii) that they follow a series of introductory courses -- such as for example indicated in Figure 1, (iii) that students majoring in Computing Science & Engineering will take at least two such `core' courses, and (iv) that they, the courses, are followed up by ``deeper level, advanced'' courses -- such as also, albeit superficially, illustrated in Figure 1 (at bottom).


  
Figure 1: A Context for the Proposed Course
\begin{figure}
\vspace*{2mm}
 \begin{center}
~~
 
\epsfig {file=se.eps}

 ~~ \end{center} \end{figure}

  

Aims & Objectives

Main Goals

Main Means

To introduce the student to:

Preliminary Comments

Prerequisites

It would be ideal if there was an additional pre-requisite course:

It is furthermore suggested that both the two ``main-stream'' programming languages:

be integrated fully with the Algorithm & Data Structures, with the Parallel Programming, with the Basic Data Modelling and Database Systems, as they will with the presently proposed Software Engineering course. Only by ``repeated'' use of the two language paradigms, languages and their supporting systems, and with increasingly sophisticated facets of these languages, can we bring the students up to full programming literacy.

Course Practicalities

Lecture Notes

There are three specific references and three general references:

The above notes are partial: I am regularly improving on already written material and I am continually adding material where presently ``missing''. The most recent, relatively ``the most'' completed document is the ``Method'' document. The ``next most complete'' is the ``Domain Engineering'' document. The ``Domain Engineering'' document will be completed on the basis of the ``Method'' document, and the ``Software Engineering'' Lecture Notes will be completed on the basis of the ``Method'' and ``Domain Engineering'' documents. All document will be edited on the basis of feedback from lectures.

Eventually only the Software Engineering Lecture Notes will be used in the proposed SE course. Other noteworthy documents are:

Detailed Subject Listing

In right ``margins'' below we refer to above documents. Footnotes refer to web/home-page based lecture foils. Similar refs. can be given for individual chapter i of the lecture notes:

0.
Introductory Lectures

1.
Abstraction & Modelling: RSL, LN.Ch3, M.5.3, DE.4.3

This, the first part (1.), basically replaces the current course: 49238.
Latter parts (2.-14.) replace current course: 49351.

(a)
% latex2html id marker 971
\fbox {\arabic{lll}}
Property vs. Model-oriented Specs. LN.Sect. 3.2, DE.4.3.1
(b)
% latex2html id marker 975
\fbox {\arabic{lll}}
Model-oriented Abstraction LN.Sect. 3.3, DE.4.3.2
(c)
% latex2html id marker 979
\fbox {\arabic{lll}}
Logic Abstractions LN.Sect. 3.4
(d)
% latex2html id marker 983
\fbox {\arabic{lll}}
Type Abstractions: Sorts & Models LN.Sect. 3.5
(e)
% latex2html id marker 987
\fbox {\arabic{lll}}
Representation & Operation Abstraction LN.Sect. 3.6
i.
% latex2html id marker 991
\fbox {\arabic{lll}}
Sets Sects. 3.6.1-.5
ii.
% latex2html id marker 995
\fbox {\arabic{lll}}
Cartesians, Sects. 3.6.1-.5
iii.
% latex2html id marker 999
\fbox {\arabic{lll}}
Lists Sects. 3.6.1-.5
iv.
% latex2html id marker 1003
\fbox {\arabic{lll}}
Maps Sects. 3.6.1-.5
v.
% latex2html id marker 1007
\fbox {\arabic{lll}}
Functions Sects. 3.6.1-.5
(f)
% latex2html id marker 1011
\fbox {\arabic{lll}}
Hierarchies & Compositions LN.Sect. 3.7, DE.4.3.8
(g)
% latex2html id marker 1015
\fbox {\arabic{lll}}
Denotations & Computations LN.Sect. 3.8, DE.4.3.7
(h)
% latex2html id marker 1019
\fbox {\arabic{lll}}
Time, Space and Space/Time LN.Sect. 3.9
(i)
% latex2html id marker 1023
\fbox {\arabic{lll}}
Contexts and States: LN.Sect. 3.10, DE.4.3.4
I , II , III , IV , V , VI .
(j)
Behaviours, Concurrency and Processes: LN.Sect. 3.11, DE.4.3.5
% latex2html id marker 1027
\fbox {\arabic{lll}}
I: The Process Concept
% latex2html id marker 1031
\fbox {\arabic{lll}}
II: TCSP and RSL CSP
% latex2html id marker 1035
\fbox {\arabic{lll}}
III: Petri Nets
% latex2html id marker 1039
\fbox {\arabic{lll}}
IV: Statecharts
(k)
% latex2html id marker 1043
\fbox {\arabic{lll}}
Determinacy and Looseness LN.Sect. 3.12, DE.4.3.9
(l)
% latex2html id marker 1047
\fbox {\arabic{lll}}
Modularity & Objects LN.Sect. 3.12[*]
2.
% latex2html id marker 1051
\fbox {\arabic{lll}}
What is a Formal Method ? M.2, DE.2.6
3.
Descriptions and Description Principles: LN.Ch6
(a)
% latex2html id marker 1055
\fbox {\arabic{lll}}
Models & Modelling LN.Sect. 6.4, M.4
(b)
% latex2html id marker 1059
\fbox {\arabic{lll}}
Basic Description Principles LN.Sect. 6.6, M.3.2, DE.3.1, MAJ
  • DesignationsLN.Sect. 6.6.2
  • DefinitionsLN.Sect. 6.6.3
  • Refutable AssertionsLN.Sect. 6.6.4
(c)
Documents LN.Sect. 6.5, M.5.1
% latex2html id marker 1063
\fbox {\arabic{lll}}
+ % latex2html id marker 1067
\fbox {\arabic{lll}}
(1st semester/half), % latex2html id marker 1071
\fbox {\arabic{lll}}
+ % latex2html id marker 1075
\fbox {\arabic{lll}}
(2nd semester/half)
i.
Informative Docs.: LN.Sect. 6.5.1 & 6.5.6, DE.3.2
a.
Briefs LN.Sect. 6.5.1
b.
Synopses LN.Sect. 6.5.6
ii.
Acquisition
iii.
Descriptive Docs.LN.Sect. 6.5.4-.7.-.8
a.
Informal: Rough Sketches LN.Sect. 6.5.4, DE.3.2
b.
Informal: Terminologies LN.Sect. 6.5.8, DE.3.2
c.
Informal: Narratives LN.Sect. 6.5.7, DE.3.2
d.
Formal: Specifications LN.Sect. 6.5.9, DE.3.3
iv.
Analytic Docs.: LN.Sect. 6.5.10-.11
a.
Attribute & Facets Analysis LN.Sect. 6.8
b.
Validation & Verification LN.Sect. 6.5.11, LN.Sect. 6.5.10
4.
Semiotics: LN.Ch5, M.3.1
(a)
% latex2html id marker 1079
\fbox {\arabic{lll}}
Languages and Systems LN.Sect. 5.2
(b)
% latex2html id marker 1083
\fbox {\arabic{lll}}
Pragmatics, Semantics and Syntax LN.Sect. 5.3, DE.4.3.6
(c)
% latex2html id marker 1087
\fbox {\arabic{lll}}
SAL: Simple Applicative Language LN.Sect. 5.4[*]
Formal Development: I , II , III , IV , V , and VI .
From Denotational to Attribiute Code Generator Semantics
(d)
% latex2html id marker 1091
\fbox {\arabic{lll}}
SIL: Simple Imperative Language LN.Sect. 5.5
From Denotational Semantics to Run-time Operational Semantics
5.
Domain Engineering: LN.Ch 8
(a)
% latex2html id marker 1095
\fbox {\arabic{lll}}
Stake-holders
i.
Stake-holder LN.Sects. 6.8.3+8.2.1, M.5.3.1, DE.5.2.1q
ii.
Perspectives LN.Sects. 6.8.3+8.2.2, M.5.3.1, DE.5.2.2
(b)
% latex2html id marker 1099
\fbox {\arabic{lll}}
- % latex2html id marker 1103
\fbox {\arabic{lll}}
Domain Attributes: M.5.3.2
Moods and Scope & Span LN.Sects. 6.8.4+6.8.2
(c)
% latex2html id marker 1107
\fbox {\arabic{lll}}
- % latex2html id marker 1111
\fbox {\arabic{lll}}
- % latex2html id marker 1115
\fbox {\arabic{lll}}
Domain Facets LN.Sect. 8.3, M.5.3.3
i.
Intrinsics LN.Sect. 8.3.1, DE.5.3.1
ii.
Support Technologies LN.Sect. 8.3.2, DE.5.3.2
iii.
Management and Organisation LN.Sect. 8.3.3, DE.5.3.3
iv.
Rules & Regulations LN.Sect. 8.3.4, DE.5.3.4
v.
Scripts
vi.
Human Beaviour LN.Sect. 8.3.5, DE.5.3.5
vii.
&c.
6.
% latex2html id marker 1119
\fbox {\arabic{lll}}
Requirements Engineering: LN.Ch 10
(a)
% latex2html id marker 1123
\fbox {\arabic{lll}}
Domain Requirements LN.Sect. 10.4, M.5.4.
i.
Projection LN.Sect. 10.4.1
ii.
Instantiation LN.Sect. 10.4.2
iii.
Extension LN.Sect. 10.4.3
iv.
Initialisation LN.Sect. 10.4.4
v.
&c.
(b)
% latex2html id marker 1127
\fbox {\arabic{lll}}
Interface Requirements LN.Sect. 10.5, M.5.4.2
i.
Man-Machine Interface LN.Sect. 10.5.1
a.
Graphical User Interfaces (GUI)
b.
Dialogues
c.
Multi-Media Concerns
d.
&c.
ii.
Other Input/Output LN.Sect. 10.5.2
(c)
% latex2html id marker 1131
\fbox {\arabic{lll}}
Machine Requirements LN.Sect. 10.6, M.5.4.3
i.
Performance LN.Sect. 10.6.1
ii.
Dependability LN.Sect. 10.6.2
a.
Accessability
b.
Availability
c.
Reliability
d.
Fault Tolerance
e.
Security
f.
&c.
iii.
Maintenance LN.Sect. 10.6.3
a.
Perfective
b.
Adaptive
c.
Corrective
iv.
Platforms LN.Sect. 10.6.4
a.
Development
b.
Execution
c.
Maintenance
v.
Documentation LN.Sect. 10.6.5
a.
Installation & Maintenance
b.
User Training & Daily Use
7.
% latex2html id marker 1135
\fbox {\arabic{lll}}
- % latex2html id marker 1139
\fbox {\arabic{lll}}
- % latex2html id marker 1143
\fbox {\arabic{lll}}
Software Design: LN.Ch 11, RMB
(a)
Software Architecture Design LN.Ch 12, M.5.5.
(b)
Program Organisation Design LN.Ch 13, M.5.5.2
(c)
Modularisation
(d)
Coding
(e)
&c.
8.
% latex2html id marker 1147
\fbox {\arabic{lll}}
Verification and Validation: Ch, 14, RMB
(a)
Validation LN.Sect. 14.2
(b)
Verification LN.Sect. 14.1
(c)
Testing LN.Sect. 14.3
9.
% latex2html id marker 1151
\fbox {\arabic{lll}}
- % latex2html id marker 1155
\fbox {\arabic{lll}}
Problem Frames: LN.Ch 15, DE.2.3, MAJ
(a)
Translation Frame LN.Sect. 15.2
(b)
Reactive Systems Frame LN.Sect. 15.3
(c)
Information Frame LN.Sect. 15.4
(d)
Workpiece Frame LN.Sect. 15.5
(e)
Connection Frame LN.Sect. 15.6
(f)
&c.
10.
% latex2html id marker 1159
\fbox {\arabic{lll}}
Platform Programming: LN.Ch16
(a)
Java LN.Sect. 16.3
(b)
ODP LN.Sect. 16.4
(c)
OMG: Object Management Group LN.Sect. 16.5
(d)
CORBA LN.Sect. 16.6
(e)
UML: Unified Modelling Languages
(f)
&c.
11.
% latex2html id marker 1163
\fbox {\arabic{lll}}
Quality Issues: LN.Ch. 17
(a)
Project Quality LN.Sect. 17.3
(b)
Product Quality LN.Sect. 17.2
(c)
Quality Assurance
(d)
Quality Control
12.
% latex2html id marker 1167
\fbox {\arabic{lll}}
Legal Issues: LN.Ch 18
(a)
Intellectual Property Right LN.Sect. 18.2
(b)
Copyright LN.Sect. 18.3
(c)
Infringement LN.Sect. 18.4
(d)
Litigation LN.Sect. 18.5
(e)
&c.
13.
% latex2html id marker 1171
\fbox {\arabic{lll}}
- % latex2html id marker 1175
\fbox {\arabic{lll}}
Projects and Products: LN.Ch 19
(a)
Systems Engineering LN.Sect. 19.1
(b)
Project Management LN.Sect. 19.2
i.
Strategic, Tactical and Operational Resource Management
ii.
Setting Guidelines and Backstopping Problems
iii.
Tools: 
  • Version Control & Configuration Management
  • Document Libraries
  • Testing, Verififcation and Validation Tools
  • &c.
iv.
&c.
(c)
Product Management LN.Sect. 19.3
(d)
&c.
14.
% latex2html id marker 1179
\fbox {\arabic{lll}}
Discussion: LN.Ch 20
(a)
Formal Techniques Myths LN.Sect. 20.2
(b)
Formal Techniques Commandments LN.Sect. 20.3
(c)
Transfer to Industry LN.Sect. 20.4
(d)
Software Engineering Professionalism LN.Sect. 20.5
(e)
Software Engineering Responsibilities LN.Sect. 20.6
(f)
&c.

Assumptions

Lecture Note Tables-of-Contents

An honest atrempt has been made to cross-reference between proposed lecture topics, on one side, and chapter and section references to the three main documents, on the other (``right margin'') side.

Below we refer to the tables of contents of the three referenced documents.

Bibliographical Notes

1.
Dines Bjørner, Souleimane Koussobe, Roger Noussi, and Georgui Satchok. Michael Jackson's Problem Frames . In Li ShaoQi and Michael Hinchley, editors, ICFEM'97: Intl. Conf. on Formal Engineering Methods, Los Alamitos, CA, USA, 12-14 November 1997. IEEE Computer Society Press.

2.
Dines Bjørner and Jorge R. Cuéllar. Software Engineering Education: Rôles of formal specification and design calculi . Annals of Software Engineering, 6:365-410, 1998. Published April 1999.
3.
Dines Bjørner. Domains as Prerequisites for Requirements and Software &c . In M. Broy and B. Rumpe, editors, RTSE'97: Requirements Targeted Software and Systems Engineering, volume 1526 of Lecture Notes in Computer Science, pages 1-41. Springer-Verlag, Berlin Heidelberg, 1998.

4.
Dines Bjørner. Where do Software Architectures come from ? Systematic Development from Domains and Requirements. A Re-assessment of Software Engneering ? South African Journal of Computer Science, 1999. Editor: Chris Brink.

5.
Dines Bjørner. Software Engineeering: A New Approach. From domains via requirements to software. Formal specification and design calculi. 2000. Presently this document is a rather extensive (approx. 900 page) set of lecture notes. It is accessible over the web: http://www.it.dtu.dk/~db/s2000.

6.
Dines Bjørner. Domain Modelling: Resource Management Strategics, Tactics & Operations, Decision Support and Algorithmic Software . In J.C.P. Woodcock, editor, Festschrift to Tony Hoare. Oxford University and Microsoft, September 13-14 1999.

7.
Dines Bjørner. A Triptych Software Development Paradigm: Domain, Requirements and Software. Towards a Model Development of A Decision Support System for Sustainable Development . In ErnstRüdiger Olderog, editor, Festschrift to Hans Langmaack. University of Kiel, Germany, October 1999.

8.
Dines Bjørner. Pinnacles of Software Engineering: 25 Years of Formal Methods . Annals of Software Engineering, 2000. Eds. Dilip Patel and Wang Yi.
9.
Dines Bjørner. Domain Engineering, Elements of a Software Engineering Methodology -- Towards Principles, Techniques and Tools -- A Study in Methodology . Research report, Dept. of Computer Science & Technology, Technical University of Denmark, Bldg. 343, DK-2800 Lyngby, Denmark, 2000. One in a series of summarising research reports

10.
Dines Bjørner. Domain Engineering, A Software Engineering Discipline in Need of Research . In SOFSEM'2000, Lecture Notes in Computer Science. Springer Verlag, 18-24 November 2000.

11.
Dines Bjørner. ``What is a Method ?'' -- A Study of Some Aspects of Software Engineering . MacMillan, 2001.
12.
Dines Bjørner. Requirements Engineering, Elements of a Software Engineering Methodology -- Towards Principles, Techniques and Tools -- A Study in Methodology. Research report, Dept. of Computer Science & Technology, Technical University of Denmark, Bldg. 343, DK-2800 Lyngby, Denmark, 2000. Not available. One in a series of summarising research reports

13.
Dines Bjørner. Software Design: Architectures and Program Organisation, Elements of a Software Engineering Methodology -- Towards Principles, Techniques and Tools -- A Study in Methodology. Research report, Dept. of Computer Science & Technology, Technical University of Denmark, Bldg. 343, DK-2800 Lyngby, Denmark, 2000. Not available. One in a series of summarising research reports

About this document ...

A Course on Software Engineering

This document was generated using the LaTeX2HTML translator Version 97.1 (release) (July 13th, 1997)

Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 se.tex.

The translation was initiated by Dines Bjorner on 9/25/2000


Footnotes

...third
Documents Software Architectures and Programming Systems Design, Vol.1 (800 pages) and Software Architectures and Programming Systems Design, Vol.2 (640 pages) 1980-1990 Lecture Notes, Covers VDM, Abstraction, Modelling, Abstract Specification, Programming Language Semantics, Compiler Design, Database ``Theory'' and Data Base Management Systems, etc., represent the second version.

...(DTU).
The Computing Science group of the ``former'' Department of IT (Information Technology) will physically move from Bldg. 343 to Bldg. 322 and formally , by January 1st, 2001, together with the former Dept. of Mathematical Modelling, into a new, larger Dept., as part of the overall realignment of the DTU.

...components
Examples of such such infrastructure components are: Transportation (viz.: rail, road, shipping and air), health care, financial services (viz.: banking, insurance, brokers, stock exchanges, portfolio management), the manufacturing industry, the building industry, the fisheries industry, the chemical industry, public administration (social welfare; employment market; customs, excises and taxation, etc.), etc.

...report.
Both examinations must be passed, not just and only the first, and the course project report must be approved.

...LN.Sect. 3.12
Scemes, Classes and Modules

...LN.Sect. 5.4
Ought really be three lectures !


next up previous
Dines Bjorner
9/25/2000