Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Asm1 SDLC

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 19

ASSIGNMENT 1 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing

Unit number and title Unit 7: Software Development Life Cycle

Submission date Date Received 1st submission

Re-submission Date Date Received 2nd submission

Student Name Student ID

Class Assessor name

Student declaration

I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.

Student’s signature N

Grading grid

P1 P2 P3 P4 M1 M2 D1 D2

1
r Summative Feedback: r Resubmission Feedback:

Grade: Assessor Signature: Date:


Internal Verifier’s Comments:

Signature & Date:

2
Catalog
I. Introduction....................................................................................................................................................................................3
II. Main body.....................................................................................................................................................................................4
1. Description of predictive and adaptive software development models considering at least two iterative and two sequential
models. (P1)......................................................................................................................................................................................4
1.1 Introduction of SDLC.................................................................................................................................................................4
1.2 Phases in SDLC.........................................................................................................................................................................4
1.3 Methodologies:............................................................................................................................................................................5
2. Explain how risk is managed in software lifecycle models. (P2).................................................................................................9
1.1 Risk definition.............................................................................................................................................................................9
1.2 Risk management definition.......................................................................................................................................................9
1.3 Step to analyze and solve problems..........................................................................................................................................10
1.4 List NEI's risks and solutions....................................................................................................................................................10
3. Discuss the purpose of conducting a feasibility study for the project. (P3)................................................................................11
1.1 Feasibility definition:................................................................................................................................................................11
1.2 Types of Feasibility Study:.......................................................................................................................................................12
1.3 Critical Analysis of NEI's Feasibility........................................................................................................................................12
4. Describe how technical solutions can be compared. (P4)...........................................................................................................13
1.1 programming languages...........................................................................................................................................................13
1.2 Matrix table...............................................................................................................................................................................15
1.3. Select 1 programming language to apply for NEI...................................................................................................................16
5. Discuss the suitability of each SDLC model for the project. For each model, determine whether it is the best, moderate, or
worst fit. (M1).................................................................................................................................................................................16
6. Discuss the components of a feasibility report. (M2).................................................................................................................17
1.1. Determine NEI project costs and benefits................................................................................................................................17
1.2. assign value and benefits to the project....................................................................................................................................18
1.3. Evaluate the economic value of the project.............................................................................................................................18
1.4. Organizational Feasibility Study.............................................................................................................................................19
III CONCLUSION..........................................................................................................................................................................19
IV. REFERENCES.........................................................................................................................................................................19
Figure

Figure 1. waterfall (cyclic method).................................................................................................................5

Figure 2. V-model (cyclic method).................................................................................................................6

Figure 3. Agile (iterative method)..................................................................................................................7

Figure 4. scrum...............................................................................................................................................8

Figure 5. python………………………………...............................................…………………………….14

Figure 6. Java……………………………………………....………………………………………………15

Figure 7. JavaScript………………………………………......……………………………………………15

Table:

Table 1. critical analyze feasibility...............................................................................................................13

Table 2. Matrix.............................................................................................................................................16

3
I. Introduction

In order to enhance its operations, NEI is actively seeking a solution that automates various academic and
administrative activities. As a System Analyst hired for NEI, you are tasked with developing a new Office
Management solution that will streamline processes such as attendance and student management.

II. Main body

1. Description of predictive and adaptive software development models considering at least two
iterative and two sequential models. (P1)

1.1 Introduction of SDLC

- SDLC (Software Development Life Cycle) is a structured approach used in software development to
guide the entire process from initiation to deployment and maintenance. It consists of several phases, each
with its own objectives and activities.

1.2 Phases in SDLC

1. Requirements Gathering: In this phase, project stakeholders, including clients and end-users,
identify and document their requirements and expectations from the software.

2. Analysis and Planning: This phase involves analyzing the gathered requirements, evaluating
feasibility, and creating a detailed project plan. It includes defining project scope, identifying risks,
and establishing a budget and timeline.

3. Design: The design phase focuses on creating a blueprint for the software system. It involves
designing the system architecture, database structure, user interface, and other necessary
components.

4. Development: In this phase, developers write the code and build the software according to the
requirements and design specifications. It includes coding, unit testing, and integration of various
modules.

5. Testing: The testing phase involves verifying and validating the software to ensure that it meets the
specified requirements. It includes different types of testing, such as unit testing, integration
testing, system testing, and user acceptance testing.

4
6. Deployment: Once the software passes the testing phase, it is deployed to the production
environment. This includes installation, configuration, and making the software available for end-
users.

7. Maintenance: The maintenance phase involves regular updates, bug fixing, and providing support
to the software after deployment. It ensures the software remains functional and adapts to changing
user needs.

1.3 Methodologies:

a, Waterfall Development

- The Waterfall model is a sequential project management and software development approach in which
the project phases are executed in a linear and sequential manner.

Figure 1. waterfall (cyclic method)

 Advantages

• requirements are identified long before programming begins

• requirement changes are limited as the project progresses

 Disadvantages

• the design must be completely specified before programming begins

• significant time elapses between the completion of the system proposal in the analysis phase and the
delivery of system

• testing may be treated almost as an afterthought in the implementation phase

 Phases

1. Requirements gathering and analysis

5
2. System design

3. Implementation and coding

4. Testing and quality assurance

5. Deployment and maintenance

b, V-Model:

- The V-Model is a software development and testing model that emphasizes the relationship between
each phase of the development life cycle and its corresponding testing phase.

Figure 2. V-model (cyclic method)

 Advantages:

1. Clear and well-defined development and testing phases.

2. Early and continuous involvement of testing activities ensures better quality assurance.

3. Emphasis on traceability helps ensure that all requirements are tested and verified.

4. Suitable for projects with stable and well-understood requirements.

 Disadvantages:

1. Rigid and inflexible to changing requirements.

2. Late feedback and validation, which may lead to costly modifications.

3. Limited scope for concurrent development and iteration.

4. Requires detailed upfront planning and documentation, which can be time-consuming.

6
 Phases

1. Requirements Gathering

2. Requirements Analysis

3. Design

4. Testing

c, agile:

- Agile is an iterative and flexible approach to project management and software development that
emphasizes collaboration, adaptability, and continuous improvement.

Figure 3. Agile (iterative method)

 Advantages

1. Flexibility in adapting to changing requirements.

2. Continuous customer collaboration leads to better customer satisfaction.

3. Early and frequent delivery of working software.

4. Agile model helps identify and solve problems earlier. Through frequent iteration and testing.

 Disadvantages:

1. Requires active customer involvement and constant communication.

2. May lack documentation and comprehensive planning.

3. Reliant on team collaboration and self-organization.

7
4. The Agile model can be difficult to manage and develop large and complex projects.

 Phases

1. Requirements gathering and prioritization

2. Iterative development and testing

3. Regular reviews and feedback

4. Incremental delivery of working software

d, Scrum

- Scrum is an Agile framework for managing and organizing complex projects, primarily in software
development. It provides a flexible and iterative approach that enables teams to deliver high-quality
products incrementally.

Figure 4. scrum

 Advantages:

1. Improved project visibility and transparency.

2. Increased collaboration and communication within the team.

3. Rapid delivery of working software.

4. Scrum allows for flexibility and adaptability in changing requirements and priorities.

 Disadvantages:

1. Requires experienced Scrum Masters and team members.

2. May face challenges in estimating and planning for complex projects.

8
3. Limited suitability for projects with fixed scope or requirements.

4. Scrum requires strong commitment from all members of the development team.

 Phases

1. Product backlog creation and prioritization

2. Sprint planning

3. Daily Scrum meetings

4. Sprint review and retrospective

- Among the 4 methods above, I chose the Scrum method to register for NEI. Scrum is an agile and
interactive team project management method that focuses on dividing projects into short segments called
Sprints. Scrum team members work organized and self-managed, with support from the Scrum Master.
This is a suitable method for projects with unclear or frequently changing requirements.

The reasons for choosing Scrum to register for NEI are:

 Flexibility: Scrum allows for flexibility and adaptability in changing requirements. This is useful
when the NEI has specific requirements or needs to be adjusted over time.

 Quick feedback: Scrum creates quick feedback from customers and users. By dividing the project into
short Sprints, NEI can receive the product early and provide feedback, thereby improving and
adjusting the project according to customer feedback.

 Interactivity and concentricity: Scrum encourages regular and active interaction between development
team members. This helps create a positive work environment and promotes engagement and
consensus in NEI registration and implementation.

 Enhance work performance: Scrum helps increase team performance and problem-solving ability. By
sharing knowledge, exchanging experiences and mutual support, NEI can achieve better results and
solve problems effectively.

2. Explain how risk is managed in software lifecycle models. (P2)

1.1 Risk definition.

Risk definition: Risk refers to the possibility of an event or condition occurring that could have a negative
impact on project objectives or outcomes. It is the uncertainty that surrounds future events and outcomes.

9
1.2 Risk management definition

Risk management definition: Risk management is the process of identifying, assessing, and prioritizing
risks, followed by applying strategies and actions to minimize, monitor, and control the impact of those
risks on project success. It involves understanding and evaluating potential risks, developing mitigation
plans, and continuously monitoring and adapting to changing circumstances.

1.3 Step to analyze and solve problems

1. Identify and Define the Problem: Clearly identify and define the problem or issue that needs to be
addressed. This involves understanding the current situation, gathering relevant data, and defining
the scope of the problem.

2. Analyze and Evaluate Alternatives: Generate and evaluate potential solutions or alternatives to
address the problem. This may involve conducting feasibility studies, assessing risks and benefits,
and considering various options.

3. Implement and Test: Select the most appropriate solution and implement it in a controlled manner.
This step involves developing the necessary components, conducting testing and verification, and
ensuring that the solution meets the desired requirements.

4. Review and Refine: Evaluate the effectiveness of the implemented solution and gather feedback.
This step involves reviewing the results, analyzing the outcomes, and identifying areas for
improvement. Based on the feedback, refine the solution and iterate the process if necessary.

1.4 List NEI's risks and solutions

1. Risk: Market competition

 Risk: Increased competition from new or existing players in the market, leading to a potential loss of
market share.

 Solution: Conduct regular market research to stay updated on industry trends and competitive
landscape. Differentiate NEI's products or services through innovation, quality, or unique value
propositions. Develop a strong marketing and branding strategy to effectively communicate NEI's
competitive advantages to customers.

2. Risk: Technology disruption

 Risk: Rapid technological advancements that may render NEI's current technology obsolete or less
competitive.

10
 Solution: Invest in research and development to stay at the forefront of technological advancements.
Foster a culture of innovation within the organization to encourage the exploration of new
technologies and ideas. Collaborate with technology partners or startups to leverage emerging
technologies and stay ahead of the competition.

3. Risk: Talent attraction and retention

 Risk: Difficulty in attracting and retaining skilled and experienced employees in a competitive job
market.

 Solution: Develop a strong employer brand and value proposition to attract top talent. Offer
competitive compensation packages, professional development opportunities, and a positive work
environment. Implement employee engagement initiatives to foster a sense of belonging and loyalty.
Build relationships with universities and professional networks to tap into emerging talent pools.

-Risk management process: The risk management process typically involves the following five steps.

1. Risk Identification: Identify and document potential risks that may impact the objectives, operations,
or outcomes of the organization. This can be done through various methods such as brainstorming
sessions, historical data analysis, expert opinions, or risk checklists. The goal is to create a
comprehensive list of risks that are relevant to the organization.

2. Risk Assessment: Evaluate and prioritize the identified risks based on their likelihood of occurrence
and potential impact. This step involves analyzing each risk in terms of its probability, severity, and
detectability. It helps in determining which risks require immediate attention and resources.

3. Risk Response Planning: Develop strategies and actions to mitigate or address the identified risks.
This includes determining the most appropriate risk response for each risk, which can include
avoiding, transferring, mitigating, or accepting the risk. Develop specific plans and allocate necessary
resources to implement the chosen risk responses effectively.

4. Risk Monitoring and Control: Continuously monitor and review the identified risks throughout the
project or operational lifecycle. This involves tracking the progress of risk response plans, assessing
the effectiveness of implemented controls, and identifying any new risks that may arise. Regularly
update risk registers, communicate risk status to relevant stakeholders, and perform periodic risk
assessments.

5. Risk Review and Documentation: Conduct regular reviews and evaluations of the overall risk
management process. This includes analyzing the effectiveness of risk responses, identifying lessons
learned, and documenting best practices. The documentation should include risk registers, risk
management plans, and any changes made to the risk management process based on the review
findings.

11
3. Discuss the purpose of conducting a feasibility study for the project. (P3)

1.1 Feasibility definition:

Feasibility refers to the extent to which a project, task, or idea can be successfully implemented or
accomplished. It involves assessing various factors such as technical, economic, and organizational
aspects to determine the practicality and viability of the undertaking.

1.2 Types of Feasibility Study:

1. Technical Feasibility: This study focuses on evaluating the technical requirements and capabilities
of implementing a project or idea. It assesses whether the necessary technology, infrastructure,
resources, and expertise are available or can be acquired to support the project.

2. Economic Feasibility: Economic feasibility study examines the financial viability and profitability
of a project. It involves analyzing the costs, benefits, and potential returns on investment. This
study considers factors such as market demand, pricing, revenue projections, and the overall
economic impact of the project.

3. Organizational Feasibility: Organizational feasibility study evaluates the capability and readiness
of the organization to implement the project or idea. It assesses factors such as the organizational
structure, resources, management support, and the impact on existing operations and processes.
This study helps determine if the organization has the necessary capabilities and capacity to
successfully execute the project.

1.3 Critical Analysis of NEI's Feasibility

Aspect Feasibility Explanation


Assessment

Technical high NEI has a strong technical team with expertise in the necessary
technologies.

Adequate infrastructure is already in place to support NEI's


operations.

Economic Medium Market demand for NEI's products/services is high, indicating


potential profitability.

12
However, initial investment costs and competition may affect
profitability.

Organization Low NEI has limited organizational capacity and resources to scale
al operations.

Additional resources and restructuring may be required for


successful implementation.

Table 1. critical analyze feasibility

4. Describe how technical solutions can be compared. (P4)

1.1 programming languages

1. Python:

- Description: Python is a high-level, general-purpose programming language known for its simplicity
and readability. It provides a wide range of libraries and frameworks that make it suitable for a variety
of applications, including web development, scientific computing, data analysis, artificial intelligence,
and more. Python emphasizes code readability and uses indentation to define code blocks. It has a
large and active community that contributes to its extensive ecosystem of libraries and tools.

Figure 5. python

2. Java:

13
- Description:Java is a widely-used, object-oriented programming language known for its platform
independence. It is designed to run on any system that has a Java Virtual Machine (JVM). Java is
particularly popular for building scalable and robust enterprise-level applications, mobile apps
(Android development), and large-scale web applications. It focuses on code reusability and follows
the "write once, run anywhere" principle. Java has a vast standard library and a strong community
support.

Figure 6. Java

3. JavaScript:

- Description: JavaScript is a high-level, interpreted programming language primarily used for creating
interactive and dynamic web content. It is commonly used for frontend development, allowing
developers to add interactivity, validate forms, manipulate the DOM (Document Object Model), and
create modern web applications. JavaScript is supported by all major web browsers, making it a
fundamental technology for web development. It has evolved significantly over the years and is now
also used in backend development (Node.js) and mobile app development (React Native, Ionic).

14
Figure 7. JavaScript

1.2 Matrix table

Criteria Name of programming

Internal Python Java JavaScript


criteria

Easy to read 9/10 7/10 8/10

Python is highly rated for Java has average JavaScript is rated quite
readability, perhaps due to its readability, possibly highly for readability, but
simple syntax, closeness to because the syntax is a bit can be more complex
natural language, and clear more complex than than Python due to some
indentation that helps make the Python and JavaScript. of the language's syntax
source code easier to and conventions.
understand.

Easy to write 9/10 8/10 8/10

Python ranks high in ease of Java is highly rated for its JavaScript ranks average
writing, with a clean syntax and ease of writing, with a for ease of writing, likely
many features available in the wide range of tools and due to the variety of
language libraries to support frameworks and libraries,
development. as well as the complex
aspects of the language.

15
Simplicity 8/10 8/10 8/10

Python is also appreciated for its Java also ranks highly for JavaScript is also highly
simplicity, with an easy-to- simplicity, with an rated for its simplicity,
remember syntax and the ability organized and easy-to- with an easy-to-
to solve complex problems with understand syntax. understand and flexible
ease. syntax.

Calculate 9/10 9/10 9/10


performance
Python is highly appreciated for Java is highly rated for its JavaScript is highly rated
its computational performance, computational for its computational
with optimization and flexibility performance, with performance, especially
in data processing optimization and the in handling interactive
ability to run on a variety web applications.
of platforms.

External
criteria

Community 9/10 8 9/10

Python has a large and diverse Java has a large JavaScript has a very
community, with thousands of community with millions large and diverse
users, developers, and support of developers and users community, with millions
groups worldwide. This means worldwide, but it may not of developers and users
Python users can easily find be as diverse and rich as worldwide.
information, support, and Python.
documentation from the
community.

License 8/10 9/10 8/10

Python is released under the Java has an extensive and JavaScript is often used
GNU General Public License complex license system, in open source projects
(GPL), a free and open license, but is often considered with free and open
but which also has requirements free and open. licenses.
for redistributing the open
source code.

Security 9/10 8/10 9/10

16
Python is generally considered a Java is designed with JavaScript offers some
secure language, with many some strong security strong security features,
security mechanisms built into features, but has also but there are also some
the language and powerful encountered some security issues associated
security libraries. security vulnerabilities in with its implementation
the past. on the web.

Compiler 8/10 9/10 8/10

Python is often used with an Java is a language JavaScript is often


interpreter instead of a compiled into bytecode, compiled into bytecode
traditional compiler. This makes allowing it to run on many or lightweight machine
deploying Python source code different platforms code in the browser,
on different platforms without the need for helping it run on many
potentially more complicated recompilation. different platforms.
than other languages with
independent compilers.

Hardware 9/10 8/10 9/10


Support
Python has many libraries and Java provides a large JavaScript has rich
frameworks available to support number of libraries and libraries and frameworks
interaction with hardware, frameworks to support to support interaction
including IoT, machine learning interaction with with hardware, especially
and big data processing. hardware. in web application
development.

Software 9/10 8/10 9/10


Support
Python has a rich software Java has a strong software JavaScript has a diverse
ecosystem with many libraries, ecosystem with many and robust software
frameworks and support tools libraries and frameworks ecosystem, with many
for applications ranging from supporting desktop and libraries and frameworks
web, data science to artificial mobile applications. developed for both
intelligence and many other frontend and backend.
fields.

Weight score Final Score: 87 Final Score:83 Final Score: 85

Table 2. Matrix

17
 Python: Python is a popular and versatile programming language that can be used in many different
fields such as web development, data analysis, artificial intelligence and automation. Python is easy to
learn, read, and write, with a simple syntax that helps quickly develop applications. Furthermore,
Python has a large and active community, with many libraries and frameworks supporting it, making
application development convenient and efficient. So I gave this language a high score compared to
the other two languages

 Java: Java is an object-oriented programming language widely used in building enterprise


applications. It is quite easy to read, easy to write, simple and performant. Java has a steadily growing
community. determined. Java focuses on code reuse and the "write once, run anywhere" principle.
With a large standard library and strong community support, Java is an ideal choice for large-scale
projects that require high stability. So I scored 3rd in the matrix table

 JavaScript: JavaScript is a high-level programming language used to create interactive and dynamic
web content. JavaScript is supported on all major web browsers, making it a fundamental technology
for web development. JavaScript is not only used for frontend development, but is also used in server-
side development (Node.js) and mobile applications (React Native, Ionic). JavaScript has a large and
rich community that simplifies web application development and creates diverse user experiences. So
I rated this language quite highly and ranked 2nd among the three languages in the matrix table

1.3. Select 1 programming language to apply for NEI

- For the NEI application, considering the many potential projects and applications, I chose to use Python.
Python is a flexible language with many libraries and frameworks that can support many different areas,
including web development, data analysis, machine learning, and automation. Python's simplicity and
readability make it a great choice for quickly prototyping ideas and developing functional applications.

- Additionally, Python has a large and active community, which means you can find plenty of resources,
documentation, and support when you encounter challenges in your project. Its popularity and vast
ecosystem of libraries, such as Django and Flask for web development or Pandas and NumPy for data
analysis, make it a versatile language for a variety of projects.

III CONCLUSION

-After being introduced to office management software, we hope people will understand more about it and
be able to create or apply it to their businesses for further development.

18
IV. REFERENCES

[1]Sac, D. T. (2024) Tìm hiểu về SDLC – Software Development Life Cycle, Viblo. Viblo. Available at:
https://viblo.asia/p/tim-hieu-ve-sdlc-software-development-life-cycle-3Q75w209lWb (Accessed: 28
February 2024).

[2] Atoha. Atoha. Available at: https://www.atoha.com/blogs/kien-thuc/quan-ly-rui-ro-du-an-project-risk-


management (Accessed: 28 February 2024).

[3] Hanghuynh (2024) Mô hình xoắn ốc (Spiral model) - Bật mí cách sử dụng hiệu quả - TOP 20
REVIEW, TOP 20 REVIEW - mọi thứ, mọi lúc, một nơi. Available at: https://top20review.com/mo-hinh-
xoan-oc-spiral-model/ (Accessed: 28 February 2024).

[4]Admin (2024) Ngôn ngữ lập trình là gì? 10 loại ngôn ngữ phổ biến, dễ học nhất, CareerViet.
Careerbuilder. Available at: https://careerviet.vn/vi/talentcommunity/ngon-ngu-lap-trinh-la-gi-10-loai-
ngon-ngu-pho-bien-de-hoc-nhat.35A520C0.html (Accessed: 28 February 2024).

[5] Bryce, T., n.d. ProjectSmart.. [.line] Available at: https://www.projectsmart.co.uk/requirements-


management/elements-of-a-good-feasibility-study.php 16/10
[Accessed 22 10 2022].

19

You might also like