Top Banner
Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction
37

Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Mar 29, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Advanced Software Engineeringby Prof. Dr Jan Pajak

Topic ASE-1

Introduction

Page 2: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Syllabus

• This course deals with various software engineering areas such as object-oriented SE, system engineering-based SE, component-based SE, architecture-based SE, etc. The analysis covers various issues such as conceptual, methodological, technological, institutional and social issues. Attending students will be able to elevate their capability for trend estimation and total life-cycle engineering in SE field.

Page 3: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Electronic copy of these notes

• pajak.6te.net then click ASE, or

• pajak.6te.net/ase_1_2007.htm

• or

• pajak.fateback.com then click ASE, or

• pajak.fateback.com/ase_1_2007.htm

Page 4: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

. Disadvantages of ASE course in English

• Double difficulty (English + ASE)

• Communication problems (I do not speak your language, you are just learning my language)

Page 5: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Advantages of ASE course in English

• You are to polish your English skills .• You learn English computer terminology.• You learn to use English textbooks.• You get the key to the most up-to-date

knowledge.• You learn to interact with professionals in

your discipline from throughout the world.

Page 6: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#1. Definition of SE (Bauer 1969):

• Software engineering is defined as “the establishment and use of sound engineering principles in order to obtain, economically, software that is reliable and works on real machines

Page 7: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#2. SE versus hardware engineering:

• Software does not:• - wear out,• - have „spare parts”, • - include cost of materials,• - have already existing components

which can be assembled together like in machines.

Page 8: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#3. SE versus ‘amateur programming’:

• Meeting basic requirements (userfriendliness, foolproofing, etc),

• Following principles and techniques (lifecycle, philosophies, approaches),

• Focus of attention on design instead of debugging,

• Good documentation and user interface,• Re-use of algorithms, modules and objects.

Page 9: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#4. SE philosophies and principles:

• PP (Procedural Programming):

• - Spaghetti programming,

• - Data Independence,

• - Modular Programming,

• - Top-down design,

• - Structured Programming.

• OOP (Object-Oriented Programming).

Page 10: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

PP (Procedural Programming) stage of software engineering

• This stage was dominant since times of first computers, until around 2000, with a changeover period slowly starting around 1995. Practically even now many simple tasks is done with the use of PP. Procedural Programming is an approach to programming, or a philosophy of programming, in which programs are formulated as series of procedures which tell the computer what and how should be done.

Page 11: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Spaghetti programming stage

• It was started by the “Bohm and Jacopini Theorem” (1966), which identified sequence, selection, and repetition as a necessary parts of computer programs. The consequence was initially the GO TO statement, and thus also “spaghetti programs”.

Page 12: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Data Independence idea

• Data independence is an approach to programming in which the programs' operation is defined independently from data content. This allows for logical (i.e. defining what) and physical (i.e. defining how) changes in data without altering the applications software that manipulates this data.

Page 13: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Modular Programming concept

• (The formation of re-usable modules and libraries of modules – early 1960s.) This is the approach to programming in which the entire problem is divided into a set of routines each, one of which is to be carried out by an independent module of the original program.

Page 14: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Top-down design

• The principle of top‑down design states that the program's planning activities should be carried out in the direction "from general to specific". In the first stage of planning the "strategy" or the "operational principle" of the program is designed and expressed as a set of control statements contained in the MASTER module. These control statements divide the processing task into a set of steps, each one of which is carried out by a separate "sub‑module". In the second stage of planning the purpose of each sub‑module is worked out and designed as a set of subordinate routines which, in the next stages, can be nested further into a suitable number of levels.

Page 15: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Structured Programming

• Prof Edsgar W. Dijkstra (1976). Structured Programming is a philosophy of writing programs according to a set of rigid rules in order to improve program clarity, simplify debugging, and increase programmer productivity. Sometimes people describe it as “Go-TO free programming” and “one entry one exit programming”.

Page 16: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

OOP (Object-Oriented Programming) stage of software

engineering • Object-orientation is a new approach to

programming, or a new class of philosophies of programming, in which all applications (i.e. processing programs, databases) are organised from smaller components called “objects”, each one of which is containing both the data, and the processing operations, necessary to perform a task. Object oriented approach was invented in order to make programming computers as similar as possible to manufacturing physical goods. Although the basic idea of object orientation is not new, the actual implementation of this idea is rather a fairly recent development in computing, as all the major work on it was done in 1990s.

Page 17: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#4/2. Definition of an “object” by Grady Booch (1986):

• An object is a software entity that have state, behaviour, and identity.

Page 18: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Facts about OO:A new “object-oriented approach” is an alternative (and a competition) to the old “procedural approach”. In the procedural approach programs and databases were created around the process they performed or function they were to fulfil (e.g. previously we had a “sort” program which was created around a specific sorting procedure, now we have a “sort” object which does sorting). To the procedural approach are classified three major philosophies of programming developed so far, namely: top-down design, modular programming, and structured programming (although the OO approach takes some elements from them, e.g. the concept of modules).

Object-oriented approach is just another model of reality, applicable for making computer programs, which assumes that the reality can be expressed with the use of a model, which is composed of “objects”.

Page 19: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#5. Fundamental concepts of SE:

• Object-oriented SE,

• System engineering-based SE,

• Component-based SE,

• Architecture-based SE.

Page 20: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Object-oriented SE

• It depicts the engineering of software which is composed of “objects” and the preparation of which follows the object-oriented methodology.

Page 21: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

System engineering-based SE

• It is a variation of software engineering which instead of concentrating solely on software, focuses on a variety of elements, analysing, designing, and organising those elements into a system that can be a product, a service, or a technology for the transformation of information or control. (See [3b] page 122.)

Page 22: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Component-based SE

• It is a variation of software engineering which focuses on components of software being developed, such as modules in modular programming or objects in object programming. It is concerned with developing standardised components based on a component model and comprising these into application system ([2b] p. 439).

• A component is a software element that conforms to a component model and can be independently deployed and composed without modification according to a composition standard. ([2b] p. 442).

• A component model is a definition of standards for component implementation, documentation, and deployment. ([2b] p. 445.)

Page 23: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Architecture-based SE

• It is a variation of software engineering which is strongly focused on the architecture of hardware which a given software services, because it is either prepared in architecture-depended languages, such as Assembly, or is to service specific kind of hardware. Examples: embedded software engineering, or engineering of software for control microprocessors.

Page 24: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#5/2. Issues of SE:

• Conceptual issues,

• Methodological issues,

• Technological issues,

• Institutional issues,

• Social issues.

Page 25: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Conceptual issues

• These are subjects for discussion or concern which relate to main ides of software engineering or software being engineered.

Page 26: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Methodological issues

• These are subjects for discussion or concern which relate to procedure or way of doing something in SE.

Page 27: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Technological issues

• These are subjects for discussion or concern which relate to ways things work.

Page 28: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Institutional issues

• These are subjects for discussion or concern which relate to institutions that produce or use given software.

Page 29: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Social issues

• These are subjects for discussion or concern which are concerned with people’s welfare (e.g. RSI, “cyber dependency”, computer viruses, code of ethics). E.g., in the article “Cyber dependency has far-reaching effects” from p. A11, “The New Zealand Herald”, issue dated on Monday, February 26, 2007, they stated, quote: “… include lethargy, an inability to concentrate, and rudeness. … The effect on one’s IQ is significantly more harmful than taking cannabis.”

Page 30: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

Software engineering life-cycle:

• “Lifecycle is the name assigned to sequence of stages through which each software project evolves from the moment when it is conceived to the time when it is withdrawn from further use”.

• Lifecycle is going to be the topic for our lecture presentation No 2.

Page 31: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#6. Test questions:• (Q1) Which one amongst the following definitions CANNOT be

used as a definition of the discipline of software engineering:• 1. The establishment and use of sound engineering

principles in order to obtain, economically, software that is reliable and works on real machines.

• 2. The formation of software entities that have state, behaviour, and identity.

• 3. The building of software systems by teams rather than by individual programmers, through the use of engineering principles in the development of these systems, and make up of both technical and non-technical aspects.

• 4. The establishment and use of sound engineering principles and good management practice, and the evolution of applicable tools and methods and their use as appropriate, in order to obtain – within known and adequate resource provisions - software that is of high quality in an explicitly defined sense. (Extended Bauer [1] p. 3)

Page 32: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#6. Test questions:

• (Q2) Which factor amongst listed below is the main reason behind the statement that “software does not ‘wear out’ but it deteriorates’:

• 1. Software is locked inside of memory and not exposed to elements.

• 2. Software is not creating friction during the operation.

• 3. Software runs on PCs which use electric impulses for information processing.

• 4. Software is an expression of algorithms which not made up of any specific materials that could be subjected to wear and tear.

Page 33: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#6. Test questions:

• (Q3) The presence of which combination of distinct features can be characteristic of programmes prepared with “amateur programming” but should not be typical for professionally made programs of software engineers:

• 1. Displaying user friendliness and foolproofing.

• 2. Requesting from the user to input current date.

• 3. Having default data.• 4. Code includes modules and/or objects.

Page 34: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#6. Test questions:

• (Q4-PP) The presence of which distinct feature is NOT characteristic for procedural programming (PP):

• 1. Object.

• 2. Selection.

• 3. Top-down design.

• 4. Module.

Page 35: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#6. Test questions:

• (Q4-OO) The presence of which characteristic is NOT unique just to object-oriented programming (OOP):

• 1. Polymorphism.

• 2. Inheritance.

• 3. Repetition.

• 4. Object.

Page 36: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#6. Test questions:

• (Q5-Architectural) Engineering of which software is not representing an “architecture-based SE”:

• 1. Embedded software.• 2. Application software.• 3. Control programs for automation

systems.• 4. Control programs for numerically

controlled machine tools and robots.

Page 37: Advanced Software Engineering by Prof. Dr Jan Pajak Topic ASE-1 Introduction.

#6. Test questions:

• (Q5-Social) Which one amongst following is not a social issue of SE:

• 1. RSI.

• 2. Ethics of programmers.

• 3. Computer viruses.

• 4. Generation of microprocessors which our PC uses.