Software Design Chapter 1 PDF
Document Details
Uploaded by WellReceivedGyrolite8998
President Ramon Magsaysay State University
Allan Jay L. Morillo
Tags
Summary
This document provides an overview of software design, covering its history, different approaches, and key aspects throughout the software development lifecycle.
Full Transcript
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 i...
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): The 1970s saw the rise of History 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): Object-oriented design (OOD) History became prominent, emphasizing modularity, encapsulation, and reusability. Languages like Smalltalk, C++, and later Java popularized OOD concepts. 4. Component-Base Design (1990s-2000s): Component-based design History (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): Service-oriented architecture History (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 continues to evolve with agile History 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.