Advacne System Analysis



List ten businesses or other organisations with which you deal fairly frequently- try to include a wide variety (i.e. different sizes, different purposes etc.). For each organisation, list two or more important purposes for within the organisation uses a computer system and briefly describe each system (e.g. what it does, probable size, cost and complexity, importance to the organisation, on-line/off-line, connect to the web etc.).
In our daily life, we get to deal with different types of organisations. Most of them now use computer system to ease their operations. Some of such organisations and the system they are using are discussed below:
Note: Complexity of system is compared in index, 1 being the simplest and 10 being the most complex one.
1.      Bank
-          E-banking
E-banking has been a compulsory feature for banks these days. E-banking enables the customers to perform their banking operations like statement enquiry, online money transfer etc. from anywhere using the internet.
Size: probably more than 10,000 users (vary with banks)
Complexity:7

-          ATM networking
ATM is the major attractions for customers today. Financial organisations try to include ATM services for their customers. ATM service enables account holder to check the balance or withdraw amount from the ATM vendors placed at suitable areas.
Size: probably more than 5 vending machines in a bank network.
Complexity: 7


2.      College
-          Student management system
Student management has always been the matter of concern for the schools and colleges. Student management system plays the central role in managing the information related to students. The information can be their personal data, course taken, class schedule, class attendance, exam information etc...  Basically student management system is web based and run within the intranet. The cost of student management system varies with the number of features it incorporates. A student management system may cost above NRs. 20,000
Size: 5-15 users
Complexity: 5




-          Accounting System
Colleges use accounting system for maintaining their financial records. One additional feature that accounting system of colleges need to have is the managing student’s fees. Accounting system is an distributed applications run within the account department only. The cost of accounting system may be more than NRs. 50,000.
Size: 2-5 users
Complexity: 7

3.      Movie theatre
-          Ticketing System
Ticketing system is the skeleton of a movie theatre. It produces and manages the tickets and sells them to customers. So ticketing system also includes billing system. Online booking are included now a days in ticketing systems. The ticketing system may cost around NRs. 35,000 or more.
Size: 10-15 users
Complexity: 4

4.      Telecom service provider
-          ERP system (enterprise resource planning)
Telecom service provider is an enterprise level organisation with branches all over the country. Telecom provides different services like, landline telephone. Mobile (post-paid, pre-paid and CDMA), internet etc. to huge number of customers over national level. So the task of managing these services cannot be handled by any simple system. ERP system takes all the responsibilities of management. The ERP system is very much expensive probably in the range of crore.
Size: more than 25 lakhs users.
Complexity: 10

5.      Internet service provider
-          Customer Management System
Customer Management System in Internet service provider manages the information of customer along with their service information. The cost of Customer Management System may be around NRs. 30,000- 50,000.
Size: 20-30 users
Complexity: 6

6.      Shopping malls
-          inventory system
Inventory system in shopping malls keeps track of the stock and even includes billing system to produce bills. The cost of a inventory system may be around NRs. 20,000
Size: 2-3 users
Complexity: 4
7.      Television station
-          ERP system
ERP system in television manages different services like live/recorded broadcasting, employee management, advertise managementetc. The cost of ERP system for television stations can be probably more than one lakhs.
Size: more than 100 users.
Complexity: 8

8.      Catering service provider
-          Catering management system.
Catering management system helps to manage the daily operations of catering such as customer orders, utensils, budgets and other food materials. The cost of catering management system may be around NRs. 10,000.
Size: 1-2 users
Complexity: 3

9.      Library
-          library management system
Library management system keeps track of different books in the library and the members of library. Along with that, it also keeps the record of the books borrowed by the members. The cost of the library management system can be around NRs. 30,000.

10.  Hotels
-          Inventory system
Inventory system in hotels keeps track of different items required for daily operations of the hotels like food materials, beverages and other utensils. The cost of inventory system may be more than NRs. 20,000
Size: 5-10 users
Complexity: 5

-          Customer management system
Hotels manage the information about their customers and rooms by Customer management system. It also handles the booking of rooms. The cost of customer management system for a hotel may be around NRs. 20,000.
Size: above 10 users
Complexity: 5




What part may a standard methodology play in the software development process?
Software is an online representation of a business process or logic of an organisation. So it is very much vital that it represents the process or logic correctly. Software development is the process of developing and installing the software application in the system to carry out the business processes online. How much softwarefulfils the requirement and addresses the problem domain depends on how the software is developed. A standard methodology sets the ways of managing the software development stages to come up withsoftware, meeting the specifications of SRS.

Describe the main stages/phases/activities in developing a new system?
System development life cycle defines the stages for developing a new system.Developing a new system goes generally through following stages.
System Planning
It is the initial stage where the plan is developed for the overall project. Feasibility study is carried out on the economical, technical and operational ground. Feasibility results are documented on the basis of which further project plan are prepared.
Analysis
This stage is sub-divided into two more stages: Requirement gathering and Requirement analysis. In requirement gathering,different methodologies such as interview, research, questionnaire,and document review etc. to are used to gather the entire requirement needed for problem solution. Requirement analysis focuses on filtering and précising the requirements gathered and document them in SRS (System requirement Specification).
Design
In design stage, requirement specifications are converted into pictorial model using different design techniques such as DFD, flowchart, ER diagram etc… It is the basis in which programmers code to produce working modules.

Development
In this stage, design specification is converted into machine readable program.

Testing
The main focus of these stages is to find the errors in the application. Different stages of testing such as unit testing, integration testing and system testing are carried out using different testing techniques such as black box testing and white box testing. Debugging is done if errors are found.
Implementation and Maintenance
After the testing, the application is installed in the real environment by choosing the suitable implementation methods such as direct, gradual, pilot, parallel etc… While running in the real-time environment, many run-time errors may be grounded which were not found in testing phase. These errors are maintained to continue the system operations.




Some methodologies suggest a waterfall approach to project management and some suggest an incremental/iterative approach.
a)      How are the stages/activities organised under each approach.
b)      Explain some of the advantaged/disadvantages of each approach.
c)      What issues would affect the choice of approach for a given project?

a)      Waterfall methodology
In the waterfall methodology, SDL stages are organised linearly i.e. flowing sequentially down along the stages with minimal backward.

Incremental/iterative approach

Incremental approach is the combination of linear and iterative framework. In this approach, each iteration are the set of mini-waterfall stages.
Figure 2:  Waterfall methodology [5]

Figure 3: Incremental Methodology [6]

b) Waterfall methodology
Advantages
             i.            Supports strong documentation. Each stage in waterfall methodology needs to produce document which will act input for next stage.
           ii.            Progress of project is measurable as the stages are clear cut and the progress can be tallied with the Gantt chart.
         iii.            Favours less experienced project teams as the methodology is very simple with well-defined sequential stages.
Disadvantages
             i.            Requirements should be clearly defined early in the project. Any additional requirements cannot be entertain in the later stages.
           ii.            Backward movement in the life cycle is not frequently allowed.
         iii.            If one stage takes long time for completion, consecutive stages will be blocked.
         iv.            Communication with user will be limited.
           v.            Customer needs to wait for long time to see the working program.

Incremental/Iterative methodologies
Advantages
        i.            After each iteration, new product is evolved.
      ii.            Product is review and requirements are updated in each iteration.
    iii.            Gradual implementation helps to monitor the effects of each incremental change.
    iv.            Continuous communication with stakeholders is required.
Disadvantages
             i.            Difficult problems are postponed for the future iterations.
           ii.            It is difficult to specify the total system at very early stages for the system with long runtimes.[3]
c)  Some of the important factors that affect the choice of a methodology for a system development are:
        i.            Requirement
It is the most important factor that determines the other factors like time and budget. If requirement is clear and well defined early in the analysis stage, time and budget can be calculated and fixed. In such scenarios Waterfall approach would be best.
      ii.            Time
When time frame for system development is fixed, we cannot use iterative methods such as spiral method. Instead, waterfall method would be suitable for this scenario.
    iii.            Budget
Like time, budget also plays the same role. In iterative approaches, budgets are reviewed in every iteration. So for a fixed budget project, iterative approaches are not suitable option.
    iv.            Project team experience
Though selection of approaches mainly depends upon the requirement and problem domain, the successfulness depends also on the experience of team members in project. For e.g. Spiral methodology needs the highly experienced team member and project manager otherwise, the project will go for infinite iteration. Meanwhile, less experienced team members can choose waterfall as it is very simple and straight-forward.


Explain some key differences between the structured and object-oriented approaches to analysis and design.
Object-oriented analysis and design is a new concept in the software engineering while structured approaches are the conventional form of analysing and designing a system component. Some key differences between these two approaches in term of analysis and design are given below:
Structured analysis and design
Object-oriented analysis and design
It is a top-down approach
It is a bottom-up approach
The structured analysis and design focuses on the process of problem solution
Object-oriented analysis and design focuses on the element of the problem solution, i.e. what is to be done rather than how it is done.
Structured analysis and design results in the identification of flow of data within the system.
Object-oriented analysis and design results in the identification of entities involved in the system.
Design tools such as DFD, flowchart etc. are used.
Design tools such as UML, entity-relationship diagram (ER diagram) etc. are used.

List a number of standard methodologies-reflecting a variety of approaches.
Some of the approaches varying from the standard methodologies are:
1)      V-shaped model
V-shaped model is the slight variation of the waterfall methodologies addressing the problems of waterfall methodologies. It relates each stage of linear methodologies with the testing and quality assurance [1].

2)      Agile development technologies
One of the latest methodologies evolved, agile development technology consists of group of software development methodologies. Agile software development technology focuses on the early and continuous delivery of the software to customers. Even late changes in requirement are welcomed which has made it popular among the customers. [2].

3)      Component-based Development
This methodology focuses on the reuse of components of other system or products developed by other vendors. This enables the developers to develop the product quality software faster [1].



What skills might be required/usefulfor system analyst/designers? How might these differ between the different approaches/methodologies you have listed?
System analysts/designers play key roles in a system development. So it is necessary to have different skills which can help them in playing their roles importantly in System Development Life Cycle. Some such skills are discussed below.
1 Communication skills: Communication plays vital roles in different stages of software development. In requirement gathering, analyst needs to communicate with users and customers to get the requirement. Analyst in this case must be able to understand their view of system. In development phase analyst must be able to make the developer understand what the specifications say.
2 Documentation skills: Documentation is a integral part of Software Development Life Cycle. Documentation helps to keep track of the project as a whole. System analyst/designer needs to prepare SRS document and design documents. So documentation is essential for system analysis and design.
3 Programming skills: Programming skills helps the system analyst/designer to direct the programmer in the area of coding.

Methodologies
Communication Skills
Documentation skills
Programming skills
Waterfall model
High
High
Medium 
Incremental model
High
Medium
Medium
Prototype model
High
Low
Medium
Spiral model
High
Medium
Medium
V-shaped model
High
High
Medium
Agile development technologies
High
Medium
Medium
Component base development
High
Low
High



No comments:

Post a Comment