Capstone Project UMW-1
Capstone Project UMW-1
0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
Appendix A
University of Mianwali
Table of Contents
Chapter 1: Final Project Proposal...................................................................................2
1.1 Introduction............................................................................................................................2
1.2. Project Title:..........................................................................................................................2
1.3. Project Overview statement:..................................................................................................2
1.4. Project Goals & Objectives:..................................................................................................2
1.5. High-level system components:............................................................................................2
1.6. List of optional functional units:...........................................................................................2
1.7. Exclusions:............................................................................................................................2
1.8. Application Architecture:......................................................................................................2
1.9. Gantt chart:............................................................................................................................2
1.10. Hardware and Software Specification:................................................................................2
1.11. Tools and technologies used with reasoning:......................................................................2
Chapter 2: First Deliverable.............................................................................................2
2.1. Introduction...........................................................................................................................2
2.2. Project/Product Feasibility Report........................................................................................2
2.2.1. Technical Feasibility......................................................................................................2
2.2.2. Operational Feasibility...................................................................................................2
2.2.3. Economic Feasibility......................................................................................................2
2.2.4. Schedule Feasibility.......................................................................................................2
2.2.5. Specification Feasibility.................................................................................................2
2.2.6. Information Feasibility...................................................................................................2
2.2.7. Motivational Feasibility.................................................................................................2
2.2.8. Legal & Ethical Feasibility............................................................................................2
2.3. Project/Product Scope...........................................................................................................2
2.4. Project/Product Costing.........................................................................................................2
2.4.1. Project Cost Estimation by Function Point Analysis.....................................................2
2.4.2. Project Cost Estimation by using COCOMO’81 (Constructive Cost Model)...............2
2.4.3. Activity Based Costing..................................................................................................2
2.5. Task Dependency Table........................................................................................................2
2.6. CPM - Critical Path Method..................................................................................................2
2.7. Gantt chart.............................................................................................................................2
2.8. Introduction to Team member and their skill set..................................................................2
2.9. Task and Member Assignment Table....................................................................................2
2.10. Tools and Technology with reasoning................................................................................2
2.11. Vision Document.................................................................................................................2
2.12. Risk List..............................................................................................................................2
2.13. Product Features/ Product Decomposition.........................................................................2
Chapter 3: Second Deliverable For Object Oriented Approach...................................2
3.1 Introduction:...........................................................................................................................2
3.1.1 Systems Specifications....................................................................................................2
3.1.2. Identifying External Entities..........................................................................................2
3.1.3. Context Level Data Flow Diagram:...............................................................................2
6.1. Introduction...........................................................................................................................2
6.2. Site Maps...............................................................................................................................2
6.3. Story boards...........................................................................................................................2
6.4. Navigational maps:................................................................................................................2
6.5 Trace-ability Matrix................................................................................................................2
S1: Microsoft Products......................................................................................................2
Chapter 7: 5th Deliverable (Software Testing).................................................................2
7.1 Introduction:...........................................................................................................................2
7.2. Test plan................................................................................................................................2
7.2.1. Purpose...........................................................................................................................2
7.2.2. Outline............................................................................................................................2
7.3. Test design specification.......................................................................................................2
7.3.1. Purpose...........................................................................................................................2
7.3.2. Outline............................................................................................................................2
7.4. Test Case Specification.........................................................................................................2
7.4.1. Purpose...........................................................................................................................2
7.4.2. Outline...........................................................................................................................2
7.5. Test procedure specification..................................................................................................2
7.5.1. Purpose...........................................................................................................................2
7.5.2 Outline.............................................................................................................................2
7.6. Test item transmittal report...................................................................................................2
7.6.1. Purpose...........................................................................................................................2
7.6.2. Outline............................................................................................................................2
7.7. Test log..................................................................................................................................2
7.7.1. Purpose..........................................................................................................................2
7.7.2. Outline............................................................................................................................2
7.8. Test incident report................................................................................................................2
7.8.1. Purpose...........................................................................................................................2
7.8.2. Outline............................................................................................................................2
7.9. Test summary report..............................................................................................................2
7.9.1. Purpose...........................................................................................................................2
7.9.2. Outline............................................................................................................................2
Appendixes:........................................................................................................................2
Appendix 1: User Interface...............................................................................................2
1.1. Introduction...........................................................................................................................2
1.2. Focus on users.......................................................................................................................2
1.3. Integrated with design...........................................................................................................2
1.4. Early user testing...................................................................................................................2
1.5. Iterative design......................................................................................................................2
1.6. Guidelines..............................................................................................................................2
Appendix 2: Guidelines for Research Projects...............................................................2
Appendix 3: Final Documentation Format Guidelines..................................................2
Appendix 4:Final Documentation Intial Pages...............................................................2
Empty Page...................................................................................................................................2
1.1 Introduction
This guide is prepared to help students to execute their capstone project according to
international software engineering practices. In software engineering projects
documentation is the most important element. Many students’ projects lack this element.
Readers will find a complete road map of a successful capstone project, corresponding
deliverables and templates for evaluators. Project proposal is the first task of a capstone
project. Students usually find difficulty in writing a proper project proposal. For this
reason, the guide also explains how to write a successful project proposal.
a. Project Title
b. Project Overview Statement
c. Project Goals
d. Project Objectives
e. High Level System Components
a. Component No.1
b. Component No.2
c. Component No.3
d. Component No.4
i. ………..
f. List of Optional Functional Units
g. Exclusions
h. Application Architecture
i. Gantt chart
The title should be clear and unambiguous (do not make it "cute"). Think of your title as
a mini-abstract. A good title should paint a quick picture for the reader of the key idea(s)
of your project. The words you use in your title should clearly reflect the focus of your
proposal. The most important words should come first, then the less important words. Try
to remove words from your title that really are not necessary for understanding. Try and
use only a single sentence for your title. If the sentence is getting too long try removing
some words. When all else fails try using a two-part title with the parts separated by a
colon (use only as a last resort!). Do not attempt to use the title as an abstract of your
entire proposal. If your proposal is built on collaborating with other groups/organizations
it is usually a good idea to include their names on the Title/Cover Page.
Think of the Project Overview as an Executive Summary (the busy executive probably
only has enough time to read your Overview - not the entire proposal). Be specific and
concise. Do not go into detail on aspects of your proposal that are further clarified at a
later point in your proposal. The Project Overview should "paint a picture" of your
proposal in the mind of the reader. It should establish the framework so that the rest of
the proposal has a frame of reference. Use the Project Overview to begin to show your
knowledge of the organization from which you are requesting funds. Key concerns of the
funding organization can be briefly identified in relation to your proposed project. If you
will be collaborating with other organizations make sure some of their interests are also
highlighted in the Project Overview. This can assist in strengthening the collaboration by
recognizing them at the very beginning of your proposal. The best time to prepare the
Project Overview is after you have completed the entire proposal (and you understand all
aspects of your proposal very well). Let the Overview be your last piece of writing and
then insert it at the beginning of your proposal. Try to keep in mind that someone will be
reviewing your proposal and you would like to have this person be very positive about
what you have written. The Project Overview will probably form a strong impression in
the mind of the reviewer. Work on your Project Overview so that you can avoid giving
this person the opportunity to say things like:
Project Goal:
The goal is to create a user-friendly desktop app/software that automates the generation of
timetables ,simplify the scheduling process for universities.
Objectives:
Sr.#
1 User-Friendly interface
2 Efficient
3 Flexibility and Customization
4 Conflict Resolution
5 Export and integration
6 Notification System
Project Success criteria:
The final system should able to generate time tables in completely automated way
which will save a lot of time and effort of an institute administration.
To make a timetable system generic so that I can work equally well for different
School, Colleges and Universities.
User defined constraints handling.
Ease of use for user of system so that he/she can make automatic time table.
Focus on optimization of resources i.e. teachers, labs and rooms etc.
Provide a facility for everyone to view timetable.
Generate multiple useful views from time table.
Try and differentiate between your goals and your objectives - and include both. Goals
are the large statements of what you hope to accomplish but usually aren't very
measurable. They create the setting for what you are proposing. Objectives are
operational, describe specific things you will be accomplishing in your project, and are
very measurable. Your objectives will form the basis for the activities of your project and
will also serve as the basis for the evaluation of your project. Try to insure that there is
considerable overlap between the goals and objectives for your proposal and the goals
and objectives of the funding organization. If there is not a strong overlap of goals and
objectives then it might be best to identify a different funding organization. Measurable
objectives for your project should be presented. If you are dealing with "things" it is
easier for them to be measured than if you are dealing with abstract ideas. Your proposal
is easier for a prospective funding organization to understand (and the outcomes are
much more clear) if you describe your objectives in measurable ways.
The "high level system components" refer to the main building blocks or modules that
make up the system. These components work together to create the functionality of the
automated timetable generation system. Here are some high-level system components
that you can include in your project proposal:
1. Data Input Module: This component is responsible for collecting and storing all the
necessary data for the timetable generation, such as course schedules, room availability,
and faculty preferences.
2. Timetable Generation Algorithm: This component is the heart of the system. It utilizes
various algorithms and techniques to generate an optimal timetable based on the input
data. It takes into account factors like course requirements, room availability, and faculty
constraints.
3. User Interface: This component provides an interactive interface for users to input their
preferences, view the generated timetable, and make any necessary adjustments or
modifications.
4. Conflict Resolution Module: This component handles any conflicts that may arise
during the timetable generation process, such as overlapping course schedules or resource
constraints. It employs conflict resolution strategies to find suitable solutions.
5. Reporting and Analytics Module: This component generates reports and provides
analytics on the generated timetable, allowing users to analyze and evaluate its
effectiveness. It can include metrics like course distribution, room utilization, and faculty
workload.
They are often requirements that specify need of compliance with any legal and
regulatory requirements. They can also be design constraints due to the operating system
used, the platform environment, compatibility issues, or any application standards that
apply. In general, you can say that any requirement that does not allow for more than one
design option should be regarded as a design constraint.
If the optional functional units are missing the system can still (for a while) fulfill its
fundamental mission, but with degraded service quality.
Some activities will not give you satisfactory answers. This can be due to lack of
information, or simply because you consider the answer threatens the viability of the
design. Therefore, create two lists, and maintain them through the design study:
Any assumptions you make during the requirements and design process, including the
rationale or thought processes behind those assumptions. Assumptions may be used to
identify related subprojects or items of work, which are outside the scope of or after this
project any major issues (significant concerns that could become show-stoppers).
The issues should be reviewed with the customer at the end of each phase. The
assumptions need to be reviewed also, at the end of each phase, but the customer might
not always be the correct person for the less important ones.
Assumptions and issues apply to all artifacts, but are particularly common for non-
functional requirement.
1. Conflict resolution module: This module helps resolve any scheduling conflicts
that may arise while generating the timetable.
6. These are just a few examples, but the list of optional functional units can vary
depending on the specific requirements and scope of your project.
1.7. Exclusions:
A list of the functional units, which will not be intended to be develop or discussed
during any point in the project development, should be present. Time constraints or lack
of resources for the fulfillment of the required task or any sort of other constraint
preventing the completion of the functional unit could be described here.
The Automated Timetable Generator project aims to significantly improve the scheduling
process for educational institutions. By focusing on core functionality and considering
exclusions and constraints, the project aims to deliver a reliable, efficient, and user-
friendly solution within the defined scope.
This proposal provides a solid foundation for the project, outlining objectives, scope, and
key considerations for successful implementation.
1. User Interface (UI): The UI layer provides users with the ability to interact with the
application. Users can set timetable preferences, select courses, and issue commands to
generate a timetable.
2. Database: The database layer stores the necessary data for generating the timetable.
This data includes information about courses, professors, classrooms, and timetable
constraints such as time slots, duration, and availability.
5. Notification System: The notification system component informs users about timetable
updates and changes. It sends notifications through email, SMS, or in-app notifications.
6. Reporting and Analytics: The reporting and analytics component tracks timetable
performance and usage metrics. It generates reports on course popularity, professor
workload, and classroom utilization.
After clicking on
Login button
n
Add Institution
Details
Add Department
Details
Add Course
Details
Add Teacher
Details
Add Subject
Details
Add Classroom
Details
Add Classes
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
1. Hardware Specifications:
- A computer or server with a powerful processor, sufficient RAM, and storage.
- A high-speed internet connection for smooth data input and processing.
- A printer, to print the timetable.
2. Software Specifications:
-Operating system
Windows 10
- Programming language:
1. Python for Frontend
2. Node.js for backend
for implement the timetable generation algorithm.
- Database management system
MySQL, PostgreSQL
2. Code Editors: Visual Studio Code provide a user-friendly editing environment with
features like syntax highlighting and code completion. It help developers write code more
efficiently.
3. Databases: MySQL,
Other Considerations:
2.1. Introduction
First deliverable is all about planning and scheduling of project. This deliverable must
contain following artifacts:
a. Project Feasibility
b. Project Scope
c. Project Costing
d. Task Dependency Table
e. Critical Path Method Analysis (CPM Analysis)
f. Gantt Chart
g. Introduction to team members
h. Tasks and member assignment table
i. Tools and Technologies
j. Vision Document
k. Risk List
l. Product Features
When a project is started the first matter to establish is to assess the feasibility of a
project or product. Feasibility means the extent to which appropriate data and information
are readily available or can be obtained with available resources such as staff, expertise,
time, and equipment. It is basically used as a measure of how practical or beneficial the
development of a software system will be to you (or organization). This activity recurs
throughout the life cycle.
There are many types of feasibilities:
Technical
Operational
Economic
Schedule
Specification
Information
Motivational
Legal and Ethical
All necessary technology exits to develop the system. This system is too flexible and it
can be expanded further. This system can give guarantees of accuracy, ease of use,
reliability and security of your data. This system can give instant response to inquire. Our
project is technically feasible because, all the technology needed for our project is readily
available.
Technical Feasibility deals with asking the question as to whether the system can be
developed or not. It is one of the most important questions before starting the project
because it is assessing the limits of theory or technology applicable to the project.
Another important query to be answered is to evaluate whether you (the project members
or organization) possess the technology and technical expertise.
burdens. The automated generation of diverse timetables for classes, genres, and
labs facilitates seamless operations within academic departments.
In this step, we verify different operational factors of proposed systems like man-power,
time etc., whichever solution uses less operational resources, is the best operationally
feasible solution in which the solution should also be operationally possible to
implement. Operational Feasibility determines if the proposed system satisfied user
objectives could be fitted into the current system operation.
The methods of processing and presentation are completely accepted by the
clients since they can meet all user requirements.
The proposed system will not cause any problem under any circumstances.
Our project is operationally feasible sincethe time requirements and the personal
requirements are satisfied. We are a team of four members and we worked on this project
for three working months.
Evaluation of technical ability of the staff to operate the project is the main aim of
operational feasibility. In this area the question arises as to whether the problem is worth
solving and if the solution provided for the problem works or not. How do end users and
managers feel about the problem or solution is another query to be answered.
Time is an important factor. The assessment and evaluation of the completion of a project
with the available staff and resources within time is very essential. Meeting deadlines and
milestones should always be kept in mind.
Requirements are the features that the system must have or a constraint that must be
accepted for the customer. The question arises as to whether the requirements are clear
and definite. The scope boundaries must also be assessed.
The feasibility of information must be assessed regarding its completion, reliability, and
meaningfulness.
Evaluation of the client staff regarding the motivation to perform the necessary steps
correctly and promptly must occur.
”Do any infringements or liabilities arise from this project? “ is the main focus of this
feasibility.
Scope is a very dominant factor. Scope and context are both intertwined as both involve
the boundaries of a system. Context would be referring to what holds outside the
boundary the system. While scope would indicate whatever is inside the boundary of the
system.
The scope of a project is defined by the set of requirements allocated to it. Managing
project scope to fit the available resources (time, people, and money) is key to managing
successful projects. Managing scope is a continuous activity that requires iterative or
incremental development, which breaks project scope into smaller more manageable
pieces.
© Department of Computer Science & Information Science.
24
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
Using requirement attributes, such as priority, effort, and risk, as the basis for negotiating
the inclusion of a requirement is a particularly useful technique for managing scope.
Focusing on the attributes rather than the requirements themselves helps desensitize
negotiations that are otherwise contentious.
Function Point Analysis can provide a mechanism to track and monitor scope creep.
Function Point counts at the end of requirements; analysis, design, code, testing and
implementation can be compared. The function point count at the end of requirements
and/or designs can be compared to function points actually delivered. If the project has
grown, there has been scope creep. The amount of growth is an indication of how well
requirements were gathered by and/or communicated to the project team. If the amount of
growth of projects declines over time it is a natural assumption that communication with
the user has improved.
Function points are computed by completing the table shown in the figure below. Five
information domain characteristics are determined and counts are provided in the
appropriate table location.
Number of user inputs: Each user input that provides distinct application-oriented data
to the software is counted. Inputs should be distinguished from inquiries, which are
counted separately.
Number of user inquiries: An inquiry is defined ass an on-line input that results in the
generation of some immediate software response in the form of an on-line output. Each
distinct inquiry is counted.
Number of files: Each logical master file (i.e. a logical grouping of data that may be one
part of a large database or a separate file) is counted.
Number of external interfaces: All the machine-readable interfaces (e.g., data files on
storage media) that are used to transmit information to another system are counted.
Once these data have been collected, a complexity value is associated with each count.
Organizations that use function point methods develop criteria for determining whether a
particular entry is simple, average, or complex. Nonetheless, the determination of
complexity is somewhat subjective.
Where count total is the sum of all FP entries obtained from above figure and (Fi) is
value adjustment factor (VAF) is based on 14 general system characteristics (GSC's) that
rate the general functionality of the application being counted. Each characteristic has
associated descriptions that help determine the degrees of influence of the characteristics.
The degrees of influence range on a scale of zero to five, from no influence to strong
influence.
Finally, Total Project Cost and Total Project Effort are calculated given the average
productivity parameter for the system.
Basic COCOMO
Type Effort Schedule
Organic PM= 2.4 (KLOC)1.05 TD= 2.5(PM)0.38
Semi-Detached PM= 3.0 (KLOC)1.12 TD= 2.5(PM)0.35
Embedded PM= 2.4 (KLOC)1.20 TD= 2.5(PM)0.32
Intermediate COCOMO
Type Effort
Organic PM= 2.4 (KLOC)1.05 x M
Semi-Detached PM= 3.0 (KLOC)1.12 x M
Embedded PM= 2.4 (KLOC)1.20 x M
PM= person-month
KLOC= lines of code, in thousands
M.- reflects 15 predictor variables, called cost drivers
3. Establish which task is the first one that must be carried out and place its card
on the left hand side of a large work surface.
4. Determine whether there are any tasks that can be done at the same time, i.e.
tasks that are not dependent on this first task finishing before they can be carried
out. If there are, place their job cards vertically above or below the first job card.
5. Then decide which is the next task that must be carried out and place its card
on the right of the first card. Determine whether there are any tasks that can be
done at the same time as this task. If there are, place their job cards vertically
above or below its job card.
6. Repeat the process until all of the job cards have been arranged in sequence
and in parallel.
Shows which activities are critical to maintaining the schedule and which are not.
CPM models the activities and events of a project as a network. Activities are depicted as
nodes on the network and events that signify the beginning or ending of activities are
depicted as arcs or lines between the nodes. The following is an example of a CPM
network diagram:
Steps in CPM Project Planning
Determining the following six parameters for each activity which can identify the critical
path:
ES: earliest start time: the earliest time at which the activity can start given that
its precedent activities must be completed first.
ES (K)= max [EF(J) : J is an immediate predecessor of K]
EF: earliest finish time: equal to the earliest start time for the activity plus the
time required to complete the activity.
EF (K)= ES (K) + Dur (K)
LF: latest finish time: the latest time at which the activity can be completed
without delaying the project.
LF (K)= min [LS(J) : J is a successor of K]
LS: latest start time: equal to the latest finish time minus the time required to
complete the activity.
LS (K)= LF(K) – Dur (K)
TS: Total Slack: the time that the completion of an activity can be delayed
without delaying the end of the project
TS (K)= LS(K) – ES(K)
FS: Free Slack: the time that an activity can be delayed without delaying both the
start of any succeeding activity and the end of the project.
FS (K)= min [ES(J) : J is successor of K] – EF(K)
The slack time for an activity is the time between its earliest and latest start time, or
between its earliest and latest finish time. Slack is the amount of time that an activity can
be delayed past its earliest start or earliest finish without delaying the project.
The critical path is the path through the project network in which none of the activities
have slack, that is, the path for which ES=LS and EF=LF for all activities in the path. A
delay in the critical path delays the project. Similarly, to accelerate the project it is
necessary to reduce the total time required for the activities in the critical path.
G F 5
A C
Star B D F G End
t
Activity Duration ES EF LS LF TS FS
A 5 0 5 0 5 0 0
B 3 0 3 3 6 3 2
C 8 5 13 5 13 0 0
D 7 5 12 6 13 1 1
E 7 0 7 6 13 6 6
F 4 13 17 13 17 0 0
G 5 17 22 17 13 0 0
Based on the Work Breakdown Structure (WBS), a timeline or Gantt chart showing the
allocation of time to the project phases or iterations should be developed. This Gantt
chart would identify major milestones with their achievement criteria. It must contain
duration estimation of all the necessary activities to be carried out during the project
development along with the human resources responsible for the respective tasks.
Activity dependencies are also required to be mentioned in it.
Example for Task Durations and Dependencies, Activity Network Diagram, Gantt chart,
and Allocation of People to Activities
Consider the set of activities shown in figure. This table shows activities, their duration,
and activity interdependencies. From figure, you can see that Task T3 is dependent on
Task T1. This means that T1 must be completed before T3 starts. For example, T1 might
be the preparation of a component design and T3, the implementation of that design.
Before implementation starts, the design should be complete.
14/7/99 15 days
15 days
M1 T3
8 days T9
T1 5 days 4/8/99 25/8/99
25/7/99
T6 M4 M6
4/7/99 M3
start 20 days 7 days
15 days
T7 T11
T2
Given dependency and estimated duration of activities, and activity network that shows
activity sequences may be generated. It shows which activities can be carried out in
parallel and which must be executed in sequence because of a dependency on an earlier
activity. Activities are represented as rectangles. Milestones and project deliverables are
shown with rounded corners. Dates in this diagram show the start date of the activity and
are written in British style where the day precedes the month. You should read the
network from left to right and from top to bottom.
In the project management tool used to produce this chart, all activities must end in
milestones. An activity may start when its preceding milestone (which may depend on
several activities) has been reached. Therefore, in the third column in figure the
corresponding milestone (e.g. M5) has been shown which is reached when the tasks in
that column finish.
Before progress can be made form one milestone to another, all paths leading to it must
be complete. For example, task T9, shown in the activity network below cannot be started
until tasks T3 and T are finished. The arrival at milestone M4 shows that these tasks have
been completed.
The minimum required to finish the project can be estimated be considering the longest
part in the activity graph (the critical path). In this case, it is 11 weeks of elapsed time or
55 working days. In the activity network diagram the critical path is shown as a sequence
of emboldened boxes. The overall schedule of the project depends on the critical path.
Any slippage in the completion of any critical activity causes project delays.
Delays in activities, which do not lie on the critical path, however, need not cause an
overall schedule slippage. So long as the delays do not extend these activities so much
that the total time exceeds the critical path the project schedule will not be affected. For
example, if T8 is delayed, it may not affect the final completion date of the project, as it
does not lie on the critical path.
Managers also use activity networks when allocating project work. They can provide
insights into activity dependencies, which are not intuitively obvious. It may be possible
to modify the system design so that the critical path is shortened. The project schedule
may be shortened because of the reduced amount of time spent waiting for activities to
finish.
4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
Start
T4
T1
T2
M1
T7
T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T11
M8
T12
Finish
Project management support tools can also process the figure and a bar chart generated
which shows the time periods where staff is employed on the project. Staff doesn’t have
to be assigned to a project at all time. During intervening periods they may be on holiday,
working on other projects, attending training courses or some other activity.
Large organizations usually employ a number of specialists who work on a project as
required. This can cause scheduling problems. If one project is delayed while a specialist
is working on it, this may have a knock-on effect on other projects. They may also be
delayed because the specialist is not available.
Task Engineer
T1 Jane
T2 Anne
T3 Jane
T4 Fred
T5 Mary
T6 Anne
T7 Jim
T8 Fred
T9 Jane
T10 Anne
T11 Fred
T12 Fred
Staff Allocation:
4/7 11/7 18/ 7 25/ 1/8 8 /8 15/ 8 22/8 29/8 5/9 12/ 9 19/9
Fred T4
T8 T1 1
T12
Jane T1
T3
T9
Anne T2
T6 T10
Jim T7
Mary T5
The size of the development effort. Tools support large organizations more or less
well.
Budget and time constraints
The Vision Document is designed to make sure that key decision makers on both sides
have a clear, shared vision of the objectives and scope of the project. It identifies
alternatives and risks associated with the project. Finally, it presents a budget for the
detailed planning phase for the stakeholders to approve.
The Vision document provides a high-level for the more detailed technical requirements.
There can also be a formal requirements specification. The Vision captures very high-
level requirements and design constraints to give the reader an understanding of the
system to be developed. It provides input to the project-approval process and is,
therefore, intimately related to the Business Case. It communicates the fundamental
"whys and what's" related to the project and is a gauge against which all future decisions
should be validated.
A project vision is meant to be changeable as the understanding of requirements,
architecture, plans, and technology evolves. However, it should be changing slowly and
normally throughout the earlier portion of the lifecycle.
It is important to express the vision in terms of its use cases and primary scenarios as
these are developed, so that you can see how the vision is realized by the use cases. The
use cases also provide an effective basis for evolving a test case suite.
Another name used for this document is the Product Requirement Document. There are
certain checkpoints that help to verify that the vision document is fulfilled.
Checkpoints:
Have you fully explored what the "problem behind the problem" is?
Is the problem statement correctly formulated?
Is the list of stakeholders complete and correct?
Does everyone agree on the definition of the system boundaries?
If system boundaries have been expressed using actors, have all actors been
defined and correctly described?
Have you sufficiently explored constraints to be put on the system?
Have you covered all kinds of constraints - for example political, economic, and
environmental?
© Department of Computer Science & Information Science.
37
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
Have all key features of the system been identified and defined?
Will the features solve the problems that are identified?
Are the features consistent with constraints that are identified?
Purpose
The Risk List is designed to capture the perceived risks to the success of the project. It
identifies, in decreasing order of priority, the events that could lead to a significant
negative outcome. It serves as a focal point for project activities and is the basis around
which iterations are organized.
The Risk List is maintained throughout the project. It is created early in the Inception
phase, and is continually updated as new risks are uncovered and existing risks are
mitigated or retired. At a minimum, it is revisited at the end of each iteration, as the
iteration is assessed.
3.1 Introduction:
Requirements engineering process provides the appropriate mechanism for understanding
what the customer wants, analyzing need, assessing feasibility, negotiating a reasonable
solution, specifying the solution unambiguously, validating the specification and
managing the requirements as they are transformed into an operational system. The task
of capturing, structuring, and accurately representing the user's requirements so that they
can be correctly embodied in systems which meet those requirements (i.e. are of good
quality).
Requirements elicitation
Requirements analysis and negotiation
Requirements specification
System modeling
Requirements validation
Requirements management
3.2. Example:
Here is an example to explain all the above. We are taking the system of Green Wood
Company.
3.2.1. Introduction
Green Wood (GW) is a multinational company, which deals in manufacturing, delivery
and selling of sports goods and sports ware throughput the world. GW deals in almost all
types of support goods and has its manufacturing set-up in Sialkot, Pakistan. They have
their own products selling outlets and showrooms throughout the world. They also supply
their goods to other dealers on wholesale ordering basis. Currently GW is managing their
operations manually. GW management has decided to completely automate the whole
business processes of the company. Also in order to increase their sales, GW wants to
have fully automated system, which can support online 24x7 electronic buying and
selling.
GW Supplier Office
It deals in supply of sport goods to their own selling outlets or to other dealers. It also
processes orders from the dealers. Following are some business processes, which are
handled in this department.
Order Management
Customer Account Maintenance
Order Processing
Shipping Department
Product Inventory
Accounts & Administration
CRM
MIS
HRM & Pay Roll
Sales & Marketing
Phase I
Phase I includes following business areas:
Customer Account Maintenance
Order Processing
Product Inventory
Phase II
Phase II involves complete automation of the Supplier Department. Phase II includes
following business areas:
Accounts and Administration
CRM
MIS
HRM and Payroll
Sales and Marketing
Phase III
Phase III covers a complete solution for Green Wood. Phase III includes remaining
business areas which are not developed in previous phases.
This document scope is limited to Phase I only.
Order Management
1. Only registered customer could place order for goods. So a customer must be able to
register himself to the system by requesting for registration. There should have to be two
types of registration process, normal and privileged. Customer should provide his
personal, organizational, authorizer and payment details in the registration request
process. All the requests are to be viewed by the customer account administrator (CA).
CA could accept, reject and temporarily waive the requests on the basis of credentials
provided. If admin accept the registration request, a login information (Password, Id &
role) should be assigned and mailed to the corresponding customer. Similarly customer
could also request for the updating of his record. He could request for different types of
updating e.g. updating of his personal/shipping details, or upgrading of his status from
registered to privileged customer, or updating of his payment methodology. Customer
could also view his details for verification purposes and similarly CA could search any
customer detail and could also view the whole list of currently registered customers.
2. Both registered and privileged customers could order for goods. Customer places an
order by providing his ID and other order related details A complete order must contain
personal details of the customer, shipping information, product list along with product
quantity and payment details. Customer could make payment either through cash or
through a credit card. Accordingly invoice should be generated, and user should be given
the option to finally place the order and in the end confirmation receipt must be given to
the customer. Invoice contains the list of complete product along with their pricing
details. It also contains discounts, sales tax and total pricing details. User could also view
the status of their orders by providing the Order Number. Privileged customers could
also place the request for the updating of their orders if the orders are not shipped. They
could place request for the updating of shipping address and product quantity only.
Similarly the privileged customer could also place the request for the cancellation of the
order. But all these updating and cancellation requests are to be viewed by the Order
Administrator in order to accept, reject, or waive them.
Deals with addition, searching, updating of products and their stocks. Whenever a
product stock arrives, the Inventory Administrator updates the stocks of the products. He
could add new product in the inventory. He could also view, search and modify the
product details. The Admin could view the whole product list and their product
summaries.
Shopping Centre
Deals with customer registration and saver card administration
Also deals with customer buying and returning of goods
Customer Payment
Order Account
Order Product Credit Card
Shipment Cheque
Invoice Request
Product
Perform Refinement:
After over specifying the entities, you have to refine them on the basis of your Business
Logic. For example, in this example we found the following entities more related to our
Business Logic;
Customer Shipment
Inventory Account
3.0 An action event "shall" be generated for a corresponding administrator when a request
is placed for updating of orders or customer details etc
3.0 Corresponding administrator "shall" view his Action List containing different actions,
and correspondingly process these pending actions
3.0 When the action processing is completed or if the action is just a notification message
then administrator "shall" delete these actions from the action list
orders or
customer details
etc
1.0 Mediu CA UC_8 UC_Accept_Customer_Reque
m “shall”accept, UC_9 st
reject and UC_Reject_Customer_Reques
UC_1
temporarily t
0
waive the UC_View_Customer_Request
requests on the
basis of
credentials
provided.
1.0 Mediu System “shall” UC_1 UC_Update_Request
m update the 1
customers
Request
1.0 Mediu System “shall” UC_1 UC_Change_Payment_Details
m process different 2 ,
types of UC_1 UC_Change_Status,
updating e.g. 3 UC_Change_Personal_Details
updating of his UC_1
personal/shippin 4
g details, or
upgrading of his
status from
registered to
privileged
customer, or
updating of his
payment
methodology
1.0 Mediu A customer UC_1 UC_View_Customer_Details
m “shall” view his 5
details for
verification
purposes
1.0 Mediu System “shall” UC_1 UC_Search_Customer
m search any 6
customer details
2.0 Mediu User “shall” UC_1 UC_Serach_Orders
m view the status 7
of their orders
by providing the
Order Number
“shall” delete
these actions
from the action
list
satisfy the goal, as well as sequences that may lead to failure to complete the service
because of exceptional behavior, error handling, etc. The system is treated as a “black
box”, and the interactions with system, including system responses, are as perceived from
outside the system.
Thus, use cases capture who (actor) does what (interaction) with the system, for what
purpose (goal), without dealing with system internals. A complete set of use cases
specifies all the different ways to use the system, and therefore defines all behavior
required of the system, bounding the scope of the system.
Generally, use case steps are written in an easy-to-understand structured narrative using
the vocabulary of the domain. This is engaging for users who can easily follow and
validate the use cases, and the accessibility encourages users to be actively involved in
defining the requirements.
Example:
Brief description
Used to describe the overall intent of the use case. Typically, the brief description is only
a few paragraphs, but it can be longer or shorter as needed. It describes what is
considered the happy path—the functionality that occurs when the use case executes
without errors. It can include critical variations on the happy path, if needed.
Preconditions
Conditionals that must be true before the use case can begin to execute. Note that this
means the author of the use case document does not need to check these conditions
during the basic flow, as they must be true for the basic flow to begin.
Basic flow
Used to capture the normal flow of execution through the use case. The basic flow is
often represented as a numbered list that describes the interaction between an actor and
the system. Decision points in the basic flow branch off to alternate flows. Use case
extension points and inclusions are typically documented in the basic flow.
Alternate flows
Used to capture variations to the basic flows, such as user decisions or error conditions.
There are typically multiple alternate flows in a single use case. Some alternate flows
rejoin the basic flow at a specified point, while others terminate the use case.
Post conditions
Conditions that must be true for the use case to completed. Post conditions are typically
used by the testers to verify that the realization of the use case is implemented correctly.
4.1. Introduction:
Third deliverable is all about the software design. In the previous deliverable, analysis of
the system is completed. So we understand the current situation of the problem domain.
Now we are ready to strive for a solution for the problem domain by using object-
oriented approach. Following artifacts must be included in the 3rd deliverable.
1. Domain Model
2. System Sequence Diagram
3. Sequence Diagram
4. Collaboration Diagram
5. Operation Contracts
6. Design Class Diagram
7. State Transition Diagram
8. Data Model
A product line definition will describe the domains necessary to build systems in the
product line.
It also provides a high-level description of the data that each entity provides. Domain
modeling plays a central role in understanding the current environment and planning for
the future.
The UML system sequence diagram (SSD) illustrates events sequentially input from an
external source to the system. The SSD will define the system events and operations.
System sequence diagrams are a timeline drawing of an expanded use case. Events are
related by time with the top events occurring first. System events are the important items.
These are events that cause a system response.
Use case text may be placed on the left side of the system sequence diagram if desired. If
this is done it is best if the use case information lines up with the events in the system
sequence diagram.
There may be more than one actor to the system. An actor may be an external automated
system that the system may communicate with. Automated actors or robots are shown as
actors with a line horizontally through the head.
A Sequence diagram depicts the sequence of actions that occur in a system. The
invocation of methods in each object, and the order in which the invocation occurs is
captured in a Sequence diagram. This makes the Sequence diagram a very useful tool to
easily represent the dynamic behavior of a system.
A Sequence diagram is two-dimensional in nature. On the horizontal axis, it shows the
life of the object that it represents, while on the vertical axis, it shows the sequence of the
creation or invocation of these objects.
Because it uses class name and object name references, the Sequence diagram is very
useful in elaborating and detailing the dynamic design and the sequence and origin of
invocation of objects. Hence, the Sequence diagram is one of the most widely used
dynamic diagrams in UML.
Class roles
Class roles describe the way an object will behave in context. Use the UML object
symbol to illustrate class roles, but don't list object attributes.
Activation
Activation boxes represent the time an object needs to complete a task.
Messages
Messages are arrows that represent communication between objects. Use half-arrowed
lines to represent asynchronous messages. Asynchronous messages are sent from an
object that will not wait for a response from the receiver before continuing its tasks.
Lifelines
Lifelines are vertical dashed lines that indicate the object's presence over time.
Destroying Objects
Objects can be terminated early using an arrow labeled "< < destroy > >" .
Loops
A repetition or loop within a sequence diagram is depicted as a rectangle. Place the
condition for exiting the loop at the bottom left corner in square brackets [ ].
Objects
An object is shown as a vertical dashed line called the "lifeline". The lifeline represents
the existence of the object at a particular time. An object symbol is drawn at the head of
the lifeline, and shows the name of the object and its class underlined, and separated by a
colon:
objectname: classname
A lifeline can represent an object or its class. Thus, you can use a lifeline to model
both class and object behavior. Usually, however, a lifeline represents all the
objects of a certain class.
An object's class can be unspecified. Normally you create a sequence diagram
with objects first, and specify their classes later.
The objects can be unnamed, but you should name them if you want to
discriminate different objects of the same class.
Several lifelines in the same diagram can represent different objects of the same
class; but, as stated previously, the objects should be named that so you can
discriminate between the two objects.
A lifeline that represents a class can exist in parallel with lifelines that represent
objects of that class. The object name of the lifeline that represents the class can
be set to the name of the class.
Actors
Normally an actor instance is represented by the first (left-most) lifeline in the sequence
diagram, as the invoker of the interaction. If you have several actor instances in the same
diagram, try keeping them either at the left-most, or the right-most lifelines.
Messages
A message is a communication between objects that conveys information with the
expectation that activity will ensue; in sequence diagrams, a message is shown as a
horizontal solid arrow from the lifeline of one object to the lifeline of another object. In
the case of a message from an object to itself, the arrow may start and finish on the same
lifeline. The arrow is labeled with the name of the message, and its parameters. The
arrow may also be labeled with a sequence number to show the sequence of the message
in the overall interaction. Sequence numbers are often omitted in sequence diagrams, in
which the physical location of the arrow shows the relative sequence.
A message can be unassigned, meaning that its name is a temporary string that describes
the overall meaning of the message and is not the name of an operation of the receiving
object. You can later assign the message by specifying the operation of the message's
destination object. The specified operation will then replace the name of the message.
Scripts
Scripts describe the flow of events textually in a sequence diagram.
You should position the scripts to the left of the lifelines so that you can read the
complete flow from top to bottom (see figure above). You can attach scripts to a certain
message, thus ensuring that the script moves with the message.
4.4.3. Example
A sequence diagram that describes part of the flow of events of the use case Place Local
Call in a simple Phone Switch.
Centralized control of a flow of events or part of the flow of events means that a few
objects steer the flow by sending messages to, and receiving messages from other objects.
These controlling objects decide the order in which other objects will be activated in the
use case. Interaction among the rest of the objects is very minor or does not exist.
Example
In the Recycling-Machine System, the use case Print Daily Report keeps track of - among
other things - the number and type of returned objects, and writes the tally on a receipt.
The Report Generator control object decides the order in which the sums will be
extracted and written.
The behavior structure of the use case Print Daily Report is centralized in the Report
Generator control object.
Decentralized control arises when the participating objects communicate directly with
one another, not through one or more controlling objects.
Example
In the use case Send Letter someone mails a letter to another country through a post
office. The letter is first sent to the country of the addressee. In the country, the letter is
sent to a specific city. The city, in turn, sends the letter to the home of the addressee.
The behavior structure of the use case Send Letter is decentralized.
The use case behavior is a decentralized flow of events. The sub-event phases belong
together. The sender of the letter speaks of "sending a letter to someone." He neither
needs nor wants to know the details of how letters are forwarded in countries or cities.
(Probably, if someone were mailing a letter within the same country, not all these actions
would occur.)
The type of control used depends on the application. In general, you should try to achieve
independent objects, that is, to delegate various tasks to the objects most naturally suited
to perform them.
A flow of events with centralized control will have a "fork-shaped" sequence diagram.
On the other hand, a "stairway-shaped" sequence diagram illustrates that the control-
structure is decentralized for the participating objects.
A centralized control structure in a flow of events produces a "fork-shaped" sequence
diagram. A decentralized control structure produces a "stairway-shaped" sequence
diagram.
If the sub-event phases are tightly coupled. This will be the case if the
participating objects:
Form a part-of or consists-of hierarchy, such as Country - State - City;
Form an information hierarchy, such as CEO - Division Manager - Section
Manager;
Represent a fixed chronological progression (the sequence of sub-event phases
will always be performed in the same order), such as Advertisement - Order -
Invoice -Delivery - Payment; or
Form a conceptual inheritance hierarchy, such as Animal - Mammal - Cat.
If you want to encapsulate, and thereby make abstractions of, functionality. This
is good for someone who always wants to use the whole functionality, because the
functionality can become unnecessarily hard to grasp if the behavior structure is
centralized.
A centralized structure is appropriate:
If the order in which the sub-event phases will be performed is likely to change.
If you expect to insert new sub-event phases.
If you want to keep parts of the functionality reusable as separate pieces.
smaller numbers of objects. As the number of objects and messages grows, the diagram
becomes increasingly hard to read. In addition, it is difficult to show additional
descriptive information such as timing, decision points, or other unstructured information
that can be easily added to the notes in a sequence diagram.
A collaboration diagram that describes part of the flow of events of the use case Receive
Deposit Item in the Recycling-Machine System.
Objects
An object is represented by an object symbol showing the name of the object and its class
underlined, separated by a colon:
objectname : classname
You can use objects in collaboration diagrams in the following ways:
An object's class can be unspecified. Normally you create a collaboration diagram with
objects first and specify their classes later.
The objects can be unnamed, but you should name them if you want to discriminate
different objects of the same class.
An object's class can itself be represented in a collaboration diagram, if it actively
participates in the collaboration.
Actors
Normally an actor instance occurs in the collaboration diagram, as the invoker of the
interaction. If you have several actor instances in the same diagram, try keeping them in
the periphery of the diagram.
Links
Links are defined as follows:
A link is a relationship among objects across which messages can be sent. In
collaboration diagrams, a link is shown as a solid line between two objects.
An object interacts with, or navigates to, other objects through its links to these objects.
A link can be an instance of an association, or it can be anonymous, meaning that its
association is unspecified.
Message flows are attached to links.
Messages
A message is a communication between objects that conveys information with the
expectation that activity will ensue. In collaboration diagrams, a message is shown as a
labeled arrow placed near a link. This means that the link is used to transport, or
otherwise implement the delivery of the message to the target object. The arrow points
along the link in the direction of the target object (the one that receives the message). The
arrow is labeled with the name of the message, and its parameters. The arrow may also be
labeled with a sequence number to show the sequence of the message in the overall
interaction. Sequence numbers are often used in collaboration diagrams, because they are
the only way of describing the relative sequencing of messages.
A message can be unassigned, meaning that its name is a temporary string that describes
the overall meaning of the message. You can later assign the message by specifying the
operation of the message's destination object. The specified operation will then replace
the name of the message.
Name: appropriateName
Exceptions: none
When making an operation contract, think of the state of the system before the action
(snapshot) and the state of the system after the action (a second snapshot). The conditions
both before and after the action should be described in the operation contract. Do not
describe how the action or state changes were done. The pre and post conditions describe
state, not actions.
Typical postcondion changes:
The design of boundary classes depends on the user interface (or GUI) development tools
available to the project. Using current technology, it is quite common that the user
interface is visually constructed directly in the development tool, thereby automatically
creating user interface classes that need to be related to the design of control and/or entity
classes. If the GUI development environment automatically creates the supporting classes
it needs to implement the user interface, there is no need to consider them in design - only
design what the development environment does not create for you.
Additional input to this work are sketches, or screen dumps from an executable user-
interface prototype, that may have been created to further specify the requirements made
on the boundary classes.
Boundary classes which represent the interfaces to existing systems are typically modeled
as subsystems, since they often have complex internal behavior. If the interface behavior
is simple (perhaps acting as only a pass-through to an existing API to the external
system) one may choose to represent the interface with one or more design classes. If this
route is chosen, use a single design class per protocol, interface, or API, and note special
requirements about used standards and so on in the special requirements of the class.
Complexity:
Simple controlling or coordinating behavior can be handled by boundary and/or entity
classes. As the complexity of the application grows, however, significant drawbacks to
this approach surface:
The use case coordinating behavior becomes imbedded in the UI, making it more
difficult to change the system.
The same UI cannot be used in different use case realizations without difficulty.
The UI becomes burdened with additional functionality, degrading its
performance.
The entity objects may become burdened with use-case specific behavior,
reducing their generality.
To avoid these problems, control classes are introduced to provide behavior related to
coordinating flows-of-events
Change probability
If the probability of changing flows of events is low, or the cost is negligible, the extra
expense and complexity of additional control classes may not be justified.
Transaction management:
Managing transactions is a classic coordination activity. Absent a framework to handle
transaction management, one would have one or more transaction manager classes which
would interact to ensure that the integrity of transactions is maintained.
Note that in the latter two cases, if the control class represents a separate thread of control
it may be more appropriate to use an active class to model the thread of control.
Example
The analysis mechanism for persistency might be realized by one of the following design
mechanisms:
In-memory storage
Flash card
Binary file
Database Management System (DBMS)
Identify Operations
To identify Operations on design classes:
Study the responsibilities of each corresponding analysis class, creating an
operation for each responsibility. Use the description of the responsibility as the
initial description of the operation.
Study the use-case realizations in the class participates to see how the operations
are used by the use-case realizations. Extend the operations, one use-case
realization at the time, refining the operations, their descriptions, return types and
parameters. Each use-case realization's requirements as regards classes are
textually described in the Flow of Events of the use-case realization.
Study the use case Special Requirements, to make sure that you do not miss
implicit requirements on the operation that might be stated there.
Operations are required to support the messages that appear on sequence diagrams
because scripts; messages (temporary message specifications) which have not yet been
assigned to operations describe the behavior the class is expected to perform. An example
sequence diagram is shown below:
Operation name:
The name should be short and descriptive of the result the operation achieves.
The names of operations should follow the syntax of the implementation language.
Example: find_location would be acceptable for C++ or Visual Basic, but not for
Smalltalk (in which underscores are not used); a better name for all would be
findLocation.
Avoid names that imply how the operation is performed (example: Employee.wages() is
better than Employee.calculateWages(), since the latter implies a calculation is
performed. The operation may simply return a value in a database).
The name of an operation should clearly show its purpose. Avoid unspecific names, such
as getData, that are not descriptive about the result they return. Use a name that shows
exactly what is expected, such as getAddress. Better yet, simply let the operation name be
the name of the property which is returned or set; if it has a parameter, it sets the
property, if it has no parameter it gets the property. Example: the operation address
returns the address of a Customer, while address(aString) sets or changes the address of
the Customer. The 'get' and 'set' nature of the operation are implicit from the signature of
the operation.
© Department of Computer Science & Information Science.
73
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
Operations that are conceptually the same should have the same name even if different
classes define them, they are implemented in entirely different ways, or they have a
different number of parameters. An operation that creates an object, for example, should
have the same name in all classes.
If operations in several classes have the same signature, the operation must return the
same kind of result, appropriate for the receiver object. This is an example of the concept
of polymorphism, which says that different objects should respond to the same message
in similar ways. Example: the operation name should return the name of the object,
regardless how the name is stored or derived. Following this principle makes the model
easier to understand.
A short description:
As meaningful as we try to make it, the name of the operation is often only vaguely
useful in trying to understand what the operation does. Give the operation a short
description consisting of a couple of sentences, written from the operation user's
perspective.
The parameters. For each parameter, create a short descriptive name, decide on its class,
and give it a brief description. As you specify parameters, remember that fewer
parameters mean better reusability. A small number of parameters makes the operation
easier to understand and hence there is a higher likelihood of finding similar operations.
You may need to divide an operation with many parameters into several operations. The
operation must be understandable to those who want to use it. The brief description
should include the following:
The meaning of the parameters (if not apparent from their names).
Whether the parameter is passed by value or by reference
Parameters which must have values supplied
Parameters which can be optional, and their default values if no value is provided
Valid ranges for parameters (if applicable)
What is done in the operation.
Which by reference parameters are changed by the operation.
Once you have defined the operations, complete the sequence diagrams with information
about which operations are invoked for each message.
Choose the most restricted visibility possible which can still accomplish the objectives of
the operation. In order to do this, look at the sequence diagrams, and for each message
determine whether the message is coming from a class outside the receiver's package
(requires public visibility), from inside the package (requires implementation visibility),
from a subclass (requires protected visibility) or from the class itself or a friend (requires
private visibility).
The requirements will naturally vary from case to case. However, the method
specifications for a class should always state:
The black diamond represents composition. It is placed on the Circle class because it is
the Circle that is composed of a Point. The arrowhead on the other end of the relationship
denotes that the relationship is navigable in only one direction. That is, Point does not
know about Circle. In UML relationships are presumed to be bidirectional unless the
arrowhead is present to restrict them. Had I omitted the arrowhead, it would have meant
that Point knew about Circle. At the code level, this would imply a #include “circle.h”
within point.h. For this reason, I tend to use a lot of arrowheads.Composition
relationships are a strong form of containment or aggregation. Aggregation is a
whole/part relationship. In this case, Circle is the whole, and Point is part of Circle. How-
ever, composition is more than just aggregation. Composition also indicates that the
lifetime of Point is dependent upon Circle. This means that if Circle is destroyed, Point
will be destroyed with it. For those of you who are familiar with the Booch-94 notation,
this is the Has-by-value relationship.
In C++ we would represent this as shown in Listing 1.In this case we have represented
the composition relationship as a member variable. We could also have used a pointer so
long as the destructor of Circle deleted the pointer.
Inheritance Relationship
A peculiar triangular arrowhead depicts the inheritance relationship in UML. This
arrowhead, that looks rather like a slice of pizza, points to the base class. One or more
lines proceed from the base of the arrowhead connecting it to the derived classes. Figure
shows the form of the inheritance relationship. In this diagram we see that Circle and
Square both derive from Shape. Note that the name of class Shape is shown in italics.
This indicates that Shape is an abstract class. Note also that the operations, Draw () and
Erase () are also shown in italics. This indicates that they are pure virtual.
Italics are not always very easy to see. Therefore, as shown in Figure, an abstract class
can also be marked with the {abstract} property. What’s more, though it is not a standard
part of UML, I will often write Draw()=0 in the operations compartment to denote a pure
virtual function.
Aggregation / Association
The weak form of aggregation is denoted with an open diamond. This relationship enotes
that the aggregate class (the class with the white diamond touching it) is in some way the
“whole”, and the other class in the relationship is somehow “part” of that whole. Figure
shows an aggregation relationship. In this case, the Window class contains many Shape
instances. In UML the ends of a relationship are referred to as its “roles”. Notice that the
role at the Shape end of the aggregation is marked with a “ *”. This indicates that the
Window contains many Shape instances. Notice also that the role has been named. This is
the name that Window knows its Shape instances by. i.e. it is the name of the instance
variable within Window that holds all the Shapes.
There are other forms of containment that do not have whole / part implications. For
example, each window refers back to its parent Frame. This is not aggregation since it is
not reasonable to consider a parent Frame to be part of a child Window. We use the
association relationship to depict this.
Figure shows how we draw an association. An association is nothing but a line drawn
between the participating classes. In Figure 6 the association has an arrowhead to denote
that Frame does not know anything about Window. Once again note the name on the role.
This relationship will almost certainly be implemented with a pointer of some kind.
What is the difference between an aggregation and an association? The difference is one
of implication. Aggregation denotes whole/part relationships whereas associations do not.
However, there is not likely to be much difference in the way that the two relationships
are implemented. That is, it would be very difficult to look at the code and determine
whether a particular relationship ought to be aggregation or association. For this reason, it
is pretty safe to ignore the aggregation relationship altogether. As the amigos said in the
UML 0.8 document: “...if you don’t understand [aggregation] don’t use it.” Aggregation
and Association both correspond to the Has-by-reference relationship from the Booch-94
notation.
Dependency
Sometimes the relationship between a two classes is very weak. They are not
implemented with member variables at all. Rather they might be implemented as member
function arguments. Consider, for example, the Draw function of the Shape class.
Suppose that this function takes an argument of type Drawing Context.
Figure shows a dashed arrow between the Shape class and the DrawingContext class.
This is the dependency relationship. In Booch94 this was called a ‘using’ relationship.
This relationship simply means that Shape somehow depends upon DrawingContext. In
C++ this almost always results in a #include.
Interfaces
There are classes that have nothing but pure virtual functions. In Java such entities are not
classes at all; they are a special language element called an interface. UML has followed
the Java example and has created some special syntactic elements for such entities. The
primary icon for an interface is just like a class except that it has a special denotation
called a stereotype. Figure shows this icon. Note the «type» string at the top of the class.
The two surrounding characters “«»” are called guillemots (pronounced Gee-may). A
word or phrase surrounded by guillemots is called a “stereotype”. Stereotypes are one of
the mechanisms that can be used to extend UML. When a stereotype is used above the
name of a class it indicates that this class is a special kind of class that conforms to a
rather rigid specification. The «type» stereotype indicates that the class is an interface.
This means that it has no member variables, and that all of its member functions are pure
virtual. UML supplies a shortcut for «type» classes. Figure 9 shows how the “lollypop”
notation can be used to represent an interface. Notice that the dependency between Shape
and DrawingContext is shown as usual. The class WindowsDC is derived from, or
conforms to, the Drawingcontext interface. This is a shorthand notation for an inheritance
relationship between
© Department of Computer Science & Information Science.
79
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
Each state transition event can be associated with an operation. Depending on the object's
state, the operation may have a different behavior; the transition events describe how this
occurs.
The method description for the associated operation should be updated with the state-
specific information, indicating, for each relevant state, what the operation should do.
States are often represented using attributes; the statechart diagrams serve as input into
the attribute identification step.
Example
A company has several departments. Each department has a supervisor and at least one
employee. Employees must be assigned to at least one, but possibly more departments. At
least one employee is assigned to a project, but an employee may be on vacation and not
assigned to any projects. The important data fields are the names of the departments,
projects, supervisors and employees, as well as the supervisor and employee number and
a unique project number.
1. Identify Entities
The entities in this system are Department, Employee, Supervisor and Project. One is
tempted to make Company an entity, but it is a false entity because it has only one
instance in this problem. True entities must have more than one instance.
2. Find Relationships
We construct the following Entity Relationship Matrix:
4. Fill in Cardinality
From the description of the problem we see that:
Each department has exactly one supervisor.
A supervisor is in charge of one and only one department.
Each department is assigned at least one employee.
Each employee works for at least one department.
Each project has at least one employee working on it.
An employee is assigned to 0 or more projects.
There are two many-to-many relationships in the rough ERD above, between Department
and Employee and between Employee and Project. Thus we need the associative entities
Department-Employee and Employee-Project. The primary key for Department-
Employee is the concatenated key Department Name and Employee Number. The
primary key for Employee-Project is the concatenated key Employee Number and Project
Number.
7. Identify Attributes
The only attributes indicated are the names of the departments, projects, supervisors and
employees, as well as the supervisor and employee NUMBER and a unique project
number.
8. Map Attributes
Name Name
Project Project
Number
9. Draw Fully Attributed ERD
5.1. Introduction:
Analysis & Design Model for structured approach must contain following artifacts:
Example:
Cardinality
From the description of the problem we see that:
Each department has exactly one supervisor.
A supervisor is in charge of one and only one department.
Each department is assigned at least one employee.
Each employee works for at least one department.
Each project has at least one employee working on it.
An employee is assigned to 0 or more projects.
Identify Attributes
The only attributes indicated are the names of the departments, projects, supervisors and
employees, as well as the supervisor and employee NUMBER and a unique project
number.
DFD Constructs:
A context diagram shows the context into which the business process fits. It also shows
the overall business process as just one process and shows all the outside entities that
receive information from or contribute information to the system.
Level 1 Diagram
This diagram shows all the processes that comprise the overall system and how
information moves from and to each process. Data stores are added to it.
Level 2 Diagram
This diagram shows all the processes that comprise a single process on the level 1
diagram and how information moves from and to each of these processes. It also shows in
more detail the content of higher-level process. Level 2 diagrams may not be needed for
all level 1 processes.
Level 3 Diagram
This diagram shows all processes that comprise a single process on the level 2 diagram
and how information moves from and to each of these processes. Level 3 diagrams may
not be needed for all level 2 processes. Correctly numbering each process helps the user
understand where the process fits into the overall system.
Level 1 DFD
State
A set of observable circum-stances that characterizes the behavior of a system at a given
time
State transition
The movement from one state to another
Event
An occurrence that causes the system to exhibit some predictable form of behavior
Action
Process that occurs as a consequence of making a transition
Example
Full
power Full power
do: set power
= 600
Timer
Waiting
Number
do: display Operation
time Full Set time
power do: get number do: operate
exit: set time oven
Half
Half power
Door
power Cancel
Timer closed
Door Start
open Door
Half power Enabled open Waiting
do: set power Door do: display do: display
= 300 closed 'Ready' time
Disabled
do: display
'Waiting'
Two major structural patterns or two major alternatives are Transform (Flow) Analysis
and Transaction (Flow) Analysis.
Example
There is a string conversion system.
It has the ability to reverse strings, count number of characters, and append new
strings with an old string.
A user would be using this system and would be providing the string to it. The
string would be validated. If approved the system would be displaying different
choices including reversal of string, character counting and appending of strings.
The user would select a choice and enter the appropriate selection. According to
the selected choice the system would perform the required action.
If “Reverse String” is selected the valid string is attained and reversed.
If “Count Characters” is selected the valid string is attained and the number of
characters are counted.
If “Append String” is selected the valid string is attained and the user also enters a
new string. Both the strings are appended together and the result produced.
Whatever the choice selected the result is displayed.
Level 1 DFD
Level 2 DFD
String Conversion
Executive Append
String
Display Controlle
Choices r
Flow chart
Box Diagram
Decision Table
Psuedocode
6.1. Introduction
1. Site maps
2. Storyboards
3. Navigational maps
4. Traceability Matrix
As web sites get more complicated, an index or site map is going to become more and
more valuable and essential to the navigation of a good site.
HOW?
Use a grid that puts the graphic representation above and the verbal description
below
Begin with loose thumbnail sketches and drawing for early design concepts.
Refine with tighter drawings and screen designs for presentation and testing.
Describe the interaction details and emotional responses verbally when no visual
representation is effective
Keep the medium loose and flexible in the conceptual design phase
These are the detailed screens, which pictorially represent the complete view of the
screens. There would be symbols representing the different elements of the screens and in
the end an index that would detail the symbols. Sample is given on the next page.
S2: T1:
Username
S3: T2:
Password
B1: Submit
7.1 Introduction:
This deliverable is based on the IEEE standard of software testing i.e. IEEE SOFTWARE
TEST DOCUMENTATION Std 829-1998. This standard describes a set of basic test
documents that are associated with the dynamic aspects of software testing (i.e., the
execution of procedures and code). The standard defines the purpose, outline, and content
of each basic document. While the documents described in the standard focus on dynamic
testing, several of them may be applicable to other testing activities (e.g., the test plan
and test incident report may be used for design and code reviews). This standard may be
applied to commercial, scientific, or military software that runs on any digital computer.
Applicability is not restricted by the size, complexity, or criticality of the software.
However, the standard does not specify any class of software to which it must be applied.
The standard addresses the documentation of both initial development testing and the
testing of subsequent software releases. For a particular software release, it may be
applied to all phases of testing from module testing through user acceptance. However,
since all of the basic test documents may not be useful in each test phase, the particular
documents to be used in a phase are not specified. Each organization using the standard
will need to specify the classes of software to which it applies and the specific documents
required for a particular test phase.
The standard does not call for specific testing methodologies, approaches, techniques,
facilities, or tools, and does not specify the documentation of their use. Additional test
documentation may be required (e.g., code inspection checklists and reports). The
standard also does not imply or impose specific methodologies for documentation
control, configuration management, or quality assurance. Additional documentation (e.g.,
a quality assurance plan) may be needed depending on the particular methodologies used.
7.2.1. Purpose
To prescribe the scope, approach, resources, and schedule of the testing activities. To
identify the items being tested, the features to be tested, the testing tasks to be performed,
the personnel responsible for each task, and the risks associated with this plan.
7.2.2. Outline
A test plan shall have the following structure:
The sections shall be ordered in the specified sequence. Additional sections may be
included immediately prior to Approvals. If some or all of the content of a section is in
another document, then a reference to that material may be listed in place of the
corresponding content. The referenced material must be attached to the test plan or
available to users of the plan.
Details on the content of each section are contained in the following sub-clauses.
7.2.2.2. Introduction
Summarize the software items and software features to be tested. The need for each item
and its history may be included. References to the following documents, when they exist,
are required in the highest-level test plan:
a. Project authorization;
b. Project plan;
c. Quality assurance plan;
d. Configuration management plan;
e. Relevant policies;
f. Relevant standards.
In multilevel test plans, each lower-level plan must reference the next higher-level plan.
logical or physical transformations before testing can begin (e.g., programs must be
transferred from tape to disk).
a) Requirements specification
b) Design specification
c) Users guide
d) Operations guide
e) Installation guide
Reference any incident reports relating to the test items. Items that are to be specifically
excluded from testing may be identified.
7.2.2.6. Approach
Describe the overall approach to testing. For each major group of features or feature
combinations, specify the approach that will ensure that these feature groups are
adequately tested. Specify the major activities, techniques, and tools that are used to test
the designated groups of features.
The approach should be described in sufficient detail to permit identification of the major
testing tasks and estimation of the time required to do each one.
Specify the minimum degree of comprehensiveness desired. Identify the techniques that
will be used to judge the comprehensiveness of the testing effort (e.g., determining which
statements have been executed at least once). Specify any additional completion criteria
(e.g., error frequency). The techniques to be used to trace requirements should be
specified. Identify significant constraints on testing such as test item availability, testing
resource availability, and deadlines.
Identify any other testing needs (e.g., publications or office space). Identify the source for
all needs that are not currently available to the test group.
7.2.2.12. Responsibilities
Identify the groups responsible for managing, designing, preparing, executing,
witnessing, checking, and resolving. In addition, identify the groups responsible for
providing the test items identified in 7.2.2.3 and the environmental needs identified in
7.2.2.11.
These groups may include the developers, testers, operations staff, user representatives,
technical support staff, data administration staff, and quality support staff.
7.2.2.14. Schedule
Include test milestones identified in the software project schedule as well as all item
transmittal events.
Define any additional test milestones needed. Estimate the time required to do each
testing task. Specify the schedule for each testing task and test milestone. For each testing
resource (i.e., facilities, tools, and staff), specify its periods of use.
7.2.2.16 Approvals
Specify the names and titles of all persons who must approve this plan. Provide space for
the signatures and dates.
7.3.1. Purpose
To prescribe the scope, approach, resources, and schedule of the testing activities. To
identify the items being tested, the features to be tested, the testing tasks to be performed,
the personnel responsible for each task, and the risks associated with this plan.
7.3.2. Outline
A test plan shall have the following structure:
The sections shall be ordered in the specified sequence. Additional sections may be
included immediately prior to Approvals. If some or all of the content of a section is in
another document, then a reference to that material may be listed in place of the
corresponding content. The referenced material must be attached to the test plan or
available to users of the plan.
Details on the content of each section are contained in the following sub-clauses.
7.3.2.2. Introduction
Summarize the software items and software features to be tested. The need for each item
and its history may be included. References to the following documents, when they exist,
are required in the highest-level test plan:
a. Project authorization
b. Project plan
c. Quality assurance plan
d. Configuration management plan
e. Relevant policies
f. Relevant standards
In multilevel test plans, each lower-level plan must reference the next higher-level plan.
a. Requirements specification
b. Design specification
c. Users guide
d. Operations guide
e. Installation guide
Reference any incident reports relating to the test items. Items that are to be specifically
excluded from testing may be identified.
7.3.2.6. Approach
Describe the overall approach to testing. For each major group of features or feature
combinations, specify the approach that will ensure that these feature groups are
adequately tested. Specify the major activities, techniques, and tools that are used to test
the designated groups of features.
Specify any additional completion criteria (e.g., error frequency). The techniques to be
used to trace requirements should be specified. Identify significant constraints on testing
such as test item availability, testing resource availability, and deadlines.
Test input data and test output data should be identiÞed as deliverables. Test tools (e.g.,
module drivers and stubs) may also be included.
hardware, the communications and system software, the mode of usage (e.g., stand-
alone), and any other software or supplies needed to support the test. Also specify the
level of security that must be provided for the test facilities, system software, and
proprietary components such as software, data, and hardware. Identify special test tools
needed.
Identify any other testing needs (e.g., publications or office space). Identify the source for
all needs that are not currently available to the test group.
7.3.2.12. Responsibilities
Identify the groups responsible for managing, designing, preparing, executing,
witnessing, checking, and resolving. In addition, identify the groups responsible for
providing the test items identified in 7.2.2.3 and the environmental needs identified in
7.3.2.11.
These groups may include the developers, testers, operations staff, user representatives,
technical support staff, data administration staff, and quality support staff.
7.3.2.14. Schedule
Include test milestones identified in the software project schedule as well as all item
transmittal events. Define any additional test milestones needed. Estimate the time
required to do each testing task. Specify the schedule for each testing task and test
milestone. For each testing resource (i.e., facilities, tools, and staff), specify its periods of
use.
7.3.2.16. Approvals
Specify the names and titles of all persons who must approve this plan. Provide space for
the signatures and dates.
7.4.1. Purpose
To define a test case identified by a test design specification.
7.4.2. Outline
A test case specification shall have the following structure:
b. Test items
c. Input specifications
d. Output specifications
e. Environmental needs
f. Special procedural requirements
g. Inter case dependencies
The sections shall be ordered in the specified sequence. Additional sections may be
included at the end. If some or all of the content of a section is in another document, then
a reference to that material may be listed in place of the corresponding content. The
referenced material must be attached to the test case specification or available to users of
the case specification. Since a test case may be referenced by several test design
specifications used by different groups over a long time period, enough specific
information must be included in the test case specification to permit reuse.
Details on the content of each section are contained in the following sub-clauses.
7.4.2.5.1. Hardware
Specify the characteristics and configurations of the hardware required to execute this test
case (e.g., 132 character´ 24 line CRT).
7.4.2.5.2. Software
Specify the system and application software required to execute this test case. This may
include system software such as operating systems, compilers, simulators, and test tools.
In addition, the test item may interact with application software.
7.4.2.5.3. Other
Specify any other requirements such as unique facility needs or specially trained
personnel.
7.5.1. Purpose
To specify the steps for executing a set of test cases or, more generally, the steps used to
analyze a software item in order to evaluate a set of features.
7.5.2 Outline
A test procedure specification shall have the following structure:
The sections shall be ordered in the specified sequence. Additional sections, if required,
may be included at the end. If some or all of the content of a section is in another
document, then a reference to that material may be listed in place of the corresponding
content. The referenced material must be attached to the test procedure specification or
available to users of the procedure specification.
Details on the content of each section are contained in the following sub clauses.
7.5.2.2. Purpose
Describe the purpose of this procedure. If this procedure executes any test cases, provide
a reference for each of them. In addition, provide references to relevant sections of the
test item documentation (e.g., references to usage procedures).
7.5.2.4.1. Log
Describe any special methods or formats for logging the results of test execution, the
incidents observed, and any other events pertinent to the test (see Clauses 9 and 10).
7.5.2.4.2. Set up
Describe the sequence of actions necessary to prepare for execution of the procedure.
7.5.2.4.3. Start
Describe the actions necessary to begin execution of the procedure.
7.5.2.4.4. Proceed
Describe any actions necessary during execution of the procedure.
7.5.2.4.5. Measure
Describe how the test measurements will be made (e.g., describe how remote terminal
response time is to be measured using a network simulator).
7.5.2.4.7. Restart
Identify any procedural restart points and describe the actions necessary to restart the
procedure at each of these points.
7.5.2.4.8. Stop
Describe the actions necessary to bring execution to an orderly halt.
7.5.2.4.9. Wrap up
Describe the actions necessary to restore the environment.
7.5.2.4..10. Contingencies
Describe the actions necessary to deal with anomalous events that may occur during
execution.
7.6.2. Outline
A test item transmittal report shall have the following structure:
The sections shall be ordered in the specified sequence. Additional sections may be
included just prior to Approvals. If some or all of the content of a section is in another
document, then a reference to that material may be listed in place of the corresponding
content. The referenced material must be attached to the test item transmittal report or
available to users of the transmittal report.
Details on the content of each section are contained in the following sub clauses.
7.6.2.3. Location
Identify the location of the transmitted items. Identify the media that contain the items
being transmitted. When appropriate, indicate how specific media are labeled or
identified.
7.6.2.4. Status
Describe the status of the test items being transmitted. Include deviations from the item
documentation, from previous transmittals of these items, and from the test plan. List the
incident reports that are expected to be resolved by the transmitted items. Indicate if there
are pending modifications to item documentation that may affect the items listed in this
transmittal report.
7.6.2.5. Approvals
Specify the names and titles of all persons who most approve this transmittal. Provide
space for the signatures and dates.
7.7.2. Outline
A test log shall have the following structure:
a. Test log identifier;
b. Description;
c. Activity and event entries.
The sections shall be ordered in the specified sequence. Additional sections may be
included at the end. If some or all of the content of a section is in another document, then
a reference to that material may be listed in place of the corresponding content. The
referenced material must be attached to the test log or available to users of the log.
Details on the content of each section are contained in the following sub clauses.
7.7.2.2. Description
Information that applies to all entries in the log except as specifically noted in a log entry
should be included here. The following information should be considered:
Identify the items being tested including their version/revision levels. For each of
these items, supply a reference to its transmittal report, if it exists.
Identify the attributes of the environments in which the testing is conducted.
Include facility identification, hardware being used (e.g., amount of memory
being used, CPU model number, and number and model of tape drives, and/or
mass storage devices), system software used, and resources available (e.g., the
amount of memory available).
7.8.1. Purpose
To document any event that occurs during the testing process that requires investigation.
7.8.2. Outline
A test incident report shall have the following structure:
The sections shall be ordered in the specified sequence. Additional sections may be
included at the end. If some or all of the content of a section is in another document, then
a reference to that material may be listed in place of the corresponding content. The
referenced material must be attached to the test incident report or available to users of the
incident report.
Details on the content of each section are contained in the following sub clauses.
7.8.2.2. Summary
Summarize the incident. Identify the test items involved indicating their version/revision
level. References to
the appropriate test procedure specification, test case specification, and test log should be
supplied.
Related activities and observations that may help to isolate and correct the cause of the
incident should be included (e.g., describe any test case executions that might have a
bearing on this particular incident and any variations from the published test procedure).
7.8.2.4.Impact
If known, indicate what impact this incident will have on test plans, test design
specifications, test procedure specifications, or test case specifications.
7.9.1. Purpose
To summarize the results of the designated testing activities and to provide evaluations
based on these results.
7.9.2. Outline
A test summary report shall have the following structure:
a. Test summary report identifier
b. Summary
c. Variances
d. Comprehensive assessment
e. Summary of results
f. Evaluation
g. Summary of activities
h. Approvals
The sections shall be ordered in the specified sequence. Additional sections may be
included just prior to Approvals. If some or all of the content of a section is in another
document, then a reference to that material may be listed in place of the corresponding
content. The referenced material must be attached to the test summary report or available
to users of the summary report.
© Department of Computer Science & Information Science.
116
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
Details on the content of each section are contained in the following sub clauses.
7.9.2.2. Summary
Summarize the evaluation of the test items. Identify the items tested, indicating their
version/revision level. Indicate the environment in which the testing activities took place.
For each test item, supply references to the following documents if they exist: test plan,
test design specifications, test procedure specifications, test item transmittal reports, test
logs, and test incident reports.
7.9.2.3. Variances
Report any variances of the test items from their design specifications. Indicate any
variances from the test plan, test designs, or test procedures. Specify the reason for each
variance.
7.9.2.6. Evaluation
Provide an overall evaluation of each test item including its limitations. This evaluation
shall be based upon the test results and the item level pass/fail criteria. An estimate of
failure risk may be included.
7.9.2.8. Approvals
Specify the names and titles of all persons who must approve this report. Provide space
for the signatures and dates.
Appendixes:
1.1. Introduction
What is user-centered design?
"A user interface is an interface that enables information to be passed between a human
user and hardware or software components of a computer system."
There is no clear consensus on what constitutes user-centered design. However, John
Gould and his colleagues at IBM developed an approach in the 1980’s called Design for
Usability, which encompasses most commonly-accepted definitions. It developed from
practical experience on a number of interactive systems, most notably IBM’s 1984
Olympic Messaging System. The approach has four main components as described
below.
In the Rational Unified Process (RUP), workshops are used at several key stages, but
these must be complemented by the kinds of activities Gould describes if an accurate
picture is to be differently from how they do it. Commonly performed tasks and
seemingly unimportant details such as placement of work or the existence of
"mysterious" scraps of paper are often forgotten, or omitted because they are not
"officially" part of the current process.)
1.6. Guidelines
Following guidelines must be kept in mind while working on user interface design:
User Control
The user must feel like he or she is controlling the application, rather than feeling
controlled by the application. To accommodate this perspective, the application must be
able to respond to any appropriate task requests at any time. For example, if any process
demands some processing time we can show progress bar on the status bar.
The user must control every thing about an application, including things like colors,
fonts, and so on.
Directness
User should be able to see the direct results of actions that they take in your applications,
for example, if your user wants to print a document, he or she will need to drag the
document’s icon to a printer. The pictures on your icons and text on icons must explain
functions to which that belong.
Consistency
An application must be consistent with the operating System. Windows provides
numerous features that can aid in consistency, including standard menus, icons, and
dialogs. For example file open and save file dialog are same most of the applications
designed for windows.
An application must also be internally consistent. For example, fonts, text boxes, colors,
messages, size, and optional marks action etc.
Forgiveness
Your software applications must be very forgiving to users who undoubtedly will make
errors. For example user can click cross button on the title bar of the window by mistake
word handles this situation by asking user once again.
Application must handle wrong entries to the application and guide students by
displaying some messages.
Application must be terminated properly
Feedback
Your application should appropriately communicate with your users and inform them
when the application is finished, busy, or in any other critical status.
These cues can be combination of both visual and audio, increasing the likelihood that
users understand them.
We can use change in mouse pointer, color variation, Message boxes and progress bar.
Status bar with proper message is also a good way to do this act.
Aesthetics
Users accept an interface to be visually appealing.
Graphics are now an essential element of interface design.
Place alike elements together, watch spacing of the spacing of interface elements so that
the screen does not appear too spread out.
Try to place graphics relevant to action on user interface.
© Department of Computer Science & Information Science.
121
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
(A primary window in Microsoft® Outlook, showing a mail box. It contains objects like
mail messages.)
A composite object in a user interface is an object that is visually composed of
other objects. For example, a paragraph is a composite of characters, or a complex
drawing object is a composite of more primitive drawing objects.
Secondary windows support the primary windows by providing details (such as
properties) about their objects, and operations on those objects.
Only a few of the objects' properties are normally shown in the primary window.
Properties of an object can be viewed by opening a property window (which is a
secondary window) that shows all the attributes of an object.
The user can often change the attributes by controls such as toggle and radio
buttons, scales, combo boxes, and text fields.
Note that there is a fine, and sometimes quite artificial, line between primary windows
and secondary windows-they may display the same levels of complexity. For example,
compare the document window shown above with the mail window: the document
window is considered primary, whereas the mail window is considered secondary.
However, two main differences between primary and secondary windows are:
1. Primary windows are often considered to be more important to the application
since they need to provide extensive usability. Therefore, development efforts
tend to be more focused on the primary windows.
2. Secondary windows are often displayed by navigating through primary windows,
and not vice versa.
In addition to property windows, there are other types of secondary windows, such as
dialog boxes, message boxes, palettes, and pop-up windows.
(A dialog box in Microsoft® Word™ 97, providing a find operation among paragraphs
and characters)
Many applications are filebased. Users can start these applications with the Open
operation on a file object (for example, by double-clicking a file icon in a folder). Their
primary window shows the objects stored in that file. Common operations on files are
Save, Save As, Open, New, which can usually be selected through a file menu in the
primary window. The primary window can also usually display multiple files (also called
Multiple Document Interface, or MDI), thereby allowing the user to switch between
different files.
(A file management window in Microsoft® Windows 95, showing files and folders.)
Visual Dimensions
The key to really usable primary windows is to use the visual dimensions when
visualizing the contained objects and their attributes. The advantages of presenting more
attributes than are necessary for identification are that:
The user avoids window navigation overhead since you decrease the number of
windows that must be shown (when the user needs to see an attribute that is
presented in the primary window).
The user can see the different aspects (of different objects) at the same time,
which is often useful for comparisons and for starting to recognize patterns. A
good use of the visual dimensions can encourage users to develop an entirely new
fingertip feeling for their work.
These dimensions are presented below. However, beware of the available screen area
when designing the visualization of the objects. Try to make the overhead when
exploiting the screen area as small as possible, and consider if using several visual
dimensions is worth the extra expenditure of screen area. Maybe the user is better served
by just a list of names, because what the user really needs is to see as many objects as
possible.
Note that it is important to use these visual dimensions, or extend them, to be able to
uniquely identify objects.
Also note that the visual dimensions can be used in correlation with the time dimension,
for example by moving objects (their position is changed through time), or by changing
the shape or color of objects (their state is changed through time).
Position
The most intuitive aspects that position can present are real-world positions. Examples
are:
Geographical Information Systems (GIS) that display a map on which you present
the objects on the same longitude and latitude as they have in the real world;
Computer Aided Design (CAD) programs that present the objects and their
environment exactly according to their real-world coordinates;
"What You See Is What You Get" (WYSIWYG) editors that display the objects
(characters) in the same location on the window as they will appear on a paper printout.
Sometimes it is relevant to show real-world size (the CAD-program and WYSIWYG
editor examples), and sometimes it is not (for example, when the size of the objects is
much smaller than the distance between the objects).
For example, imagine we have a flight booking system where the user must enter
destinations. A possible presentation for this would be to display a map containing the
different airports (where an airport is an object). Naturally, since the real-world sizes of
the airports are irrelevant (as well as too small to be seen), all airports are shown as icons
that are the same size.
This example also illustrates that real-world positions can be used even if they are not
relevant, as long as they help the user to identify the objects. In the example, the user
doesn't need to know the location of an airport. But, if the user is familiar with
geography, it can be easier to find destinations on a map than in a list.
You can also use position to represent "virtual" real-world positions. For example,
imagine a home shopping system where the users can buy things from different stores. A
possible presentation for this would be to display a schematic picture of a (virtual) mall
on which the different stores are positioned (where a store is an object). This schematic
picture has nothing to do with the real locations of these stores-it only exploits the user's
spatial memory: it is easier to remember an x-y position than it is to remember an item in
a list or hierarchy.
Another alternative use for position is to show associations between objects: all objects
that have the same vertical position are associated in one way, and all objects that have
the same horizontal position are associated in another way. Spreadsheets are an example
of this.
A similar alternative is to let one axis represent the value range of some attribute. For
example, in a travel booking system, booked flights (where a flight is an object) could be
presented along a horizontal time axis showing their relation in time, how long they will
last, and the length of time the user will stay at each destination. These are all things that
the user doesn't have to know, but they are nice to see if they can be presented
unobtrusively.
If you don't want to use so much screen area by presenting the whole value range, you
can collapse the distances between the objects. In the travel booking example, this would
mean that all booked flights are laid out horizontally with no spaces in between, but the
first flight is to the left, the second flight is immediately to the right of the first flight, and
so on. Users wouldn't see the length of time they could stay at each destination, but they
could see how long the flights would last.
Size
In many cases "size" must represent the same thing as position. In a CAD-system, for
example, size must naturally represent real-world extent. Sometimes, however, we are
free to choose what size should represent, for example the airports on the map that
supported the destination selection.
In these cases, size should represent what is most intuitively perceived as the real-world
size of the object. For a file, object size should represent amount of disk space occupied.
For a bank account, object size should represent balance. For most sizes, a logarithmic
scale is better than a proportional scale, since a proportional scale normally consumes too
much screen area.
Size is actually so intuitive that you can consider showing it even if it is not relevant.
After all, in the real world, different things (objects) occupy different proportions of our
visual field because of their different size. And that is not obtrusive; it only helps us
discriminate between the things. Similarly, using different sizes in the user interface will
often help users discriminate between different objects.
Size should normally be used to present only one attribute, even though it would be
possible to let horizontal extent present one attribute and vertical extent present another
(which is rather non-intuitive, and might confuse the user).
Shape
Icons in a graphical user interface normally represent shapes; shape is best used to
represent type because it is more intuitive to map out a difference in looks than it is to
map out a difference in type. In the real world, different objects of the same type of thing
normally look similar, while objects of different types look different. For example,
different objects of chair look similar (they all have four legs, a seat and a backrest),
while a car looks very different from a chair.
So, what are the criteria for when different objects are of different types? Well, different
classes should certainly be considered as different types. Also, some attributes are "type-
like." These attributes must have a limited set of possible values and their value normally
determines what can be done with the object (in terms of operations and possible values
of other attributes). This is the same as in the real world-the most important difference
between chair and car is how they are used: a chair is used for rest and a car is used for
transportation.
However, when you analyze what should be considered different types, remember that
the most important thing is: which attribute will the user most likely perceive as a type.
If you don't have multiple classes or any "type"-like attribute, you can use icons to
represent the different values for some other limited-value attribute, but only if this
attribute is of central interest to the user.
Icons are also often used to show different states of the object (in addition to showing the
type). When you select an object, it is usually displayed in either of two ways: the color
changes to black, or it displays a rectangle around it. Another possible state is that you
have opened a property window for the object. Normally, you also have other application
specific states that could be displayed, such as whether or not e-mail has been read. Just
make sure that the presentation of state doesn't make it harder for the user to perceive the
type and vice versa.
Color
Color can be divided into three components, based on visual perception. These are: hue
(i.e., red, blue, brown, etc.), saturation, and darkness. However, you should not use
different components to represent different attributes, since this will be too difficult for
the user to perceive.
Hue could be used to represent type or attributes with a limited set of possible values.
However, it is better to use an icon for this, because the icon can be designed so that the
user understands what value it represents, while there is no such intuitive mapping out
between color content and (most types of) values. Hue can thus be used instead of icons,
if no intuitive icons can be found. An alternative if you have many type icons is to use
© Department of Computer Science & Information Science.
127
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
hue for categorizing the type icons (so that some icons with a similar meaning are red,
some with another meaning are blue, etc.).
Saturation could be used to represent an attribute with a value range, but this will lead to
a rather ugly and obtrusive user interface-using different saturation is unsettling to the
eye and using high saturation is rather obtrusive.
Darkness is the most usable component of color. It can be used to represent an attribute
with a value range, and it is so unobtrusive that it can be used also for attributes of
secondary importance. For darkness to be unobtrusive, you should not go from no
darkness (white) to full darkness (black) but only from low darkness (light gray) to high
darkness (dark gray). For many systems where the users create most of the objects, it is
very useful to present objects according to age (e.g., the amount of time since the last
change). This helps users identify the object they want to work with (which is often the
object with the shortest "time since last change"). So, if you don't have a value-range
attribute that you really need to present to the user, consider presenting age.
Often color is used to make the icons more esthetically appealing and that also helps the
user quickly discriminate between the icons. If you provide multicolored icons, you
should probably not use color for other purposes.
Since some people are color blind, and since not all screens support color, you should not
use color as the only means of showing some vital information. On the other hand, a
well-planned and non-obtrusive use of color makes the user interface more esthetically
appealing.
Identification
The user must be able to uniquely identify each object. Sometimes the other visual
dimensions are enough for identification, but most often they are not. Displaying a name
within or close to the icon is the most popular technique for supporting identification.
The advantage of names is that a very small screen area can display a large number of
distinctly different names.
It is best if a name can be generated from an attribute value (that is normally textual). The
alternative is to let users specify the names when they create the objects, but this takes
some time, and thus reduces usability.
Sometimes you can shape the icon so that the name can be contained within the icon.
This saves screen area and provides a stronger indication of the relation between the icon
and the name. However, this can create the following problems:
The icon has to be empty in the middle (where the name appears);
Names have variable lengths, which means that either the icon's horizontal extent
must depend on the length of the name, or that some names must be truncated;
The icon must be much wider than it is high, since all text of reasonable length is
longer than it is wide.
As a result, you often have to display the name below or to the right of the icon, which
has the advantage that it consumes less screen area but the disadvantage that the object
(icon + name) becomes even wider than it is high. If you don't have enough space to
display the name at all (which is possible, because you can usually identify an icon
without naming it), you can display the name through pop-up windows that display when
the cursor is above the icon.
The font of the name can be used to display a limited-choice attribute, if you can find an
intuitive mapping between font and attribute values (for example, you could use bold or
italics to distinguish the object, or emphasize importance). In most cases, however, it is
not appropriate to use the font, since it's rather obtrusive and seldom intuitive.
If you show the name (or, for that matter, any other text that the user is allowed to
change), you should support editing the name directly in the primary window. The
alternative would be for the user to request a rename-operation and then enter the new
name, or to open the property window and edit the name there. Not only is it faster to edit
the name directly in the primary window, but it also supports the principle "where you
see it is where you change it."
In many cases, you will want to combine the two cases, for example by including a
"Select All" button in the sequential search window or a "View Next" button in the
parallel search window.
Sorting
An example of sorting may be that the system arranges all objects vertically, in
alphabetical order by name or according to the value of an attribute. The user then
© Department of Computer Science & Information Science.
129
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
browses the objects by scrolling. This is the simplest possible browsing support both with
respect to implementation and to user operation. Sorting works best when the user always
knows the name (or the attribute that we sorted according to) of the object that is wanted.
An example of a system that should be implemented this way is a telephone book. The
primary window should often have an operation for changing the sorting order and/or
criteria.
User-Controlled Inheritance
An example of user-controlled inheritance is WYSIWYG-editors where you define what
"style" each paragraph belongs to and then define how this style (i.e., every character
belonging to this style) should be laid out.
However, if search criteria cannot be specified for the objects, or if the user needs to
make relative changes to the attribute values (like increase by two), then providing user-
controlled inheritance may be a solution.
For user-controlled inheritance to be useful, the nature of the class must be such that the
objects can be categorized into groups (that have some logical meaning to the user) in
which most of the attribute values are the same.
The class for which you will support user-controlled inheritance can either inherit itself
or you can create a new class from which purpose is to be inherited. Making the class
inherit itself is a little bit more powerful, since the same object can be used both to inherit
from and to do the things originally intended for the object, like being an invoice, being
an account, etc. This leads to fewer classes for the user (and the system) to manage. On
the other hand, creating a new class to inherit from has the advantage of being easier to
comprehend since inheritance is clearly separated from the normal operation of the class.
Creating a new class is the best solution in most cases, especially if the users have not
great experience with computers and object-oriented models. The new class you create
should preferably inherit itself to support multiple levels of inheritance.
For most systems, the user often has to change the inheritance group for particular objects
since the user does not know in advance exactly how the inheritance groups should be
structured. Provide an operation for that.
If you decide to support user-controlled inheritance in your system, analyze what things
(attributes, associations, class) need to be inherited and then support inheritance only for
these things. This will lead to a less generic but easier way (for both users and
developers) to manage functionality. Model those things that should be inherited in your
new class. Many attributes will then be modeled both in the inheriting class and in the
inherited class. Remember that user-controlled inheritance is meant to save time for the
user, not for you. If the class inherits itself, this implies that everything is inheritable.
Decide if the user really needs to create new objects of the inherited class or if the system
can provide a sufficient number of objects once and for all. Prohibiting the user from
creating new objects will greatly decrease the flexibility of inheritance but on the other
hand it will make it easier to operate.
Since user-controlled inheritance is only for intermediate and power-users, you must
design it so that it will not interfere with normal use (e.g., when the user doesn't use
inheritance); otherwise, novice users will be intimidated.
Remember that the user-controlled inheritance you construct is intended to make life
easier for the user; it doesn't have to be generic or pure, but it has to be usable.
Browsing Hierarchies
A browsing hierarchy allows the user (or possibly the system) to categorize the objects
into primary windows or composites, which are organized hierarchically. Browsing
hierarchies ensures that the user only has to search one (or a few) categories. This reduces
the number of objects that have to be displayed at a given point in time. A drawback is
that the user (usually) has to manage the categorization. An example of this technique is
file browsers: the reason for having directories or folders is to help the user find files.
Window Management
Window size and position is usually in complete user control. You can, however,
consider reducing windowing overhead by letting the system influence size and position
of windows.
The bigger a primary window is, the more objects can be shown, but the more screen area
is also consumed. A primary window should normally show as many objects as possible
but without unnecessary consumption of screen area.
© Department of Computer Science & Information Science.
131
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
Make each primary window big enough that all objects can be shown, but not bigger than
the screen. Make each primary window big enough to show the whole objects but avoid
areas that don't show anything useful like the margins in a desktop publisher. Even if you
have space for showing these empty areas, they might obscure other applications.
Remember that a user resizes between sessions. If the number of objects increases,
increase window size so much that all objects are visible, unless it is already full screen
height or if the user has chosen a size that is smaller than the default. If the number of
objects decreases, decrease the size, unless the user has chosen a size greater than the
default. This rule ensures that you follow the intention of the user's resizing operations.
A possible further limitation on the size of a primary window is if you often need to use
the application in parallel with other applications. Then you might maximize default size
of the window to half screen (as opposed to full screen).
Make the default position of a primary window so that it obscures as little as possible of
other applications. If you have to obscure some windows, chose those that have been
unused for longest time, and try to leave at least a little bit of the windows visible so that
the user can easily activate them.
A disadvantage with applying the rules above is that it will take some amount of control
away from the user (the system will resize a window without being asked, and not
remember user repositioning between sessions). Therefore, if you apply these rules, you
should allow the user to switch them off (with a control).
For secondary windows, their size and position should be such that they don't obscure the
window they were called from and possibly so that they don't obscure other secondary
windows. If they must obscure the window they were called from, try to make sure that
they don't obscure selected objects. Obscuring vital things, like selected objects, is a
common usability flaw for secondary windows.
For primary windows other than the main primary window, you should also apply the
sizing rule of the last paragraph.
Dialog boxes, however, should be placed so that they obscure the active window. Since
they are normally temporary and small, the user usually doesn't need to see the active
window while the dialog window is open. Placing dialog boxes over the active window
makes sure that the user acknowledges them, and decreases necessary mouse movement
since the cursor is normally already over the active window.
For property windows, the number of attributes determines the size. If the size is too big
(approximately 1/4 of the screen), you should use more tabs.
Session Information
All application configurations should be saved between sessions (without the user having
to specify it). The size and position of windows, which view is selected, and the positions
of scroll bars should also be saved. When users restart an application, it should look
exactly as when they exited it the last time. The motive for this is that usually the first
thing users will do when starting a session is to work back to where they were when they
exited the last session.
Online Help
On-line help is a very important part of the system. A well-designed help system should
even be able to replace the user manuals for most systems. Most projects spend
considerable efforts on constructing and producing manuals when it is a known fact that
most users never use them. You should consider investing these efforts in a good help
system instead.
Message area is an area (usually in the main window) where the system prints unsolicited
"comments" on the user's actions. It should be optional if provided.
Wizards is a popular technique you should consider providing when the user asks for help
on how to do something. A wizard guides the user through a (non-trivial) task using a
"hand-holding" technique. It shows descriptive text in conjunction with operations
(buttons) that let the user carry out the parts of task explained in the text. Alternatively, a
wizard will ask questions, and, based on the user's responses, automatically carry out the
task. Wizards are excellent for tasks that are non-trivial and infrequently used.
The need for context-sensitive help and wizards is likely to be identified during use
testing. If, during use testing, users don't understand what different portions of the user
interface are, it is an indication to the need for context-sensitive help. If they have
difficulties performing a certain task, it is an indication to the need for wizards.
The problem with many help systems is that they are either written for novices (spending
an enormous amount of text explaining the obvious) or for experts (reference manuals
that anticipate the user knows almost as much as the programmer who made the
application). For most systems, most users are "improving intermediates." Write the help
text for them.
Undo
Undo is a very useful feature, although it is hard to achieve (implement) in general. It
enables users to learn faster, since they will not have to be afraid of destroying things. It
also reduces the risk of losing information. An alternative solution for avoiding loss of
information is to require that the user confirms all operations that might result in loss of
information. This is usually a bad solution, however, since it adds considerable
interaction overhead and the users soon learn to confirm unconsciously, thus rendering
this solution inadequate.
An ambitious option is to also provide redo and possibly multiple levels of undo/redo.
However, the first undo level achieves most of the increased usability.
Macro Agent
If you provide macros, it may be very useful to employ an agent that continuously
monitors the user's actions, looking for repeated interaction sequences. As soon as a
repeated interaction sequence is found, the agent creates a macro for it (after asking the
user for permission). Let's say the user has ordered "Underline" for two text paragraphs
and both times the user has also changed the text color to blue immediately after ordering
"Underline." Then the agent should ask the user if the user wants a macro that does both
"Underline" and "Set color to blue" for the selected text paragraph. If so, the agent should
create such a macro and a push-button (or a menu item) that executes the macro.
If the user selects an object during recording, this should normally be interpreted as a
"delta" specification, that is, what object has been selected in relation to previous
selection (like "select next", "select first child," etc.).
Whether you should interpret the changing of an object's attributes as a delta specification
(for example, interpreting the change of an attribute value from 12 to 14 as an increase by
2 rather than as a setting to 14) is not as obvious. Interpreting it as a delta specification is
usually more powerful, since changing an attribute to a fixed value for multiple objects
can often be accomplished by selecting multiple objects and then opening an attribute
window for them, in which you set the attribute (to 14) once and for all.
Dynamic Highlighting
Quite often, associations between classes are bi-directional, meaning that in the real user
interface, the association is shown on both objects. If a user, focusing on object A, can
see that A is associated to object B, then the reverse is normally also interesting for the
user (that is, when focusing on object B, the user can see that B is associated to A). The
association is normally shown in the property windows of the objects, identifying the
associated object by name.
This document aims at giving guidelines to students who are undertaking the
research project for the B.Sc. /M.Sc. in Computer Science. Section 2 discusses
the expected content for both the mid-term and final reports while Section 3
describes the due dates and some important notes.
There are 2 reports to be produced throughout the duration of this research, a mid-
term report and a final report. The mid term report is also referred to as a mini
thesis because of the extension of research involved. This section will only
highlight the expected contents of the report and thesis. For a description of the
format of thesis writing, students should refer to the document "Guide to the
Preparation of Master thesis " prepared by Project co-ordination Office.
Chapter 1 – Introduction
This will contain background information, which should
mainly be relevant to later discussion of your work.
Finish with a brief statement of the aim of the research
you have undertaken.
Chapter 2 – Related Work
This consists of a critical review of the other research
work, which is related to what you are doing. Problem
Statement Declaration should be the output of this
Chapter.
Chapter 3 – Proposed Design Methodology/Framework
Show how you intend to solve the problem.
Bibliography
(e) Abstract
Indicate concisely what you have done, your methodology and the
important conclusion that you have drawn.
Page size: A4
Top margin: 1.00 inch
© Department of Computer Science & Information Science.
137
Department of Computer Science & Information Technology (UOM) Version: 1.0
Capstone/FYP Project Deliverable Guide Date: Jan, 2023
Tables and Figures: Tables and figures shall be placed on one side only
Separate pages shall be used for figures and tables.
One page may contain more than one figure or table but
text will not be combined or interlaced with figure or table.
Each table / figure shall be numbered.
For example "Table 1.2: Population distribution in Asia" or
"Figure 3.2: Temperature distribution"
The table number or figure number shall be placed as
normal text centered at the bottom of the table or figure or
sideways with table / figure title coming on the opening
side of the paper and note on the binding side.
Paragraph:
Single-spaced.
Line entered paragraph.
DONOT put indents at the beginning of the paragraph.
Left aligned or justified.
Text Format
1 Section
1.1 Sub Section
1.1.1 Nested Sub Section
a
b
i
ii
The subsequent reference to a any section shall be made using the section and its
number. For example section 2.1.3 means chapter 2 section 1 subsection 3.
Mathematical Equations
References
References are to be placed in square brackets and interlaced in the text. For
example "A comprehensive detail of how to prevent accidents and losses caused
by technology can be found in the literature [1]. A project report / thesis cannot be
accepted without proper references. The references shall be quoted in the
following format:
The articles from journals, books, and magazines are written as:
[1] Abe, M., S. Nakamura, K. Shikano, and H. Kuwabara. Voice conversion
through vector quantization. Journal of the Acoustical Society of Japan,
April 1990, E-11 pp 71-76.
[2] Hermansky, H. Perceptual linear predictive (PLP) analysis for speech.
Journal of the Acoustical Society of America, January 1990, pp 1738-
1752.
The books are written as:
[1] Nancy G. Leveson, Safeware System Safety and Computers, A
guide to preventing accidents and losses caused by technology,
Addison-Wesley Publishing Company, Inc. America, 1995.
[2] Richard R. Brooks, S. S. Iyengar, Multi-Sensor Fusion
Fundamentals and Applications with Software, The Prentice-Hall
Inc. London, 1998.
Binding
Top-level directories:
Doc All documents related to the project
Instructions how to access the CD to the point to running
the project
All reports already submitted
The final project report in thesis form
Installation instructions
Trouble shooting instructions in case of problems
User manual
Research material including URLs
Papers consulted / referred to
Slides of the presentations
Source All source files that will be needed to compile the project.
Further subdirectories can be used.
This must include sample data files as well.
Project The running project including sample data files as well as sample
output.
This should be in a form that if copied to a machine runs without
errors.
This may an exe file of an entire project, an installer depending on
the project or simply a running project.
You can have sub directories with appropriate names.
Length
The length of your dissertation depends on the type of project you have selected. An
excellent dissertation will often be brief but effective (its author will have said a lot in a
small amount of space). Voluminous data can be submitted electronically on CD.
Project
Advisor: Dr. M. A.
Pasha
Submitted By
STATEMENT OF SUBMISSION
This is certify that Imran Arshad Roll No. BCSF8M41 and Asif Khan Roll No.
BCSF8M21 successfully completed the final project named as: Online Learning
Management System, at the Department of Computer Science & Information
Technology, University of Mianwali, to fulfill the requirement of the degree of BS in
Computer Science.
______________________ _____________________
Project Supervisor Project Coordination Office
Professor Dr. M. A. pasha DOCS&IT -UOM
Chairman
DOCS&IT -UOM
_____________________________ ________________________
External Examiner Dr. M. Anwar Ur Rehman Pasha
Professor Dr. Shahid Naveed Chairman
Chairman DOCS&IT -UOM.
Department of Computer Science
Islamia University Bahawalpur
Empty Page
Acknowledgement
We truly acknowledge the cooperation and help make by Dr. M A Pasha, Chairman,
Department of Computer Science & Information Technology, University of Mianwali,
Mainwali. He has been a constant source of guidance throughout the course of this
project. We would also like to thank Prof. Saeed Ahamed from University of Mianwali,
for his help and guidance throughout this project. We are also thankful to our friends and
families whose silent support led us to complete our project.
1- M. Aslam
2- M. Akram
Abstract
Introduction
University of Sargodha is committed to ensuring that all students conduct themselves in a
manner consistent with the University of Mainwali Academic Integrity Policy.
Recognizing that regulations and practices relating to academic integrity and intellectual
property, as well as the culture related to their enforcement, vary substantially from place
to place, all graduate students are required to review, comprehend and adhere to the
University of Mianwali Academic Integrity Policy upon commencing undergraduate and
graduate studies and upon submitting project/ theses.
Thesis Submission
I am familiar with the University of Mianwali Academic Integrity Policy and I
understand the potential consequences should my thesis/project be found to contain
plagiarized content or violate this policy in any other way.
Overall Total
Overall Total
Success Criteria:
Evaluation Criteria
Grade Marks
A+ 85 and above
A 80-84
B+ 75-79
B 70-74
B- 65-69
C+ 61-64
C 58-60
C- 55-57
D 50-54
Repeat 50%
Fail bellow then 50%
Individual Evaluation =
Deliverables Evaluation =
Overall Project Evaluation =
Note:
If any person is fail in the individual Evaluation will be considered Fail in
overall project
If as Group Deliverables/ overall Project Evaluation is less than 60% then
individual Evaluation will not be considered.
Group will repeat the any activity in case of failure
Project Manager
Project ID
Project Name
Team Size
1 LAN Cards
2 Modems
3 Telephone Lines
4 Telephone Sets
5 Speakers
6 Others
Lab
Room
1) If your project/ software is related to lab environment then tick Lab otherwise Room option
2) It is recommended that you bring your personal computers (System Unit(s)) but if you required clearly
mention the number of computers required
Extension for
Proposal Evaluation
1st Deliverable
2nd Deliverable Submission
3rd Deliverable
Final Inspection
Other
Reason for Extension
Tools / Technologies
Signature:
Proposal
Analysis
Deliverables
Design Deliverable
Detailed Design
Deliverable
Implementation
Effected Modules
Module name Description
Effected GUIs
GUI ID Description