Download presentation
Presentation is loading. Please wait.
1
Logical Architecture & UML Package Diagrams
2
Let’s take a step back Why is it so difficult to build good software?
bugs/?currentPage=all
3
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 /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
4
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
5
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
6
Software Tools Progression
Development: Punch cards to IDES Language: Assembly to high level Debugging: Print lines to symbolic debuggers Git Coverage and verification tools
7
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.
8
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.
9
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
10
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.
11
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
12
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
13
Common Layers in Information Systems
14
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
15
Layers & Partitions Layers: vertical, partitions: horizontal, parallel slices
16
Mixing Views in the Architecture
17
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
18
References Packages in java and how to use them: Chapter 30 – Designing the Logical Architecture Patterns 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.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.