O'Reilly logo

Information Systems by Efrem G. Mallach

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

377
Chapter 11
Developing Information
Systems
CHAPTER OUTLINE
Overview of Soware Development
e System Development Life Cycle Approach
Other System Development Approaches
Managing the Development Process
WHY THIS CHAPTER MATTERS
Most information systems use commercially available soware, as is or customized—but
most is not the same as all! Companies can get a competitive advantage by using informa-
tion systems that nobody else has. Getting systems that nobody else has means custom
soware development.
Custom soware development is programming. Why should a businessperson know
about it? Because obtaining benets from custom soware depends on active participa-
tion by those who will use it. Parts of the development process must be done by people
who will use the resulting information system. If those people (you, in a few years)
don’t do their part, they will end up with a system that doesnt meet their needs or that
doesnt provide the benets that the organization hoped for. ey will have only them-
selves to blame.
is chapter will tell you what you must do during soware development, when you
will do it, and why the responsibility for doing it can’t be passed o. at will prepare
you for being called upon to participate in an information system development project
at work.
378 Information Systems: What Every Business Student Needs to Know
CHAPTER TAKE-AWAYS
As you read this chapter, focus on these key concepts to use on the job:
1. Organizations can choose among dierent soware development processes.
2. Each process suits certain business situations and technologies.
3. Each process has a series of stages during which specic people carry out specic
tasks. Each process involves nontechnical people (the user side of the organization) at
dierent times.
4. e quality of the soware that emerges from any process depends on contributions
from all participants. Knowing what you are expected to contribute, and when, will
help you make a contribution and thus improve the quality of the resulting system.
OVERVIEW OF SOFTWARE DEVELOPMENT
As you know, soware refers to instructions that tell a computer how to perform a job.
Soware consists of programs for specic tasks. A short program, such as you saw in
Figure 4.1, might be assigned in the rst week of a programming course. An application
package is probably tens of thousands of lines long. Enterprise-level information systems
have millions (Box 11.1). Figure 11.1 shows a tiny part of the Android operating system
module that splits a task over multiple processing units.
Conceptually, the process of developing a new custom system is simple:
1. An organization decides to use custom soware in a new system.
2. Someone gures out exactly what that soware should do.
3. If the system is large enough for more than one person to work on, someone divides
it into modules for dierent programmers.
4. ose programmers write sequences of instructions that guide the computer, step by
step, to carry out the tasks of each module.
5. People compile those modules and test them individually to conrm that each one
works properly. en they combine the modules and conrm that the entire system
works properly.
6. e new system is installed on the organizations computers.
7. Members of the organization use it.
BOX 11.1 FACTOID
SAP’s popular enterprise Enterprise Resource Planning (ERP) has been estimated to contain
over 250 million lines of code. Every one of those lines was written by a programmer.
Developing Information Systems 379
setContentView(R.layout.main_layout);
mBitmapIn = loadBitmap(R.drawable.data);
mBitmapsOut = new Bitmap[NUM_BITMAPS];
for(int i = 0; i < NUM_BITMAPS; ++i) {
mBitmapsOut[i] = Bitmap.createBitmap(mBitmapIn.getWidth(),
mBitmapIn.getHeight(), mBitmapIn.getConfig());
}
mImageView = (ImageView) findViewById(R.id.imageView);
mImageView.setImageBitmap(mBitmapsOut[mCurrentBitmap]);
mCurrentBitmap += (mCurrentBitmap + 1)% NUM_BITMAPS;
SeekBarseekbar = (SeekBar) findViewById(R.id.seekBar1);
seekbar.setProgress(50);
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onProgressChanged(SeekBarseekBar, int progress,
booleanfromUser) {
float max = 2.0f;
float min = 0.0f;
float f = (float) ((max – min) * (progress/100.0) + min);
updateImage(f);
}
@Override
public void onStartTrackingTouch(SeekBarseekBar) { }
@Override
public void onStopTrackingTouch(SeekBarseekBar) {
}
});
createScript();
updateImage(1.0f);
}
private void createScript() {
mRS = RenderScript.create(this);
mInAllocation = Allocation.createFromBitmap(mRS, mBitmapIn);
mOutAllocations = new Allocation[NUM_BITMAPS];
for(int i = 0; i < NUM_BITMAPS; ++i) {
mOutAllocations [i] = Allocation.createFromBitmap(mRS, mBitmapsOut[i]);
}
mScript = new ScriptC_saturation(mRS);
}
private class RenderScriptTask extends AsyncTask<Float, Integer, Integer> {
Boolean issued = false;
protected Integer doInBackground(Float... values) {
int index = –1;
if (isCancelled() == false) {
issued = true;
index = mCurrentBitmap;
mScript.set_saturationValue(values[0]);
mScript.forEach_saturation(mInAllocation, mOutAllocations[index]);
mOutAllocations[index].copyTo(mBitmapsOut[index]);
mCurrentBitmap = (mCurrentBitmap + 1)% NUM_BITMAPS;
}
return index;
}
}
FIGURE 11.1 Code fragment from Android OS.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required