Manish Kumar,MSRITSoftware Architecture1 Architecture.

Slides:



Advertisements
Similar presentations
Architecture Arnon Rotem-Gal-Oz Product Line Architect
Advertisements

ATAM Architecture Tradeoff Analysis Method
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Architecture Representation
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Site Skin Structure Services Space plan Stuff Software Architecture and Software Architecture Patterns (1)
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Using Architecture Frameworks
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
The Use of Zachman Framework Primitives for Enterprise Modeling
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture in Practice
SE 555 – Software Requirements & Specifications Introduction
Course Instructor: Aisha Azeem
Microsoft Architectural Frameworks Informational Session & Discussion
Introduction to Software Testing
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Object Oriented Analysis and Design Using the UML
Enterprise Architecture
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Developing Enterprise Architecture
The Software Development Life Cycle: An Overview
Chapter 10 Architectural Design
Software Architecture versus Software Design Suren K Poruri
Engineering, Operations & Technology | Information TechnologyAPEX | 1 Copyright © 2009 Boeing. All rights reserved. Architecture Concept UG D- DOC UG D-
An Introduction to Software Architecture
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Chapter 7 Applying UML and Patterns Craig Larman
Lecture 7: Requirements Engineering
An Introduction to Software Engineering. Communication Systems.
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.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
System Context and Domain Analysis Abbas Rasoolzadegan.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Basic Concepts and Definitions
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Quality Consulting Module 7 Solution Development.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
TAL Lecture 1 Introduction to Software Architecture
Architecture Arnon Rotem-Gal-Oz Product Line Architect
Software Architecture and Quality BY
OO Methodology OO Architecture.
Software Architecture and
Introduction To software engineering
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Presentation transcript:

Manish Kumar,MSRITSoftware Architecture1 Architecture

Manish Kumar,MSRIT Software Architecture 2 Agenda Why Software Architecture? What’s Software Architecture? Architecture types ? Levels ??? Introduction to Architecture Documentation

Manish Kumar,MSRIT Software Architecture 3 Discussion What’s Software Architecture

Manish Kumar,MSRIT Software Architecture 4 Can be built by one person Requires Minimal modeling Simple process Simple tools Architecting a dog house Kruchten

Manish Kumar,MSRIT Software Architecture 5 Architecting a house Built most efficiently and timely by a team Requires Modeling Well-defined process Power tools Kruchten

Manish Kumar,MSRIT Software Architecture 6 Architecting a high rise Kruchten

Manish Kumar,MSRIT Software Architecture 7 Differences Scale Process Cost Schedule Skills and development teams Materials and technologies Stakeholders Risks

Manish Kumar,MSRIT Software Architecture 8 Agenda Why Software Architecture? What’s Software Architecture? Architecture types ? Levels ??? Introduction to Architecture Documentation

Manish Kumar,MSRIT Software Architecture 9 Architecture defined Software architecture is what software architects do Beck

Manish Kumar,MSRIT Software Architecture 10 Architecture defined Formal Definition IEEE  Software architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution IEEE

Manish Kumar,MSRIT Software Architecture 11 Software architecture encompasses the set of significant decisions about the organization of a software system  Selection of the structural elements and their interfaces by which a system is composed  Behavior as specified in collaborations among those elements  Composition of these structural and behavioral elements into larger subsystems  Architectural style that guides this organization Booch, Kruchten, Reitman, Bittner, and Shaw Architecture defined Another Go

Manish Kumar,MSRIT Software Architecture 12 Perry and Wolf, 1992  A set of architectural (or design) elements that have a particular form Boehm et al., 1995  A software system architecture comprises A collection of software and system components, connections, and constraints A collection of system stakeholders' need statements A rationale which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system stakeholders' need statements Clements et al., 1997  The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them Architecture defined Few More

Manish Kumar,MSRIT Software Architecture 13 Common elements 1/2 Architecture defines major components Architecture defines component relationships (structures) and interactions Architecture omits content information about components that does not pertain to their interactions Behavior of components is a part of architecture insofar as it can be discerned from the point of view of another component

Manish Kumar,MSRIT Software Architecture 14 Common elements 2/2 Every system has an architecture (even a system composed of one component) Architecture defines the rationale behind the components and the structure Architecture definitions do not define what a component is Architecture is not a single structure -- no single structure is the architecture

Manish Kumar,MSRIT Software Architecture 15 Architecture is Early Architecture represents the set of earliest design decisions  Hardest to change  Most critical to get right Architecture is the first design artifact where a system’s quality attributes are addressed

Manish Kumar,MSRIT Software Architecture 16 Architecture Drives Architecture serves as the blueprint for the system but also the project:  Team structure  Documentation organization  Work breakdown structure  Scheduling, planning, budgeting  Unit testing, integration Architecture establishes the communication and coordination mechanisms among components

Manish Kumar,MSRIT Software Architecture 17 Architecture vs. Design non-functional requirements (“ilities”) functional requirements (domains) Important : this is a general guideline – sometimes the borders are blurred Architecture: where non-functional decisions are cast, and functional requirements are partitioned Design: where functional requirements are accomplished architecture design

Manish Kumar,MSRIT Software Architecture 18 System Quality Attribute Performance Availability Usability Security Maintainability Portability Reusability Testability End User’s view Developer’s view Time To Market Cost and Benefits Projected life time Targeted Market Integration with Legacy System Roll back Schedule Business Community view A list of quality attributes exists in ISO/IEC Information Technology – Software Product Quality

Manish Kumar,MSRIT Software Architecture 19 Agenda Why Software Architecture? What’s Software Architecture? Software Architecture types ? Levels ??? Introduction to Architecture Documentation

Manish Kumar,MSRIT Software Architecture 20 Business Architecture Concerned with the business model as it relates to an automated solution.  E-business is a good candidate  Structural part of requirements analysis.  Domain Specific

Manish Kumar,MSRIT Software Architecture 21 Technical Architecture Specific to technology and the use of this technology to structure the technical points (Technology Mapping) of an architecture .NET  J2EE  Hardware architects

Manish Kumar,MSRIT Software Architecture 22 Solutions Architecture Specific to a particular business area (or project) but still reliant on being a technical focal point for communications between the domain architect, business interests and development.

Manish Kumar,MSRIT Software Architecture 23 Enterprise Architecture The organizing logic for a firm’s core business processes and IT capabilities captured in a set of principles, policies and technical choices to achieve the business standardization and integration requirements of the firm’s operating model. Concerned with cross project/solution architecture and communication between different practices in architecture.

Manish Kumar,MSRIT Software Architecture 24 Product Line Architecture Common Architecture for a set of products or systems developed by an organization

Manish Kumar,MSRIT Software Architecture 25 Product Line - Initiation Evolutionary  Product line architecture and components evolve with the requirements posed by new product line members. Revolutionary Product line architecture and components developed to match requirements of all expected product-line members

Manish Kumar,MSRIT Software Architecture 26 Agenda Why Software Architecture? What’s Software Architecture? Architecture types ? Levels ??? Introduction to Architecture Documentation

Manish Kumar,MSRIT Software Architecture 27 IEEE Recap Recommended Practice for Architectural Description of Architectural Description of Software-Intensive Systems  Define the Relations between Stakeholders Concerns Views Viewpoint Models Architectural Description

Manish Kumar,MSRIT Software Architecture 28 Documentation Conceptual Model IEEE

Manish Kumar,MSRIT Software Architecture 29 Stakeholders & their concerns Ease of Integration Ease of Use Functionality Price Dev Costs On Time Delivery Performance Stability & Maintainability Ease of Debugging Modifiability Testability & Traceability Structure & dependency between component Ease of Installation End User Sales Dev Manager Developer Sys Admin Maintainer Customer

Manish Kumar,MSRIT Software Architecture 30 Documentation Conceptual Model IEEE

Manish Kumar,MSRIT Software Architecture 31 Discussion What views do you know / use

Manish Kumar,MSRIT Software Architecture 32 Views, Views and more Views RUP – RM-ODP – 5 DODAF – 3 (top level) Zachman – 36(!) MS – Well…

Manish Kumar,MSRIT Software Architecture 33 RUP – 4+1

Manish Kumar,MSRIT Software Architecture 34 RM-ODP Viewpoints (2001) Enterprise Information Engineering Technology Computational Manager Database Modeler Operating Sys. Engineer Designers Developer Business model Logical, data modeling Logical view of services Servers, Comm,Physical view of data and services (IDL, WSDL)

Manish Kumar,MSRIT Software Architecture 35 DODAF (3 Main Views)

Manish Kumar,MSRIT Software Architecture 36 DoDAF Products 1/2

Manish Kumar,MSRIT Software Architecture 37 DoDAF Products 2/2

Manish Kumar,MSRIT Software Architecture 38 Zachman Framework Scope (Ballpark) view Owners View (Enterprise Model) Designers View (System Model) Builder’s View (Technology Model) Out of Context View (Detailed Model) Operational View (Functioning) Data(What) Function(How) Network(Where) People(Who) Time(When) Motivation(Why)

Manish Kumar,MSRIT Software Architecture 39

Manish Kumar,MSRIT Software Architecture 40 Old Model MSF Views Contextual Conceptual Logical Physical Aimed at business executives Aimed at business process owners Aimed at architects and designers Aimed at designers and developers

Manish Kumar,MSRIT Software Architecture 41 Business strategies & processes Applications to facilitate business process Information needed to manage business Technology to support business & application needs Contextual Conceptual Logical Physical Business View Applications View Information View Technology View Old Model MSF Views

Manish Kumar,MSRIT Software Architecture 42 New Model set of views and artifacts - BusinessCapabilitiesBusinessCapabilities ManualProceduresManualProcedures TechnologyArchitectureTechnologyArchitecture Constraints Reconciliation Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/Refinement Constraints packaged into deployed on Business Processes and Entities Business Processes and Entities Reconciliation Abstraction/Refinement

Manish Kumar,MSRIT Software Architecture 43 Can be mapped… Contextual Conceptual Logical Physical BusinessApplicationsInformationTechnology BusinessCapabilitiesBusinessCapabilities ManualProceduresManualProcedures TechnologyArchitectureTechnologyArchitecture Constraints Reconciliation Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/Refinement Constraints packaged into deployed on Business Processes and Entities Business Processes and Entities Reconciliation Abstraction/Refinement

Manish Kumar,MSRIT Software Architecture 44 Documentation Conceptual Model IEEE

Manish Kumar,MSRIT Software Architecture 45 Models Non-standard Models ADL UML DSL

Manish Kumar,MSRIT Software Architecture 46 “Non Standard” - Block Diagrams EAI Human Workflow ECMDWOLTPE-Publish DALService Agents Business RulesActivity Workflow Authorization Monitoring Service Interface Controls Log & Trace Exception Management Configuration Authentication Signing Rich UI Web UI

Manish Kumar,MSRIT Software Architecture 47 An ADL Example (in ACME) System simple_cs = { Component client = {Port send-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Attachments : {client.send-request to rpc.caller; server.receive-request to rpc.callee} server.receive-request to rpc.callee}} System simple_cs = { Component client = {Port send-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Attachments : {client.send-request to rpc.caller; server.receive-request to rpc.callee} server.receive-request to rpc.callee}} client send-request server receive-request callercallee rpc

Manish Kumar,MSRIT Software Architecture 48 ADL - Pros ADLs represent a formal way of representing architecture ADLs are intended to be both human and machine readable ADLs support describing a system at a higher level than previously possible ADLs permit analysis of architectures – completeness, consistency, ambiguity, and performance ADLs can support automatic generation of simulations / software systems

Manish Kumar,MSRIT Software Architecture 49 ADL - Cons There is not universal agreement on what ADLs should represent, particularly as regards the behavior of the architecture Representations currently in use are relatively difficult to parse and are not supported by commercial tools Most ADLs tend to be very vertically optimized toward a particular kind of analysis Most ADL work today has been undertaken with academic rather than commercial goals in mind

Manish Kumar,MSRIT Software Architecture 50 UML diagram types

Manish Kumar,MSRIT Software Architecture 51 UML

Manish Kumar,MSRIT Software Architecture 52 DSL BusinessCapabilitiesBusinessCapabilities ManualProceduresManualProcedures TechnologyArchitectureTechnologyArchitecture Constraints Reconciliation Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/Refinement Constraints packaged into deployed on Business Processes and Entities Business Processes and Entities Reconciliation Abstraction/Refinement

Manish Kumar,MSRIT Software Architecture 53 ADL - revisited ADLs are essentially a DSL for architecture The Architecture DSLs in VSTS – can be considered as an ADL  The difference – VSTS has a set of languages instead of one trying to encompass all views

Manish Kumar,MSRIT Software Architecture 54 Discussion What’s the “best” modeling techniques

Manish Kumar,MSRIT Software Architecture 55 Documentation Conceptual Model IEEE

Manish Kumar,MSRIT Software Architecture 56 Discussion How much documentation

Manish Kumar,MSRIT Software Architecture 57 Famous Last Words… “It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable….” (Fred Brooks - “Mythical Man-Month” p.47)

Manish Kumar,MSRIT Software Architecture 58 The Need of Architecture The Winchester “Mystery” House 38 years of construction – 147 builders 0 architects 160 rooms – 40 bedrooms, 6 kitchens, 2 basements, 950 doors 65 doors to blank walls, 13 staircases abandoned, 24 skylights in floors No architectural blueprint exists

Any Question ???

Thank you !!!