Introd
Introd
Introd
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
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.
method. Traditional approach to design-SADT organizational design practices-SSADM and design for real time systems MASCOT.
Prospects - State of Art - Architectural Styles - Pipes and Filters - Layered Systems - Repositories - Process Control - Other familiar Architecture - Heterogeneous Architectures
of various Architectural design patterns - Object Oriented Organization. Architecture Structures for Shared Information Systems. Architecture design guidance - User Interface Architecture.
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
and Bartlett Illuminated) [Paperback] Kai Qian (Author), Xiang Fu (Author), Lixin Tao (Author), Chong-wei Xu
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
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)
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
Price
Dev Costs
On Time Delivery Performance Stability & Maintainability
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
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
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
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
design
References
http://msdn.microsoft.com/en-
us/library/ee658098.aspx