Exam 1 review CS 360 Lecture 20
System Architecture System Models Subsystems/Components Packages Nodes Replaceable Classes Packages Nodes Component Diagrams Deployment Diagrams Architectural Styles
Security issues in software engineering Software development security issues Security threat models Security Architecture Designing with security in mind Security components and techniques Programming secure software Most dangerous errors
Legacy Systems Software component reuse Designing software systems for change Modular/replaceable components Designing software systems for reuse Legacy code Generating requirements, documentation, models, etc. Modifying Testing Dependencies
Software System Performance 1 When and how performance matters in computer systems High performance computing HPC vs HTC Performance challenges for software systems Bottlenecks Timescales of components Utilization of different components Predicting system performance Simulations Direct measurement Fixing poor performance Software performance requirements documentation
Software System Performance 2 Analyzing system performance Performance engineering motivation Performance metrics Performance engineering documentation Requirements Functional specifications Design specifications
Usability and user interface 1 Importance and development of user interfaces Mock up, wire frames, focus groups Usability requirements Accessibility Equipment Mental models Interface functionality UI design GUI Command line Help systems
Usability and user interface 2 Four computing eras HCI architectures Unimodal Multimodal Usability goals Usability design Users with disabilities Elderly users children
Software Reliability Reliability terminology Failure, fault, error, fault avoidance/detection/tolerance Software vs. hardware reliability Software reliability modeling Software reliability metrics
Software testing 1 Testing strategies Levels of testing General characteristics Verification and validation Levels of testing Unit testing Interface, data structurers, boundaries, basis paths, error handling Integration testing Non-incremental, incremental Validation testing Based on requirements System testing Regression testing Smoke testing Error discovery and handling debugging
Software testing 2 Static verification testing Program inspections Data, control, I/O, interface, storage, exceptions Dynamic verification testing Interface Parameters, shared memory, message passing protocols Unit testing: Basis paths Flow graphs, cyclomatic complexity, basis set, test cases Integration testing Performance/stress testing Acceptance testing
Acceptance testing Acceptance Criteria Acceptance Testing Approach Iterative/Incremental/Sequential Acceptance Test Reports/Documentation Delivery of Software
Exam 1 Exam: five questions, one to omit, graded out of four. Each question equally weighted (25% each) Detailed answers must be legible (marked incorrect if I can’t read your answer) Answer quality/detail will determine your score for each question Possible multiple section questions; a, b, c, .. One hour to complete the exam in class (11:30am – 12:30pm, 1:50pm – 2:50pm) Content on exam 0: Lecture 8 – 18: Chapters 6, 8, 9, 11, 13 Supplemental Reading: Computer Security in the Real World through Seven Principles of Software Testing Suggested Reading: Your group’s project documentation