software architecture

21
IN THE NAME OF ALLAH WHO IS MOST BENIFICIAL AND MOST MERCIFUL

Upload: comsats-institute-of-information-technology

Post on 07-Aug-2015

11 views

Category:

Education


1 download

TRANSCRIPT

IN THE NAME OF ALLAH WHO IS MOST BENIFICIAL AND MOST MERCIFUL

WWW.EASYDESIGN.COM

DESIGN BY

IMDAD HUSSAIN

OUTLINES• WHAT IS SOFTWARE ARCHITECTURE?

• WHAT IS SOFTWARE ARCHITECTURE?

• ROLE OF THE ARCHITECT

• WHAT ARE THE QUALITY ATTRIBUTES?

• WATERFALL MODEL

• EVOLUTIONARY MODEL

• SYSTEM LIFECYCLE

• DESIGN DECISIONS

• TYPE OF ARCHITECTURE

SOFTWARE ARCHITECTURE

SOFTWARE ARCHITECTUREA SOFTWARE SYSTEM’S ARCHITECTURE IS THE SET OF PRINCIPAL DESIGN DECISIONS MADE ABOUT THE SYSTEM

IT IS THE BLUEPRINT FOR A SOFTWARE SYSTEM’S CONSTRUCTION AND EVOLUTION

AS THE SIZE AND COMPLEXITY OF A SOFTWARE SYSTEM INCREASE.

THE DESIGN DECISIONS AND THE GLOBAL STRUCTURE OF A SYSTEM BECOME MORE IMPORTANT THAN THE SELECTION OF SPECIFIC ALGORITHMS AND DATA STRUCTURES.

WHO IS A SOFTWARE ARCHITECT

WILLIAM (BILL) H. GATES, CHIEF SOFTWARE ARCHITECT, MICROSOFT

(UNTIL JUNE 2006)

ROLE OF THE ARCHITECT SOFTWARE ENGINEERING LEAD • EXCELLENT SOFTWARE ENGINEERING SKILLS

• LEAD TECHNICAL DEVELOPMENT TEAM BY EXAMPLE

• SOLVE THE HARD PROBLEMS

• UNDERSTAND IMPACT OF DECISIONS

• DEFEND ARCHITECTURAL DESIGN DECISIONS

• PROMOTE GOOD DEVELOPMENT PRACTICES –PLAN AND MANAGE SOFTWARE RELEASES

Customer

Architect

Marketing

DeveloperModeler

PerduceManager

Role of Architect

Facilitate Communication

ROLE OF THE ARCHITECT

RISK MANAGEMENT

• ESTIMATE AND EVALUATE RISKS ASSOCIATED WITH DESIGN OPTIONS AND CHOICES

• DOCUMENT AND MANAGE RISKS, MAKING THE WHOLE

TEAM AWARE

• PREVENT DISASTERS FROM HAPPENING

LARGE SOFTWARE PROJECT

• LINES OF CODE:50 MILLION

• NUMBER OF DEVELOPERS: 2000

• TIME TO COMPILE: 24 HOURS

• TIME TO SHIP: 5 YEARS (FROM PREVIOUS RELEASE)

HOW LARGE?

• HOW MUCH TIME TO BUILD IT?

• HOW MANY PEOPLE IN THE PROJECT?

• HOW MUCH DID IT COST?

• HARD TO MEASURE SOFTWARE SIZE:

• ESTIMATE THE “LINES OF CODE” (LOC)

HOW TO BUILD COMPONENTS FROM SCRATCH

• SOFTWARE ENGINEERING

• PROGRAMMING LANGUAGES

• ALGORITHMS AND COMPLEXITY

•DATABASES

DESIGN LARGE SYSTEMS OUT OF REUSABLE COMPONENTS

• SOFTWARE ARCHITECTURE

• COMPONENT-BASED SOFTWARE ENGINEERING

QUALITY ATTRIBUTES

WATERFALL MODEL

• REQUIREMENT ANALYSIS

• DESIGN

• IMPLEMENTATION

• TESTING

• MAINTENANCE

Architecture

BRIDGE THE GAP

Problem Definition

Functional Requirements

Non-functional Requirements

Data ModelsCodeAcceptance Tests

Architecture Design

Problem Solution

EVOLUTIONARY MODEL

Software concept

Preliminary requirements analysis

Develop a version

Deliver a version

Design of architecture and system core

Elicit customer feedback

Incorporate customer feedback

SYSTEM LIFECYCLE

Architecture

Death

AlterationVision

Inception

Operation

Development

Legacy operation

Maintenance

Architectural decisionsaffect the whole lifetimeof a system

DESIGN DECISIONS DESIGN DECISIONS COVER ALL ASPECTS OF THE SYSTEM

Structure

Behavior

Interaction

Deployment

Non-functional

Decision

Implementation

TYPE OF ARCHITECTURE

MARKETING ARCHITECTUREDESCRIBE HOW TO MARKET SELL (BUSINESS MODEL, LICENSING MODEL) THE SYSTEM TO CUSTOMERS

TECHNICAL ARCHITECTUREPRESCRIBE HOW TO BUILD DEPLOY AND CONFIGURE THE SYSTEM (STYLES, PATTERNS,COMPONENTS, CONNECTORS)

ANY QUESTION??