CSci 135 - 01 SE Concepts and Trends - Lecture Notes

studied byStudied by 18 people
4.0(1)
Get a hint
Hint

software

1 / 74

flashcard set

Earn XP

Description and Tags

Preparation for quiz #1 from Module 1

75 Terms

1

software

____ the key driver that enables digital systems in a global scale.

New cards
2

False

True/False: 

Software quality must not undergo validation and verification during the software development life cycle

New cards
3

software engineering addresses more practical problems needed for designing reliable, secure, and high-quality software.

If Computer science spans both theoretical and applied disciplines, what would software engineering be?

New cards
4

Information technology and information systems

__________________ focus on organizational needs and uses for computing from infrastructural and organizational process perspectives, respectively

New cards
5

System Engineering

__________________ is an older discipline focused on more complex computer-based systems that involves hardware, software, policies, users, and its environment which requires expertise across other engineering disciplines.

New cards
6

True

True/False:
The majority of global operations now heavily depend on the interconnected complex computer-based systems to enable the industry, commerce, government, medicine, education, and the society at large to operate optimally

New cards
7

Software

____________ encompasses the data and data structures that enable effective information manipulation, as well as the documentations detailing its design, development, operation, and maintenance. It also includes configuration files needed to set it up and operate successfully.

New cards
8

Software

____________ it is a set of programs that enables computers to perform a specific task

New cards
9

Human computers

Mathematicians and employees who worked in the early theoretical field of computing were called what?

New cards
10

software crisis

This software aging and chronic disease is the gradual decline of software performance and reliability overtime such as memory leaks, crashes, and data corruption due to the accumulation of inefficiencies, bugs, and errors was caused of?

New cards
11

Software crisis

due to the initial lack of skilled engineers and the lack of competence and experience of the involved engineers during the software development process

New cards
12

1968 during a NATO conference

When was the term “Software Engineering” used?

New cards
13

1. Hardware advances outpace software

2. The demand outpaces development

3. The demand for quality and reliability

4. Inadequate resources and poor design

What are the Software-Related problems?

New cards
14

Stakeholders

sets of people having interest or role in software development project including those with the highest control in the overall direction of the project but may not directly contribute to the management of the project and development of the software

New cards
15

Stakeholders

sets of people having interest or role in software development project including those with the highest control in the overall direction of the project but may not directly contribute to the management of the project and development of the software

New cards
16

Project Team

Is an ad hoc team of experts from various organizational units authorized and empowered to lead and manage the software development project

New cards
17

Customers

are a group of people or an enterprise organization that buys or subscribes to access or use a software from a vendor, representing the target market

New cards
18

Clients

are businesses or organization that through a representative, who acts as a bridge between a software contractor, can legally control the software requirements.

New cards
19

End-users

set of people that directly interacts with a software bought by an enterprise customer or commission by a client

New cards
20

Software product involves one-time purchase or a perpetual license while software service is a software product delivered through the internet and the access is contingent on a subscription model

What is the difference between software product and software service?

New cards
21

Software Vendor

Sells a software product to a customer.

New cards
22

Generic Software

Software vendors develop and sell this type of application or system to a certain market segment, which could be an enterprise customer or direct end-users. The long term monetization of this type is heavily based on wide-scale adoption or through in-app purchases.

New cards
23

Customized or bespoke software

Specific clients commission a software contractor to develop this type of application or system for a particular purpose.

New cards
24

Quality, Safety, and Security

What are the unwritten etiquette or rules in the software industry?

New cards
25

Quality

This etiquette means meeting or exceeding the client’s expectations.

New cards
26

Safety

This etiquette means not increasing the risks of injury or fatality with the use of a device

New cards
27

Security

This etiquette means that the software should not function as a means for malicious or criminal intents and leakage of personal information that can directly or indirectly damage or lead to damage to the users.

New cards
28

System Software

serves as the manager of a computer system and enables the execution of other applications, typically built for general-purpose computers and microprocessors.

New cards
29

Embedded software

also known as firmware, is responsible for initializing and controlling specific hardware components. It also acts as a interaction layer between hardware and the higher-level software.

New cards
30

Application Software

refers to a wide range of software used for specific tasks such as entertainment or productivity. This software comes as a GUI-based app, a website, or a command-line tool, designed for a specific type of end-user.

New cards
31

Business Software

 a sub-type of applications designed to assist with daily operations in business organizations, including management, human resources, accounting, inventory, sales, and customer relationship management

New cards
32

Scientific Software

specialized application developed for researchers such as in the fields of engineering, physics, chemistry, and biology, to be able to perform complex calculations, simulations, predictions, or data analysis with high accuracy and precision.

New cards
33

Artificial Intelligence

a complex and hybrid system that employs machine learning and other deep learning that aims to mimic or even outperform human intelligence and efficiency for various tasks.

New cards
34

Software development

refers to the entire process from the initial ideation to the maintenance of a software. It involves skills on specific programming languages, libraries, frameworks, and tools depending on the specific project requirements.

New cards
35

 it is the “application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”

What is software engineering according to IEEE (1990)?

New cards
36

Sound Engineering principles

It means that we will also borrow and apply knowledge found on related fields such as Project Management which we will cover in-depth later on.

New cards
37

Economical Software

Businesses operate for profits, which means software contractors and vendors apply “sound engineering principles” to increase profitability while also satisfying the needs of their client.

New cards
38

Efficiently works on real machines

This includes security, performance, stress, and reliability testing to ensure it works as intended when subjected to extreme stress or usage.

New cards
39

software development with carpentry, then software engineering is the same as civil engineering. In software engineering, we build high-quality projects that satisfy clients, strongly withstand risks, and drive long-term sustainability as a software contractor or vendor.

Compare software engineering to software development

New cards
40

Tools, Methods, Process, A quality focus

What are the software engineering layers?

New cards
41

Computer science

Spans both theoretical and applied disciplines,

New cards
42

Software engineering

Addresses on practical problems needed for designing reliable, secure, and high-quality software

New cards
43

Information Technology

Focus on organizational needs

New cards
44

Information System

Uses for computing for infrastructural and organizational process perspectives

New cards
45
  1. Customer Requirements

  2. Requirements Model(Prototype)

  3. Design

  4. Language Form

  5. Machine Executable Code

What are the Five software components?

New cards
46
  1. Public - act consistently with public interest

  2. Client and Employer - act in a manner that is in the best interests of their client and employer

  3. Product - Ensure that their products and related modifications meet the highest professional standards possible

  4. Judgment - maintain integrity and independence

  5. Management - Managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance

  6. Profession - shall advance the integrity and reputation

  7. Colleagues - Shall be fair to and supportive of their colleagues

  8. Self - shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of profession.

What are the 8 principles under the Software Engineering Code of EThics and Professional Practice?

New cards
47

Agile Methodology

Is a methodology where the output of each iteration is already shippable product. This paradigm is under iterative-incremental development.

New cards
48

Scrum

Aims for timeboxing, communication and transparency. A method in a form of agile designed for project management in mind

New cards
49

Extreme Programming

Agile-based methodology focused on Test-Driven Development, Daily Builds, and Continuous Integration used together with scrum.

New cards
50

Lean Methodology

Production methodology used by Toyota and used together with Scrum

New cards
51

Structural Methodology

A methodology that focuses on business activities following traditional principles of abstraction, structurization, stepwise refinement, and modularization.

New cards
52

Information Engineering methodology

It is a methodology where it is data-focused and with strong understanding in business systems and information technology. Emphasis on data and data structures

New cards
53

Object-oriented methodology

A methodology where it focuses on the identification of objects, classes, and its relationships through a design model. Its deliverables include conceptual and UML diagrams.

New cards
54

V model

It is a model that emphasizes on verification and validation, it ensures that the product meets requirements and functions correctly.

New cards
55

Evolutionary model

This model introduces improved or added features through modified requirements, it is similar to an iterative model but with each iteration is a complete software product.

New cards
56

Iterative/Incremental model

This model focuses on an initial implementation and adding a broader feature set and complexity on each iteration until the final system is completed.

New cards
57

Spiral model

This model is a combination of sequential and prototype models followed in a more defined manner, …, and repetition or the whole process until the client is satisfied

New cards
58

Waterfall model

A classic lifecycle model where software development is done sequentially. This simplicity makes it applicable to small projects conducted by those outside the computing discipline

New cards
59

Prototype model

This model is a trial-and-error approach between the developer and the client, it is useful when the requirements are not yet known in detail. It is an iterative rebuilding until the client expresses satisfaction

New cards
60

To help software engineers to obtain highly-quality software

What is the main objective of the software engineering layers?

New cards
61

A quality focus, Process, Methods, Tools

What are the software engineering layers from most-to-least importance?

New cards
62

False. “Quality in Mind”

True/False:
Deliver software development projects with “safety in mind” and a product that satisfies the need of its customers

New cards
63

False

True/False:
Hardware is the key driver that enables digital systems in a global scale.

New cards
64

True

True/False:
Software quality must undergo validation and verification during the software development life cycle.

New cards
65

True

True/False:
In the 1940s, the hardware defined the software, primarily focused on scientific, military, and defense endeavors to manage supply chains, etc.

New cards
66

True

True/False

In pre-1960s, punch cards and paper tapes as I/O was developed, where computers perform batch operation and processing only.

New cards
67

False

True/False:
In pre-1960s, during the early days of computing, software engineering is already a thing!

New cards
68

low-code and AI-driven

Modern software development trends had seen _____ and _____ applications with shared-source and customizable licenses.

New cards
69

1940s - hardware defined software, used mainly for wars and logistics operations.
Pre-1960s - used punch cards as I/O which required deep knowledge and understanding of machine language. Here, computer performs batch operation and processing only.
1960s - Wide adoption of mainframe computers. Early iterations of computer are expensive and bulky. Software crisis is prevalent because of experts working without formal training
1968 - Software engineering term was first used during NATO conference
1970s - commercialization of early microprocessors led to a boom of small and affordable computers used in business
1972 onwards - the progress in the field began to help solve the software crisis by formalizing practices and developing standards
1980s - personal computers with MS-DOS and early GUIs gained
1990s - Software architecture shifted towards client-server model
2000s - internet became the major platform for software delivery and end-user access
2010s - rise of modern smartphones and tablets.
2020s - major industry players invested in cloud computing infrastructure leading to cloud-native and serverless applications

Plot the timeline of the history of software

New cards
70

Institute of Electrical and Electronics Engineers

What is IEEE?

New cards
71

IEEE or Institute of Electrical and Electronics Engineers

is a global, professional, technical organization dedicated to progressing the technology

New cards
72

ACM/IEEE-CS

Developed a more specific software engineering code of ethics and professional practice

New cards
73

Association for Computing Machinery

What does ACM stand for?

New cards
74

Managerial and soft skills

What are some of the future demands of the industry?

New cards
75

True

True/False:
the applications development contributed up to 28% to the overall software revenue in 2016.

New cards

Explore top notes

note Note
studied byStudied by 29 people
... ago
5.0(1)
note Note
studied byStudied by 26 people
... ago
5.0(1)
note Note
studied byStudied by 11 people
... ago
5.0(1)
note Note
studied byStudied by 9 people
... ago
5.0(1)
note Note
studied byStudied by 37 people
... ago
5.0(1)
note Note
studied byStudied by 32 people
... ago
5.0(1)
note Note
studied byStudied by 3 people
... ago
5.0(1)
note Note
studied byStudied by 22 people
... ago
5.0(1)

Explore top flashcards

flashcards Flashcard (35)
studied byStudied by 2 people
... ago
5.0(1)
flashcards Flashcard (27)
studied byStudied by 130 people
... ago
4.0(2)
flashcards Flashcard (75)
studied byStudied by 7 people
... ago
5.0(1)
flashcards Flashcard (42)
studied byStudied by 42 people
... ago
5.0(1)
flashcards Flashcard (86)
studied byStudied by 404 people
... ago
5.0(6)
flashcards Flashcard (36)
studied byStudied by 5 people
... ago
5.0(1)
flashcards Flashcard (56)
studied byStudied by 1 person
... ago
5.0(1)
flashcards Flashcard (46)
studied byStudied by 5 people
... ago
5.0(1)
robot