0% found this document useful (0 votes)
7 views35 pages

Systems Analysis and Design Overview

The document presents a table of contents that summarizes the key topics to be addressed in the theoretical framework of a project. Among these topics are systems analysis and design, the Unified Modeling Language (UML), web services, databases, programming languages, and software engineering. It also includes lists of figures that show diagrams related to these theoretical topics.

Translated by

ScribdTranslations
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views35 pages

Systems Analysis and Design Overview

The document presents a table of contents that summarizes the key topics to be addressed in the theoretical framework of a project. Among these topics are systems analysis and design, the Unified Modeling Language (UML), web services, databases, programming languages, and software engineering. It also includes lists of figures that show diagrams related to these theoretical topics.

Translated by

ScribdTranslations
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

INDEX OF CONTENT

Page

2. THEORETICAL FRAMEWORK ..................................................................1

2.1. ANALYSIS AND SYSTEM DESIGN

2.1.1 System of informationn ...........................................................1

2.1.2 Ciclo of Systems Development...............................2

2.1.3 Methods data collectionn ...........................3

2.2. LANGUAGE UNIFIED MODELING LANGUAGE UML...................6

2.2.1 Introduction a UML..................................................................6

Diagrams UML .6

2.3. SERVICES WEB..................................................................12

2.3.1 Types Web services .........................................................13

2.4. BASES FROM DATA14

2.4.1 Definition database ................................................14

2.4.2 System Database Managers ..................................15

2.5. LENGUAJES PROGRAMMING18

i
2.5.1 JavaScript ..............................................................................19

2.5.2 Java

2.5.3 PhP.........................................................................................20

2.5.4 C#...........................................................................................21

2.5.5 Environment Integrated Development Environment (IDE) ..................................21

2.6. ENGINEERING THE SOFTWARE..............................................23

2.6.1 The Software Process........................................................23

2.6.2 Models of the software process..........................................24

2.6.3 Methodology RUP ..................................................................29

ii
INDEX OF FIGURES

Page

FIGURE 1. BASIC ACTIVITIES OF INFORMATION SYSTEMS.........2

FIGURE 2. USE CASE DIAGRAM MODEL.......................................9

FIGURE 3. SEQUENCE DIAGRAMS MODEL ........................................10

FIGURE 4. CLASS DIAGRAM MODEL..................................................11

FIGURE 5. COLLABORATION DIAGRAM MODEL ..................................12

FIGURE 6. ARCHITECTURE OF WEB SERVICES ...............................13

FIGURE 7. WATERFALL MODEL ........................................................................26

FIGURE 8. INCREMENTAL DEVELOPMENT MODEL .........................................27

FIGURE 9. MODEL OF EVOLUTIONARY DEVELOPMENTO ..........................................28

FIGURE 10. STRUCTURE OF RUP .......................................................................30

FIGURE 11. PHASES OF RUP

iii
2. THEORETICAL FRAMEWORK

2.1. SYSTEMS ANALYSIS AND DESIGN

The analysis and design of systems carried out by systems analysts aims to
understand what humans need to analyze the input or flow of data from
In a systematic way, process or transform the data, store it, and produce
information in the context of a specific organization. Through an analysis
detailed, analysts seek to identify and solve the right problems. In addition,
the analysis and design of systems is used to analyze, design and implement the
improvements in support for users and business functions that can be
carried out through the use of computerized information systems1

The analysis and design of systems refers to the process of examining the situation of a
company with the purpose of improving with more suitable methods and procedures.
The development of systems has two components. Set or arrangement of elements
organized to carry out some methods, procedures or control through the
information process, which are:

Analysis: It is the process of classification and interpretation of facts, diagnosis of


problems and use of information to recommend improvements to the systems.

Design: Specify the characteristics of the finished product.

2.1.1 Information system

It is a set of elements that interact with each other with a common purpose; that allows
that the information is available to meet the needs in a
organization, an information system does not always require having resources

1KENDALL, KENNETH E. AND KENDALL, JULIE E. Systems Analysis and Design. Eighth edition.
Page 6.

1
computational although its arrangement facilitates handling and interpretation of
the information by the users.2

The elements that interact with each other are: the computer equipment (when it is
(available), human resources, source data or information, executed programs
through computers, telecommunications, and policy procedures and
operating rules.3

Information systems perform 4 basic fundamental activities:

FIGURE 1. BASIC ACTIVITIES OF SYSTEMS


OF INFORMATION

Sources: Izamorar, Basic activities of an Information System.

2.1.2 System Development Life Cycle

The System Development Life Cycle is a phased methodology for analysis


and design, according to which systems are developed better by using a cycle
specific activities of the analyst and the users.4

2[Link]
3Thesame place.
4
KENDALL KENNETH and KENDALL JULIE, Systems Analysis and Design, 8th ed. Pearson Education,
Mexico, 2011, Page 8.

2
System development life cycle, but in general they praise its methodology.
organized. Although each phase is presented discreetly, in reality, it never
it can be carried out as a separate step, but several activities can
occur at the same time, and they can even be repeated.5
FIGURE 8. SYSTEMS DEVELOPMENT LIFE CYCLE

Source: KENDALL KENNETH and KENDALL JULIE, Systems Analysis and Design, 8th ed. Pearson
Education, Mexico, 2011, Page 8.

2.1.3 Methods of information gathering

There are three key interactive methods you can use to gather requirements.
information humans of the organization members: interviews, design of
joint application design (JAD) and surveys applied to individuals through
questionnaires. Although they are different in their implementation, these methods have
many things in common. The basis of their shared properties is to speak with the
people in the organization and listen to them to understand their interactions with the
technology, through a series of carefully crafted questions.

5
KENDALL KENNETH and KENDALL JULIE, Systems Analysis and Design, 8th ed. Pearson Education.
Mexico, 2011, Page 8.

3
[Link] Interview

An interview to gather information is a directed conversation with a


specific purpose, in which a question and answer format is used. In the
In an interview, it is necessary to gather the interviewee's opinions and what they feel about it.

current state of the system, the organization's objectives and the personal ones, and the
informal procedures for interacting with information technologies.6

Steps for preparing for an interview:

1. Read the material on the background. Read and understand everything you can about
the backgrounds of the interviewees and the organization. The corporate website,
an updated annual report, a corporate newsletter or any
publication issued to explain the company's operations to the public
They are useful sources of information. You can check any information on the Internet.
corporate.

2. Establish the objectives of the interview. Define the objectives of the interview based on
from the researched background and from your own experience.

3. Decide who to interview. Include key people at all levels who are seen
affected by the system in a certain way.

4. Prepare the interviewee. To prepare the person who is going to be interviewed, call them
call or send an email in advance, so that
the interviewee is prepared; if the interview is very detailed, send it in advance
the questionnaire by email so that the interviewee can think about their
answers.

5. Decide on the types of questions and their structure. Write questions to cover
the key areas of HCI (human-computer interaction) and the decision-making process

6
KENDALL KENNETH and KENDALL JULIE, Systems Analysis and Design, 8th ed. Pearson Education,
Mexico, 2011, Page 103.

4
of decisions that has been discovered when determining the objectives of the
interview.

Types of questions:

Open-ended questions. Open-ended questions are of the type: 'What do you think about'
put all the managers on an intranet?
decision on the scheduling of times and dates. What ways does it extend the
system on its ability to perform tasks that would not be possible to carry out in any way
another means?” Open-ended describe the options that the interviewee has to respond.
The answer can consist of two words or two paragraphs.

Closed questions. The other alternative consists of closed questions;


They assume the basic forms 'Is it easy to use the current system?' and 'How many'
What subordinates are under your charge?
interviewee, because he can only respond with a finite number such as
"None", "One" or "Fifteen". A closed question restricts the interviewee's response.
available.

[Link] Questionnaire

It is a technique for gathering information that allows system analysts


study the positions, beliefs, behavior, and characteristics of various
key people in the organization who may be affected by the current systems
and proposed.

Through the use of questionnaires, the analyst can seek to quantify what
found in the interviews. Additionally, it is possible to use questionnaires to determine
how widespread or limited is a sentiment expressed in one of the
interviews. On the contrary, questionnaires can be used to survey a
large sample of system users in order to detect problems or carry out
discussion table important issues before scheduling interviews.

5
2.2. UNIFIED MODELING LANGUAGE UML

2.2.1 Introduction to UML

UML is a standard language for writing software blueprints. UML can be used
to visualize, specify, build, and document the artifacts of a system that
involves a large amount of software.7

UML is suitable for modeling from business information systems to


web-based distributed applications, and even for embedded systems of
real-time very demanding. It is a very expressive language that covers all aspects.
necessary to develop and then deploy such systems. Although it is expressive,
UML is not difficult to learn or use. Learning to apply UML effectively.
it begins by creating a conceptual model of the language, which requires learning
three main elements: the basic building blocks of UML, the rules
that dictate how those blocks can be combined and some common mechanisms
that apply throughout the entire language.8

2.2.2 UML Diagrams

A diagram is a graphical representation of a set of elements.


most often visualized as a connected graph of nodes (elements) and arcs
(relationships). Diagrams are drawn to visualize a system from different
perspectives, so that a diagram is a projection of a system.
The diagrams that are most commonly used in UML are the ones that will be mentioned.
continuation:

7G. BOOCH, J. RUMBAUGH AND I. JACOBSON, the unified modeling language 2AEdition 2006, Page.
15
8G. BOOCH, J. RUMBAUGH, and I. JACOBSON, the unified modeling language 2AEdition 2006, Page.

259

6
[Link] Use case diagram

Use case diagrams are used to model the behavior of how


A User (Actor) interacts with a system under development. These diagrams
they facilitate that a system, subsystems, or classes are more understandable for the
designers and developers.9

A use case diagram consists of the following elements:

Actor.
Use cases.
Relationship and dependency, generalization and association.

Elements

An actor represents a coherent set of roles that the users of


The use cases represent interacting with this. Normally this role is
performed by a person, a hardware device, or even another system at
interact with our system.
Use Case: It is a set of sequences of actions or tasks that are performed.
after an order given by some external agent. Graphically, it is represented as
an ellipse.

Relationships: in UML there are four types of relationships:

Dependency: It is a very particular form of relationship between classes, in which


one class depends on another, that is, it is instantiated (it is created). Graphically, a

dependency is represented with a dashed line, possibly directed, that


sometimes includes a label.

Dependency

9Ibídem Page 15

7
Association: the association relationship describes semantic connections between the

individual objects of classes. Associations provide the connections,


with which objects of various classes can interact. Graphically,
an association is represented as a continuous line:

Associations

Generalization. One generalization es a relationship of


specialization/generalization in which the specialized element (Child) is
based on the specialization of the generalized element (Parent). The child shares
the structure and behavior of the father. Graphically, a relationship of
generalization is represented as a continuous line with an arrowhead
empty pointing at the father.

Generalization

Realization: It is a semantic relationship between classifiers, where a


classifier specifies a contour that another classifier guarantees that
will fulfill. One can find relations of realization in two places: between
interfaces and the classes and components that implement them, and among the cases of
use and the collaborations that carry them out. Graphically, a relationship is
represents a mixture between a generalization and a relationship of
dependency.

Execution

8
FIGURE 2. USE CASE DIAGRAM MODEL

Source: JAIME O. MONTOYA GUZMÁN, Examples of UML diagrams,


Graphical user interfaces, and uses of UML in reverse engineering

[Link] Sequence diagram

Sequence diagrams can illustrate a succession of interactions between


classes or instances of objects over time. Often, the diagrams of
sequence is used to illustrate the processing described in the case scenarios
of use. In practice, sequence diagrams are derived from case analysis of
they are used in system design to derive interactions, relationships
and the methods of the objects in the system. Sequence diagrams are used
to show the general pattern of activities or interactions in a use case.10

10
KENDALL KENNETH and KENDALL JULIE, Systems Analysis and Design, 8th ed. Pearson Education,
Mexico, 2011, Page 294.

9
FIGURE 3. SEQUENCE DIAGRAM MODEL

Source: JAIME O. MONTOYA GUZMÁN, Examples of UML diagrams


Graphical user interfaces, and uses of UML in reverse engineering

[Link] Class diagram

Class diagrams are the most used in modeling object-oriented systems.


to objects. A class diagram shows a set of classes, interfaces and
collaborations as well as their relationships. Class diagrams are used to
model the static design view of a system. This mainly includes modeling
the vocabulary of the system, model the collaborations or modular the scheme.11

11G. BOOCH, J. RUMBAUGH AND I. JACONSON, the unified modeling language 2AEdition 2006, Page.
113

10
FIGURE 4. CLASS DIAGRAM MODEL

Source: JAIME O. MONTOYA GUZMÁN, Examples of UML diagrams


Graphical user interfaces, and uses of UML in reverse engineering

[Link] Collaboration Diagram

The collaboration diagram is a type of interaction diagram whose objective is


describe the dynamic behavior of the information system showing how
objects interact among themselves, that is, with which other objects they have connections or

exchanges messages a certain object.12

The collaboration diagrams for their better representation in a practical way are
composed of the following elements:

Object: An object is represented with a rectangle within which is included the


name of the object and, if desired, the name of the class, separating both by
two points.

Link: In the diagram, a link is represented as a solid line that


link both objects and have one or more associated messages in both

12Unable to access external links or translate content from URLs.

11
directions. As a link, it establishes an association relationship between classes,
It can also indicate its navigability using an arrow.

Message: A message is represented with a small arrow placed next to the


link line to which it is associated. The direction of the arrow goes from the object
sender of the message to the recipient of the same. Along with it, the name of the
message and its arguments.

FIGURE 5. COLLABORATION DIAGRAM MODEL

Source: [Link], Collaboration Diagram

2.3. WEB SERVICES

A Web Service is a component that we can access through Web protocols.


standard, using XML for information exchange.

Web Service to a collection of procedures (methods) that we can call


from anywhere on the Internet or our intranet, this mechanism being
invocation completely independent of the platform we use and of the language of
programming in which the service has been implemented internally.13

13Invalid input. Please provide a text for translation.

12
Web services can be combined with very low coupling to achieve the
execution of complex operations. In this way, the applications that
they provide simple services that can interact with others to 'deliver' services
added sophisticated.14

FIGURE 6. ARCHITECTURE OF WEB SERVICES

Source: [Link]

2.3.1 Types of Web services

[Link] SOAP Web Services

SOAP web services, or 'big' web services, use XML messages to


intercommunicate that follow the SOAP (Simple Object Access Protocol) standard, a
XML language that defines the architecture and format of messages. Such systems
they usually contain a machine-readable description of the description of the
operations offered by the service, written in WSDL (Web Services Description

14The provided URL does not contain text that can be translated.

13
Language), which is an XML-based language for defining interfaces
syntactically.

[Link] RESTful Web Services

RESTful Web Services (Representational State Transfer Web Services)


are suitable for basic ad-hoc integration scenarios. Such services
Web services usually integrate better with HTTP than SOAP-based services.
that do not require XML messages or service terminations in file format
WSDL.

REST web services use well-known standards such as HTTP, XML,


URI, MIME, and they have a 'lightweight' infrastructure that allows services to
build using minimal tools. Thanks to this, the development
RESTful services are inexpensive and have very few barriers to adoption.

At the moment we decided to develop Software with data extraction from the internet
it is necessary to apply web services, we also have to
verify the need for such software for the correct application of a type of
web services such as SOAP or REST, which offer a wide variety for the
communication and message exchange between both mobile and web applications.

2.4. DATABASES

2.4.1 Definition of databases

A database is a central source of data so that multiple users can access it.
share for use in various applications. The heart of a database is the
database management system (DBMS), which allows creating, modifying
and updating the database, data recovery, and report generation

14
and screens. To the person who ensures that the database meets its objectives
he is known as a database administrator.15

2.4.2 Database Management System

A Database Management System (DBMS)


Management System) is a software system that allows the definition of bases
of data; as well as the choice of the necessary data structures for the
storage and retrieval of data, whether interactively or through a
programming language. A relational DBMS is a data model that facilitates
the users describe the data that will be stored in the database along with
a group of operations to manage the data.16

[Link] MySQL

Simple installation manager that acts on the client side (server) and of code
open with commercial license available. It currently belongs to Oracle
Corporation. It manages relational databases, is multi-user and the most used.
within free software. It stands out for requiring little memory and processor to
to function, also leading to a greater speed in its operations. It is used
mainly for web development.17

MySQL is a relational database management system. The software of


MySQL is open source, which means that it enables anyone with
A broad knowledge of computer science can use and modify software.
Anyone can download MySQL software from the internet and use it without having to
pay for the acquisition. In addition to being a very fast, reliable database manager,

15
KENDALL KENNETH and KENDALL JULIE, Systems Analysis and Design, 8th ed. Pearson Education
Mexico, 2011, Page 403
16Unable to access the URL provided.
17Unable to access external links.

15
and easy to use, it also has a wide range of features that it
makes it stand out and be one of the most used managers today.

The main features of MySQL are detailed below:

Client-Server Architecture: MySQL, like all systems


data records in the market, this is a registration program based on a
client-server system. That is to say that in this program we can find
many clients and servers that communicate with each other for better
program performance. That is to say that through this scheme it is achieved:
consult data, save changes, set up new record tables, among others
others.

SQL compatibility: This system has a database language, a


organized query language. SQL is a generalized language that achieves
consult and renew data for the management of a record database. There are
various SQL dialects for the database system to operate
adequately. Additionally, this connects with a standard SQL, although with
significant limitations and a large number of extensions.

Views: In few terms, views have a strong relation to an SQL query.


and it is observed as a different object in the database and makes a view viable
individual in the database. MySQL has similar views since version
5.0.

Stored procedures: In this process, it is handled only with the


SQL code that is accumulated in the record database system. The means
almacenados habitualmente se utilizan para simplificar diversos pasos, como
to implement or delete a reference record. For programmers and clients,
they have the advantage of not processing the tables directly, it's the best, the
users always trust stored procedures.

16
Triggers: Triggers are SQL instructions, this
server automatically produces in various procedures in the database
records, this causes the triggers to operate in a limited manner from the
version 5.0 and aims for improved additional functionality for version 5.1.

User interface: There are various beneficial interfaces for the user,
this way it manages a MySQL server. Through this means the system achieves
access all reasonable character sets from version 4.1.

Full-text search: Full-text search facilitates and accelerates


the search system for words that are located within a field of
content. If you use MySQL to store text, a search can be performed.
of the complete text. In this way, it manages to implement a search function
efficient.

Replication: Replication verifies that the text in a database is


reproduce on various monitors. In practice, this is done for two reasons:
To enhance the defense against system failures, in this way if a
the monitor turns off, another one manages to come into service. It also manages to improve.

the speed in the queries to the record database.

[Link] Microsoft SQL Server

SQL Server has a graphical environment for administration, in which various tasks can be performed.

DDL and DML commands graphically, it is scalable, stable, and allows for management
information from other servers.

SQL Server is a relational database management system produced by


Microsoft. It is a client/server system that functions as a natural extension of
Windows operating system. Among other features, it provides integrity of
data, query optimization, concurrency control, and backup and recovery.

17
SQL Server has a graphical environment for administration, in which you can use
DDL and DML commands graphically, it is scalable, stable, and allows for management.
information from other servers. It is easy to use and provides features of
data storage that was only available in Oracle and other systems
most expensive database managers.18

2.4.2.3Oracle

It is a database manager under the license, replacing the use of multithreading with
multiprocessing thus ensuring the stability of the system, is quite
popular and easy to manage, the SQL syntax it uses is quite fast and easy to
learning is cross-platform, compared to other managers it is slow in
updates and its resource consumption is higher than that of MySQL.19

The main objective of these managers is to make the interaction with the database more pleasant.
of data, there are countless of them, each with different characteristics some of
they completely.

Although currently databases are a set of information from many


centralized users so that several users can share it for their use in
various applications, this database since over time it becomes too much
this is why database management systems (DBMS) are required,
it is here that they fulfill a very important function for the management and administration of

the data, we have such as: MySQL, SQL Server, Oracle DB.

2.5. PROGRAMMING LANGUAGES

The programming language is defined as an artificial language, formed by


symbols and syntactic and semantic rules, to express computations and that

18Unable to access the provided URL for translation.


19Unable to access the specified URL to retrieve content for translation.

18
can be used to create programs that control the behavior of a
machine, express algorithms with precision, or as a mode of human communication.20

Since 1954 to the present, more than 2,500 languages have been documented.
programming (consult the Language List). Between 1952 and 1972, the first era
of programming languages, around 200 languages were developed, of the
that a dozen were truly significant and had an influence on development
of later languages.

2.5.1JavaScript

JavaScript is a simple programming language that has a characteristic


special: their programs, commonly called scripts, are in the HTML pages and
they are executed in the browser (Mozilla Firefox, Microsoft Internet Explorer,...). These scripts
they usually consist of functions that are called from the HTML itself
when an event occurs. This way, we can add effects such as that a
button changes shape when the mouse hovers over it, or opens a new window when
click on a link.21

JavaScript was developed by Netscape, based on the Java language, which follows a
similar philosophy, although it goes beyond. Java is a programming language in itself
the same, as they can be C, Pascal, or Visual Basic. This means that you can
run a Java program outside of a browser. But, we repeat, that the difference
It is fundamental that Java is a complete language, which can be used to create
applications of all kinds, while JavaScript only "works" within a
HTML page.22

20[Link]
21Unable to access content from the provided link.
[Link]&pdf=true
22Invalid input. Please provide text for translation.

[Link]&pdf=true

19
2.5.2Java

Java is a general-purpose, concurrent, object-oriented programming language.


objects that were specifically designed to have so few dependencies on
implementation as far as possible. Its intention is to allow developers
of applications write the program once and run it on any device
(known in English as WORA, or 'write once, run anywhere'), which means
that the code executed on a platform does not need to be recompiled to
running in another. Java is, since 2012, one of the most programming languages
popular in use, particularly for web client-server applications.23

The Java programming language was originally developed by James Gosling


from Sun Microsystems (which was acquired by Oracle) and published in
1995 as a fundamental component of Sun Microsystems' Java platform.
Its syntax derives largely from C and C++, but it has fewer low-level utilities.
level that any of them. Java applications are generally compiled
a bytecode (Java class) that can be executed on any Java Virtual Machine (JVM)
regardless of the underlying computer architecture.24

2.5.3PhP

El lenguaje de programación PHP Hypertext Pre-processor, fue desarrollado


specifically for designing dynamic web pages by programming scripts on the side of the
server. The PHP language is always embedded within the HTML and is generally
it is related to the use of Linux servers.

PHP is characterized by being a free and cross-platform language. In addition to its


possibility of access to many types of databases is also important

23The provided text is a URL and does not contain translatable content.
24Likewise.

20
highlighting their ability to create dynamic pages, as well as the possibility of separating
the design of the content of a website.

2.5.4C#

C# is an elegant object-oriented language with type safety that allows


for developers to create a wide range of robust and secure applications that
They run on .NET Framework. You can use this language to create applications.
traditional Windows client, XML Web services, distributed components
client-server applications, database applications, and many more tasks.25

The syntax of C# is very expressive, although it has less than 90 keywords;


it is also simple and easy to learn. The syntax of C# is based on curly braces
It can be recognized immediately by anyone familiar with C, C++.
to Java.

Developers who know any of these languages can start to


work productively in C# in a very short time. The syntax of C# simplifies
many of the complexities of C++ and, at the same time, offers effective functions such as
types of values that accept NULL values, enumerations, delegates, methods
anonymous and direct memory access, which are not found in Java.26

Programming languages are artificial languages with which a person can


communicate with a machine (computer), made up of symbols and rules
syntactic and semantic, to express their commands and thoughts and that this
machine can understand in a simpler way.

2.5.5 Integrated Development Environment (IDE)

25Link provided does not contain translatable text.


26In the same place

21
An IDE (integrated development environment) is a
a program whose function is to provide programmers with a set of
tools for programming more efficiently. It should be noted that a
IDE can be found available for an exclusive language or at the same time.
incorporate a workspace for different programming languages.27

The following are the most well-known IDEs currently available for
development of information systems.

[Link] Netbeans

NetBeans is a free and open-source development environment that at the moment


to write this article is in its version 7.4. It allows the use of a wide range of
development technologies for both desktop and web applications, or for
mobile devices. Supports the following technologies, among others: Java, PHP
Groovy, C/C++, HTML5,... It can also be installed on various operating systems:
Windows, Linux, Mac OS. Simplify the management of large projects with the use of
different views, help assistants, and structuring the visualization in a way
organized, which helps in daily work.28

[Link] Eclipse

Eclipse is a development platform, designed to be extended in a way


undefined through plug-ins. It was conceived from its origins to become
an integration platform for development tools. It does not have in mind a
specific language, but it is a generic IDE, although it enjoys a lot of popularity
among the community of Java language developers using the JDT plug-in that
is included in the standard distribution of the IDE.29

[Link]/2014/11/[Link]
28The provided text is a URL and does not contain any translatable content.
29The provided text is a URL and does not contain translatable content.

22
[Link] Visual Studio

Microsoft Visual Studio is an integrated development environment (IDE, for its initials in Spanish)

English) for Windows operating systems. It supports several programming languages.


such as Visual C++, Visual C#, Visual J#, and Visual Basic .NET, as well as environments
of web development such as [Link]. Although developments have currently been made
necessary extensions for many others.

Visual Studio allows developers to create applications, sites, and applications.


web, as well as web services in any environment that supports the .NET platform (to
starting from the .NET 2002 version). This way applications can be created that
intercommunicate between workstations, websites, and mobile devices.30

2.6. SOFTWARE ENGINEERING

Software engineering is a discipline of engineering that encompasses all the


aspects of software production from the initial stages of specification
of the system, up to the maintenance of it after it has been used.31

2.6.1 The Software Process

A process is a set of activities, actions, and tasks that are executed when
Some product of the work will be created. An activity aims to achieve a broad objective.
(for example, communication with the participants) and it develops regardless of the
domain of the application, size of the project, complexity of the effort or degree of
rigor with which software engineering will be used.32

30Unable to access URL content for translation.


studio/history-of-visual-studio/
31
Ian Sommerville Software Engineering 7th Ed. Page 6
32 ROGER S. PRESSMAN, Software Engineering: A Practical Approach, 7th ed. Page 14

23
Despite the variety of software process proposals, there is a set of
fundamental activities that are present in all of them:

Software specification: The functionality and constraints must be defined


operational requirements that the software must meet.

Design and Implementation: The software is designed and built according to the
specification.
Validation: The software must be validated to ensure that it meets what
what the client wants.

Evolution: The software must evolve to adapt to the needs of


client.

2.6.2 Software process models

A software process model is a simplified description of a process.


of the software that represents a vision of that process. These models can include
activities that are part of the processes and products of software and the role of the
people involved in software engineering.33

There are various models, paradigms, and philosophies of development on which it is based.
software engineering for the construction of software, among them, can be mentioned:

[Link] Waterfall Model

The first published model on the software development process was derived from
starting from more general processes of systems engineering (Royce, 1970). Due to the
transition from one phase to another in a cascade, this model is known as 'cascade model'

"waterfall" or the software life cycle.34

33IAN SOMMERVILLE, Software Engineering 9th ed. Page 30


34 Ibídem 9th ed. Page 30

24
The main stages of the waterfall model directly reflect the activities
fundamentals of development:35

Analysis and definition of requirements: The services, the constraints and the
System goals are established through consultation with system users.
Then, they are defined in detail and serve as a specification of the system.

System and software design: The system design process assigns the
requirements, for hardware or software systems, when establishing a
global system architecture. The software design involves identifying and describing
the fundamental abstractions of the software system and their relationships.

Implementation and unit testing: During this stage, the software design
it is realized as a set of programs or program units. The test of
The unit consists of verifying that each unit meets its specification.

System integration and testing: The program units or the programs


individuals are integrated and tested as a complete system to ensure
that the software requirements are met. After testing it, it is released
software system to the client.

Operation and maintenance: Generally (although not necessarily), this is


the longest phase of the life cycle, where the system is installed and put into operation

practice. Maintenance includes correcting the errors that were not detected in
previous stages of the life cycle, improve the implementation of the units of
system and enhance the system services as new ones are discovered
requirements.

35
IAN SOMMERVILLE, Software Engineering 9th ed. Page 31

25
FIGURE 7. CASCADE MODEL

Source: IAN SOMMERVILLE Software Engineering

The waterfall model is the first software development model on which they are based.
the other development models, this is because the waterfall model makes
the reference itself to the software life cycle is characterized by the well-defined sequence
marked that clarifies that activities such as: The determination of
requirements, system and software design, implementation and unit testing,
integration and testing of the system and the operation and maintenance are fulfilled properly
sequentially and without omitting a phase.

[Link] Incremental Model

The Incremental Model combines elements of the Linear Sequential Model with the
interactive philosophy of Prototyping Construction. The incremental model applies
staggered linear sequences as time progresses in the calendar.
Each linear sequence produces a software increment. The first increment
it is generally an essential product called core.36

In a generic view, the process is divided into 4 parts:

36The provided link does not contain text for translation.

26
Analysis
Design
Code
Test

FIGURE 8. INCREMENTAL DEVELOPMENT MODEL

Source: Process Software, Incremental Model

The Incremental Model is interactive in nature, providing at the end of each


increase the delivery of a completely operational product. This model is
particularly useful when there is not a sufficient staff allocation.
The first steps can be taken by a small group of people and in each
the increase will add personnel, if necessary. On the other hand, the increases will
They can plan to manage technical risks.37

This incremental model leads to thinking about a modular development, deliveries


partial products of the Software called 'increments' of the system, which are
chosen based on predefined priorities in some way. The incremental model
allows for an implementation with improvements. With each increment, new features are added.

37
The provided link does not contain any translatable text.

27
functionality or new requirements are covered or the previously improved version
software product implemented.

[Link] Model of Evolutionary Development

The idea behind this model is the development of an implementation of the initial system,
expose it to user comments, refine it in N versions until it
develop the appropriate system. The evolutionary models are iterative, they allow
develop increasingly complete and complex versions, until reaching the final objective
desired; even evolve beyond, during the operational phase. The models
"Incremental Iterative" and "Spiral" (among others) are two of the most well-known and
used of the evolutionary type.38

One advantage of this model is that it provides quick feedback from the user.
since the specification, development, and testing activities are carried out in each
iteration.

FIGURE 9. MODEL OF EVOLUTIONARY DEVELOPMENT

Source: IAN SOMMERVILLE Software Engineering

38

28
2.6.3 RUP Methodology

[Link] Definition of RUP

It is a methodology whose purpose is to deliver a software product. It is structured all


the processes and measures the efficiency of the organization. It is a development process of
software that uses the Unified Modeling Language UML, constitutes the
most commonly used standard methodology for analysis, implementation, and documentation
of object-oriented systems.

The RUP is a set of methodologies adaptable to the context and needs of each
organization.

The RUP is a product of Rational (IBM). It is characterized by being iterative and incremental.
being focused on architecture and guided by use cases. Includes artifacts (that
they are the tangible products of the process such as, for example, the use case model,
the source code, etc.) and roles (the role a person plays in a specific
At any given moment, a person can play different roles throughout the process.

Main features:

Disciplined way of assigning tasks and responsibilities (who does what,


when and how).
He intends to implement best practices in Software Engineering.
Iterative development.
Requirement management.
Use of component-based architecture.
Change control.
Visual modeling of software.
Software quality verification.

29
[Link] Dimensions of the RUP

The process can be described in two dimensions or axes:

Horizontal axis: Represents time and is considered the axis of aspects


dynamic aspects of the process. Indicate the characteristics of the process life cycle
expressed in terms of phases, iterations, and milestones.

Vertical axis: Represents the static aspects of the process. Describes the process
in terms of process components, disciplines, workflows, activities,
artifacts and roles.

FIGURE 10. RUP STRUCTURE

Source: SOFTWAREPROCESSES, RUP Methodology

[Link] Phases of the RUP

RUP is repeated throughout a series of cycles that constitute the life of a product.
Each cycle concludes with a generation of the product for the customers. Each cycle
consists of four phases: Initiation, Elaboration, Construction, and Transition. Each phase is
subdivide at the same time into iterations, the number of iterations in each phase is variable.

30
FIGURE 11. PHASES OF THE RUP

Source: SOFTWARE PROCESSES, RUP Methodology

The four phases of the life cycle of the RUP Methodology are detailed below:

Start: During the start phase, the business model and the scope are defined.
project. All actors and Use Cases are identified, and the Use Cases are designed.
of the most essential uses (approximately 20% of the complete model).
develop a business plan to determine what resources should be allocated
to the project.

Development: The purpose of the development phase is to analyze the domain of


problem, establish the foundations of the architecture, develop the plan of the
project and eliminate the greatest risks.

In this phase, a prototype of the architecture is built, which must evolve in


successive iterations until it becomes the final system. This prototype must
contain the critical Use Cases identified in the initiation phase. It must also
to demonstrate that the most serious risks have been avoided.

Construction: The main purpose of this phase is to achieve capacity


operational product incrementally through the successive
iterations. During this phase all components, features, and requirements

31
must be implemented, integrated, and fully tested, obtaining a
acceptable version of the product.

Transition: The purpose of the transition phase is to put the product in the hands of
end users, for which new versions need to be developed
updated product, complete the documentation, train the user in the
product management, and in general tasks related to adjustment, configuration,
installation and ease of use of the product.

The chosen methodology for the development of this degree work is the Process
Unified or RUP (Rational Unified Process) which presents a development framework
which serves as a guide for the software development process, is structured and adapted
to all processes of an organization, defines what roles are assigned for
each person assigning appropriate tasks and responsibilities is characterized by
being an incremental iterative model since the result and progress are more verifiable
of software development.

Software engineering is a discipline that is responsible for monitoring and control.


In the process of software product development, the study of this encompasses from
the specification of the requirements following with the design, development, testing,
implementation until reaching the tests and subsequent evolution of it
product, in such a way that it provides all the guidelines and instructions
to develop a quality product for the end user.

32

You might also like