SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... ·...
Transcript of SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/... ·...
![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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/7.jpg)
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 8: 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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/8.jpg)
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
![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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022071211/602398ae32233e1c471638e0/html5/thumbnails/12.jpg)
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