MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.

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
Documenting a Software Architecture By Eng. Mohanned M. Dawoud.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
SYSC System Analysis and Design
OASIS Reference Model for Service Oriented Architecture 1.0
Object-Oriented Analysis and Design
Rational Unified Process
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Software Engineering General Project Management Software Requirements
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.
Chapter 7 Model-Based software Architectures
Object Oriented Analysis and Design Using the UML
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Enterprise Architecture
Principles of Object Technology Module 1: Principles of Modeling.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
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.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Identify steps for understanding and solving the
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.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Chapter 7 Applying UML and Patterns Craig Larman
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
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)
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Creating a European entity Management Architecture for eGovernment CUB - corvinus.hu Id Réka Vas
An Architecture-Centric Process
The Rational Unified Process 1 EECS810: Software Engineering.
Software Project Management (SEWPZG622) BITS-WIPRO Collaborative Programme: MS in Software Engineering SECOND SEMESTER /1/ "The content of this.
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.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Software Architecture Architecture represents different things from use cases –Use cases deal primarily with functional properties –Architecture deals.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
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.
Process 4 Hours.
Software Architecture Lecture 3
Software Architecture Lecture 3
Rational Unified Process
Software Architecture Lecture 3
Software Architecture Lecture 3
An Introduction to Software Architecture
Software Architecture Lecture 3
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Software Architecture Lecture 3
Presentation transcript:

MODEL-BASED SOFTWARE ARCHITECTURES

 Models of software are used in an increasing number of projects to handle the complexity of application domains.  By applying models for the specification of software application domain specific knowledge is separated from technological specific knowledge.

 While models can be applied in different phases of a software development process, research projects in the Model-based software architectures group are looking at the following application of models:  Generative approaches for tackling problems in the research area of software product lines  Interpreting approaches to enable software architectures for Mobile Grid (and Cloud) Computing

 An architecture is the software system design.  The ultimate goal of the engineering stage is to converge on a stable architecture baseline.  An architecture baseline is not a paper document, it is a collection of information across all the engineering sets.  Architectures are described by extracting the essential information from the design models.  Software architecture is the central design problem of a complex software system.  However, like a architecture of a large building, the critical performance attributes and features of a complex software system cannot be described through stable laws of physics.

Lacking established theory, software architects must rely on some form of experimentation in formulating software architectures. This is one of the main reasons for transitioning to an iterative process, in which early activities emphasize and promote architecture evolution through prototyping and demonstration. In today’s complex software systems, we have evolved to multiple, distinct models and views to exploit the advantages of modern technologies. A model is a relatively independent abstraction of a system. A view is a subset of a model that abstracts a specific, relevant perspective.

Architecture: A Management Perspective Architecture includes the infrastructure, control, and data interfaces that permit software components to cooperate as a system and software designers to cooperate efficiently. If a software development team is to be successful, the interproject communication, as captured in the software architecture, must be both accurate and precise. From a management perspective, there are three different aspects of an architecture: 1.An architecture (the intangible design concept) is the design of a software system, as opposed to the design of a component.

2. An architecture baseline (the tangible artifacts) is a slice of information across the engineering artifact sets sufficient to satisfy all stakeholders that the vision can be achieved within the parameters of the business case. 3. An architecture description is an organized subset of information extracted from the design set model(s). The number of views and the level of detail in each view can vary widely. Similarly, the architecture of the software for an air traffic control system is very different from the software architecture of a small development tool.

The Importance of s/w architecture and its close linkage with modern s/w development processes Achieving a stable s/w architecture represents a significant project milestone at which the critical make/buy decisions should have been resolved. Architecture representations provide a basis for balancing the trade-offs between the problem space and the solution space. The architecture and process encapsulate many of the important communications among individuals, teams, organizations, and stakeholders. Poor architectures and immature processes are often given as reasons for project failures.

A mature process, an understanding of the primary requirements, and a demonstrable architecture are important prerequisites for predictable planning. Architecture development and process definition are the intellectual steps that map the problem to a solution without violating the constraints, they require human innovation and cannot be automated. Architecture: A technical Perspective (Krutchen, 1995) Software architecture encompasses the structure of software systems, their behavior, and the patterns that guide these elements, their collaboration, and their composition. The context of s/w architecture structure, behavior, and patterns must include functionality, performance, resilience, comprehensibility, economic trade-offs, technology constraints and aesthetic concerns.

An architecture framework is defined in terms of views that are abstractions of the UML models in the design set. An architecture view is an abstraction of the design model; it contains only the architecturally significant information. FOUR VIEWS Design: Describes architecturally significant structures and functions of the design model. Process: Describes concurrency and control thread relationships among the design, component, and deployment views. Component: Describes the structure of the implementation set. Deployment: Describes the structure of the deployment set.

Architecture, an organized and abstracted view into the design models DV UCVPVCVDepl V DM UVMPMCMDepl M REQ DES IMPLDEPL Depending on its complexity, a system may require several models or partitions of a single model An architecture is described through several views, which are extracts of design models that capture the significant structures, collaborations, & behaviors The requirements set may include UML models describing the problem space The design set includes all UML design models describing the solution space. The design, process, and use case models provide for visualization of the logical and behavioral aspects of the design. The component model provides for visualization of the implementation set. The deployment model provides for visualization of the deployment set. Architecture Description Document Design View, Process View, Use Case View Component View, Deployment View Other views (optional) Other material: Rationale, constraints

Generally, an architecture baseline should include the following: 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 components inventory and bill of materials of all primitive components Deployment: Executable components sufficient to demonstrate the critical use cases and the risk associated with achieving the system qualities.

An architecture baseline is defined as a balanced subset of information across all sets, whereas an architecture description is completely encapsulated within the design set. The architecture description will take a wide range of forms, from a simple, direct subset of UML diagrams to a complex set of models with a variety of distinct views that capture and compartmentalize the concerns of a sophisticated system.