EXPERIMENT – 1
Analysis and Identification of Suitable Software Process Models
A Software Process Model defines the systematic approach used for software development. It specifies the order of activities such as requirement analysis, design, coding, testing, deployment, and maintenance.
Selecting an appropriate process model is crucial because it directly affects:
- Project cost
- Development time
- Software quality
- Customer satisfaction
The choice of a process model depends on requirement stability, project size, risk level, customer involvement, and time constraints.
Types of Software Process Models
1 Waterfall Model
A linear and sequential model where each phase must be completed before moving to the next phase.
Characteristics: It is a linear and sequential model where phases are completed one after another. Requirements must be well-understood, predictable, and fixed, making it difficult, costly, and time consuming to accommodate changes. Testing strictly occurs after the development phase is complete.
When to use: Best for small to medium-sized projects with clear, fixed requirements and a strict deadline.
Suitable projects: Embedded systems, safety-critical systems, and simple web applications.
Advantages
- Simple and easy to understand
- Well-defined documentation
Disadvantages
- No flexibility for requirement changes
- Testing occurs late
Suitable For
- Small projects with stable requirements
2 V-Model
An extension of the Waterfall model where testing is planned parallel to development.
Characteristics: Similar to the Waterfall model, it is linear, sequential, and relies on predictable, well defined requirements. However, verification and validation occur alongside each corresponding phase, even though actual testing still happens after development.
When to use: Best for small to medium-sized projects with fixed deadlines and clear requirements.
Suitable projects: Embedded systems, safety-critical systems, and simple web applications.
Advantages
- Early defect detection
- Structured testing
Disadvantages
- Rigid and inflexible
- Changes are costly
3 Incremental Model
The system is developed in multiple increments, each delivering a functional module.
Characteristics: Software is developed in increments using an iterative approach. Requirements are prioritized, and developing in increments reduces the risk of project failure while making maintenance easier.
When to use: Best for large, complex projects that require incremental delivery and have evolving requirements.
Suitable projects: Enterprise software systems, complex web applications, and systems involving multiple stakeholders.
Advantages
- Early delivery of working software
- Easier debugging
Disadvantages
- Integration complexity
- Requires careful planning
4 Spiral Model
A risk-driven model combining iterative development with systematic risk analysis.
Characteristics: An iterative and incremental model that is heavily risk-driven. Risk analysis is performed during each iteration, and continuous user involvement helps reduce the risk of failure.
When to use: Ideal for high-risk projects, complex requirements, and situations where rigorous risk analysis is mandatory.
Suitable projects: Safety-critical systems, highly secure systems, complex systems, and R&D projects.
Advantages
- Effective risk management
- Flexible
Disadvantages
- High cost
- Complex management
5 Agile Model
An iterative and incremental model focusing on customer collaboration and adaptability.
Characteristics: An iterative and incremental methodology where software is developed in iterations heavily reliant on constant user feedback and involvement. Requirements are prioritized per iteration, greatly reducing project risk.
When to use: Ideal for projects with high uncertainty, changing requirements, and a strong need for user feedback.
Suitable projects: Complex systems, systems with high user interaction, and R&D projects
Advantages
- Handles changing requirements effectively
- Faster delivery
- Continuous feedback
Disadvantages
- Less documentation
- Requires experienced team
- Student and faculty login
- Subject-wise attendance
- Attendance reports
- Location-based attendance
- Future integration of face recognition
|
Parameter |
Observation |
|
Requirement
Stability |
Not
stable |
|
Project
Size |
Medium |
|
Risk
Level |
Medium |
|
Customer
Involvement |
High |
|
Future
Enhancements |
Required |
- Requirements are expected to change
- Continuous interaction with faculty and admin is required
- Features can be delivered incrementally
- Future enhancements can be easily integrated
Work Breakdown Structure (Process-Based, Product-Based, Geographic-Based and Role-Based) and Software Estimation
A Work Breakdown Structure is a project management tool utilized to break down complex projects into smaller, more manageable tasks. It is considered a productivity technique that makes work more approachable and integrates scope, cost, and schedule baselines to align project plans. By definition, it is a "deliverable-oriented hierarchical decomposition of the work to be executed by the project team".
Characteristics of WBS:
Deliverable-oriented: Focuses primarily on project outcomes or deliverables.
Hierarchical: Tasks are organized in a tree-like structure, breaking down higher-level tasks into smaller, detailed sub-tasks.
Decomposition: The act of breaking down complex tasks into more manageable pieces.
Benefits of WBS:
- Improved project planning: Helps identify every task necessary to successfully complete the project.
- Enhanced team communication: Establishes a common understanding of the scope and tasks involved.
- Better risk management: Aids in identifying potential risks and developing strategies to mitigate them.
- Increased productivity: Allows team members to concentrate on specific deliverables and tasks.
- Project planning
- Scheduling
- Cost estimation
- Resource allocation
- Requirement Analysis
- System Design
- Coding
- Testing
- Deployment
- Maintenance
- Level 1: Project Management
- 1.1 Project Initiation, 1.2 Project Planning, 1.3 Project Monitoring and Control, 1.4 Project Closure
- Level 2: Requirements Gathering
- 2.1 Elicitation (Identify stakeholders, conduct interviews, document requirements)
- 2.2 Requirements Analysis (Define functional/non-functional requirements, prioritize)
- Level 3: Design
- 3.1 User Interface (UI) Design (Create wireframes, prototypes, conduct usability testing)
- 3.2 Technical Design (Define system architecture, data models, technical specs)
- Level 4: Implementation
- 4.1 Front-end Development (Implement UI components, event handling, client-side validation)
- 4.2 Back-end Development (Implement server-side logic, data storage/retrieval, authentication/authorization)
- 4.3 Text Editor Features (Implement font styling, copy/cut/paste, paragraph alignment)
- Level 5: Testing and Deployment
- 5.1 Unit Testing (Write and execute unit tests)
- 5.2 Integration Testing (Write and execute integration tests)
- 5.3 Deployment (Plan and execute deployment)
- Level 6: Maintenance and Support
- 6.1 Bug Fixing (Identify, prioritize, and fix bugs)
- 6.2 Feature Updates (Gather requirements and implement new features)
- Login Module
- Attendance Module
- Report Module
- Admin Module
- Level 1: Text Editor Software
- 1.1 User Interface (UI),
- 1.2 Text Editing Features,
- 1.3 Text Formatting Features,
- 1.4 Copy/Cut/Paste Features,
- 1.5 Paragraph Alignment Features,
- 1.6 Data Storage and Retrieval,
- 1.7 Authentication and Authorization
- Level 2: User Interface (UI)
- 2.1 Login/Registration Page,
- 2.2 Text Editor Page
- Level 3: Text Editing Features
- 3.1 Text Input and Editing,
- 3.2 Text Selection and Navigation
- Level 4: Text Formatting Features
- 4.1 Font Formatting (Color, size, style),
- 4.2 Paragraph Formatting (Alignment, indentation)
- Level 5: Copy/Cut/Paste Features
- 5.1 Copy Feature,
- 5.2 Cut Feature,
- 5.3 Paste Feature
- Level 6: Data Storage and Retrieval
- 6.1 Data Storage (Store text in database),
- 6.2 Data Retrieval
- Level 7: Authentication and Authorization
- 7.1 User Authentication,
- 7.2 User Authorization
Tasks are organized around the physical locations or regions where project work occurs, which is highly useful for multi-site projects. The example focuses on deploying the software to different regions with localized data centers
- UI development – Bangalore
- Backend development – Bhubaneswar
- Testing – Hyderabad
- Project Manager
- System Analyst
- Developer
- Tester
- Database Administrator
- Level 1: Project Team (Project Manager, Software Developers, QA Testers, Technical Writers, Designers, DevOps Engineers)
- Level 2: Project Manager
- 2.1 Project Planning,
- 2.2 Project Monitoring and Control
- Level 3: Software Developers
- 3.1 Front-end Development,
- 3.2 Back-end Development
- Level 4: Quality Assurance (QA) Testers
- 4.1 Test Planning,
- 4.2 Test Execution
- Level 5: Technical Writers
- 5.1 User Documentation,
- 5.2 Technical Documentation
- Level 6: Designers
- 6.1 User Interface (UI) Design,
- 6.2 Visual Design
- Level 7: DevOps Engineers
- 7.1 Infrastructure Setup,
- 7.2 Deployment
- External Inputs
- External Outputs
- External Inquiries
- Internal Logical Files
- External Interface Files
- System Design
- Module Development
- Testing
- Deployment
- Maintenance
- User Authentication Module
- Attendance Management Module
- Report Generation Module
- Admin Management Module
- Frontend Development – Location A
- Backend Development – Location B
- Testing & QA – Location C
- Project Planning – Project Manager
- Requirement Analysis – System Analyst
- Coding – Developers
- Testing – Test Engineers
EXPERIMENT – 3
- Student_ID (Primary Key)
- Name
- Roll_Number
- Department
- Faculty_ID (Primary Key)
- Name
- Department
- Subject_ID (Primary Key)
- Subject_Name
- Semester
- Credits
- Attendance_ID (Primary Key)
- Date
- Status
- Student_ID (Foreign Key)
- Subject_ID (Foreign Key)
|
Entity 1 |
Relationship |
Entity 2 |
Cardinality |
|
Student |
Enrolls |
Subject |
M:N |
|
Faculty |
Teaches |
Subject |
1:M |
|
Student |
Has |
Attendance |
1:M |
|
Subject |
Has |
Attendance |
1:M |
- Student entity is connected to Subject through an Enrolls relationship
- Faculty teaches one or more subjects
- Attendance entity maintains daily attendance records
- Primary and foreign keys ensure data integrity
- Study the system requirements
- Identify all entities
- Assign attributes to each entity
- Identify relationships and cardinality
- Draw the ER Diagram
EXPERIMENT – 4
Requirement Modeling using Context Diagram and Data Flow Diagram (DFD)
1. Aim
- Process – Transformation of data
- Data Flow – Movement of data
- Data Store – Storage of data
- External Entity – Source or destination of data
- Student
- Faculty
- Admin
- Online Attendance Management System
- Login details
- Attendance data
- Reports
- User Authentication
- Attendance Management
- Report Generation
- Student Database
- Attendance Database
- Student
- Faculty
- Admin
- Validates login credentials
- Stores user details
- Records daily attendance
- Updates attendance database
- Generates subject-wise and student-wise reports
- Identify system boundaries
- Identify external entities
- Draw Context Diagram
- Decompose system into Level-0 DFD
- Further decompose processes into Level-1 DFD
Input
System requirements of Online Attendance Management System.
Output
Context Diagram, Level-0 DFD, and Level-1 DFD representing functional requirements.
Result
Thus, Context Diagram and Data Flow Diagrams were successfully designed to represent the functional requirements of the system.
EXPERIMENT – 5
Requirement Modeling using State Transition Diagram (Behavioral Modeling)
A State Transition Diagram (STD) is a behavioral modeling tool used to represent:
- Different states of a system
- Events that trigger transitions
- Actions performed during transitions
A system changes its state when an event occurs. The diagram helps in understanding how the system behaves over time.
Components of State Transition Diagram
- State – A condition in which the system exists at a particular time
- Event – An occurrence that causes state change
- Transition – Movement from one state to another
- Initial State – Starting state
- Final State – Ending state
Case Study
System Name: Online Student Attendance Management System
Identification of States
For the Attendance System, the following states are identified:
- Initial State
- Login State
- Authenticated State
- Attendance Marking State
- Report Viewing State
- Logout State
|
Current State |
Event |
Next State |
|
Initial |
Enter
Credentials |
Login
State |
|
Login State |
Valid
Credentials |
Authenticated
State |
|
Login State |
Invalid
Credentials |
Login
State |
|
Authenticated State |
Select
Attendance |
Attendance
Marking State |
|
Authenticated State |
View
Report |
Report
Viewing State |
|
Attendance Marking State |
Submit |
Authenticated
State |
|
Report Viewing State |
Back |
Authenticated
State |
|
Authenticated State |
Logout |
Logout
State |
State Transition Diagram helps in modeling system behavior clearly and ensures proper handling of events and state changes in software systems.
EXPERIMENT – 6
Object-Oriented Design – Use Case Diagram and Class Diagram
Theory
Object-Oriented Design (OOD) is a methodology that organizes software design around objects and classes rather than functions.
Unified Modeling Language (UML) is used to represent object-oriented systems.
Two important UML diagrams used in requirement modeling are:
- Use Case Diagram – Represents system functionality from user’s perspective
- Class Diagram – Represents static structure of the system
Part A: Use Case Diagram
Use Case Diagram
A Use Case Diagram represents:
- Actors (users interacting with system)
- Use cases (functionalities provided by system)
- Relationships between actors and use cases
Case Study
System Name: Online Student Attendance Management System
Identification of Actors
- Student
- Faculty
- Admin
Identification of Use Cases
- Login
- Mark Attendance
- View Attendance
- Generate Report
- Manage Users
- Logout
|
Actor |
Use Cases |
|
Student |
Login,
View Attendance, Logout |
|
Faculty |
Login,
Mark Attendance, Generate Report, Logout |
|
Admin |
Login,
Manage Users, Generate Report, Logout |
Part B: Class Diagram
Class Diagram
A Class Diagram represents:
- Classes
- Attributes
- Methods
- Relationships between classes
It describes the static structure of the system.
Identification of Classes
1. Student
Attributes:
- studentID
- name
- department
Methods:
- login()
- viewAttendance()
2. Faculty
Attributes:
- facultyID
- name
Methods:
- login()
- markAttendance()
- generateReport()
3. Subject
Attributes:
- subjectID
- subjectName
- semester
Methods:
- assignFaculty()
4. Attendance
Attributes:
- attendanceID
- date
- status
Methods:
- updateAttendance()
Relationships Between Classes
- Student → Attendance (One-to-Many)
- Faculty → Subject (One-to-Many)
- Subject → Attendance (One-to-Many)
Comments
Post a Comment