The following course is in this bundle: Software Architecture and Design. This tutorial is part of a series of eLearning courses designed to help you prepare for the examination to become a Certified Software Development Professional (CSDP) or to learn more about specific software engineering topics. Courses in this series address one or more of the fifteen Knowledge Areas that comprise the Software Engineering Body of Knowledge - or SWEBOK, upon which the Certification Exam is based. Within each course module, there is a list of textbooks, courses and relevant reference materials to assist you in preparing for the Certification Exam.
Design is defined in [IEEE610.12.90] as both the "process of defining the architecture, components, interfaces and other characteristics of a system or component and the result for [that] process." Viewed as a process, software design is the software engineering life cycle activity in which software requirements are analyzed in order to produce a description of the software's internal structure that will serve as the basis for its construction. More precisely, a software design (the result) must describe the software architecture - that is, how software is decomposed and organized into components and the interfaces between those components. It must also describe the components at a level of detail that enables their construction.
This course is intended to assess your understanding of software design through inline quizzes and feedback. Specific topics addressed in this course are: fundamentals of software design, key issues in software design, software structure and architecture, human computer interface design, software design quality analysis and evaluation, software design notations and software design strategies and methods.
The following IEEE standards are included in this package:
IEEE 610.12-1990 (Replaced by IEEE/ISO/IEC 24765-2010) Systems and software engineering -- Vocabulary