1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
INTRODUCTION TO MODELING
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Lecture # 2 : Process Models
Unit 2. Software Lifecycle
Software Architecture in Practice (3 rd Ed) Introduction The Many Contexts of Software Architecture Architecture in a Technical Context Architectures inhibit.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Software Architecture – Centric Methods and Agile Development by Craig Castaneda.
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
CS CS 5150 Software Engineering Lecture 27 People 2.
CS 501: Software Engineering
Software Architecture in Practice
Software Architecture in Practice
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Introduction to Computer Technology
The Many Contexts of Software Architecture
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 3: Phase Management - Inception.
S/W Project Management
Chapter 2 The process Process, Methods, and Tools
Software Project Management Introduction to Project Management.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Software Design: An Introduction by David Budgen Presented by Shane Marcus EEL 6883 – Spring 2007 Presented by Shane Marcus EEL 6883 – Spring 2007.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Software Engineering Management Lecture 1 The Software Process.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Lecture 7: Requirements Engineering
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Systems Analysis and Design in a Changing World, Fourth Edition
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
27/3/2008 1/16 A FRAMEWORK FOR REQUIREMENTS ENGINEERING PROCESS DEVELOPMENT (FRERE) Dr. Li Jiang School of Computer Science The.
Information System Project Management Lecture Five
CSE 303 – Software Design and Architecture
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Smart Home Technologies
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Engineering Lecture 10: System Engineering.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Unit-1 INTRODUCTION Presented by Sushma Narasimhan Asst. Professor,
Software Engineering Management
Chapter 3: The Many Contexts of Software Architecture
Requirements Analysis Scenes
Lecture 17 ATAM Team Expertise
IT 440: SYSTEM INTEGRATION
Software Engineering Software Engineering is the science and art of
Software Engineering Software Engineering is the science and art of
Presentation transcript:

1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University

Outline Introduction of the Course Architecture Business Cycle 1. Where Do Architectures Come From? 2. Software Processes & the Architecture Business Cycle 3. What Makes a Good Architecture? 4. Summary 2

Introduction of the Course Advanced Software Architecture (CS5213) 3

Architecture Business Cycle Lecture: 1 4

Software Architecture For decades, software designers have been taught to build systems based exclusively on the technical requirements Software architecture encompasses the structures of large software systems:  abstract view  eliminates details of implementation, algorithm, & data representation  concentrates on the behavior & interaction of “black box” elements 5

Software Architecture (Continue…) Definition; The software architecture of a program is the structure or structures of the system, which comprise software elements, the externally visible properties of these elements, and the relationships among them 6

Software Architecture (Continue…) Quick Exercise  What is the relationship of a system’s software architecture to the environment in which the system will be constructed and exist? 7

Software Architecture (Continue…) Answer  Software architecture is a result of technical, business, and social influences  In turn, it affects each of these environments 8

Where Do Architectures Come From An architecture is the result of a set of business and technical decisions There are many influences and their realization will change depending upon the environment of system  Architect will chose among design elements differently in different scenarios The requirements make explicit some—but only some—of the desired properties of final system  Not all requirements are concerned directly with those properties 9

10

Factors Influencing Architecture Architectures are influenced by system stakeholders  What are stakeholders?  Stakeholders have different concerns  An acceptable system can posses properties like; Performance, Security, Availability, Modifiability etc.  The requirements specification document may not have complete requirements  Often an architect has to fill in the blanks and mitigate the conflicts 11

Factors Influencing Architecture (Continue…) Architectures are influenced by the development organization  Staff skills, development schedule and budget  Three classes of developing organization that can influence the architecture; 1. Immediate business 2. Long-term business 3. Organization structure 12

Factors Influencing Architecture (Continue…) Architectures are influenced by the background and experience of the architect  Architects will try to use a particular architectural approach to new development effort if it has given them good results in past  Architectural choices may come from an architect’s education or training  Architect may also attempt to use a technique he learns from a book or an article 13

Factors Influencing Architecture (Continue…) Architectures are influenced by the technical environment  A special case of the architect’s background and experience is reflected by technical environment  It might include standard industry practices or software engineering techniques 14

Ramification of Influences Almost never are the properties required by the business & organizational goals consciously understood, let alone fully articulated  Architects need to know & understand the nature, source, and priority of constraints on the project as early as possible Architects must identify & actively engage the stakeholders to solicit their needs & expectations  Use architecture reviews & iterative prototyping 15

Architecture Influencing the Factors Architecture affects the structure of the developing organization;  Architecture prescribes units of the software that must be implemented  Teams are formed for individual software units in order to take place development activities  If a company becomes adept at building a families of similar systems, it invests on teams for their nourishment Teams become embedded in the organization’s structure 16

Architecture Influencing the Factors (Continue…) Architecture can affect the goals of developing organization  A successful project can help a company establishing foothold in a particular market area Efficient production of similar systems  Organization may adjust its goals to take advantage of its newfound expertise 17

Architecture Influencing the Factors (Continue…) Architecture can affect the customer requirements for next system  If a client wants to invest in a new system based on an architecture of an existing system then he may change requirements  The customer may be willing to relax some requirements in order to get a system in more reliable, timely and economical manner. 18

Architecture Influencing the Factors (Continue…) Architecture can change the software engineering culture  An architect will also go with the tool bus or approach that produces a successful system  A few systems will influence the software engineering culture i.e. the technical environment in which they operate 19

20 Architecture Business Cycle Stakeholders Dev. Organization Requirements Technical Environment Architect’s Experience Architecture System Architect’s Influences

Software Processes & the Architecture Business Cycle Software process is the organization, ritualization, and management of software development activities What activities are involved in creating a software architecture?  Creating the business case for the system  Understanding the requirements  Creating or selecting the architecture  Documenting and communicating the architecture  Analyzing or evaluating the architecture  Implementing the system based on the architecture  Ensuring that implementation conforms to the architecture 21

Software Processes & the Architecture Business Cycle (Continue…) Creating the Business Case for the System  Broader than just assessing the market need  Host much should the product cost?  What is the target market?  What is targeted time to market?  Architect must be consulted in order to create business case 22

Software Processes & the Architecture Business Cycle (Continue…) Understanding the Requirements  Variety of techniques to elicit the requirements  Object oriented paradigm uses ‘scenarios’ or use cases  State machines used for safety critical systems  Formal methods, prototypes and so on.  Besides requirements, quality attributes give shape to the architecture 23

Software Processes & the Architecture Business Cycle (Continue…) Creating or Selecting the Architecture  Devising the architecture  Selecting in case of a similar product built some time ago 24

Software Processes & the Architecture Business Cycle (Continue…) Communicating the Architecture  Must be communicated clearly and unambiguously to all stakeholders  Architectural documentation should be clear and unambiguous Must be understandable by various stakeholders 25

Software Processes & the Architecture Business Cycle (Continue…) Analyzing or Evaluating the Architecture  Choosing the most appropriate architecture is challenging  Architecture must satisfy stakeholder needs  Architecture Tradeoff Analysis Method (ATAM)  Cost Benefit Analysis Method (CBAM) 26

Software Processes & the Architecture Business Cycle (Continue…) Implementing Based on the Architecture  Developers should implement what is designed by architect Keep them faithful to the structure and communication protocols 27

Software Processes & the Architecture Business Cycle (Continue…) Ensuring Conformance to the Architecture  Once architecture completes, it enters in maintenance phase  Architecture must be faithful to its representation 28

What Makes a Good Architecture? No such thing as an inherently good or bad architecture Architectures are more or less fit for some stated purpose Architectures can be evaluated - one of the great benefits of paying attention to them - but only in the context of specific goals Rules of Thumb: process & product (structural) recommendations 29

What Makes a Good Architecture Process Recommendations  Architecture be built by single architect or small group lead by a single person  Prioritized list of qualities  Well documented  Circulated to stakeholders  Should be analyzed  Should support incremental implementation 30

What Makes a Good Architecture (Continue…) Product Recommendations  Architecture should feature well-defined modules, focusing Information Hiding and separation of concerns  Well-defined interface for each module  Quality tactics should be planned  Should not depend on a particular tool  Data producers & consumer modules separation 31

32 Summary Any Questions?