Você está na página 1de 18

MIS Software overview

for MIS Concept Plan

CAPACITY DEVELOPMENT OF CAAN


November 2012

MIS Software overview

INTRODUCTION....................................................................................... 3

LIFE CYCLE OF SOFTWARE ........................................................................ 4

2.1

Analyse user requirements ................................................................................ 4

2.2

Design the program ........................................................................................... 5

2.3

Code the program ............................................................................................. 5

2.4

Documentation and test the system .................................................................. 5

2.5

Operate and maintain the system ...................................................................... 6

SOFTWARE DEVELOPMENT PROCESS ......................................................... 7

3.1

Traditional ......................................................................................................... 7

3.2

Agile .................................................................................................................. 9

4
4.1

SOFTWARE LICENSES.............................................................................. 12
Non-Open Source licences.............................................................................. 13

OPEN SOURCE LICENSES ......................................................................... 13

KINDS OF SOFTWARE ............................................................................. 14

6.1

Business Intelligence (BI) ................................................................................ 14

6.2

Collaborative software ..................................................................................... 15

6.3

Content management system (CMS) .............................................................. 15

6.4

Customer relationship management (CRM) .................................................... 16

6.5

Document management system ...................................................................... 16

6.6

Enterprise resource planning (ERP) ................................................................ 16

6.7

Issue tracking system ...................................................................................... 17

6.8

Office automation ............................................................................................ 18

6.9

Business Project Management (BPM) ............................................................. 18

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

Introduction

The main purpose of this document is to do an overview of the computer software and
their characteristics.
Several issues about life cycle of software, frequent troubles of software development
process, software benefits and productivity enhancement will be covered, in order to
show the different alternatives that CAAN has to take into account to build MIS
architecture and the decisions to be taken.
IEEE Std. defines software like "the collection of computer programs, procedures,
rules, and associated documentation and data", concerned with the operation of a data
processing system.
Software is also defined as a set of three components: programs, data and
documentation.

Programs: this component provides the required functionality and the performance
when the program is run.

Data: this component involves the necessary data to manage and test the
programs and the required structures to maintain and manipulate those data.

Documents: this component describes the operation and use of the program.

Basically, software is a set of programs, which provide the required functionality, the
related data and documents. Therefore, software is a logic element, completely
different to hardware. Software is developed; it is not produced, in the classic way.
Each software is different from each other, because each one is developed under the
unique customer requirements. Therefore, each software needs to be built using an
engineering approach.
Building a software product involves understanding what is necessary, designing the
product that fits the requirement, implementing the design using a programming
language and verifying that the product fits the requirements. All these activities are
handled by a team working in a coordinate manner. The main resource to make a
software product is the persons. The working team has to work in a coordinated way
and have to share a common project. A good communication in the team is needed.
It is important to mention, that the software is not damaged but is deteriorated. During
the products life, it can be changed because of the maintenance. With these changes
it is possible that new defects could be created. Because of those changes, the
software is deteriorated.
The next section will show the life cycle of software and the process to develop a
software product.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

2 Life cycle of software


The life cycle of software describes the process of software development, from start
until end. This process is based on a methodology that the analyst, designer and
developer follow to develop the system.
The information systems are very expensive to modify, so, an error detected at the end
of the development could be very expensive to repair. To prevent this fact, it is
necessary to follow the cycle of software.
The aim of the life cycle of software is to produce a high quality and complex system, to
the optimum in sequence of phases.
Each phase produces deliverables that are needed by the next phase. The essential
phases of a development life cycle are the follows: analysis, design, implementation,
testing and maintenance, as illustrated.
Phases of Development Life Cycle

2.1 Analyse user requirements


The main goal of the first phase of the life cycle of software is to obtain the
requirements of the system. For this purpose it is necessary to do meetings with
managers and user to achieve a list of functionality that the system should perform.
As a result of this phase, the requirement specifications document and the entityrelationship diagram are created. This is one of the most important phases for the
success of the system, because every functionality or user requirements must be
defined in this phase. Therefore, an error made in this step can be very expensive to
repair at the end of the process.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

2.2 Design the program


When the list of requirements is completed, it is time to start with the design phase.
In this step, it will be determined how the software will works in an overall way. The
main tasks of this step it to cover the software architecture definition, user experience
design, technology environment, and information systems components specification.
Basically, topics related to the technology implementation are considered such as,
hardware, network....

2.3 Code the program


In this phase the code of the components of the information system will be generated,
in order to cover every requirement defined previously.
The complexity and duration of this phase depends on the programming language,
platform selected, and the design created in the previous phase.
All operation procedures and security are developed in this phase. The user manual
and operation manual are also created in order to ensure the correct operation of the
system in the future.
Besides, in this phase the developer team must be formed and trained in order to
develop applications specializing in them. It is very important to keep a well-balanced
team for a long time to achieve the improve of quality of code and the productivity.

2.4 Documentation and test the system


Documentation is one of the most important things around of software development;
every phase of life cycle must be documented and also approved by the responsible
person in each case.
Project's documentation is alive, in other words: every functionality, each decision
made in the project (technic or non-technic) must be written inside of a document and
is mandatory that each document is stored in accessible way for every project
participant.
This phase consists on checking that all tasks defined in the first phase and user
requirements are created correctly in the system.
In order to make the objective described, it is possible to make unit tests, integration
subsystem test, components tests, and system tests according to the test plan.
A good practice on this point would be that these tests will be done by someone
different to the person who did the development.
Ingeniera y Economa del Transporte, S.A.

MIS Software overview

2.5 Operate and maintain the system


This is the last stage of the life cycle of software. The maintenance starts after the
system is operating and delivering.
The goal of this phase is to maintain and improve the software to solve any mistakes
that could be found, and handle new requirements. Most of the times, this is the
longest phase.
The development of this phase, depends on the design and good documentation,
made in the previous phases. Changes made in software with poor documentation and
bad design could be more expensive than developing the software from the beginning.
Because of this, it is really important to do correctly all tasks involved in the design
phase and maintain and create completely the documentation.
There are four main types of changes that could be made:

Corrective: resolve the problems discovered in the software.


Adaptive: keep the software product usable in a changed or changing
environment.
Perfective: change the software to improve performance and maintainability.
Evolve: change the software to meet the new requirements.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

3 Software development process


There are different models of how to lead software projects; each one follows an
approach to do several tasks or activities that are followed during the process. Anyone
of these processes can be suitable to the development process and each one of them
is under the principles or rules of their methodology.

Methodology
A methodology is a framework that is used in software engineer to determinate the
structure, plan and control the process of developing software to improve the quality of
final product, and it also helps project managers and software developers in delivering
project on time, within the budget to meet the customer requirements.
The methodology framework includes policies, procedures, methods, tools,
technologies and documentation which help each activity of the software life cycle. This
framework is also a philosophy of software development with an approach of its
process.
Every approach acts as base of a specific framework to develop and maintain software.
Several software development approaches have been used. Some examples are
waterfall, prototyping, incremental, spiral, RAD and extreme programming.
The benefits of a methodology in the process of software development are:

Optimizing software process and products.


Guiding the planning and developing of software by methods.
Defining what to do, how and when during the developing and maintenance of a
project.
A methodology says how a project has to be developed, based on software
process.

Different types of methodologies exist depending on their philosophies; each one is


suitable for a particular kind of project.

3.1 Traditional
This methodology is based on sequential steps to be followed in the development
process. These steps are requirements definition, implementation, testing and deploy.
An initial documentation of stable requirements is required, and is not allowed to reach
next steps until the previous ones have been completed, in a sequential manner.
The aim of this discipline is to make the software more predictable and more efficient. It
is said that this type of methodology is very inflexible and is not change-oriented,
besides it can take longer time for the software development.
The features of this discipline are as follows:

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

Predictive approach: It is focused on the planning of the software process in


great details. It is based on the theory that the development is repeatable and
predictive, focusing on the system needs and how to resolve these needs
efficiently. The plan predicts the task, schedule and budget for construction.

Completed Documentation: The main topic is the design. During this step all
customers requirements are detected and collected. It needs to have the
requirements before starting the implementation. Predictability is very important
to be able to achieve all requirements. All of these requirements have to be
documented.

Process Oriented: Processes are defined involving certain tasks that must be
performed by the managers, designers, programmers, testers

Tool Oriented: Project management tools, code editors, compilers, etc. must
be in use for completion and delivery of each task.

This kind of methodology is based on fixed steps. In fact, the most important principle
is that the requirements listed in the first step will never change along the project.
There are some methodologies that follow this approach such as Waterfall,
Prototyping, Incremental, Spiral Model and Unified Process.

Waterfall: is a linear framework in which there is not iteration between the


stages. This approach models the development process as a stately and
sequential progression through the life cycle phases, requirements
specifications, design, implementation, testing/verification and maintenance.
The model is orderly, simply and easy to understand and manage, but the
problem is that sometimes it does not fit with all types of projects because the
software development is a complex process.

Prototyping: an iterative framework, in which unfinished pieces of the product


are shown to the customer, so the customer can see how the project is going
and he can be involved more in the process ensuring requirements. The
customer sees the progression of the project through the different prototypes.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

Incremental: a combined linear-iterative framework, in which there are


deliveries in incremental series. The first delivery incorporates a part of the total
planned capabilities; the next build adds more capabilities, and so on, until the
entire system is completed

Spiral: a combined linear-iterative framework, in which the focus is on risks


analysis, a topic which was forgotten by the previous approaches. This
methodology divides the phases into a number of cyclically repeated sectors.
During any iteration, the system is explored at greater depth and more detail is
added. At the early prototypes, early in the development process it is possible
to locate the risk areas, assess prototyping results and determine the risk
areas. The iterative nature allows using the knowledge gained during early
phases to improve the subsequent phases.

3.2 Agile
This methodology appears by the need of business community to have rapid software
development process. Thanks to the light process, the customer could see frequent
pieces of functionality.
Agile methodologies are known for being cheaper, faster, and quicker to respond to
changing market demands, as compared to the slower but steady, sequential process
of the traditional methods.
Software team takes importance on the success of development process, where team
composition is cross-functional and self-organizing without considering any corporate
hierarchy. Team members take responsibility for each iteration requirements.
One of the most important principles of these kinds of methodologies is that they have
been born completely change-oriented. Therefore, anyone of them is ready for any
changing requirements given.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

Nowadays nobody doubts of benefits of using agile methodology. In fact, many


important companies around the world have already changed or are changing to agile
methodologies.
The main characteristics of agile methodologies are explained below.

Modularity: The processes are divided into activities to develop the process.

Iterative: The philosophy of this methodology is focused on the fact that we get
things wrong before we get them right, so it is based on short cycles. It is
normal that a cycle or iteration do not finish the element 100%, so a new cycle
starts. Cycles are repeated any time until the element is finished correctly.

Time bound: Iterations are considered like time unit, so the schedule is based
on these iterations. As it is normal that changes happened, all activities of a
process in a single iteration are not scheduled. Only the needed activities to
achieve the set goal are scheduled at the beginning of the iteration. These
activities can be rescheduled if they cannot be completed in the estimated time.

Adaptive: it is considered that changes are normal even good; the agile
methodology is focused on making changes in the best way, it is ready for
changing.

Incremental: a process does not build the whole system, it is divided into
increments. Each increment is tested independently; when an increment is
completed and tested, it will be integrated into the system.

People Oriented: Agile methodologies consider people the most important


factor of software methodologies because developers that are empowered to
raise their productivity, quality, and performance. Team composition is crossfunctional and self-organizing without considering any corporate hierarchy.
Team members take responsibility for each iteration requirements. Face to face
communication is preferred between team members than documentation. Team
works in the same office to facilitate communication. Team consist in a small
group of 5-9 people to facilitate collaboration and communication. Each team
will contain a customer representative that is available for developers to answer
iteration questions. At the end of any iteration, stakeholders and the customer
representative review the progress and re-evaluate priorities in order to
optimize the performance and ensure customer needs and company goals.

Collaborative: The collaboration of all members involved in a process


development is needed, so the communication between team members is a
crucial point.

There are several agile methodologies. The most used are RAD and Scrum.

Rapid Application Development (RAD): involves iterative development and


the construction of prototyping. Reduces the planning phase in favour of rapid
prototyping. Thanks to reduced planning tasks, it is possible to write software
faster and make changes easily. The customer has the prototype early so he

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

can correct the product to fit what he wants. Although with this kind of agile
methodology it is possible to lead any kind of project, it is more suitable in short
projects.

Scrum: No doubt, Scrum is most used agile methodology for software


developing. Scrum framework is formed by all characteristics of agile
philosophy and has been implanted in a lot of enterprises successfully.
For this reason it is so popular. Scrum framework promotes developers teams
self-organized and a fluid relationship between team and the product owner.
This product owner has the control over the functionalities, requirements,
priorities, costs and deadlines.

The consequence of using scrum framework, and its model based on releasing
software frequently, is that the team takes responsibility of the tasks and
undertakes them in an iterative way in defined time periods or sprints, improving
the software developing productivity.
There are several tools to measure how the project is advancing, between the
dates defined in every sprint and in whole project. Some of them are Burn
Down Chart or the Visual Management Boards.

Agile methodologies can be completed with a few more technics.

Extreme Programming: With this technic, frequently short development cycles


are defined to improve productivity. Checkpoints are created in order to add
new customer requirements. Programming in pairs or doing extensive code
review is recommended, including unit testing of the whole code.
This approach has some drawbacks, because of unstable requirements, lack of
documented compromises or user conflicts, and a lack of documentation or
overall design specification.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

Visual management: Everything described above can be managed in a


different ways and the agile methodologies suggest boards where everybody
can know the status of the project at a glance.
There are a lot of software solutions to do this, included free software, but the
agile standard recommendations say that if in case of the product owner, the
scrum master and team are working closely (as a principal roles of scrum
framework), the best option is to use a physical board hung in an office wall,
where everybody could see it. There are a few kinds of boards, but the most
used could be Kanban and scrum boards.

4 Software licenses
The software license is a kind of contract, which specifies all the rules and conditions of
usage of a particular program. Mainly, it stipulates the scope of use, installation,
reproduction and copying of these products.
Ingeniera y Economa del Transporte, S.A.

MIS Software overview

A typical software license grants permission to use one software copy or more. If a
user does not have permission and uses the software, he will do a copyright
infringement of the software owner's exclusive rights under copyright law.
There are two types of software licenses: proprietary licenses and free and open
source licenses. The differences between them are significant in terms of end-user's
rights and obligations.
In the next section, the terms of non-open source or proprietary license and open
source license are explained.

4.1 Non-Open Source licences


Software with non-open source license can be defined like proprietary software
distributed under a licensing agreement to authorized users with private modification,
copying and republishing restrictions.
The cost of this kind of software can vary depending on the complexity of the system.
The cost involves the software, integration and services and annual licensing/support
fees.
The greatest advantages of this kind of software are service and support, so if a user
has any problem with the software, there is a point to call for assistance.
Software with non-open source licenses is more secure than open source licenses
because it is developed in a controlled environment by a team under the same
direction.

5 Open Source licenses


Software with open source license has the agreement of sharing, reading and editing
its source code program by users.
Sometimes the meaning of the word "free" is a little bit confused referring to open
source software, because of the sense of the word is referring to the freedom to
analyse, change or distribute the code in your own necessities.
In short, we can make two big groups of open source projects:

Maintained by an enterprise: in that case it is very common that you can use the
code free of cost but you must pay for services, like consulting services,
coaching or certification.
Maintained by the community: in that case there aren't any company behind it.
The software is totally maintained and evolved by a software developers team,
self-organized that they don't earn money directly with this. They just get
recognition. The services and software support with this license is provided by
the online community network via forums and blogs.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

The consolidated open source projects are as reliable as non-open source projects.
These projects are totally tested by the developers community and they also have
installed it in every kind of companies.
Some successful open source products are Linux operating systems, Apache software,
MySQL data base, Java Virtual Machine, Libre Office, to mention but a few.

6 Kinds of software
There are several kinds of problems that enterprise software applications solve.
On this chapter, the most common enterprise application will be described in order to
explain the solutions that they offer to these common problems

6.1 Business Intelligence (BI)


Business Intelligence is a type of software that consists in a set of strategies and tools
focus on the knowledge administration and creation, through the data analysis of a
company.
This concept is referred to the use of company data used to make decisions in the
company. It involves the knowledge of how the company works and anticipation of
future events, in order to obtain the knowledge needed to make business decisions.
The intelligence tools are based on the use of a system information tools. These
information tools are created with different data of the data base, with information
related to the company and their economic data.
The most common case is based on the collection of different data from different
sources. After this collection process, some reports, graphics or alerts are
automatically generated.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

6.2 Collaborative software


Collaboration requires individual working together in a coordinated way in order to
achieve a common goal. Collaborative software enables multiple users to stay
connected and work together on projects from any location.
Collaboration software is important nowadays in business because it helps users to
communicate and share with each other across different devices and in different
locations.
This kind of software enables to reduce cost by minimizing the need of travelling.
These solutions allow a decentralized workforce to schedule, communicate and share
through different mediums, including email, shared calendaring, VoIP services, video
conferencing and collaborative documents, intranet, among many other platforms.
Collaborative software can be divided into three types:

Communication: the need to exchange opinions and information. For example,


a call phone or chat discussions.
Conferencing: It refers to interactive work towards a shared objective.
Co-ordination: It refers to the complex interdependent work between the
members of the team.

There are different tools that can be used:

Electronic communication tools send files, data, messages or documents


between the people involved in the same goal. Such as, synchronous
conferencing, asynchronous conferencing, e-mail, faxing, voice mail, Wikis and
Web publishing.
Electronic conferencing tools provide the exchange of information in an
interactive way, some examples are Internet forums, online chat, instant
messaging, telephony, videoconferencing (networked PCs share video and
audio signals), data conferencing (networked PCs share a common whiteboard
that each user can modify) and application sharing (users can access a shared
document or application from their respective computers simultaneously in real
time).
Collaborative management tools help the management of group activities, some
tools are electronic calendars (schedule events and automatically notify group
members), project management systems (schedule, track, and chart the steps
in a project), online proofing (share, review, approve, and reject web proofs,
artwork, photos, or videos between designers, customers, and clients),
workflow systems (collaborative management of tasks and documents within a
knowledge-based business process), knowledge management systems (collect,
organize, manage, and share various forms of information).

6.3 Content management system (CMS)


A content management system is a computer software used to create, edit, manage
and publish content in a system. The most common CMS are typically web focused,
and are also named WCMS.
The management system generates dynamic web pages interacting with the web
server to generate web page under user request with predefined format.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

This system allows managing, under a standard format, the information of the server,
reducing the management cost of the web page comparing with a static web, where
each change in the design has to be made in all web pages, as well as any time that is
necessary to modify content, it is necessary to change the layout of html page.
In addition to that, this type of system allows the technical users to manage webs
platforms in a user friendly environment.

6.4 Customer relationship management (CRM)


Customer relationship management (CRM) refers to the methodologies and tools that
helps to the business to focus on the customer relationship.
The main aims are to attract, find, and gain new clients, service and retain old
companies.
Customer relationship management tools include software that helps the management
of relationships between company and users, marketing and sales. With this meaning
CRM is referred to the system that manages a data warehouse (data store) with the
information of sales management and customers.

6.5 Document management system


Document management system is a computer system focused on management of big
amount of documents. It usually searches and stores electronic documents or images
using security.
These documents do not have a clear organization of content. The combination of such
documents with indexes documents stores in a database, allow a fast access to the
content of the document. Usually, the content is stored compressed, and it can be any
type of multimedia content, such as images and videos.
A document management application allows documents to relate to each other and
give them a common semantic. It provides to search the information in the database
and shows related documents. They can access to the documents themselves, or add
some other information (meta-information) to make these searches easier.
A document management system can be an element of a CRM or ERP System.

6.6 Enterprise resource planning (ERP)


Enterprise resource planning (ERP) is a business management software that integrates
various functions of the process that are essential to running a business, like inventory
and order management, finance, accounting, manufacturing, sales and service, human
resources, customer relationship management, into one complete system to make
process and information faster across the whole organization.

Ingeniera y Economa del Transporte, S.A.

MIS Software overview

The main objective of ERP is to facilitate the flow of information between all business
functions of the organization and manage the connections.
ERP Systems are divided into many enterprise software modules that are individually
purchased, based on the specific needs and technical capability of each organization.
The modules can be financial accounting, management accounting, human resources,
manufacturing, supply chain management, project management, customer relationship
management, data services and access control.
The features of an ERP are as follow:

The main characteristic of all ERP systems is a shared database, which


supports all applications.
An integrated system that runs in real time.
Consistent interface between all the modules.
Offers some degree of synchronized reporting and automation.
Installation of the system without elaborate application integration by the
Information Technology (IT) department.

With an ERP solution, employees have access to accurate information that enables
them to make better decisions faster. Also it helps to eliminate redundant processes
and systems, lowering the cost of doing business.
It is important to mention the advantages and disadvantages of an ERP. Some of the
benefits are improving productivity and corporate financial performances, improved
business forecasting as well as organized work flows. On the other hand, the
disadvantages include the need of an extra budget for the consolidation of all the
databases and the need for the development of an efficient re-engineering business
plan.

6.7 Issue tracking system


Commonly the most of the newly written software contains bugs at the beginning. To
monitor bugs, many companies still trust on Word documents and Excel sheets, but
these activities are inefficient to manage bugs. An Issue tracking system is the more
appropriate solution to improve the process of raising, managing and fixing bugs.
Issue tracking system, is a software package that contains a list of issues (tasks, bugs)
and do tracks of these issues. These systems create, update and resolve task reported
by customer or employees. The system also contains information of each customer,
resolutions with commons problems, and others.
The architecture of a common issue tracking system consists of a database, which is
the main storage repository of data, and a business layer that manages the
information. All information is represented in another software application or web page,
where the user can creates a new issue, reads an existing issue and adds details to
previous ones. Also, It is shown the history of the actions made to fix an issue. Each
issue is managed by an user, this information is stored in the application. For security,
an issue tracking system will authenticate its users before allowing access to the
systems.
Ingeniera y Economa del Transporte, S.A.

MIS Software overview

6.8 Office automation


Office automation involves all software or tools that are related to office or
administrative activities. With these tools it is possible to create, collect, store, transfer,
manipulate and share digital data.
Office automation is focused on providing elements to simplify, improve and automate
the organization of the activities of a company, like management of administrative data.
The most important part is a LAN (Local Area Network), which allows users to transmit
data, mail and even voice across the network.
A typical office tool should include the software programs: word processing, a
spreadsheet, a presentation tool, a database and scheduler.
Example of office tools are Microsoft office, OpenOffice, AppleWorks.

6.9 Business Project Management (BPM)


BPM (Business Process Management) is an approach to making an organizations
workflow more effective, more efficient and more capable of change than a functionality
focus.
The aims are to reduce human error and miscommunication and focus on
stakeholders requirement.
It is a point of connection in a company between the line-of-business (LOB) and the IT
department. Business Process Execution Language (BPEL) and Business Process
Management Notation (BPMN) were both created to facilitate communication between
IT and the LOB. Both BPEL and BPMN adhere to the basic rules of programming, so
that processes designed in either language are easy for developers to translate into
hard code.
This approach can be supported through techniques and software tools to ensure the
viability of the management in times of stress and change.
A business process is a set of activities focus on obtaining a specific organizational
goal. These activities can be grouped into six groups: vision, design, model, execution,
monitoring and optimization.
In short, BPM facilitates that a company redefines and automatizes organizational
process, so that, it is needed to fuse process definition (regulatory and organizational
component) with the mechanization of those process (Information Systems).

Ingeniera y Economa del Transporte, S.A.

Você também pode gostar