se310 analysis and design of software...
TRANSCRIPT
January 13, 2016 Sam Siewert
SE310Analysis and Design of Software
Systems
Lecture 1 - Introduction
IntroductionsWhat You Want from Course?When You Plan to Take Capstone?Which is your preferred OOP [C++, Java, Other?]
What I’m Doing this Spring– SE310, Analysis and Design of Software– SE451, Software Team Project II (Capstone – Arctic Power)– CS332, Organization of Programming Languages– Collaboration on Curie/Quark Image Proc & DSP – Intel
Chandler, IoT Group– ERAU Internal Research (Smart Camera Power Efficiency –
SPIE, ICARUS)– SpaceX Hyperloop Team Advisor– ADAC – Arctic Domain Awareness Center, DHS, U. Alaska
Sam Siewert 2
Dr. Sam SiewertUC 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
Sam Siewert 4
Relevant BackgroundResearch – Instruments, CV/MV
Arctic Center of Excellence– DHS, U. of Alaska– Smart-Cameras– No-Battery Arctic Power
Computer and Machine Vision, Sensors1. Real-time Adaptive Color Transformation2. UAV/UAS Digital Video Encode/Decode Performance3. Collaboration on Curie/Quark Image Proc & DSP – Intel Chandler, IoT
Group4. ERAU Internal Research (Smart Camera Power Efficiency – SPIE,
ICARUS)5. SpaceX Hyperloop Team Advisor (Instrumentation)6. ADAC – Arctic Domain Awareness Center, DHS, U. Alaska
Intel Embedded Research and Education Program(s)1. Robotics with Computer Vision Navigation2. Real-Time Digital Media – GPU, Multi-Core and FPGA Acceleration Studies3. Hybrid Reconfigurable Computing for Computer and Machine Vision
Course Goals and OutlineSoftware Engineering: A Practitioner’s Approach, Eighth Edition, Roger Pressman, Bruce Maxim
… a step-by-step methodology that integrates modeling and design, UML, patterns, test-driven development, quality assurance, configuration management, and agile principles throughout the life cycle. The overall approach is casual and easy to follow, with many practical examples that show the theory at work. The author uses his experiences as well as real-world stories to help the reader understand software design principles, patterns, and other software engineering concepts.
http://www.modelio.org/ - Design Tool
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 5
Course Learning ObjectivesOO Methods of Analysis, Design, Implementation and TestResearch a System and an Application for itOO Prototype (Proof-of-Concept) for it
Sam Siewert 6
1. Specification
2. Requirements Analysis
3. Design, Code Re-use
4. Team Designa. Decomposeb. Integrate
5. Design and Prototype
6. Design Review, Demo
Learn by DoingPick a System of your Interest (to Research and Prototype)Can Model, Emulate or Simulate Hardware ElementsExamples (Must Research System / Requirements)– Thorium Molten Salt Reactor for Alternative Energy Factory– Wind / Solar, Fuel-Cell for Off-Grid and Smart-Grid Alternative
Energy Farm– Space Systems (E.g. Cube-Sat) for Mapping Mission– Pure Applications (E.g. CoE Personal Flow-chart Generator, CE,
SE)– Self-Driving Car, Intelligent Transportation, Rules (Emulate
Roadway, Use Real Camera)– Mobile Applications (Android or iOS)– Fully Automated (Self-Running) Fast Food Restaurant– What Interests You … (I’m Glad to Help)
Sam Siewert 7
Example View of SystemInterfaces, Processing, Entities (Objects)
Sam Siewert 8
Software End-to-End System
Sam Siewert 9
Software EngineeringCharacteristics of SWE Life Cycle (Fig. 1.5 in Book)– 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 10
Learning StrategyActive + TraditionalInductive + 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 11
Why Active Learning?Sleep Less, Think More in Class, Learn More Overall
SWE is an Active, Social, Team Endeavor –Industry and Research Skill Sharpening
Studies Show Active Learning is Better [See me for Research]
Appeals to Wide Variety of Learning Styles– Perception – Intuitive or Sensing
[Concepts or Observations]– Input - Visual or Verbal
[Pictures or Words]– Processing - Active or Reflective
[Doing or Pondering]– Understanding - Sequential or Global
[Trees or Forest]
Inquiry Learning - True to Lifelong Learning
Sam Siewert 12
Think-Pair-ShareHow is Software Engineering Different from Computer Science?
Pair Up or Work as a Group of 3 and Discuss
Present Brief Answer to Class
Sam Siewert 13
PRClab - LinuxOption #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/Lin
ux-Development-Getting-Started.pdf
Modelio on PRClab -Git client Runs on PRClab – SSH Tunnel to GitHub
Sam Siewert 14
Sam Siewert 15
AdministriviaIntroductions– Instructor (Office Hours) – Schedule 2016– 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
I highly recommend both if possible, but PRClab is sufficient
Detailed Learning ObjectivesWhat 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 16
Minute Paper #1Does 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 17
UML – Use CasesClass Structure (Data and Operations on that Data)Use Cases and Corresponding Interaction Diagrams– Actors in Use Case– Behavior Shown by Interaction Diagrams
Sam Siewert 18
UML Class DiagramMuch Like ER / EER if you Have Had CS 317Shows Class Relationships and Hierarchy
Sam Siewert 19
Transaction Abstract ClassDefines Specific (Refined)Transaction Types
One ATM Instance SupportsMany Transactions (Abstract)
One ATM Instance SupportsMany Sessions Over Time[Each Requires Card Read]
Arrows – Dashed Uses/Dependenciesand Solid Relationships withCardinality
UML Interaction DiagramsBehavior – Object Interactions over Time
Sam Siewert 20
Dashed Lines:Messages
Solid Lines:Operations thatStart ExecutionSequences
Wide Vertical Lines:Active ProcessStarted by OperationWith Messaging
X:End of Interaction(E.g. Specific Session)
Detailed DesignClass Public and Private DataClass Operations on DataConstructors and Destructors for Instantiation of Object
Sam Siewert 21
Operations and State – State ChartsOperational Input Changes State of Objects [Output]At Any Time, Object is in One Well-known State
Sam Siewert 22
Input / OutputOn Transitions
Start State
State:Object InstanceNeeds Specific Data,Waits on Next Input
Termination State:End of Instance
Traditional SA/SDData 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 23
Architecture and Design PatternsOO 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 Types1. Interactive – E.g. GUI, CLI2. Event Driven – E.g. Anit-lock Breaking System Software3. Transformational – E.g. Image Processing, Encode/Decode
[MPEG Digital Video, RAID]4. Transaction Oriented – E.g. DBMS
Sam Siewert 24
Assignment #1 ActivitiesAssignment #1 Discussion– I will Post Every Other Thursday, We’ll Discuss, Due Following
Week on Sunday– Late Assignments – 10% Penalty for 3-day-late Turn-in, 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 25