CSCI 360: Software Architecture and Design

Slides:



Advertisements
Similar presentations
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Advertisements

Object-Oriented Analysis and Design
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Introduction to CS170. CS170 has multiple sections Each section has its own class websites URLs for different sections: Section 000:
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
General information CSE 230 : Introduction to Software Engineering
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
PROBABILITY AND STATISTICS FOR ENGINEERS Session 1 Dr Abdelaziz Berrado MTH3301 —Fall 09.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
CS 150 PERSONAL PRODUCTIVITY USING TECHNOLOGY Instructor: Dr. Xenia Mountrouidou.
 Dr. Natheer Khasawneh. Visual Programming CPE 411 Dr. Natheer Khasawneh Jordan University of Science and Technology.
CS 450 MODELING AND SIMULATION Instructor: Dr. Xenia Mountrouidou (Dr. X)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Craig Larman’s Applying UML and Patterns: Hands-on Mastery of OOA/D.
EECE 310 Software Engineering Lecture 0: Course Orientation.
SE-308 Software Engineering-II 7th Term SE University of Engineering & Technology Taxila, Pakistan Software Engineering Department.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Course Introduction Software Engineering
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
COSC 235: Programming and Problem Solving Instructor: Dr. Xenia Mountrouidou 1.
COSC 150: Science Using Computation Instructor: Dr. Xenia Mountrouidou 1.
Software Specification and Design Sirisin Kongsilp & James Brucker.
Course Guide IS325 Systems Analysis & Design II Ms Fatima Khan Prince Sultan University, College for Women.
CEN 4010 First Lecture January 9, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi
Object-Oriented Analysis and Design Fall 2009.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
CEN First Lecture CEN 4010 Introduction to Software Engineering Instructor: Masoud Sadjadi
CS-112 Object Oriented Concepts Course Syllabus. Outline  Instructor and Prerequisites  What this course is  Learning outcomes  Degree program outcomes.
ChocoPlane Project Software Engineering II Exercise I.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN Objectives Describe the book goals and scope Define OOA/D (Object-Oriented Analysis and Design) Illustrate.
Fundamentals of Software Engineering. Instructor: Dr. Kal Bugrara Office: Snell Engineering, Rm 267 Office Hours: Sat: 12:00-2:00 pm Phone
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview
CSCI 360: Software Architecture & Design
INTERNATIONAL BURCH UNIVERSITY
Computer Engineering Department Islamic University of Gaza
Lecture 1. Course Introduction
CS101 Computer Programming I
CSc 020: Programming Concepts and Methodology II
Computer Networks CNT5106C
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
CSCI 392: Seminar in Computing and Society
Lecture 1. Course Introduction
MIS323 Business Telecommunications
CS 519: Object-Oriented Analysis & Design IS 516: Selected Topics in Information Technology Instructor: Dr. Tarek Elghazaly Text Book: Craig Larman,
Lecture 1. Course Introduction
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
EECE 310 Software Engineering
Object Oriented Analysis and Design
MIS323 Business Telecommunications
CSCI 392: Seminar in Computing and Society
Lecture1: Introduction to IT322 Software Engineering I
Software Engineering (Second Year) Dr
CS 425 / CS 625 Software Engineering
Nonlinear Dynamic Control Systems
Course Overview CS 4640 Programming Languages for Web Applications
CIS 4328 – Senior Project 2 And CEN Engineering of Software 2
Computer Engineering Department Islamic University of Gaza
Computer Engineering Department Islamic University of Gaza
CMSC 345 Software Design and Development Spring 2004 Sections 0101 & 0201 Ms. Susan Mitchell Leave Your Ego at the Door! CMSC 345, Spring 2004.
UML Design for an Automated Registration System
Presentation transcript:

CSCI 360: Software Architecture and Design Instructor: Xenia Mountrouidou

Who am I? Dr. X – Computer Scientist PhD at North Carolina State University – Computer networks performance Worked at IBM – Software Performance Engineer Post doc at College of William and Mary – research on performance and power savings for hard disk drives Assistant professor at Jacksonville University, Wofford College Assistant professor at CofC Scuba diver, manga comics collector, science fiction reader, hacker

Who am I?

Outline Class organization How to survive this class Project kickoff Intro to architecture & design Choco plane activity

Class Organization Objectives Lectures Grading Honor Code

Outcomes After completing CSCI 360 students will be able to: Judge legal issues in software projects Construct UML diagrams Apply UML diagrams in different phases of a software engineering project Formulate the requirements and specifications for a software project Examine software architectural styles Apply appropriate design principles to software projects Build software with OO Design principles Secure software design is appropriate!

Outcomes Compare different software designs Design and implement software test cases Explain the software lifecycle and how it applies to different projects Build GUIs for enhanced user experience Understand the importance of project management in software Distinguish software design patterns Design software projects considering security, performance, usability, and data integrity.

Objectives Practice Design object solutions “Think in Objects” Analyze requirements with use cases Create domain models Apply an iterative & Rational Unified Process (UP) Relate analysis and design artifacts Read & write UML Practice Design object solutions Assign responsibilities to objects Design collaborations Design with patterns Design with architectural layers Understand OOP (e.g., Java) mapping issues RUP: iterative, not just a process but a framework, abstraction Domain modeling: one step before objects, real things, problem domain, domain expert GRASP: General Responsibility Assignment Software patterns, class/object responsibilities Craig Larman: “the critical design tool for software development is a mind well educated in design principles. It is not UML or any other technology.”

Priority Assign responsibilities to objects After that. . . ? The GRASP patterns are the key learning aid After that. . . ? Experience, practice

Assumptions for this Class You have taken CSCI 220, 221, 230 Beneficial: You have had practical experience with a small/medium software system You have experienced major problems.

Grading Criteria Midterm 20% Final 30% Project 35% Homework 10% Participation 5% Total 100% Homework Homework assignments will be based on your reading and will prepare you for your project. You may complete the homework assignments in teams of two. You will have 1 homework assignment every week. Project The project will be completed by teams of minimum two, maximum three students The topic of the project will be the design and prototype implementation of a health monitoring software system Tests There will be two tests: a midterm (Oct. 10) and a cumulative final. The tests will be closed book. You may use one cheat sheet, i.e., a regular sized page written in front and back. Participation: Participation will be the average of your attendance and active in class participation. You need to actively answer and ask questions during class to earn active in class participation points. The participation points are dependent on my discretion based on your attention and active preparation.

Lectures Slides: will not substitute for your reading Discussion: answer questions (participation grade, active learning) Labs/Exercises Work on your project deliverable with your team Work on a case study/in class exercise

Learning

Learning Aids This presentation is terse. The details are in…

Content Public website – class content Oaks – some overlapping content, submissions Required textbook – required reading Additional resources – links, interactive exercises

Syllabus Mandatory reading Ignorance of the rules does not exempt you from them

Honor code Syllabus Additional considerations for Computer Science courses: Code Collaboration

How to survive the class Keep up with readings Actively participate in lecture during class Do not miss more than necessary classes Work hard on the project Ask questions Visit me during office hours (or setup an appointment)

Project kickoff Find teammates Read project description Familiarize with Github

Analysis and Design? Analysis Requirements analysis Domain analysis investigation what best qualified… Requirements analysis Domain analysis Architectural analysis Design solution how best qualified… Object design Database design UI design

Object-Oriented Analysis and Design? Important domain concepts or objects? Vocabulary? Visualized in the UP Domain Model Object-Oriented Design Design of software objects Responsibilities Collaborations Design patterns Visualized in the UP Design Model Analysis vs design: understand – problem, customer, domain, vs solution

Development Method OOA/D needs explanation in a method context. Thus, an agile UP Common, popular Just a sample Our focus is method-independent core skills, not UP Responsibility assignment, design patterns, …

Unified Modeling Language (UML) Just a diagramming notation standard. Trivial and relatively unimportant. Not a method, process, or design guide.

UML: What’s Important? 24

UML: What’s Important? Harmful is knowing how to read and draw UML diagrams, but not being an expert in design and patterns. Important is object and architectural design skills, not UML diagrams, drawing, or CASE tools.

What to do next? Reading Homework 1 (related to reading) Visit Oaks and course website Read syllabus Read project description

Kahoot Quiz Take out your phones!

Choco plane activity

Problem Statement Goal: Construct an Airplane that carries a Hershey’s kiss as far as possible without harming it.

Chocoplane Requirements Functional Requirements: The airplane has to fly The airplane carries a Hershey’s kiss Nonfunctional Requirements: Takeoff is the porch area outside the classrooms. The Hershey’s kiss is not damaged at take-off

Chocoplane Project Organization 4 teams with 6 participants each Each team builds its own solution

Acceptance Criteria The plane must prominently display the name of the subsystem team The plane must actually demonstrate flying behavior (throwing is not allowed) The Hershey’s kiss must be undamaged after landing The client inspects the Hershey’s kiss after the plane has come to complete standstill and determines its healthiness.

The Crew of Choco-Airlines wishes you a good flight Have fun!

Sources Craig Larman’s Lecture 1 slides “Applying UML and Patterns”, Craig Larman, 3rd edition “Object-Oriented Software Engineering: Using UML, Patterns and Java”, Bernd Bruegge, Allen H. Dutoit, 3rd Edition