Http://flic.kr/p/87iHCA Software Design.

Slides:



Advertisements
Similar presentations
Introduction To System Analysis and Design
Advertisements

Methods for Rails. File Structures This is taken directly from app Holds all the code that's specific.
Nov. 14, 2007 Systems Engineering ä System ä A set or arrangement of things so related as to form a unity or organic whole. ä A set of facts, principles,
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
By Bob Bunson  Simulation of software development project  Fictitious system from Concept to Code  Oriented around the.
Struts. Agenda Preface Struts and its components An example The architecture required for Struts Applications.
UNIT-V The MVC architecture and Struts Framework.
Ruby on Rails. What is Ruby on Rails? Ruby on Rails is an open source full-stack web framework. It is an alternative to PHP/MySQL. It can render templates,
MODEL VIEW CONTROLLER A Technical Seminar Report submitted to
MVC & ActiveRecord by Christian Mohr & Mohamed Souiai.
1 Dr Alexiei Dingli Web Science Stream Introducing Rails.
1 Another group of Patterns Architectural Patterns.
Introduction To System Analysis and Design
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Systems Analysis and Design in a Changing World, 3rd Edition
GRASP: Designing Objects with Responsibilities
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Software Engineering COSC 4460 Class 4 Cherry Owen.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
Frameworks CompSci 230 S Software Construction.
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CS 4720 Model-View-Controller CS 4720 – Web & Mobile Systems.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
John D. McGregor Architecture Evaluation
Chapter 9 Web Application Design. Objectives Describe the MVC design pattern as used with Web applications Explain the role and responsibilities of each.
Model-View-Controller A Design Pattern SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
Model-View-Controller an introduction to MVC design pattern with Castle.MonoRail Presentation: v1.0 Prepared by: Chorn Sokun
Ruby on Rails. Web Framework for Ruby Designed to make it easier to develop, deploy, and maintain web applications Design with Model-View-Controller –almost.
Apache Struts Technology A MVC Framework for Java Web Applications.
J2EE Platform Overview (Application Architecture)
Software Testing.
Design Patterns: MORE Examples
Introduction to .NET Florin Olariu
Security: Exploits & Countermeasures
Security: Exploits & Countermeasures
MVC Architecture, Symfony Framework for PHP Web Apps
1993 version of Mosaic browser.
Play Framework: Introduction
Chapter 12: Collaboration Diagram - PART2

Software Design and Architecture
Quality Management Perfectqaservices.
Haritha Dasari Josue Balandrano Coronel -
PHP / MySQL Introduction
Overview of System Engineering
Starting Design: Logical Architecture and UML Package Diagrams
Introduction To software engineering
UML profiles.
Software Design Lecture : 15.
Software Design Lecture : 14.
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Security: Exploits & Countermeasures
Behavioral Modeling with UML
MVC Controllers.
Security: Exploits & Countermeasures
ASP.NET MVC Web Development
Domain Modeling.
Security: Exploits & Countermeasures
11. MVC SE2811 Software Component Design
Whitebox Testing.
11. MVC SE2811 Software Component Design
Databases and the MVC Model
ASP.NET MVC Imran Rashid CTO at ManiWeber Technologies.
Software Configuration Management.
Security: Attacks & Countermeasures
Planning and Estimation.
Software Testing.
Presentation transcript:

http://flic.kr/p/87iHCA Software Design

3 SWEBOK KAs covered so far ^4 We’ve added one! Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations

3 SWEBOK KAs covered so far ^4 Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations Today’s topic

Software Design Subtopics We’ll touch on a bunch of these today!

Much of SE involves designing—be it artifacts, procedures, etc. What is design? Create component or process Not just code With desired properties Design objectives/constraints Involves decision making Design decisions Much of SE involves designing—be it artifacts, procedures, etc.

What is design? Create component or process With desired properties Not just code With desired properties Design objectives/constraints Involves decision making Design decisions What are some for software components?

Some desirable properties for software components Reusable Understandable Modifiable Extensible Maintainable Readable Reliable Efficient (as in performance) … Tradeoffs and prioritization may be necessary!

What is design? Create component or process With desired properties Not just code With desired properties Design objectives/constraints Involves decision making Design decisions How to make good decisions?

Making software design decisions Design principles: High-level, fundamental advice More general Design patterns: Tried and true template solutions to common problems More specific Conform to principles

Making software design decisions Design principles: High-level, fundamental advice More general Design patterns: Tried and true template solutions to common problems More specific Conform to principles Example principle:

Making software design decisions Design principles: High-level, fundamental advice More general Design patterns: Tried and true template solutions to common problems More specific Conform to principles Let’s see an example pattern

Model-View-Controller (MVC) Architectural Pattern Timeout! What do we mean by “architectural”?

Two levels of software design Architectural design: High-level structure of software system Detailed design: Low-level design of individual components/modules/classes

Model-View-Controller (MVC) Architectural Pattern Timeout! What kind of diagram is this?

Data Flow Diagrams components flows

Model-View-Controller (MVC) Architectural Pattern Being “architectural”, these components may contain many subcomponents (classes, etc.)

MVC Component Responsibilities Timeout! What do we mean by “responsibilities”?

Responsibility-Driven Design Frames object design as deciding How to assign responsibilities to objects How objects should collaborate What role each object should play in a collaboration http://flic.kr/p/btp5ZK

MVC Component Responsibilities View: Responsible for UI (buttons, etc.)

MVC Component Responsibilities Model: Business logic, domain objects

MVC Component Responsibilities Controller: Translates UI actions into operations on domain objects

MVC Component Responsibilities What principle does MVC follow?

MVC Component Responsibilities What principle does MVC follow?

MVC Component Responsibilities What good properties does this principle/pattern engender?

How Rails applies MVC

Browser sends HTTP request How Rails applies MVC Browser sends HTTP request

Router translates to action (method call) How Rails applies MVC Router translates to action (method call)

Controller performs actions on model How Rails applies MVC Controller performs actions on model

Model manipulates (CRUD) the database How Rails applies MVC Model manipulates (CRUD) the database

Model returns data to the controller How Rails applies MVC Model returns data to the controller

Controller passes data to view How Rails applies MVC Controller passes data to view

View creates HTML based on data How Rails applies MVC View creates HTML based on data

Controller sends HTTP response to browser How Rails applies MVC Controller sends HTTP response to browser

Must you write the entire model/view/controller? How Rails applies MVC Must you write the entire model/view/controller?

How Rails applies MVC Must you write the entire model/view/controller? No. Rails provides a framework, and you extend it But how?

Files to extend Rails app/views/… app/controllers/… config/routes.rb app/models/…

Ch. 2 Example: config/routes.rb “resources” line creates these routes

All controllers are part of this class hierarchy Ch. 2 Example: app/controllers/microposts_controller.rb All controllers are part of this class hierarchy

What kind of diagram is this? Ch. 2 Example: app/controllers/microposts_controller.rb Timeout! What kind of diagram is this?

UML Class Diagram classes inherits relation-ship

All controllers are part of this class hierarchy Ch. 2 Example: app/controllers/microposts_controller.rb All controllers are part of this class hierarchy

All model classes are part of this hierarchy Ch. 2 Example: app/models/micropost.rb All model classes are part of this hierarchy

Ch. 2 Example: app/views/users/index.html.erb ERb is embedded Ruby – Combines HTML & Ruby

How to “hook into” frameworks (like Rails) Extend framework classes Call framework methods Put files in certain places Follow naming conventions

MVC Question: What code would you change if you wanted to…

MVC Question: What code would you change if you wanted to… … change the colors/style of your webapp?

MVC Question: What code would you change if you wanted to… … change the colors/style of your webapp? View code

MVC Question: What code would you change if you wanted to… … change how sales tax is calculated?

MVC Question: What code would you change if you wanted to… … change how sales tax is calculated? Model code (and maybe Controller)

MVC Question: What code would you change if you wanted to… … add a survey form?

MVC Question: What code would you change if you wanted to… … add a new survey form? View, Controller, and maybe Model

MVC Question: What code would you change if you wanted to… … add validation that a form input is a legal email address?

MVC Question: What code would you change if you wanted to… … add validation that a form input is a legal email address? Model mainly (but maybe Controller and maybe View)

MVC Question: What code would you change if you wanted to… … change the behavior of an existing button?

MVC Question: What code would you change if you wanted to… … change the behavior of an existing button? Controller (maybe Model, maybe View)

What’s next?