README.md

Download
markdown 87 lines 2.6 KB
 1# Software Engineering Examples
 2
 3This directory contains 8 example files demonstrating key software engineering concepts, from requirements specification to CI/CD pipelines. Python examples use only the standard library (no external dependencies).
 4
 5## Files Overview
 6
 7### 1. `04_user_story_template.md` - User Stories and Acceptance Criteria
 8**Concepts:**
 9- User story format: "As a [role], I want [feature], so that [benefit]"
10- Acceptance criteria in Given/When/Then (Gherkin) format
11- INVEST criteria checklist
12- Definition of Done
13
14---
15
16### 2. `05_uml_class_diagram.py` - UML Class Diagram Generator
17**Concepts:**
18- ASCII-based UML class diagram rendering
19- Class attributes and methods with visibility (+/-/#)
20- Relationships: inheritance, composition, aggregation, association, dependency
21- E-commerce domain model example
22
23**Run:** `python 05_uml_class_diagram.py`
24
25---
26
27### 3. `06_estimation_calculator.py` - Software Estimation Calculator
28**Concepts:**
29- COCOMO II basic model (effort, duration, team size)
30- Three-point PERT estimation with confidence intervals
31- Story point velocity projection
32- Function Point Analysis (IFPUG)
33
34**Run:** `python 06_estimation_calculator.py`
35
36---
37
38### 4. `07_code_metrics.py` - Code Quality Metrics
39**Concepts:**
40- Cyclomatic complexity calculation using Python `ast` module
41- Lines of code analysis (total, blank, comment, logical)
42- Halstead metrics (vocabulary, volume, difficulty, effort)
43- Risk rating classification
44
45**Run:** `python 07_code_metrics.py`
46
47---
48
49### 5. `10_gantt_chart.py` - Gantt Chart and Critical Path
50**Concepts:**
51- Critical Path Method (CPM): forward/backward pass
52- Task dependency resolution
53- Slack calculation and critical path identification
54- ASCII Gantt chart rendering
55
56**Run:** `python 10_gantt_chart.py`
57
58---
59
60### 6. `11_tech_debt_tracker.py` - Technical Debt Tracker
61**Concepts:**
62- Technical debt modeling (type, severity, interest rate)
63- ROI-based prioritization for debt payoff
64- Sprint simulation with greedy payoff strategy
65- Debt report generation
66
67**Run:** `python 11_tech_debt_tracker.py`
68
69---
70
71### 7. `13_ci_cd_pipeline.yml` - GitHub Actions CI/CD Pipeline
72**Concepts:**
73- Multi-stage pipeline: lint, test, build, deploy
74- Matrix strategy for multiple Python versions
75- Dependency caching and artifact upload
76- Environment protection rules for production
77- Rolling deployment strategy
78
79---
80
81### 8. `14_adr_template.md` - Architecture Decision Records
82**Concepts:**
83- ADR template (Nygard format)
84- Status, Context, Decision, Consequences structure
85- Two complete example ADRs (database selection, microservices extraction)
86- Guidelines for writing effective ADRs