Software design - Lecture 5. The main topics covered in this chapter include: introduction to software design; software design in a nutshell; importance of software design; software design activities; architectural design; preliminary design;...
1 Software Design Lecture : 5 Introduction to Software Design Software Design in a Nutshell Ø Structures are the most stable things in your system ü • They have to hold even after years System design ü Lays down a structure for the system ü Divides the future system in parts which can be Importance of Software Design Software Design Activities Ø Design “The process of defining the architecture, components, interfaces, and other characteristics of a system or component.” Architectural design “The process of defining a collection of hardware and software components and their interfaces to establish the framework for the development of a computer system” Preliminary design “The process of analyzing design alternatives and defining the architecture, components, interfaces, and timing and sizing estimates for a system or component.” Detailed design “ The process of refining and expanding the preliminary design of a system or component to the extent that the design is sufficiently complete to be implemented” 10 Overall Design Activities High level Design / Architectural Design ü Hierarchical decomposition of the system into subsystems ü Determine components and assign to subsystems ü Determine relationships between components 11 Software Architecture “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 “ From :Bass, L., Clements, P., Kazmann, R. (2003): Software Architecture in Practice, 2nd Edition, AddisonWesley 12 Lehman‘s First Law of Software Evolution Ø “A program that is used as an implementation of software specification reflects some reality, undergoes continual change or becomes progressively less useful.” Result: 13 Bersoff‘s First Law of System Engineering Ø “No matter where you are in the system life cycle, the system will change and the desire to change it will persist throughout the life cycle.” Result: 14 Cost of Bad Design 15 Design Metaphor 16 17 ... Determine relationships between components 11 Software? ?Architecture “The? ?software? ?architecture of a program or computing system is the structure or structures of the system, which comprise? ?software? ?elements, the externally visible ... From :Bass, L., Clements, P., Kazmann, R. (2003):? ?Software Architecture in Practice, 2nd Edition, AddisonWesley 12 Lehman‘s First Law of? ?Software? ? Evolution Ø “A program that is used as an implementation of ? ?software? ?specification reflects some reality, ...2 Introduction to? ?Software? ?Design Software? ?Design in a Nutshell Ø Structures are the most stable things in your system ü