January 15, 2015 Sam Siewert
SE310
Analysis and Design of Software
Systems
Lecture 2-2 – Systems Engineering for
OO
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
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
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
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
Java Applet - AddressBook
Same Issue with Java Security (allow site)
Sam Siewert 6
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
Java Development Dr. Java – for
Windows, Nice
IDE
Udacity Course
on Java -
https://www.udac
ity.com/course/cs
046
Absolute Java
Book
Sam Siewert 8
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
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
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
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