a lecture on system development course avinanta...
TRANSCRIPT
Towards Object Oriented System Development
A Lecture on System Development Course
Avinanta Tarigan
Magister of Information System ManagementGunadarma University
1 Avinanta Tarigan Towards Object Oriented System Development
Outline
1 System Theory
2 Buzzword: Object Oriented
3 System Behavior Analysis & Design
4 UML
2 Avinanta Tarigan Towards Object Oriented System Development
System Theory
Outline
1 System Theory
2 Buzzword: Object Oriented
3 System Behavior Analysis & Design
4 UML
3 Avinanta Tarigan Towards Object Oriented System Development
System Theory
General System Theory
Initiated by Ludwig vonBertalanffy
Followed by Mead andBateson
The study of the natureof complex systems innature, society, andscienceInterdiciplinary study:single organism, anyorganization or society,or anyelectro-mechanical orinformational artifactCybernetics: study offeedback→ controlsystems
4 Avinanta Tarigan Towards Object Oriented System Development
System Theory
System of Objects
System consists of objects
A group of MLM consists of membersAn object is something that can be identified
Every object has relationship(s) with others
Hierarchical structure of MLM group
Objects engage constituting system’s behavior
Every member is active and vigorousThe MLM group is becoming rich
A state of system is overall state of the objects
The MLM group earned 100 million Rp last yearThe MLM group earned 120 million Rp this year
System behavior = sequence of states
5 Avinanta Tarigan Towards Object Oriented System Development
System Theory
Information System (viewed with GST)
Objects in information system:
Data / Information about somethingAlgorithm / program that process the dataPersons / entity / operator that operate the programDevices that interact with the system
What is the state of the system ?
the value of data / information at certain timeoperator’s perception of the system state at certain time
What drives the behavior of system ?
Algorithm implemented in programParameter (decision of operator, stored data, output from adevice)
6 Avinanta Tarigan Towards Object Oriented System Development
Buzzword: Object Oriented
Outline
1 System Theory
2 Buzzword: Object Oriented
3 System Behavior Analysis & Design
4 UML
7 Avinanta Tarigan Towards Object Oriented System Development
Buzzword: Object Oriented
Principles of Object Oriented I
8 Avinanta Tarigan Towards Object Oriented System Development
Buzzword: Object Oriented
Principles of Object Oriented II
Abstraction:
identification of classes of objects in the systeme.g. SalesPerson, Customer, Product
Encapsulation
Hide implementation and internal structure from clientsClients depend on interfaceManages complexity of the system
Modularity
The breaking up of something complex into manageablepieces
Hierarchy
Levels of abstraction
9 Avinanta Tarigan Towards Object Oriented System Development
Buzzword: Object Oriented
Concepts in Object Oriented I
Object:
An object is a concept, abstraction, or thing with sharpboundaries and meaning for an applicationAn object is something that has:
StateBehaviorIdentity
Class
A class is a description of a group of objects with commonproperties (attributes), behavior (operations), relationships,and semanticsAn object is an instance of a classA class is an abstraction in that it: Emphasizes relevantcharacteristics Suppresses other characteristics
Attribute
10 Avinanta Tarigan Towards Object Oriented System Development
Buzzword: Object Oriented
Concepts in Object Oriented IIProperty of the object / class that has valueState of an object is overal values of attributes of the objectat certain time
Operation / Methods
What drives the change the state of the objectProcedure / function / algorithm
Interface (Polymorphism)
The ability to hide many different implementations behind asingle interfaceInterfaces formalize polymorphismInterfaces support “plug-and-play” architectures
Component
A non-trivial, nearly independent, and replaceable part of asystem that fulfills a clear function in the context of awell-defined architecture
11 Avinanta Tarigan Towards Object Oriented System Development
Buzzword: Object Oriented
Concepts in Object Oriented IIIA component may be :
A source code componentA run time componentsAn executable component
Package
A package is a general purpose mechanism for organizingelements into groupsA model element which can contain other model elements
Subsystem
A combination of a package (can contain other modelelements) and a class (has behavior)Realizes one or more interfaces which define its behavior
Relationships
Relationship is defined through services provided byobjects
12 Avinanta Tarigan Towards Object Oriented System Development
Buzzword: Object Oriented
Concepts in Object Oriented IV
Interfaces: public methods + passing parameter
Types / structure of relationships:
Association
AggregationComposition
DependencyGeneralizationRealization
13 Avinanta Tarigan Towards Object Oriented System Development
System Behavior Analysis & Design
Outline
1 System Theory
2 Buzzword: Object Oriented
3 System Behavior Analysis & Design
4 UML
14 Avinanta Tarigan Towards Object Oriented System Development
System Behavior Analysis & Design
System Behavior Analysis and Design
Traditional Approach:1 Analysis that elicites requirements2 Logical DFD3 Physical DFD4 Program structure charts & process descriptions5 Data model (ERD) & physical database design
Object Oriented Systems Development1 Analysis that elicites requirements2 Object relationship model with attributes and relationships3 Object relationship model with attributes, relationships, and
methods
Final joint of OOSD is the program / algorithm itself
15 Avinanta Tarigan Towards Object Oriented System Development
System Behavior Analysis & Design
Designing Object-Oriented System Behavior I
1 Analyze use cases to identify classes and behaviors1 Identify all classes (objects) in the system2 Identify behavior of objects (classes)3 Identify all relationships of the identified classes
2 Define methods and assign to object classes1 Define attributes2 Define automated behaviors (methods)
1 Method used to create and break relationships2 Method that changes the state of an object
3 Extend the object relationship model to include methods,and create a class specification for each class in the model
1 Define the business-name of the classes and all attributes /methods
2 Define service interface - listing the public methods
16 Avinanta Tarigan Towards Object Oriented System Development
System Behavior Analysis & Design
Designing Object-Oriented System Behavior II
3 Define detailed methods (algorithm)
4 Reflect classes, methods, and messages in formal usecases
5 “Walk through” formal use cases to verify design
17 Avinanta Tarigan Towards Object Oriented System Development
System Behavior Analysis & Design
Criteria for Evaluating System Behavior Design
Low Couplingminimize interdependency of modules / classesmore lossely-coupled the objects→ greater reusabilityGuideliness:
No message should require more than three parametersNo messages should be sent from a subclass to access datadefined in superclass (do this in inheritance)Collaboration relationships should not be so strong thatclass A is useless without class B
CohesivenessA cohesive design specifies only one function per-methodFunction is clearly expressed as verb
ClarityHigh quality design speaks for itselfMinimize the “gap” of perception of the system betweenanalyst, designer, programmer, implementer
SimplicityAn object should be simple (e.g. 5 attributes & 5 methods)Each method can be specified in less then one page of C++
18 Avinanta Tarigan Towards Object Oriented System Development
UML
Outline
1 System Theory
2 Buzzword: Object Oriented
3 System Behavior Analysis & Design
4 UML
19 Avinanta Tarigan Towards Object Oriented System Development
UML
Object Oriented Design with UML
Please see example from Russell C. Bjork
and
Those from Maciaszek
20 Avinanta Tarigan Towards Object Oriented System Development
UML
UML is not the best ?
From definition:
Unified/Universal Modeling Language (UML) is astandardized visual specification language for objectmodeling
Visual specification contains error caused by wronginterpretationUML aids the design in OO manner but not as strong asformal methodDesigning System using Formal Method requires in-depthknowledge and skill in mathematics
21 Avinanta Tarigan Towards Object Oriented System Development
UML
Example of Formal Method
22 Avinanta Tarigan Towards Object Oriented System Development
UML
Why UML descents into darkness
1 Design by committeenot by community (lack of acceptance)
2 The obsessive focus on monetizing UMLJust draw the pictures and we generate the code for you
3 Tries to unify everything even the kitchen sink (UMLspecs>800 pages)
4 UML attempts to become a programming language5 The need for expensive tools vs. just a text editor6 Lack of solutions for real software design issues7 Assumes you can know everything before writing the first
line of code8 Treat software development like manufacturing9 UML tools focus on the wrong goal
10 etc23 Avinanta Tarigan Towards Object Oriented System Development
UML
Thanks
The END
24 Avinanta Tarigan Towards Object Oriented System Development