0% found this document useful (0 votes)
5 views4 pages

Chapter 1

The document provides an overview of software, its types, and the field of software engineering, distinguishing it from computer and system engineering. It discusses the software development process, costs, project types, stakeholders, quality attributes, and common activities in software projects. Additionally, it highlights the role of CASE tools in software development and outlines challenges and risks faced in the industry.

Uploaded by

killerkhalo0od
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views4 pages

Chapter 1

The document provides an overview of software, its types, and the field of software engineering, distinguishing it from computer and system engineering. It discusses the software development process, costs, project types, stakeholders, quality attributes, and common activities in software projects. Additionally, it highlights the role of CASE tools in software development and outlines challenges and risks faced in the industry.

Uploaded by

killerkhalo0od
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Chapter 1

1- What is software?
Computer programs and associated documentation.

2- List and describe the different types of software.


 Custom
 For a specific customer
 Generic
 Sold on open market.
 Often called:
 COTS (Commercial Off the Shelf)
 Shrink-wrapped
 Open source
 Embedded
 Built into hardware.
 Hard to change.
 Real time software
 E.g., control and monitoring systems
 Must react immediately.
 Safety often a concern
 Data processing software
 Used to run businesses.
 Accuracy and security of data are key.

Custom Generic Embedded


Number of copies in use low medium high

Worldwide annual high medium low


development effort

3- What is software engineering?


Software engineering is an engineering discipline which is concerned with all aspects of software
production.

4- What is the difference between computer science and software engineering?


Computer science is concerned with theory and fundamentals, while software engineering is
concerned with the practicalities of developing and delivering useful software.
5- What is the difference between software engineering and system engineering?
• System engineering is concerned with all aspects of computer-based systems development
including hardware, software and process engineering. Software engineering is part of this
process.
• System engineers are involved in system specification, architectural design, integration and
deployment.

6- Discuss about the nature of software.


• Software is intangible.
• Software is easy to reproduce.
• The industry is labor-intensive.
• Software is easy to modify.
• Software deteriorates by having its design changed.
7- What is software process?
A set of activities whose goal is the development or evolution of software.

8- What are the generic activities in a software process?

Specification - what the system should do and its development constraints.

Development - production of the software system

Validation - checking that the software is what the customer wants.

Evolution - changing the software in response to changing demands.

9- What are the costs of software engineering?


• Roughly 60% of costs are development costs, 40% are testing costs. For custom software,
evolution costs often exceed development costs.
• Costs vary depending on the type of system being developed and the requirements of
system attributes such as performance and system reliability.
• Distribution of costs depends on the development model that is used.
10- What are the different types of software engineering projects?

Corrective projects: fixing defects

Adaptive projects: changing the system in response to changes in

 Operating system

 Database

 Rules and regulations

Enhancement projects: adding new features for users.

Reengineering or perfective projects: changing the system internally so it is more maintainable.


11- Who are the stakeholders in a software engineering project?
• Users: Those who use the software
• Customers: Those who pay for the software
• Software developers
• Development Managers
12- What are the main quality attributes of the system to be developed?

• Usability: Users can learn it fast and get their job done easily

• Efficiency: It doesn’t waste resources such as CPU time and memory

• Reliability: It does what it is required to do without failing

• Maintainability: It can be easily changed

• Reusability: Its parts can be used in other projects, so reprogramming is not needed

13- Who are the stakeholders of this project?

14- What are internal quality criteria?

 Characterize aspects of the design of the software.

 Have an effect on the external quality attributes.

 E.g.

 The amount of commenting of the code

 The complexity of the code


15- What are the short-term and long-term qualities?

 Short term:

 Does the software meet the customer’s immediate needs?

 Is it sufficiently efficient for the volume of data we have today?

 Long term:

 Maintainability

 Customer’s future needs

16- What activities are common to software projects?

• Requirements and specification

• Design

• Modeling

• Programming

• Quality assurance

• Deployment

• Managing the process

17- What is case?


• CASE stands for Computer Aided Software Engineering.
• It is the use of computer-based support in the software development process.
• Wide range of programs used to support software process activities: requirement analysis,
modeling, debugging, and testing.
18- List some examples of CASE.

 JDeveloper (from Oracle)

 Visual Studio .NET Enterprise Architect (from Microsoft)

 iUML (from Abstract solutions)

19- List some difficulties and risks in software engineering.


• Complexity and large numbers of details
• Uncertainty about requirements
• Constant change
• Uncertainty about technology
• Uncertainty about software engineering skills

You might also like