Software Engineering notes UNIT VI
1. Comprehensive Examples using Available Software Platforms / CASE Tools
What are CASE Tools?
CASE stands for Computer-Aided Software Engineering.
These tools help automate different stages of software development like:
-
Planning
-
Analysis
-
Design
-
Coding
-
Testing
-
Maintenance
They increase productivity, maintain consistency, and reduce manual effort.
type | Purpose | Example Tools |
---|---|---|
Upper CASE | Support early SDLC phases (planning, design) | StarUML, Lucidchart, IBM Rational Rose |
Lower CASE | Support later SDLC phases (coding, testing, maintenance) | Visual Studio, JUnit, Selenium |
Integrated CASE (I-CASE) | Cover full SDLC cycle | Enterprise Architect, Visual Paradigm |
Example : Using Visual Studio for Development
-
Full-featured IDE supporting multiple languages (C#, Python, etc.).
-
Integrated debugging, code suggestions, testing support.
-
Used in real-world enterprise software development.
2. Configuration Management in Software Engineering
What is Configuration Management?
Software Configuration Management (SCM) is the process of systematically handling changes in software so that integrity and traceability are maintained throughout the software lifecycle.
In simple words, SCM ensures that:
-
The right version of the software is delivered.
-
Every change is tracked and documented.
-
Developers don’t overwrite each other’s work.
-
Code is always stable and secure.
Key Activities in Configuration Management:
1. Version Control
-
Maintains different versions of software code.
-
Tracks who made what changes and when.
-
Allows rollbacks to previous versions if a problem occurs.
Tool Example: Git, SVN
2. Change Management
-
Process of handling requests for changes (bugs, features, improvements).
-
Each change is reviewed, approved, tested, and then implemented.
Tool Example: Jira, Trello
3. Build Management
-
Ensures that the software can be compiled and built reliably from source code.
-
Automates building processes.
Tool Example: Maven, Gradle
4. Release Management
-
Prepares software for deployment to end users.
-
Packages the software with proper versioning and release notes.
Tool Example: Jenkins (CI/CD), GitHub Actions
5. Configuration Identification
-
Defining which components (code, docs, libraries) are part of which version.
Benifits | Explanation |
---|---|
Stability | Keeps system working correctly after changes |
Collaboration | Multiple developers can work without conflict |
Traceability | Who changed what and why |
Risk Reduction | Easily revert faulty changes |
Real-Life Analogy:
Think of SCM like managing a Google Doc with tracked changes — you know who did what, when, and you can restore earlier versions any time!
Tools | Example |
---|---|
Version Control | Git, GitHub, Bitbucket |
Issue Tracking | Jira, Redmine, Bugzilla |
Build Automation | Jenkins, Maven, Gradle |
CI/CD Pipelines | GitLab CI, Azure DevOps, CircleCI |