Software Project Concepts and SDLC

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Which of the following best describes the primary goal of a Software Project?

  • To write as much code as possible within a given timeframe.
  • To create software regardless of user needs.
  • To deliver a well-defined task by achieving a set of operations to meet a specific goal. (correct)
  • To use the latest technology, even if it's not suited for the project.

Which of the following activities is the focus of system analysis in SDLC?

  • Dissecting a system into its component pieces to study how they interact. (correct)
  • Installing hardware components.
  • Training users on how to use the new system.
  • Writing code for system modules.

What role does documentation play in the Software Development Life Cycle (SDLC)?

  • It is only needed for large projects, not small ones.
  • It is created at the beginning of the project and never needs to be updated.
  • It supports future upgrades and maintenance by providing a historical record and reference. (correct)
  • It is mainly used by end-users to troubleshoot issues they encounter.

Which of the following is a primary objective of the 'Software Validation' activity in the software development process?

<p>Ensuring the software does what the customer wants. (C)</p> Signup and view all the answers

Which of the given options is the MOST accurate definition of an 'information system'?

<p>A system that processes supplied data and generates information for decision making. (B)</p> Signup and view all the answers

A company is deciding whether to develop a new accounting system. Which aspect would 'Economic Feasibility' primarily assess?

<p>The costs versus the benefits of the system. (A)</p> Signup and view all the answers

During which SDLC phase is the determination of system requirements typically performed?

<p>System Analysis (A)</p> Signup and view all the answers

What is the focus of the 'System Design' phase within the Software Development Life Cycle (SDLC)?

<p>Developing the logical and physical design of the new system. (A)</p> Signup and view all the answers

What is the purpose of performing a feasibility study before designing a system?

<p>To determine if the system is practical and beneficial to the organization. (A)</p> Signup and view all the answers

What is the main difference between a system flowchart and a program flowchart?

<p>A system flowchart describes the internal architecture of a system, while a program flowchart describes how to solve a programming problem. (A)</p> Signup and view all the answers

Considering the role of a system analyst, what is the significance of interpersonal communication skills?

<p>To effectively communicate with stakeholders and understand their needs. (B)</p> Signup and view all the answers

In system design, what is the difference between logical and physical design?

<p>Logical design is theoretical, while physical design involves converting the design into implementable tools and techniques. (A)</p> Signup and view all the answers

What is the main goal of 'System Testing' in the SDLC process?

<p>To provide stakeholders with information about the software's quality and risks of implementation. (A)</p> Signup and view all the answers

A company is switching to a new Customer Relationship Management (CRM) system. They decide to run both the old and new systems simultaneously for a while. Which type of implementation is this?

<p>Parallel Conversion (A)</p> Signup and view all the answers

What is the purpose of 'Corrective Maintenance' in software maintenance?

<p>Correcting run-time errors during operation. (C)</p> Signup and view all the answers

What is the PRIMARY emphasis of the Agile model in software development?

<p>Customer satisfaction through continuous delivery of working software. (B)</p> Signup and view all the answers

Which benefit is directly provided by 'External Documentation'?

<p>A detailed description in terms of manuals, guide and help files for the end users. (D)</p> Signup and view all the answers

Which of the following best describes 'technical feasibility' in a feasibility study?

<p>Assessing the availability of necessary hardware and software. (B)</p> Signup and view all the answers

Within the context of Software Development Models, what is a key characteristic of the Waterfall model?

<p>Sequential and systematic progression through phases (A)</p> Signup and view all the answers

Which of the following activities is characteristic of requirement collection?

<p>Identifying and documenting the required needs of the software from the stakeholder's point of view. (A)</p> Signup and view all the answers

Flashcards

Program

A sequence of instructions to perform a task.

Instruction

A command given to the computer to perform a specific operation.

Software

A set of programs written for a computer to perform a specific task. It acts as an interface between the computer and the user.

Software Evolution

Software to meet changing customer needs.

Signup and view all the flashcards

System

A set of interacting or interdependent components forming an integrated whole to achieve a common objective.

Signup and view all the flashcards

Development

Process of step by step changing or growing of any program and system.

Signup and view all the flashcards

Information System

A system that processes supplied data and generates information for decision-making.

Signup and view all the flashcards

SDLC (Software/System Development Life Cycle)

An organized way to develop a software/system. It helps in establishing a system, software or project.

Signup and view all the flashcards

Importance of SDLC

Determine user needs.

Signup and view all the flashcards

Feasibility Study

A preliminary investigation assess the project's viability.

Signup and view all the flashcards

Economic Feasibility

Concerns cost-effectiveness of the system.

Signup and view all the flashcards

Technical Feasibility

Ensures hardware, software and support equipment availability.

Signup and view all the flashcards

Operational Feasibility

Concerns with the smooth operation of the system.

Signup and view all the flashcards

System Design

Next step to develop the logical design of the system.

Signup and view all the flashcards

Logical Design

Theoretically designing the system based on requirements.

Signup and view all the flashcards

Physical Design

Converting logical design into design toos and techniques.

Signup and view all the flashcards

Flowchart

A pictorial representation of an algorithm.

Signup and view all the flashcards

DFD (Data flow diagram)

Logical Diagram to describe the flow of data inside the components of system.

Signup and view all the flashcards

ER (Entity Relationship) diagram

Is a graphical representation that depicts relationships among objects within a database system.

Signup and view all the flashcards

Waterfall Model

A systematic and sequential model that describes a development method that is linear and sequential.

Signup and view all the flashcards

Study Notes

Software Project Concepts

  • A program is a sequence or set of instructions.
  • An instruction is a command for a computer to perform a specified operation on data.
  • Software is a set of programs that performs a specific task.
  • Software is the interface between a computer and its user.
  • A software project is the process of software development from identifying requirements to testing and maintenance, following specific methods within a set timeframe and budget to reach a intended product.

Software Development Process

  • Software development defines tasks of building new software.
  • Development activities are grouped into phases.
  • A phase can only begin once the previous phase is complete.
  • At the end of each phase, a report is made describing what was done and shows the plan for the next phase.
  • The fundamental activities are: Software Specification, Software design and implementation, Software validation, Software evolution

System Development Life Cycle (SDLC)

  • A system has interacting components forming an integrated whole, objects joined for a common goal.
  • Development is a step-by-step changing programs or systems.
  • An information system is a system processing supplied/collected data, generates information for decision making.
  • SDLC is a structured process to develop a software/system, or, methodology to develop, maintain, and replace software/information systems.
  • SDLC helps establish software or a project and gives an overall list of processes needed.
  • SDLC activities follow a prescribed order and develops the software in chronological order.
  • SDLC is also known as Application Development Life Cycle, it describes planning, creating, testing, and deploying an information system.
  • SDLC helps determine user needs.
  • SDLC supports constant communication between developer and user.
  • SDLC facilitates easy finding of missing requirements.
  • SDLC ensures software meets user needs.
  • SDLC supports proper analysis and design.
  • SDLC ensures proper development and testing.
  • SDLC gives proper documentation for upgrades and maintenance.
  • SDLC provides flexibility to add features after development.

SDLC Phases

  • System Study/Preliminary Investigation and Feasibility Study
  • System Analysis/Determination of System Requirements
  • System Design
  • System Development/Development of Software
  • System Testing
  • System Implementation
  • System Maintenance and Reviews or Evaluation

System Study

  • A system should meet organizational needs.
  • System design first specifies needs or requirements.
  • The organization's top manager decides to use a computer-based information system to manage the organization.
  • During system study, the development team works on:
    • Surveying the system using inputs from various sources.
    • Analyzing the current system in depth, developing possible solutions.
    • Selecting the best solution and defining its function using a feasibility study.

System Analysis

  • System analysis breaks systems into pieces to study their interactions.
  • System analysis is a term describing preliminary phases of development.
  • It is focusing on the business problem, independently of technology.
  • The development team collects information from users, management, and data processing personnel to find drawbacks.
  • The system analyst then analyzes information and proposes:
    • System goals and objectives.
    • Actions that must be implemented.
    • Outputs to be produced.
    • Inputs to be used.
    • Processes to be performed.
    • Interfaces to be provided.
    • Performance and organizational requirements.

Feasibility Study

  • An important activity in system analysis that analyzes proposed systems from different aspects.
  • It shows how practical the system will be for the organization.
  • The need determines the system meets client goals, or determines strengths and limitations, focuses on the system's boundary, suggests new opportunities, and provides quality information with documentation.
  • Economic, Technical, Operational, Behavior, Social, Management, Schedule (Time) Legal are the different levels

System Design

  • Developing the logical design by using user info and find the needed database..
  • System design involves new system design, input, files processing, and programs.
  • Logical Design is theoretically designing the system based on requirements.
  • Physical Design converts logical design using tools and techniques.
  • Physical design is more detailed and complex, using algorithms, flowcharts, pseudo codes, decision tables/trees, E-R diagrams, and data flow diagrams.

System Design Tools

  • Algorithms: finite sequences of instructions for solving a problem.
  • Flowcharts: pictorial representation of an algorithm.
    • System Flowcharts: describes the internal architecture of a system that describes how data are moved inside the internal components of a system.
    • Program Flowcharts: solves application-type problems.
  • DFD (Data Flow Diagram): logical diagram describing data flow inside system components.
    • Easier to understand, precise and less ambiguous than narrative.
    • Components: process, data store, data flow, external entities.
  • A visual representation of information flow.
  • A neat and precise DFD can show the system requirement graphically.
  • DFD can be manual, automated, or both, depicts data entering, exiting, and storage locations.
    • Circle: A process which transforms data inputs into data outputs.
    • Data Flow: A curved line depicting the flow of data into or out from the process/data source.
    • Data Store: Done with parallel lines, arrow indicates net input/output.
    • Is an external entity acting as a system input/output source.
    • Components
      • Process: Key component using the process function is rectangular with rounded corner, oval, or circle.
      • Data Flow: arrow with related name, using material and the flow of data.
      • Warehouse:Data store uses two horizontal lines symbolizing data storage for future use, which is independent of implementation.
      • Terminator: External entity outside the system which communicates with the system.
  • Context Diagram: A combination of many other DFD and only contains one process representing the entire system.
    • The flow of data is described by arrows, external entities are rectangles, and the process is a circle.
  • ER (Entity Relationship) Diagram: Depicts the logical structure of a database graphically, which helps to create visual clarity of the database design.
    • Entity: Is a real-world item
    • Attributes: Characteristics of entities
    • Relationship: Describes how entities interact

ER diagram stands for Entity Relation Diagram

  • It is a graphical representation that depicts relationship among people, objects, places, concepts or events within a database system.
  • An ERD uses data modeling techniques that can help define business processes and serve as the foundation for a relational database.
  • An entity relationship diagram (ERD) shows the relationships of entity sets stored in a database.
  • An entity in this context is an object, a component of data.
  • An entity set is a collection of similar entities. These entities can have attributes that define its properties.

UML

  • Unified Modeling Language is a standardized general purpose modeling language in the field of object-oriented software engineering.
  • The standard is managed, and was created by, the object management group.
  • UML includes a set of graphic notation techniques to create visual models of object-oriented software.

Decision Table

  • A table allows us to identify the exact course of actions for given conditions in tabular form.
  • Decision table is a tabular representation of the logic of a decision, which specifies the possible conditions for the decision and the resulting actions.

Decision Tree

  • Decision tree is also a technique to represent condition and actions in a diagrammatic form in computer.
  • A decision tree allows us to identify the exact course of actions for given conditions in tree structures.

Pseudo Code

  • It is a kind algorithm for solving a problem and the instructions of pseudo code are written by using English phrase and mathematical expressions.

Case diagram

  • Computer aided software engineering tool is automatic computer based program that helps for software engineering and SDLC process.
  • It is very fast and effective tools for the development of big scale software.
  • It helps in analysis, design, implementation, testing and maintenance.

System Developments

  • Programmers begin to develop the program by using a suitable High Level Language.
  • In System developments following processes are done.
    • Convert logical structure in to programs in programming language.
    • Database is created.
    • User operational documents are written.
    • Users are trained.
    • The internal documentation of a system is prepared.

System Testing

  • It is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.
  • System testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.

White box testing

  • White box testing of software is predicted on close examination of procedural details and Logical path.
  • It is used when the tester has access it the internal data structures and algorithms including the code that implement these.

Black box testing

  • Black box testing treats the software as a black box without any knowledge of internal implementation.
  • Black box testing methods include: equivalence partitioning, boundary value analysis, specification based testing, etc.
  • It is also called functional testing because it tests whether a system is functioning or not.

Implementation

  • Implementation involves testing the installed system, converting from the old system to the new one and training the users.
  • This phase consists of implementation of the system into a production environment, and resolution of the problem identified in testing phase.

Types of Implementation

  • Direct Conversion: All users stop using old system at the same time and then begin using the new. This option is very fast, less costly but more risky.
  • Parallel conversion: Users continue to use old system while an increasing amount of data is processed through the new system. Both the systems operate at the same time until the new system works smoothly. This option is costly but safe approach. Phased conversion: Users start using the new system component by component. This option works only for systems that can be compartmentalized. This option is safe and conservative approach.

Pilot conversion: Personnel - single pilot-site

  • The new system, and then the entire organization makes the switch.
  • Although this option may take more time, it is very useful in big organizations where a large number of people make the conversion.

Maintenance and review

  • It begins after the system is implemented. Like any system, there is an ageing process that requires periodic maintenance of hardware and software.
  • The content of the review will include objectives met, cost, performance, standards and recommendation.

Types of Maintenance

  • Corrective Maintenance: corrects the run time errors during the operation.
  • Adaptive Maintenance: It modifies or adds new features in the system.
  • Perfective Maintenance: It makes the system perfect, up-to-date and improve the life of the system.

Requirement Collection Methods

  • Is one of the important aspects of the software development process.
  • The proposed system must be able to meet the requirement of the user.
  • If the requirements are not specified and precisely clear then the system is unable to perform task for which it is designed.

Requirement Gathering Methods

  • One to one interviews
  • Group Interviews
  • Focus Groups
  • Questionnaires/ Survey
  • Observation / Field visit
  • Analyzing Existing Documents
  • Facilitated workshops
  • Prototypes
  • Brain Storming » Questionnaires/Survey:
  • Questionnaires is one of the basic tools for collection the requirements from the stakeholders.
  • A list of questions are made regarding the different requirements and need of the software.

Meeting

  • Meeting of different stakeholders helps to develop the new idea and concept about the software project.

Brainstorming

  • Brainstorming is one of the commonly used requirement gathering tool for gathering as many ideas as possible from group of people.

Interview

-Interviews of stakeholders and users are critical to creating the great software.

System Development Model

During software development or system development for organizations, a common process framework is established, defining a small number of framework activities that are applicable to all software projects, regardless of their size complexity.

  • For a better paradigm of a software process, several models are designed and implemented.
  • It is the choice of system analyst which model is used to achieve the goal.

Waterfall model

  • Waterfall model is a systematic and sequential model to develop software that begins with requirements analysis to operation and maintenance.
  • It describes a development method that is liner and sequential.
  • It is an oldest type of model for software engineering.

The fundamental processes of waterfall model as follows

  1. Requirements analysis and definition
    • It is the first stage of waterfall model.
    • In this stage, the developer should identify the actual requirements of the given problem.
  2. System design
    • in this stage the systems design process partition the requirements to either hardware or software systems.
  3. System Development
    • During this stage, the system design is converting into development.
  4. Integration and system Testing:
    • The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met.
  5. Operation and maintenance
    • in this stage, the system is installed to the desire location.
    • The maintenance involves correcting errors which were not discovered in earlier stages of the life cycle, improving the implementation of system units and enhancing the system's service as new requirements are discovered. Advantages i. It is simple model suitable for small size project. ii. It is less expensive. Disadvantages i. It has no back track mechanism. ii. It is not suitable for large size project. iii. It has lack of proper documentation.

Prototyping model

  • It is the iterative process of system development which is more appropriate for developing new system where there is no clear idea of requirements, inputs and outputs.

i. Identify the user needs: - The system analyst interviews the user to obtain an idea of what is required from the system. ii. Develop a prototype - The system analyst, working uses one or more prototyping tools to develop a prototype. iii.Determine if prototype is acceptable - The analyst educates the user in prototype use and provides an opportunity from becoming familiar with the system. iv. Use the prototype - the prototype becomes the operational system. Advantages i. The users get a better understanding of the system being developed. ii. Errors can be detected much earlier as the system is made side by side. iii. Quicker user feedback is an available leading to better solutions of the system. Disadvantages i. It leads to implementing and repairing way of building systems. ii. It may increase the complexity of the system as scope of the system may expand beyond original plans.

Spiral system

  • In this model, process is represented as a spiral rather than as a sequence of activities with backtracking.
  • It is a software development process combining the elements of both waterfall and prototyping model.
  • The spiral model is intended for large, expensive and complicated projects.
  • This is the most realistic model because it uses multidimensional approach for software development.

Agile Software Development

It is a software development method based on iterative and incremental development in which requirement and solutions evolve though collaboration between self-organizing, cross functional teams.

Advantages of Agile model

  • Customer satisfaction by rapid, continuous delivery of useful software.
  • People and interactions are emphasized rather than process and tools. -Customers, developers and testers constantly interact with each other. -Working software is delivered frequently (weeks rather than months).

Disadvantages of Agile model

  • In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.

Documentation

  • Is the process of collecting, organizing, storing and maintaining a complete record of system and other documents used or prepared during the different phases of the life cycle of the system.

Types of Documentation

  1. Internal Documentation: It is used by the system analyst and the programmer during development process.
  2. External Documentation: It is used by the user during the running time of the software.

Software and Quality

features of good software a. Simplicity b. Flexibility c. Security

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser