Understanding Quality Attributes & Design for Availability 主讲教师:李石坚 Email: ******@zju. 助教:陈龙彪 FTP: ftp:// ,用户名 student, 密码 student 1 Why Software Projects Fail? ? More than 80% of software projects are delivered late, more than half do not include needed features, and cost overruns of 15% or higher are commonplace. ---The Standish Group's Chaos Report 2004 ? Systems are frequently redesigned, not because they are functionally deficient, but because they are difficult to maintain, port, or scale, or are too slow, or have promised work hackers. ? Performance, security, availability …? On budget, on schedule … 2 Functionality VS. Quality ? Functionality and other quality attributes are orthogonal . ? Note functionality does not imply anything about others! ? Functionality means the ability of the system to do the work intended. ? If functionality were the only concern we could have implemented a system as one large module in Cobol or even assembly language. ? So functionality is a prime goal, but it should not be the only goal. 3 Architecture and Quality Attributes ? It is the mapping of a system's functionality onto software structures that determines the architecture's support for qualities. ? Quality attributes dictate a software system's architecture. ? No quality attribute is entirely dependent on design or other phases. ? Satisfactory inclusion of quality attributes means you must get the big picture (architecture) and the details (implementation) right! 4 Modifiability: Architectural. VS Non- Architecture Aspects ? Architectural aspects of Modifiability: ? How functionality is partitioned ? Non-architectural aspects of Modifiability : ? Coding techniques used within a module 5 Performance: Architectural. VS Non- Architecture Aspects ? Architectural aspects of Performance: ? Communication ponents ? Partially on partitioning of functionality ? Allocation of resources ? Non-architectural aspects of Performance: ? Choice of algo
软件体系结构 来自淘豆网m.daumloan.com转载请标明出处.