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

42 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Software Architecture

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

Page 2: Software Architecture

WWW.EASYDESIGN.COM

DESIGN BY

IMDAD HUSSAIN

Page 3: Software Architecture

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

Page 4: Software Architecture

SOFTWARE ARCHITECTURE

Page 5: 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.

Page 6: Software Architecture

WHO IS A SOFTWARE ARCHITECT

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

(UNTIL JUNE 2006)

Page 7: Software Architecture

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

Page 8: Software Architecture

Customer

Architect

Marketing

DeveloperModeler

PerduceManager

Role of Architect

Facilitate Communication

Page 9: Software Architecture

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

Page 10: Software Architecture

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)

Page 11: Software Architecture

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)

Page 12: Software Architecture

HOW TO BUILD COMPONENTS FROM SCRATCH

• SOFTWARE ENGINEERING

• PROGRAMMING LANGUAGES

• ALGORITHMS AND COMPLEXITY

•DATABASES

Page 13: Software Architecture

DESIGN LARGE SYSTEMS OUT OF REUSABLE COMPONENTS

• SOFTWARE ARCHITECTURE

• COMPONENT-BASED SOFTWARE ENGINEERING

Page 14: Software Architecture

QUALITY ATTRIBUTES

Page 15: Software Architecture

WATERFALL MODEL

• REQUIREMENT ANALYSIS

• DESIGN

• IMPLEMENTATION

• TESTING

• MAINTENANCE

Architecture

Page 16: Software Architecture

BRIDGE THE GAP

Problem Definition

Functional Requirements

Non-functional Requirements

Data ModelsCodeAcceptance Tests

Architecture Design

Problem Solution

Page 17: Software Architecture

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

Page 18: Software Architecture

SYSTEM LIFECYCLE

Architecture

Death

AlterationVision

Inception

Operation

Development

Legacy operation

Maintenance

Architectural decisionsaffect the whole lifetimeof a system

Page 19: Software Architecture

DESIGN DECISIONS DESIGN DECISIONS COVER ALL ASPECTS OF THE SYSTEM

Structure

Behavior

Interaction

Deployment

Non-functional

Decision

Implementation

Page 20: Software Architecture

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)

Page 21: Software Architecture

ANY QUESTION??