Download presentation
Presentation is loading. Please wait.
1
Design in IS Development
2
IS Design in general The satisfaction of new information requirements. Considering the interaction between humans and the new IS - “the quality without a name” (Gabriel) Creative consideration of the fit between an IS and its human environment
3
Design in O-O systems development Design of classes - attributes and operations Creation of implementation classes (e.g. for user interface) Grouping of classes into packages - aids further abstraction.
4
Design of Objects Establish important attributes and operations for each class. Establish data type for each attribute (range depends on implementation tool used) Establish operations that use the attributes (responsibilities of the class)
5
Good object design Two essential concepts: coupling and cohesion Coupling = extent to which one module needs to be informed about the contents of another or receive messages from it. Cohesion = extent to which the components of a module are logically related
6
Minimise Coupling Message passing between classes is essential but should be minimised: can complicate a system if over-used. Classes should be as self-contained as possible. But note: inheritance is effectively a form of strong coupling.
7
Maximise cohesion “cohesion measures the degree of connectivity among elements of a single module” (Booch). Attributes clearly describe the same type of object. Operations use the attributes to perform actions relevant to that class.
8
Lecturer lecturerName lecturerAddress roomNumber roomLength roomWidth calculateRoomSpace() Figure 13.7 Good operation cohesion but poor class cohesion. (Bennett et al)
9
Sequence Diagrams Show an interaction between objects arranged in a time sequence Can be drawn at different levels of detail and to meet different purposes at several stages in the development life cycle Typically used to represent the detailed object interaction that occurs for one use case or for one operation
10
Sequence Diagrams Vertical dimension shows time Objects involved in interaction appear horizontally across the page and represented by lifelines Messages are shown by a solid horizontal arrow The execution of an operation is shown by an activation
11
Sequence diagram :Client :Campaign :Advert getName() listCampaigns() listAdverts() *getCampaign Details() Advert() *getAdvert Details() newAd:Advert addNewAdvert() Object lifeline Activation Object creation Campaign Manager
12
Boundary & Control Classes listCampaigns() *getCampaignDetails() Advert() *getAdvertDetails() addNewAdvert() :AddAdvertUI :AddAdvert :Client :Campaign :Advert showClientCampaigns() selectClient() selectCampaign() showCampaignAdverts() listAdverts() createNewAdvert() addNewAdvert() newAd:Advert startInterface() *getClient() Campaign Manager
13
Reflexive Messages :Client :Campaign :Advert getName() listCampaigns() checkCampaignBudget() *getCampaign Details() *getCost() getOverheads() Campaign Manager
14
Focus of Control Indicates times during an activation when processing is taking place within that object Parts of an activation that are not within the focus of control represent periods when, for example, an operation is waiting for a return from another object May be shown by shading those parts of the activation rectangle that correspond to active processing by an operation
15
Focus of Control :Client :Campaign :Advert getName() listCampaigns() checkCampaignBudget() *getCampaignDetails() * getCost() getOverheads() Campaign Manager
16
Return A return is a return of control to the object that originated the message that began the activation Returns are shown with a dashed arrow, but it is optional to show them at all since it can be assumed that control is returned to the originating object at the end of the activation
17
Message Types A synchronous message or procedural call, shown with a full arrowhead, causes the invoking operation to suspend execution until the focus of control has been returned to it An asynchronous message, drawn with an open arrowhead, does not cause the invoking operation to halt execution while it awaits a return
18
Object Destruction listAdverts() deleteAdvert() Object destruction :Campaign :Advert destroy() *getAdvertDetails() X
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.