Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOFTWARE ARCHITECTURE AND DESIGN

Similar presentations


Presentation on theme: "SOFTWARE ARCHITECTURE AND DESIGN"— Presentation transcript:

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.”


Download ppt "SOFTWARE ARCHITECTURE AND DESIGN"

Similar presentations


Ads by Google