Com Sci mod 2 Flashcards

1
Q

Explain the reasons for a structured approach to the software development process

A
  • increased dependence of many organizations on their computer systems
  • Crisis in previous developments: for example: increasing costs of software development, dissatisfaction of users and management with the quality and suitability of software, increasing length and complexity of the software.
  • Requirements for standard interfaces, both to users and to other software
  • Need for tighter control and management of process, visibility of process, risk management
  • Importance of the need for the involvement of end users and management
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the SDLC life cycle?
(Software Development Life Cycle)

A

The Software Development Life Cycle (SDLC) is a structured process that enables the production of high-quality, low-cost software, in the shortest possible production time.

  • The goal of the SDLC is to produce superior software that meets and exceeds all customer expectations and demands.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the SDLC stages?

A
  1. Project Planning
  2. Gathering Requirements & Analysis
  3. Design and Prototype
  4. Software Development
  5. Testing
  6. Deployment
  7. Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explain the attributes of a well-engineered software product

A
  • Maintainability
  • Dependability
  • Efficiency
  • Usability
  • Portability
  • Availability of appropriate documentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the Waterfall method?

A

The term “waterfall” refers to the flow of the project, where each phase cascades down to the next. It involves a detailed planning phase, execution, testing, and maintenance. And each phase must be completed before moving on to the next, with little to no flexibility for changes during the project.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Waterfall method
Advantages:

A
  • Provides a way for large or changing teams to work together toward a common goal defined in the requirements phase
  • Ensures a disciplined and structured organization
  • Provides a simple method to understand, follow, and arrange tasks
  • Facilitates management control and departmentalization based on deadlines
  • Establishes good coding habits by defining first, then implementing design
  • Provides easy access to early system design and specification changes
  • Defines milestones and deadlines clearly
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Waterfall method
Disadvantages:

A
  • Design flaws, when discovered, often mean starting over from scratch
  • It doesn’t incorporate mid-process feedback from users or clients and makes changes based on results
  • Delaying the testing until the end of development is common
  • There’s no consideration for error correction
  • The model doesn’t accommodate changes, scope adjustments, and updates well
  • Work on different phases doesn’t overlap, which reduces the efficiency
  • Projects don’t produce a working product until later stages
  • Not an ideal model to use for complex and high-risk projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is rapid prototyping?

A

Rapid prototyping is a design workflow that includes prototyping and testing a design solution with users and stakeholders to help designers and product teams refine and validate ideas quickly.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Rapid Prototyping
Advantages:

A
  • Explore new concepts and ideas
  • Minimize development costs on iterations in the live product (When a feature or product has been validated with users at the design stage, the risk of building something that doesn’t work or isn’t valuable is minimal)
  • Market validation
  • Testing new features with users
  • Getting stakeholder feedback
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Rapid Prototyping
Disadvantages:

A
  • Cost of equipment and technology - 3D printers etc
  • Material limitations: The materials used in rapid prototyping may not always match the properties of the final production materials. Which might increase the cost in the design phase.
  • Skill requirements: Operating and maintaining the equipment for rapid prototyping requires specialised skills. Companies may need to invest in training or hire skilled professionals to utilise these technologies, effectively increasing overall costs.
  • Environmental impact: The materials and processes involved in rapid prototyping, especially in 3D printing, can have environmental implications. Some materials used in 3D printing may need to be more easily recyclable, and the energy consumption of certain rapid prototyping methods can be a concern.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the Fountain Model/Approach?

A

This model allows for the advancement from (and return to) various stages of software development regardless of whether or not enough tasks have been completed to reach it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Fountain Model/Approach
Advantages

A
  • The highly iterative nature of this model ensures intense and frequent customer involvement in the development of the information system.
  • The fountain model has the advantage that a progressive piece of software is allowed to be added on each iterative development
  • Able to begin coding earlier
  • Has many more interaction between design and requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Fountain Model/Approach
Disadvantages

A
  • It may be degraded into a code a bit test a bit which requires frequent iteration and refinement
  • Without strong project management, the information system theoretically may never be completed if the project team gets caught in a loop of ever-increasing scope and continuously changing requirements.
  • may take more time and cost more to complete the information system.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the Formal Transformation Approach?

A

This model views software development as a sequence of steps that starts from a formal (mathematical) specification of the requirements and gradually transforms it into an implementation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Formal Transformation Approach
Advantages

A
  • It is precise and free of errors (Formal transformation is said to be error-free due to the tedious mathematical specifications which allows no room for errors.)
  • It is said to be suitable for safety critical systems. (This is based on its error free nature. Formal transformation ensures that the program or software runs as it is supposed to without any glitches that will affect the running of any vulnerable systems.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Formal Transformation Approach
Disadvantages

A
  • It is very costly
  • It introduces extra complexity.
  • It requires specialized expertise.
    (This is so because of its tedious nature.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is the Reuse-Oriented Approach?

A

an approach to software development that emphasizes the systematic reuse of existing software components to create new applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Reuse-Oriented Approach
Advantages

A
  • lower costs
  • faster software development
  • save time in testing
  • lower risks

-System dependability is increased

  • Specialists can be used more effectively by concentrating their expertise on the design of reusable components.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Reuse-Oriented Approach
Disadvantages

A
  • The more general (and thus reusable) a software component is, the less likely it is to be useful without modification for a given application.
  • software reuse can also limit creativity and innovation
  • When code is reused from different sources, it can be difficult to ensure that all the components work together effectively, and this can lead to compatibility issues and bugs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Analysis Phase
Requirements and Specification Process
What is a Feasibility Study?

A

a project done to determine software’s technical and commercial viability before its development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Analysis Phase
Requirements and Specification Process
What is a Requirement Analysis?

A

a process used to determine the needs and expectations of a new product. It involves frequent communication with the stakeholders and end-users of the product to define expectations, resolve conflicts, and document all the key requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Analysis Phase
Tools and Techniques

A
  • Interviews
  • Questionnaire
  • Observation
  • Review Internal Documents
  • Data Flow Diagrams (DFD)
  • Entity Relationship Diagram (ERD)
  • CASE tools
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Analysis Phase
Tools and Techniques
What is a Data Flow Diagram?

A

A data flow diagram shows the way information flows through a process or system

  • DFDs are built using standardized symbols and notation to describe various entities and their relationships.
24
Q

Analysis Phase
Tools and Techniques
What is a Entity Relationship Diagram?

A

An entity relationship diagram (ERD), also known as an entity relationship model, is a graphical representation that depicts relationships among people, objects, places, concepts or events in an information technology (IT) system.

25
Q

Analysis Phase
Tools and Techniques
What are CASE tools?

A

a software packagethat provides support for the design and implementation of information systems.

Computer Aided Software Engineering.

26
Q

Analysis Phase
Tools and Techniques
What are CASE tools Components?

A
  • Upper Case Tools - Upper CASE tools are used in planning, analysis and design stages of SDLC.
  • Lower Case Tools - Lower CASE tools are used in implementation, testing and maintenance.
  • Integrated Case Tools - Integrated CASE tools are helpful in all the stages of SDLC, from Requirement gathering to Testing and documentation.
27
Q

Analysis Phase
Tools and Techniques
What are CASE tools Types and Examples?

A
  • Diagram tools: Flow Chart Maker tool (draw.io)
  • Process Modeling Tools: EPF Composer(It allows the capturing of the methods used by your software development team(tasks etc))
  • Project Management Tools: Creative Pro Office, Trac Project, Basecamp
  • Documentation Tools: Doxygen, DrExplain, Adobe RoboHelp
  • Analysis Tools: Accept 360, Accompa, CaseComplete for requirement analysis, Visible Analyst for total analysis.
  • Design Tools: Animated Software Design, Blender
  • Programming Tools: Eclipse, Replit
  • Prototyping Tools: Serena prototype composer, Mockup Builder.
  • Web Development Tools: Wix
  • Maintenance Tools: Bugzilla for defect tracking, HP Quality Center
28
Q

Analysis Phase
Deliverables
Requirement Specification
Feasibility Report

A

The primary goal of a feasibility study is to assess the practicality, viability, and potential success of the proposed software solution.

  • type of feasibility study
29
Q

Analysis Phase
Deliverables
Requirement Specification
Funtional Specification

A

A functional specification is a formal document used to describe a product’s intended capabilities, appearance, and interactions with users in detail for software developers. The functional specification is a kind of guideline and continuing reference point as the developers write the programming code.

Functional requirements form the behavior of the product.

30
Q

Analysis Phase
Deliverables
Requirement Specification
Non-Funtional Specification

A

a set of specifications that describe the system’s operation capabilities and constraints. These are basically the requirements that outline how well it operates, including things like speed, security, reliability, data integrity, etc

31
Q

Analysis Phase
Deliverables
Requirement Specification
What is the difference between Functional and Non-Funtional Specification?

A
  • Functional requirements explain how the system must work, while non functional requirements explain how the system should perform.
  • Functional requirements form the behavior of the product.
  • Non-functional requirements describe the general software characteristics.
  • FR explain “What the system does.”
  • NFR explain “How the system works.”
32
Q

Design Phase
Design Process
Achritectual Design

A

the process of defining a collection of hardware andsoftware components and their interfaces to establish the framework for the development of a computer system

33
Q

Design Phase
Design Process
Interface Design

A

the process designers use to build interfaces in software or computerized devices, focusing on looks or style

e.g. voice-controlled interfaces.

34
Q

Design Phase
Design Process
Data Structure Design

A

The process of development and organization of data structures that can effectively store, manipulate, and retrieve data in a computer program or system

eg. graphs, hash tables, trees, arrays, linked tables

35
Q

Design Phase
Design Process
Algorithm Design

A

a process that involves creating a *^step-by-step procedure** or set of instructions for a computer to follow while performing a task or solving a problem

eg. tying your shoelaces

36
Q

Design Phase
Tools and Techniques
Structure Charts

A

a chart which shows the breakdown of a system to its lowest manageable levels. They are used in structured programming to arrange program modules into a tree. Each module is represented by a box, which contains the module’s name.

37
Q

Design Phase
Tools and Techniques
HIPO Charts

A
  • Hierarchical Input Process Output.

HIPO diagram assesses the system and facilitates documentation. It organizes the software system’s modules into a hierarchy. HIPO diagrams can be used to get a high-level picture of the system’s functions

38
Q

Design Phase
Design Methods
top-down

A

starts with the general concept and repeatedly breaks it down into its component parts. In other words, it starts with the abstract and continually subdivides it until it reaches the specific.

39
Q

Design Phase
Design Methods
bottom-up

A

The bottom-up approach starts with the low-level details of the system, such as the data structures, the algorithms, and the interfaces. Then, these details are combined and integrated into larger components, and so on, until the whole system is built.

40
Q

Design Phase
Design Methods
System Structuring

A

The system is decomposed into several. principal sub-systems and communications, between these sub-systems are identified.

(sub-systems,modules,programs)

41
Q

Design Phase
Design Strategies
Functional vs Object Oriented

A
  • OOP is about creating objects and making them interact to build applications. It models software based on real-world objects.
  • FP is about creating functions and combining them to solve problems. It models software based on mathematical functions and transformations.
  • In essence, OOP is like assembling a machine from different parts, each with its own responsibilities, while FP is like applying a series of mathematical operations to data to achieve a result.
  • They belong to two different paradigms: oo is imperative (your code tells how) while functional is declarative (your code tells what, the compiler figures out the how).
42
Q

Design Phase
Guidelines for screens, reports, user interfaces

A
  1. Visibility of System Status
  2. System Match to the Real World
  3. User Control and Freedom
  4. Consistency and Standards
  5. Error Prevention
  6. Recognition rather than Recall
  7. Flexibility and Efficiency of Use
  8. Aesthetic and Minimalist Design
  9. Help Users Recognize, Diagnose and Recover from Errors
43
Q

Design Phase
Deliverables
System Architecture

A

Software architecture is, simply, the organization of a system. This organization includes all components, how they interact with each other, the environment in which they operate, and the principles used to design the software. In many cases, it can also include the evolution of the software into the future.

44
Q

Design Phase
Deliverables
Design Specification

A

Specifically, the software design specification is a description of the software components and sub-systems to be provided as part of the product.

45
Q

Validation Phase
Need for the Testing Process

A
  • Helps in saving money
  • Security
  • Quality of the product
  • Satisfaction of the customer
  • Enhancing the development process
  • Easy while adding new features
  • Determining the performance of the software
46
Q

Validation Phase
Test Plans

A

a detailed and comprehensive software testing document that outlines the strategy, objectives, schedule, resources, and overall approach that are needed to complete a project.

  • In many ways, a test plan is like a blueprint for a building.
47
Q

Validation Phase
Software Inspection

A

to a peer review of software to identify bugs or defects at the early stages of SDLC.

  • It is a formal review that ensures the documentation produced during a given stage is consistent with previous stages and conforms to preestablished rules and standards.
48
Q

Validation Phase
Software Testing
Unit Inspection/Testing

A

The main goal of unit testing is to ensure that each unit of the software performs as intended and meets requirements. Unit tests help make sure that software is working as expected before it is released.

  • example: a function that adds two integers and returns the sum as the output. A unit test code will look like, If the function returns anything other than 30, then it means the test case fails, and there is some issue with the code.
49
Q

Validation Phase
Software Testing
Acceptance Test

A

software testing that evaluates whether a system meets its business and user requirements. It is the final testing stage before a system is released to production. The main purpose of acceptance testing is to verify that a system: Meets all of its functional and non-functional requirements.

50
Q

Validation Phase
Software Testing
Test Case Design

A

a specific set of steps that will exercise a particular functionality within the software. Each test case should have a clear expected result so that you can determine whether or not the software is functioning as intended.

eg.
1. Check response when valid email and password is entered

  1. Test the Data
  2. Perform actions
51
Q

What is Alpha testing?

A

Small internal group of developers looking for bugs

52
Q

What is Beta testing?

A

Larger group of external testers looking for UI/Functionality Issues

53
Q

What is White Box testing?

A

allows the tester to see and know the code that is being tested which gives them the ability to pinpoint errors to be fixed

  • it is done by developers
54
Q

What is Black Box testing?

A

does not internal the internal workings of a he code. It is normally done by alpha/beta testers to give feedback

55
Q

Functional vs Non-Functional Requirements

A

Functional-
the things or processes that the system should be able to do when completed. eg. Display records

Non-functional-
the constraints that the system may have eg. fast runtime