se310 analysis and design of software...

20
January 7, 2015 Sam Siewert SE310 Analysis and Design of Software Systems Lecture 1 - Introduction

Upload: truongkien

Post on 28-Mar-2018

221 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

January 7, 2015 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/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

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 2

1984-85

1985-89

1989-92

1992-2012

2012-14

Page 3: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Sam Siewert 3

Relevant Background

Research – DHS, U. of Alaska

Arctic Center of Excellence – Maritime Technology Research

– Smart-Cameras

Consulting – Trellis-Logic LLC, Transductive LLC 1. Real-time Adaptive Color Transformation

2. UAV/UAS Digital Video Encode/Decode Performance

3. Semantic Storage Methods for Intrusion Detection

4. Advanced Erasure Code Algorithms – Protects Cloud from Data Loss

Intel Embedded Research and Education Program(s) 1. Robotics with Computer Vision Navigation

2. Real-Time Digital Media – GPU, Multi-Core and FPGA Acceleration Studies

3. Hybrid Reconfigurable Computing for Computer and Machine Vision

Page 4: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Course Goals and Outline

Software 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 OPTIONAL, Proof-of-Concept and Prototype Only, But Recommended

Sam Siewert 4

Page 5: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Software Engineering

Characteristics 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 5

Page 6: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

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 6

Page 7: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

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 7

Page 8: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Think-Pair-Share

How 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 8

Page 9: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

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

ux-Development-Getting-Started.pdf

Modelio on PRClab -

Git client Runs on PRClab – SSH Tunnel to GitHub

Sam Siewert 9

Page 10: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Sam Siewert 10

Administrivia Introductions – Instructor (Office Hours) - http://mercury.pr.erau.edu/~siewerts/Schedule-

Spring-2015.pdf

– Students (Introductions) – Please do Collaborate, but cite well!

– Policies - http://mercury.pr.erau.edu/~siewerts/se310/policies/

ERAU Blackboard – Assignment Management Tool - https://erau.blackboard.com

– 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 11: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Overall Learning Objectives

What to Build?

– 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 11

Page 12: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

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 12

Page 13: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

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 13

Page 14: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

UML Class Diagram Much Like ER / EER if you Have Had CS 317

Shows Class Relationships and Hierarchy

Sam Siewert 14

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 15: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

UML Interaction Diagrams

Behavior – Object Interactions over Time

Sam Siewert 15

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 16: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Detailed Design

Class Public and Private Data

Class Operations on Data

Constructors and Destructors for Instantiation of Object

Sam Siewert 16

Page 17: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Operations and State – State Charts Operational Input Changes State of Objects [Output]

At Any Time, Object is in One Well-known State

Sam Siewert 17

Input / Output

On Transitions

Start State

State:

Object Instance

Needs Specific Data,

Waits on Next Input

Termination State:

End of Instance

Page 18: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

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 18

Page 19: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

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 19

Page 20: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/Lectures/Spr-15/...–Planning, Project Management, ... Much Like ER / EER if you Have Had

Assignment #1 Activities

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)

Can You Implement in C++? Now? [g++ on PRClab]

ATM Authors Use Java – Dr. Java for Windows

[Optional]

When Should Code Construction Start?

Sam Siewert 20