Final Project Software Engineering
Final Project Software Engineering
MEMBERS:
NICOLE SERRATE
AUGUST 2018
Santa Cruz - Bolivia
II
INDEX
INDEX
2. ASPECTS GENERAL.....................................................................................5
2.2. Introduction......................................................................................................5
2.4. Delimitations...................................................................................................5
2.4.1. Geographic.....................................................................................................5
2.4.2. Temporal.......................................................................................................5
2.4.3. Themes........................................................................................................6
2.4.4. Scope..........................................................................................................6
II
3.3.5. Principles of the design model.................................................................18
3.5.2.3. Risks......................................................................................................25
3.7.1.1.1. Participants.........................................................................................28
II
3.7.1.1.2. Leaders of Team.................................................................................29
II
3.9.8. Administration of the Risk...........................................................................38
4.1. PUDS
4.1.1. Characteristics.............................................................................................40
4.2. UML................................................................................................................41
4.2.4. Model.........................................................................................................42
II
5.3.4. Calculation of Effort...................................................................................49
5.3.5. Calculation number of people who will make up the development team
of the software..............................................................................................................49
5.5.2. Standards........................................................................................................51
5.6. Budget....................................................................................................53
II
6.1.2. Requirements non-functional...........................................................................57
Manage Sales
Seller......................................................................................................................61
Description
Normal
Alternative....................................................................................................................61
7. CONCLUSIONS
8. RECOMMENDATIONS.........................................................................................67
9. BIBLIOGRAPHY.....................................................................................................68
II
1. CASE STUDY STATEMENT
I. PROBLEMATIC SITUATION
Employees are hired for projects, which can last from one to two.
years. The contracts of administrative personnel are indefinite in nature but the
field staff contracts are project-based. A project can span two
contiguous geographic areas.
Both workers and administrative staff need to submit the following information: ID,
Full name
Telephone.
For each project, workers are hired to carry out the dismantling work,
drilling, detonation, and seismic tracking of the predetermined lines in which
there is probably oil so that another company can later do the
extraction of the 'black gold'
Each contract specifies a basic salary according to the role (cook, nurse,
foreman, mechanic) that the worker has to perform in the field.
At the end of each month, the administrators of the different field projects must
send the attendance sheets of the workers to process the respective ones
payroll sheets. The pay slips must be printed along with the payroll sheets.
payment.
At the beginning of each project, a sheet of all the workers must be printed who
they will be affiliated with health insurance.
At the end of each month, a sheet of the workers who must be filled out is also required.
withdrawn from health insurance due to contract expiration.
1
The monthly form sent to the health insurance must specify the same.
data that the payroll sheet to reduce the monthly amount that the company owes
pay the insurance.
During the work month, the system must record the advance requests for
salaries.
At the end of a project, it is necessary to process the calculations to settle all the
workers except for the administrative staff who continue with their active contracts.
It is necessary to control the accumulation of vacation time for administrative staff according to
the law (1 to 5 years: 15 days; 6 to 9 years: 20 days; >=10 years: 30 days). This type also
Workers are entitled to a seniority bonus according to the law (2 to 4 years 5%; 5
at 7 years 11%; 8 to 10 years 18%, etc
The workers must submit their RCIVA forms to the central office for the
discount deduction (13%) for commercial transactions. These amounts must
to be taken into account when processing the payroll.
Temporal planning.
Calculation of Effort
2
Calculation of the number of people who will make up the team of
software development.
Personnel cost
Cost of Software
Quality Management
Rules
Budget
3
V. BASIC USE CASES
a) Requirements Model
Functional Requirements
Non-functional requirements
b) Analysis Model
Domain model
c) Design Model
Sequence diagram
Report design,
d) Implementation Model
Components Model
Deployment Model
4
2. GENERAL ASPECTS
2.2. Introduction
2.4. Delimitations
The research will take the geographical space for information collection in
Department of Santa Cruz specifically in the metropolitan area
The present project will be carried out taking into account data included between the
year 2012 – 2017, since during this time period the company VUITON SRL had
greater inconveniences with your developed system.
5
Determine the requirements of the system to be developed in order to
lay the groundwork for the development of a design according to the
identified needs and difficulties.
Carry out the construction of the management system that solves the problems
analyzed and that meets the requirements obtained in the phase of
analysis and design.
Carry out the implementation of the developed system taking into account that
resulting software that meets all the proposed requirements and
approved by the officials of the company VUITON SRL.
Principle 2. At each stage, focus on quality. The exit condition for all
activity, action, and task of the process must focus on the quality of the product
work that has been generated.
6
Principle 3. Be ready to adapt. The process is not a religious experience, in it
there is no room for dogma. When necessary, adapt your approach to the
restrictions imposed by the problem, the people, and the project itself.
Principle 7. Assess the risk. There are many things that can go wrong when you
develop software. It is essential to establish contingency plans.
Principle 8. Create work products that add value for others. Only generate
those work products that add value to other activities, actions or
tasks of the process. Any product of the work that is generated as part of the
software engineering practice will be passed to someone else. The list of functions and
required characteristics will be given to the person (or people) who will develop a
design, the design will pass to those who generate code and so on. Make sure
that the product of work imparts the necessary information without ambiguities or
omissions.[ CITATION Rog l 3082 ]
7
that satisfy the needs of all participants. To achieve this, it must
to adopt a set of fundamental principles that guide technical work.
These principles have merit regardless of the analysis and design methods that
the construction techniques (for example, the language of
programming or the automated tools) that are used or the approach of
verification and validation that is chosen. The following fundamental principles are
vital for the practice of software engineering:
Principle 1. Divide and conquer. To put it more technically, analysis and design
they should always emphasize the separation of entities (SdE). A big problem is
easier to solve if divided into a set of elements (or entities). The ideal
Each entity should provide distinct functionality that can be developed, and in
certain cases validate themselves, regardless of other entities.
8
Principle 5. Build software that has effective modularity. The separation of
entities (principle 1) establishes a philosophy for software. Modularity
provides a mechanism to carry out that philosophy. Any system
complex can be divided into modules (components), but the good practice of the
software engineering demands more. Modularity must be effective.
Principle 6. Look for patterns. Brad Appleton [App00] suggests that: The goal of
patterns within the software community is to create a body of bibliography that
help software developers solve recurring problems that arise
throughout the development. Patterns help to create a shared language for
communicate perspective and experience regarding these patterns and their solutions. The
formal coding of these solutions and their relationships allows for successful accumulation
the body of knowledge that defines our understanding of the good
architectures that meet the needs of their users.
Principle 7. When possible, represent the problem and its solution from various
different perspectives. When a problem and its solution are studied from various
different perspectives, it is more likely that there will be greater insight and that they will be detected
Principle 8. Keep in mind that someone will maintain the software. The software
it will be corrected in the long term, when its defects are discovered, it will adapt to the
changes in their environment and improve at the moment participants ask
more capabilities. These maintenance activities become easier if they
apply a solid software engineering practice throughout the process of
software [ CITATION Rog 3082 ]
Effective communication (between technical colleagues, with the client and other participants,
and with the project managers) is among the most difficult activities that
9
must be confronted. In this context, principles of communication are studied here.
applied to communication with the client. However, many of them are applied
equally in all forms of communication that occur within a project of
software
Principle 2. Before communicating, prepare yourself. Spend some time understanding the
problem before meeting with other people. If necessary, make some
research to understand the specific vocabulary of the business. If you have the
responsibility to lead the meeting, prepare an agenda before it takes place
place.
Principle 3. Someone must facilitate the activity. Every communication meeting must
having a leader (facilitator) who: 1) keeps the conversation moving towards a
positive direction, 2) be a mediator in any conflict that arises and 3) guarantee
that other principles continue.
10
to build trust among team members and create a common goal for
the group
Principle 7. Stay focused; make modules with the discussion. The more
the more people participate in any communication, the more likely the conversation is
jump from one topic to another. The facilitator should form conversation modules for
abandon a topic only after it has been resolved.
Principle 9. a) Once something is agreed upon, move forward. b) If it is not possible to come to an agreement
The communication activity helps to define the general goals and objectives.
supposed, subject to change as time goes by). However, the understanding
defining a plan to achieve them is not the same as setting these goals and objectives.
Planning activity includes a set of administrative and technical practices.
that allow the software team to define a roadmap as it progresses towards its
strategic meta and its tactical objectives
11
Principle 1. Understand the scope of the project. It is impossible to use the map if you do not
knows where it is going. The scope gives a destination to the software team
Principle 3. Acknowledge that planning is iterative. A plan for the project never
it is carved in stone. By the time the work begins, it is very likely that the
things have changed. Consequently, the plan must be adjusted to include those
changes. In addition, incremental iterative process models dictate that it must
repeat the planning after the delivery of each software increment, with
based on the feedback received from users.
Principle 5. When defining the plan, consider the risks. If you have identified risks
that would have a big effect and it is very likely that they will happen, so it is
it is necessary to develop contingency plans. In addition, the project plan (including the
activity programming) must be adjusted to include the possibility that
one or more of those risks occur.
Principle 7. Adjust the granularity when defining the plan. The granularity is
refers to the level of detail adopted when developing a plan. A plan with
12
"a lot of granularity" provides meaningful details in the tasks for the work
what is planned, in increments over a relatively short period (so that the
monitoring and control happen frequently.
Principle 8. Define how to ensure quality. The plan must identify the
the way the software team seeks to ensure quality. If it is carried out
Technical reviews must be scheduled. If it is going to be used during construction.
pair programming
Principle 10. Follow up on the plan frequently and make the adjustments that are necessary.
Models are created to better understand the real entity that is going to be built. When
this is physics (for example, a building, an airplane, a machine, etc.), a
model in identical form but to scale. However, when the entity that is going to
building software, the model must take a different form. It must be capable of
represent the information that the software transforms, the architecture, and the functions
that allow this to happen, the characteristics that users desire and the
system behavior while the transformation takes place. The models
they must meet these objectives at different levels of abstraction, in the first place
13
with the illustration of the software from the client's perspective and then with its
representation at a more technical level.
Principle 2. Travel light, do not create more models than necessary. Every model that
It is believed that it should be updated if changes occur. More importantly, everything
the new model requires time, which would otherwise be allocated to construction
(coding and testing). So, create only those models that make it easier and
quickly build the software.
Principle 3. Try to produce the simplest model that describes the problem or the
software. Do not build software excessively [Amb02b]. By keeping it simple
models, the resulting software will also be. The result is that there will be a
easy to integrate, test, and maintain software (for it to change). Moreover, the
simple models are easier to understand and critique by the members
of the team, resulting in a functional feedback format that
optimize the final result.
Principle 4. Build models that are susceptible to change. Suppose that your models
they will change, but ensure that this assumption does not make you careless. For example,
Principle 5. Being able to state an explicit purpose for each model that is
Create. Every time you create a model, ask yourself why you are doing it. If you don't find
a solid reason for the existence of the model, don't waste time on it.
14
Principle 6. Adapt the models developed to the system in question. Perhaps
it is necessary to adapt the application's notation of the model or the rules;
For example, a video game application may require a modeling technique.
different from the embedded software that controls a car engine in real time
real.
Principle 7. Try to build useful models, but forget about developing models.
perfect. When a software engineer builds requirement models and
design reaches a point of diminishing returns. That is, the effort
required to completely finish the model and make it internally consistent
stop benefiting from having such properties. Is it suggested that modeling
Should it be poor or low quality? The answer is 'no'. But the modeling must
to focus on the following stages of software engineering.
Endless iterations to obtain a 'perfect' model do not meet the need for
agility.
Principle 8. Do not be dogmatic about the syntax of the model. If one is successful
to communicate content, representation is secondary. Although each member
the software team should try to use a consistent notation during the
modeling, the most important feature of the model is to communicate information that
allow the execution of the following engineering task. If a model is successful in
doing this, the incorrect syntax is forgivable.
Principle 9. If your instinct says that a model is not the right one, despite how it looks.
Well on paper, there are reasons to be concerned. If you are an engineer of
experienced software, trust your instincts. The software work teaches a lot
lessons, some at the unconscious level. If something tells you that a model of
design is destined to fail (even if this cannot be demonstrated clearly
explicit), there are reasons to dedicate more time to its study or to develop another one
different
15
obtain feedback to use it in order to correct modeling errors,
change the wrong interpretations and add the characteristics or functions
inadvertently omitted.
In the last three decades, numerous modeling methods have been developed.
of requirements. Researchers have identified the problems of the analysis of
requirements and their causes, and they have developed several modeling notations and the
heuristic sets corresponding to solve those. Each method of
analysis has a unique viewpoint. However, they are all connected by
certain operational principles:
Principle 2. The functions that the software will perform must be defined. The functions of
software gives a direct benefit to end users and also provides support
internal for the characteristics that are visible to those. Some functions
they transform the data flowing into the system. In other cases, the functions
they activate some level of control over the internal processing of the software or over the
external elements of the system. The functions are described in many and different
levels of abstraction, ranging from a general purpose statement to the
detailed description of the processing elements that must be invoked.
16
determined by its interaction with the external environment. The inputs provided by the
end users, the control of the data carried out by an external system or the
data monitoring gathered on a network is the reason why the software is
behaves in a specific way.
Principle 5. The analysis work must progress from essential information towards the
detailed implementation. Requirements modeling begins with the
description of the problem from the end user's perspective. It describes the
"essence" of the problem without considering the way in which the solution will be implemented.
For example, a video game requires the player to 'teach' its protagonist.
in what direction to advance when moving towards a dangerous maze. That is the
essence of the problem. The detailed implementation (usually described as
part of the design model) indicates how the essence will be developed. For the game of
video, perhaps a voice input will be used, or a command will be typed on a keyboard, or such
see a joystick (or mouse) pointing in a specific direction, or perhaps moving in it
make a motion-sensitive device.
17
guide the construction of every detail (for example, the layout of the plumbing). From
In a similar way, the design model created for the software provides several points.
different views of the system
Principle 2. Always take into account the architecture of the system that is going to be
Principle 3. The design of the data is as important as the design of the functions.
processing. The data design is an essential element of the design of the
architecture. The way in which data objects are created within the design
It cannot be left to chance. A well-structured data design helps simplify the
program flow makes it easier to design and implement components of
software and more efficient joint processing.
18
Simplicity of design. A well-designed interface makes integration easier.
easy and helps those who put it to the test to validate the component functions.
Principle 5. The user interface design must meet the needs of the
end user. However, in any case, it must highlight the ease of use. The interface
user is the visible manifestation of the software. No matter how sophisticated
its internal functions, nor how inclusive its data structures are, nor
As well designed as its architecture may be, a poor interface design often...
leads to the perception that the software is 'bad'.
Principle 7. The components should be loosely coupled to each other and to the
external environment. Coupling is achieved in many ways: with an interface of
component, with messaging, through global data, etc. As we
increases the level of coupling, it also increases the probability of
error propagation and decreases the overall ease of maintenance for
software. Therefore, the coupling of components must be kept as low
as long as it is reasonable.
maintenance in the future. If the design is difficult to understand, it will not serve as a means
of effective communication.
Principle 9. The design must be developed iteratively. The designer must seek
more simplicity in each iteration. Just like happens with almost all activities.
creative, the design occurs iteratively. The first iterations serve to
19
improve the design and correct errors, but the subsequent ones should seek a design as
as simple as possible.
The principles that guide coding work are closely related to the
style, languages, and programming methods. However, it can be stated certain
number of fundamental principles:
Choose a programming language that meets the needs of the software that
it will be developed and the environment in which it will operate.
20
3.4.1.2. Programming principles
Understand the software architecture and create interfaces that are consistent with
she.
Create nested loops in such a way that they can be easily tested.
• Select meaningful names for the variables and follow other standards
encoding locales.
Create a visual image (for example, lines with indentation and blank) that helps to
understand.
Carry out unit tests and correct the errors that are detected.
The test is the process that executes a program in order to find an error.
A good test case is one that has a high probability of finding an error that
It has not been detected so far.
21
3.4.1.5. Deployment Principles
the executable software, supporting data files, help documents, and others
relevant information, for later conducting a thorough beta test with users
real. All installation scripts and other operational features must
to run completely in as many different computing configurations as possible
possible (for example, hardware, operating systems, peripheral equipment,
network configurations, etc.
22
Principle 5. Defective software must be corrected first and then delivered.
When time is tight, some software organizations deliver
low quality increases with the warning that the errors "will be corrected in
the next delivery." This is an error. There is a saying in the software business that
it says: "Customers will soon forget that you delivered a high-quality product,
but they will never forget the problems caused by a low-quality product. The
software reminds them every day.
On a somewhat pragmatic level, David Garvin [Gar84], from Harvard Business School,
suggests that 'quality is a complex concept with multiple facets' that can
to describe oneself from five different points of view. The transcendental point of view
says (like Persig) that quality is something that is recognized immediately, but that not
it is possible to define explicitly. The user's point of view conceives quality in
terms of the specific goals of the end user. If a product meets these, it has
quality. From the manufacturer's point of view, it is defined in terms of specifications
originals of the product. If it meets them, it has quality. The point of view of
The product suggests that quality is related to inherent characteristics.
(functions and features) of a product. Finally, the perspective based on
the value is measured according to what a customer is willing to pay for a
product. In reality, quality includes all this and more.
Effective software process that is applied in a way that creates a useful product that
provides measurable value to those who produce it and to those who use it
Rog
3082 ]
3.5.2. The software quality dilemma
If you produce a low-quality software system, you lose because no one does it.
will want to buy. On the other hand, if you dedicate infinite time, too much effort and
huge sums of money to obtain a perfect software element, then
23
it will take so long to finish and will be so expensive to produce that anyway
it will be out of business. In any case, it will have lost the market window,
or they may simply have exhausted their resources. Thus, the people of the
industries try to position themselves in that magical midpoint where the product is
good enough not to be rejected immediately, not in the evaluation,
but it is not a perfectionist object nor with too much work that turns it
in something that requires too much time or money to be completed
Mey \l 3082 ]
The cost of quality includes all costs incurred in the pursuit of quality.
quality or when carrying out activities related to it and the subsequent costs of it
lack of quality. To understand these costs, an organization must have
measurement units that provide the foundation of the current cost of quality, that
identify the opportunities to reduce those costs and provide a basis
normalized for comparison. The cost of quality can be divided into the costs that
they are associated with prevention, evaluation, and failure.
3.5.2.3. Risks
The implication is that poor quality software increases risks for both
developer as for the end user. In the previous subsection, one of
such risks (the cost). But the harmfulness of poorly designed applications and
implemented is not always measured in dollars and time
24
The quality of software is not only seen. It is the result of good management of
project and correct practice of software engineering. The management and
practices are applied in the context of four main activities that help with
software team to achieve high quality in this: methods of engineering
software, project management techniques, quality control actions and
software quality assurance.
If you expect to build high-quality software, you must understand the problem you want.
resolver. It must also be able to create a design that is in accordance with the
problem and that at the same time has characteristics that lead the software to the
dimensions and quality factors
25
high-quality software. Furthermore, quality assurance consists of a
set of audit functions and reports to evaluate effectiveness and completeness
of quality control actions.
Standards
Review and audit
Tests
Collection and analysis of errors
Change management
Education
Security Management
Security
Risk management
26
a preliminary concept until its full operational deployment.
3082 ]
The People-CMM defines the following key practice areas for the personnel of
template
administrative, training, compensation, analysis and development of competencies,
professional development, team development, and team/culture development
among others. Organizations that achieve high levels according to this model
maturity of personnel capabilities have a very high probability of
achieve the implementation of effective administrative practices in the projects of
software.[ CITATION Mod 3082 ]
3.7.1.1.1. Participants
27
2. Project managers (technical), who must plan, motivate, organize and
to control the professionals who do the software work.
5. End users, who interact with the software once it is released for its
productive use.
There are almost as many human organizational structures for software development
as organizations that develop it. For better or for worse, the structure
Organizational structure cannot be easily modified. The concern for the
practical consequences and the policies of organizational change is not within the
scope of responsibility of the software project manager. However, the
organization of the people directly involved in a new project of
Software is within the scope of the project manager's action.
28
3.7.1.2.1. Scope of the software
The scope of software describes the functions and features that are delivered to the
end users; the data that is input and output; the 'content' that is presented to
the users as a consequence of using the software and the performance, the
restrictions, the interfaces and the reliability linked to the system.
Project planning begins with the fusion of product and process. Each
function that will be subjected to engineering by the team must go through the
set of activities of a conceptual framework that defines software organization.
A software team must have a significant degree of flexibility when choosing the
software process model that is best for the project and tasks of the
software engineering that populates the process model once chosen. A
29
relatively small project that is similar to previous efforts can
achieve better by using the linear sequential approach.
Although the terms measure, measurement, and metric are often used in a
interchangeable, it is important to observe the subtle differences between them. In the
In the context of software engineering, a measure provides a quantitative indication.
of the extension, quantity, dimension, capacity, or size of some attribute of a
product or process. Measurement is the act of determining a measure. A measure
quantitative measure of the extent to which a system, component, or process possesses an attribute
determined.
30
Formulation. The derivation of appropriate software measures and metrics for the
representation of the software that is being built.
The technical work in software engineering begins with the creation of the model
of requirements. In this stage, the requirements are derived and a
foundation for design. Therefore, product metrics that are desirable
provide understanding about the quality of the analysis model.
Rog 3082 ]
31
authors observe that high-quality specifications are stored
electronically, they are executable or at least interpretable, they are annotated by
relative importance, they are stable, they have a version, they are organized, they count with
The design metrics for computer software, like all the others
software metrics are not perfect. The debate continues regarding their effectiveness and
about the way they should be applied. Many experts argue that they
requires more experimentation before being able to use the design measures, although the
design without measurement is an unacceptable alternative. In the following sections, it
they examine some of the most common design metrics for software
computer. Each one can provide you with improved understanding and all
they can help the design evolve towards a higher level of quality.
[ CITATION Rog 3082 ]
32
Coupling. The physical connections between elements of OO design (for example, the
number of collaborations between classes or the number of messages that pass between them
Completeness. The only difference between completeness and sufficiency is 'the set of
characteristics against which abstraction or the component of
design" [Whi97]. Sufficiency compares abstraction from the point of view of the
current application.
Similarity. The degree to which two or more classes are similar in terms of their
structure, function, behavior or purpose is indicated by this measure.
33
Test metrics fall into two broad categories: 1) metrics that
they try to predict the likely number of tests required at various levels of
test and 2) metrics that focus on test coverage for a component
determined
Public and protected percentage (PPP). Public attributes are inherited from others.
classes and, therefore, are visible to those classes. Protected attributes are
accessible to methods in subclasses. This metric indicates the percentage of the
class attributes that are public or protected. High PPP values increase the
probability of side effects between classes because of public attributes and
protected lead to high potential for coupling. Tests must
designed to ensure the discovery of such side effects
Public access to data members (PAD). This metric indicates the number of classes
(or methods) that can access other class attributes, a violation of the
encapsulation. High values of APD lead to the potential for side effects
between classes. The tests must be designed to ensure discovery of
such side effects
34
Number of root classes (NCR). This metric is a count of the different hierarchies.
of class that are described in the design model. The suites of must be developed
Test for each root class and the corresponding class hierarchy. As per the
NCR increases, so does the testing effort.
Fan-in (FIN). When used in the OO context, the fan-in (input fan) in the
inheritance hierarchy is an indication of multiple inheritance. END > 1 indicates that a class
inherits its attributes and operations from more than one root class. FIN > 1 should be avoided.
when possible.
IEEE Std. 982.1-1988 [IEE93] suggests a software maturity index (SMI) that
provide an indication of the stability of a software product (based on
changes that occur for each product release.
Accuracy. A program must operate correctly or it will provide little value to its
Users. Accuracy is the degree to which the software performs the required function.
The most common measure of accuracy is defects per KLOC, where a defect
it is defined as a verified deficiency according to the requirements.
35
find an error, the ease with which it adapts if its environment changes or improves
if the client wants a change in requirements.
Integrity. The integrity of software has become increasingly important in the era
of cyber terrorists and hackers. This attribute measures the ability of a system to
withstand attacks (both accidental and intentional) on their security. The attacks
can be made in the three software components: programs, data and
documentation.
A quality metric that provides benefits both at the project level as well
in the process is the defect removal efficiency (ERD). Essentially, the ERD
it is a measure of the filtering ability of assurance and control actions
of quality as they apply throughout all activities of the framework
conceptual of the process.
The Software Engineering Institute (SEI) developed a very comprehensive manual [Par96b]
to establish a software metric program 'goal-oriented'. The
the manual suggests the following steps:
36
6. Identify quantifiable questions and the related indicators that will be used.
to help achieve measurement goals.
7. Identify the data elements that will be collected to build the indicators
that help answer the questions.
Risk analysis and management are actions that assist the team in
software to understand and manage uncertainty. Many problems can destroy
a software project. A risk is a potential problem: it can occur, it can
it won't happen. But, regardless of the outcome, it's really a good idea to identify it,
assess its probability of occurrence, estimate its impact, and establish a plan for
contingency in case the problem actually occurs.
37
2. Outline the consequences of the risk.
4. Evaluate the overall accuracy of the risk projection so that there will be no
misunderstandings.
Three factors affect the likely consequences if a risk occurs: its nature,
its scope and its timing. The nature of the risk indicates the problems
probable if it occurs. For example, a poorly defined external interface in the
client hardware (a technical risk) will hinder early design and testing, and
it will likely lead to system integration issues later on
project. The scope of a risk combines the severity (how serious is it?) with its
global distribution (how much of the project will be affected or how many participants will be)
will they damage?). Finally, the timing of a risk considers when and for how long
time will feel the impact. In most cases, it is desired that the 'bad
news occur as soon as possible, but in some, the more
improve it, better.
4.1. PUDS
38
known and documented of the Unified Process is the Rational Unified Process
or simply RUP.
4.1.1. Characteristics
The Unified Process assumes that there is no single model that covers all
aspects of the system. For this reason, there are multiple models and views that
39
define the software architecture of a system. The analogy with construction is
Clara, when you build a building there are various plans that include the different...
services of the same: electricity, plumbing, etc.
The Unified Process requires the project team to focus on identifying the
critical risks at an early stage of the life cycle. The results of each
iteration, especially those from the Elaboration phase must be selected in a
order that ensures that the main risks are considered first.
4.2. UML
40
They can use all the modelers.
He intends to work properly with everyone, or at least with the majority of them.
existing development process.
4.2.4. Model
It is a representation, in a certain medium, of something in the same or another medium. The
They can capture requirements about their application domain, the way in which the
users will use it, its division into modules, the common patterns used in its
construction and other things.
Semantics and presentation: the semantic elements of the model carry the
meaning of the model, that is, they transport the semantics. They are used for the
generalization of the code, the validity check, the metrics of
complexity. The visual presentation shows the semantic information in a way
that can be considered, reviewed, and corrected by human beings.
Context: The models are artifacts in a computer system, and they are used
within a larger context that gives them complete meaning. This context
includes the internal organization of the model, annotations on the use of each
model in the total development process, a system of default values and of
assumptions for the creation and manipulation of the element, and a relationship to
environment in which they are used.
41
5. SOFTWARE ENGINEERING OF THE PROJECT
42
5.2. Organization of personnel (Structure of the software development team)
43
For this project, it was determined to use the Centralized Team structure.
Controlled (CC) for the following reasons:
USER ENTRIES
# Detail
1 Product registration interface
2 Sales registration interface
3 Customer registration interface
4 Order Registration Interface
5 Receiving registration interface
6 Employee registration interface
7 Supplier registration interface
USER OUTPUTS
# Detail
1 Product display interface
2 Sales visualization interface
3 Customer viewing interface
4 Order visualization interface
5 Reception viewing interface
6 Employee display interface
7 Supplier visualization interface
USER REQUESTS
# Detail
1 Salesperson Report
44
2 Product report
3 Product report with brands (For
marketing
FILES
# Detail
1 Billing text file for
taxes
EXTERNAL INTERFACES
# Detail
1 Printing of adhesive labels with code of
bars
Weighting factor
Parameter Count Subtotal
Simple Medium Complex
Number of tickets
7 2 2 3 21
of user
Number of exits
7 0 1 8 56
of user
Number of
requests of 3 0 3 09
user
Number of files 1 0 0 11
Number of
1 0 0 11
external interfaces
Count Total 88
∑ Ct
45
No influence
Is performance critical? 5
∑ Fi 46
E=20
46
PF=∑Ct*(0.65+0.01*∑Fi)
PF = 97.68
Productividad = 29,5
P = PF/E
E = PF / P
E=97.68/29.5
E=3.31
5.3.5. Calculation of the number of people who will make up the development team
software.
Duration = 3.31 / 2
Personnel Cost
3 x 35 x 8 x 25 x 1.6
47
Costo = 35 * 97.68
3418bs
Impact Possible
Risk Probability COST
o Solution
Damage to the To ensure
area of the teams
85 30 300
development of electronic
project s
Withdrawal from a Hire
member of the 25 20 personal 500
team new
Damages
Assure
climatic
the teams
in the area of 80 20 200
electronic
development of
project
Impact Possible
Risk Probability COST
o Solution
Increase hours
Technology for work
300
new no 30 50 to train on
tested the new
technology
Personal no Empower
40 30 500
trained personal
Impact Possible
Risk Probability COST
o Solution
The resources 50 30 Inform the ------
they are not in charge of
available in project that the
48
closing time
its moment it's going to be seen
affected
New
Increase the
characteristics 55 50 ------
working hours
requested
The teams
clients no
Request
they have
25 30 update of 200
the requirements
teams
that the system
needs
Request improvement
Larger number
of resources of
of users of 25 30 --------
server of
the planned
production
5.5.2. Standards
This provides a guide for the use of the new series of standards.
international, called Requirements and Quality Assessment of Products of
Software (SQuaRE). It is a standard based on ISO 9126 and 14598 and its
the main objective is to establish a guide for the development of the products of
software with the specification and evaluation of quality requirements. It establishes
criteria for specifying quality requirements for software products, their
metrics and their evaluation. The software product must incorporate some
characteristics, in such a way that their efficiency of use is guaranteed for the
customer requirements. It is recommended that quality requirements should
be proportional to the needs of the application and how critical it is to be correct.
functioning of the implemented system.
49
SO/IEC 2500n. Quality management division. This division defines all the
common models, terms, and references mentioned in the other divisions
of SQuaRE
This standard defines three different views regarding the study of quality of a
software product:
Internal view: it deals with the properties of the software such as: size,
complexity or compliance with object-oriented guidelines. This view
it can be used from the early stages of development to detect deficiency of
software.
50
External view: analyze the behavior of the software in production and study its
attributes, for example: the performance of software on a certain machine, the
memory usage of a program or the time of operation between failures. This
the software is used once it is complete and ready for production.
Current view: measures the productivity and effectiveness of the end user when using the
software. This view is used once the software is ready and will be evaluated by the
client and will depend on its determining factors.
5.6. Budget
NAME COST
PLANNING 400
QUALITY 350
RISK 2000
TOTAL 0
PRICE TOTAL
DETAIL QUANTITY UNIT
(Bs.) (Bs.)
Desktop Computer
2 Team 3500 7000
Intel Core i3
Project Engineering 15 Days 150 150
TOTAL 7150
51
Electricity bill
375 MES 750
dear
Water bill
225 MES 450
estimated
Internet bill
per month (Plan
278 MES 576
ADSL HIGH
SPEED
TOTAL 1776
DETAIL QUANTITY
Stationery and photocopy 1000 Leaves 150 150
PIXMA 1700 Printer 2 Team 500 1000
TOTAL 0
DETAIL COST
Partial cost of development tasks
33600
the software
Partial cost of resources 7150
Partial cost of project management 2750
Partial cost of basic services 1777
Partial cost of extra material 1150
TOTAL 0
52
The means by which we will communicate with the client will be via email.
landline or mobile phone, to schedule a meeting and keep you informed about
the progress of the project.
6. PROJECT ENGINEERING
53
Allow to register and deregister a
sale and the search for it.
RF006 Manage Sales
The code is autogenerated by the system.
The description of the sale is unique.
Allow to register and unregister a
order and the search for it.
RF007 Manage Orders
The code is auto-generated by the system.
The order description is unique.
Allow to register and unregister a
reception and the search for it.
Manage
RF008 The code is auto-generated by the system.
Receptions
The description of the reception is
unique.
Allow user login to
web system, through the login
(username) and password.
The user password: length
Authentication of the minimum 8 characters, maximum 12, therefore
RF008
user in the system less one special character and one letter
lowercase and uppercase, as well as a
number).
Permissions will depend on the role that
have.
Allows the user to see a list of
Report: Stock of
RF009 products from a date range of
Products.
registration
Report: Purchase and Allows the user to know the profit at
RF010
Sale detail within a range of dates
54
Software Requirements
For the development of this system, various tools are required such as
to be
Software Requirements
During the registration of any type of data, the user will be asked for the
confirmation of the action.
The system will display messages confirming an action or notifying of an error.
All form fields must be validated before proceeding.
an action (Example: Save, Modify and delete) in the database.
Automatic backup of the database every night at
12:00 PM schedules.
Modification and updating of data through forms.
An error will be notified through a message and a sound.
A user manual to train the staff.
The application must have access levels for different roles.
Password expiration
Log of the operations performed on the database tables.
55
57
6.2.2. Specification of the use case 'Register sale'.
58
If the user does not fill in the entire quantity column in the list of
9.1 selected products, an error message is displayed "se
they must fill in the quantity column
If a required field is missing, an error message is displayed.
10.1 All required fields must be completed to
continue
59
6.2.3.2. Relational data model
60
6.3. Design Model
61
sd Sequence diagram
Enter interface()
callmethodtoobtaindata()
sendrequest()
send data()
show data()
register sale()
registerSale()
Send information()
Information saved()
Check Sale()
Deactivate sale()
Change State()
Send Information()
Check Sale()
62
Component Diagram
WebApplication
Web App
Products Web App
Web App Web App Web App Web App
Brands Receptions Clients
Sales Orders
Service
Services
Server
Web
Software
Database
BDPerson BD Orders
BD
Clients
BD
BD Employees
BDProducts BD Sale
OrderDetails
BD
BD BD BD Suppliers
SalesDetail Reception ReceptionDetail
Operating System
System
Operation
Linux
External Connections
63
cmp Deployment Diagram
Model Interface
ORM Object LAN - WAN Web explorer
(IE10, Firefox,
Controller Chrome
Data Business
Virtual directory of
the Application
Base motor of
Reporting Agent
data
SQL
7. CONCLUSIONS
8. RECOMMENDATIONS
Design, model, and describe each future update that will be made to
system.
Apply information security to achieve a higher degree of
availability, integrity, and confidentiality of data.
64
Conduct a study of the system vulnerabilities (pentesting) and apply
a plan to mitigate or remove such vulnerabilities.
9. BIBLIOGRAPHY
Meyer, B. (n.d.).
65