Software design is the process of defining the architecture, components, and interfaces of a system, crucial for translating requirements into software structure. The document outlines the evolution of software design from the 1950s to the present, highlighting key methodologies such as structured programming, object-oriented design, and service-oriented architecture. It also details various aspects of software design, including requirements analysis, architectural design, and testing and validation.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
29 views16 pages
Software Design Chapter 1
Software design is the process of defining the architecture, components, and interfaces of a system, crucial for translating requirements into software structure. The document outlines the evolution of software design from the 1950s to the present, highlighting key methodologies such as structured programming, object-oriented design, and service-oriented architecture. It also details various aspects of software design, including requirements analysis, architectural design, and testing and validation.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 16
SOFTWARE DESIGN
By : Allan Jay L. Morillo, CCpE
• Software design refers to the process of defining the Software architecture, components, Design interfaces, and other characteristics of a system or application. It plays a crucial role in the software development lifecycle by translating requirements into a representation of the software's structure 1. Early Days (1950s-1960s): • During the early days of History computing, software design focused largely on algorithms and efficient use of hardware resources. • Languages like Fortran and COBOL emerged, influencing early design practices. 2. Structured Programming (1970s): History • The 1970s saw the rise of structured programming, advocating for modular and hierarchical program design. • Edsger Dijkstra and others promoted structured programming principles for clearer, more maintainable code. 3. Object-Oriented Design (1980s-1990s): History • Object-oriented design (OOD) became prominent, emphasizing modularity, encapsulation, and reusability. • Languages like Smalltalk, C++, and later Java popularized OOD concepts. 4. Component-Base Design (1990s-2000s): History • Component-based design (CBD) emerged, promoting software development based on reusable software components. • This era also saw the advent of design patterns, standard solutions to common design problems. 5. Service-Oriented Design (2000s-Present): History • Service-oriented architecture (SOA) and later microservices architecture focused on building applications as loosely coupled services. • Design principles shifted towards scalability, flexibility, and interoperability. 5. Modern Trends (Present): • Today, software design History continues to evolve with agile and DevOps practices, emphasizing iterative development, continuous integration, and delivery. • Design patterns, domain-driven design (DDD), and design thinking are integral to modern software design practices. Requirements Analysis - Understanding and Overview documenting user requirement. Architectural Design - Defining the overall Overview structure and components of the system. Detailed Design - Elaborating the user Overview interface for usability and user experience. User Interface Design - Designing the user Overview interface for usability and user experience. Database Design - Structuring data storage Overview and retrieval mechanisms. Component Design - Designing individual Overview software components or modules. Design Patterns - Applying reusable Overview solutions to common design problems. Testing and Validation - Ensuring that the design Overview meets functional and non- functional requirements.