se310 analysis and design of software...

Post on 02-Oct-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

January 20, 2020 © Sam Siewert

SE310

Analysis and Design of Software

Systems

Lecture 2-2 – Systems Engineering for

OO

Different Versions of Modelio

Standard Image

– Current (check)

– 3.4.1 Community Edition

(2019) (download)

Latest (download)

– 4.0.0 Edition

– Add-on Modules (Store)

SE Workstation 3.7 SD

– 3.7 SD (license required)

– Installed on SE Workstation

– 3.7 Community Edition

(download)

© Sam Siewert 2

Community

SD - Software Dev

Note on Modelio Models (Examples)

Modelio UML models can be downloaded to use a reference or starting point

Note that 3.4.x models are not compatible with 3.7 (bummer - I don’t know why?)

Model export/import uses UML 2.5 language, but does not transfer diagrams!

Just download 3.4 SD models I have created and put in your workspace!

© Sam Siewert 3

Step-1 - Download 3.4 SD models

Step-2 - Unzip where you like!

Step-3 - Switch workspace to point to

3.4-SD directory

I did export from 3.4 to

UML and import into 3.7 for

3.7-SD, but note that

diagrams are missing!

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 is Research,

Analysis and Specification© Sam Siewert 4

SPIRAL in Agile XP – Extreme

In Agile

WATERFALL

feedback

Notes on Research for SystemsSoftware is Often Integrated in Specific Domains (Requires Research)– Energy

– Transportation, Shipping

– Security, Remote Sensing, Defense

– Information Storage and Retrieval, Enterprise Systems

– Decision Support Systems

– Aviation, Aerospace

Research can Start with Simple Google Search or Wikipedia, but should follow pointers to peer-reviewed resources [citations and references]– IEEE Xplore, ACM Digital Library

– Google Scholar, Microsoft Academic Search

– Research Gate [research social network]

– ERAU Library Resources

– Industry Specifications, Journals, Developer Papers, White Papers [IBM, Intel, NVIDIA, Texas Instruments, …]

– Non-profit research institutes and agencies [CERT, SEI, NDIA, FAA, FIPS, CSRC,…]

– Who are you referencing and citing and why?

© Sam Siewert 5

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 6

Recall that Testing starts with SWE Kick-off

SQA is a Concurrent Effort

Cross-Validation During Each Phase

Test Requires Design and Development

Test Execution Starts with Design if Possible,

But with Code Units for sure

www.ndia.org/Divisions/Divisions/SystemsEngineering/Documents

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 7

Regre

ssio

n T

esting

www.ndia.org/Divisions/Divisions/SystemsEngineering/Documents

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 8

Java Applet - AddressBook

Same Issue with Java Security (allow site)

© Sam Siewert 9

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 10

Java DevelopmentDr. Java – for

Windows, Nice

IDE

Udacity Course

on Java -

https://www.udac

ity.com/course/cs

046

Absolute Java

Book

© Sam Siewert 11

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

SE300

State Machines [in Common, but Typically for Each Process in DFD]

Flow-Charts – Detailed Procedural Design [Interaction, Logic]

© Sam Siewert 12

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

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

SSH is Best Option with PRClab

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

© Sam Siewert 13

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 14

Domain Models – Use Case Details

© Sam Siewert 15

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

UML is Universal Modeling Language [OMG, UML.org]

Use to Support Requirements Analysis

Modelio Examples – Hands-on

Start with

Use Case

and/or

Level-0

Class

Diagram

Class

Diagram

(Level-0)

© Sam Siewert 16

Names and Relationships

Generalization (sub-class or type-of)

Composition (Elements of a Class that compose)

Association (Money comes from 1 cash dispenser)

Add Attributes

Leave Methods for Level-1

Use CaseDefines What is “in Scope” – Must be Designed,

Subsystem in System

Interfaces to Users or External Agents

© Sam Siewert 17

Navigation and Types

Indicate Level of Diagram (L0 –

specification only, L1 – spec +

methods, L2 – full detail)

Some CASE Tools support

Leveling, Some Do Not – if not,

use naming convention

Built-in Types

Derived Types (Classes)

© Sam Siewert 18

Refine to Create ModulesGroup Classes into Modules (C++ Files)

© Sam Siewert 19

Generating CodeFor Source Code Management, Verify Modelio C++

Designer or Java Designer Modules

Built-into SD Version (licensed) on SE Workstation

Not Available in Open Source Version

© Sam Siewert 20

Modelio 3.x SD Academic VersionIncludes C++ Designer (C++, C#) for Code Generation

from Models

Includes Java Designer for Code Generation

Forward and Reverse Engineering

Auto-generation of Diagrams from UML XMI (XML

Metadata Interchange)

Can Target Windows, Linux, Unix

Can just use Modelio Community Edition (SD optional)

© Sam Siewert 21

Code Generation from Class Model

Class kind

must be C++

Class (not

UML)

Use Code

Generation

and Code

View Buttons

on C++ Tab

Can

Generate a

Makefile

© Sam Siewert 22

Code is Generated for Export to Target

Makefile (not working), but compile with g++

Can add “int main(void)” and start writing test driver

Bring back to model and “retrieve” updates to

synchronize

© Sam Siewert 23

top related