Download presentation
Presentation is loading. Please wait.
Published byἈλαλά Ζέρβας Modified over 6 years ago
1
Chris Russell O2.41 02920 41 6431 crussell@cardiffmet.ac.uk
Business Analysis Introduction to Classes Chris Russell O2.41 Lecture BA15 Introduction to Classes
2
Lecture BA15 Introduction to Classes
Session schedule Business Analysis Schedule Academic Year Semester 2 Week Topic 1 Introduction 2 Investigate situation: rich picture, context diagrams 3 Consider perspectives: types of participation, CATWOE, Power-Interest, Thomas-Kilmann 4 Analyse needs 1: Use Cases 5 Analyse needs 2: structured techniques 6 Define requirements 1a: SSADM 7 Define requirements 1b: SSADM EASTER 8 Define requirements 2: UML 9 Generic assignment feed-forward and task review 10 Balance good enough software against quality costs; Prioritise requirements 11 Assignment submisison Lecture BA15 Introduction to Classes
3
Activities and Paradigms
Investigate Situation Consider Perspectives Analyse Needs Define Requirements Socio-technical Rich picture CATWOE Types of participation Thomas-Kilmann Power-Interest X Functional Level 0 diagram Structured techniques DFD, ERM and ELH Object-Oriented Context diagram Use Cases Class and Sequence diagrams Lecture BA15 Introduction to Classes
4
Lecture BA15 Introduction to Classes
Contents UML compared to SSADM Purpose Basic notation Basic guidelines Example Lecture BA15 Introduction to Classes
5
Lecture BA15 Introduction to Classes
UML compared to SSADM Using use cases does not necessitate the adoption of UML for the entire design. The most common alternative, at least in the UK, is the Structured Systems Analysis and Design Methodology (SSADM). Whereas UML emphasises decomposing a problem space by objects, SSADM emphasises decomposing a problem space by functions and processes, resulting in a hierarchical breakdown of processes composed of sub-processes. Thus a more process-intensive system might be more appropriately modelled using SSADM and a more data-intensive system might be more appropriately modelled using UML. Lecture BA15 Introduction to Classes
6
Process-intensive and data-intensive?
Lecture BA15 Introduction to Classes Object-oriented versus function-oriented decomposition (Larman 1998)
7
Lecture BA15 Introduction to Classes
Yes, then… If the system, like this library information system, may be decomposed by objects or processes, the choice between UML and SSADM must be made according to other criteria. Therefore, there follows a brief assessment of these two methodologies… Lecture BA15 Introduction to Classes
8
Lecture BA15 Introduction to Classes
Data UML Subsumes data within the class to which it relates, reflecting the object-oriented approach. Not representing data stores or files may cause problems in presenting an easily recognised analysis to the client or a suitable analysis for a designer to build upon. SSADM Data flow diagram is concerned with data stores and files and the flow of data from and to these. Such stores and files may also form part of the entity relationship diagram. Lecture BA15 Introduction to Classes
9
Lecture BA15 Introduction to Classes
Conditions UML The sequence diagram is effective in representing the optionality and the parallel nature of condition checks. SSADM The entity life history diagram is effective in representing the optionality and the parallel nature of condition checks. Lecture BA15 Introduction to Classes
10
Lecture BA15 Introduction to Classes
Users UML The sequence diagram and use cases are readily understandable by someone with knowledge of the business but not systems analysis. SSADM The data flow diagram and the entity life history are readily understandable by someone with knowledge of the business but not systems analysis. Lecture BA15 Introduction to Classes
11
Lecture BA15 Introduction to Classes
Development UML The class-focused approach of UML – for instance, the detail of attributes, operations and multiplicity – deliberately lends itself to object-oriented programming languages. A very useful technique for validating a system design is to take each use case in turn and check that the design allows the use case to be carried out. SSADM The process-focused approach of SSADM lends itself primarily to functional programming languages – or functional use of object-oriented languages. Lecture BA15 Introduction to Classes
12
Lecture BA15 Introduction to Classes
Time UML The sequence diagram can express time conditions; indeed, time may even be represented by lines on the chart. SSADM Does not provide a diagram which can adequately represent real-time, especially ‘hard’ real time. An entity life history diagram will represent sequence, the ordering of events across time, but will not represent the actual, required or conditional time periods between events. Lecture BA15 Introduction to Classes
13
Lecture BA15 Introduction to Classes
Endurance UML By being a data-driven approach leads, potentially, to a more enduring analysis, design and subsequent development. As a use case has value for a particular actor, that actor will stay connected with the use case throughout the development and possible redevelopment of the program. SSADM The functions required are likely to change more with time than data, leading to a less enduring analysis, design and subsequent development. Lecture BA15 Introduction to Classes
14
Lecture BA15 Introduction to Classes
Purpose Analyse requirements in the form of a conceptual, static, data-oriented model Depict the detailed design of object-oriented software These two purposes require two different styles of class diagram Lecture BA15 Introduction to Classes
15
Lecture BA15 Introduction to Classes
Basic notation Name Top box Attributes Middle box Operations Bottom box Relationships (discussed next week) Line Lecture BA15 Introduction to Classes
16
Lecture BA15 Introduction to Classes
Guidelines for name A template from which objects are instantiated (i.e. created) Singular noun Derived from problem domain and unambiguous Typed in bold text and centred Lecture BA15 Introduction to Classes
17
Guidelines for attributes
Information that is pertinent to their instances In analysis attributes are ordinarily in the Attribute Name format whilst in design they are in the attributeName format In analysis an incomplete list can be indicated by use of an ellipsis (…) at the end of the list In design they take certain types e.g. Boolean, integer Domain terminology, not generic Lecture BA15 Introduction to Classes
18
Guidelines for operations
Functionality that the object supports Strong imperative verb e.g. in analysis Verb Noun format whilst in design verbNoun format In design parameters and return types are added In analysis an incomplete list can be indicated by use of an ellipsis (…) at the end of the list Domain terminology, not generic If not using – a class may have only one box – leave a blank placeholder as similar naming conventions can cause confusion between attributes and operations Lecture BA15 Introduction to Classes
19
Lecture BA15 Introduction to Classes
Identifying classes An appropriate starting-point for arriving at classes are the use cases Looking back to the share advice example, most of the use cases imply a class, thus: Views Chart becomes the class Chart, Retrieves Share Price becomes the class SharePrice, Calculates Moving Averages becomes the class MovingAverage, Sends becomes the class . Their changed names reflect the more data-oriented nature of classes. Subscribe Address and Unsubscribe Address can be combined in a class called Registration. Lecture BA15 Introduction to Classes
20
Analysis or design example?
Lecture BA15 Introduction to Classes
21
Description of operations…
SharePriceRetriever() returns a Double This method “manages” the retrieving of the HTML page containing the share price, its parsing to find the price and the conversion of this price to a Double (so that it may be stored in a Vector). makeDouble(String numberString) returns a Double This method “strips” the share price token of extraneous characters and space, and then converts the String to a Double so that it may be stored in a Vector object. Lecture BA15 Introduction to Classes
22
…Description of operations
getPage(String urlString) returns a String This method reads the HTML page into a character array and then assigns this array to a String. parsePage(String htmlStringText) This method parses the String for tokens, that is, data contained between the HTML tags. getToken(int index) returns a String getToken(String searchString, int offset) returns a String findToken(String tokenString) returns an Integer These methods find the token containing the share price. Lecture BA15 Introduction to Classes
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.