Archive for System Development

books that i need ! hoho $62.80…

Book Contents

1 Crunching Pixels
1.1 Programming with Images
1.2 Image Analysis and “Intelligent” Processing
2 Digital Images
2.1 Types of Digital Images
2.2 Image Acquisition
2.2.1 The Pinhole Camera Model
2.2.2 The “Thin” Lens
2.2.3 Going Digital
2.2.4 Image Size and Resolution
2.2.5 Image Coordinate System
2.2.6 Pixel Values
2.3 Image File Formats
2.3.1 Raster vs. Vector Images
2.3.2 Tagged Image File Format (TIFF)
2.3.3 Graphics Interchange Format (GIF)
2.3.4 Portable Network Graphics (PNG)
2.3.5 JPEG
2.3.6 Windows Bitmap (BMP)
2.3.7 Portable Bitmap Format (PBM)
2.3.8 Additional File Formats
2.3.9 Bits and Bytes
2.4 Exercises
3 ImageJ
3.1 Software for Digital Images
3.1.1 Software for Image Manipulation
3.1.2 Software for Image Processing
3.2 Properties of ImageJ
3.2.1 Features
3.2.2 Available Tools
3.2.3 ImageJ Plugins
3.2.4 An Example Plugin “inverter”
3.3 Additional Information about ImageJ and Java
3.3.1 ImageJ Resources
3.3.2 Programming with Java
3.4 Exercises
4 Histograms
4.1 What is a Histogram?
4.2 What can be discovered from a Histogram?
4.2.1 Brightness, Contrast, and Dynamic Range
4.2.2 Image Defects
4.3 Computing the Histogram
4.4 Histograms for Images with more than 8 bits
4.4.1 Binning
4.4.2 Example
4.4.3 Implementation
4.5 Histograms of Color Images
4.5.1 Intensity Histogram
4.5.2 Histogram of Individual Color Channels
4.5.3 Combined Color Histogram
4.6 Cumulative Histogram
4.7 Exercises
5 Point Operations
5.1 Changing Pixel Intensity
5.1.1 Contrast and Brightness
5.1.2 Clamping
5.1.3 Automatic Contrast Enhancement
5.1.4 Inverting Images
5.1.5 Thresholding
5.1.6 Point Operations and Histograms
5.2 Linear Histogram Equalization
5.2.1 Histogram Specification
5.3 Gamma Correction
5.3.1 Why Gamma?
5.3.2 The Gamma Function
5.3.3 Real Gamma Values
5.3.4 Applying Gamma Correction
5.3.5 Implementation
5.3.6 Gamma Function with Offset
5.4 Point Operations in ImageJ
5.4.1 Point Operations with Look-up Tables
5.4.2 Standard Arithmetic Operations
5.4.3 Point Operations with Multiple Images
5.4.4 ImageJ Plugins for Multiple Images
5.5 Exercises
6 Filters
6.1 What is a Filter?
6.2 Linear Filters
6.2.1 The Filter Matrix
6.2.2 Using Filters
6.2.3 Computing Filter Operations
6.2.4 Filter Plugin Example
6.2.5 Integer Coefficients
6.2.6 Arbitrary Size Filters
6.2.7 Types of Linear Filters
6.3 Formal Properties of Linear Filters
6.3.1 Linear Convolution
6.3.2 Properties of Linear Convolution
6.3.3 Separability of Filters
6.3.4 Impulse Response
6.4 Non-linear Filters
6.4.1 Minimum- and Maximum-Filter
6.4.2 Median Filter
6.4.3 The Weighted Median Filter
6.4.4 Additional Non-linear Filters
6.5 Filter Implementation
6.5.1 Efficiency of Filter Programs
6.5.2 Handling Image Borders
6.6 Filter Operations in ImageJ
6.6.1 Linear Filters
6.6.2 Gaussian Filters
6.6.3 Non-linear Filters
6.7 Exercises
7 Edges and Contours
7.1 How do Edges Arise
7.2 Gradient Based Edge Detection
7.2.1 Partial Derivatives and the Gradient
7.2.2 Derivative Filters
7.3 Filters for Edge Detection
7.3.1 Prewitt and Sobel Operators
7.3.2 Roberts Operator
7.3.3 Compass Operators
7.3.4 Edge Operators in ImageJ
7.4 Additional Edge Operators
7.4.1 Edge Detection with Second Derivatives
7.4.2 Edges at Different Scales
7.4.3 Canny Filter
7.5 From Edges to Contours
7.5.1 Contour Following
7.5.2 Edge Images
7.6 Edge Enhancement
7.6.1 Edge Enhancement using the Laplace Filter
7.6.2 Unsharp Masking
7.7 Exercises
8 Finding Points of Interest
8.1 Points of Interest
8.2 Harris Corner Detector
8.2.1 Local Structure Matrix
8.2.2 Corner Response Function (CRF)
8.2.3 Determining Corner Points
8.2.4 Example
8.3 Implementation
8.3.1 Step 1 – Computing the Corner Response Function
8.3.2 Step 2 – Determining the Corner Points
8.3.3 Displaying the Corner Points
8.3.4 Summary
8.4 Exercises
9 Detecting Simple Curves
9.1 Salient Structures
9.2 Hough Transform
9.2.1 Parameter Spaces
9.2.2 Accumulator Array
9.2.3 A Better Representation for Lines
9.3 Implementing the Hough Transform
9.3.1 Filling the Accumulator Array
9.3.2 Analyzing the Accumulator Array
9.3.3 Extensions to the Hough Transform
9.4 Hough Transforms for Circles and Ellipses
9.4.1 Circles and Arcs
9.4.2 Ellipses
9.5 Exercises
10 Morphological Filters
10.1 Shrinking and Growing
10.1.1 Image Neighborhoods
10.2 Basic Morphological Operations
10.2.1 The Structuring Element
10.2.2 Point Sets
10.2.3 Dilation
10.2.4 Erosion
10.2.5 Properties of Dilation and Erosion
10.2.6 Design of Morphological Filters
10.2.7 Example Usage: Outlining
10.3 Composite Operations
10.3.1 Opening
10.3.2 Closing
10.3.3 Properties of Opening and Closing
10.4 Morphological Filters for Grayscale and Color Images
10.4.1 Structuring Elements
10.4.2 Grayscale Dilation and Erosion
10.4.3 Grayscale Opening and Closing
10.5 Implementing Morphological Filters
10.5.1 Binary Images in ImageJ
10.5.2 Dilation and Erosion
10.5.3 Opening and Closing
10.5.4 Outlining
10.5.5 Morphological Operations in ImageJ
10.6 Exercises
11 Regions in Binary Images
11.1 Finding Image Regions
11.1.1 Region Marking with Flood Filling
11.1.2 Sequential Region Marking
11.1.3 Region Marking – Summary
11.2 Region Contours
11.2.1 Internal and External Contours
11.2.2 Combining Region Marking and Contour Finding
11.2.3 Implementation
11.2.4 Example
11.3 Representing Image Regions
11.3.1 Matrix Representation
11.3.2 Run Length Encoding
11.3.3 Chain Codes
11.4 Properties of Binary Regions
11.4.1 Shape Features
11.4.2 Geometric Properties
11.4.3 Statistical Shape Properties
11.4.4 Moment Based Geometrical Properties
11.4.5 Projections
11.4.6 Topological Properties
11.5 Exercises
12 Color Images
12.1 RGB Color Images
12.1.1 Organization of Color Images
12.1.2 Color Images in ImageJ
12.2 Color Spaces and Color Conversion
12.2.1 Conversion to Grayscale
12.2.2 Color Image De-saturation
12.2.3 HSV/HSB and HLS Color Spaces
12.2.4 TV Component Color Spaces – YUV, YIQ, YCbCr
12.2.5 Color Space for Printing – CMY and CMYK
12.3 Colorimetric Color Spaces
12.3.1 CIE Color Space
12.3.2 CIE L*a*b*
12.3.3 sRGB
12.3.4 Adobe RGB
12.3.5 Colors and Color Spaces in Java
12.4 Color Image Statistics
12.4.1 How many Colors are in an Image?
12.4.2 Histograms
12.5 Color Quantization
12.5.1 Scalar Color Quantization
12.5.2 Vector Quantization
12.6 Exercises
13 Introduction to Spectral Techniques
13.1 The Fourier Transform
13.1.1 Sine and Cosine Functions
13.1.2 Representing Periodic Functions with Fourier Series
13.1.3 The Fourier Transform
13.1.4 Fourier Transform Pairs
13.1.5 Important Properties of the Fourier Transform
13.2 Transition to Discrete Data
13.2.1 Sampling
13.2.2 Discrete and Periodic Functions
13.3 The Discrete Fourier Transform (DFT)
13.3.1 Definition of the DFT
13.3.2 Discrete Basis Functions
13.3.3 Yet Again Aliasing!
13.3.4 Units in Spatial and Spectral Spaces
13.3.5 The Power Spectrum
13.4 Implementation of the DFT
13.4.1 Direct Implementation
13.4.2 Fast Fourier Transform (FFT)
13.5 Exercises
14 The Discrete Fourier Transform in 2D
14.1 Definition of the 2D DFT
14.1.1 2D Basis Functions
14.1.2 Implementing the 2D DFT
14.2 Representing the Fourier Transform in 2D
14.2.1 Range of Values
14.2.2 Centered Representation
14.3 Frequency and Orientation in 2D
14.3.1 Effective Frequency
14.3.2 Frequency Limits and Aliasing in 2D
14.3.3 Orientation
14.3.4 Geometric Correction of the 2D Spectrum
14.3.5 Effects of Periodicity
14.3.6 Windowing
14.3.7 Windowing Functions
14.4 2D Fourier Transform Examples
14.5 Properties of the DFT
14.5.1 Linear Filter Operations in the Spectral Domain
14.5.2 Linear Convolution and Correlation
14.5.3 Inverse Filters
14.6 Exercises
15 The Discrete Cosine Transform (DCT)
15.1 One Dimensional DCT
15.1.1 DCT Basis Functions
15.1.2 Implementing the One Dimensional DCT
15.2 Two Dimensional DCT
15.2.1 Separability
15.2.2 Example
15.3 Additional Spectral Transformations
15.4 Exercises
16 Geometrical Image Operations
16.1 Coordinate Transformations in 2D
16.1.1 Simple Transformations
16.1.2 Homogeneous Coordinates
16.1.3 Affine Transformations (Three Point Transformations)
16.1.4 Projective Transformations (Four Point Transformations)
16.1.5 Bilinear Transformations
16.1.6 Additional Non-Linear Image Deformations
16.2 Re-Sampling
16.2.1 Source-to-Target Mapping
16.2.2 Target-to-Source Mapping
16.3 Interpolation
16.3.1 Simple Interpolation Methods
16.3.2 Ideal Interpolation
16.3.3 Interpolation Using Convolution
16.3.4 Cubic Interpolation
16.3.5 Interpolation in 2D
16.3.6 Aliasing
16.4 Java Implementation
16.4.1 Geometrical Transformations
16.4.2 Pixel Interpolation
16.4.3 Usage Example
16.5 Exercises
17 Image Comparison
17.1 Template Matching in Intensity Images
17.1.1 Distance between Image Patterns
17.1.2 Dealing with Rotation and Scale Changes
17.1.3 Implementation
17.2 Comparison of Binary Images
17.2.1 Direct Comparison of Binary Images
17.2.2 The Distance Transform
17.2.3 Chamfer Matching
17.3 Exercises
A Mathematical Notation
A.1 Often Used Symbols
A.2 Complex Numbers C
A.3 Algorithmic Complexity and O Notation
B Java Notes
B.1 Arithmetic
B.1.1 Integer Division
B.1.2 Modulus Operator
B.1.3 Unsigned Bytes
B.1.4 Mathematical Functions (Math-Class)
B.1.5 Rounding
B.1.6 Inverse Tangent Function
B.1.7 Float and Double (Classes)
B.2 Arrays in Java
B.2.1 Creating Arrays
B.2.2 Size of Arrays
B.2.3 Access to Array Elements
B.2.4 Two Dimensional Arrays
C ImageJ Short Reference
C.1 Installation and Setup
C.2 ImageJ API
C.2.1 Images (Package ij)
C.2.2 Image Processing (Package ij.process)
C.2.3 Plugins (Packages ij.plugin, ij.plugin.filter)
C.2.4 GUI Classes (Package ij.gui)
C.2.5 Window Management (Package ij)
C.2.6 Utility Classes (Package ij)
C.2.7 Input-Output (Package
C.3 Image and Image Stacks Creation
C.3.1 ImagePlus (Class)
C.3.2 ImageStack (Class)
C.3.3 NewImage (Class)
C.3.4 ImageProcessor (Class)
C.4 Image Processor Creation
C.4.1 ImageProcessor (Class)
C.4.2 ByteProcessor (Class)
C.4.3 ColorProcessor (Class)
C.4.4 FloatProcessor (Class)
C.4.5 ShortProcessor (Class)
C.5 Image Parameters
C.5.1 ImageProcessor (Class)
C.6 Accessing Pixels
C.6.1 ImageProcessor (Class)
C.7 Converting from Images
C.7.1 ImageProcessor (Class)
C.7.2 ImagePlus, ImageConverter (Classes)
C.8 Histogram and Image Statistics
C.8.1 ImageProcessor (Class)
C.9 Point Operations
C.9.1 ImageProcessor (Class)
C.9.2 Blitter (Interface)
C.10 Filter
C.10.1 ImageProcessor (Class)
C.11 Geometrical Operations
C.11.1 ImageProcessor (Class)
C.12 Graphical Operations on Images
C.12.1 ImageProcessor (Class)
C.13 Displaying Images
C.13.1 ImagePlus (Class)
C.14 Image Stack Operations
C.14.1 ImagePlus (Class)
C.14.2 ImageStack (Class)
C.14.3 Stack Example
C.15 Region of Interest (ROI)
C.15.1 ImageProcessor (Class)
C.15.2 ImageStack (Class)
C.15.3 ImagePlus (Class)
C.15.4 Roi, Line, OvalRoi, PolygonRoi (Classes)
C.16 Image Properties
C.16.1 ImagePlus (Class)
C.17 Interaction
C.17.1 IJ (Class)
C.17.2 ImageProcessor (Class)
C.17.3 GenericDialog (Class)
C.18 Plugins
C.18.1 PlugIn(Interface)
C.18.2 PlugInFilter(Interface)
C.18.3 Executing Plugins
C.19 Window Management
C.19.1 WindowManager (Class)
C.20 Additional Functions
C.20.1 ImagePlus (Class)
C.20.2 IJ (Class)
D Source Code
D.1 Harris Corner Detector
D.1.1 File
D.1.2 File
D.1.3 File
D.2 Combined Region Marking and Contour Following
D.2.1 File
D.2.2 File
D.2.3 File
D.2.4 File
D.2.5 File
D.2.6 File
D.2.7 File
D.2.8 File

hmm…. think twice? think trice? hahah?
may be i should find in torrent for this book ..ngeh2



Prototyping is defined as creating a model, which displays the necessary characteristics of a proposed system

  • Gathering requirements – these requirements will be stated by the knowledge workers as well as become apparent in comparison with the old or existing system
  • Create prototype of system – Confirm a technically proficient system by using prototypes and create basic screen and reports
  • Review by knowledge workers – create a model of the system that will be analyzed, inspected and evaluated by knowledge workers who will propose recommendations to have the system reach its maximum potential
  • Revise the prototype
  • Market the idea of the new system – use the prototype to sell the new system and convince the organization of the advantages of switching up to the new system

[edit] Outsourcing

Outsourcing is defined as having a third party (outside the organization) to build the organization’s system so expert minds can create the highest quality system by.

  • Outsourcing for development software –
    • Purchasing existing software and paying the publisher to make certain modifications and paying the publisher for the right to make modifications yourself
    • Outsourcing the development of an entirely new unique system for which no software exists
  • Selecting a target system – make sure there is no confidential information critical to the organization that others should not see. If the organization is small enough, consider selfsourcing
  • Establish logical requirements – IT specialists and knowledge workers collaborate in a joint application design (JAD) and discuss which tasks to undertake to make the system most successful to gather business requirements
  • Develop a request for a proposal – a request for proposal (RFP) is created and formalized. It includes everything the home organization is looking for in the system and can be used as the legal binding contract
  • Evaluate request for proposed returns and choose a vendor amongst the many who have replied with different prototypes
  • Test and Accept a Solution – the chosen system must be tested by the home organization and a sign-off must be conducted
  • Monitor and Reevaluate – keep the system up to date with the changing environment and evaluate the chosen vendor’s ability and accommodate to maintain the system

Systems Development Life Cycle (SLC) in the United Kingdom’

The SDLC is referred to as the Systems Life Cycle (SLC) in the United Kingdom, whereby the following names are used for each stage:
1. Terms Of Reference — the management will decide what capabilities and objectives they wish the new system to incorporate;
2. Feasibility Study — asks whether the managements’ concept of their desired new system is actually an achievable, realistic goal, in-terms of money, time and end result difference to the original system. Often, it may be decided to simply update an existing system, rather than to completely replace one;
3. Fact Finding and Recording — how is the current system used? Often questionnaires are used here, but also just monitoring (watching) the staff to see how they work is better, as people will often be reluctant to be entirely honest through embarrassment about the parts of the existing system they have trouble with and find difficult if merely asked;
4. Analysis — free from any cost or unrealistic constraints, this stage lets minds run wild as ‘wonder systems’ can be thought-up, though all must incorporate everything asked for by the management in the Terms Of Reference section;
5. Design — designers will produce one or more ‘models’ of what they see a system eventually looking like, with ideas from the analysis section either used or discarded. A document will be produced with a description of the system, but nothing is specific — they might say ‘touchscreen’ or ‘GUI operating system’, but not mention any specific brands;
6. System Specification — having generically decided on which software packages to use and hardware to incorporate, you now have to be very specific, choosing exact models, brands and suppliers for each software application and hardware device;
7. Implementation and Review — set-up and install the new system (including writing any custom (bespoke) code required), train staff to use it and then monitor how it operates for initial problems, and then regularly maintain thereafter. During this stage, any old system that was in-use will usually be discarded once the new one has proved it is reliable and as usable.
8. Use – obviously the system needs to actually be used by somebody, otherwise the above process would be completely useless.
9. Close – the last step in a system’s life cycle is its end, which is most often forgotten when you design the system. The system can be closed, it can be migrated to another (more modern platform) or it’s data can be migrated into a replacing system.

V-Models VS Waterfall models

The V-model is a software development process which can be presumed to be the extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing

The waterfall model is a sequential software development model (a process for the creation of software) in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance. The origin of the term “waterfall” is often cited to be an article published in 1970 by Winston W. Royce (1929–1995),[1] although Royce did not use the term “waterfall” in this article. Ironically, Royce was presenting this model as an example of a flawed, non-working model (Royce 1970).

System Development Life Cycle

Once upon a time, software development consisted of a programmer writing code to solve a problem or automate a procedure. Nowadays, systems are so big and complex that teams of architects, analysts, programmers, testers and users must work together to create the millions of lines of custom-written code that drive our enterprises.

To manage this, a number of system development life cycle (SDLC) models have been created: waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and synchronize and stabilize.

The oldest of these, and the best known, is the waterfall: a sequence of stages in which the output of each stage becomes the input for the next. These stages can be characterized and divided up in different ways, including the following:



  • Project planning, feasibility study: Establishes a high-level view of the intended project and determines its goals. 
  • Systems analysis, requirements definition: Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs. 
  • Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation. 
  • Implementation: The real code is written here. 
  • Integration and testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability. 
  • Acceptance, installation, deployment: The final stage of initial development, where the software is put into production and runs actual business. 
  • Maintenance: What happens during the rest of the software’s life: changes, correction, additions, moves to a different computing platform and more. This, the least glamorous and perhaps most important step of all, goes on seemingly forever.

LInk : computerworld