



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
it's just a reminder of the most important points, notes, and definitions of the software design and architecture including design patterns and taxonomy.
Typology: Study notes
1 / 6
This page cannot be seen from the preview
Don't miss anything!




(software/system) lifecycle model: is a description of the sequence of activities carried out in a software project, and the relative order of these activities. Traditional models for the phased development is document-driven The Waterfall Model: 1 - User Requirements 2 - Software Requirements 3 - Architecture Design 4 - Detailed design & Coding 5 - Testing 6 – Delivery Agile Methods: View the world as chaotic Individuals and interactions over processes and tools Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan The development cycles are small/incremental Sprint framework Roles o Product owner o The scrum master o The team (Cross-functional) Ceremonies o Sprint planning o Sprint review o Sprint retrospective o Daily scrum meeting Artifacts o Product backlog o Sprint backlog o Burn down charts OOP principles: (Differ from SOLID principles) Encapsulate what varies Code to an interface rather than to an implementation Abstraction
Classes are about behaviors not functionality SOLID principles Single responsibility o Each class should have only one reason to change Open/close principle o Classes are open for extension, close for modification Liskov substitution principle o ش استبدل االب باالبن يبقى العالقة مش صحيحه و الزم تتشاللو مقدرت o Replace the “inheritance” with an “aggregation” o Or: encapsulate what varies Dependency inversion principle o One should depend upon abstraction not concretion o High level modules shouldn’t depend on low level modules Interface segregation principle o Break a fat interface into many separate interfaces DP Description Design name Design intent (problem) Solution
The Model-View-Controller pattern o Model: programmatic representation of the application's data, contains functionality for loading itself from permanent storage. o View:
Analysis: Focus on application domain Design: Focus on solution domain Design window: Time in which design decisions have to be made. system analysis: Analysis results in: