-->

system development life cycle

System:

We can say a system as orderly grouping of interdependent components linked together according to plan to achieve a specific goal. Each component is a part of total system and has to do its own work for the system to achieve the desired goal.

Similarly an Information system is an arrangement of people, data, processes information presentation and information technology that interacts to support and improve day to day operation in a business as well as support the problem solving and decision making needs of management.

       An Information system(computerised system) carries following characteristics:-

·         Organization: implying structure and order.

·         Interaction      :-refers procedure in which in which each component functions with other units.

·         Interdependence:-means that one component of the system depending on others.

·         Integration: - saying how a system is tied together. it is more than just sharing a physical part.

·        Central objective: - is quite common that an organization may set one objective and operative together to achieve together. Since it is a common goal for all the units or components so all the users or units have to be aware about this. 


Types:-

Transaction Information System:-

A transaction processing system is a type of information system. TPSs collect, store, modify, and retrieve the transactions of an organization. A transaction is an event that generates or modifies data that is eventually stored in an information system by using four major units namely input,storage,processing and output.

It has several advantages:

.Rapid response

.more reliable

.Inflexibility

.controlled processing

For example,airline reservation system

Management Information system (MIS):-

Management Information Systems (MIS) is the study of people, technology, organizations and the relationships among them. MIS professionals help firms realize maximum benefit from investment in personnel, equipment, and business processes. MIS is a people-oriented field with an emphasis on service through technology.

It has numerous advantages,

  1. Improves personal efficiency

  2. Expedites problem solving(speed up the progress of problems solving in an organization)

  3. Facilitates interpersonal communication

  4. Promotes learning or training

  5. Increases organizational control

  6. Helps automate the Managerial processes.

for example, the MIS used by different Hotels.

Decision support system:-

A decision support system (DSS) is a computer-based information system that supports business or organizational decision-making activities. DSSs serve the management, operations, and planning levels of an organization and help to make decisions, which may be rapidly changing and not easily specified in advance.

it can have advantages like:

  1. Improves personal efficiency

  2. Speed up the process of decision making

  3. Increases organizational control

  4. Encourages exploration and discovery on the part of the decision maker

  5. Speeds up problem solving in an organization

  6. Generates new evidence in support of a decision

For example, clinical decision support system in Medical colleges.

Executive Information system:-

In executive information system (EIS) is a type of management information system intended to facilitate and support the information and decision-making needs of senior executives by providing easy access to both internal and external information relevant to meeting the strategic goals of the organization. It is commonly considered as a specialized form of decision support system. The main emphasis is given on graphical displays and easy user interfaces.

It can be with several advantages.

  • Easy for upper-level executives to use, extensive computer experience is not required in operations

  • Provides timely delivery of company summary information

  • Information that is provided is better understood

  • EIS provides timely delivery of information. Management can make

decisions more promptly.

  • Improves tracking information

for example, EIS at Manufacturing ,EIS at Marketing etc

System analysis and analyst:-

System analysis:- It is the study of complete business system or parts of business system and application of information gained from that study to design,documentation and implementation of new or improved system.

              System Analyst:-

The persons who perform above task/system analysis,design and implementation activity is know as system analyst. Somewhere we say or call by names like business engineer, business analyst etc. The work of system analyst who designs an information system is just same as an architect of a house. They work as facilitators of the development of information systems and computer applications.

The system analyst has following responsibilities/roles/duties:

Defining Requirement: It's very difficult duty of analyst to understand user's problems as well as requirements. some techniques like interview, questioning, surveying, data collection etc have to be used. The basic step for any system analyst is to understand the requirements of the users. 

Prioritizing Requirements: Number of users use the system in the organization. Each one has a different requirement and retrieves different information and in different time. For this the analyst must have good interpersonal skill, convincing power and knowledge about the requirements and setting them in proper order of all users.

Gathering Facts, data and opinions of Users: After determining the necessary needs and collecting useful information the analyst starts the development of the system with active cooperation from the users of the system. Time to time, the users update the analyst with the necessary information for developing the system. The analyst while developing the system continuously consults the users and acquires their views and opinions.

Evaluation and Analysis: Analyst analyses the working of the current information system in the organization and finds out extent to which they meet user's needs. on the basis of facts,opinions, analyst finds best characteristic of new system which will meet user's stated needs.

Solving Problems: Analyst is actually problem solver. An analyst must study the problem in depth and suggest alternate solutions to management. Problem solving approach usually has steps: identify the problem, analyse and understand the problem, identify alternate solutions and select best solution.

Drawing up Specifications: The analyst must draw certain specifications which will be useful for the manager. The key duty of system analysis is to obtain the functional specification of the system to be designed. The specification must be non-technical so that users and managers understand it. The specification must be precise and detailed for implementers.

Designing system:- Once accepted the specification, the analyst starts to design system. The design must be understandable to the system implementer. The design must be modular to accommodate changes easily. There must be a good knowledge of latest tools and how to use them in system with testing idea.

Evaluating system:-As the system designing overs and implementation starts, the analyst now has to critically evaluate after certain period of time.  The analyst must know at what time to evaluate,how to evaluate,how to gather users' comments and complaints, suggestions and to be used in future and how to correct or improve the system accordingly.

                            Besides these all, a system analyst has some other responsibilities like motivator for employees, as an agent, an intermediary, an architect , a trainer etc.


 Skills/properties/attributes to be with system analyst:-

Following are some and very important skills which a system analyst must have before being.

1) Analytical skill:- Analytical skill is the ability to visualize, articulate (express), solve complex problems and concepts, and make decisions that make sense based on available information. Such skills include demonstration of the ability to apply logical thinking to gathering and analyzing information, designing and testing solutions to problems, and formulating plans.

2) Technical skill: Many aspects of the job of system analysts are technically oriented. In order to develop computer based IS (information systems), system analyst must understand information technologies, their potentials and their limitations. A system analyst needs technical skills not only to perform tasks assigned to him but also to communicate with other people with whom s/he works in system development. The technical knowledge of SA must be updated from time to time. S/he should be familiar with technologies such as:

                                 >Micro/mini/mainframe computers, workstations

                             >Programming language

                     >Operating systems, database and file management systems, data communications standard system development tools and environments, decision support systems. 

3)Managerial skill:-Management in all business is the act of getting people together to accomplish desired goals and objectives. This skill comprises planning, organizing, staffing, leading or directing, and controlling an organization (a group of one or more people or entities) or effort for the purpose of accomplishing a goal.

4)Interpersonal skill:-

Interpersonal skills are the life skills we use everyday to communicate and interact with other people, both individually and in groups. It includes

  1. verbal communication

  2. non-verbal communication

  3. listening skills

  4. problem solving

  5. decision making

  6. assertiveness (Communicating our values, ideas, beliefs, opinions, needs and wants freely.


Interpersonal skills are how people relate to one another.

system development life cycle:-

Definition:-

                        SDLC is a structure or a process to develop a software followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software. SDLC is also known as information systems development or application development. It is life cycle defining a methodology for improving the quality of software and the overall development process. 


Why SDLC:-

When business organization facing a keen competition in the market, rapid change of technology and fast internal demand, system development is necessary. In the system development, a business organization could adopt the systematic method for such development. Most popular system development method is system development life cycle (SDLC) which supports the business priorities of the organization, solves the identified problem, and fits within the existing organizational structure. And obviously software can be very difficult and complex. We need the SDLC as a framework to guide the development to make it more systematic and efficient

In summarized form we can say following reasons for SDLC.

          I. To create a better interface between the user and the system.

        II. For good accuracy and speed of processing.

       III. High security and backup of data used in system.

      IV. Sharing of data all over the world in very less and real time.

       V. new laws that force organizations to do new things, or do old things differently

      VI. changes in society, such as growing demand for better security over personal data

      VII. a desire to improve competitiveness in the fact of reducing profits and market share

     

SDLC models:-

There are different models for development.

a.) Waterfall model:-

This Model also called Linear sequential Development Model, this model suggest a systematic Sequential approach to Software development that begins at the different level and progress through analysis, design, coding ,testing , and support .Here a stage cannot begin unless the preceding stage is completed  like in a waterfall, water flows down to from the upper steps. 




Requirement Analysis- This is the most crucial phase for the whole project, here project team along with the customer makes a detailed list of user requirements. The project team chalks out the functionality and limitations(if there are any) of the software they are developing, in detail. 

system  Design- Before a starting for actual coding, it is highly important to understand what we are going to create and what it should look like? The requirement specifications from first phase are studied in this phase and system design is prepared. This step is used for hardware and software interfaces.

Implementation and Unit Testing:

Now that we have system design, code generation begins. Code generation is conversion of design into machine-readable form. If designing of software and system is done well, code generation can be done easily. 

Integration and System testing:

Now the units of the software are integrated together and a system is built. So we have a complete software at hand which is tested to check if it meets the functional and performance requirements of the customer.

Operation & maintenance:

Now that we have completed the tested software, we deliver it to the client. His feedbacks are taken and any changes,if required, are made in this phase. This phase goes on till the software is retired.

Benefits-

•    Easy to understand, easy to use.

•    Appropriate for small Software.

Disadvantages

    Not appropriate for large Software.

  When any changes need than we have to go to initial phase.



Prototyping model:-

  Here, a prototype is made first and based on it final product is developed. A prototype is a model or a program which is not based on strict planning, but is an early approximation of the final product or software system. A prototype acts as a sample to test the process. From this sample we learn and try to build a better final product.












It begins with requirements gathering. Developer and Customers meet and define the overall objectives of the software, identify whatever requirements are known and identify the areas which require further definition. In many instances the client only has a general view of what is expected from the software product. In such a scenario where there is an absence of detailed information regarding the input to the system, the processing needs and the output requirements, the prototyping model may be employed. This model reflects an attempt to increase the flexibility of the development process by allowing the client to interact and experiment with a working representation of the product.


advantages:

1) When prototype is shown to the user, he gets a proper clarity and 'feel' of the functionality of the software and he can suggest changes and modifications. 

2) This type of approach of developing the software is used for non-IT-literate people. They usually are not good at specifying their requirements, nor can tell properly about what they expect from the software.

Disadvantages:

 1)Too much involvement of client, is not always preferred by the developer.

 2)Too many changes can disturb the rhythm of the development team.

3)It is like college development projects. we would produce something that performed the required functions, looked good, but usually was not the best quality. 


Spiral model:-

The Spiral Lifecycle Model is a type of iterative software development model which is generally implemented in high risk projects. In this system development method, we combine the features of both, waterfall model and prototype model. In Spiral model we can arrange all the activities in the form of a spiral. 

                                                  Each loop in a spiral represents a 

development phase (and we can have any number of loops according to 

the project). Each loop has four sections or quadrants :

                                                       The spiral model is a four stage model. The four stage are nothing but part of a circular path which are critical in providing the guidelines for the future. Each stage of the spiral model is represented by one quadrant of the Cartesian design. The cost incurred is represented by the radius of the model. The four activities or stages involved in the spiral model are as follows:

















Planning (determine the objectives, alternatives and constraints): It helps to understand the underlying concept of the project. We get acquainted with the objectives, alternatives and the constraints of the project or the product which is under process. It is essential that a lot of time must be invested for planning as it is the base of the spiral model, even if the slightest negligence can adversely affect the process.

Risk analysis (Risk analysis and evaluation of alternatives. ): In this stage all the potential risks involved in the future are analyzed carefully. Operational and technical issues are addressed here. Risk mitigation (less harmful or bad) is in focus in this phase. And evaluation of all these factors determines future action.

             Also, in Risk analysis alternative options are evaluated which becomes easier to overcome the future risks.

Engineering (Execution of that phase of development): Once the risk analysis is done the next step is the actual development and the verification process. This is done by using either a prototyping approach or the simulation.

Custer evaluation(Planning the next phase. ): The customer evaluates the model and checks it in and out. If there are any modifications to be made the customers give feedback to the developers.

                                                              The spiral model is one of the most realistic approaches which are very essential for the development of the large systems. By spiral model the developers can also apply the prototyping and the customer’s evolutions approach to make the project more unique and successful.

Advantages:

1. one of the most flexible SDLC models in place.

2.It is suitable for high risk projects, where business needs may be unstable.

3)  A highly customized product can be developed using this.

Disadvantages:

1)  Cost involved in this model is usually high.

2) Skills required, to evaluate and review project from time to time, need expertise.

3.) It is not suitable for low risk projects.


Agile development model:-

Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features for a release.

Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.

Here is a graphical illustration of the Agile Model −


The Agile thought process had started early in the software development and started becoming popular with time due to its flexibility and adaptability.

Following are the Agile Manifesto principles −

  • Individuals and interactions − In Agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.

  • Working software − Demo working software is considered the best means of communication with the customers to understand their requirements, instead of just depending on documentation.

  • Customer collaboration − As the requirements cannot be gathered completely in the beginning of the project due to various factors, continuous customer interaction is very important to get proper product requirements.

  • Responding to change − Agile Development is focused on quick responses to change and continuous development.

  • Pros:

  • The advantages of the Agile Model are as follows −

  1. Is a very realistic approach to software development.
  2. Promotes teamwork and cross training.
  3. Functionality can be developed rapidly and demonstrated.
  4. Resource requirements are minimum.
  5. Suitable for fixed or changing requirements
  6. Delivers early partial working solutions.
  7. Good model for environments that change steadily.
  8. Minimal rules, documentation easily employed.
  9. Enables concurrent development and delivery within an overall planned context.
  10. Little or no planning required.
  11. Easy to manage.

Cons:-

  1. Not suitable for handling complex dependencies.
  2. More risk of sustainability, maintainability and extensibility.
  3. An overall plan, an agile leader and agile PM practice is a must without which it will not work.
  4. Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.
  5. Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.
  6. There is a very high individual dependency, since there is minimum documentation generated.

Steps in SDLC:-

The SDLC can have different phases as shown below.












step 1. 

                     1)Problem definition:-The first step is problem definition(study). The intent is to identify the problem, determine its cause, and outline a strategy for solving it. It defines what ,when who and how project will be carried out. 

                    As we know everything starts with a concept. It could be a concept of someone, or everyone. However, there are those that do not start out with a concept but with a question, “What do you want?” and "really, is there a problem?" They ask thousands of people in a certain community or age group to know what they want and decide to create an answer. But it all goes back to planning and conceptualization. 

                                                In this phase the user identifies the need for a new or changes in old or an improved system in large organizations. This identification may be a part of system planning process. Information requirements of the organization as a whole are examined, and projects to meet these requirements are proactively identified. 

                                             We can apply techniques like:

1) Collecting data by about system by measuring things, counting things, survey or interview with workers, management, customers, and corporate partners to discover what these people know.

2) observing the processes in action to see where problems lie and improvements can be made in workflow.

3)Research similar systems elsewhere to see how similar problems have been addressed, test the existing system, study the workers in the organization and list the types of information the system needs to produce.

2) Getting the idea about context of problem

3) The processes - you need to know how data is transformed into information.

                     Like data structures, storage, constraints that must be put on the solution (e.g. operating system that is used, hardware power, minimum speed required etc,  what strategy will be best to manage the solution etc.    

   …...............................................................................

Step 2:

2) System analysis( Requirements Definition):-

Once the problems identified, it is time to analyze the type of software that could answer the problems encountered. System analysis (may be by system analyst) will take a look at possible software. The goal of a system analysis is to know the properties and functions of software that would answer the concerns solicited from intended users.

                                                     System Analysis would lead in determining the requirements needed in software. These requirements in software should be implemented otherwise the software may not answer the concerns or may  lack in its usage. This stage will somehow determine how the software should function.

                                                                                   It is the study of complete business system or parts of business system and application of information gained from that study to design,documentation and implementation of new or improved system. This field is closely related to operations research. An analyst work with users to determine the expectation of users from the proposed system.

                                                              The development of a computer-based information system often comprises the use of a systems analyst. When a computer-based information system is developed, systems analysis would constitute the following steps/points.

  • The development of a feasibility study, involving determining whether a project is economically, socially,, technologically, organisationally,legally, schedule feasible.

  • Conducting fact-finding measures, designed to ascertain the requirements of the system's end-users typically interviewing, questionnaires, or visual observations of work on the existing system.

                                      under analysis, the proposed system is studied whether it is feasible or not called feasibility study. 

                      Feasibility study:

It is the measure and the study of how beneficial the development of the system would be to the organization. This is known as feasibility study. The aim of the feasibility study is to understand the problem and to determine whether it is worth proceeding. A well-researched and well-written feasibility study is critical when making "Go/do not Go" decisions regarding entry into new businesses.    

why feasibility study?

  • What exactly is the project? Is it possible? Is it practicable? Can it be done?

  • Economic feasibility, technical feasibility, schedule feasibility, and operational feasibility - are the benefits greater than the costs?

  • Technical feasibility - do we 'have the technology'? If not, can we get it?

  • Schedule feasibility - will the system be ready on time?

  • Customer profile: Estimation of customers/revenues.

  • Determination of competitive advantage.

  • Operational feasibility - do we have the resources to build the system? Will the system be acceptable? Will people use it?

  • Current market segments: projected growth in each market segment and a review of what is currently on the market.

  • Vision/mission statement.

·     Definition of proposed operations/management structure and management method etc.

It has following types.

1.Technical feasibility: - This is concerned with availability of hardware and software required for the development of system.The issues with can be like:

1.1) Is the proposed technology proven and practical? 

1.2)the next question is: does the firm possess the necessary technology it needs. Here we have to ensure that the required technology is practical and available. Now, does it have required hardware and software? 

1.3)The Last issue is related to availability of technical expertise. In this case, software and hardware are available but it may be difficult to find skilled manpower. 

2.Operational feasibility:- It is all about problems that may arise during operations. There are two aspects related with this issue:

2.1) what is the probability that the solution developed may not be put to use or may not work?

                                    2.1) what is the inclination of management and end users towards solutions?

Besides these all some more issues; 

                                                            a) Information: saying to provide adequate, timely, accurate and useful information to all categories of users.

                                                         b) Response time, it says about response about output in very fast time to users.

                                             c) Accuracy: A software system must operate accurately. It means, it should provide value to its users. It says degree of software performance.

              d) Services:- The system should be able to provide reliable services.

               e)Security:- there should be adequate security to information and data from frauds.

  f) Efficiency: The system needs to be able to provide desirable services to users.

3) Economic feasibility: - It is the measure of cost effectiveness of the project. The economic feasibility is nothing but judging whether the possible benefit of solving the problem is worthwhile or not. Under "cost benefit analysis", there are mainly two types of costs namely, cost of human resources and cost of training.

                                                              The first one says about salaries of system analysts, software engineers, programmers, data entry operators etc. whereas 2nd one says about training to be given to new staffs about how to operate a newly arrived system.

4) Legal feasibility: - It is the study about issues arising out the need to the development of the system. The possible consideration might include copyright law, labor law, antitrust legislation, foreign trade etc.

…...................................................................................................................................



Step 3.

    Systems Design: In this phase we start design of proposed new system.It describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudo code and other documentation. We can use two designing methods namely logical (what is required for IS) and physical (how to achieve requirements). At first we design logical and then it is converted into physical design. A prototype should be developed during the logical design phase if possible. The detailed design phase modifies the logical design and produces a final detailed design, which includes technology choices, specifies a system architecture, meets all system goals for performance, and still has all of the application functionality and behavior specified in the logical design. 

           This design can carry following activities:

  • Defining precisely the required system output

  • Determining the data requirement for producing the output

  • Determining the medium and format of files and databases

  • Devising processing methods and use of software to produce output

  • Determine the methods of data capture and data input

  • Designing Input forms

  • Designing Codification Schemes

  • Detailed manual procedures

  • Documenting the Design


Two approaches used in design are: Top-down and bottom up.

.No.

TOP DOWN APPROACH

BOTTOM UP APPROACH

1.In this approach We focus on breaking up the problem into smaller parts.In bottom up approach, we solve smaller problems and integrate it as whole and complete the solution.
2.Mainly used by structured programming language such as COBOL, Fortran, C, etc.Mainly used by object oriented programming language such as C++, C#, Python.
3.Each part is programmed separately therefore contain redundancy.Redundancy is minimized by using data encapsulation and data hiding.
4.In this the communications is less among modules.In this module must have communication.
5.It is used in debugging, module documentation, etc.It is basically used in testing.
6.In top down approach, decomposition takes place.In bottom up approach composition takes place.
7.In this top function of system might be hard to identify.In this sometimes we can not build a program from the piece we have started.
8.In this implementation details may differ.This is not natural for people to assemble.

We can use several tools while designing. They are: Algorithm, Flowchart, Pseudocode, etc. Let’s see in detail about these all designing tools.

I) Algorithm:

An algorithm is an effective method or a tool for solving a problem using a finite sequence of well organized instructions. Algorithms are used for calculation, data processing, and many other fields.

                                   Each algorithm is a list of well-defined instructions for completing a task. Starting from an initial state, the instructions describe a computation that proceeds through a well-defined series of successive states, eventually terminating in a final ending state. For example,

-->start

-->read a no. x

-->read a no. y

→ let sum=x+y

-->display sum

-->stop

                            II) Flowchart:- It is a common type of diagram or picture, that represents an algorithm or process, showing the steps as boxes of various kinds, and their order by connecting these with arrows. Or simply we can say a graphical representation of algorithm. Flowcharts are used in analyzing, designing, documenting or managing a process or program in various fields. Some symbols used in flowcharts are Oval, parallelogram, rectangle, flowline, annotation etc. different symbols have different meanings. For example,

                                                





















III) Pseudo Code:

Pseudo-Code is simply a numbered list of instructions to perform some task. Here Pseudo means fake. So it is a fake code which we use to convert algorithms. In this we use many English words or verbs like START/BEGIN, DO, WHILE, HALT,STOP,INITIALIZE etc, Any case can be used. Writing Pseudocode is just like reading a story. So it’s easy to write and understand. For example,

BEGIN

GET GRADE

 IF student's grade is greater than or equal to 80

       Print "passed in distinction" 

ELSE

       Print "other division" 

HALT

    IV)Decision table:- A decision table is a table with various conditions and their corresponding actions. Decision table is a two dimensional matrix. It is divided into four parts, condition stub, action stub, condition entry, and action entry. See the first figure listed below. Condition stub shows the various possible conditions. Condition entry is used for specifying which condition is being analyzed. Action stub shows the various actions taken against different conditions.

And action entry is used to find out which action is taken corresponding to a particular set of conditions.

condition stub                                               condition entry


1

2

3

4

5

6

7

8

Is a person SLC pass ?

y

y

y

n

n

n

n

y

Is a person with percentage>=60

y

y

n

y

n

n

y

n

Is a person with entrance marks>=40

y

n

y

y

n

y

n

n

admit him

x

x

x






no, do not admit him




x

x


x


can be but under re-entrance




x

x

x

x


action stub action entry

  

Here we can see four parts. In action stub and entry we can take decision according to conditions entered above. 

   V) Decision tree:- Decision tree is a set of rules for what to do in certain condition and if particular condition  














satisfies, do that otherwise go to this step. They can be used to enforce strict compliance with local procedures, and avoid improper behaviors, especially in complex procedures or life-and-death situations.

E.g. If the photocopier breaks down, call Raj. If Raj is not available, call Aasha. If Aasha is away, ring Sary.

They are valuable when setting out how the system should behave, and what conditions it will need to be able to cope with. A decision tree showing decisions and actions required of a software system

In above diagram we can see how an applicant is selected or hired under different condition.Sometimes in critical situation it can be used for decision taking. 


VI) Context diagram:- A diagram which shows internal as well external entities,their interaction,flow,processes in and outside the system is called context diagram. It is a top level diagram. It shows the relationship between different components. It also can be said ‘0’ level data flow diagram.This ‘0’ level says us an outline or surficial view/overview of  system.The context diagram answers the first and most essential question about our requirements: Who needs to use this system? How many are (entities) engaged in the system? We simply use one process with several surrounded entities. It uses symbols like,

Rectangle---->says about entity

Circle               : Represent the system in terms of a single process,

Arrows            : Show data flow


Here, we can see interconnection of different units (entities) with a process. It’s a context diagram of a college where we can get many parts and processes. I have shown only three units (entities). If we break this then we can have many other processes which come under DFD (data flow diagram level 1 and 2).

Some other examples can be like:


I ) For a library system,
















We can see here how a book is issued by librarian depending upon availability or unavailability of book.

2. For a restaurant system:-

There are three parts namely supplier,customer and restaurant They are linked to each other. We can see how flow of data/signal takes place. 


VII) Data flow diagram:-

A Data Flow Diagram (DFD) is a diagrammatic representation of the information flows within a system, showing:

  • how information enters and leaves the system,

  • what changes the information,

  • where information is stored.

A data flow diagram (DFD) is a design tool to represent the flow of data through an information system. With a dataflow diagram, developers can map how a system will operate, what the system will accomplish and how the system will be implemented. It is implemented in 1 and 2 level. Whereas at 0 level , it is context diagram. We can use different symbol like:

  1. Rectangle----->entities or data source

  2. rectangle with process no. and description and doer name side by--------> shows about processes and number

  3. open rectangle with identifier and name where to store -------------> storing somewhere,may be electronic media or a database.

  4. arrow:- shows about movement of data/flow


                                     DFD-0 level:-

    

For example, DFD 1-level for bank can be like,










                 

 DFD-2 level:-

E-R diagram:-

An entity-relationship (ER) diagram is a specialized graphic that illustrates the interrelationships between entities in a database. ER diagrams often use symbols to represent three different types of information. Rectangular Boxes are commonly used to represent entities. Diamonds are normally used to represent relationships and ovals are used to represent attributes.

Consider the example of a database that contains information on the residents of a city. The ER diagram shown in the image above contains two entities -- people and cities. There is a single "Lives In" relationship. 


Entity:- An entity may be a physical object such as a house or a car, an event such as a house sale or a car service, or a concept such as a customer transaction or order. Here we have two entities namely person and city kept in rectangle box. and they are associated with properties (attribute) name and population kept in oval shape.

        Attribute:- It’s a property associated with and entity. we use oval shape to symbolize it.

Relationship:- A relationship captures how two or more entities are related to one another. in above example we have lives in as a relationship between two entities.It is always kept inside diamond box as given above. Similarly we have an owns relationship between a company and a computer, a supervises relationship between an employee and a department, a performs relationship between an artist and a song, a proven relationship between a mathematician and a theorem.


UML:-A picture is worth a thousand of words, this absolutely fits while discussing about UML. The unified modeling language or UML is mostly a graphical language that is used to express designs. 

or

UML is a pictorial language used to make software blueprints.

It is a standardized language in which artifacts and components of software can be specified. It is important to understand that UML simply describes a notation not a process. It does not put forth a single method or process of design but rather is a standardized tool that can be used in design process. UML is not a programming language but tools can be used to generate code in various languages using UML diagrams. UML has a direct relation with object oriented analysis and design.

 Types:

UML offers a number of modelling views:

  • Sequence Diagrams

  • Collaboration Diagrams

  • Activity Diagrams

  • Class Diagrams

  • State Chart Diagrams

  • Component Diagrams

  • Deployment Diagrams.


activity diagram:

                          use case diagram



4. System Development:-

System development (Coding):

After designing the new system, the whole system is required to be converted into computer understanding language. Coding the new system into computer programming language does this. It is an important stage where the defined procedure are transformed into control specifications by the help of a computer language. This is also called the programming phase in which the programmer converts the program specifications into computer instructions, which we refer as programs. The programs coordinate the data movements and control the entire process in a system.

It is generally felt that the programs must be modular in nature. This helps in fast development, maintenance and future change, if required.

Concept of “Prototyping”:

  Designing and building a scaled down but fundamental version of desired of is known as prototyping. A prototype can be built with any computer language or development tool to simplify the process. A prototype can be developed with some 4GLs such as query, screen and report design tools of a DBMS and with tools called CASE (computer aided software engineering) tools. Using prototype as a development technique, the analyst works with user to determine the initial or basic requirements of the system. The analyst then builds a prototype. When a prototype is completed, the user works with it and tells the analyst what they like or not. The analyst uses this feedback to improve the prototype and take the new version back to the user. This process is iterated until the users are satisfied. The main advantages of prototyping are: 

       large extent to which prototyping involves the user in analysis and design and its ability to capture requirements in concrete rather than in abstract form. Additionally, prototyping also can be used to augment the SDLC.

Concept of “CASE” (Computer Aided Software Engineering):-

The analysis, design, development, testing, and maintenance of software are complex processes that must be managed and controlled. Computer aided software engineering (CASE) is a technology that aids in this process. CASE can be broadly defined as a set of automated tools that assist in the entire software engineering process. Properly used, CASE tools help improve productivity during the development process and the quality of the resulting system. 

For example, when establishing the functional requirements of a proposed application, prototyping tools can be used to develop graphic models of application screens to assist end users to visualize how an application will look after development. Subsequently, system designers can use automated design tools to transform the prototyped functional requirements into detailed design documents. Programmers can then use automated code generators to convert the design documents into code.

Roles of CASE tools:-

  • To manage project

  • Data dictionary

  • Code generation

  • User interface design

  • Schema generation

  • Reverse engineering

  • Re-engineering

  • Document generation

  • Version control

                  Some very popular CASE tools: 1>oracle 2000 designer 2>Evergreen easy case 3>popkin system architect 4>Cadre teamwork 5>ColdFusion etc 

5. Testing:-

                            Before actually implementing the new system into operations, a test run of the system is done removing all the bugs, if any. It is an important phase of a successful system. After codifying the whole programs of the system, a test plan should be developed and run on a given set of test data. The output of the test run should match the expected results.

Using the test data following test run are carried out:

  • Unit test

  • System test

  • Black box

  • white box etc

Unit test: When the programs have been coded and compiled and brought to working conditions, they must be individually tested with the prepared test data. Any undesirable happening must be noted and debugged (error corrections).

System Test: After carrying out the unit test for each of the programs of the system and when errors are removed, then system test is done. At this stage the test is done on actual data. The complete system is executed on the actual data. At each stage of the execution, the results or output of the system is analysed. During the result analysis, it may be found that the outputs are not matching the expected out of the system. In such case, the errors in the particular programs are identified and are fixed and further tested for the expected output.

When it is ensured that the system is running error-free, the users are called with their own actual data so that the system could be shown running as per their requirements.

Black box test:-

Black box testing is a software testing techniques in which functionality of the software under test (SUT) is tested without looking at the internal code structure, implementation details and knowledge of internal paths of the software.This type of testing is based entirely on the software requirements and specifications.

                                 In Black Box Testing we just focus on inputs and output of the software system without bothering about internal knowledge of the software program.

                         

The above Black Box can be any software system you want to test. For example : an operating system like Windows, a website like Google ,a database like Oracle or even your own custom application. Under Black Box Testing , you can test these applications by just focusing on the inputs and outputs without knowing their internal code implementation.Black box testing facilitates testing communication amongst modules (Integration Testing) 

white box testing:-

White Box Testing is the testing of a software solution's internal coding and infrastructure. It focuses primarily on strengthening security, the flow of inputs and outputs through the application, design and usability. White box testing is also known as clear, open, structural, and glass box testing.

The clear box or white box name symbolizes the ability to see through the software's outer shell (or "box") into its inner workings.

Using white-box testing methods, the software engineer can derive test cases that:

  1. internal security holes

  2. Broken or poorly structured paths in the coding processes

  3. The flow of specific inputs through the coding infrastructure

  4. Expected output

  5. The functionality of conditional loops

  6. Testing of each statement, object and function on an individual basis


  1. Implementation

After having the user acceptance of the new system developed, the implementation phase begins. Implementation is the stage of a project during which theory is turned into practice. During this phase, all the programs of the system are loaded onto the user's computer. After loading the system, training of the users starts. Main topics of such type of training are:

  • How to execute the package

  • How to enter the data

  • How to process the data (processing details)

  • How to take out the reports

After the users are trained about the computerised system, manual working has to shift from manual to computerized working.                       The following two strategies (System conversion) are followed for running the system:

                      Parallel conversion: - it says about   running of old as well as new in parallel way until the new one becomes reliable.

                                             Direct conversion: - It says about direct conversion of old one into new one. It is very risky.

                                             Pilot conversion: - The one unit or department is converted rather than whole.

                                             Phased conversion: - The new system with its components is slowly replaced by new system's components and later on it becomes fully operational.


7. System Evaluation:-

Management should conduct post-implementation reviews at the end of a project to validate the completion of project objectives and assess project management activities. Management should interview all personnel actively involved in the operational use of a product and document and address any identified problems. Management should analyze the effectiveness of project management activities by comparing, among other things, planned and actual costs, benefits, and development times. They should document the results and present them to senior management. Senior management should be informed of any operational or project management deficiencies


8. System Maintenance:- 

Maintenance is necessary to eliminate errors in the system during its working life and to tune the system to any variations in its working environment. It has been seen that there are always some errors found in the system that must be noted and corrected. It also means the review of the system from time to time. The review of the system is done for:

  • knowing the full capabilities of the system

  • knowing the required changes or the additional requirements

  • studying the performance

The maintenance can be done in different regards like management in baseline version or products, services, procedures, documentation, dissemination. Besides, the management also gives emphasis to operation, emergency software modifications,, software patches. So Management should coordinate all technology related changes through an oversight committee and assign appropriate party responsible administering software patch management programs.

                                   If a major change to a system is needed, a new project may have to be setup to carry out the change. The new project will then proceed through all the above life cycle phases.

Types of maintenance:-

1. Adaptive maintenance:-

Adaptive software maintenance becomes important when the environment of your software changes. This can be brought on by changes to the operating system, hardware, software dependencies, Cloud storage, or even changes within the operating system. Sometimes, adaptive software maintenance reflects organizational policies or rules as well. Updating services, making modifications to vendors, or changing payment processors can all necessitate adaptive software maintenance.

2.Corrective maintenance:-

Correct software maintenance addresses the errors and faults within software applications that could impact various parts of your software, including the design, logic, and code. These corrections usually come from bug reports that were created by users or customers – but corrective software maintenance can help to spot them before your customers do, which can help your brand’s reputation.

3.Perfective maintenance

Perfective software maintenance focuses on the evolution of requirements and features that existing in your system. As users interact with your applications, they may notice things that you did not or suggest new features that they would like as part of the software, which could become future projects or enhancements. Perfective software maintenance takes over some of the work, both adding features that can enhance user experience and removing features that are not effective and functional.

4.Preventive maintenance:-

Preventative Software Maintenance helps to make changes and adaptations to your software so that it can work for a longer period of time. The focus of the type of maintenance is to prevent the deterioration of your software as it continues to adapt and change. These services can include optimizing code and updating documentation as needed.



Documentation:- Suppose, we have finished development. while developing, the programmers write themselves some comments or remarks or guidelines just besides of code(or may be a separate file) or provide a separate manual which can be beneficial for them or any other programmer to understand the codes. So it is a supporting material/notes/helplines. It is must for developers to write from very beginning and in very simple manner such that IT and Non-IT persons can understand and modify if needed somewhere. It is also useful for the programmers who is/are new to a company and going to to do some changes in an existing system developed by some others.A documentation can be done for:

  • system manual: Includes relations to an environment and construction principles to be used in design of software components.installation,errors,recovery etc

  • program manual: it says about program and its components like,Technical - Documentation of code, algorithms, interfaces, and APIs.

  • users’ manual :User Documents give customers the information they need while using the product. 




computer security:-

Computer security: -It refers to techniques for ensuring that data stored in a computer cannot be read or compromised by any individuals without authorization. This  technology known as information security is applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to remain accessible and productive to its intended users.

                                 The computer security deals with following:

1.    software and hardware security: We can apply different methods for protection like,

  • developing powerful operating system

  • by using chain of trust

  • Cryptography

  • Firewall

  • Backup

  • Antivirus

  • Honey pots

  • Pinging etc  

  • Stopping the piracy use of software

2. Data security: it says about

  •  Confidentiality: - the data can not be accesses by unknown persons.

  •  Integrity:      no alteration of data in anyway.

  •  Authentication: - Authorized users as they have to be.


No comments:

Post a Comment