Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Computer Science Dept. Third Class: Lecture 1,2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Computer Science Dept.

Third Class

Lecture 1,2

Lecturer Dr.Eng.Zaidoon.T.AL-Qaissi
Software Engineering Dr.Eng.Zaidoon.T. Al-Qaissi

Programs: A program is a subset of software and it becomes software only if documentation and
operating procedure manuals are prepared. A program is a combination of source code and object
code.

Figure 1: Program = Source Code + Object Code

Software Products: A software product consists not only of the program code but also of all the
associated documents, such as the requirements specification documents, the design documents,
the test documents, and the operating procedures which include user manuals and operational
manuals.

Figure 2: Software = Program + Documentation + Operating Procedures

1 Lecture – 1,2
Software Engineering Dr.Eng.Zaidoon.T. Al-Qaissi

Definition of software given by the IEEE: Software is the collection of computer programs,
procedure rules and associated documentation and data.

Software is classified into the following two classes:


1. Generic Software: Generic software is designed for a broad customer market whose requirements
are very common, fairly stable, and well-understood by the software engineer.

2. Customized Software: Customized products are those that are developed for a customer where
domain, environment, and requirements are unique to that customer and cannot be satisfied by
generic products.

Computer software is often divided into two categories:

1. System software: This software includes the operating system and all utilities that enable the
computer to function.

2. Application software: These consist of programs that do real work for users. For example, word
processors, spreadsheets, and database management systems fall under the category of
applications software.

Software applications are grouped into eight areas for convenience as shown in Figure 3:

Figure 3: Software Applications

2 Lecture – 1,2
Software Engineering Dr.Eng.Zaidoon.T. Al-Qaissi

1. Real-time Software: Real-time software deals with a changing environment. First, it collects the
input and converts it from analog to a digital, control component that responds to the external
environment and performs the action. The software is used to monitor, control, and analyze real-
world events as they occur. Examples include Rocket launching, games, etc.

2. System Software: System software is a collection of programs used to run the system as an
assistance to other software programs. The compliers, editors, utilities, operating system
components, drivers, and interfaces are examples of system software.

3. Embedded Software: Software, when written to perform certain functions under control
conditions and is further embedded into hardware as a part of large systems, is called embedded
software. The software resides in the Read-Only-Memory (ROM) and is used to control the various
functions of the resident products. The products could be a car, washing machine, microwave
oven, industrial processing products, gas stations, satellites, and a host of other products, where
the need is to acquire input, analyze, identify status, and decide and take action that allows the
product to perform in a predetermined manner. Because of its role and performance, it is also
called intelligent software.

4. Business Software: Software designed to process business applications is called business


software. Business software can be a data- and information processing application. It can drive the
business process through transaction processing in on-line or in real-time mode. This software is
used for specific operations, such as accounting packages, management information systems,
payroll packages, and inventory management.

5. Personal Computer Software: Word processing, spreadsheets, computer graphics, multimedia,


entertainment, database management, personal and business financial applications, external
networks, or database access are only a few of hundreds of applications.

3 Lecture – 1,2
Software Engineering Dr.Eng.Zaidoon.T. Al-Qaissi

6. Artificial-intelligence Software: Artificial-intelligence software uses nonnumerical algorithms,


which use the data and information generated in the system to solve complex problems. These
problem scenarios are not generally amenable to problem-solving procedures, and require specific
analysis and interpretation of the problem to solve it. Applications within this area include
robotics, expert systems, pattern recognition (image and voice), artificial neural networks, theorem
proving and game playing, and signal-processing software.
‫ التي تستخدم البيانات واملعلومات املتولدة في النظام لحل املشاكل‬،‫ يستخدم برنامج الذكاء االصطناعي خوارزميات غير رقمية‬:‫برنامج الذكاء االصطناعي‬
.‫املعقدة‬

Figure 4: Application Areas of Artificial Intelligence

7. Web-based Software: Web-based software includes the languages by which web pages are
processed, i.e., HTML, Java, CGI, Perl, DHTML, etc.

8. Engineering and Scientific Software. The design and engineering of scientific software deals
with processing requirements in their specific fields. They are written for specific applications
using the principles and formulae of each field. These software applications service the need for
drawing, drafting, modeling, lead calculations, specifications-building, and so on. Dedicated
software is available for stress analysis or for analysis of engineering data, statistical data for
interpretation, and decision-making. CAD/CAM/CAE packages, SPSS, MATLAB, and circuit
analyzers are typical examples of such software.

4 Lecture – 1,2
Software Engineering Dr.Eng.Zaidoon.T. Al-Qaissi

Software Engineering: is an engineering branch associated with development of software


product using well-defined scientific principles, methods and procedures. The outcome of
software engineering is an efficient and reliable software product.

IEEE defines software engineering as: The application of a systematic, disciplined,


quantifiable approach to the development, operation and maintenance of software; that is, the
application of engineering to software.

What is the difference between software engineering and computer science?


Computer science focuses on theory and fundamentals; software engineering is concerned with
the practicalities of developing and delivering useful software.
‫تركز علوم الكمبيوتر على النظرية واألساسيات؛ وتهتم هندسة البرمجيات الجوانب العملية لتطوير‬
.‫وتقديم برامج مفيدة‬

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 more
general process.

What is a Software Process?


A software process is the related set of activities and processes that are involved in developing
and evolving a software system.

:‫األنشطة األساسية لهندسة البرمجيات‬


Fundamental Software Engineering Activities:

‫مواصفات البرنامج‬
1. Software specification: where customers and engineers define the software that is to be
produced and the constraints on its operation.

‫تطوير البرمجيات‬
2. Software development: where the software is designed, and programmed.

:‫التحقق من صحة البرنامج‬


3. Software validation: where the software is checked to ensure that it is what the customer
‫حيث يتم التحقق من البرنامج للتأكد من أنه يفعل ما يطلبه العميل‬
requires.

:‫تطور البرمجيات‬
4. Software evolution: where the software is modified to reflect changing customer and market
requirements.

5 Lecture – 1,2
Software Engineering Dr.Eng.Zaidoon.T. Al-Qaissi

Software Product Characteristics:

1. Maintainability: Software should be written in such a way so that it can evolve to meet the
changing needs of customers. This is a critical attribute because software change is an
inevitable requirement of a changing business environment.

2. Dependability and security: Software dependability includes a range of characteristics


including reliability, security, and safety. Dependable software should not cause physical or
economic damage in the event of system failure. Malicious users should not be able to access
or damage the system.

3. Efficiency: Software should not make wasteful use of system resources such as memory and
processor cycles. Efficiency therefore includes responsiveness, processing time, memory
utilization, etc.

4. Acceptability: Software must be acceptable to the type of users for which it is designed. This
means that it must be understandable, usable, and compatible with other systems that they use.

Software Crisis: The software crisis has been with us since the 1970s. As per the latest IBM
report, “31% of the projects get cancelled before they are completed, 53% over-run their cost-
estimates by an average of 189% and for every 100 projects, there are 94 restarts. “During software
‫لالطالع‬
development, then, many problems are raised and that set of problems is known as the software
crisis. When software is being developed, problems are encountered associated with the
development steps.

Software Crisis from the Programmer’s Point-of-View

- Problem of compatibility.
- Problem of portability.
- Problem in documentation.
- Problem of piracy of software.
- Problem in coordination of work of different people.
- Problem of proper maintenance.

6 Lecture – 1,2

You might also like