Thursday, March 31, 2011

CHAPTER14 - PROGRAMMING AND LANGUAGES

PROGRAMMING LANGUAGES 

  • artificial language designed to express computations that can be performed by a machine, particularly a computer
  • used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human communication.
  • The first programming languages predate the modern computer.
  • The 19th century had "programmable"looms and player piano scrolls which implemented what are today recognized as examples of domain-specific languages.   
  • In the 1940s, the first electrically powered digital computers were created.  
  • The first high- level programming languages to be designed for a computer was Plankalkul , developed for the German Z3 by Konrad Zuse between 1943 and 1945.   


                       http://www.mylot.com/w/photokeywords/programming+language.aspx                                    




Specification of Programming Languages

  • intended to provide a definition that the language users and the implementors can use to determine whether the behavior of a program is correct, given its source code. 
  • A programming language specification can take several forms, including the following:  
  1. An explicit definition of the syntax, static semantics, and execution semantics of the language
  • While syntax is commonly specified using a formal grammar, semantic definitions may be written in natural language (e.g., as in the C language)  
     2.  A reference or model implementation  , sometimes written in the language being specified  

  • The syntax and semantics of the language are explicit in the behavior of the reference implementation. 
  • Example : Prolog or ANSI REXX  
     3.  A description of the behavior of a translator for the language  

  • The syntax and semantics of the language have to be inferred from this description, which may be written in natural or a formal language.   
  • Example : the C++  and Fortran specifications  
What Does a Programming Languages Do?

  • A programming language is used to write computer programs such as : 
  1. applications 
  2. utilities 
  3. servers 
  4. systems programs 
  • A program is written as a series of human understandable computer instructions that can be read by a compiler and linker, and translated into machine code so that a computer can understand and run it.  
Examples Of Programming Languages

  1. These languages include Assembler, C or C++
  2. Operating systems like Linux or Windows are written in C and C++.   
  3. In the late 40s and early 50s, computer programs were entered by flicking switches.  
  4. It was quickly realised how inefficient and slow that was and computer languages soon appeared.  
  5. Through the 60s and 70s, these languages :  
  • Fortran  
  • Cobol
  • Basic   
Programming Languages that Now Use 

  • Java and C++ with C# starting to gain popularity and C holding its own.
  • have many attempts to automate this process, and have computers write computer programs but the complexity is such that for now, humans still write the best computer programs.  
NEWS PROGRAMMING LANGUAGES

  • The widely used C++ programming language is about to be updated, as the ISO steering committee for the language has approved the final draft specifying its next version.    
  • The ISO/IEC Information Technology Task Force (ITTF) will review the steering committee's Final Draft International Standard (FDIS) will review and barring any complications, publish the draft later this year. 
  • It will be known as C++ 2011. 
  • Although sometimes derided for its complexity,  C++ appears to be the third most popular programming language in use today, trailing only Java and C,  according to the most recent Tiobe survey  of programming languages.

                    
                                                          http://www2.research.att.com/~bs/3rd.html  


                        
         http://malaysiacrunch.blogspot.com/2009/01/most-popular-programming-languages.html 

Citation :

Monday, March 28, 2011

Short, brief note...

System analysis and design

  • a six-phase problem-solving procedure for examining and improving an information system
  • make up the systems life cycle


http://www.google.com.my/imglandingq=system+life+cycle&hl=en&sa=X&tbm=isch&tbnid=9e2wkzFCjuH73M:&imgrefurl=http://www.computing2008.com/dvd:analysis&imgurl=http://www.computing2008.com/computing2008/_media/dvd:141a.jpg%253Fw%253D%2526h%253D%2526cache%253Dcache&ei=nZKQTdeKJIq4vgO0kpCoDQ&zoom=1&w=252&h=247&iact=hc&oei=kJKQTau6JdC9ceXF9ZYK&page=3&tbnh=135&tbnw=138&start=37&ndsp=19&ved=1t:429,r:0,s:37&biw=1366&bih=624


Phase 1 : Preliminary investigation

  • determine the need for a new information system
  • concerned with three tasks : define the problem, suggest alternative solutions and prepare a short report
  • accomplish by interviewing and making observations
  • if information system is large, the survey is done by systems analyst
  • if information system is small, the survey can done by end user
  • report may include schedules for further development of the project and presented to higher management

Phase 2 : Systems analysis

  • data is collected about the present system
  • new requirements are determined for a new system
  • concerned with gathering and analyzing data
  • completed by documenting the analysis in report
  • organization chart : shows levels of management and formal lines of authority
  • systems analysis report : describes the current information system, the requirements for a new system,and a possible development schedule



http://www.google.com.my/imglandingq=system+design+in+system+life+cycle&hl=en&biw=1366&bih=624&tbm=isch&tbnid=zdd8ixYJ5hBvM:&imgrefurl=http://www.cs.uct.ac.za/mit_notes_devel/SE/Jul2006/html/ch02s04.html&imgurl=http://www.cs.uct.ac.za/mit_notes_devel/SE/Jul2006/html/images/02_005.png&ei=156QTYe4D467ce-drJIK&zoom=1&w=736&h=409


Phase 3 : Systems design 

  • consists of three tasks : design alternative systems, select the best system and write a systems design report
  • evaluate the alternative system for economic,technical and operational feasibility
  • system design report is prepared for higher management and describes the alternative designs
Phase 4 : Systems development

  • has three steps : acquiring software, acquiring hardware and testing the new system
  • application software can be purchased as off-the-shelf packaged software and possibly modified, or it can be custom designed
  • suggests that an electronic mailbox be installed for maintaining security
  • the processed information is evaluated to see whether results are correct

Phase 5 : Systems implementation

  • another name is conversion
  • process of changing from old system to the new one and training people to use the new system
  • four approaches to conversion : direct, parallel, pilot and phased
  • direct approach : abandon the old, very risky, not recommended
  • parallel approach : run old and new side by side, very low risky, however very expensive, not generally recommended
  • pilot approach : convert part of organization first, less expensive but riskier than parallel conversion, recommended for situations with many people performing similar operations
  • phased approach : implement gradually, less risky but more expensive than parallel conversion, recommended for situations with many people performing different operations


Phase 6 : Systems maintenance

  • ongoing activity
  • spend more time and money on this phase 
  • has two parts : a systems audit and a periodic evaluation
  • in systems audit, the system's performance is compared to original design specifications 
  • to determine whether the new procedures are actually furthering productivity
  • all systems are evaluated from time to time to determine whether they are meeting goals
Reference :
computing essentials 2011

Friday, March 25, 2011

CHAPTER 13

SYSTEM DESIGN

  • Systems design is the process of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements.  
  •  Systems design is therefore the process of defining and developing systems to satisfy specified requirements of the user. 
  • The logical design of a system pertains to an abstract representation of the data flows, inputs and outputs of the system.   
  • The physical design relates to the actual input and output processes of the system.
  • This is laid down in terms of how data is input into a system, how it is verified/authenticated, how it is processed, and how it is displayed as output.   To use an analogy, a personal computer's physical design involves input via a keyboard, processing within the CPU, and output via a monitor, printer, etc.   
Alternative design methodologies
1.  Rapid Application Development (RAD) 
  • is a methodology in which a systems designer produces prototypes for an end-users. 
  • The end-user reviews the prototype, and offers feedback on its suitability. This process is repeated until the end-user is satisfied with the final system.   
2.  Joint Application Design (JAD) 
  • is a methodology which evolved from RAD, in which a systems designer consults with a group consisting of the following parties:   
  1. Executive Sponsor 
  2. System Designer 
  3. Managers of the System      
  •              JAD involves a number of stages, in which the group collectively develops an agreed pattern for the design and implementation of the system.   
Benefits of System Design 
  •         Improved system performance; individually tailored configuration advice demonstrates where improvement is necessary, and how to improve the system to regain lost performance.
  •         Customers gain a detailed understanding of how their users use their system. This Usage Profile can be leveraged to develop future architecture changes.
  •         Potential to learn of future concerns, allowing customers to take proactive measures to avoid problems.
  •         A baseline performance level is established against which benefits can be compared and changes to the system predicted or foreseen.    

     
Citation : 

TOOLS TO USE IN ANALYSIS

Checklists :

  • A type of informational job aid used to reduce failure by compensating for potential limits of human memory and attention.
  • Consistency and completeness in carrying out a task.
  • More advanced checklist would be a schedule, which lays out tasks to be done according to time of day or other factors.
  • Often presented as lists with small checkboxes down the left hand side of the page.
  • A small tick or checkmark is drawn in the box after the item has been completed.
  • For more informations, please refer to http://en.wikipedia.org/wiki/Checklist



http://www.istockphoto.com/stock-photo-3555398-checklist.php



Top-down Analysis :
  • Breaking down of a system to gain insight into its compositional sub-systems.
  • Each subsystem is then refined in yet greater detail, sometimes in many additional subsystem levels, until the entire specification is reduced to base elements.
  • This approach makes each component easier to analyze an deal with.
  • A top-down model is often specified with the assistance of "black boxes", these make it easier to manipulate.
  • However, black boxes may fail to elucidate elementary mechanisms or be detailed enough to realistically validate the model.
  • For more information, please refer to http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design







Grid Charts :
  • Show the relationship between input and output.
  • On a grid sheet, rows represent inputs; columns represent output documents.
  • Intersection between the row and column means that the input document is used to create the output document.
                                         


Decision Tables :
  • Shows the decision rules that apply when certain condition occur.
  • A precise yet compact way to model complicated logic of a decision.
  • Associate conditions with actions to perform, but in many cases do so in a more elegant way.
  • For more informations, please refer to http://en.wikipedia.org/wiki/Decision_table






System Flowcharts : 





Data Flow Diagrams (DFDs) :
  • A graphical representation of the "flow" of data through an information system.
  • DFDs can also be used for the visualization of data processing (structured design).
  • A significant modeling techniquefor analyzing & constructing information process.
  • Explains the course @ movement of information in a process.
  • The information in DFD is a process based in the inputs & outputs.
  • provides no information about the timing of processes, or about whether processes will operate in sequence or in parallel.
  • Quite different from a flowchart, which shows the flow of control through an algorithm, allowing a reader to determine what operations will be performed, in what order, and under what circumstances, but not what kinds of data will be input to and output from the system, nor where the data will come from and go to, nor where the data will be stored (all of which are shown on a DFD).




Automated Design Tools :
  • It is a software packages that evaluate hardware & software alternatives according to requirements given by the systems analyst.
  • It also know as computer-aided software engineering(CASE) tools.
  • CASE is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products.
  • It also refers to methods for the development of information systems together with automated tools that can be used in the software development process.

Citations :
- http://en.wikipedia.org/wiki/Flowchart
- http://www.brainfood.ca/assistant/computing/systems/systemFlowchart.htm
- http://www.theteacher99.btinternet.co.uk/theteacher/gcse/newgcse/others/system_flowchart.htm
- http://en.wikipedia.org/wiki/Data_flow_diagram , http://www.edrawsoft.com/Data-Flow-Diagrams.php

Wednesday, March 23, 2011

PROTOTYPING


http://software-document.blogspot.com/2011/03/prototype-advantages-and-rapid.html


 PROTOTYPE is an easily modified and extensible model (representation, simulation
or demonstration) of a planned software system, likely including its

interface and input/output functionality.



CHARACTERISTICS OF A PROTOTYPE
  1. TYPES OF PROTOTYPE
    1. LOW-FIDELITY versus HIGH-FIDELITY
      1. LOW-FIDELITY
        A set of drawings (e.g., storyboard) that provide a static,
        non-computerized, non-working mock-up of user interface for
        the planned system
      2. HIGH-FIDELITY
        A set of screens that provide a dynamic, computerized,
        working model of the planned system
    2. EXPLORATORY versus EXPERIMENTAL versus OPERATIONAL
      1. EXPLORATORY
        A throw-away prototype used to clarify project goals, to
        identify requirements, to examine alternative designs, or to
        investigate a large and complex system
      2. EXPERIMENTAL
        A prototype used to validate system specifications
      3. OPERATIONAL
        An iterative prototype that is progressively refined until
        it becomes the final system
    3. HORIZONTAL versus VERTICAL
      1. HORIZONTAL
        A prototype that models many features but with little detail
        • a horizontal slice of a system's structure chart from the
          top down to a specific depth
        • most useful in the early stages of design
        • purpose is to test the overall interaction metaphor, so
          includes common functions that the user is expected to
          perform frequently
      2. VERTICAL
        A prototype that models few features but with much detail
        • a vertical slice of a system's structure chart from top
          to bottom
        • most useful in the later stages of design
        • purpose is to test details of the design
      3. DIAGONAL
        A prototype that is horizontal down to a particular level,
        then vertical below that point
    4. GLOBAL versus LOCAL
      1. GLOBAL
        A prototype of the entire system
        • an expanded horizontal prototype that models a greater
          number of features and covers multiple levels of the
          system's structure chart
        • useful throughout the design process
      2. LOCAL
        A prototype of a single usability-critical system component
        • a vertical prototype that is focused on one feature
        • useful at some specific stage of the design process
Advantages of Prototyping :






Reduces development time.

Reduces development costs.

Requires user involvement.

Developers receive quantifiable user feedback.

Facilitates system implementation since users know what to expect.

Results in higher user satisfaction.

Exposes developers to potential future system enhancements.


 Disadvantages of Prototyping :

 

Can lead to insufficient analysis.
 
Users expect the performance of the ultimate system to be the same as the prototype.




Developers can become too attached to their prototypes

Can cause systems to be left unfinished and/or implemented before they are ready.

Sometimes leads to incomplete documentation.
 
If sophisticated software prototypes (4th GL or CASE Tools) are employed, the time saving benefit of prototyping can be lost.

JUST FOR SHARE ===

Hands-On With Transparent Display of the Future




Citation :

1. http://csweb.cs.bgsu.edu/maner/domains/Proto.htm
2. http://www.umsl.edu/~sauterv/analysis/prototyping/proto.html

CHAPTER 13: SYSTEM ANALYSIS & DESIGN

The System Development Life Cycle



Some of the BENEFITS of integrating security into the system development life cycle include : 
  • Early identification and mitigation of security vulnerabilities and problems with the configuration of systems, resulting in lower costs to implement security controls and mitigation of vulnerabilities.
  • Awareness of potential engineering challenges caused by mandatory security controls.
  •  Facilitation of informed executive decision making through the application of a comprehensive risk management process in a timely manner.
  • Documentation of important security decisions made during the development
    process to inform management about security considerations during all phases of
    development.
  • Improved organization and customer confidence to facilitate adoption and use of
    systems, and improved confidence in the continued investment in government
    systems. (1)


Phase 1 -->Preliminary Analysis

  • Objectives - To identify the customer's needs, evaluate system concept for feasibility, perform economic and technical analysis, perform cost benefit analysis and create system definition that forms the foundation for all subsequent engineering works.
  • In this Phases 1 you should be enough expertise available for hardware and software for doing analysis.After the preliminary analysis, the analyst should report the findings to management, with recommendations outlining the acceptance or rejection of the proposal. (2)













Tuesday, March 22, 2011

Before Databases...
        •Information was kept in files:
–Each field describes one piece of information about student
–Fields are separated by commas
–A record is a collection of related fields
–Each record is a separate line



Problems with Files
•Proliferation of data management programs to deal with different file formats
•Redundant data stored in files
•Data files may contain inconsistent data

Database Approach
-Database stores all organizational data
  in a central location
-Good database design eliminates redundant
  data to reduce the possibility of inconsistent 
  data
-Single application called the database
 management system (DBMS) performs 
 all routine data handling operations
-Database administrator (DBA):
  person responsible for installing, 
  administering, and maintaining the database


Client/Server
 Database 
Architecture

Monday, March 21, 2011

TYPES OF DATABASE

There are Three main types of database: Flat-file, Hierarchical  Files & Relational Files .
Which is the best one to use for a particular job will depend on factors such as the type and the amount of data to be processed; not to mention how frequently it will be used.


Flat-File
  • Ideal for small amounts of data that needs to be human readable or edited by hand.
  • Used for storing the more complex data types, are also likely to render the file unreadable and un-editable to anyone looking after the database.
  • Split up using a common delimiter.
  • If the data is simple enough, this could be a comma, but more complex strings are usually split up using tabs, new lines or a combination of characters.
  • One of the main problems with using flat files for even a semi-active database is the fact that it is very prone to corruption.
  • There is no inherent locking mechanism that detects when a file is being used or modified, and so this has to be done on the script level.
  •  Even if care is taken to lock and unlock the file on each access, a busy script can cause a "race condition" and it is possible for a file to be wiped clean by two or more processes that are fighting for the lock; the timing of your file locks will become more and more important as a site gets busy.






 Hierarchical Files
  • Store data in more than one type of record.
  • Described as a "parent-child, one-to-many" relationship. One field is key to all records, but data in one record does not have to be repeated in another.
  • This system allows records with similar attributes to be associated together. The records are linked to each other by a key field in a hierarchy of files.
  • Each record, except for the master record, has a higher level record file linked by a key field "pointer". In other words, one record may lead to another and so on in a relatively descending pattern.






Relational Files
  • Connect different files or tables (relations) without using internal pointers or keys.
  •  Instead a common link of data is used to join or associate records. The link is not hierchical. A "matrices of tables" is used to store the information.
  • The tables have a common link they may be combined by the user to form new inquires and data output.
  • This is the most flexible system and is particularly suited to SQL (structured query language).
  • Have functions "built in" that help them to retrieve, sort and edit the data in many different ways.
  • These functions save script designers from having to worry about filtering out the results that they get, and so can go quite some way to speeding up the development and production of web applications.
  • A description of how drives, directories, and files are displayed on an operating system that allows for a large quantity of files and directories to be listed in a small area.










Flat, Hierarchical, and Relational Files Compared



StructureAdvantagesDisadvantages 
Flat Files
  • Fast data retrieval
  • Simple structure and easy to program
  • Difficult to process multiple values of a data item
  • Adding new data categories requires reprogramming
  • Slow data retrieval without the key
Hierarchical Files
  • Adding and deleting records is easy
  • Fast data retrieval through higher level records
  • Multiple associations with like records in different files
  • Pointer path restricts access
  • Each association requires repetitive data in other records
  • Pointers require large amount of computer storage
Relational Files
  • Easy access and minimal technical training for users
  • Flexibility for unforeseen inquiries
  • Easy modification and addition of new relationships, data, and records
  • Physical storage of data can change without affecting relationships between records
  • New relations can require considerable processing
  • Sequential access is slow
  • Method of storage an disks impacts processing time
  • Easy to make logical mistakes due to flexibility of relationships between records