Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Introd

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 31

Software Architecture and Design SWE310

Credits: 3 Introduction

1
Objective

2
Syllabus

3
Books & References

4
Mode of Evaluation

1
What is Software Architecture?

2
History of Software Architecture

3
Why Software Architecture is important?

4
Goals of Architecture

1
Stakeholders

2
What is Design?

3
Design Characteristics

4
Levels of Software Design

5
Architecture Vs. Design

Objectives:
To learn the importance of software design and

architecture

Unit No. 1 : Design Fundamentals


The nature of Design process-Objectives-Building

Modules, Constructs, Design qualities, assessing the design, Design viewpoints for software. Design practices-Rational for method. Design strategies-Top down and bottom up, Organizational methods and design.

Unit No. 2 : Design Methodologies and Models


Jackson Structural programming, Jackson system

development, object-oriented and object-based design and

Structured System Analysis and Structured design

method. Traditional approach to design-SADT organizational design practices-SSADM and design for real time systems MASCOT.

Unit No. 3 : Software Architecture


Introduction - Software Architecture - Definition -

Prospects - State of Art - Architectural Styles - Pipes and Filters - Layered Systems - Repositories - Process Control - Other familiar Architecture - Heterogeneous Architectures

Unit No. 4 : Software Architecture


Architectural design and Mapping Description

of various Architectural design patterns - Object Oriented Organization. Architecture Structures for Shared Information Systems. Architecture design guidance - User Interface Architecture.

Unit No. 5 : Miscellaneous Topics


Tools for Architectural design - Exploiting style in

architectural design Architectural Interconnection Case Studies.

Books David Budgen (2005), " Software Design ", Addison-Wesley, Pearson Education 2nd edition.

Mary Shaw David Garlan (1996), " Software Architectural Perspectives on an emerging discipline ",EEE, PHI.

References Pressman R.S (2005), " Software Engineering ", 6th Edition, McGraw Hill Inc.

Software Architecture in Practice (2nd Edition) [Hardcover] Len Bass (Author), Paul Clements (Author), Rick Kazman

Software Architecture and Design Illuminated (Jones

and Bartlett Illuminated) [Paperback] Kai Qian (Author), Xiang Fu (Author), Lixin Tao (Author), Chong-wei Xu

Essential Software Architecture [Hardcover] Ian Gorton

Large-Scale Software Architecture: A Practical Guide using UML [Paperback] Jeff Garland (Author), Richard Anthony

Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures[Hardcover] Hassan Gomaa

Mode of Evaluation
CAT 1 15 marks
CAT 2 15 marks Project Based Learning 20

* Review 1 (15) Objective & pilot study (5), presentation content (5), methodology (5) * Review 2 (15) Design and Implementation (5), final outcome (5), Individual contribution (5) * Documentation 10 marks

What is Software Architecture?


Software application architecture is the process of

defining a structured solution that meets all of the technical and operational requirements. 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 elementsdetails having to do solely with internal implementationare not architectural. (Clement)

History of Software Architecture


origins in the research of Edsger Dijkstra in 1968

David Parnas in the early 1970


Mary Shaw and David Garlan gave concepts in

Software Architecture, such as components, connectors, styles

Why Software Architecture is important?


Communication among stakeholders Early design decisions Transferable abstraction of a system (Software architecture in Practice)

Goals of Architecture
Expose the structure of the system but hide the

implementation details. Realize all of the use cases and scenarios. Try to address the requirements of various stakeholders. Handle both functional and quality requirements. (MSDN)

Stakeholders

end-user customer project manager system engineer developer architect maintainer other developers

Stakeholders & their concerns


Maintainer Functionality

Price

End User Customer Sales

Dev Costs
On Time Delivery Performance Stability & Maintainability

Dev Manager Developer

Ease of Use Ease of Debugging Modifiability

Sys Admin

Testability & Traceability Structure & dependency between component Ease of Installation Ease of Integration

What is Design?
Software design is a process of problem solving and

planning for a software solution.


It includes low-level component

and algorithm implementation issues as well as the architectural view.

wikipedia

Design Characteristics
No Single Right Solution Many Factors and Constraints to be Balanced in

Choosing a Solution No One Measure of Quality No Particular Process That Can Ensure That We Can Even Identify an Acceptable Solution

Levels of Software Design


System Level Design - scope, responsibility and

interfaces

Program Level Design - data representation, coupling and cohesion, encapsulation Module Level Design - performance, robustness, and correctness http://blogs.construx.com/forums/p/92/143.aspx

Architecture Vs. Design


"Architecture is concerned with the selection of

architectural elements, their interaction, and the constraints on those elements and their interactions... Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements. complete details (implementation), few details (design), and the highest form of abstraction (architecture)

Architecture: where non-functional decisions are cast, and functional requirements are partitioned Design: where functional requirements are accomplished

Architecture vs. Design


non-functional requirements (ilities) architecture

functional requirements (domains)

design

Important : this is a general guideline sometimes the borders are blurred

References
http://msdn.microsoft.com/en-

us/library/ee658098.aspx

You might also like