Ch.1:Introductions Flashcards

1
Q

What is software?

A

Software is a set of instruction used to acquire inputs and to manipulate them to produce the desired output in terms of functions and performance as determined by the user of the software.

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

What is a software crisis? What causes software crises?

A

Software that is Over budget, Late, Full of bugs, Does not meet the requirement.

From Programmers:
▶ Compatibility
▶ Portability
▶ Documentation
▶ Maintenance

From user side:
▶ Right software from the market
▶ Compatibility with hardware
▶ Viruses
▶ OS specific software

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

What are the types of Software? Define each type

A

System software:
- Operating systems
▶ DOS, Win, Linux, MacOS
▶ Assemblers
- Debuggers
▶ GDB, DDD
- File systems
▶ ext, ext2, ext3
▶ nfs, NTFS, jfs (IBM)
- Utilities
▶ Printing, Disk operations
▶ User management

Application software:
- Games
▶ Warcraft, ….
- Databases
- Word/Spreadsheet processors
▶ Ms Word, Excel, ….Notepad+
- Image processors
▶ Paint, Photo Viewer
▶ GIMP, Photoshop
▶-Web surfing/communication
▶ Chrome, IE, Mozilla
▶ Skype, Viber, WhatsApp

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

What are the classes of software? Define each class

A

Generic software:
▶ Broad audience
▶ Common requirements
▶ Fairly stable
▶ Sold on the open market

Customized software:
▶ Smaller audience
▶ Specific requirements
▶ Subject to change
▶ Sold to specific customers

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

What are the application domains for software?

A

Categories:
▶ System software
▶ Application software
▶ Engineering/scientific software
▶ Embedded software
▶ Product-line software
▶ Web/Mobile applications
▶ Artificial intelligence software

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

Describe the nature of software design

A

In today’s context, software serves a dual purpose as both a product and a means to deliver other products. Functioning as a product, software leverages computing potential, whether within devices, networks, or machines, to manage, transmit, and display information of varying complexities. As a delivery vehicle, software controls computers, facilitates communication, and enables program creation. Its pivotal role in delivering information, enhancing competitiveness through data management, and enabling access to global networks underscores its significance. However, the evolution of the software industry over the past 60 years, marked by advancements in hardware and complex computing systems, has led to both remarkable achievements and challenges in development, security, and maintenance. Despite the transition from individual programmers to specialized teams, enduring concerns persist about the timely completion of software, high development costs, error detection, program maintenance, and progress measurement, underscoring the ongoing significance of software engineering practices.

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

What is the differences between application domains:

A

System software: Programs servicing other programs, processing complex determinate structures (like compilers, editors) or indeterminate data (like operating system components, networking software).

Application software: Stand-alone programs addressing specific business needs, facilitating business operations or technical decision making.

Engineering/scientific software: Diverse “number-crunching” programs from astronomy to consumer spending habits, aiding various fields like automotive stress analysis and genetic analysis.

Embedded software: Residing within a product/system, controlling features for end-users or the system itself, varying from limited functions (like microwave keypad control) to significant control capabilities (like automotive digital functions).

Product-line software: Comprising reusable components for specific capabilities, catering to diverse customer bases, ranging from focused markets (like inventory control) to the mass consumer market.

Web/mobile applications: Network-centric software including browser-based apps, cloud computing, and mobile device software.

Artificial intelligence software: Utilizing heuristics for complex problem-solving, encompassing robotics, decision-making systems, pattern recognition (image and voice), machine learning, theorem proving, and game playing.

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

What is the main goal of software engineering?

A

To avoid software crisis, or building software that is Economical, On time, High quality, Meeting needs

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