![Software Design](/img/default-banner.jpg)
- 142
- 8 770
Software Design
เข้าร่วมเมื่อ 16 ก.พ. 2023
Software design is the process of helping programmers become software developers and eventually software architects using the tools which help to visualize, measure, and build high-quality designs
Design Viewpoints
A design viewpoint is a tool used to express software design ideas. Though the UML class diagram is perhaps the most commonly used viewpoint, there are many others: flowchart, structure chart, data flow diagram, and others. How does one use these viewpoints to design a large and complex software system? This video answer that question.
he.kendallhunt.com/product/software-design
0:00 Introduction
0:26 So Many Viewpoints!
0:48 4+1 View Model
1:22 Step 1 - Development
2:13 Step 2 - Data Flow
5:00 Step 3 - Data Storage
7:01 Step 4 - Algorithms
7:46 Conclusion
he.kendallhunt.com/product/software-design
0:00 Introduction
0:26 So Many Viewpoints!
0:48 4+1 View Model
1:22 Step 1 - Development
2:13 Step 2 - Data Flow
5:00 Step 3 - Data Storage
7:01 Step 4 - Algorithms
7:46 Conclusion
มุมมอง: 36
วีดีโอ
Data Protection - Best Practices
มุมมอง 1728 วันที่ผ่านมา
One of the great advantages of a class (over structures and similar data structures) is the assurance that the contained data is always in a valid state. This video enumerates several best practices to get the most out of these assurances. he.kendallhunt.com/product/software-design 0:00 Introduction 0:18 Overview of Data Protection 0:49 Trust Boundaries 1:16 Components of Data Protection 2:22 D...
Integration Tests and Unit Tests
มุมมอง 105หลายเดือนก่อน
What is the difference between an integration test and a unit test? This video will compare and contrast each. he.kendallhunt.com/product/software-design 0:00 Introduction 0:29 Definitions 2:38 Example - Chess 6:22 Example - Newtonian Physics 8:52 Conclusion
Source Management - Pseudocode
มุมมอง 7หลายเดือนก่อน
Source management pseudocode is a technology-independent way to describe how to work with a source management system such as Git. he.kendallhunt.com/product/software-design 0:00 Introduction 0:30 Keywords 1:31 Pseudocode and Commit Graphs 2:38 Pseudocode and Git 3:27 Conclusion
Integration Test - The Four Parts
มุมมอง 14หลายเดือนก่อน
Integration tests, like unit tests, have four parts: setup, exercise, verify, teardown. The way these for parts are utilized, however, are different than those of unit tests. This video will explain these differences. he.kendallhunt.com/product/software-design 0:00 Introduction 0:22 Parts of an Integration Test 2:53 Setup 3:38 Exercise 4:29 Verify 5:29 Teardown 5:57 Conclusion
Source Management - Commit Graph
มุมมอง 13หลายเดือนก่อน
A commit graph is a visualization tool enabling developers to better understand complex relations between multiple branches and versions. This video will explain the parts of a commit graph. he.kendallhunt.com/product/software-design 0:00 Introduction 0:20 Commit Graph Symbols 2:07 Commit Graph and Source Management Pseudocode 3:50 Example 1.5.1 5:47 Conclusion
Integration Test - Three Examples
มุมมอง 23หลายเดือนก่อน
Three examples of integration tests, with an emphasis of how they are different than unit tests. he.kendallhunt.com/product/software-design 0:00 Introduction 0:18 Example - Credit Card 2:39 Example - List Application 4:22 Example - Projectile Motion 5:50 Conclusion
Source Management - The Four Levels
มุมมอง 21หลายเดือนก่อน
There are four levels of source management: Atomic (only ever one copy of an asset), Archive (periodic backups are made), Single Root (many contributors but only one master copy), and Multi-Root. This video will explain each level and list several best practices for each. he.kendallhunt.com/product/software-design 0:00 Introduction 0:30 4 Levels 1:32 Level 0 - Atomic 2:27 Level 1 - Archive 4:19...
Integration Tests - Four Types of Software Tests
มุมมอง 65หลายเดือนก่อน
This video will explain the four types of software tests (unit tests, integration tests, system tests, and acceptance tests). It will focus on what makes the integration test unique and how we can build them effectively. he.kendallhunt.com/product/software-design 0:00 Introduction 0:21 Overview of Integration Tests 2:38 Four Different Types of Tests 4:02 Unit Tests and Integration Tests 5:48 Co...
Algorithm Abstraction - Strategy, Template Method, and Decorator
มุมมอง 4712 หลายเดือนก่อน
There are three algorithm abstraction design patterns: the Strategy, the Template Method, and the Decorator. This video compares and contrasts them through integration into a single program: an orbit simulator. he.kendallhunt.com/product/software-design 0:00 Introduction 0:18 Problem Definition 2:36 Strategy 6:03 Template Method 9:04 Decorator 12:18 Conclusion
FICC 2024 : Measurements of Inheritance Design Quality
มุมมอง 393 หลายเดือนก่อน
A video of my presentation at FICC 2024 in Berlin, Germany on the 3rd of April, 2024. 0:00 Introduction 0:31 Importance of Metrics 1:10 Problem Domain 1:47 Literature Review Part I 2:20 Literature Review Part II 4:53 Literature Review Part III 5:41Three Metrics 6:12 Metric: Adaptability 6:52 Metric: Alignment 7:24 Metric: Redundancy 8:01 Rubric 8:33 Conclusion
Metaphor - Demonstration of building a class representing collections
มุมมอง 133 หลายเดือนก่อน
A demonstration of the process of thoughtfully designing and building the public interfaces for a class that represents a collection. This demonstration is performed in C . he.kendallhunt.com/product/software-design 0:00 Introduction 0:23 Operations for Collections 0:55 Demo - Interfaces 1:02 Demo - Size 1:18 Demo - Insert 1:38 Demo - Remove 1:54 Demo - Iterator 3:41 Demo - Begin and End 4:07 D...
Interface - The Adapter Design Pattern
มุมมอง 833 หลายเดือนก่อน
An adapter, also known as a wrapper, is a class exhibiting the interface that the client expects while also containing a class that the client needs. The provider interface cannot be changed by the client; it is provided as-is. This video will explain the adapter design pattern. he.kendallhunt.com/product/software-design 0:00 Introduction 0:14 Overview of the Adapter Design Pattern 1:22 Example...
Top-Down - How it relates to Agile
มุมมอง 324 หลายเดือนก่อน
Many associate top-down design with the Waterfall software development methodology. This video will define both Waterfall and Agile, as well as show how the top-down design process is equally applicable to both. he.kendallhunt.com/product/software-design 0:00 Introduction 0:18 Waterfall and Agile 0:38 Winston Royce 1:34 Agile 2:21 SCRUM Sprint 2:50 Waterfall in a Sprint 3:15 Identifying Program...
Metaphor - How to design public interfaces for classes containing collections
มุมมอง 424 หลายเดือนก่อน
When working with collections, there are a set of operations that most developers have come to expect. This video describes those interfaces. he.kendallhunt.com/product/software-design 0:00 Introduction 0:17 Operations for Collections 1:00 Add 1:32 Remove 1:43 Get 2:11 Update and Find 2:30 Size 2:41 Iterate 3:29 Conclusion
V-Model - The 9 steps of the V-Model process
มุมมอง 1024 หลายเดือนก่อน
V-Model - The 9 steps of the V-Model process
Noun Identification - An example of how to identify program entities
มุมมอง 254 หลายเดือนก่อน
Noun Identification - An example of how to identify program entities
Noun Identification - What is the noun identification process
มุมมอง 524 หลายเดือนก่อน
Noun Identification - What is the noun identification process
Layered System Design - The Client Server Architecture
มุมมอง 525 หลายเดือนก่อน
Layered System Design - The Client Server Architecture
Abstraction - Examples of how to classify design quality
มุมมอง 195 หลายเดือนก่อน
Abstraction - Examples of how to classify design quality
Abstraction - The Four Levels of Abstraction
มุมมอง 575 หลายเดือนก่อน
Abstraction - The Four Levels of Abstraction
Hi! Thank you for this video! Super useful and very well detailed, easy to follow, and explained! Keep up the great work. This helped me while I'm a student on an internship this summer and got assigned a task to create an SDD (which I had never heard of before). I feel I have a pretty good idea now! Deserves more views! Thanks! Have a great day! You got a new subscriber here haha
Your videos are so good.
I really love how the video started by first building a case on the importance of robustness using real life examples. Overall the video was amazing 😊
I totally want to get this book but when I look at the purchasing options it says something like 730 days. So is it like renting the book for 2 years? I don’t get a PDF to keep?
Excellent content and very didactic lecture.
thanks for the video
Thank you for you brilliant videos.
Do you have references for those definitions?
What is the benefit of using pointers instead of instantiating the object directly?
*Promo sm* 😉
Hello I researched your TH-cam channel and I see that, Your TH-cam content is amazing & very informative but Your thumbnails are low quality and are not SEO properly and there are some issues in your channel due to which your channel and videos are not ranking well and you are not getting many views, subscribers, likes. If these issues can be resolved, hopefully the videos will rank well.I am a professional TH-cam thumbnail designer & SEO expert. If you want I can solve your problems and help you rank your videos better. I am waiting for your reply.
Really interesting topic, thanks for the video!
Thanks for that refresher. I'm guilty of not being so thorough while writing loops in my code. This has given me an idea on a 'snippet framework' to integrate into my code editor for easy reuse. Cheers!
3:19 if the counters are using static vars wouldn’t that mean a race condition could be encountered if/when tests using that spy class run in parallel?
James Helfrich is a master instructor. I could listen to him speak on almost any topic.
That means a lot to me. I fear that a conference talk can be a bit dry!
Bachelors in CS and a PhD in Public Speaking😮
Thank you! that is very kind!
Idk how yt knew this(without me explicitly searching about chess) but, just now I am also designing a chess engine. I used the same Board and Piece classes and inheritance. I was thinking about my implementing constructors for pieces and just then this popped up. I had a similar idea, but this video sort of concretely defined the design pattern and the Factory term.
That is awesome! I am so glad this helped. Very cool!
Loved that🎉
We would love more Q and A examples in the videos
Good stuff. I'll have to play with it a bit to fully grasp the interfaces and communication haha Thanks, Dr. James. Greetings from Germany.
Thank you for the note. I take requests!
Cool, why so little subscribers, u create powerfull work with tutorials
Thank you for the comment. The channel is relatively new. If you have any requests for content, please let me know.
@@SoftwareDesign.Textbook alas, unfortunately, I am also the owner of a small channel, if I had the resources, I would help, I’m just surprised that on the Internet with useless, degrading content, there are more subscribers than intelligent channels 😒🤐
*Promo SM* 💪
I just would like to say that much of that formatting can be now done with std::format [C++20; it will simplify that a lot] and now we even have std::print (that's C++23) and regarding the operation, we can use, for instance, views::transform, views::filter, views::take, etc. [from the C++20 Ranges Library]😅 When I get the book (and given I have enough time), I'll try to update the examples to C++20++. This should be fun😊 As always, great video, Dr. James. Thank you.
I love format strings. I was first introduced to the concept in Python and was glad to see that C++ has adopted it as well. Of course, as an old-time C programmer who spent much time with printf(), it is nice to see old ideas get refreshed.
I really want this book. Please, make it available on the online shop! Thanks!
It is available now at: he.kendallhunt.com/Helfrich_software. Thank you for your interest. Note that we cannot offer a print version right now because the 1,200 pages is greater than the print capacity of Kendall Hunt.
Thanks, James! Also, I basically like, buy and interact with your content because you use C++. Everything else out there is either Python or ugly JS already and that sucks. So, please, keep the C++ Spirit. [I bought the _C++ Data Structures_ Book, which I loved, and am waiting for _Software Design_ to become available🙌] Cheers.
Well explained, thanks a lot.
If you have any requests for videos in the Software Design space, please do not hesitate to let me know.