se310 analysis and design of software...

25
January 13, 2016 Sam Siewert SE310 Analysis and Design of Software Systems Lecture 1 - Introduction

Upload: others

Post on 17-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

January 13, 2016 Sam Siewert

SE310Analysis and Design of Software

Systems

Lecture 1 - Introduction

Page 2: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

IntroductionsWhat You Want from Course?When You Plan to Take Capstone?Which is your preferred OOP [C++, Java, Other?]

What I’m Doing this Spring– SE310, Analysis and Design of Software– SE451, Software Team Project II (Capstone – Arctic Power)– CS332, Organization of Programming Languages– Collaboration on Curie/Quark Image Proc & DSP – Intel

Chandler, IoT Group– ERAU Internal Research (Smart Camera Power Efficiency –

SPIE, ICARUS)– SpaceX Hyperloop Team Advisor– ADAC – Arctic Domain Awareness Center, DHS, U. Alaska

Sam Siewert 2

Page 3: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Dr. Sam SiewertUC 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/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Sam Siewert 4

Relevant BackgroundResearch – Instruments, CV/MV

Arctic Center of Excellence– DHS, U. of Alaska– Smart-Cameras– No-Battery Arctic Power

Computer and Machine Vision, Sensors1. Real-time Adaptive Color Transformation2. UAV/UAS Digital Video Encode/Decode Performance3. Collaboration on Curie/Quark Image Proc & DSP – Intel Chandler, IoT

Group4. ERAU Internal Research (Smart Camera Power Efficiency – SPIE,

ICARUS)5. SpaceX Hyperloop Team Advisor (Instrumentation)6. ADAC – Arctic Domain Awareness Center, DHS, U. Alaska

Intel Embedded Research and Education Program(s)1. Robotics with Computer Vision Navigation2. Real-Time Digital Media – GPU, Multi-Core and FPGA Acceleration Studies3. Hybrid Reconfigurable Computing for Computer and Machine Vision

Page 5: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Course Goals and OutlineSoftware Engineering: A Practitioner’s Approach, Eighth Edition, Roger Pressman, Bruce Maxim

… a step-by-step methodology that integrates modeling and design, UML, patterns, test-driven development, quality assurance, configuration management, and agile principles throughout the life cycle. The overall approach is casual and easy to follow, with many practical examples that show the theory at work. The author uses his experiences as well as real-world stories to help the reader understand software design principles, patterns, and other software engineering concepts.

http://www.modelio.org/ - Design Tool

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 5

Page 6: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Course Learning ObjectivesOO Methods of Analysis, Design, Implementation and TestResearch a System and an Application for itOO Prototype (Proof-of-Concept) for it

Sam Siewert 6

1. Specification

2. Requirements Analysis

3. Design, Code Re-use

4. Team Designa. Decomposeb. Integrate

5. Design and Prototype

6. Design Review, Demo

Page 7: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Learn by DoingPick a System of your Interest (to Research and Prototype)Can Model, Emulate or Simulate Hardware ElementsExamples (Must Research System / Requirements)– Thorium Molten Salt Reactor for Alternative Energy Factory– Wind / Solar, Fuel-Cell for Off-Grid and Smart-Grid Alternative

Energy Farm– Space Systems (E.g. Cube-Sat) for Mapping Mission– Pure Applications (E.g. CoE Personal Flow-chart Generator, CE,

SE)– Self-Driving Car, Intelligent Transportation, Rules (Emulate

Roadway, Use Real Camera)– Mobile Applications (Android or iOS)– Fully Automated (Self-Running) Fast Food Restaurant– What Interests You … (I’m Glad to Help)

Sam Siewert 7

Page 8: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Example View of SystemInterfaces, Processing, Entities (Objects)

Sam Siewert 8

Page 9: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Software End-to-End System

Sam Siewert 9

Page 10: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Software EngineeringCharacteristics of SWE Life Cycle (Fig. 1.5 in Book)– 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 10

Page 11: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Learning StrategyActive + TraditionalInductive + 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 11

Page 12: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Why Active Learning?Sleep Less, Think More in Class, Learn More Overall

SWE is an Active, Social, Team Endeavor –Industry and Research Skill Sharpening

Studies Show Active Learning is Better [See me for Research]

Appeals to Wide Variety of Learning Styles– Perception – Intuitive or Sensing

[Concepts or Observations]– Input - Visual or Verbal

[Pictures or Words]– Processing - Active or Reflective

[Doing or Pondering]– Understanding - Sequential or Global

[Trees or Forest]

Inquiry Learning - True to Lifelong Learning

Sam Siewert 12

Page 13: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Think-Pair-ShareHow is Software Engineering Different from Computer Science?

Pair Up or Work as a Group of 3 and Discuss

Present Brief Answer to Class

Sam Siewert 13

Page 14: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

PRClab - LinuxOption #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/Lin

ux-Development-Getting-Started.pdf

Modelio on PRClab -Git client Runs on PRClab – SSH Tunnel to GitHub

Sam Siewert 14

Page 15: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Sam Siewert 15

AdministriviaIntroductions– Instructor (Office Hours) – Schedule 2016– 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

I highly recommend both if possible, but PRClab is sufficient

Page 16: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Detailed Learning ObjectivesWhat 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 16

Page 17: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Minute Paper #1Does 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 17

Page 18: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

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

Sam Siewert 18

Page 19: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

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

Sam Siewert 19

Transaction Abstract ClassDefines Specific (Refined)Transaction Types

One ATM Instance SupportsMany Transactions (Abstract)

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

Arrows – Dashed Uses/Dependenciesand Solid Relationships withCardinality

Page 20: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

UML Interaction DiagramsBehavior – Object Interactions over Time

Sam Siewert 20

Dashed Lines:Messages

Solid Lines:Operations thatStart ExecutionSequences

Wide Vertical Lines:Active ProcessStarted by OperationWith Messaging

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

Page 21: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Detailed DesignClass Public and Private DataClass Operations on DataConstructors and Destructors for Instantiation of Object

Sam Siewert 21

Page 22: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

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

Sam Siewert 22

Input / OutputOn Transitions

Start State

State:Object InstanceNeeds Specific Data,Waits on Next Input

Termination State:End of Instance

Page 23: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Traditional SA/SDData 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 23

Page 24: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

Architecture and Design PatternsOO 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 Types1. Interactive – E.g. GUI, CLI2. Event Driven – E.g. Anit-lock Breaking System Software3. Transformational – E.g. Image Processing, Encode/Decode

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

Sam Siewert 24

Page 25: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-16/Le… · … a step-by-step methodology that integrates modeling and design,

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

Week on Sunday– Late Assignments – 10% Penalty for 3-day-late Turn-in, 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 25