Module 10 Program Development Creating Systems and Applications (1)
Module 10 Program Development Creating Systems and Applications (1)
Development:
Creating Systems and Applications
Learning Objective
After completing this module, you will be able to:
1 Identify the role of a developer
2 Explain the methods of development
3 Describe the tools and strategies critical to system development
4 Identify other roles and tasks in development
5 Identify application development languages and tools
6 Identify strategies for designing secure systems and applications
7 Explain how to sell your app
8 Explain the importance of ethics in development 9 Apply decision-
making strategies to solve problems
What Does Developers Do?
Development is the process of creating
information systems or programs and apps
from the idea stage to distribution to users.
Recall that programs and apps, also known
as software, are coded instructions to
control a computer or device, and that an
information system is collection of
hardware, software, data, people, and
procedures that work together to produce
information.
What Does Developers Do?
Developers follow three general guidelines:
• Group activities into phases, such as planning,
analysis, design, implementation, security, and
support.
• Involve users for whom the program is being
developed. Customers, employees, data entry
specialists, and accountants all are examples of
users.
• Define the standards, or sets of rules and
procedures, the developers should all follow to
create a product with consistent results.
What Does Developers Do?
Reasons for Development
Typically, apps are developed to provide income generation by selling the app,
enabling in-app purchases, or selling advertising to other companies. To start the
development process, users write a formal request for a new or modified information
system or app, which is called a project request or request for system services.
Documentation is a collection and summary of the data, information, and
deliverables specific to the project. The developer can be involved in the request
development or be asked to take on the project after the request is made.
What Does Developers Do?
User Experience
The most important part of development is to consider how it will be used. User
experience (UX) refers to the focus on the user's reaction to and interaction with a
product, including its efficiency, effectiveness, and ease of use. UX comes into play
during all aspects of the software development process.
A designer takes into account how the user will interact with the program to come up
with a design that is appealing and easy to use. Programmers and testers work
together to recreate and troubleshoot potential issues or areas of confusion.
Designers use wireframes, which are blueprints of different aspects of the program
that also indicate how a user gets from one area of the program to another
What Does Developers Do?
Managing Development Changes
After a project's features and deadlines have been set, the developer, acting as the
project leader, monitors and controls the project. Some activities take less time than
originally planned; others take longer. The developer may realize that an activity is
taking excessive time or that scope creep has begun. Scope creep, also called
feature creep, occurs when one activity has led to another that was not planned
originally; thus, the scope of the project now has grown. The scope of a project
includes its goals, objectives, and expectations of the project.
Phases and Methods of Development
The set of activities used to build an app is
called the software development life cycle
(SDLC). The phases in the SDLC also can
be applied to system development. Each
activity, or phase, is a step in the life cycle.
The goal in creating and using an SDLC is
to produce the fastest, least expensive,
and highest quality product.
Phases and Methods of Development
Planning Phase
The planning phase for a project begins with a request for the project and is
triggered by the development of the project documentation. The request might
come to a committee that authorizes development; that committee might consist
of business managers, managers, and IT professionals. The committee performs
four major activities, as follows:
• Review and approve requests.
• Prioritize project requests.
• Allocate resources such as money, people, and equipment.
• Form a project development team.
Phases and Methods of Development
Analysis Phase
The analysis phase consists of two major components: conducting a preliminary
investigation and performing detailed analysis. The preliminary investigation
sometimes is called a feasibility study. The goal of this part of the phase is to
determine if the project is worth pursuing. Feasibility is the measure of the suitability
of the development process to the individual project at any given time. This is a
critical phase, as it provides the customer or client with a clear-cut plan for achieving
the goals. If a program gets developed without a feasibility study, the work put into
development could be wasted if stakeholders are not happy with the final product
proposal. The purpose of a system proposal is to use the data gathered during the
feasibility study and detailed analysis to present a solution to the need or request.
Phases and Methods of Development
Design Phase
The design phase is when the project team acquires the necessary hardware and
programming tools, as well as develops the details of the finished product. During the
first part of the design phase, all technical specifications are determined, evaluated,
and acquired. The team produces a list of requirements and sends out requests for
solutions from potential vendors. Vendors submit back to the team proposals that
include all estimated costs, as well as a timeline for completion. The team then
makes decisions about how to best meet the technical needs of the project and
accepts the proposals from vendors that meet those requirements. The second
phase outlines the specifications for each component in the finished project. This
includes all input and output methods, as well as the actions a user can perform.
Phases and Methods of Development
In the case of a product that will be used on a network or
system, such as a database, or an information system, the final
step in the implementation phase is to convert to the new
system. Conversion can happen all at once, in phases, or as a
pilot program in one location or department.
Phases and Methods of Development
With direct conversion, the user stops using the old product and begins using the
new product on a certain date. The advantage of this strategy is that it requires no
transition costs and is a quick implementation technique.
Parallel conversion consists of running the old product alongside the new product
for a specified time. Results from both products are compared.
In a phased conversion, each location converts at a separate time. For example, an
accounting system might convert its accounts receivable, accounts payable, general
ledger, and payroll sites in separate phases. Each site can use a direct or parallel
conversion. Larger systems with multiple sites may use a phased conversion.
With a pilot conversion, only one location in the organization uses the new product
so that it can be tested. After the pilot site approves the new product, other sites
convert using one of the other conversion strategies.
Phases and Methods of Development
Support and Security Phase
During the support and security phase, the
product receives necessary maintenance,
such as fixing errors or improving its
functionality. Analysts also monitor the
performance to ensure efficiency.
Testing starts at the first phases of
development and continues throughout.
Quality assurance testers perform the
testing and report any issues to the
developers.
Phases and Methods of Development
Development Methodologies
Several methodologies exist to guide the
SDLC process. They can be broken down
into two main categories. Predictive
development uses a linear, structured
development cycle. One example of
predictive development is the waterfall
method. The waterfall method takes
each step individually and completes it
before continuing to the next phase.
Phases and Methods of Development
Agile development, also called adaptive
development, incorporates flexibility in
the goals and scope of the project. Agile
projects may evolve in phases, releasing
components as they are finalized and
adding functionality as it is needed or
requested by users
Phases and Methods of Development
Rapid application development (RAD) uses
a condensed or shortened development
process to produce a quality product. The
team involved must be highly skilled at
programming and development to ensure
the quality of the code and instructions. RAD
development is best for projects with a clear
goal and limited scope. RAD projects can be
lower in cost because of the shortened
process and they work well for time-
sensitive programs.
Phases and Methods of Development
DevOps
encourages collaboration between the
development and operations. DevOps
produces programs quickly and then
offers continuous updates to increase
the functionality of the program. While
DevOps ensures frequent releases of
fixes and enhancements, some users
prefer to have a complete product from
the start, without needing continuous
updates.
System Development Tools and Strategies
One aspect of managing projects is to ensure that everyone
submits deliverables on time and according to plan. A deliverable
is any tangible item, such as a chart, diagram, report, or program
file. Charts can help to create schedules and assign tasks.
Developers also use project management software to assist them
in planning, scheduling, and controlling development projects.
Project management is the process of planning, scheduling, and
then controlling the activities during system development.
Gantt and PERT Charts
Popular tools used to plan and schedule
the time relationships among project
activities are Gantt and PERT charts.
A Gantt chart, developed by Henry L.
Gantt, is a bar chart that uses horizontal
bars to show project phases or activities.
The left side, or vertical axis, displays the
list of required activities. A horizontal axis
across the top or bottom of the chart
represents time.
Gantt and PERT Charts
Developed by the US Department of
Defense, a PERT chart, short for Program
Evaluation and Review Technique chart,
analyzes the time required to complete a
task and identifies the minimum time
required for an entire project. PERT charts,
sometimes called network diagrams, can be
more complicated to create than Gantt
charts, but are better suited than Gantt
charts for planning and scheduling large,
complex projects.
Select Project Management Software
Several project management programs and apps are available, some for
free while others are fee based. These programs and apps are designed for
projects of specific sizes, so be sure to research the various programs and
apps on the market and choose one that best suits your needs. To manage
a project using project management software, follow these steps:
1. Make sure you understand the project in its entirety, as well as the steps
you must take to bring the project to completion.
2. Determine the date by which the project must be completed.
Data and Information Gathering Techniques
Systems analysts and other IT
professionals use several techniques to
gather data and information. They review
documentation, observe, survey, interview,
conduct joint-application design sessions,
and research.
Data and Information Gathering Techniques
Review documentation:
By reviewing documentation, such as
organization charts, memos, and
meeting minutes, systems analysts learn
about the history of a project.
Documentation also provides information
about the organization, such as its
operations, weaknesses, and strengths.
Data and Information Gathering Techniques
Observe:
Observing people helps
systems analysts understand
exactly how they perform a task.
Likewise, observing a machine
allows someone to see how it
works.
Data and Information Gathering Techniques
Survey:
To obtain data and information
from a large number of people,
systems analysts distribute
surveys.
Data and Information Gathering Techniques
Interview:
The interview is the most
important data and information
gathering technique for the
systems analyst. It allows the
systems analyst to clarify
responses and probe during
face-to-face feedback.
Data and Information Gathering Techniques
JAD sessions:
Instead of a single one-on-one interview,
analysts often use joint-application
design sessions to gather data and
information. A joint-application design
JAD) session, or focus group, consists of a
series of lengthy, structured group
meetings in which users and IT
professionals work together to design or
develop an application
System Development Tasks and Roles
The programmer might be the first
person you think of when you consider a
project's development; however, with a
complex software product, many roles
need to be filed. Some peso le may take
on multiple roles, and other tasks might
be so large that they require many
individuals to complete. Whether you are
one or one of many, some of the required
software development roles.
System Development Participants
For each system development project, an organization usually forms
a project team to work on the project from beginning to end. The
project team consists of users, the systems analyst, and other IT
professionals. During system development, the systems analyst
meets and works with a variety of people. A systems analyst is
responsible for designing and developing an information system.
The systems analyst is the users' primary contact person.
Depending on the size of the organization, the tasks performed by
the systems analyst may vary.
Project Leadership and Management
The goal of project management is to deliver an acceptable system to
the user in an agreed-upon time frame, while maintaining costs.
To plan and schedule a project effectively, the project leader identifies
the following elements:
• Scope
• Required activities
• Time estimates for each activity
• Cost estimates for each activity
• Order of activities
• Activities that can take place at the same time
Obtain Hardware and Software
After the project is approved, the systems analyst begins the activity of
obtaining additional hardware or software or evaluating cloud
providers that offer the computing services to meet the organization's
needs. The systems analyst may skip this activity if the approved
solution does not require new hardware or software. If this activity is
required, it consists of four major tasks:
(1) identify technical specifications,
(2) solicit vendor proposals,
(3) test and evaluate vendor proposals, and
(4) make a decision.
Identify Technical Specifications
A request for quotation (RFQ) identifies the
required products). With an RFQ, the vendor
quotes a price for the listed products).
• With a request for proposal (RFP), the vendor
selects the products) that meets specified
requirements and then quotes the price(s).
• A request for information (RFI) is a less formal
method that uses a standard form to request
information about a product or service.
Identify Technical Specifications
Solicit Vendor Proposals Systems analysts send
the RFQ, RFP, or RFI to potential hardware and
software vendors. Another source for hardware
and software products is a value-added
reseller. A value-added reseller (VAR) is an
organization that purchases products from
manufacturers and then resells these products
to the public — offering additional services with
the product.
Identify Technical Specifications
Test and Evaluate Vendor Proposals After
sending RFQs, RFPs, or RFIs to potential vendors,
the systems analyst will receive completed
quotations and proposals. Evaluating the
proposals and then selecting the best one
often is a difficult task.
Identify Technical Specifications
Make a Decision Having rated the proposals,
the systems analyst presents a
recommendation to the committee or person
in charge of making a decision.
Development Languages and Tools
A programming language is a set of words,
abbreviations, and symbols that a
programmer or developer uses to create
instructions for a program or app.
Programming Language Generations
Two types of low-level languages include
machine and assembly languages. • Machine
languages are first generation language; their
instructions use a series of binary digits.
Coding in machine language is tedious and
time consuming. Assembly languages are the
second generation of languages. • With an
assembly language, the programmer uses
symbolic instruction codes, such as A for add,
M for multiply, and L for load.
Programming Language Generations
Procedural languages use a series of English-like words
to write instructions, such as ADD for addition, or PRINT
for printing. Fourth generation languages, or 4GLs,
provide a graphical environment in which the
programmer uses a combination of English-like
instructions, graphics, icons, and symbols to create
code. Fifth generation languages, or 5GLs, was an
attempt to create programs that solve problems without
requiring the programmer to write algorithms. This
proved difficult to implement; many 5GLs on the market
actually are 4GLs that include some automation.
Types of Programming Tools
Application development tools provide a user-triendly
environment for building programs and apps. These
languages provide methods to create, test, and
translate programs and apps.
Source code editor is a text editor designed for
programming. When you enter code in a source code
editor, the editor adds color-coding to highlight syntax
to differentiate between types of code, indentation for
substeps, autocompletion of common instructions, and
the automatic addition of braces and other punctuation
that separates code
Types of Programming Tools
Programmers also use debuggers to test code in
one section, or an entire program, to determine
any errors and provide suggestions to fix them.
Debuggers often will stop running the code when
an issue is detected in order to highlight exactly
where in the code the error occurs. Some allow
you to step through the code one instruction at a
time to ensure each phase works as intended.
Types of Programming Tools
The two tools that assist in translation are
compilers and interpreters. •
A compiler is a separate program that converts
the entire source program into machine
language before executing it. The output from a
compiler is the object code, which the compiler
stores so that the program or app can be run.
The compiler also produces a list of errors in the
source code.
Types of Programming Tools
An interpreter translates and executes one
statement at a time. Interpreters do not produce
or store object code. Each time the source
program runs, the interpreter translates
instructions statement by statement.
Programmers might use separate tools for each
of these or use an integrated development
environment IDE). An IDE is an application that
provides multiple programming tools in one
environment.
Types of Programming Tools
A software development kit (SDK) is a set of
programming tools that includes a
programming interface, compiler, debugger,
and more. Often, SDKs are proprietary and can
be used to develop apps that run on that
company's platform and device. For example,
you cannot use an Android SDK to create an app
that will run on Apple's iOS. A code repository is
another web-based tool programmers use to
archive and host source code.
Types of Programming Tools
Repositories are often used by open source
projects so that developers can access the parts
of the code they want to modify. Many code
repositories include social aspects that enable
programmers to connect with each other,
comment on, and share code.
Object-Oriented Programming
A common method of programming is object-oriented.
Software developers use object-oriented programming (OOP) tools to
implement objects in a program. In programming, an object is an item that
can contain both data and the procedures that read or manipulate that
data. An object represents a real person, place, event, or transaction. A class
is a type of object that defines the format of the object and the actions an
object can perform. Each object in a class has the same format and can be
used in the same way. A method defines the behavior of an object.
Secure IT: Designing Secure Systems and
Applications
Tests During Development
security audit looks at common security practices and ensures that the app
or system meets the recommended criteria.
• With penetration testing, developers attempt to break into the app or
system. These can involve trying to gain unauthorized access that can be
used to pinpoint security vulnerabilities.
• Fuzz testing (also called fuzzing) uses automated tools that test a system
by using unexpected input to ensure the app or system does not crash.
Secure IT: Designing Secure Systems and
Applications
Tests at the End of Development At the late stages of development,
prerelease versions of the product, called a beta version, may be released
so that select users can start using the product to determine any additional
work that is needed.
Other tests that the system analysts run include:
• A unit test verifies that each individual program or object works by itself.
• A systems test verifies that all programs in an application work together
properly.
End of Module
11
Any Questions?