Sunday, October 17, 2010

Software Engineering Life cycle and various stages in software engineering

Software Engineering Life-cycle and various stages in Software Engineering

Following are the main phases in Software Development

1. Problem definition phase : state the problem, characterize it, give it scope.
2. Feasibility : give alternative costs, benefits
3. Requirement Analysis : Specify input, processing , outputs
4. Design phase
5. Implementation phase
6. Testing
7. Operation and Maintenance

Problem Definition Phase

Problem definition involves stating the problem and the scope of the problems and giving a scope to the problem

Feasibility

Feasibility study establishes alternatives and cost-benefit analysis.

Requirement Analysis

Requirement Engineering is the process of establishing the services that the customer requires from a system and the constraints under which it operates and develops.

The requirements themselves are the descriptions of the system services and the constraints that are generated during requirement engineering process.

What is a requirement?

It may range from a high-level abstract statement of a service or a system constraint to a detailed mathematical functional specification.

Requirement can serve a dual purpose:

- May be the basis of the bid for a contract - therefore must be open to interpretation.
- May be the basis of a contract itself so must be defined in detail

Types of Requirements

User Requirements

Statement in natural language plus diagram of the services the system provides and its operational constraints, written for customers

System Requirements

A structured document setting out a detailed description of the system functions, services and operational constraints. Defines what should be implemented so may be the part of the contract between the client and the contractor

Written more from a developer requirement

Functional and Non Functional Requirement

Functional Requirements

Statement of services the system should provide, how the system should react to particular inputs and how the system should behave in a particular situation.

Non Functional Requirements

Constraints on the services or functions offered by the system such as timing constraints , constraints on the development process, standards, etc.

In principle, Requirements are meant to stay away from design. Requirements are meant to state what the system is supposed to do and not how.

Design Phase

The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts.

Modeling

Why we Model?

- It is difficult to understand the system in one shot. Therefore, we have to build a model and try to understand it in terms of components and how those components relate with each other.

- To communicate the desired structure and behavior of our systems.

How we Model?

- The choice of which model we use has a profound influence on how a problem is attacked and how a solution is shaped.

- No single model is sufficient; every complex system is best approached through a set of independent models.

* The best models are connected to reality

Common types of models:

- Data Model
- ER model
- Entity
- Entity set

Implementation Phase

Modular and subsystem programming code will be accomplished during this stage. Unit testing and module testing are done in this stage by the developers. This stage is intermingled with the next in that individual modules will need testing before integration to the main project.

Testing

Testing finds errors

* Testing does not GUARANTEE the absence of errors

- Testing is not an activity that starts after implementation
- It starts early with making of software test plan
- The test plans are based on requirements
- Besides the implementation that is code, outcomes of the life cycle phases are to be validated, or are verified formally
- The requirement analysis/design document is validated through peer/customer review.
- Models may be verified through model checkers if formal modeling techniques are used.
- Test driven development
- Tests first and then the development

Operation and Maintenance


The deployment of the system includes changes and enhancements before the decommissioning or sunset of the system. Maintaining the system is an important aspect of SDLC. As key personnel change positions in the organization, new changes will be implemented, which will require system updates.




Guidelines for performing Systematic Literature review

DISCLAIMER : This information is not my own. I am just summarizing the "

Guidelines for performing Systematic Literature Reviews in Software Engineering by Barbara Kitchenham, Stuart Charters".


Purpose of this page

The information presented here are some basic guidelines for a systematic literature review.

Target Audience

It is aimed primarily at the researchers in software engineering community.

What is Systematic Literature Review?

-> Means of evaluating all the available research relevant to a particular research question.

Importance of Systematic Literature Review:

1. It identifies gaps in the current research and suggests further areas of investigation.
2. It provides reference upon which new research topics can be build upon.

Characteristic of a good systematic review:

1. It should be thorough and fair.
Researchers performing a systematic review should make sure that they report research that does not support their research hypothesis.

Important components of systematic literature review:

1. Systematic review starts by defining a review protocol that specifies the research question being addressed and the method that will be used.
2. Search strategies need to be developed to cover as much information as possible.
3. Search strategies need to be documented.

Nature of Software Engineering Research

Software engineers are human beings so it is more similar in experimentation to social sciences.

The Review Process
Systematic review has three phases:

1) Planning the review
2) Conducting the review
3) Reporting the review

These three stages may be in order or may follow an iteration.

The stages associated with planning the review are:

1. Identification of the need for a review
2. Commissioning a review.
3. Specify a research question
4. Develop a review protocol
5. Evaluate the review protocol

The stages associated with conducting the review are:

1. Identification of the research
2. Selection of primary study
3. Study quality assessment
4. Data extraction and monitoring
5. Data Synthesis

The stages associated with reporting a review are:

1. Specifying dissemination mechanisms
2. Formatting the main report
3. Evaluating the report

The Planning Stage

Why plan?

Planning is necessary to confirm the need of such a review.

The most important activities are::

1. Identify the questions that the review will intend to answers.
2. Producing a review process(plan) defining the basic review process.

Formulating Research Questions

- The search process must identify primary studies that address the research questions
- The data extraction process must extract the data items needed to answer the question.
- The data analysis process must synthesize the data in such a way that the questions can be answered.

A Right Research Question could be :

1. The one that identifies the discrepancies between commonly held beliefs and reality.
2. Is meaningful and important to both practitioners and researchers
3. Will lead to changed in the current practice or increase confidence in the value of current practice.

Review Protocols

Purpose of Review Protocols

Identify methods that can be used to understand a systematic literature review.

Reasons for having review protocols::

--> To prevent bias

A pre-defined protocol is needed to reduce the possibility of researcher's bias.
Otherwise, it is possible that the selection of studies may be driven by researcher's expectations.

Common components of a protocol:

1. Background. The rationale for the survey
2. The research question that the review is intending to answer
3. Strategies used for primary study
4. Study selection criterion
5. Study selection procedures
6. Study quality assessment. Checklist and procedures.
7.Data extraction stratergies
8. Synthesis of extracted data
9. Dissemination stratergy
10. Project time table

Evaluation of Review Protocol

PhD students should present their protocol to their supervisor for review and criticism.

Conducting a Review

Identification of Research

In systematic review, the research process should be rigorous. The researcher should find as many primary studies relating to the research question as possible using unbiased research stratergy.

Generating a search strategy

- Preliminary studies aimed at both identification and systematic review
- Trial searches using various combinations
- Consultation with expert in the field.
- Journals, reference list from review articles, internet can prove to be important sources of evidence

Avoiding Publication Bias

Publication bias means that positive results are more likely to be published than negative results. The concept of positive and negative results sometimes depend upon the viewpoint of the researcher.

Common scenarios of Publication bias

- Sometimes there is publication bias because failure to reject null hypothesis is considered less interesting than a experiment that is able to reject null hypothesis.

- Publication bias occurs when an influential company/group wants to support a particular method/technique.

Searches must be documented and a Bibliography must be maintained

Search process documentation should be fairly detailed so that the reader can go back.

Researchers should specify their rationale for :

- The digital library to be searched
- The journal of conference proceedings to be searched

Study Selection Process
Step 1: selection criteria should be interpreted liberally, so that unless a study identified by the electronic and hand searches can be clearly excluded based on title and abstract, a full copy should be obtained

Step 2: The next step is to apply inclusion/exclusion criterion based on:
- Journal , languages, author, etc.

Step 3: The third step in study selection could be detailed quality criterion.

It is a good idea to keep a list of excluded studies and reasons for exclusion.

Data Extraction

The objective of data extraction is to design data extraction forms to accurately record the information researchers obtained from the primary studies.

Design for Data Extraction forms

The data extraction forms must be designed to collect all the information needed to address review questions and the study quality criterion.

Contents of data collection form

In addition to the question needed to answer the review question and quality evaluation criterion, data collection forms should provide the following information including:-

- Name of the reviewer
- Date of data extraction
- Title, authors, journals

Reporting a Review

Specifying a Dissemination Strategy

The dissemination strategy , should be planned during the dissemination stage ( if any) preparing for systematic review protocol.

Formatting the review report

Systematic review can be reported in two formats:

- In a technical report
- In a journal style conference paper

Where to publish?

"Journal of Information and Software Technology" is a good place to publish literature review.

Sunday, May 17, 2009

Information System Literact Concepts by Hossein Bidgoli

Information System Literact Concepts by Hossein Bidgoli

we Define computers as a machine that accepts data as input , processes the data without human
interference using a set of stored instructions, and outputs information.

Computer programs consist of instructions written in a language understood by computers.

Data is raw facts and information is processes fact.

Types of processing

In Batch Processing, data is sent to the computer periodically, for example, every 24 hours,
every two weeks, or every month. Payroll is a good example where the data is not needed immidietly.

Transaction Processing required when data need immidiete response.

Disk Drives

Disk drives are used to read and store data or information from and to the disk in the main 
memory.

Main Memory/RAM

It is reffered to as RAM(Random Access Memory). This is a volatile memory. It will be lost
in event of power failure.

Since the main memorty of a microcomputer is limited , expensive and volatile, secondary storage
is used for mass storage.

Secondary storage devices are broadly classified as magnetic and optical.

Magnetic Storage Devices

Optical disks use laser beams , highly concentrated beams of light, to access and store data.
This technology can store vast amount of data. However, because optical technology is relatively
new, it is expensive.

An operating system is a set of programs that control and supervises computer hardware and 
software.
An operating system provides an interface between a computer and a user. It typically resides in
the main memory. A typical OS consists of two sets of programs: control programs and supervisor
programs.

Control Program manage the computer hardware and resources, including job management, resource
allocation, data management and data communication.

CS 2

File Structures

Index file--Uses Index concepts

Hashed files represent a file storage system that provides direct access only, without the 
overhead encountered with index maintenance.

Distributed database-- a database spread over several machines in a network.

The Commit Protocol

The point at which all the steps in a transaction have been recoreded in a log is called commit
point.

Basic overview of Computer Science -- Definitions and Stuff

An algorithm is a set of steps that define how a task is to be performed.

Programs are collectively called software in contrast to machinery itself which is called hardware.

Intellgence required to perform a task is in algorithm.

A flip flop is idle for storage of bit within a computer. The value stored in the flip-flop can
be placed on a single wafer(called a chip) no larger than a dime.


Throughput is a better word to use than execution speed.

Throughput refers to total amount of work the machine can accomplish in a given amount of time
rather than how long it takes to execute one task.


The task of memory manager is complicated further when the total main memory space required 
exceeds the space available in the machine.In this case, the memory manager can create illusion
of additional memory space by rotating the programs and data back and forth between main memory and
storage.

The term worm normally refers to an autonomous program that transfers itself through a network,
taking up residence in machines and forwarding copies of itself through the network. 

The rules that govern the communication between components are called protocols.

Lexical Analysis is the process of recogonizing which strings of symbols from the source program 
represent a single entity. For Example, the three symbols 153 should not be interpreted as a 1
followed by 5 followed by a 3 but should be recogonized as representing a single numeric value.


Parsing is the process of identifying the grammatical structure of the program and recogonizing 
the role of each component.

Friday, May 15, 2009

Hello

I just created a blog and want to see if it is working.