Logical Architecture & UML Package Diagrams

Slides:



Advertisements
Similar presentations
Chapter 2 – Software Processes
Advertisements

Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Object-Oriented Analysis and Design
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Logical Architecture and UML Package Diagrams
March R McFadyen1 Figure 30.2 Layers in NextGen They only have three layers in this architecture Each layer is shown as a UML Package No separate.
The Design Discipline.
CIS 321—IS Analysis & Design
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
The Rational Unified Process
Object Oriented Analysis and Design Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
The Rational Unified Process 1 EECS810: Software Engineering.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Patterns Roberto Damiani Mendes. Roteiro Definition; Definition; Architecture Patterns; Architecture Patterns; Design Patterns; Design Patterns; GRASP.
UML Package Diagrams. Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense.
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Design Concepts ch-8
TK2023 Object-Oriented Software Engineering
Process 4 Hours.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
School of Business Administration
Design engineering Prepared By:Jay A.Dave..
OO Methodology OO Architecture.
Software Engineering and Best Practices
HCI in the software process
Software Processes.
COMP 350: Object Oriented Analysis and Design Lecture 2
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Chapter 13 Logical Architecture.
Chapter 2 Software Processes
Figure 30.2 Layers in NextGen
Chapter 2 – Software Processes
Object oriented analysis and design
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
HCI in the software process
An Introduction to Software Architecture
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
HCI in the software process
Design Yaodong Bi.
Human Computer Interaction Lecture 14 HCI in Software Process
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 8, Design Patterns Introduction
Chapter 6: Architectural Design
Introduction to OOAD and the UML
Chapter 13 Logical Architecture.
CSCI 360: Software Architecture & Design
Presentation transcript:

Logical Architecture & UML Package Diagrams

Let’s take a step back Why is it so difficult to build good software? https://www.wired.com/2005/11/historys-worst-software- bugs/?currentPage=all

The “60’s Software crisis” Moved from HW to SW demand Product complexity growth Demand of SW in NASA & Boeing increased exponentially Development effort Class exercise Small project Term project Word processor Operating system Developers productivity growth - gap between that and the software complexity needed Davis 1990 - 5/7 million spent were wasted (not used or not delivered software) Nato 1969 conference on software development realization that you cannot build exactly the software you need

Software Process Break down complexity in a systematic way Break it down in a formal way Processes: Waterfall - the way the water falls Evolutionary prototyping Rational Unified Process Agile - sacrifice discipline to accommodate changes, more usually changes in requirements

Software Phases Requirements engineering Design - high level structure of sw Implementation - code Verification and validation Maintenance - bugs, new functionality SW Phases: only one related to coding

Software Tools Progression Development: Punch cards to IDES Language: Assembly to high level Debugging: Print lines to symbolic debuggers Git Coverage and verification tools

Preliminary Iteration(s) The UP Disciplines Management Environment Business Modeling Implementation Test Analysis & Design Preliminary Iteration(s) Iter. #1 Phases Process Disciplines Iterations Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements Elaboration Transition Inception Construction Supporting Disciplines In an iteration you walk through all disciplines.

Preliminary Iteration(s) The UP Disciplines Management Environment Business Modeling Implementation Test Analysis & Design Preliminary Iteration(s) Iter. #1 Phases Process Disciplines Iterations Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements Elaboration Transition Inception Construction Supporting Disciplines Focus of this course. Although an iteration includes work in most disciplines, the relative effort and emphasis change over time. Early iterations tend to apply greater emphasis to requirements and design, and later ones less so. Figure illustrations are suggestive, not literal. Note that activities and artifacts are optional (except code!) Developers select those artifacts that address their particular needs.

What is this architecture thing again? Software Architecture deals with the large scale system Software architecture includes organization and major structure of the major elements of the system system and subsystem behavior collaborations Architectural investigation Identifying those functional and non-functional requirements that should have a significant impact on the system design   Architectural design Resolution of requirements in the design of the software, the hardware and networking, etc. Architectural Dimensions and Views in UP Logical Architecture – conceptual organization of system in layers, packages, major frameworks, classes, interfaces, subsystems Deployment Architecture – allocation of processes to processing units and network configuration

Logical Architecture (LA) part of Design Model Logical architecture: the large-scale organization of software classes into packages, subsystems, and layers. “Logical” because no decisions about how these elements are deployed across different operating system processes or across physical computers in a network  Logical architecture is a structural design that gives as much detail as possible without constraining the architecture to a particular technology or environment. For example, a diagram that illustrates the relationship between software components. Physical architecture gives enough detail to implement the architecture on a technology. For example, a specification of software services and components.

UML Package Diagrams & Layers What is LA? Large-scale organization of the sw classes into packages or namespaces, subsystems, & layers Logical: no decision how to deploy elements, vs deployment architecture What is a layer? Very coarse grained grouping of classes, packages, subsystems, that has cohesive responsibility for a major aspect of the system What is SW architecture?? An architecture is the set of significant decisions about the organization of a sw system. Selection of structural elements, system components, behavior and collaborations. Has to do with large scale Big Ideas in motivations, constraints, organizations, patterns, responsibilities, & connections of system

Guideline: Design with Layers Why design with layers? Separation of concerns, low coupling, relate components with appropriate parts of system. How many layers? Architectural Pattern : Layers Solution Organize the large-scale logical structure of a system into discrete layers of distinct, related responsibilities, with a clean cohesive separation of concerns such that the “lower” layers are low-level and general services, and the higher layers are more application specific.   Collaboration and coupling is from higher to lower layers; lower to higher layer coupling is avoided Problems Source code problems are rippling throughout the system – many parts of the system are highly coupled Application logic is intertwined with the user interface, and cannot be reused with a different interface, nor distributed to another processing mode Potential general technical services or business logic is intertwined with more application specific logic. There is a high coupling across different areas of concern. It is difficult to divide the work along clear boundaries for different developers

Common Layers in Information Systems

Domain Layer and Domain Model Relationship How do we design the application logic with Objects? What is domain model? Visualization of noteworthy domain concepts, inspiration for names of classes Domain Layer: part of the sw and the domain model

Layers & Partitions Layers: vertical, partitions: horizontal, parallel slices

Mixing Views in the Architecture

Model-View Separation Principle do not couple non-UI objects to UI objs DO NOT put application logic into the UI obj methods Model: domain layer of objects View: UI objects Model objects should not have direct knowledge of view objs. MVC enterItem(…) message from UI layer to Domain Layer

References Packages in java and how to use them: https://beginnersbook.com/2013/03/packages-in-java/ Chapter 30 – Designing the Logical Architecture Patterns https://csis.pace.edu/~marchese/CS616/Lec11/se_l11.htm A package as the name suggests is a pack(group) of classes, interfaces and other packages. In java we use packages to organize our classes and interfaces. We have two types of packages in Java: built-in packages and the packages we can create (also known as user defined package). In this guide we will learn what are packages, what are user-defined packages in java and how to use them.