introd.ppt

Upload: kaylaroberts

Post on 29-Oct-2015

171 views

Category:

Documents


0 download

DESCRIPTION

introd.ppt

TRANSCRIPT

  • SyllabusObjectiveAGENDA

  • What is Software Architecture?AGENDA

  • AGENDA

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

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

  • Mode of EvaluationCAT 1 15 marksCAT 2 15 marksProject 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 Architectureorigins in the research ofEdsger Dijkstrain 1968David Parnasin the early 1970Mary Shawand David Garlan gave concepts in Software Architecture, such ascomponents, connectors, styles

  • Why Software Architecture is important?Communication among stakeholdersEarly design decisionsTransferable 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)

  • Stakeholdersend-usercustomerproject managersystem engineerdeveloperarchitectmaintainerother developers

  • Stakeholders & their concernsEase of IntegrationEase of UseFunctionalityPriceDev CostsOn Time DeliveryPerformanceStability & MaintainabilityEase of DebuggingModifiabilityTestability & TraceabilityStructure & dependency between componentEase of InstallationEnd UserSales Dev ManagerDeveloperSys AdminMaintainerCustomer

  • What is Design?Software designis a process of problem solving and planning for asoftwaresolution.

    It includes low-level component andalgorithmimplementation issues as well as thearchitecturalview.

    wikipedia

  • Design CharacteristicsNo Single Right SolutionMany Factors and Constraints to be Balanced in Choosing a SolutionNo One Measure of QualityNo Particular Process That Can Ensure That We Can Even Identify an Acceptable Solution

  • Levels of Software DesignSystem Level Design - scope, responsibility and interfaces Program Level Design - data representation, coupling and cohesion, encapsulationModule Level Design - performance, robustness, and correctnesshttp://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...Designis 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)

  • non-functional requirements (ilities)functional requirements (domains)Important : this is a general guideline sometimes the borders are blurred Architecture: where non-functional decisions are cast, and functional requirements are partitionedDesign: where functional requirements are accomplishedarchitecture design

  • Referenceshttp://msdn.microsoft.com/en-us/library/ee658098.aspx

    .*