View
42
Download
0
Embed Size (px)
Citation preview
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??