610 likes | 793 Views
Trainers: Pierre LE FEVERE DE TEN HOVE Richard WALKER. Altran CIS O bject- O riented A nalysis and D esign. Session 1 Introduction to OOAD with UML and the UP. Objectives and Agenda. Objectives Profile of the class Overview of OOAD, UML and (R)UP Introduction for 2 certifications
E N D
Trainers: Pierre LE FEVERE DE TEN HOVE Richard WALKER Altran CISObject-Oriented Analysis and Design Session 1 Introduction to OOAD with UML and the UP OOAD Training
Objectives and Agenda Objectives Profile of the class Overview of OOAD, UML and (R)UP Introduction for 2 certifications OOAD (IBM-Certified Solution Designer) UML (OMG-Certified UML Professional Fundamental: OCUP-F) Agenda Preliminary mock exam The Unified Modeling Language The Unified Process Business process modeling Requirement modeling Architecture Structural modeling Behavioral modeling Design and Technical implementation Training and certification
Practice ScopeSoftware Engineering Practice People & Profiles IT Governance Process Improvement IT EXP Technical Experts MGT Project & Service Managers BA Business Analysts QA Quality Assurance Specialists EXEC IT Executive Managers Technical Environments Business Environments Business Solutions IT Infrastructure Best Practices OOAD Training - RWA
Object-Oriented Analysis and DesignSoftware EngineeringTraining scope Functional & Technical Expertise for business solutions • Objectives • Provide end-to-end business solutions • From the problem to the implementation • Disciplines involved • Business Process Re-engineering • Organizational change implementation • Project Management • Global Sourcing • Java Platform Audit • Worldwide Standards OOAD Training - RWA
UML – Unified Modeling LanguageWhat is it? Unified Modeling Language • The UML is a modeling/graphical language for • Specifying , Visualizing, Constructing and Documenting …the artifacts of software systems • Unified: OMG Standard (www.omg.org) • Models are: • Abstractions used to better understand complex problems and their potential solutions. • Descriptions of a system through specific views showing a particular aspect of the system. • UML is not: • A method to develop software • A project management methodology • A set of Object-Oriented best practices • A “silver-bullet” solution OOAD Training - RWA
UML – Unified Modeling LanguageThe fathers of the language The Three Amigos • Grady Booch • Booch language and Software Engineering technique • Focus on design • Class diagrams (responsibilities) and 4-views architecture • James Rumbaugh • Object Modeling Technique: Object Modelisation Language • Focus on analysis • Class diagrams (data structure), state machine diagrams • Ivar Jacobson • Object Oriented Software Engineering: Object Modelisation Language • Employ use cases to drive software design • Sequence diagrams, communication diagrams (late 60's) OOAD Training - RWA
UML – Unified Modeling LanguageHow was it Built? UML 2.1 2007, Availability of the latest version of UML UML 2.0 2004, Adoption of UML 2.0 Superstructure Industrialization UML 1.5 2001, Final Submission to OMG UML 1.4 Standardization UML 1.3 UML 1.1 UML 1.0 Unification (OMG) 1996 UML 0.9 1995 Unified Method 0.8 Booch Method OMT (Rumbaugh) OOSE (Jacobson) Fragmentation OOAD Training - RWA
UML – Unified Modeling LanguageWhy is it useful? • UML is best suited to • Model software intensive systems based on object technology • Model business processes • Collect specifications • Organize documentation • Model detailed design • Prepare tests scripting • Develop Implementation structure • Communicate ideas about software design • UML allows specifying systems with an implementation-independent approach • UML is easy to understand for developers but also provides advanced features for expert analysts, designers and architects OOAD Training - RWA
UML – Unified Modeling LanguageHow to use it? UML Case tools • Visual Paradigm: VP-UML (free community version) http://www.visual-paradigm.com/ • Gentleware: Apollo and Poseidon http://gentleware.com • Magicdraw http://www.magicdraw.com/ • Select Business Solution: Component Architect http://www.selectbs.com/ • IBM: Rational Software Modeller http://www-306.ibm.com/software/awdtools/modeler/swmodeler/index.html • Enterprise architect • Visual studio • Eclipse (with plug-in) OOAD Training - RWA
UML – Unified Modeling LanguageConclusion UML = language to understand and being understood UML = tool This is not enough ! Unified Language but no unified Methodology • Structured Programming • Waterfall and V-Schemas • Agile approaches • Unified Process • X-Treme Programming • Scrum • Feature Driven Development • … OOAD Training - RWA
UP – Unified ProcessSoftware Development Approaches Structured Programming (~ 70’s) • Top-down approach • Program structure subsections modules functions • Encourage reuse • Focused on processes rather than on data • Modular design (<> changes) Waterfall and V-Schemas • Simple sequential software development method • Each phase is ordered and performed totally and validated • Closed to changes (limited come-back in phases) • Profile reallocation across projects • Difficult planning and budget estimates • Testing and user feedback at the end Agile • Unified Process • X-Treme programming • … OOAD Training - RWA
UP – Unified Process What is a process? Process • Defines Who is doing What, When, Where to do it, and How to reach a certain goal. New or changed New or changed Requirements System Software Engineering Process OOAD Training - RWA
UP – Unified Process Introduction Software Engineering Process • Assigning tasks & responsibilities • Ensuring high-quality within schedule & budget • Focused on content UP axioms • Iterative & Incremental • Requirements (Use case) & Risk driven • Focused on architecture (strategy more important that tactics) <> project management methodology OOAD Training - RWA
UP – Unified Process Rational Unified Process OOAD Training - RWA
In RUP all disciplines are expressed in terms of roles, activities and artifacts A unit of work with a clear purpose that a worker will perform Activity = element of planning & progress The behaviour and responsibilities of a (group of) individual(s). An individual can have many hats Worker = role A piece of information produced, modified or used by a process Artifact = Input & Output of activities Unified ProcessRational Unified Process Static aspect OOAD Training - RWA
RUP - Rational Unified Process Dynamic aspect A project is broken into 4 phases Each phase can have several iterations You may have iterations without increments iteration failed to provide added value You may have increments without iterations waterfall approach Major Milestones Inception Elaboration Construction Transition time OOAD Training - RWA
Objectives and Agenda Objectives Profile of the class Overview of OOAD, UML and (R)UP Introduction for 2 certifications Agenda Preliminary mock exam The Unified Modeling Language The Unified Process Business process modeling Requirement modeling Architecture Structural modeling Behavioral modeling Design and Technical implementation Training and certification
Business process modelingWhat is a business process? A business process • Isacollectionoforderedworkactivities • Aims to reach a Goal • Has specific inputs and outputs • Uses resources • Creates value for the customer (internal or external) OOAD Training
Business Process Modeling Activity DiagramsIntroductiveexample OOAD Training
Business process modelingIntroduction to BPM Objectives • Understand the business • Identify how the future application fits into the organization • Establish a communication channel • Software engineering <-----------> business engineering • Identify areas of improvement • Current issues and potential improvements • Delimit projects scope • Identify how the efforts will fit the overall business • Decrease change requests risks • Focusing on business processes and needs insures good understanding of business before jumping straight to system requirements Start with Business Process Modeling? • involve a lot of or complex processes or workflows • Involve unclear or to-be-improved processes • involve many departments and users. OOAD Training
Requirement ModelingOnline Banking System OOAD Training
WHY? WHO? WHEN? WHAT? WHERE? HOW? Requirement ModelingUse case Definition Use case is • A use case is the description of a functionality of a system from the user point of view • A use case describes a functional requirement in terms of interaction between a user and the system • A use case must provide a business benefit to the user Identification OOAD Training
Requirement ModelingArtifacts A use case diagram is a model that emphases: • the interaction between the actors and the systems through the use cases • the relations between uses cases • the relation between actors Each use case must be textual • Inception phase: • High level use cases • 10 – 20% detailed • Elaboration phase • 100% detailed OOAD Training
Architecture Architecture is many things to many different interested parties • multiple project’s stakeholders • with their own concerns and view of the system to be developed Architecture embodies, for each stakeholder, views of the system that addresses their concerns, models the choices/decisions, and suppresses the other details. Not all systems require all the same number of views OOAD Training
End-user Functionality Software Architecture RUP presents the Software Architecture in the 4+1 views LogicalView Implementation View Analysts/Designers Functionality Programmers Software management Use-Case View Process View Deployment View System integrators System engineers Performance Scalability Synchronisation and concurrency System topology Delivery, installation Communication OOAD Training
FAR Core ArchitectureLogical View OOAD Training
FAR Core ArchitectureProcess View OOAD Training
FAR Core ArchitectureDeployment View OOAD Training
FAR Core ArchitectureImplementation View OOAD Training
Objectives and Agenda Objectives Profile of the class Overview of OOAD, UML and (R)UP Introduction for 2 certifications Agenda Preliminary mock exam The Unified Modeling Language The Unified Process Business process modeling Requirement modeling Architecture Structural modeling Behavioral modeling Design and Technical implementation Training and certification
Structural modeling The structural diagrams help us to represents the structural aspects of a software. • Those structural aspects may be • Sets of objects description with their interrelationships • Physical components with their relationships • Material configuration of a system • Here are the main structural UML diagrams • Class Diagrams • Package Diagrams • Component Diagrams • Deployment Diagrams OOAD Training
Class DiagramHealthcare insurance illustration OOAD Training
Structural modelingClass Diagrams What is a class diagram? • A class diagram is a view of a system that emphasizes the structure of the classes. • A class diagram shows the static structure of the model • the entities that exist (classes, interfaces) • internal structure (properties, methods) • relationships to other entities • Class diagrams are one of the most common type of UML diagram. Why use class diagrams? • For conceptual/domain modeling • For detailed design modeling Use in UP: • Inception phase: Domain model (Conceptual model) • Elaboration phase: Analysis model (Specification model) • Construction phase: Design model (Implementation model) OOAD Training
Class DiagramsHow to identify? Identify Objects and their Relationships: • from Users (definitions of business objects) • from Use Cases (names of used concepts are potentially objects names) Identify Business Classes, their Relationships and their classification: • A class is an abstract representation of a set of objects that share the same structure, behavior and relationships • All objects described by a class share the same definition • Attributes • Operations • Relations Remove Business Classes that: • Are redundant • Are too general or specific • Represent an attribute or a behavior OOAD Training
Class DiagramHow to refine? Identify Design classes • Start thinking implementation • from Business Concept • from IT Concept (persistence) Refine Classes • Define attributes • Association Time to think about: • Abstraction: Favor some details over others to minimize complexity • Encapsulation: Hide information to reduce coupling and manage complexity. OOAD Training
Behavioral modeling The behavioral diagrams help us to define the processes that will support the system. • The behavioral aspects may be: • Roles and their interactions with the system • The behavior and communications of objects over time • The life cycle of objects in the system (~> events) • Control aspects of a system • Algorithm of operations • Here are the main behavioral UML diagrams • Use case diagrams • Sequence Diagrams • Collaboration Diagrams (aka Communication D.) • State Transition Diagrams • Activity Diagrams OOAD Training - RWA
Activity diagrams Processing an order OOAD Training - RWA
Behavioral modelingActivity Diagrams • What is an activity diagram? • An activity diagram is a view of a system that • emphasizes the flow of control of the target system (e.g. complex business rules) • focuses on internal treatment • An activity diagram shows the dynamic structure of the model • activity (operation invocation or business process step) • decision points • parallel activities (fork, join) • guard conditions • Why use activity diagrams? • Define a logical way for a work process • Simple way to describe workflows and the algorithm of an operation • Easy to understand by users <-> it can be a support for requirements discussions • Very useful to detail a Use Case • Assign responsibilities OOAD Training - RWA
State Machine Diagrams The Phone OOAD Training - RWA
Behavioral modelingState Machine Diagrams • What is a state machine diagram? • A state machine diagram is a view of a system that • captures the life-cycle of objects or sub-systems • emphasizes the various states that an object may be in and the transitions between them (through internal and external events) • defines how will behave an entity to various events depending on its preceding states (and not only its inputs). • A state machine diagram shows the dynamic structure of the model • states (initial, final and regular) • transitions (unstoppable) • actions (uninterruptible) • historical pseudo-state • Why use state machine diagrams? • Simple way to describe the life-cycle of complex objects OOAD Training
Sequence Diagrams Withdraw Money from ATM Draws attention to time sequence OOAD Training - RWA
Communication Diagrams Make a Phone Call Draws attention to object relationships OOAD Training - RWA
Behavioral ModelingInteraction Diagrams • What is an interaction diagram ? • An interaction diagram is view of a system that • describes how objects behave, interact and communicate with each others • shows a single path of execution (scenario) • An interaction diagram shows the dynamic structure of the model • objects • messages (synchronous, asynchronous) • Conditions (continuity, time, etc.) • There are two types of interaction diagrams • Sequence diagrams • Communication diagrams • Why use interaction diagrams? • Define how objects collaborate or interact in a certain situation • Introduce time in modelling • Very close to implementation OOAD Training - RWA
UML 2.0Diagrams Taxonomy UML2 Superstructure OOAD Training – RWA
Class Diagrams Use Case Diagrams Static Diagrams Object Diagrams Dynamic diagrams Sequence Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Statechart Diagrams Activity Diagrams Back to UML 1.4 Dynamics / behavior diagrams • Object lifecycle • Goal-driven collaboration between objects Static diagrams • Object Types • Object Relationships Models OOAD Training - RWA
Class Diagrams Use Case Diagrams Structural Diagrams Object Diagrams Package Diagrams Behavioral diagrams Sequence Diagrams Communication Diagrams Component Diagrams Deployment Diagrams State Machine Diagrams Timing Diagrams Composite Structure Diagrams Interaction Overview Diagrams Activity Diagrams UML 2.0 Behavioral diagrams • Interelated processes • Objects interactions and states Structural diagrams • System Components • Components relations and dependencies Models OOAD Training - RWA
UML 2.0What’s new? • Model Driven Architecture • Higher level of abstractions for defining Platform Independent Models • Iterative refinements for specifying Platform Specific Models dependent on technological choices • Code skeleton generation thanks to PSMs • New Diagrams • Package diagrams: to model the packages hierarchy and dependencies • Composite structure diagrams: to model the internal structure and internal collaboration of complex components at run-time including interaction points to other parts of the system • Interaction overview diagrams: to model complex methods with an extended activity diagrams whose nodes are interaction diagrams • Timing diagrams: to model the behaviour of one or more objects during a period of time, display the change in state and time/duration constraints • Communication diagrams: new name for collaboration diagrams. OOAD Training – RWA
Objectives and Agenda Objectives Profile of the class Overview of OOAD, UML and (R)UP Introduction for 2 certifications Agenda Preliminary mock exam The Unified Modeling Language The Unified Process Business process modeling Requirement modeling Architecture Structural modeling Behavioral modeling Design and Technical implementation Training and certification
Design & Technical Implementations • Time to think about • Reuse • In analysis Data • In implementation Services • Patterns • Analysis Patterns • Architectural Patterns • Design Patterns • Implementation techniques • Pair programming • Testing phases OOAD Training
Design & Technical ImplementationsWhat is Reuse? Many Object-Oriented design best practices increase reuse • Design by contract • Open-closed principle • Coupling and cohesion • … Some methods must be generalized in order not to write them at each time their usage is needed Patterns and Design Patterns are part of reuse techniques OOAD Training