New User Special Price Expires in

Let's log you in.

Sign in with Facebook


Don't have a StudySoup account? Create one here!


Create a StudySoup account

Be part of our community, it's free to join!

Sign up with Facebook


Create your account
By creating an account you agree to StudySoup's terms and conditions and privacy policy

Already have a StudySoup account? Login here

Lecture 8 - Improving the Product, Improving Ourselves

by: Jerry Tan

Lecture 8 - Improving the Product, Improving Ourselves CS2103

Marketplace > National University of Singapore > Quantitative Methods > CS2103 > Lecture 8 Improving the Product Improving Ourselves
Jerry Tan
GPA 4.3
Software Engineering
Damith C. Rajapakse

Almost Ready


These notes were just uploaded, and will be ready to view shortly.

Purchase these notes here, or revisit this page.

Either way, we'll remind you when they're ready :)

Preview These Notes for FREE

Get a free preview of these Notes, just enter your email below.

Unlock Preview
Unlock Preview

Preview these materials now for free

Why put in your email? Get access to more of this material and other relevant free materials for your school

View Preview

About this Document

Learn about design patterns and how you can make use of these higher-level design solutions to solve commonly encountered problems in your project. Know about timeless nuggets of wisdom - principle...
Software Engineering
Damith C. Rajapakse
Class Notes
25 ?




Popular in Software Engineering

Popular in Quantitative Methods

This 3 page Class Notes was uploaded by Jerry Tan on Friday October 9, 2015. The Class Notes belongs to CS2103 at National University of Singapore taught by Damith C. Rajapakse in Summer 2015. Since its upload, it has received 67 views. For similar materials see Software Engineering in Quantitative Methods at National University of Singapore.


Reviews for Lecture 8 - Improving the Product, Improving Ourselves


Report this Material


What is Karma?


Karma is the currency of StudySoup.

You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!

Date Created: 10/09/15
National University of Singapore NUS CS2103 Software Engineering AY2015 SEM 1 Lecture 8 Improving the Product Improving Ourselves Friday 9th October 2015 By Jerry Tan Si Kai CS2103 Software Engineering Lecture 8 Improving the product Improving ourselves How to organize and display massive amount of information Two approaches 1 Stacked in time novice user a Github one page shows all the issues for one user over time 2 Adjacent in space advanced user a Hubturbo shows all the issues for all users all in one page Learning from others experience How By documenting it Example Context Multiple occurrences of some abstraction Problem Some data but not all shared among occurences of the same abstraction are repeated across occurences Solution Represent abstraction and occurences as different classes Pattern A highlevel vocabulary to refer to the solution In the above example we can call it the abstractionoccurrence solution Anti pattern A stupid solution to a recurring problem Metamodel Terminology to refer to model of a model Can represent patterns as metamodels Examples of powerful patterns that can help you in your project 1 Abstraction occurrence 2 Singleton a There are cases when you only want one instance of an object eg logic i HOW Make constructor private make a static method getInstanceO which returns the private static variable referring to the class itself ii Why is this better than 00 Testability Allow 3 Facade a Apply a public interface between the external clients and the methods they are calling within your class to reduce dependency 4 Command pattern let a COMMANDTYPE type be an abstract class so that multiple functions can take this type as a parameter EDIT ADD and DISPLAY can extend from the abstract class 5 MVC ModelViewController model represents data objects controller represents logic view represents the GUI that users see 6 Observer celebrity do not want to know the paparazzi paparazzi wants to know when where and what the celebrity is doing Solution is to implement an Observer interface Data addViewObserver notifyUIs Get the UIs to implement the Observer interface On startup register the observers with data by calling addView method and when data changes call notifyUIsO The dependency of data on UI is reversed UI now depends on data Reference Design Patterns elements of reusable ObjectOriented Software Gang of Four Caution Do not force fit patterns onto every problems Only apply if the benefits outweigh the costs Gems of Wisdom Principles of Software Engineering Principle of separation of concerns Concerns in a software should be grouped together into components according to functionality and responsibility similar to cohesion Open closed principle software entities should be open for extension but closed for modification Minesweeper example if I want to make minefield work with a new cell called MagicCell how do I do it such that the Minefield does not need to be modified so as to minimize rise of introducing regressions Solution use the Command pattern Liskov substitutability principle Every subclass should be perfectly substitutable for its base class Single responsibility principle Every class should have a single responsibility The first 90 of the code accounts for the first 90 of the project the last 10 of the project requires another 90 of the timequot


Buy Material

Are you sure you want to buy this material for

25 Karma

Buy Material

BOOM! Enjoy Your Free Notes!

We've added these Notes to your profile, click here to view them now.


You're already Subscribed!

Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'

Why people love StudySoup

Bentley McCaw University of Florida

"I was shooting for a perfect 4.0 GPA this semester. Having StudySoup as a study aid was critical to helping me achieve my goal...and I nailed it!"

Allison Fischer University of Alabama

"I signed up to be an Elite Notetaker with 2 of my sorority sisters this semester. We just posted our notes weekly and were each making over $600 per month. I LOVE StudySoup!"

Jim McGreen Ohio University

"Knowing I can count on the Elite Notetaker in my class allows me to focus on what the professor is saying instead of just scribbling notes the whole time and falling behind."


"Their 'Elite Notetakers' are making over $1,200/month in sales by creating high quality content that helps their classmates in a time of need."

Become an Elite Notetaker and start selling your notes online!

Refund Policy


All subscriptions to StudySoup are paid in full at the time of subscribing. To change your credit card information or to cancel your subscription, go to "Edit Settings". All credit card information will be available there. If you should decide to cancel your subscription, it will continue to be valid until the next payment period, as all payments for the current period were made in advance. For special circumstances, please email


StudySoup has more than 1 million course-specific study resources to help students study smarter. If you’re having trouble finding what you’re looking for, our customer support team can help you find what you need! Feel free to contact them here:

Recurring Subscriptions: If you have canceled your recurring subscription on the day of renewal and have not downloaded any documents, you may request a refund by submitting an email to

Satisfaction Guarantee: If you’re not satisfied with your subscription, you can contact us for further help. Contact must be made within 3 business days of your subscription purchase and your refund request will be subject for review.

Please Note: Refunds can never be provided more than 30 days after the initial purchase date regardless of your activity on the site.