GROUP SELF-LEARNING EXERCISE 1
Subject: Software Project Management
Group’s name: VKU.KS.05
Student’s full name:
1. Đinh Việt Phương
2. Võ Thị Mỹ Duyên
3. Lê Văn Hai
4. Lê Văn Hạnh
Problems:
1. Based on the definition and characteristics of a project in general (Refer to the file
Lecture 01. Projects and Stackholders.pdf), please answer the following questions:
1.1 What is a software project?
1.2 What are the characteristics of a software project (with specific examples)?
2. What are the required deliverables after completing each activity in the software
development process (Refer to the file Lecture 02. Software Development
Activities.pdf)? Give specific examples.
3. Based on Exercise 1, what do you think are the main factors that will influence the
choice of project to undertake? Why?
Your solution:
1.
1.1. What is a software project?
A software project is a temporary endeavor undertaken to create a unique product,
service, or result.
1.2. Characteristics of a software project
Temporary
● The project has a defined beginning (project initiation) and end (website launch).
● It ends either when the website is successfully launched or if it’s decided the
project goals cannot or will not be met.
Unique Products, Service, or Result
● Unique Product: A travel website tailored to the client’s requirements, such as
custom trip recommendations, ticket and hotel bookings, and itinerary planning.
● Service: A platform enabling users to search and book travel options conveniently.
● Result: Documentation and insights on market needs, user preferences, and
system design.
Quantifiable Product
● A fully functional travel booking platform with specific deliverables, such as:
○ Search feature for tourist, hotels, and tickets.
○ Integration with payment gateways.
○ User-friendly interface for browsing and booking travel packages.
Capability to Perform a Service
● The website enables the business to offer travel booking services online,
supporting core business functions like payment processing and customer
interaction.
Result
● Knowledge gathered during the project is documented in technical manuals, user
guides, and design presentations to ensure smooth handover to the maintenance
team.
Progressive elaboration
Development by steps and in increments (necessary to keep a project under scope)
➢ Definition: The project evolves in steps and increments.
➢ Example:
The website is developed iteratively:
● Step 1: Initial requirements analysis and wireframe design.
● Step 2: Backend and frontend development.
● Step 3: Testing and feedback incorporation.
● Step 4: Deployment and final user acceptance testing.
Resource constrained
➢ Definition: The project operates within defined limits on time, budget, or
workforce.
➢ Example:
To a $100,000 budget, a team of 6 developers, and a deadline of 8 months.
2. What are the required deliverables after completing each activity in the software
development process (Refer to the file Lecture 02. Software Development
Activities.pdf)? Give specific examples.
● Requirements and User Experience Design, the required deliverables:
○ a text document: Text documents describing system functions and
properties.
■ example: A requirements specification document for an online travel
booking website describing features like "Users can search for
products by name, category, or price range."
○ a list of user stories: "As a [user], I want to [do this], because [reason]."
■ example: A diagram showing interactions such as a "Customer
adding products to a cart" and "Admin managing inventory."
○ a set of diagrams (e.g., use case diagrams) and corresponding textual
descriptions
■ example: "As a customer, I want to receive an order confirmation
email after purchase so I know my transaction is complete."
● System Design, the required deliverables:
○ components which constitute the system
■ example: travel booking website: Components like "Authentication
Service," "Transaction Processor," and "Notification Module."
○ functions each component implements
■ example: Authentication service : Validates user credentials,
Implements password recovery via email, …
○ how the components are interconnected
■ example: The Authentication Service communicates with the User
Database to verify user credentials, …
○ Architectural patterns (e.g., layered architecture, client-server architecture).
■ example: Client-Server Architecture: Browser that sends HTTP
requests, Back-end API processes client requests and communicates
with the database….
● Implementation, the required deliverables:
○ Source code adhering to coding and documentation standards.
■ example: source code
● front-end: HTML, CSS, React component …
● back-end: API handle service, …
○ Metrics reports (productivity, size, quality).
■ example: size metrics: Frontend JavaScript codebase has 15 React
components, totaling 10,000 LOC
○ Managed codebase with versioning and release practices.
■ example:
● The project uses Git for version control, hosted on GitHub or
GitLab
● Branching strategy: main branch for production, develop
branch for new features, and feature-specific branches like
feature/add-payment-gateway.
Verification and Validation
● Verification and Validation (V&V) Results: report, defect List
● Example:
➔ Validation: Reset Password
- Description: The tester uses the "Forgot Password" feature to receive an
email or text message containing instructions for resetting the password.
- Objective: Verify that:
The email is sent to the correct address.
The link in the email works correctly.
A new password can be set and used to successfully log in.
➔ Validation: User Registration
- Description: The development team reviews the requirements and design
documents for the user registration feature.
- Objective: Verify that:
All functional requirements are clearly defined (e.g., mandatory
fields like email, password, and name).
The workflow includes email validation after registration.
Security policies, such as password strength requirements, are
specified.
Edge cases (e.g., duplicate email or invalid input) are identified
and documented.
Deployment:
● The software has been installed and fully configured in the production
environment, ready for users to use and interact with.
● Example: Deployment Travel Website: The team deploys the travel website to the
production server after successful testing in the staging environment.
Operations and Maintenance
● Ensure software is stable, continuously improved, and effectively supports users in
real-world environments.
● Example: Operations and Maintenance for Travel Website
- Providing Technical Support: Help users resolve booking issues, payment
failures, or itinerary changes via chat, email, or call support.
- Monitoring System Performance: Monitor website response times, server
load, and booking confirmation rates; mitigate downtime during peak travel
seasons.
- Collecting and Managing Tickets: Address tickets for flight search errors,
feature requests like flexible date searches, and clarify refund or
cancellation policies.
- Trigger Maintenance Activities: Update APIs for airlines and hotel
databases, resolve bugs in location-based search, and apply system security
patches.
3. The main factors influencing the choice of project to undertake are:
1. Goals (Scope): Determine Goals (Scope) to calculate cost time, human resources,
quantity and risk
2. Cost:Internal development is cheaper (€72,000) than external development
(€84,000). Budget constraints will heavily impact the decision.
3. Time to Completion:Regarding the time issue, both are 8 months.But based on
externalizing the development activities takes more time. Therefore, time is an
important factor in determining the choice for the project.
4. Quality and Flexibility:External development (SCRUM) offers higher quality
and adaptability to changes, while internal development (Waterfall) is less flexible
and riskier if requirements evolve
5. Risk Management: External development reduces risks related to internal
resource constraints but introduces vendor dependency. Internal development
poses higher risks if the team lacks experience.
.Why: These factors determine the feasibility, efficiency, and alignment of the
project with organizational priorities, balancing cost, quality, time, and risk.