Chapter 7 Model-Based software Architectures

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 4: Phase Management - Elaboration.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Rational Unified Process
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Iterative development and The Unified process
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Object Oriented Analysis and Design Using the UML
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 RUP Architecture.
Enterprise Architecture
© 2005 Prentice Hall14-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Principles of Object Technology Module 1: Principles of Modeling.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
RUP Fundamentals - Instructor Notes
Software Development *Life-Cycle Phases* Compiled by: Dharya Dharya Daisy Daisy
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Rational Unified Process Fundamentals Module 4: Disciplines II.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
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.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Object Oriented Design and Analysis Rational Unified Process.
Chapter – 9 Checkpoints of the process
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Rational Unified Process Fundamentals Module 3: Disciplines I.
An Architecture-Centric Process
Chapter 8 Workflows of the Process Taken from Walker Royce’s textbook – Software Project Management plus a number of Personal Comments.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Project Management (SEWPZG622) BITS-WIPRO Collaborative Programme: MS in Software Engineering SECOND SEMESTER /1/ "The content of this.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Rational Unified Process (RUP)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Module 3: Core Workflows I - Concepts Rational Unified Process Fundamentals Module 3: Core Workflows I - Concepts.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Requirements Analysis
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Software Architecture Architecture represents different things from use cases –Use cases deal primarily with functional properties –Architecture deals.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 Rational Unified Process – Part 2 Original slides modified.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Iterative development and The Unified process
Process 4 Hours.
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Unified Process Source & Courtesy: Jing Zou.
Recall The Team Skills Analyzing the Problem (with 5 steps)
Logical Architecture & UML Package Diagrams
Presentation transcript:

Chapter 7 Model-Based software Architectures Notes taken from Walker Royce’s textbook on Software Project Management

Introductory Comments Software Architecture – essential to building software systems, as is ALL architecture. When we speak about Architecture (not software) can apply stable laws of physics and mathematics. Software Architecture not governed by complete laws of math; no irrefutable first principles. At best, many heuristics and vague guidelines Goodness measurable only in certain situations

Introductory Comments So, what do practitioners do?? With no established theory, software architects must rely on experiences and trial and error in formulating software architectures. We recognize that the transition to an iterative process, where the early stages emphasize and promote architecture through evolution through prototyping and demonstration has proven to be the way to proceed.

Introductory Comments Years ago, early systems had a very simple architecture. had informal software architectures. Block diagrams; Hierarchy charts; Structure charts; IPO charts; Many tools at the detail level – for program design; not much at the architectural level… Nowadays, with the complexity of modern systems, we have many models and views to explain the many viewpoints of many different perspectives of modern software development. Need to show higher level views from different perspectives of different stakeholders – since there are now soooo many.  “A ‘model’ is a relatively independent abstraction of a system. A view is a subset of a model that abstracts a specific, relevant perspective. “ (p. 110)

Architecture: A Management Perspective “The most critical technical product of a software project is its architecture: the infrastructure, control, and data interfaces that permit software components to cooperate as a system and software designers to cooperate efficiently as a team.” With the complexity of modern systems, a basis of communications is essential, and ‘inter-project communications’ (different groups; different viewpoints) must be established and precise.

7.1 Management Perspective Three different aspects of an architecture: 1. An architecture – that is, the design of a software system as opposed to a component. (intangible design concept) Includes all engineering necessary to specify the materials needed (buy, reuse, custom, costs of construction…) 2. An architecture baseline – (tangible artifacts) – a slice of information across engineering artifacts sufficient to satisfy all stakeholders that the vision (function and quality) can be achieved with in the parameters of the business case (cost, profit, time, people, technology, …) Note: an architecture baseline contains more than just an architecture description (next slide)

7.1 Management Perspective 3. An architecture description – human-readable representation of the architecture, which is one of the components of an architecture baseline. Is an organized subset of information extracted from the design set model(s). More detailed; contains additional info in the models. Indicates how the intangible concept is realized via the tangible artifacts.

Note that architecture takes on different meanings in different domains! Levels of granularity can vary widely and depend largely on what is needed by stakeholders at that ‘level’ and what concerns they need to resolve.

Importance of Software Architecture “Achieving a stable architecture represents a significant project milestone at which the critical make/buy decisions should have been resolved. This life-cycle event represents a transition from the engineering stage of a project, characterized by discovery and resolution of numerous unknowns, to the production stage, characterized by management to a predictable development plan.”

Importance of Software Architecture Architecture and process encapsulate many of the important (high payoff or high risk) communications among individuals, teams, organizations and stakeholders. Poorly conceived architectures (and hence poor inter-process communications) and a process that is not a mature one (not well defined, taught, supported by management, and implemented by development teams, especially with established histories…) are often reasons for project failure. A process that is mature, a good understanding of all the primary requirements, and the development of an architecture that is demonstratable are essential requirements predictable planning – fundamental to management. Architecture development and process definition are the intellectual steps that map the problem to a solution without violating the constraints; they require human intervention and cannot be automated.

7.2 Architecture: A Technical Perspective. Although progress has been made, there is still a lack of agreement on definitions and principles. From Kruchten: “Software architecture encompasses the structure of software systems (the selection of elements and the composition of elements into progressively larger subsystems), their behavior (collaborations among elements), and the patterns that guide these elements, their collaborations, and their composition.” (underlining and bold is mine).

The Design Model includes the full breadth and depth of information. An architectural framework is defined in terms of views that are abstractions of the UML models in the design set. (Think of the 4+1 Architectural View of the RUP) The Design Model includes the full breadth and depth of information.  An architectural view (again, think of the five in the 4+1 architectural views of RUP) is an abstraction of the design model; That is, a higher-level view of more detailed artifacts/activities… it contains only the architecturally significant information. Most real-world systems require four views: Design, process, component, and deployment. RUP added the Use Case View as ‘driving’ all the views and overall architecture. Let’s look at the purposes of these views…

Models and Views – again To keep our terminology straight: A ‘model’ is a relatively independent abstraction of a system. (We can thus develop models – in general depicting / describing whatever it is we need to describe.) BUT a VIEW: A view is a subset of a model that abstracts a specific, relevant perspective. “ (p. 110) Remember, a view is developed to support a specific viewpoint or perspective or to support certain needs that certain groups of stakeholder have. As stated, it is a tailored subset of a model – to capture a relevant perspective. We have logical views, component views, deployment views,…

Views and their Purposes Design View (logical view in RUP) describes the architecturally significant structures and functions of the design model. Process View: describes concurrency and control thread relationships among the design, component, and deployment views. Component View: describes the structure of the implementation set (Implementation View in RUP) Deployment View: describes the structure of the deployment set. Recall: each of these views is developed to support certain needs of stakeholders. Design View (logical view in RUP) is developed to support analysts, programmers, architects, etc. Component View (Implementation View in RUP) is developed to support construction (programming and test) etc.

The Necessity of Views Design view is clearly essential. All systems need this view. Others are needed as necessary… Distributed systems need a process view and a deployment view; Large systems that might have custom and commercial components probably also need a component view.

The Design Set The design set will include all UML design models describing the solution space. (Big Cookie!! Depending on the complexity of a system itself, several models or partitions of other models (views) may need to be developed. Use case, design (logical), and process models provide for visualization of the logical and behavioral aspects of the system. Component view provides visualization of the implementation set; deployment model provides visualization of the deployment set.

The Design Set Note that ‘architecture’ is an organized and abstracted view into design models….. An architecture is captured through many views, which are extracts of design models and capture the significant structures, collaborations, and behaviors. The architectural description, then, of a system is captured via portions of each model; Part of the design model (design view) addresses architecture; Part of the process model (process view) addresses architecture (as needed) Part of the component model (implementation view) is part of the architectural view, etc. The views are extracts of design models that capture significant structures, collaborations, and behaviors.

Architecture The architectural descriptions are always kept electronically, but also maintained in a printable version. These engineering and architectural views are defined as collections of UML diagrams unlike text and basic graphics models of years past. (Be careful: management may still want these. Educate them where possible…)

Architecture – Many Faces Descriptions of an architecture is many things to many people in different application domains. And, these take on many different forms. Ideally, they can remain electronic, but … So, given all this, and recognizing that the descriptions can vary a great deal, what constitutes a good architecture baseline? That is, what is a good ‘critical mass’ of models / views in general? Remember, we are after content that is architecturally-significant….

Heuristics for an Architectural Baseline “Requirements: critical use cases, system-level quality objectives, and priority relationships among features and qualities. “Design: names, attributes, structures, behaviors, groupings, and relationships of significant classes and components. “Implementation: source component inventory and bill of materials (number name, purpose, cost) of all primitive components “Deployment: executable components sufficient to demonstrate the critical use cases and the risk associated with achieving the system qualities.” p.114

Architectural Baseline – Comments Project success is often dependent upon a architectural description in an architectural-first approach (like RUP). Essential to the question of ‘balance.’ (what is ‘in’ the architecture and what is not) Key word: ‘balance.’ Note that the architectural baseline is a subset of the architectural description, which is totally contained in the Design Set.

The Old and the New Conventional systems did not distinguish between the two (architectural description and architectural baseline) No rigorous notations (normally block diagrams and text) Little tie in to other engineering artifact sets for validation Iterative development – an “architecture baseline is a partial realization of the architecture description that is sufficient to provide tangible evidence that the architecture is valid in the context of the requirements and plans.” This is, thus, thee major ‘deliverable’ of the Elaboration phase, and hopefully we can readily see why this is so.

Architectural Baseline Degree of detail and forms depends many factors. Very skilled people developing a limited application may need only UML diagrams whereas a command-and-control system that is large scale and highly distributed will clearly require more details to validate a solid baseline!

Concluding Remarks Note that the transition from engineering into production should not take place unless a stable architecture baseline is established. Thus relevant stakeholders must agree that the original vision (supported by the requirements and and architecture) and represented in the design set and partially implemented in the implementation and deployment sets) can be achieved with a highly predictable cost and schedule. Verification requires briefings and executable prototypes that demonstrate the evolving capabilities. These will show the maturity of the process.