SE300 Software Engineering Practices

Size: px
Start display at page:

Download "SE300 Software Engineering Practices"

Transcription

1 SE300 Software Engineering Practices Lecture 14 REVIEW April 14, 2015 Sam Siewert

2 Domain Models Use Case Details Complete a Design Provide Code Re-Use Candidates and PoC Start Here! USE Modelio as your DESIGN TOOL Helpful Validation and Verification Features for Design Integrated Models Checklists Completeness CPP and Java Code Generation Key Value of Each Model Proper Use Notation, Phase Consistency, Completeness Correctness Sam Siewert 2

3 Traditional SA/SD Useful Addition to OO Data Flow Diagrams Data [Messages] Between Processes and is Transformed Entity Relationship Diagrams Lacks Operations, but Defines Entities [Objects] and Relationships Stores, Flows, Processes, External Entities State Machines [in Common, but Typically for Each Process in DFD or Transformation Occurs as a Side Effect of State Transition] Flow-Charts Detailed Procedural Design [Interaction, Logic] Sam Siewert 3

4 Clarifications on State Machines Object State Modeling Event-Driven Collecting and Classifying State Behavior Extensions to Domain Models [Class Diagram and OIM] to add Domain State Machine Model For Event-Driven Architectures or Architectures with Event- Driven Aspects and Subsystems, EFSMs are High-Level (Domain) SDL FYI Not on Exam(s) State Transition Tables UML Notation event[guard] / act1; act2 Cruise Control Sam Siewert 4

5 Clarifications on Activity Diagrams Activity Models Concurrency, Fork, Join for Tasks Task Could Be Implemented as Linux Process, POSIX Thread, VxWorks Task, Unix/Windows Service, etc. Petri-Net Formalism, Can Be Simulated and Used for Cleanroom CFD/DFD UML Activity Diagram Notation Activity Table - Analysis Sam Siewert 5

6 Testing Strategies Considerations for Software Test and Evaluation NDIA Software Test Summit Dr. Ernest Seglie, Science Advisor to the Director, Operational Test and Evaluation Software Engineering: A Practitioner s Approach, 8/e (McGraw- Hill, 2014) copyright 2014 by Roger Pressman Process phase descriptions can vary. However, the concepts and theory are generally the same for a given model. Sam Siewert 6

7 SE Practitioner s Approach Chapter 16 Pattern-based Design Lower Level than Process or Architecture Patterns Understand Concepts of Design Creational, Structural and Behavior Patterns E.g. Proxy, Pipes & Filters, Iterator, Mediator UI, WebApp, MobileApp Design Patterns Key Differences with Major 4 Architecture Patterns Transformational, Event-Driven, Interactive, Transaction Sam Siewert 7

8 SE Practitioner s Approach Chapter 19 & 20 Quality Assurance Fundamentals Garvin s Quality Dimensions McCall s Quality Factors ilities Good-Enough SWE and Cost of Quality Principles Review Techniques Walk-throughs and Inspections Planning a Review Formal and Informal Scrum and Walk-throughs, Status and Backlog Formal Review IBM Fagan Inspection Sam Siewert 8

9 SE Practitioner s Approach Chapter 21 & 22 SQA What is it? Validation, Verification, Standards V-model (revisited) Internal vs. External V&V Reliability and Availability (P. 460) SQA Plans, Strategy, During Each Phase of Analysis and Design Software Testing Verification vs. Validation Unit Testing, P. 473 Boundary, Stubs Integration Testing Regression, Smoke P System Testing P Debugging vs. Testing P. 488, Common Pitfalls (e.g. Linux) Sam Siewert 9

10 SE Practitioner s Approach Chapter 23 & 24 Conventional Testing Strategies Internal Test Driven Design External SQA, Acceptance Testing Negative and Positive [Destructive, Constructive] White-Box [P. 500] Path Coverage Knowledge of Code and Logical Constructs Black-Box [P. 509] Input to Output, Pre-condition, Post-condition Partitioning Inputs Test Case Strategy EXIT Criteria OO Testing Strategies P. 523 Sam Siewert 10

11 SE Practitioner s Approach Chapter 28 Formal Verification Methods to Verify a Design [Not Just Code!] SWE Cleanroom P. 602 Black-box P. 606 State-box P. 606 Clear-box P. 607 Formal vs. Conventional Testing Methods (Advantages, Disadvantages) Sam Siewert 11

12 SE Practitioner s Approach Chapter 29 CMVC Configuration Management and Version Control Git Fundamentals Clone Commit Push Pull Code Base, Sandbox Layers of SCM Process P. 633 Configuration Files and Directories, Build Version Control Differences Between Files for Revision Sam Siewert 12

13 SE Practitioner s Approach Chapter 33 Estimation for Software Projects SLOC Why it s Bad Estimator? Process Based Tasks, Resources, Time to Complete Function / Feature Point Complexity and Time Build vs. Buy Cost Estimation Methods P. 744, Software Equation Scrum Backlog, Assignments, Roles, Tasks and Resources Sam Siewert 13

14 SE Practitioner s Approach Chapter 34 Basic Concepts Challenges and Incremental Scheduling Dependency [Finish Required for Start Serial] Work Units [Work Weeks] Effort [Engineers and Engineering Hours/Weeks] Roles and Responsibilities Outcomes and Milestones Gantt Chart P. 766, Figure 34.3 Refinement Updating Schedules and Resources/Roles Agile Assumes Updates after Scrum Sprints Tracking, Deferred Requirements and Backlog Sam Siewert 14

15 Take Away Value of integrated SA/SD with OOA/OOD Compared to or in Addition to other Formalisms (SDL, Petri-Nets, Box Notation) Introduction and Practice with UML and SA/SD Addition of Block Diagrams and SA/SD to Complete Specifications Concurrent Test of Requirements, Analysis, Design, Prototypes/PoC and Constructed Modules Deployment, Maintenance, Refactoring Sam Siewert 15