Title: Integrating Design Environments with Smalltalk
1Integrating Design Environmentswith Smalltalk
U
- Magnus Christerson,
- Product Manager, Rose and Objectory
2Objective
- What is a design environment?
- Building an integrated environment
- The Objectory Process
- Design vs Code
- Added Value
3What is a Design Environment?
- Abstraction
- Visualization
- Documentation
- Interface visibility
- Framework use/design
- Team support
- Reqs traceability
- Process support
4Different views of an application
Managing architecture (Packages)
Developer view
Design architecture
Code
5Traditional Design tools
- Code and Design in separate domains
- Code generation and reverse engineering between
the domains - File transfer as communication mechanism
Design
Code
6Integrating Design and implementation Tools
1) Customized design
Design Environment
New or modified design
3) Backward engineering (Code -gt design)
4) Traceability and Navigation
2) Forward engineering (Design -gt code)
Smalltalk environment
New or modified code
7Smalltalk Characteristics
- Integrated environment
- Iterative development
- Extensive class library
- Image is the workspace
- Group support through repository
8The Objectory Process
9Objectory Process Support
- Process for Object-Oriented Software Development
- BPR, Requirements Analysis, Robustness Anaysis,
Design, Implementation and Testing
10Use Cases and Objects
End-User View
Deposit Funds
Customer
Developers View
11The Relationship between Use Cases and Object
Cash Withdrawal
Cash Withdrawal
Cash
Input device
Customer
Screen(GUI)
Cash Withdrawal
Cash
Account 1
Input Device
Transfer Funds
Input Device
Transfer Funds
Account 2
Screen (GUI)
Transfer Funds
Screen(GUI)
Customer
Account 1
12Different views of an application
Managing architecture (Subsystems)
Developer view
Design architecture
Code
13Design vs Code
14Objectory for Smalltalk
- Design environment for Smalltalk
- Peer-to-peer Communication link
- Bi-directional navigation
15Hot links to Smalltalk code
Design
- Live links between design and code
- Traceability
- Navigation
- Information retrieval
- Establish links
- Code generation
- Reverse engineering
- Manually
Object
Smalltalk
16Concept mappings
Smalltalk environment
Objectory SE
Docs.
Subsystem
ENVY or Enterprise Package
Package
Design object
Smalltalk Class
Attributes
Operations
Methods
Hot Links
17Integrated Environment
- All objects behave the same way
- From code to design
- From design to code
18No redundancy 100 consistency
Design info
Smalltalk info
- Remove all redundant information in design
- Code is master for redundant information
- Pick up redundant information from code on demand
only
19Forward Engineering
- Script based generation
- Open script, customizable
- Generation directly to Smalltalk image, no files
- The Smalltalk image is the window to Smalltalk
Repository
Design
Smalltalk
20Reverse Engineering
- Smalltalk code to export
- Export units
- Package
- Classes
- Protocols
- Methods
- Inheritance as side effect
Design
Smalltalk
21Common repository
- AD repository
- Model elements can be partitioned into
Configuration Items - CIs can be checked in/out from ENVY
22Added Value
23Abstraction
- Design filters out interesting code
- Design reflect code instantly
- Subsystem and interface concepts added
- Frameworks in Design
- Use Case design
24Traceability
- Full traceability Business Models, Req, Use
Cases, Analysis, Design, Code
Requirement Analysis
Robustness Analysis
Design
Reqts
Visual ST Visual Works Visual Age
Traceability
25Navigation
Smalltalk
Browse Code
ObjectorySE
Browse Design
26Impact Analysis
- What if analysis
- Like senders and implementors across
- requirements
- use cases
- analysis
- design
27Visibility Control
- Not all code should show up in design
- Export the design code
- What classes and methods are public interfaces
for a subsystem? - Violation control and detection of interfaces
through checking mechanisms
28Visualization
- Diagramming
- Class hierarchies
- Class and object interactions
- Class and object behavior
- Hierarchical Browsing
29Diagramming
30Documentation
- Documentation as a by-product
- Customizable documentation templates
- contents
- layout
- Publishing
- Export to Word, FrameMaker, SGML, etc
31Applying different style sheets
32Iterative Development Process
- Iteration covers Analysis/Design/Programming
- Automatic support for incremental updates and
propagation of changes - Changes in code are reflected instantly in design
- No overhead due to design tool baggage
33Key Benefits Summary
- Iterative Development Process
- Always Consistent design model
- Traceability
- Integrated Development Environment