Software Engineering Tutorial

Introduction SDLC Objectives of Software Design Conceptual and Technical Design in Software Engineering Coupling in Software Engineering Information System for Strategic Advantage Advantages and Disadvantages of V-Model Documentation Guidelines in Software Engineering Application Software

SDLC Models

Agile Model Big-bang Model Incremental Model Iterative Model Prototype Model RAD Model Spiral Model V-Model Waterfall Model

Software Management

Project Management Project Management Activities Project Management Tools

Software Metrics

Software Quality Metrics Halstead's Software Metrics Object Oriented Metrices Data Structure Metrics Overall Equipment Effectiveness Some Important Quality Metrics

Project Planning

Software project planning Cost Estimation Model

Software Configuration

Software Configuration Management Project Monitoring and Control

System Design

Strategies for System Design Caching in System Design Load Balancer – System Design Dropbox - System Design Netflix - System Design Twitter - System Design

Misc

Routing Requests through Load Balancers Object Oriented Analysis and Design in Software Engineering Online Library Management System ER Diagram in Software Engineering Umbrella Activities in Software Engineering Difference between V-Model and Waterfall Model Timeboxing Model in Software Engineering Flowcharts and their Uses Overview of Fish SDLC Model Characteristics of Testable Software Component Design in Software Engineering Project Planning in Software Engineering Software Process Characteristics Types of Systems in Software Engineering Advantages and Disadvantages of using ERP systems Architectural Design Elements in Software Engineering Debugging Strategies in Software Engineering Design Techniques in Software Engineering Software Design Strategies Characteristics of SRS in Software Engineering Coding Conventions in Software Engineering Components of Software in Software Engineering Domain Requirements in Software Engineering Feasibility Study in Software Engineering Metrics of Source Code Role of System Analyst in Software Engineering SQA Plan in Software Engineering

Feasibility Study in Software Engineering

The realistic extent to which a project may be completed effectively is defined as feasibility. A feasibility study is conducted to examine whether the solution chosen to meet the criteria is realistic and workable in the program.During the feasibility study, information such as availability of resources, estimated costs for software creation, advantages of the program to the organization once it is built, and cost to be expended on its maintenance are evaluated. The feasibility study's goal is to determine the reasons for producing software that is user-friendly, flexible to change, and adheres to established standards. Other feasibility study objectives are given below.

  • To determine if the software will satisfy the needs of the company.
  • To examine if the software can be deployed using existing technology and within the budget and timeframe indicated.
  • To see if the program can be merged with other software that already exists.

Types of Feasibility Study

The feasibility study focuses primarily on the five topics listed below. Among them, the Economic Feasibility Study is the most essential component of the feasibility study, while the Legal Feasibility Study is a less relevant portion of the feasibility analysis.

Feasibility Study in Software Engineering

Technical Feasibility

Technical feasibility evaluates the current assets (such as both software and hardware) and technology necessary to meet user needs in software within the time and budget constraints. The team that develops the software determines if existing assets and equipment can be enhanced or added to the product to meet stated user requirements. The following duties are also performed by technical feasibility.

  • It is used to evaluate the technical abilities and capabilities of members of the software development team.
  • It checks to see if the required technology is reliable and well-established.
  • To find something out that the software development technology chosen has a large number of users so that they may be consulted when issues emerge or modifications are needed.

Operational Feasibility

The extent to which the needed software executes a sequence of processes to handle business challenges and user needs is measured by operational feasibility. This feasibility is based on human resources (the software development team) and entails picturing whether the program will run once it has been produced and will be operational once deployed. The following duties are also performed by operational feasibility.

  • It determines if the issues expected in the user requirements are high priority.
  • It determines if the software development team's proposed solution is acceptable.
  • It determines whether or not users will adapt to new software.
  • It determines whether the various solutions presented by the software development team satisfy the organization.

Economic Feasibility

Economic feasibility examines if the needed software can generate financial rewards for a company. It includes the cost of the software development team, the expected cost of hardware and software, the cost of conducting a feasibility study, and so on. This requires taking into account both costs (such as hardware purchases) and actions necessary to carry out software development. Furthermore, the benefits that may be obtained by designing the program must be considered. Software is considered to be economically viable if it focuses on the following challenges.

  • The cost of developing software to provide long-term benefits for a company.
  • Cost of doing a thorough software study (including requirements elicitation and analysis).
  • Hardware, software, development staff, and training costs.

Legal Feasibility

The project is examined from a legal standpoint in the Legal Feasibility study. This involves examining project legal implementation difficulties such as data protection acts or social media legislation, project certificate, license, copyright, and so on. Overall, a legal feasibility research is a research to determine whether a proposed project meets legal and ethical standards.

Schedule Feasibility

In a Schedule Feasibility Study, primarily timelines/deadlines for proposed projects are assessed, including how many times teams will take to finish the project, which has a significant influence on the organization because the project's goal may fail if it is not done on time.

Process of Feasibility Study

The following steps are included in the feasibility study:

  • Information evaluation: It determines if the system aids in the achievement of the organization's goals. It also ensures that the system can be deployed utilizing new technology while staying within budget, and that it can be connected with the existing system.
  • Information gathering: It specifies the sources from which software information can be collected. Users (who will use the software), organizations (where the program will be utilized), and the team working on the software (which understands user needs and knows how to satisfy them in software) are examples of these sources.
  • Writing a report: It uses a feasibility report, which is the outcome of the software development team's feasibility research. It offers advice on whether or not to continue with software development. This report may also include information regarding modifications to the software scope, budget, and timeline, as well as suggestions for any system requirements.
  • Information in general: It describes the feasibility study goal and scope. It also includes a system overview, project citations, acronyms and symbols, and contact information. The system overview describes the name of the company that is responsible for software development, the system name or title, the system category, the operating state, and so on. Project references give a list of the references used to generate this document, such as project-related documents or previously developed project-related papers.Acronyms and abbreviations give a list of the terminology used in this work, as well as their definitions. Points of contact are organizations' points of interaction with users for data and cooperation. Users, for example, seek assistance to solve difficulties (such as debugging) and gather data such as contact information, e-mail addresses, and so on.

Executive summary

The following information is provided:

  • Conditions: It identifies the people in charge of software development. It contains information regarding the software's input and output needs, processing requirements, and interaction with other software. It also defines system security needs as well as processing requirements for the system.
  • Current operational methods: It describes the present system's current functioning routines, whether automated or manual. It also contains the present system's data flow and the number of team members necessary to manage and maintain the program.
  • Functional goal: It provides information on system functions such as new services and enhanced capacity.
  • Performance target: It provides information on performance goals such as decreased personnel and equipment expenses, faster software processing speeds, and enhanced controls.
  • Constraints and assumptions: It provides information regarding assumptions and constraints such as the planned software's operational life, budget constraints, changing hardware, software, and operating environment, and information and source availability.
  • Techniques: It describes the processes used to assess the suggested software in order to arrive at a viable alternative. These strategies include surveys, modelling, and benchmarking, among others.
  • Criteria for evaluation: It identifies cost, importance, development time, and ease of system usage factors that are appropriate for the development process in order to select the best system alternative.
  • Suggestion: A recommendation for the proposed system is described. This covers the allowable risks and delays.
  • Software suggestions: It describes the system's basic idea as well as the technique to be employed to satisfy user needs. It also includes information on improvements, time and resource expenses, and implications. Improvements are made to the current program to improve its usefulness and performance. Time and resource expenses involve all aspects of software development, from requirements through maintenance and employee training. Impacts represent the probability of future events and encompass the following sorts of impacts.
  • Impacts of equipment: It determines fresh machinery requirements as well as modifications to existing equipment requirements.
  • Impacts of software: It specifies any changes or adjustments to current software and supporting software that are necessary to adapt to the proposed program.
  • Impacts on organizations: It describes any changes in the organization, personnel, or skill requirements.
  • Impacts on operations: It describes the consequences on processes such as user interfaces, data processing, data entry methods, and so on.
  • Impacts on development: It specifies developmental consequences such as the resources needed to construct databases, the resources needed to develop and test software, and the precise actions that users will conduct throughout software development.
  • Security implications: It describes the security factors that may have an impact on the creation, design, and continuous operation of the suggested software.
  • System alternatives: It provides a description of the alternative systems explored in the feasibility study. This section also explains why a certain alternative system was chosen to produce the suggested software and why competing systems were rejected.

Need for a Feasibility Study

Feasibility study is an important stage of the Software Project Management Process because it determines whether to proceed with the proposed project because it is practically feasible or to stop the proposed project because it is not right/feasible to develop or think/analyse about the proposed project again.

Conclusion

In conclusion,along with this, a feasibility study aids in identifying risk variables involved in creating and deploying systems, as well as preparing for risk analysis. It also narrows business choices and improves success rates by examining various criteria related with planned project development.