CSCI 360: Software Architecture and Design

CSCI 360: Software Architecture and Design

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 2 Who am I? 3 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 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 Think Practicein Objects Analyze requirements

with use cases Design object solutions Assign responsibilities to objects Create domain models Design collaborations Apply an iterative & Rational Unified Process (UP) Design with patterns Relate

analysis and designlayers artifacts Design with architectural Understand Read OOP (e.g., Java) mapping issues & write UML Priority Assign responsibilities to objects

The GRASP patterns are the key learning aid After that. . . ? Assumptions for this Class Assumption: 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 Final Project Homework Participation Total 20% 30% 35% 10%

5% 100% 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 Lecture

Less Retention Apply Apply and Talk More Retention 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? Design Analysis investigation

solution how what best qualified Object Requirements design analysis Database Domain analysis design UI

Architectural design analysis Object-Oriented Analysis and Design? Object-Oriented Object-Oriented Analysis Design Important domain concepts or objects? Design of software objects

Vocabulary? Responsibilities Collaborations Visualized in the UP Domain Model Design patterns Visualized in the UP Design Model 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. interface InterfaceX Abstract ClassX

Trivial and relatively unimportant. generalization ... FinalClass {leaf} ClassY operation1() ...

Not a method, process, or design guide. ... AlternateUMLFor ImplOfInterfaceX classAttribute + publicAttribute - privateAttribute attributeWithVisibilityUnspecified

attribute1 : type interface implementation burgers : List of VeggieBurger attribute2 : type = initial value finalConstantAttribute : int = 5 { frozen } /derivedAttribute operation1() ... AlternateUMLFor

AbstractClass {abstract} Whole InterfaceX 1 operation1() *

Composition Part Associations: ClassA ClassX 1 Association-name 1 role-1 role-2

ClassB classMethod() + constructor ClassX(int) signal CaughtException1() methodWithVisibilityUnspecified() methodReturnsSomething() : Foo abstractMethod() abstractMethod2() { abstract } // alternate + publicMethod() - privateMethod()

# protectedMethod() ~ packageVisibleMethod() finalMethod() { leaf } methodWithoutSideEffects() { query } synchronizedMethod() { guarded } exceptions AssociationClass ThrownException1 Multiplicity:

* Class zero or more; "many" 1..40 Class

one to forty 1..* Class one or more 5

Class exactly five UML: Whats Important? 24 UML: Whats 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 Hersheys kiss as far as

possible without harming it. Chocoplane Requirements Functional Requirements: The airplane has to fly The airplane carries a Hersheys kiss Nonfunctional Requirements: Takeoff is the porch area outside the classrooms. The Hersheys 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 Hersheys kiss must be undamaged after landing The client inspects the Hersheys 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 Larmans 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

Recently Viewed Presentations

  • La comunicazione istituzionale -

    La comunicazione istituzionale -

    All'interno di questo comitato, strinse dei rapporti col giornalista George Parker, il quale aveva gestito una campagna pubblicitaria per . Grover. Cleveland. durante la sua terza candidatura presidenziale. Nel tardo 1904, i due colleghi fondarono la terza società di pubbliche...

    Dr. Cecilia Fe L. Sta Maria-Abalos. ... Liza Quimson and Phillip Queroda. ... Karen Nicole Francisco and Shenny Angela Montes. Philippines First: An Edutainment 3D Game for Android Mobile Platform using Separating Axis Theorem (SAT) Algorithm .
  • Map Essentials - Chandler Unified School District

    Map Essentials - Chandler Unified School District

    Map Essentials Terms to tackle: Title Compass Rose Scale Legend Locator Map Title The map title shows what the subject of the map is. It's All About Perspective! Map Scales Scales represent the distances between points on a map. Scales...
  • History and Government of Canada - Henry County Schools ...

    History and Government of Canada - Henry County Schools ...

    Colonization-During the 1500-1600s, French explorers claimed much of Canada-Called their settlements "New France"-British explorers also colonized parts of Canada along the Atlantic coast
  • Slayt 1 - Ankara Üniversitesi

    Slayt 1 - Ankara Üniversitesi

    Epanova. 4 g (1x1) 4 g (1x1) 2-4 g (1x1) VLDL. VLDL üretimini inhibe eder. ApAntisenseOligonükleotidler Mipomersen. 200 mg/ haftalık subkutan enjeksiyon. VLDL, LDL, Lp (a) Apolipoprotein B sentezini inhibe eder. Mikrozomaltrigliserid transfer protein inhibitör Lomitapid. 5-60 mg (1x1) VLDL,...
  • JOD Grant - University of Pittsburgh

    JOD Grant - University of Pittsburgh

    Short Biography of Hippocrates Hippocrates, (460-377? BC), an extraordinary medical writer of Greece. Little is known of his life beyond the fact that he was a physician on the island of Cos, that he belonged to the most intellectual period...
  • Deep Culture Versus Surface Culture - Montrose High School

    Deep Culture Versus Surface Culture - Montrose High School

    Culture Shapes . . . The way we think (cognition) The way we interact (behavior) The way we communicate (language) The way we transmit knowledge to the next generation (education)
  • Honoring the Legacy of Jordan's Principle

    Honoring the Legacy of Jordan's Principle

    Funnel prevention dollars towards bodies independent of CFS System. Deconstruct child welfare system. Creation of educational awareness campaign regarding challenges children with special needs face. Design of new funding model to support model of care approach. First Nation led and...