12
January 15, 2015 Sam Siewert SE310 Analysis and Design of Software Systems Lecture 2-2 Systems Engineering for OO

SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

January 15, 2015 Sam Siewert

SE310

Analysis and Design of Software

Systems

Lecture 2-2 – Systems Engineering for

OO

Page 2: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

Learning Objective

Software Engineering Process? – Lifecycle Phases

Agile – Manifesto that Hosts Spiral, XP, Scrum, Feature-

Driven or any Iterative Process [Waterfall with Feedback]

Requirements? Architecture? – First Phase

Sam Siewert 2

SPIRAL

XP - Extreme

WATERFALL

feedback

Page 3: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

Overall Learning Objectives

Overall OO

Lifecycle

Requirements,

Architecture,

Unit/Sub-System

Construction,

Integration & Test,

CM

Translation of

OOA/OOD to an

OOP (C++ or

Java)

Sam Siewert 3

Page 4: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

When Does OOP – Code Construction

Start? HW & SW

Engineering

can be

Concurrent

Test and

Design/Dev

can be

Concurrent

Depends upon

Process Used

Sam Siewert 4

Regre

ssio

n T

esting

Page 5: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

Exploratory Coding

Early Coding Must be Done Carefully, But Can Be Useful

Prototyping – Throw-Away Connotation Sometimes Frowned Upon

Proof-of-Concept – Algorithms or Design Aspects Where Implementation is Expected to Be Large Challenge, Computationally Complex

Operational Specification – Best! Executable Design is the Goal.

CASE (Computer Aided Software Engineering) Tools – MySQL Workbench – Schema Analysis and Design, SQL

Generation

– GUI Builders, E.g. Qt, Java GUI Builders

Sam Siewert 5

Page 6: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

Java Applet - AddressBook

Same Issue with Java Security (allow site)

Sam Siewert 6

Page 7: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

Java Prototyping

If You Like Java and Want to Prototype Designs or build

PoC Apps, Try Dr. Java on Windows or use javac byte-

code compiler on PRClab

E.g. fibonacciSeq.java is a simple Example Class

Sam Siewert 7

Page 9: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

Traditional SA/SD – Useful, But Not OO

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 9

Stores, Flows, Processes, External Entities

http://en.wikipedia.org/wiki/Finite-state_machine

http://en.wikipedia.org/wiki/Data_flow_diagram

http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model

http://en.wikipedia.org/wiki/Flowchart

Page 10: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

Code, Analysis, Design, Test - CMVC Any Non-Binary File (Binary Ok, but Less Useful)

SSH is Best Option with PRClab

See – Lecture-Notes-on-Git-for-CMVC.pdf

Sam Siewert 10

Page 11: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

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 11

Page 12: SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... · –Well Understand Interaction Between Objects Study 4 Key System Types 1. Interactive

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 12