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

  • What is geography?

    What is geography?

    Soil components Soil formation Classifying soils: color Classifying soils: texture Classifying soils: texture Classifying soils: structure Classifying soils: structure Soil moisture Soil-water balance Soil profiles Soil classification Entisols Oxisols Aridisols Mollisols Alfisols Spodosols Soil degradation Soil degradation Soil degradation
  • Slide 0

    Slide 0

    2010 Product Evaluation for Reniform Nematode Suppression. in Mississippi Delta Sweetpotato Production. Larry C. Adams and Randall G. Luttrell. USDA-ARS, SIMRU
  • I. Brain Dump - Weebly

    I. Brain Dump - Weebly

    I. Brain Dump. Know. Want to Know. ... Warm-ups: 50 suicides. 50 push-ups. 50 frog jumps. Every practice. After you leave, the team . Still does that warm up = You've set a precedent. Precedent. Precedent - an action taken...
  • Transition from a live-in caregiver to a permanent resident

    Transition from a live-in caregiver to a permanent resident

    Aim of the study. To analyze the structural constraints on the migration trajectory of female migrants and families in a long-term perspective. The path toward family reunification of Filipina live-in caregivers
  • Every text has within new interpretations that can

    Every text has within new interpretations that can

    Like Fenelon did, Existential Psychology differentiates between normal and neurotic anxiety, normal anxiety is an element of life preservation as well as the potential drive for inner growth (Yalom 1998). While neurotic anxiety is a symptom of psychic stagnation.
  • WHAT DOES IT MEAN TO BE WELL EDUCATED?

    WHAT DOES IT MEAN TO BE WELL EDUCATED?

    IT'S THE TEACHER Effect of Teacher Effectiveness on Student Achievement 3rd graders placed with 3 high performing teachers in a row averaged 96th percentile at end of 5th grade in math 3rd graders placed with 3 low performing teachers in...
  • Oscillating Flows in Inlets of Pulse Detonation Engines

    Oscillating Flows in Inlets of Pulse Detonation Engines

    Filtered Rayleigh Scattering Velocimetry - Accuracy Investigation in a M=2.22 Axisymmetric Jet Jonas Gustavsson Corin Segal Mechanical and Aerospace Engineering University of Florida Purpose of study Measure the accuracy of FRS for high-speed flow velocimetry in a realistic flow situation...
  • Are New Languages Necessary for Manycore?

    Are New Languages Necessary for Manycore?

    Multicore New languages aren't necessary Legacy code easily adjusted Manycore Implicitly Parallel Sequential Programming No optimization for sequential (custom allocators)‏ Points of non-determinism specified Parallel algorithms in sequential codes Debuggability, Understandability, Sanity The Answer Originates with ATE The Old Way:...