- Prof. Dr. Armin B. Cremers
Daniel Speicher & Holger Mügge & Tobias Rho
Object-Oriented SoftwareConstruction
Chapter 1: Introduction
Mittwoch, 15. April 2009
The team ... for further questions Official Lecturer: Prof. Dr. - - PowerPoint PPT Presentation
Chapter 1: Introduction O bject- O riented S oftware C onstruction Prof. Dr. Armin B. Cremers Daniel Speicher & Holger Mgge & Tobias Rho Mittwoch, 15. April 2009 The team ... for further questions Official Lecturer: Prof. Dr.
Daniel Speicher & Holger Mügge & Tobias Rho
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
https://sewiki.iai.uni-bonn.de/teaching/lectures/oosc/2009/start
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Technical aspects of building complex software systems Object-Oriented Modeling with the Unified Modeling Language The Complete Software Lifecycle Configuration & Rationale Management
Advanced Topics of Software Construction Deepens Requirements Engineering, e.g. Requirements Writing Software Processes Software Architectures Advanced Technologies Aspect-oriented Software Development (Separation of Crosscutting Concerns) Model-Driven Architecture
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
UML 2.0 (Unified Modeling Language)
Eclipse Subversion CASE (Computer Aided Software Engineering)
Design Patterns Refactoring
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
3rd edition in preparation for September ‘09
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Bernd Bruegge, Allen Dutoit: “Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: “Design
Grady Booch, James Rumbaugh, Ivar Jacobson, “The Unified
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Functional vs. object-oriented decomposition
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
O O S C
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Direct mapping
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Increased costs Delayed deployment Unsatisfied customers
Toll Collect (Germany): Technical Problems caused a delayed
Hartz IV-Software “A2II”: Regular Updates needed, high costs;
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Proves theorems about algorithms, designs languages, defines
Has infinite amount of time… (in general no project)
Mainly involved in the technical realization of software
Has to work in and understand multiple application domains Must have technical and managerial background Covers many (all) phases in software lifecycle in a project
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Graphical or textual set of rules for representing a model
Repeatable technique that specifies the steps for solving a specific problem
Collection of methods for solving a class of problems. Specifies how and
when each method should be used
Instrument or automated systems to accomplish a method
Nonlinear process: addition of new knowledge may invalidate old knowledge
Capturing the context in which decisions were made and the rationale
behind these decisions
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Object-Oriented Programming Languages (C++, Java, C#, Ruby, Smalltalk) Object-Oriented Modeling Notations ( UML2 ) Object-Oriented Modeling Methods (Rational Unified Process, …) [Object-Oriented] Databases, Platforms … Major standardization Endeavors (OMG); Appreciation in industry “Post Object-Orientation” (Components, Aspects, Services) Model-Driven Architecture (EMF, OAW, AndroMDA,…)
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
O O S C
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Complex technologies (programming languages) The development process is very difficult to manage Domains are complex that no single person can understand it Complex (unfeasible) requirements from clients Fixing a bug causes another bug
Requirements need to be updated when errors are discovered and
Project constellation changes (staff turn-around) Technological changes (new standards, languages)
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
l
u Object Model: What is the structure of the system? What are the
u Functional model: What are the functions of the system? How is
u Dynamic model: How does the system react to external events?
l
u PERT Chart: What are the dependencies between the tasks? u GANTT Chart: How can this be done within the time limit? u Org Chart: What are the roles in the project or organization? l
u What are the open and closed issues? What constraints were
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
class... class... class...
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
The system is decomposed into modules Each module is a major processing step (function) in the application
Modules can be decomposed into smaller modules
The system is decomposed into classes (“objects”) Each class is a major abstraction in the application domain Classes can be decomposed into smaller classes
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Very useful at requirements engineering stage and high level
Functions are spread over the system Hard to maintain / change
Very useful after initial functional description Object Design Encapsulates data and functions helps to deal with change
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
This leads us to chunks (classes, objects) which we view with object
"Part of" hierarchy "Is-kind-of" hierarchy
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Cell Muscle Cell Blood Cell Nerve Cell
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Your mission: Please model “this” Your (obvious) question: What is “this”?
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
lives in
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
How can we identify the purpose of a system?
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Enter() Leave() Issue No. 1
“Behavior of Shape” Status: solved Rationale: Client confirmed the shape as Inuit
time
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
lives in
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
1.
2.
3.
How can we identify the purpose of a system?
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Abstraction Decomposition Hierarchy Anticipate changes in design
Unfortunately, depending on the purpose of the system,
Many different possibilities Our current approach: Start with a description of the functionality
This leads us to the software lifecycle
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
O O S C
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Software Architecture
class... class... class...
Source Code Solution Domain Objects System Design Object Design Implemen- tation Testing Application Domain Objects Test Cases ?
class....?
Requirements Elicitation Use Case Model Analysis
Expressed in Terms of Structured by Realized by Implemented by Verified by
Mittwoch, 15. April 2009
Institut für Informatik III Information Systems Engineering / Advanced Topics in Software Construction 2008 / ??
Requirements Elicitation Requirements Analysis System Design Object Design Implementation Unit Testing Integration Testing System Testing Acceptance Testing The users world and language The developers world and language
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Set of activities and their relationships to each other to support the
Which activities should I select for the software project? What are the dependencies between activities? How should I schedule the activities?
Use a nonlinear software lifecycle to deal with changing
Provide configuration management to deal with changing entities
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Developing quality software for a complex problem within a limited
Object-Oriented Software Construction is the standard method
Modeling, decomposition, abstraction, hierarchy
Management View: Use of an iterative software lifecycle Technical View: Anticipate changes in your design
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
O O S C
Mittwoch, 15. April 2009
Armin B. Cremers, Daniel Speicher, Holger Mügge, Tobias Rho Object Oriented Software Construction
Design Patterns Refactoring
Mittwoch, 15. April 2009