Download presentation
Presentation is loading. Please wait.
1
SOFTWARE ARCHITECTURE AND DESIGN
TAYYABA SANA Lecture#1
2
Learning Goals Learn key concepts of software design and architecture . Experiencing the software design and architecture design process. Providing insight in best practices and difficulties in software architecture design.
3
Learning outcomes Rationale for software design
Software analysis and design methods Software design models Design principles OO design Design patterns
4
Learning Outcomes Rationale for software architecture
Modeling Software architecture(ADLs). Software architectural views Software architectural documentation Software architecture design method Synthesizing Software architecture Software architecture patterns Evaluation of software architecture
5
Learning outcomes Modeling method Pattern Evaluation
6
Project(2-3 member group)
Method Deliverables Select Problem domain Proposal Problem analysis and domain analysis RS and FS Architectural view modeling Architectural design Software design models Detailed design Applying architectural /design patterns improved design Evaluating software architectures presentation
7
Rationale for software architecture
Marcus Vitruvius polio Author of De Architectura(ten books of architecture) Structure must exhibit three properties strong Usable beautiful
8
Tools Building a large palace vs building a large software
Does any comparison exist?
9
To build a palace you need
Architectural Design Architecture realization Building Architecture
10
To build a software System
Data structures Programmers But can not build without design because of Large Systems(Distributed) Many people work on same problem Complex Millions of lines of codes Budget and time issues etc.
11
To build a Software you need
Architectural Design Architecture realization Building Architecture
12
SDLC Requirement phase Analysis Design Implementation Testing
Where is Architecture?
13
SDLC Requirement phase what customer Wants?
Architecture Design High level design Analysis What is domain? Design How? (detailed) Implementation Do Testing Test Where is Architecture?
14
Rationale for software Architecture
Abstraction specification Stakeholders communication Coping with evolution Guides software development process Organization of the development project Large scale reuse
15
Abstraction specifications
Abstraction means to View only relevant information Architecture represents high level abstract specification helps to cope with complexity Improves understanding of software system Examples?
16
Stakeholders Communication
Stake holders of a system End users Managers Programmers Architects etc. Architecture is common medium of communication between different stake holders Improves understanding of system between different stakeholders
17
Coping with evolution Helps dealing with changes and evolution
Changes will be limited to abstraction boundaries Balanced between fixed and adaptable parts of the system
18
Guide for software development process
Architecture is explicit Focuses on architectural components Analyze and design based on architectural components
19
Organization of the development project
The architecture influences the organizational structure for development/maintenance efforts Examples include Team divisions Budgeting, planning Work breakdown structures Documentation organization Basis for integration, testing, deployment, maintenance
20
Large scale reuse Software architecture is abstract specification
Represents set of systems Can be reused for systems exhibiting similar structure and requirements Can produce software product lines
21
Dicussions? Architecture is just paper Architecture Vs. Design
Architecture Vs. infrastructure Architecture Vs. Technology Architecture Vs. Structure Architecture -View Architecture Vs. Art
22
Architecture is just paper…
Every System has Architecture ,either Visible or not Architecture eventually resides in executable code A systems' architecture may be visualized in models, which can be executable
23
Architecture Vs. Design
All architecture is design but not vise versa Design Detailed Design High level design
24
Architecture vs infrastructure
Infrastructure is important part of architecture Infrastructure could be a view on architecture Architecture is more than infrastructure
25
Architecture Vs. Technology
Architecture is more than list of products Architecture implementation is shaped by technology Architecture is not directly bound to technology
26
Architecture Vs. Structure
Architecture includes structure but not every structure is architecture Architecture is abstraction of underlying structure Architecture is more than structures.
27
Architecture-views Architectural is flat only in trivial systems
Multiple stakeholder multiple concerns Multiple architectural views Complex systems usually have more than one architectural views
28
Architecture Vs. Art Complexity is maximum in today’s systems
Creative part is minimal in these systems Architecture design is explicit rational activity
29
Software Architecture
In Software Architecture in Practice (2nd edition), Bass, Clements, and Kazman define architecture as follows: “The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements—details having to do solely with internal implementation—are not architectural.”
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.