ITEC 370 Lecture 13 Design.

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Software Engineering 2003 Jyrki Nummenmaa 1 A BASIC OO SOFTWARE DEVELOPMENT PROCESS Earlier, we saw a number of different software lifecycle models.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley STARTING OUT WITH Python Python First Edition by Tony Gaddis Chapter 9 Classes.
Introduction to Object Oriented Programming Java.
Overview. Why data structures is a key course Main points from syllabus Survey Warmup program And now to get started...
Fundamentals of Information Systems, Second Edition
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Course Instructor: Aisha Azeem
UML and Object Oriented Concepts
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
The Design Discipline.
Implementation & Integration Phase Implementation, then integration: Implementation, then integration:  Each module is implemented by member of programmer.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
CompSci 105 SS 2005 Principles of Computer Science Lecture 4 Lecturer: Santokh Singh.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
ITEC 370 Lecture 11 Design. Review Questions? Today! –Rough draft of your SRS document –Introduction, Features (Functional / Non-functional), Interfaces.
Software Requirements Engineering CSE 305 Lecture-2.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 3, Slide 1 February 20, 2004 Lecture 3: Introduction to Software Analysis and.
Sommerville, Mejia-Alvarez, 2009Software Engineering, Slide 1 Software Design u Deriving a solution which satisfies software requirements.
CSE 219 Computer Science III Program Design Principles.
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
CSCE 548 SDLC. CSCE Farkas2 Reading This lecture – The Software Development Life Cycle (SDLC),
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Slide 1 What the business needs  How to build it Functional requirements  + Nonfunctional requirements Performance System environment issues Problem.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
1. USER & CUSTOMER 2.BASING DEVELOPMENT ON SOLID PRINCIPALS AND REUSABLE TECH.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Design Concepts ch-8
Principles of Programming & Software Engineering
CSE 219 Final exam review.
Methodologies and Algorithms
Software Design Refinement Using Design Patterns
Software Quality Control and Quality Assurance: Introduction
CompSci 280 S Introduction to Software Development
CSCI 578 Software Architectures
Integration Testing.
Object-Oriented Techniques
COMPACT Web Design Approach:
Introduction to System Analysis and Design
which satisfies software requirements
Part 3 Design What does design mean in different fields?
Enterprise Computing Collaboration System Example
Abstract descriptions of systems whose requirements are being analysed
The Process of Object Modeling
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Component-Based Software Engineering
Object-Oriented Design
Chapter 6 – Architectural Design
Object oriented analysis and design
Chapter 5 Architectural Design.
An Introduction to Software Architecture
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
What Is Good Software(Program)?
Software Design Lecture : 35.
Chapter 5 Architectural Design.
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Executable Specifications
Chapter 6 – Architectural Design
From Use Cases to Implementation
Chapter 10 – Component-Level Design
Presentation transcript:

ITEC 370 Lecture 13 Design

Review Questions? Presentation of project on F Design patterns Business formal Treat as if you are presenting what you are building for a company Design patterns What are some of the design patterns we talked about on M? Did you see any you could use in your project? Have you ever implemented one of them before?

Objectives Finishing up the design process

Start Have description of system, what it is supposed to do Resources Document Person who wrote the document Computers Redbull?

Goal Describe how the system is going to be built Tools UML Design Patterns Knowledge from previous ITEC classes

How? Good question Many different options to consider Personalized to each team Strengths / weaknesses Different approaches

Top down When you hear top down what comes to mind? Broad strokes followed by more precise Typical OO type approach

Bottom up Technical subsystems Once designed figure out how to string them together Problems Some subsystems may share functionality (duplication) Sprawl is an issue because of lack of direction

Abstraction What is it? Where is it useful? When should it be used? When is it abused?

Refinement Given a rough set of class diagrams, what could you change to make it better? Combining functionality Separating functionality Changing granularity level Adding / removing abstractions

What is the driving principle behind your software system? Architecture What is the driving principle behind your software system? Design patterns Command pattern Data flow architecture MVC

Data structures What / Where / How is getting stored? When / How is it retrieved? Advantages / Disadvantages of different approaches (run-time / coding time) Should you build your own?

Information hiding What is “viewable” at each part of the system Security Communication

Goals What is really important to the project? Reusability Modularity Extensibility Usability Fault tolerance Maintainability Security

Process Decide the goals for the design (may not be customer / requirements oriented) Reusability, modularity, etc… Agree on the approach (top down / bottom up) Determine architecture for system (MVC) Choose granularity of design Produce material using a tool Trace each requirement to a part of the design!

Fin Hand a document / zip to a developer Sit back and watch them code Work isn’t over though Verification that they are building it right Code inspections

Review The design process itself