se310 analysis and design of software...
TRANSCRIPT
January 11, 2018 Sam Siewert
SE310 Analysis and Design of Software
Systems
Lecture 1 - Introduction
Introductions What You Want from Course? When You Plan to Take Capstone? Which is your preferred OOP [C++, Java, Other?] How Do you Design your Software Now?
Other teaching, research and service this Spring – SE310, Analysis and Design of Software – CEC322, Microprocessor Lab – CS332, Organization of Programming Languages – Tau Beta Pi – ERAU Internal Research - ICARUS
Sam Siewert 2
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 3
1984-85
1985-89
1989-92
1992-2012
2012-14
Course Goals and Outline Textbook: Hassan Gomaa, "Software Modeling and Design", Cambridge University Press, 1st Edition, 2011, Book website, Companion Materials, Author Website, ISBN 978-0521764148. … This book covers all you need to know to model and design software applications from use cases to software architectures in UML and shows how to apply the COMET UML-based modeling and design method to real-world problems. The author describes architectural patterns for various architectures, such as broker, discovery, and transaction patterns for service-oriented architectures, and addresses software quality attributes … http://www.modelio.org/ - Design Tool (Demo Right Away) 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 for Proof-of-Concept and Prototype Only
Sam Siewert 4
Amazon Link
Course Learning Objectives OO Analysis, Design, Implementation and Test Research Software System or Application OO Prototype (Proof-of-Concept), V&V
Sam Siewert 5
1. Specification
2. Requirements Analysis
3. Design, Code Re-use
4. Team Design a. Decompose b. Integrate
5. Design and Prototype
6. Design Review(s) R&D = Analysis, More Analysis, Design, Prototype, Repeat
Proposed App and problem solved!
Use Agile Scrum + XP + OOA/OOD
Citations, re-use with credit, release notes
Design teams
CRC, Req’ts, OOA, OOD, UML models, prototypes, & design walk-throughs
Final design inspection
Six 2-Week Scrum Cycles
R&D
R&D
R&D
R&D
R&D
Foreshadow Demos - Modelio 3.7 SD #1 - Modelio Example UML Models (1 to 5)
– CASE Tool? – Code Generation? – Model Check! – Consistency,
Completeness, Conforming to Standard (UML 2.5)
#2 - Interactive ATM Machine Design
– PoC Can Really Assist with Analysis and Early V&V
Observation - You Can Pair this Class with SQA Final Project!
Sam Siewert 6
Domain Models – Use Case Details Complete a Design Provide Code Re-Use Candidates and PoC
Sam Siewert 7
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
Example_1_RAID_Classes Simple Classes and Hierarchy for XOR (RAID5) and Mirror (RAID1)
Sam Siewert 8
Example_2_ATM_UC_and_CRC_Classes
Use case model, classes, and Class diagram
Sam Siewert 9
Example_3_RAID_System_UC_and_CRC_Classes
UC with External Actors, UCs with relationships shown Can break into many UC’s and Hierarchy to Abstract
Sam Siewert 10
Example_3_RAID_System_UC_and_CRC_Classes
Use Class Diagram to Create Object Diagram Use Object Diagram in Interaction Sequence Diagram
Sam Siewert 11
Example_4_Cruise_Control_UC_and_CRC_Classes
Instance:Class Lifelines Showing Message Passing and Execution, with Control Blocks Noted
Sam Siewert 12
Example_4_Cruise_Control_UC_and_CRC_Classes
Classes Grouped into Modules (Cohesion and Coupling)
Sam Siewert 13
Example_5_Fast_Food_Automation Activity Diagram (Concurrency, Flowchart Model)
Sam Siewert 14
Learn by Doing Pick an Application or System with focus on an aspect or Sub-system of your Interest (for R&D and prototyping) Can Model, Emulate or Simulate Hardware Elements Examples – Application Assistant – Calendar/Planner, Fitness Tracker, etc. – Planning Applications (E.g. CoE Personal Flow-chart Generator,
CE, SE) – Game for fun or education – Aspect of small UAS system (drone) – Aspect of Wind / Solar, Fuel-Cell for Off-Grid and Smart-Grid
Alternative Energy Farm – Aspect of Space Systems (E.g. Cube-Sat) for Mapping Mission – Aspect of Self-Driving Car, Intelligent Transportation, Rules
(Emulate Roadway, Use Real Camera) – Mobile Applications (Android or iOS) – e.g. Games and Apps – Whatever Interests You … (I’m Glad to Help)
Sam Siewert 15
Example View of System Interfaces, Processing, Entities (Objects)
Sam Siewert 16
Software End-to-End System
Sam Siewert 17
Software Engineering Characteristics of SWE Life Cycle – 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 18
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 19
You Get out of Education what you Put into it!
Active Participation Policies Scrum Team Formation Scrum Status Walkthroughs Final Inspection Challenge me on Design Sam Siewert 20
Software Design Think-Pair-Share How is Software Engineering Different from Computer Science? Pair Up or Work as a Group and Discuss Present Brief Answer to Class
Sam Siewert 21
PRClab, VB & SWE Worstation - 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/Linux-
Development-Getting-Started.pdf
Modelio on SWE workstation – Once logged on prc-b72-135-se1, via ssh (with X11 forwarding), the following
steps will start Modelio: Change to Modelio directory: cd /home/Modelio3.6 Launch Modelio.sh script: ./modelio.sh Note: do not launch the binary “modelio” (it will not work correctly)
Git client Runs on PRClab – SSH Tunnel to GitHub
Sam Siewert 22
Sam Siewert 23
Administrivia Introductions – Instructor (Office Hours) – Schedule 2017 – Students (Introductions) – Please do Collaborate, but cite well! – Policies - http://mercury.pr.erau.edu/~siewerts/se310/policies/
ERAU Canvas – Assignment Management Tool – 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 & SWE workstation account I highly recommend all 3, but PRClab and SWE workstation are sufficient
Detailed Learning Objectives What to Build? – Specification from Concepts – 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 24
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 25
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 26
UML Class Diagram Much Like ER / EER if you Have Had CS 317 Shows Class Relationships and Hierarchy
Sam Siewert 27
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
UML Interaction Diagrams Behavior – Object Interactions over Time
Sam Siewert 28
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)
Detailed Design Class Public and Private Data Class Operations on Data Constructors and Destructors for Instantiation of Object
Sam Siewert 29
Operations and State – State Charts Operational Input Changes State of Objects [Output] At Any Time, Object is in One Well-known State
Sam Siewert 30
Input / Output On Transitions
Start State
State: Object Instance Needs Specific Data, Waits on Next Input
Termination State: End of Instance
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 31
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 32
Assignment #1 Activities Assignment #1 Discussion – I will Post Every Other Tuesday, We’ll Discuss, Due Following
Week on Friday [10 days to complete each] – Late Assignments – 10% Penalty for 3-day-late Turn-in
[Monday], After that, only with Instructor Permission
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) Sam Siewert 33