Академический Документы
Профессиональный Документы
Культура Документы
IN CONJUCTION WITH
STUDENT_ID: 1910365
STUDENT_NAME: Silvester Kwandu Salimbimba
COURSE_NAME: Object Oriented System Analysis and
Design
PROGRAM: BICT with Education (ODL)
LECTURER: Mukuka S.K
ASSIGNMENT NO: 01
DUE DATE: 22th July 2020
1
Table of Contents
Question 1a waterfall model __________________________________________________________ 3
Question 1b incremental model _______________________________________________________ 4
Question 1c iterative model __________________________________________________________ 5
Question 1d prototyping _____________________________________________________________ 7
Question 2 High fidelity & Low-fidelity _______________________________________________ 10
Question 3a class & attributes ________________________________________________________ 11
Question 3b use case diagram ________________________________________________________ 12
Question 3c class diagram __________________________________________________________ 13
References ________________________________________________________________________ 14
2
Question 1a waterfall model
a) The Waterfall Model was the first Process Model to be introduced. It is also referred to as
a linear-sequential life cycle model. It is very simple to understand and use. In a
waterfall model, each phase must be completed before the next phase can begin and there
is no overlapping in the phases. (https://www.tutorialspoint.com, 2020)
Waterfall approach was first SDLC Model to be used widely in Software Engineering to
ensure success of the project. In "The Waterfall" approach, the whole process of software
development is divided into separate phases. In this Waterfall model, typically, the
outcome of one phase acts as the input for the next phase sequentially.
The waterfall model has sequential phases that it follows in order to produce quality and good
software. These phases include: Requirements gathering and analysis, system design,
implementation, integration and testing, deployment of system and maintenance.
The advantages of waterfall development are that it allows for departmentalization and control.
Some of the major advantages of the Waterfall Model are:
4
There are a number of advantages as to why incremental model may be chosen over the
rest of the model, some of these include:
- Error are easy to recognize.
- It is easier to test and debug.
- It is more flexible than the other models.
However, good as may be, it also has some disadvantages such as:
5
Unlike the more traditional waterfall model, which focuses on a stringent step-by-step
process of development stages, the iterative model is best thought of as a cyclical process.
After an initial planning phase, a small handful of stages are repeated over and over, with
each completion of the cycle incrementally improving and iterating on the software.
Enhancements can quickly be recognized and implemented throughout each iteration,
allowing the next iteration to be at least marginally better than the last.
6
Nevertheless, just like other models, the iterative model also has its disadvantages, some
of these include:
- Increase pressure on user engagement: Unlike the waterfall model, which emphasizes
nearly all user/client engagement within the initial stages of the project during a brief
crunch time period, the iterative model often requires user engagement throughout the
entirety of the process. This is sometimes an unfortunate obligation, since each new
iteration will likely require testing and feedback from users in order to properly evaluate
any necessary changes.
- Costly late-stage issues: While not necessarily a problem for all projects, due to the
minimal initial planning before coding and implementation begin, when utilizing an
iterative model, it is possible that an unforeseen issue in design or underlying system
architecture will arise late into the project. Resolving this could have potentially
devastating effects on the time frame and costs of the project as a whole, requiring a great
deal of future iterations just to resolve one issue.
- Feature Creep: Not only does the iterative model require user feedback throughout the
process, but this also inherently means the project may be subject to undesired feature
creep, whereby users experience the changes in each iteration, and are inclined to
constantly put forth new requests for additional features to be added to future versions.
-
Like all model, the iterative model also has got phases it abides in order to develop
software, these phases are: planning & requirements, analysis & design,
implementation, testing and finally evaluation.
Question 1d prototyping
d) Prototyping is defined as the process of developing a working replication of a product or
system that has to be engineered. It offers a small-scale facsimile of the end product and
is used for obtaining customer feedback as described below:
7
It is one of the most popularly used Software Development Life Cycle Models (SDLC
models). This model is used when the customers do not know the exact project
requirements beforehand. In this model, a prototype of the end product is first developed,
tested and refined as per customer feedback repeatedly till a final acceptable prototype is
achieved which forms the basis for developing the final product. (geeksforgeeks.com,
2018)
In this process model, the system is partially implemented before or during the analysis
phase thereby giving the customers an opportunity to see the product early in the life
cycle. The process starts by interviewing the customers and developing the incomplete
high-level paper model. This document is used to build the initial prototype supporting
only the basic functionality as desired by the customer. Once the customer figures out the
problems, the prototype is further refined to eliminate them. The process continues till the
user approves the prototype and finds the working model to be satisfactory.
The Prototyping Model should be used when the requirements of the product are not
clearly understood or are unstable. It can also be used if requirements are changing
quickly. This model can be successfully used for developing user interfaces, high
technology software-intensive systems, and systems with complex algorithms and
8
interfaces. It is also a very good choice to demonstrate the technical feasibility of the
product.
There are two main types of this model which are consistently used for developing
prototypes, these are throwaway prototyping & Evolutionary prototyping.
On the negative side prototyping model can have poor documentation due to constant change in
user requirements or rather scope creeping. Other disadvantages include:
- There may be too much variation in requirements each time the prototype is evaluated by
the customer.
- Developers in a hurry to build prototypes may end up with sub-optimal solutions.
9
- The customer might lose interest in the product if he/she is not satisfied with the initial
prototype.
The first and simplest level of prototyping is the lo-fi paper prototype. Lo-fi, or low fidelity,
means that there’s a lack of details — just an abstract visual representation of your visual design
and content. Using just a pen and paper, you can sketch a set of main screens for your app in a
couple of minutes. These prototypes are invaluable in the early stages because they allow you to
communicate and refine ideas quickly, collaborate on them, and make changes in seconds.
(Ponomarev, 2019)
Hi-fi or high-fidelity prototypes typically resemble the real application. They’re often interactive,
allowing users and stakeholders to navigate the prototype by clicking and tapping various UI
elements. They also incorporate animation and transitions, close to the ones that will be
implemented when the application is built.
unlike lo-fi, hi-fi contain all the details that the real application will have. They also include
content that the application will have, in order to give you a sense of real user experience.
- where you have divided focus with the design, ideas and appearance.
- With high-fidelity, it is more familiar to users as it gives them more faith of a final
product.
- Furthermore, with hi-fi you can dive deep into a specific component (like flow, visuals,
engagement, or navigation) during user testing.
- Unlike hi-fi, lo-fi is more accessible to everyone and You can quickly redo part of the
design based on customer comments in real time.
10
- Again, with hi-fi you can set clear expectations with developers in the early stages of how
much time will be needed to build your prototype and have a finished product.
The most important thing to remember is you shouldn’t default to the same level of fidelity when
prototyping. It’s always depending on the development/designing stage and the product’s
features and goals. It’s as reading the same book all the time.
11
Question 3b use case diagram
b) Use Case Diagram
Login
Login
can register or
deregister a student
Can apply for application
<<include>> Can register
enrollment
Student for a club Senior
<<include>> interact with parents
Can request to Teacher
change subject, club analyse student
interact with third
or class record and results
part institutions
Logout
logout
Login
login
view their student
records and results
interact with
grade students
Parent <<include>>
the school
can register
or deregister a student view and edit
student records
Subject
Logout Teacher
logout
login
request for
student records
logout
Third part
institution
12
Question 3c class diagram
c) Class Diagram
CLASS DIAGRAM
STUDENT_CLASS SUBJECT_CLASS TEACHER_CLASS
CLUB CLASS
PARENT CLASS
+ club_id : int
+ parent_id : int SENIOR_TEACHER_CLASS
+ club_name : String
+ parent_name : String
+ club_type : String + teacher_id : int
+ parent_address : String
+ add_club() + teacher_name : String
+ parent_email : String
+ delete_club() + teacher_DOB : date
+ parent_gender : String
+ edit_club() + teacher_email : email
+ add_parent()
+ add_member() + teacher_address : String
+ delete_parent()
+delet_member() + add_teacher()
+ view_results()
+edit_member() +delete_teacher()
+ search_parent()
+ search_club() +view_student_records()
+ view_result()
+ search_teacher()
13
References
Ponomarev, A., 2019. The Difference Between Low and High Fidelity Prototypes. [Online]
Available at: https://medium.com/swlh/the-difference-between-low-and-high-fidelity-prototypes-
d7db1b657444
[Accessed 3 July 2020].
Powell-Morse, A., 2016. Iterative Model: What Is It And When Should You Use It?. [Online]
Available at: https://airbrake.io/blog/sdlc/iterative-model
[Accessed 3 July 2020].
Alan Dennis, B. H. W. R. M. R., 2012. System Analysis and Design. 5th edition ed. Rosewood: John Wiley
& Sons, Inc.
14