577ab Object Orientation IntroductionAgenda577a Lectures577a Lectures (cont.)577b Approach577b Approach (cont.)577b Lectures577b Lectures (cont.)University of Southern CaliforniaCenter for Systems and Software Engineering577ab Object Orientation IntroductionDavid Klappholz A Winsor Brown, Nupul Kukreja ([email protected], [email protected])September 25, 2009University of Southern CaliforniaCenter for Systems and Software EngineeringAgenda•577a–Tutorials–Lectures–Assignments•577b–Approach–Lectures–WorkshopsUniversity of Southern CaliforniaCenter for Systems and Software Engineering577a Lectures577a stresses the following aspects of OOA&D1.Domain Modeling using the Color Coded approach2.Architectural Styles and patterns (emphasizing the most applicable styles for the 577 projects •Multilayered and 3-tiered, •Blackboard, •Event Based etc.,)3.Use case analysis using ‘Robustness Diagrams’09/26/2009 © USC-CSSE 2005-20093University of Southern CaliforniaCenter for Systems and Software Engineering577a Lectures (cont.)4. Moving from Robustness Diagrams to Sequence Diagrams5. Sequence Diagrams to Design level Class Diagrams which can very easily be mapped to implementation level class diagramsNote: The ‘Domain Model’ is constantly transformed into an analysis/design model (class diagram) through the above process. It can also be used to ‘verify’ that the domain related elements have been captured in the model of the ‘to-be-built’ system and to verify the suggested workflow of the use-case descriptions09/26/2009 © USC-CSSE 2005-20094University of Southern CaliforniaCenter for Systems and Software Engineering577b Approach•577a restricts the process of OOA&D to produce not-so-low-level class diagrams–May have ‘system’ related functionality in their attributes/methods (e.g., a ‘Button’ attribute or a ‘ConnectToDB()’ method)–there are seldom any ‘languageT' implementation specific attributes/behaviors (e.g., JButton in case Java used for development)09/26/2009 © USC-CSSE 2005-20095University of Southern CaliforniaCenter for Systems and Software Engineering577b Approach (cont.)•577b proceeds to refine the models of 577a to be more implementation specific: i.e., if still at a semi-implementation level, to drive it down to absolute implementation details –basic data types int, float, double, bool or JButton, JFrame, JDialog etc., –corresponding methods provided by the development environment09/26/2009 © USC-CSSE 2005-20096University of Southern CaliforniaCenter for Systems and Software Engineering577b Lectures1. To have a high level ‘package’ view of the components of the chosen architecture. E.g., –If the team chose 3-tier architecture then ‘planning’ for partitioning the ‘code’ into View, Business Logic and Data Layer ‘packages’–Creating appropriate ‘stubbed’ files in the respective packages before starting to code – based on the implementation class diagramHelps analyze the ‘feasibility’ of the implementation model09/26/2009 © USC-CSSE 2005-20097University of Southern CaliforniaCenter for Systems and Software Engineering577b Lectures (cont.)2. Introduction to standard design patterns which are most applicable for the projects being developed. For example:–Factory Pattern (both AbstractFactory and Factory Method)–Singleton Pattern–Strategy Pattern – helps understand the value/power of ‘interfaces’ and polymorphism3. Going from implementation level class diagrams to code09/26/2009 © USC-CSSE
View Full Document