se310 analysis and design of software...

33
January 11, 2018 Sam Siewert SE310 Analysis and Design of Software Systems Lecture 1 - Introduction

Upload: danghanh

Post on 28-Mar-2018

234 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

January 11, 2018 Sam Siewert

SE310 Analysis and Design of Software

Systems

Lecture 1 - Introduction

Page 2: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Introductions What You Want from Course? When You Plan to Take Capstone? Which is your preferred OOP [C++, Java, Other?] How Do you Design your Software Now?

Other teaching, research and service this Spring – SE310, Analysis and Design of Software – CEC322, Microprocessor Lab – CS332, Organization of Programming Languages – Tau Beta Pi – ERAU Internal Research - ICARUS

Sam Siewert 2

Page 3: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Dr. Sam Siewert UC Berkeley – Philosophy/Physics University of Notre Dame, BS - Aerospace/Mechanical Engineering Johnson Space Center, U. of Houston – Computer Engineering, Mission Control Center U. of Colorado, Boulder, MS/PhD – JPL, Colorado Space Grant, Computer Science

CU Boulder Senior Instructor, Adjunct Professor, CTO, Architect, Developer/Engineer in Local Start-ups

U. of Alaska, Anchorage, Assistant Professor, Computer Systems Engineering, Alaska Space Grant Embry Riddle Prescott, Assistant Professor, CESE, Professor Adjunct, CU-Boulder

Sam Siewert 3

1984-85

1985-89

1989-92

1992-2012

2012-14

Page 4: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Course Goals and Outline Textbook: Hassan Gomaa, "Software Modeling and Design", Cambridge University Press, 1st Edition, 2011, Book website, Companion Materials, Author Website, ISBN 978-0521764148. … This book covers all you need to know to model and design software applications from use cases to software architectures in UML and shows how to apply the COMET UML-based modeling and design method to real-world problems. The author describes architectural patterns for various architectures, such as broker, discovery, and transaction patterns for service-oriented architectures, and addresses software quality attributes … http://www.modelio.org/ - Design Tool (Demo Right Away) GitHub or Bitbucket – Source and Document CMVC (Configuration Management and Version Control) http://mercury.pr.erau.edu/~siewerts/se310/ Coding in C++ [or OOP language(s) of your comfort], is for Proof-of-Concept and Prototype Only

Sam Siewert 4

Amazon Link

Page 5: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Course Learning Objectives OO Analysis, Design, Implementation and Test Research Software System or Application OO Prototype (Proof-of-Concept), V&V

Sam Siewert 5

1. Specification

2. Requirements Analysis

3. Design, Code Re-use

4. Team Design a. Decompose b. Integrate

5. Design and Prototype

6. Design Review(s) R&D = Analysis, More Analysis, Design, Prototype, Repeat

Proposed App and problem solved!

Use Agile Scrum + XP + OOA/OOD

Citations, re-use with credit, release notes

Design teams

CRC, Req’ts, OOA, OOD, UML models, prototypes, & design walk-throughs

Final design inspection

Six 2-Week Scrum Cycles

R&D

R&D

R&D

R&D

R&D

Page 6: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Foreshadow Demos - Modelio 3.7 SD #1 - Modelio Example UML Models (1 to 5)

– CASE Tool? – Code Generation? – Model Check! – Consistency,

Completeness, Conforming to Standard (UML 2.5)

#2 - Interactive ATM Machine Design

– PoC Can Really Assist with Analysis and Early V&V

Observation - You Can Pair this Class with SQA Final Project!

Sam Siewert 6

Page 7: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Domain Models – Use Case Details Complete a Design Provide Code Re-Use Candidates and PoC

Sam Siewert 7

Start Here! https://www.modelio.org/

OMG UML 2.5 Standard Structural Diagrams

• Start with Class Diagram and CRC • Then Object Diagram • Package and Deployment

Behavioral Diagrams

• Start with Use Case Diagram • Interaction Sequence Diagram after

Class and Object Done • Add State Machine and Activity

Diagrams for concurrency and statefulness

Helpful Validation and Verification Features for Design

• Integrated Models • Checklists – Completeness • CPP and Java Code Generation

USE Modelio 3.7 SD as your DESIGN TOOL

Page 8: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Example_1_RAID_Classes Simple Classes and Hierarchy for XOR (RAID5) and Mirror (RAID1)

Sam Siewert 8

Page 9: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Example_2_ATM_UC_and_CRC_Classes

Use case model, classes, and Class diagram

Sam Siewert 9

Page 10: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Example_3_RAID_System_UC_and_CRC_Classes

UC with External Actors, UCs with relationships shown Can break into many UC’s and Hierarchy to Abstract

Sam Siewert 10

Page 11: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Example_3_RAID_System_UC_and_CRC_Classes

Use Class Diagram to Create Object Diagram Use Object Diagram in Interaction Sequence Diagram

Sam Siewert 11

Page 12: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Example_4_Cruise_Control_UC_and_CRC_Classes

Instance:Class Lifelines Showing Message Passing and Execution, with Control Blocks Noted

Sam Siewert 12

Page 13: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Example_4_Cruise_Control_UC_and_CRC_Classes

Classes Grouped into Modules (Cohesion and Coupling)

Sam Siewert 13

Page 14: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Example_5_Fast_Food_Automation Activity Diagram (Concurrency, Flowchart Model)

Sam Siewert 14

Page 15: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Learn by Doing Pick an Application or System with focus on an aspect or Sub-system of your Interest (for R&D and prototyping) Can Model, Emulate or Simulate Hardware Elements Examples – Application Assistant – Calendar/Planner, Fitness Tracker, etc. – Planning Applications (E.g. CoE Personal Flow-chart Generator,

CE, SE) – Game for fun or education – Aspect of small UAS system (drone) – Aspect of Wind / Solar, Fuel-Cell for Off-Grid and Smart-Grid

Alternative Energy Farm – Aspect of Space Systems (E.g. Cube-Sat) for Mapping Mission – Aspect of Self-Driving Car, Intelligent Transportation, Rules

(Emulate Roadway, Use Real Camera) – Mobile Applications (Android or iOS) – e.g. Games and Apps – Whatever Interests You … (I’m Glad to Help)

Sam Siewert 15

Page 16: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Example View of System Interfaces, Processing, Entities (Objects)

Sam Siewert 16

Page 17: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Software End-to-End System

Sam Siewert 17

Page 18: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Software Engineering Characteristics of SWE Life Cycle – Process to Analyze, Design, Code, Unit Test, Integrate and Test,

Accept, and Maintain Software Solutions – Planning, Project Management, Methods

PQCT – Productivity (E.g. Lines of Code (poor metric), Modules,

Features, …) – Quality (E.g. Defects, Deficiencies, Test Coverage, …) – Cost (E.g. NRE Development, Maintenance, Upgrade, …) –

CAPEX, OPEX – Time to Market (Wide Range of Months to Years)

Sam Siewert 18

Page 19: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Learning Strategy Active + Traditional Inductive + Deductive Active Means In-Class Activities

– Component of your Grade on Exercises – If You Must Miss, 2 In-Class Can Be Dropped – Active Learning & Grading Policy – Minute Papers – In-Class Experiments, Activities, Think-Pair-Share, Groups – Outside-of-Class Analysis, Design and Development Groups

SE310 - introduce students to specific techniques which are widely used in the analysis and design of software systems. Traditional techniques will be reviewed and current methodologies will be taught and practiced. Emphasis will be placed on the standard notation used to document software requirements and designs. The translation of a documented design to implemented software will be explored by example, however, software construction (programming) will not be emphasized in the course…

Sam Siewert 19

Page 20: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

You Get out of Education what you Put into it!

Active Participation Policies Scrum Team Formation Scrum Status Walkthroughs Final Inspection Challenge me on Design Sam Siewert 20

Page 21: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Software Design Think-Pair-Share How is Software Engineering Different from Computer Science? Pair Up or Work as a Group and Discuss Present Brief Answer to Class

Sam Siewert 21

Page 22: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

PRClab, VB & SWE Worstation - Linux Option #1 – Use PRClab, prclab.pr.erau.edu via SSH

– Recommend MobaXterm – Code Development (GCC/g++, Make, etc.) -

http://mercury.pr.erau.edu/~siewerts/se310/documents/Linux/

Option #2 – Use Virtual-Box Linux with Centos 6.5 Install of Ubuntu 14.04 LTS (Both Supported)

– Must Have Windows, Macintosh or Linux Personal PC – http://mercury.pr.erau.edu/~siewerts/se310/documents/Linux/Linux-

Development-Getting-Started.pdf

Modelio on SWE workstation – Once logged on prc-b72-135-se1, via ssh (with X11 forwarding), the following

steps will start Modelio: Change to Modelio directory: cd /home/Modelio3.6 Launch Modelio.sh script: ./modelio.sh Note: do not launch the binary “modelio” (it will not work correctly)

Git client Runs on PRClab – SSH Tunnel to GitHub

Sam Siewert 22

Page 23: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Sam Siewert 23

Administrivia Introductions – Instructor (Office Hours) – Schedule 2017 – Students (Introductions) – Please do Collaborate, but cite well! – Policies - http://mercury.pr.erau.edu/~siewerts/se310/policies/

ERAU Canvas – Assignment Management Tool – Access via ERNIE - https://ernie.erau.edu – Mercury Website Primary - http://mercury.pr.erau.edu/~siewerts/se310/

Course Information – E-mail list (please sign up on sheet being passed around) – Lecture Notes at http://mercury.pr.erau.edu/~siewerts/se310/documents/ – No Notes for Active Learning, In-Class Work (See a Friend if you Miss

Class)

Must have PRClab account OR VB-Linux & SWE workstation account I highly recommend all 3, but PRClab and SWE workstation are sufficient

Page 24: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Detailed Learning Objectives What to Build? – Specification from Concepts – Requirements as Capabilities – Methods to Identify Requirements

How to Specify It? – Domain Modeling – Architecture and Design Patterns (Object Oriented) – Design Inspections

OOA/OOD UML (Universal Modeling Language) Translation of OOA/OOD to an OOP (C++ or Java) Sam Siewert 24

Page 25: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Minute Paper #1 Does the OO Approach Have Significant Advantage over Structured Analysis/Design and Procedural Programming? – Yes, No – Why, Why Not? – List 3 Key Advantages – List 3 Key Disadvantages – Will it Replace all Other Types of Programming?

Hint – After you Answer in your Own Words, Browse to: – http://www.cs.gordon.edu/courses/cs211/AddressBookExample/ – http://www.cs.gordon.edu/courses/cs211/ATMExample/

Sam Siewert 25

Page 26: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

UML – Use Cases Class Structure (Data and Operations on that Data) Use Cases and Corresponding Interaction Diagrams – Actors in Use Case – Behavior Shown by Interaction Diagrams

Sam Siewert 26

Page 27: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

UML Class Diagram Much Like ER / EER if you Have Had CS 317 Shows Class Relationships and Hierarchy

Sam Siewert 27

Transaction Abstract Class Defines Specific (Refined) Transaction Types

One ATM Instance Supports Many Transactions (Abstract)

One ATM Instance Supports Many Sessions Over Time [Each Requires Card Read]

Arrows – Dashed Uses/Dependencies and Solid Relationships with Cardinality

Page 28: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

UML Interaction Diagrams Behavior – Object Interactions over Time

Sam Siewert 28

Dashed Lines: Messages

Solid Lines: Operations that Start Execution Sequences

Wide Vertical Lines: Active Process Started by Operation With Messaging

X: End of Interaction (E.g. Specific Session)

Page 29: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Detailed Design Class Public and Private Data Class Operations on Data Constructors and Destructors for Instantiation of Object

Sam Siewert 29

Page 30: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Operations and State – State Charts Operational Input Changes State of Objects [Output] At Any Time, Object is in One Well-known State

Sam Siewert 30

Input / Output On Transitions

Start State

State: Object Instance Needs Specific Data, Waits on Next Input

Termination State: End of Instance

Page 31: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Traditional SA/SD Data Flow Diagrams – Data [Messages] Between Processes and is Transformed Entity Relationship Diagrams – Lacks Operations, but Defines Entities [Objects] and Relationships State Machines [in Common, but Typically for Each Process in DFD] Flow-Charts – Detailed Procedural Design [Interaction, Logic] Sam Siewert 31

Page 32: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Architecture and Design Patterns OO Has Goal of Design and Software Re-Use – Encapsulation of Data and Operations – Class Hierarchy and Object Instances – Well Understand Use Cases – Well Understand Interaction Between Objects

Study 4 Key System Types 1. Interactive – E.g. GUI, CLI 2. Event Driven – E.g. Anit-lock Breaking System Software 3. Transformational – E.g. Image Processing, Encode/Decode

[MPEG Digital Video, RAID] 4. Transaction Oriented – E.g. DBMS

Sam Siewert 32

Page 33: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Lecture...SE310, Analysis and Design of Software ... Project Management, ... used

Assignment #1 Activities Assignment #1 Discussion – I will Post Every Other Tuesday, We’ll Discuss, Due Following

Week on Friday [10 days to complete each] – Late Assignments – 10% Penalty for 3-day-late Turn-in

[Monday], After that, only with Instructor Permission

Bring Up Modelio and Start Entering Address Book or ATM Design Enter Classes and Diagrams Covered in Class – Simplify, But Complete (At least 3 of each Diagram Type) Sam Siewert 33