목록소프트웨어 디자인/Notes (6)
Moe's Tech Blog

Object Oriented Modeling involves the practice of representing key concepts through objects in software Why Object Oriented Modeling keeps the code organized, flexible, and reusable. Design in the Software Process 1. Expressing Requirements with User Stories Is a big part of building a software system determining what the client wants One of the technique for expressing requirement is user stori..

Is used to describe workflows or business process Action and Flows Activity diagram is started with an intial node drawn as a small filled circle (called initial node) Flow is represented by an arrow with an open arrowhead Decision Node Activity diagram can also express conditional logic It is represented by a diamond '♢' It has a single incoming flow and two or more outbound flows Each outbound..

Is about which objects are involved, and what messages are sent between them Example - Note creation app button Uses MVC architecture, and needs the following: The view instance that represents the button The controller instance that intercepts an event triggered by a button, and runs it's own function Here, 1. The view displays data and receives user input 'onCreateNote' is the event that conne..

This is about creating static structure of system It identifies the main classes and relationship between them Step 4.a Use use case diragram to find out what needs to be inside a class Example - App about taking notes Note, you may not know the properties and details of all classes This is fine. Define abstract things first, and then iteratively refine the design Don't get into too much detail...

Step 2.a. Divide function requirements to big chunks of functionality that can't be described through single user stories Step 2.b. Create an epic for each block Each epic consists of multiple user stories that describes common functionality Example Epic number one - Note creation and editing As a user, I want to create and edit notes so that I can quickly jot down my thoughts As a user, I want ..
Step 1.a First, quickly draw down features of application. Example Note taking App features Create and edit text-based notes Attach photos Capture hand-drawn sketches Allow protected/sensitive notes Sync app data to Dropbox, iCloud or Google Drive Step 1.b Write down functional Requirements of application It's a first draft to distilled requirements Example We need to build a note taking app. Us..