Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Table of Contents
Abstract................................................................................................................................3
Chapter 1: Introduction........................................................................................................4
BACKGROUND OF THE PROJECT....................................................................................................4
PURPOSE........................................................................................................................................4
AIMS OF THE SYSTEM...................................................................................................................5
OBJECTIVES OF SYSTEM...............................................................................................................5
SCOPE OF THE PROJECT.................................................................................................................6
Chapter 2: Methodology......................................................................................................6
METHODOLOGY SELECTION..........................................................................................................6
METHODOLOGY EVALUATION.......................................................................................................7
Requirements Planning..........................................................................................................8
User Design...........................................................................................................................8
Construction..........................................................................................................................8
Implementation......................................................................................................................9
BENEFITS OF RAD........................................................................................................................9
JUSTIFICATION OF CHOICE..........................................................................................................10
Chapter 4: Estimation........................................................................................................16
SCHEDULE ESTIMATION......................................................................................................16
SIZE ESTIMATION...................................................................................................................17
EFFORT ESTIMATION...................................................................................................................18
CONCLUSION...............................................................................................................................21
Configuration Identification........................................................................................31
Chapter 6: Metrics.............................................................................................................41
PRODUCT METRICS......................................................................................................................41
PROCESS METRICS.......................................................................................................................42
SIZE-ORIENTED METRICS............................................................................................................42
LOC METRICS............................................................................................................................42
COMPLEXITY METRICS...............................................................................................................43
MEASUREMENT...........................................................................................................................43
MEASURES OF SOFTWARE QUALITY...........................................................................................44
Abstract
First of all, I would like to thank to my lecturer of this module Kesava Pillai A/L
Rajadorai @Rajoo for the advices and supports. He has encouraged and motivated me to
do well in our project. He also emphasized that this project was very important for my
understanding on the subject and in the future. I would like to thank him for showing
some good examples that is related to our assignment. I would like to thank the authority
of The Asia Pacific University (APU) for providing me with the good environment and
facilities to finish the project.
Chapter 1: Introduction
Background of the project
Nowadays software application has gradually been used in almost every organization to
organize important information. The significant benefit of software application is to
replace the traditional paper work of managing information. Attendance system is very
important for every education organization unit as it is used to manage the students
attendance records. Attendance system has to be stable, reliable, and must simplified the
task of attendance marking as possible as it can. Because every lecturer is compulsory to
mark attendance during every lecture session, and it should not take too long time as
every minutes, every seconds is precious during the lecture session. Many of the
attendance system, such as APUs web attendance, is quite tedious because every time the
lecturers mark attendance they have to select the detail such as intake, module, start time,
class type, duration etc. from the long drop-down list, which is confusing and takes long
time. Sometimes the lecturer marked the wrong attendance for students because theyve
made a mistake of selecting the detail from the drop-down list. In addition, when the final
Purpose
According to the problems stated above, the Reliable Web Attendance will be a great
solution for these problems, as it simplified the attendance marking process, the lecturer
can mark the student attendance is just few steps. Also, the proposed system would really
help when issuing docket for students by allowing them to get docket online if the student
has enough total of class attended. Its a web application which allows users to access it
anywhere through internet.
The aim of R.W.A is to provide a simple, efficient and useful attendance web application.
It improves the way and reduce the time taken in marking attendance. It also eliminates
the manual task such as issuing docket. Another aim is to try to reduce the absenteeism in
APU.
Objectives of System
Objectives are more specific statements about what R.W.A will be able to do after
completion of the system.
The first objective is to make things done in just few steps. Through the new system, the
lecturer can mark attendance by just logging in and choose module, they do not have to
specify other detail such as class code, date time, class type etc.
Secondly, R.W.A is meant to reduce workloads of administrator as it allows students to
get their docket number online, so the students do not need to pay a visit to the
administration office. Another objective is that it highlights the name of the low
attendance student and also warn the student if had too many classes absented.
The scope of a system defines the boundaries of the system to be built. In other
words, Reliable Web Attendances various features must be defined clearly to assure the
quality of the new system, it is assumed that R.W.A is being built for a university.
The different features of a Reliable Web Attendance to be included will be:
Chapter 2: Methodology
Methodology Selection
XP is a set of practices that conform to the values and principles of Agile. XP is a discrete
method, whereas Agile is a classification. There are many Agile methods, XP is just one
of them.
Having said that, none of the other Agile methods are as well defined, or as broad in
scope as XP. Scrum, for example, is roughly equivalent to XPs Planning game practice,
with elements of Whole Team. While there are differences in the details, it is fair to say
that Scrum is a subset of XP. Indeed, many Scrum teams augment their process by adding
in many of the XP practices such as Acceptance Testing, Pair Programming, Continuous
Integration, and especially Test Driven Development.
Of all the Agile methods, XP is the only method that provides deep and profound
disciplines for the way developers do their daily work. Of those disciplines, Test Driven
Development is the most revolutionary and impactful. (Storani Maurizio, 2008)
Methodology Evaluation
Robustness
Extreme Programming leverages the power of simplicity. The design resembles a jigsaw
puzzle with developers working on many small pieces or iterations. The combination of
such iterations at the end gives the end product. This approach creates working software
faster with very few defects. Regular testing at the development stage ensures detection
of all bugs, and the use of customer approved validation tests to determine the successful
completion of a coding block ensures implementation of only what the customer wants
and nothing more.
One advantage of this approach is allowing for cost estimates-based software features
instead of developer activity. This allows customers to make intelligent decisions on what
needs inclusion and what needs exclusion depending on the budget. By selecting the
important requirement first, the customer obtains maximum value with the least amount
spent, and this can effect a trade-off on the marginal increase in product utility with the
cost to incorporate additional features. This approach also allows both the user and the
customer to "pull the plug" on development at almost any time and still have highly
valuable functional code, even if incomplete.
Resilience
The traditional approach of programming works best when requirements remain static. In
actual life, requirements keep changing either because of emergence of new business
opportunities or simply because the initial requirement-gathering phase was incomplete.
Extreme Programming in-builds accommodation of such changed requirements through
getting user stories at the start of iterations, and through feedback during the course of
iterations.
Employee Satisfaction
Extreme Programming, while reducing the importance of individuals in the development
process, also helps increase employee satisfaction and retention. Extreme Programming is
a value-driven approach that sets fixed work time, with little scope for overtime. The
breakdown of project scope into subcomponents and the constant customer feedback
prevents accumulation of much work to be completed before a tight deadline.
Lesser Risks
One of the major advantages of Extreme Programming is that it reduces the risks related
to programming. Conventional programming depends a lot on individual superstars or
critical members in the team. Extreme Programming, by breaking the tasks into modules,
spreads the risk and reduces the dependence on any one architect, project manager, or
individual coder.
Justification of Choice
Extreme Programming (XP) was created in response to problem domains whose
requirements change. I assumed that the customers, such as lecturer and student, may not
have a firm idea of what the system should do. I may have a system whose functionality
is expected to change every few months. In many software environments dynamically
changing requirements is the only constant. This is when XP will succeed my R.W.A
project while other methodologies do not. XP was also set up to address the problems of
project risk. If your customers need a new system by a specific date the risk is high. If
that system is a new challenge for your software group the risk is even greater. If that
system is a new challenge to the entire software industry the risk is greater even still. The
XP practices are set up to mitigate the risk and increase the likelihood of success. XP is
set up for small groups of programmers. Between 2 and 12, though larger projects of 30
have reported success. Our programmers can be ordinary, we don't need programmers
with a Ph.D. to use XP. But we cannot use XP on a project with a huge staff. We should
note that on projects with dynamic requirements or high risk you may find that a small
team of XP programmers will be more effective than a large team anyway. XP requires an
extended development team. The XP team includes not only the developers, but the
managers and customers as well, all working together elbow to elbow. Asking questions,
negotiating scope and schedules, and creating functional tests require more than just the
developers be involved in producing the software. The last thing on the list is
An effective verification effort must show that all requirements have been carried out
correctly, this is done by testing the requirements against the product during delivery.
These tests can be re-executed to achieve the same results should the system be changed
at a later date.
Verification is showing that a product meets its specified requirements at predefined
milestones during the development life-cycle. Validation checks that the system meets the
customers requirements at the completion of the development life cycle. An example
system of verification versus validation is depicted below:
Chapter 4: Estimation
I assumed that there are two situations in which I have to estimate the project. First
situation is that my boss come to me and gives me a feature list or requirements list. After
that Im asked to give the total time required to implement all of these features. I estimate
the project and give my estimates to my boss. Boss take these estimate and put into a
larger sub-total for a large project. In this situation when Im estimating I do not have any
time limit. In this estimate Im not kept under-pressure for deadline. This type situation
happens very rarely. In second situation I have a deadline and a list of features to
implement. My task is to develop an estimate for all the features that I can give before the
deadline. We face most of the time this second situation. There may be times when with
all resources available one cannot deliver the output on or before the deadline. In this
situation one has to negotiate either the deadline or the number of features for
implementation. Estimation alone cannot guarantee me the project completion at the
committed date. One need project control and good project management skills to
complete the project according to the estimate. Therefore, in software project
management estimation is just one part and just help out in planning.
SCHEDULE ESTIMATION
When does the project start? Does it start when it gets formal budget approval? Does it
start when initial discussions about the project begin? Does it start when it is fully
staffed? Caper Jones reports that less than 1% of projects have a clear defined starting
point. (Jones, 1997)
When does the project end? Does it end when the software is released to the customer?
When the final release candidate is delivered to testing? What if most of programmers
have rolled off the project a month before the official release? Jones reports that 15% of
projects have ambiguous end times. (Jones, 1997)
There are many tools on the market that help develop Gantt and PERT charts to schedule
and track projects. These programs are most effective when breaking the project down
into a Work Breakdown Structure (WBS), and assign estimates of effort and staff to each
task in the WBS.
SIZE ESTIMATION
Software size is the key input to most software cost estimating methodologies.
It can be measured by counting number of Lines of Code (LOC). For this project S.M.S,
the project manager is going to adopt Function points to estimate the project size, as it
doesnt rely upon a propriety estimation algorithm for the size
estimation. There are several approaches to estimate size of S.M.S:
Function
Inputs
Outputs
quiries
Interfaces
FP conversion
4
5
4
7
Qty
5
2
5
4
Total
20
10
20
28
10
30
108
Effort Estimation
Effort is defined as an expenditure of physical or mental effort that will
be needed from the part of the team member and effort is mostly
being measured in terms of staff hours (Duncan, 2011).
The main goal here is to define data being collected well enough so that we can know
what we are estimating. If the data from previous projects includes a high percentage of
unpaid overtime and we use the historical data to estimate a future project, then we have
just calibrated a high percentage of overtime into the future project. (McConnell, 2006)
Cobol
107
Delphi 5
18
HTML 4
14
Python
20
ASP.net
30
SQL
15
Java
46
= 46 x function point
LOC = 46 x 108
LOC = 4968
Convert LOC to KLOC =4.968
Project Type
COCOMO II
3.13
Embedded Development
3.60
E-commerce Development
Web Development
3.08
2.51
Military Development
3.97
Duration= 2.5*E0.38
= 2.5 * (19) ^0.38
= 7 months
Estimating people = E/Duration
= 19/7 ~ 3 people
Coding cost
8 hrs | day * 5 days
=40 hrs in 1week
=40 hrs* 4 weeks
=160 hrs/month
1 hr = 15 RM
1 month cost = RM 15 * 160 hrs
= 2400 RM
Coding cost = 160 * 15 * 7
= 16,800 RM
Coding Cost= RM 16,800 * (3people) = 50,400 RM
Conclusion
Estimating software is simply a better tool for businesses. It just makes sense to use
something that helps to address the challenges that the business faces in its estimating and
produce the best estimates that possibly can be done.
According to IEEE, Quality assurance is a planned and systematic pattern of all actions
necessary to provide adequate confidence that an item or product conforms to established
technical requirements.
Assuring that there are no defects on the software and if any exist fixing them is the
meaning of software quality assurance. Project managers and their teams must assure that
the product is defect free before launching it in the market.
SQAP Purpose
The software quality assurance plan (SQAP) defines the activities performed to provide
assurance that the software-related items delivered to the customer conforms to the
established and contracted technical requirements. The SQAP also describes how the
project will be audited to ensure that the policies, standards, practices, procedures, and
processes applicable to the project are followed.
The
scope
of
this
SQAP
includes
activities,
assessments
and
Referenced Documents
Management
Project Organization
Smart
Medical
System
S.M.S
Project
manager
S.M.S
quality
assurance
team
Testers
Developers
Roles
Responsibility
Project Manager
Developers
development process
Managing and coordination of human
resources
Testers
Testing end product of the proposed
project
Documentation
Documenting projects is crucial as it shows what is done in the project and for the
purpose of future use. This part contains identification of document for development
purpose and for verification and validation as software maintenance.
SRS purpose
Software requirement specification is used to know all the requirements that are required
for the S.M.S software development and thus that will further help in designing the
software and thus finally to make the software. Beside that it refers to nonfunctional
system requirements.
SRS content
Functional Requirement
Smart Medical System
Name:
Alert on Location
Description:
Actor(s):
Users, operators
Assumption:
Precondition(s):
personnel
Tap the emergency button
Post condition(s):
NFC
Alternate Pathway(s):
None
Exception Pathway(s):
None
Nonfunctional requirement
The Architectural Design Document (ADD) describes the basic system design for the
software to be made during the S.M.S project. This is a decomposition of the software
into components. Each component is described in terms of its external interfaces and the
dependencies on other components, this in order to allow the programmers in the next
phase of the project to work in parallel
ADD content
1. Planning
2. Overview Meeting
3. Preparation
4. Inspection Meeting
5. Rework
6. Follow-up
Software Verification and Validation Report
This report will decrease the results that have been founded from the importance like
software validation and verification plan. Fully the actions from the Software Verification
and Validation Plan (SVVP) will be at that moment documented consuming the exact
standards.
CMP Content
Configuration Identification
Configuration identification (CI) involves identifying the components of the smart
medical system (SMS), uniquely identifying the individual components, and
making them accessible in some form. A proper configuration identification
schema identifies each component of the network and provides traceability
between the component and its configuration status information
Configuration Control
Includes the evaluation of all change requests and change proposals, and their
subsequent approval or disapproval. It is the process of controlling modifications
to the system's design, hardware, firmware, software, and documentation.
development department. Moreover, coding and its standard can give a better view to
programmer to recover modify and better readability. (Tian, J,2009)
Software Metrics
Software metrics are used to measure software. Their first use is to help us plan and
predict software development. It helps to control software quality and work progress
more efficiently. For the Smart Medical System, the source line of code
(SLOC) is used to identify and measure the size of the projects.
Additionally, it is used to measure the complexity of the new system
like the number of faults.
2. Consistency
This review will ensure to have internal consistency between the
software requirements and check is it SRS compatible with the
operational environment of the hardware and software. (NAIK, 2008)
3. Compatibility
The compatibility review will ensure that the interface requirements
enable compatibility of external interfaces. (NAIK, 2008)
4. Correctness
Is each requirement written in a clear, unambiguous language?
Product Reviews
The comments about this product to make sure that the product are
developed according to the standards met. Also the User review will
be to assess the product's smart medical system. By its end-users to
test and evaluate the customer, the customer may once use without
any problems, the product will then officially released.
Testing
Completely the key feature that must be declared remains the true
thing on behalf of the system to be successful. On the other hand, to
maximize the usability besides efficacy of the system, numerous tests
must carry out in progress the last deliverable part of the system.
Unit Testing:
The Unit testing includes attractive lesser portions of the testable
software of the application and isolates it from the remaining part of
the code, and determines whether it has the expected behavior. Each
unit separately before integrates them into modules to test the
interfaces can be tested. Unit testing has shown its efficiency since
larger percentage of defects can be identified during its use.
Integration Testing:
Integration involves the logical addition of unit testing. However, the
two units that have previously been tested in the Unit testing are joint
into a particular component as well as the interface amongst them is
Risk Management
Brainstorming
Interviewing
SWOT analysis
Risk Quantification
Once the risks have been recognized, they must be arranged according
to their status. The risk quantification remains important from the time
when the team were not be able to take arrangements aimed at wholly
the risks. Also the risks could be classified according to their influence
on the project plus its possibility to happen inside the project. Thus, the
impact matrix is used to arrange the risks.
Probability/Impact Matrix
Glossary
Chapter 6: Metrics
Software metrics are used to measure software. Their first use is to help us plan and
predict software development. It helps to control software quality and work progress
more efficiently. In general, software metrics can be classified into two categories:
software product metrics and software process metrics. Software product metrics are
measures of software products such as source code and design documents. Software
process metrics are measures of software development process. For example, the size of
the software is a measure of the software product itself, thus a product metrics. The effort
required to design a software system may be influenced by how the software is designed,
thus a process metrics. In this article, only software product metrics will be addressed.
(Li, 2002)
Software metrics can be classified into three categories: product metrics, process metrics,
and project metrics:
Product metrics
It focuses on the deliverables quality. It combined across several projects to produce
process metric. Beside that, it measures of the analysis model and complexity of the
design model.
Intrinsic product quality is usually measured by the number of bugs (functional defects)
in the software or by how long the software can run before encountering a crash. In
operational definitions, the two metrics are defect density (rate) and mean time to failure
(MTTF).
Process metrics
These metrics are used to help in decision-making and they intent to provide indicators
that led to long-term software process. The only way to know how/where to improve any
process is to
1. Measure specific attributes of the process.
2. Develop a set of meaningful metrics based on these attributes.
3. Use the metrics to provide indicators that will lead to a strategy for improvement.
(Unknown, 2010)
Size-oriented Metrics
Typical Measures:
LOC Metrics
Easy to use
Easy to compute
Language & programmer dependent
Count only executable lines.
Count executable lines plus data definitions.
Count executable lines, data definitions, and comments.
Complexity Metrics
LOC - a function of complexity
Language and programmer dependent
Halsteads Software Science (entropy measures)
n - number of distinct operators
1
n - number of distinct operands
2
N - total number of operators
1
N - total number of operands
2
Measurement
It is defined as quantitative indication of extent, amount, dimension,
capacity, or size of some attributes of a product or process. (IEEE, 2004)
The goal of software measurement is to build and validate hypotheses and increase the
body of knowledge about software engineering. This body of knowledge can be used to
understand, monitor, control, and improve software processes and products. Therefore,
building measures is a necessary part of measurement, but not its final goal. (Morasca,
2011)
Software quality doesn not come for free. It has to be actively pursued.
The use of well-defined model of the software development process
and good analysis, design and implementation techniques are a first
prerequisite for the proposed system (S.M.S). However, quality msut
also be controlled and managed. To be able to do so, it has to be
defined rigorously. There exists numerous taxonomies of quality
attributes. For each a precise definition have been given, together with
a metric that can be used to state quality goals, and to check that the
quality goals are indeed being satisfied.
embracing
QA
activities
and
learning
to
effectively
use