software engineering lecture 1 vladimir safonov, professor, head of laboratory st. petersburg...

12
Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: [email protected] WWW: http://user.rol.ru/~vsafonov

Upload: francis-heath

Post on 13-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

SoftwareEngineering

Lecture 1

Vladimir Safonov,Professor, head of laboratory

St. Petersburg University

Email: [email protected]

WWW: http://user.rol.ru/~vsafonov

Page 2: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 2

References

1. Sommerville I. Software Engineering. – Sixth Edition, Addison-Wesley, 2001.

2. Brooks , F. P., Jr. The Mythical Man-Month. – 1975 / 2000.3. Myers G. Software Reliability.- 1975.4. Myers G. The Art of Software Testing. – 1974.5. Ziegler C. Programming System Methodologies. – Prentice Hall,

1983.6. Kit, E. Software Testing in the Real World. – Addison-Wesley,

19957. The Capability Maturity Model. – CMU SEI, Addison-Wesley,

19948. Requirements and specifications in software development. –

Moscow.: World Publishers, 1984.9. Data in programming languages. – Moscow.: World Publishers,

1982.10. Mathematical logic in programming. – Moscow.: World Publishers,

1985.

Page 3: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 3

U.S.S.R. / Russian classicists of software engineering

• Andrey P. Ershov – programming methodology; the “lexicon” of programming; “mixed” computations

• E. Tougu (Estonia) – academician of the Estonian Acad. Sci. - authomated program synthesis; PRIZ and NUT systems.

• S. S. Lavrov, corresp. member of Russian Acad. Sci. - automated program synthesis and specifications; the SPORA system.

• A. V. Zamulin (Novosibirsk) – abstract data types; the ATLANT language.

• V.V. Lipayev (Moscow) – the head of a big company majored in large embedded software systems development.

• J. M. Barzdin (Latviya) – inductive program synthesis (by examples).

• A. L. Fouxman (Rostov-on-Don) – automated program synthesis; the technology of vertical cuts (the predecessor of AOP).

Page 4: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 4

Evolution of software and viewpoints to software development

• 1960s – 1970s: “factory of software products” (naïve view on software development)

• Programming as a creative activity• Mathematical methods are not 100% suitable for

program specification and verification• Very few programs are formally specified and

verified

Page 5: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 5

Some state-of-the-art classes of programs

• Client – server systems• Internet applications• Integrated solutions• Embedded systems• Mobile intelligent devices software• Wearable computers software

Page 6: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 6

Specifics of large programming systems of XXI century

• Internet / Intranet awareness• Universal model (UML) and data (XML)

representation• Enhanced security and reliability requirements• Integrating a variety of languages, programming

systems, databases, knowledge bases and networking tools into the unique infrastructure

• Designing and developing reusable programming components

Page 7: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 7

State-of-the-art software development platforms

• Java (Sun Microsystems, 1995) – a software development platform based on the Java object-oriented language, compiled into Java bytecode (proprietary standards of Sun)

• NET (ECMA; Microsoft, 2000) – object-oriented multi-language platform with the common intermediate language (CIL / MS IL) and the common data representation based on XML (international standards by ECMA). C# is the most comfortable language for .NET but not the only one and not mandatory

Page 8: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 8

Qualities and properties of software products

• Workability

• User-friendly interface

• Reliability

• Security

• Reusability and component-based programming

• Modularity

• Efficiency (criteria?!)

• Portability

• Readability and maintainability

Page 9: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 9

Elements of software technologies

• Concepts• Software tools• Software process

Page 10: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 10

Software lifecycle general scheme

• Requirements & goals

• Specification

• Design

• Implementation

• Testing

• Maintenance

• Manufacturing, releases, maintenance (sustaining) – inherent parts of software product

Page 11: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 11

Rapid prototyping

• Requirements and goals

• Prototype specification

• Prototype design

• Prototype implementation

• Prototype testing

• Prototype submittal to the customer

• Iteration-based prototype improvement

Page 12: Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: vsafonov

(C) Vladimir O. Safonov, 2004 12

Home task to lecture 1

Analysis of state-of-the-art approaches to software engineering:• Object-Oriented Programming

• Aspect-Oriented Programming

• Generative Programming

• Meta-programming

• Adaptive Programming

• Design by Contract

• Functional Programming

• Logic Programming