Slides of the lecture (preliminary version)
Software Engineering
SS 2013
Prof. Dr. F. Belli Universität Paderborn
Angewandte Datentechnik (ADT)
http://adt.uni-paderborn.de
Short Overview for the Lecture
Goal: Introduction of principles, methods, and tools to design, validation and
evaluation of high-quality, dependable software, including their environments.
Prerequisite: Profound knowledge in at least one programming language, e.g., C/C++/Java
Part 1 – Theory:
1. Introduction
2. The process of software development
3. Formal and semi-formal development methods 4. Non-formal development methods
5. Quality, reliability and validation 6. Introduction/short repetition of Java 7. Unified Modeling Language – UML Part 2 – Lab Course Project
Overview of the Chapters
Goal: Introduction of principles, methods, and tools to design, validation and evaluation of high-quality, dependable software, including their environments.
Overvew of the Content:
1. Introduction
1.1 The Software Phenomenon 1.2 The Nature of Software
1.3 Handling of Complex Systems 1.4 Configuration Management
1.5 Conceptual Clarification
1.6 Objectives, Phases and Activities of Software Engineering 1.7 Principles, Methods and Aids
1.8 Structuring and Restructuring over an Example of Linearization of Non- Linear Programs
2. Software Development Process
2.1 Project, Process and Process Models
2.2 Requirement Definition, Design and Specification 2.3 Software Aids
2.4 The Most Important Means of Representation of Development and Quality Assurance
3. Formal and Semi-Formal Development Methods
3.1 Finite Automata and Regular Expressions 3.1.1 Finite Automata
3.1.2 Regular Expressions
3.1.3 Basic Regular Expressions and Corresponding Program Constructs
3.1.4 Examples of Regular Expressions and the Corresponding Finite Automata 3.2 Decision Tables (DT)
3.3 General Net Theory (Petri Nets) 3.3.1 Introductory Example for Petri Nets 3.3.2 Interpretation of the Nets
3.3.3 Critical Properties of Nets 3.3.4 Example
3.3.5 Five Philosphers Problem
3.3.6 Predicate / Transition nets (PrT) 3.3.7 Three Rabbits Problem
3.4 Parnas Specification Schema of Interfaces 3.4.1 Automata Theoretic Interpretation
3.4.2 Example: Stack with Integers
3.4.3 Remarks on Parnas Specification Schema 3.5 Module and Modularization
3.6 Jackson Design Methodology (JDM) 3.6.1 Example: Adress File
3.6.2 Error Handling
3.6.3 Structural Elements of JDM 3.6.4 Remarks on JDM
3.7 Other Formal Methods
4. Non-Formal Development Methods
4.1 Hierarchy Plus Input Process Output (HIPO) 4.1.1 Example: Payroll Accounting
4.1.2 Comments on HIPO
4.2 Structured Analysis (SA)
4.2.1 Rules for Creating Data Flow Diagrams 4.2.2 Example
4.2.3 Comments on SA
4.3 Structured Analysis and Design Technique (SADT) 4.3.1 Example: Payroll Accounting
4.3.2 Comments on SADT
4.4 Composite Design/Structured Design (CD/SD) 4.4.1 Example
4.4.2 Generalization
4.4.3 Inter-Modular Relationships
5. Quality, Dependability and Validation
5.1 Layered Consideration of Errors
5.2 Quality Requirements / Development Activities 5.3 Dependability
5.4 Software Testing 5.4.1 C-Test
5.4.2 Representation of Michael Jackson Specification using Regular Expressions 5.4.3 Data Flow-Oriented Testing
5.5 Strength of the Test Criteria 5.6 Testing Aids
5.7 Non-Formal Testing Methods for Software 5.8 Test Termination
5.9 Reliability - Prediction / Estimation of the Fault Potential 5.10 Instead of Concluding Remarks
6. Introduction to Java
6.1 Conceps of Object-Orientation
6.2 Origins of the Programming Language Java 6.3 Charakteristic Properties of Java
6.4 Java Virtual Machine 6.5 Example Program
6.5.1 Example: Simple Output (Following C Convention of D.M. Ritchie)
7. Unified Modeling Language – UML
7.1 Overview of UML
7.2 Conceptual Model of UML 7.3 UML Diagrams
Overview of the Discussed Methods/Aids
Use Stage
Analysis, Design Specification, Test Coding,
Detailed Design Analysis, Design Specification, Test Analysis, Design Specification, Coding, Test Design, Coding Design
Analysis, Design (limited)
Analysis, Design Analysis (limited), Design
Finite Automata Reg. Expressions Decision
Tables Petri-Nets Parnas Spec.
Schema JDM HIPO Diagrams SA
SADT SD/CD
Type/Components
Transition Graphs/Tables, Aid, Method
Aid, Method Aid, Method Aid, Method
Method Tree Diagram, Schematic Logic
Aid, VTOC, IPO Diagram (hierarchic)
Method/Aid: Data Flow Diagram, Data Dictionary, Mini Specification
Actigram/Diagram, Node Index, Rules
Method Data Flow
Diagram, Structure Charts, Rules
Remarks
Graphic/Algebraic
Stronger Relation to Software Engineering
Graphic, Algebraization, Verification/Simulation Tabel, Algebraization, Algorithmitization Historically developed Visual
(Describing)
Method Character (Untold)
Dual Consideration (Data/Control Flow)
Stronger Relation to Software Engineering
0.) 1.) 2.) 3.)
4.) 5.) 6.)
7.) 8.)