Вы находитесь на странице: 1из 14

THE UNIVERSITY OF ZAMBIA

IN CONJUCTION WITH

ZAMBIA ICT COLLEGE

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:

- Simple and easy to understand and use


- Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
- Clearly defined stages.
-
3
The disadvantage of waterfall development is that it does not allow much reflection or revision.
Once an application is in the testing stage, it is very difficult to go back and change something
that was not well-documented or thought upon in the concept stage.

Other disadvantages include:

- Until late during the life cycle, no working software is produced.


- High amounts of risk and uncertainty.

Question 1b incremental model


b)
Incremental Model is a process of software development where requirements divided into
multiple standalone modules of the software development cycle. (www.javatpoint.com,
2019)In this model, each module goes through the requirements, design, implementation
and testing phases. Every subsequent release of the module adds function to the previous
release. The process continues until the complete system is achieved. This type of model
is used in cases such as when the requirements are superior or a project has a lengthy
development schedule. Below is a diagram illustrating the incremental model process.

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:

- Total cost is high


- Well defined interface modules are needed.

Question 1c iterative model


c) The iterative model is a particular implementation of a software development life cycle
(SDLC) that focuses on an initial, simplified implementation, which then progressively
gains more complexity and a broader feature set until the final system is complete. When
discussing the iterative method, the concept of incremental development will also often
be used liberally and interchangeably, which describes the incremental alterations made
during the design and implementation of each new iteration. (Powell-Morse, 2016)

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.

Some of its advantages include

- Suitability for agile organization


- Easy adaptability
- Inherent versioning: It is rather obvious that most software development life cycles will
include some form of versioning, indicating the release stage of the software at any
particular stage. However, the iterative model makes this even easier by ensuring that
newer iterations are incrementally improved versions of previous iterations. Moreover, in
the event that a new iteration fundamentally breaks a system in a catastrophic manner, a
previous iteration can quickly and easily be implemented or “rolled back,” with minimal
losses; a particular boon for post-release maintenance or web applications.

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.

Throwaway prototyping is in simple terms a technique offers a useful method of


exploring ideas and getting customer feedback for each of them. In this method, a
developed prototype need not necessarily be a part of the ultimately accepted prototype.
Customer feedback helps in preventing unnecessary design faults and hence, the final
prototype developed is of a better quality.

Evolutionary prototyping is a method where the prototype developed initially is


incrementally refined on the basis of customer feedback till it finally gets accepted. In
comparison to Rapid Throwaway Prototyping, it offers a better approach which saves
time as well as effort. This is because developing a prototype from scratch for every
iteration of the process can sometimes be very frustrating for the developers.

Furthermore, on the good side prototyping model is very advantageous in that:

- New requirements can be easily accommodated as there is scope for refinement.


- Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
- The developed prototype can be reused by the developer for more complicated projects in
the future.

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.

Question 2 High fidelity & Low-fidelity


A prototype is a simulation of how a finished product will work. It allows product teams to test
the usability and feasibility of their designs. The primary goal of building a prototype is to test
designs (and product ideas) before creating real products.

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.

More differences of between lo-fi and hi-fi include:

- 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.

Question 3a class & attributes


a) Student Class = student ID, student_age, student_DOB, student_Nationality,
student_religion, student_address, student_email, student_grade
Teacher Class = teacher_id, teacher_name, teacher_email, teacher_address,
teacher_gender.
Parent Class = parent_id, parent_name, parent_address, parent_email, parent_gender.
Club Class = club_id, club_name, club_type, club_teacher, club_members.
Subject Class = subject_id, subject_name, subject_teacher, subject_grade.

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

+ student id : int + subject_id : int + teacher_id : int


+ student_Name : String + subject_name : String + teacher_name : String
+ student_Address : String + subject_teacher : String + teacher_email : email
+ student_Nationality : String + string_grade : char + teacher_address : String
+ student_DOB : date +add_subject() + teacher_gender : String
+ student_Grade : char +edit_subject() + add_teacher()
+ student_Religion : String +delete_subject() +delete_teacher()
+student_Email : email + search_subject() + add_result()
+ add_student() + delete_results()
+delete_student() + edit_results()
+ view_result() + search_result()
+view_student_records()

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

https://www.tutorialspoint.com, 2020. SDLC - Waterfall Model. [Online]


Available at: https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
[Accessed 3 July 2020].

geeksforgeeks.com, 2018. Software Engineering | Prototyping Model. [Online]


Available at: https://www.geeksforgeeks.org/software-engineering-prototyping-model/
[Accessed 3 July 2020].

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].

www.javatpoint.com, 2019. software-engineering-incremental-model. [Online]


Available at: https://www.javatpoint.com/software-engineering-incremental-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

Вам также может понравиться