SYSTEM ANALYSIS
INTRODUCTION :
System analysis is the process of examining a system or a specific aspect of a system to identify its components, functions, and interactions in order to understand how it works and to make recommendations for improvements. It involves identifying the inputs, processes, and outputs of a system, as well as the relationships between them, to gain a comprehensive understanding of the system's behavior. The goal of SDLC is to minimize project risks through forward planning so that software meets customer expectations during production and beyond. This methodology outlines a series of steps that divide the software development process into tasks you can assign, complete, and measure. Requirement analysis is the most important and fundamental step in SDLC. It is performed with inputs from the customer, the sales department, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas.
Planning for the quality assurance requirements and identification of the risks associated with the project is also done in the planning stage. The outcome of the technical feasibility study is to define the various technical approaches that can be followed to implement the project successfully with minimum risks. Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved. This is done through an SRS (Software Requirement Specification) document which consists of all the product requirements to be designed and developed during the project life cycle.
SRS is the reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS (Design Document Specification). This DDS is reviewed and based on various parameters as risk assessment, product robustness, design modularity, budget and time constraints, the best design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along with its communication and data flow representation with the external and third party modules (if any). The internal design of all the modules of the proposed architecture should be clearly defined with the minutest of the details in DDS. The actual development starts and the product is built. The programming code is generated as per DDS during this stage. If the design is performed in a detailed and organized manner, code generation can be accomplished without much hassle.
Developers must follow the coding guidelines defined by their organization and programming tools like compilers, interpreters, debuggers, etc. are used to generate the code. Different high level programming languages such as C, C++, Pascal, Java and PHP are used for coding. The programming language is chosen with respect to the type of software being developed.
System analysis can be applied to a wide range of systems, including computer software, business processes, manufacturing processes, and organizational structures. The goal of system analysis is to identify areas where the system can be optimized, streamlined, or improved in order to achieve better performance, efficiency, and effectiveness. This can involve identifying bottlenecks, redundancies, or inefficiencies within the system and developing solutions to address them.
System analysis can be used in a wide range of contexts, including business, engineering, healthcare, and public policy. It is often used in the development of new systems, but can also be used to improve existing systems.
System analysis contains the following phases :
Information Gathering
Analysis
Design
Coding
Testing
Deployment
Maintenance
In this phase, the project objectives are defined, and the requirements are gathered. The project team is assembled, and the scope of the project is established. The feasibility of the project is also assessed in terms of technical, economic, and organizational factors.
In this phase, the requirements gathered in the previous phase are analyzed in detail to understand the functionality and features that the software should provide. This includes understanding the data needed for the algorithms, data preprocessing, and data cleaning, among other things.
In this phase, the software design is created based on the requirements and analysis conducted in the previous phases. This includes creating a detailed design for the user interface, database schema, algorithms, and system architecture.
In this phase, the software development team starts coding the software based on the design specifications. The data is preprocessed, and the models are built using the Densenet and XGBoost algorithms.
In this phase, the software is tested to ensure that it meets the functional and non- functional requirements specified in the earlier phases. The software is tested for accuracy, reliability, and performance. The testing includes both unit testing and system testing.
In this phase, the software is released for use in a production environment. The software is deployed on the relevant servers, and the users are provided access to the system .
In this phase, the software is maintained to ensure that it continues to operate as expected. This includes bug fixes, updates, and modifications to the software based on user feedback .
3.2.1 Software Requirements
Software : Python-version: 3.8 Any IDLE Shell
Libraries : Numpy, pandas, opencv, keras, scikit, imutils, sklearn, os etc
Operating system : windows, Linux
Processor : Intel core I5
Ram : 8GB
Hard Disk : 500GB or More
Python is an interpreter, high-level, general-purpose programming language. Python is simple and easy to read syntax emphasizes readability and thus reduces system maintenance costs. Python supports modules and packages, which promote system layout and code reuse. It saves space but it takes a rather higher time when its code is compiled. Indentation must be taken care while coding. Python has many inbuilt library functions that can be used easily for working with machine learning algorithms. All the necessary python libraries must be pre-installed using “pip” command. Software used in the project include following Libraries, Modules and Packages .
Web Application Framework or just Web Framework represents a set of libraries and modules that permits an internet application developer to write down applications without having to bother about lowlevel details such as protocols, thread management, etc. Flask may be a web application framework written in Python. It is developed by Armin Ronacher, who leads a world group of Python enthusiasts named Pocco. Flask is predicated on the Werkzeug WSGI toolkit and Jinja2 template engine. Both are Pocco projects. Python 2.6 or higher is usually required for the installation of Flask. The Flask and its dependencies work well with Python 3. Importing the flask module in the project is mandatory. An object of the Flask class is our WSGI application .
NumPy
NumPy is a Python library used for working with arrays. It also has functions for working in domain of linear algebra, fourier transform and matrices. NumPy was created in 2005 by Travis Oliphant. It is an open source project and you can use it freely. NumPy stands for Numerical Python.
In Alternatives of arrays in Python are lists, but they take a long time to execute. The goal of NumPy is to offer an array items that are up to 50 times quicker than conventional Python lists. The NumPy collection is referred to as ndarray, and it offers a number of supporting methods that make using ndarray very simple. In data science, where efficiency and resources are crucial, arrays are used a lot .
Enter the following command to install numpy : “ pip install numpy “
Python's Pandas module is used for modifying data collections.It has functions for data exploration, cleansing, analysis, and manipulation. Wes McKinney came up with the term "Pandas" in 2008, and it refers to both "Panel Data" and "Python Data Analysis". With the aid of Pandas, we can examine large data sets and draw predictions based on statistical principles. Pandas can organize disorganized data sets, making them readable and useful . In data science, relevant info is crucial. Pandas is an open-source tool designed primarily for dealing quickly and logically with relational or annotated data. It offers a range of data types and functions for working with time series and numerical data. The NumPy library serves as the foundation for this library. Pandas move quickly and has high performance and productivity for users .
Scikit-learn, also known as sklearn, is a popular machine learning library for Python. It provides a wide range of supervised and unsupervised learning algorithms and tools for data preprocessing, feature selection, model selection, and evaluation. Scikit-learn is built on top of other popular libraries such as NumPy, SciPy, and matplotlib, and has a simple and consistent API, making it easy to learn and use. Scikit-learn supports a variety of classification, regression, and clustering algorithms, including linear and logistic regression, decision trees, random forests, support vector machines, k-nearest neighbors, k-means clustering, and more. It also provides a range of tools for feature selection and dimensionality reduction, such as Principal Component Analysis (PCA), and for model selection and evaluation, such as cross-validation and grid search. Scikit-learn is widely used in both academia and industry and has a large and active community of developers and users who contribute to its development and documentation.
Scikit-image or skimage is an open-source image processing library for Python that is built on top of NumPy, SciPy, and matplotlib. One of the notable features of skimage is its ability to work with multidimensional images, making it suitable for processing not only 2D images but also 3D and even 4D images.
One of the most useful functions in skimage is skimage.io.imwrite(), which allows you to save an image to disk in various file formats, including PNG, JPG, TIFF, BMP, and more. This function takes two arguments: the filename to save the image to, and the NumPy array representing the image data. You can also specify various options such as the image format, the image quality, and more. Overall, the skimage.io.imwrite() function is a simple and convenient way to save images in your Python code, and it integrates seamlessly with other functions in skimage for image processing and analysis.
CV2 is a computer vision library in Python that provides various functions and tools to perform image and video processing tasks. One of the functions provided by cv2 is the write() function, which can be used to write images and videos to disk. The write() function takes two arguments: the filename to save the image or video and the image or video itself. The image or video can be a numpy array or a cv2 image object. The write() function supports various image and video formats such as JPEG, PNG, BMP, AVI, MP4, and more[30]. Using the write() function in cv2 is straightforward. First, you need to import the cv2 module in your Python script. Then, you can read an image or video using the imread() or VideoCapture() function, respectively. Once you have processed the image or video, you can save it to disk using the write() function.
matplotlib.pyplot is a powerful data visualization library in Python that allows users to create a wide range of plots and charts. It is built on top of the Matplotlib library, which provides low-level plotting functionality. By using pyplot, users can easily create various types of plots such as line plots, scatter plots, bar charts, histograms, and more, with just a few lines of code. Pyplot provides a range of customization options for plots, including adding labels, titles, legends, and annotations to the plots. Pyplot is widely used in scientific research, data analysis, and machine learning projects, where data visualization plays a crucial role in understanding and presenting insights from data. With its rich set of features and ease of use, matplotlib.pyplot is a popular choice among data scientists and researchers for creating high-quality plots in Python