Csc 335_ Software Engineering Assignment_230924
Csc 335_ Software Engineering Assignment_230924
A)
A DETAILED REPORT ON THE MAJOR PHASES OF SOFTWARE
DEVELOPMENT LIFE CYCLE (SDLC)
Source: javatpoint.com
PHASE 1: Requirement Analysis and Planning
Source: geeksforgeeks.org
The project begins with a crucial meeting between the business analyst,
project organizer, and the client. During this meeting, they gather
essential information about the desired product, including its intended
users, core purpose, and overall objectives. Having a deep understanding
of the product is essential before beginning development.
After defining the core functionality, the team evaluates the product's
growth potential and overall feasibility. If any aspects remain unclear, they
flag these items for additional discussion and clarification. [2]
Phase 2: Defining the Requirements
Source: geeksforgeeks.org
Phase 3: Architectural Design
Tools like Figma can also be used this stage to give a prototype of the
intended software before the actual coding starts.
Source: geeksforgeeks.org
Phase 4: Implementation/Product Development
Source: geeksforgeeks.org
Source: geeksforgeeks.org
Phase 6: Deployment and Maintenance
The final stage involves deployment and maintenance. The product is
released in phases, starting with testing in real-world environments to
ensure optimal performance. Based on user feedback, the organization
may release the product as-is or implement improvements. Ongoing
maintenance and supervision ensure the product continues to meet user
needs and perform effectively over time. [7]
Source: geeksforgeeks.org
B)
FOUR POPULAR SOFTWARE MODELS
Source: geeksforgeeks.org
2. THE AGILE MODEL
The Agile Model revolutionized software development by
emphasizing flexibility and rapid adaptation to change. Unlike
Waterfall, Agile breaks development into small, manageable
increments called sprints, typically lasting 2-4 weeks. Each sprint
delivers a working piece of software, allowing for continuous
feedback and adjustment. This model is particularly valuable when
requirements are likely to evolve or when quick delivery is essential.
For instance, a startup developing a mobile app might use Agile to
release basic features quickly and then iterate based on user
feedback. [9]
Source: geeksforgeeks.org
3. THE ITERATIVE MODEL
The Iterative Model takes a different approach by developing
software through repeated cycles (iterations). Each iteration adds
new functionality while maintaining a working version of the
software. Consider building a house room by room, where each room
is fully functional before moving to the next. The first iteration might
deliver core features, the second adds additional capabilities, and
so on until the complete product emerges. This approach allows for
more flexibility than Waterfall while maintaining more structure than
Agile. [10]
Source: geeksforgeeks.org
4. THE SPIRAL MODEL
The Spiral Model is unique in its emphasis on risk management. It
combines elements of both iterative development and systematic
planning. Imagine a spiral where each loop represents a complete
phase of development, with four key activities: planning, risk
analysis, engineering, and evaluation. For example, in developing a
financial system, the first spiral might focus on core banking
functions while assessing security risks, the second spiral might add
investment features while evaluating performance risks, and so on.
This makes it particularly suitable for large, high-risk projects where
careful risk assessment is crucial. [11]
Source: geeksforgeeks.org
C) Detailed analysis using the above (a & b) for an e-commerce application
E-commerce Application Development Plan
Using Agile Methodology
Business Analysis
- Competitor analysis
- Market opportunity assessment
- Risk assessment
- Cost-benefit analysis
- Stakeholder identification and management plan
2. Product Management
- Product catalog management
- Inventory tracking
- Category and subcategory organization
- Product search and filtering
3. Shopping Features
- Shopping cart functionality
- Wishlist management
- Order processing
- Payment integration
4. Admin Features
- Dashboard analytics
- Order management
- Inventory control
- Customer support system
Non-Functional Requirements
- Performance metrics
- Security standards
- Scalability requirements
- Accessibility standards
- Browser compatibility
- Mobile responsiveness
- Technical Architecture
- System components
- Integration points
- APIs and services
- Security architecture
2. Integration Testing
- Component integration
- API testing
- Database integration
3. System Testing
- End-to-end testing
- Performance testing
- Security testing
Quality Assurance
- Code review processes
- Performance optimization
- Security audit
- Compliance checking
- Bug tracking and resolution
Maintenance Plan
1. Regular Maintenance
- Security updates
- Performance monitoring
- Database optimization
- Backup verification
2. Enhancement Management
- Feature updates
- User feedback implementation
- Performance improvements
- Security enhancements
3. Support System
- Technical support
- User support
- Documentation
- Training materials
Long-term Management
- System monitoring
- Performance tracking
- User feedback collection
- Regular security audits
- Continuous improvement process
D) Justification for choosing the model for the above (c) project.
1. Requirement Characteristics
- The e-commerce platform has evolving requirements based on:
- Customer shopping behavior changes
- New payment methods and security standards
- Market competition and trends
- User feedback during development
- Agile's iterative nature allows us to adapt to these changing needs
efficiently
3. Delivery Timeline
- The application requires:
- Quick initial market presence with core features
- Regular feature updates and enhancements
- Rapid response to user feedback
- Continuous security updates
- The two-week sprint structure in our plan supports these rapid delivery
needs
4. Stakeholder Involvement
- Our project needs continuous input from:
- Business owners for feature prioritization
- Users for interface feedback
- Security teams for compliance
- Marketing teams for promotional features
- Agile's regular sprint reviews and demos facilitate this ongoing
collaboration
5. Risk Management
- Critical risks in e-commerce include:
- Payment security
- Data protection
- System performance
- User acceptance
- Agile's frequent testing and iterative development help identify and
address these risks early
6. Maintenance Requirements
- The e-commerce platform needs:
- Regular security updates
- Feature enhancements
- Performance optimization
- Bug fixes
- Agile's continuous improvement approach aligns perfectly with these
ongoing maintenance needs
This justification shows why Agile was the most suitable choice for our
e-commerce project, as it best addresses the key challenges and
requirements while providing the flexibility and structure needed for
successful delivery.
REFERENCES
1 —-https://www.geeksforgeeks.org/software-development-life-cycle-sdlc/
2—-https://www.javatpoint.com/software-engineering-software-developmen
t-life-cycle
3—https://www.geeksforgeeks.org/software-development-life-cycle-sdlc/
4—Ibid
5—Ibid
6—Ibid
7—Ibid
8—Ibid
9—Ibid
10—Ibid
11—Ibid