ecse 6770- software engineering - 1 - ho 1 © hy 2012 lecture 1 welcome to ecse-6770 software...

31
ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email: [email protected] Introductio n

Upload: blaze-waters

Post on 29-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 1 -HO 1

© HY 2012

Lecture 1

Welcome to ECSE-6770 Software Engineering

Convenor:

Houman Younessi

Tel: 860-548-7880

Email: [email protected]

Introduction

Page 2: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 2 -HO 1

© HY 2012

Lecture 1

IntroductionAims and Objectives

The major objective of this course is to construct a solid foundation for understanding and application of principles, techniques and technologies utilized in the development of good software systems by individuals or teams. Upon successful completion of the course the student should be able to identify and utilize a wide array of principles and techniques and technologies of software engineering in order to create or alter reasonably sophisticated software systems.

The emphasis is on object-oriented and other modern approaches and ideas in software engineering but not to the detriment and neglect of more traditional frameworks.

Page 3: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 3 -HO 1

© HY 2012

Lecture 1

Software

What is software?

The three views of software:

Source code

Executable

Simulation

System Software

Application Software

The two types of software:

Page 4: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 4 -HO 1

© HY 2012

Lecture 1

The two kinds of software:

Generic or packaged Software

Custom-made software

Open source software

Closed source software

The two forms of software:

Software

Page 5: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 5 -HO 1

© HY 2012

Lecture 1

Software

Irrespective of all this we expect all software products to possess a sufficient level of:

QualityFunctionality

Usability

Portability

SecurityLearnability

Maintainability

ReliabilityEfficiency

Page 6: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 6 -HO 1

© HY 2012

Lecture 1

Software Development

To build software that has a chance of possessing a sufficient level of quality, we must:

Understand the problem situation and its requirements

Propose a number of solutions to the problem and select the most appropriate

Implement that solution

Ensure that the solution as implemented solves our problem adequately

Ensure that the solution continues to solve our problem for the foreseeable future even if the problem somewhat changes.

Page 7: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 7 -HO 1

© HY 2012

Lecture 1

Software Development

These activities in turn are called:

Requirements Analysis and Specification

Design

Implementation

Verification and Validation

Maintenance

These are the basic activities of software development

Page 8: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 8 -HO 1

© HY 2012

Lecture 1

Software Engineering

“The establishment and use of sound engineering principles in order to obtain economically, software that is reliable and works efficiently on real machines” (Naur, 1969)

“The theories, methods and tools which are needed to develop software for computers” (Sommerville, 1995)

More of goal than a definition

Operational, but does not highlight the quantitative and scientific underpinnings required of an “engineering”

discipline.

Page 9: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 9 -HO 1

© HY 2012

Lecture 1

Software Engineering

Software Engineering is our continued effort against the software crisis.

Software Engineering is the collective term applied to attempts to produce high quality, complex and large software on a largely

methodical, and reasonably sustainable basis with an increasingly scientific and quantitative orientation.

Page 10: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 10 -HO 1

© HY 2012

Lecture 1

Software EngineeringTo do so, SE relied and continues to rely on three principle approaches of:

Improving the management of the software process

Establishment of a rigorous foundation for the software process

Utilization of technology to support the software process

This defines the three dimensions of People and context, Methodology, and Technology.

Page 11: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 11 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

If you are on a good thing, stick with it.If you are on a good thing, stick with it.

We define frameworks, if you like methods or approaches, for a lot of what we do. So do we also in SE. We define a software process (sometimes called a methodology or method although these terms are not accurate) as a process of developing a piece of software or a process of getting through a software development project.

Why?

Page 12: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 12 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

What characteristics should these frameworks have:

Understandable

Enactable (instantitable)

Repeatable

Definable (well defined)

Manageable (well managed)

Improvable

Page 13: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 13 -HO 1

© HY 2012

Lecture 1

Software Process FrameworksRequirements

Analysis

System Design

Program Design

Coding

Unit and Integra-tion testing

System Testing

Acceptance Testing

Operation and Maintenance

The Waterfall Model

First presented in 1970 by Royce, it is a simple transformationally based lifecycle model depicting a sequential execution of the principle “stages” of the development process.

Page 14: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 14 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

The V- Model

A variation of the Waterfall model, the process framework can be viewed as several process layers (horizontal) each depicting a level of abstraction, and three process partitions each depicting a major class of process activity:

Production,

Evaluation and

Operation.

Page 15: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 15 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

The V- Model

System Req. Analysis

Software Req. Elicitation

Requirements Analysis

High level Design

Detailed Design

Implementation

Unit Testing

Component Integration Testing

System Testing

Acceptance Testing

Operation and Maintenance

EvaluationCreation Operation

Page 16: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 16 -HO 1

© HY 2012

Lecture 1

Software Process FrameworksThe Spiral Model

First introduced by Boehm (1988), it views the software process as a series of risk management cycles. As we move away from the origin, the level of funds expended increase and as we go through each quadrant, we deal with a specific set of activities. Hopefully, after a sufficient number of cycles, the product will be accepted.

The spiral model is based on the notion of prototyping.

Page 17: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 17 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

The Spiral Model

Page 18: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 18 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

The Fountain Model

Page 19: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 19 -HO 1

© HY 2012

Lecture 1

Software Process FrameworksThe Rational Unified Process (RUP) Model

This model is described as an architecture centric, use-case driven, workflow based model.

Architecture

Centric:Logical View

Implementation View

Process View

Deployment View

Use-Case View

End UserFunctionality

ProgrammersSoftware Management

Analysts/TestersBehavior/Quality

System IntegratorsPerformance

ScalabilitySystem EngineersDelivery/Installation

Page 20: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 20 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

Use-Case Driven

Page 21: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 21 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

Workflow Based:

An example of a workflow depiction: Workflow in Requirements

Page 22: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 22 -HO 1

© HY 2012

Lecture 1

Software Process FrameworksOPEN Model

The Object-oriented Process, Environments, and Notation (OPEN) is a Software Engineering Process Architecture (SEPA) that may be instantiated to yield Software Process Frameworks (such as RUP). OPEN has an architectural basis that is built upon:

Business Strategy

Business Processes

Business Components, and

Technical Infrastructure

Page 23: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 23 -HO 1

© HY 2012

Lecture 1

OPEN Model

Software Process Frameworks

The model is also based on the interrelation between:

Activities

Tasks, and

Techniques

Each one of which might yield (usually does) at least one work-product.

Page 24: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 24 -HO 1

© HY 2012

Lecture 1

OPEN Model

Software Process Frameworks

All activities, tasks and techniques are defined in terms of a precise process definition template.

Activities and tasks on the one hand and tasks and techniques on the other are related with each other using a deontic grid indicating when each elements may be used in relation to another and when not.

Given this infrastructure, the model may be represented flexibly and in terms of contracts.

Page 25: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 25 -HO 1

© HY 2012

Lecture 1

Software Process Frameworks

Initiate Project

Req. Engineering

Analysis and Model Refinement

Plan ProjectConduct Evolutionary Development:

OOA,OOD,OOP,V+V

Build

Review with Users

Evaluate

Plan Implementation

Plan Programme

Plan ResourcesConduct Domain Modeling

Acquire Knowledge from Other Projects

Fix Bugs Use System

Page 26: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 26 -HO 1

© HY 2012

Lecture 1

① Short-term Planning

② Project Conduct

③ Long-Term Logistics

④ Long-Term Planning

⑤ System Utilization

Software Process Frameworks

OPEN Model

Page 27: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 27 -HO 1

© HY 2012

Lecture 1

Enaction or Instantiation

Software Processes

Software Process Frameworks do not model an individual process. They are a template for processes. An individual instance, or enaction of a software process framework is called a Software Process.

We should be able to follow a software process to complete a software development project.

Page 28: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 28 -HO 1

© HY 2012

Lecture 1

A software process must have many characteristics. The most important of which are:

Functionality (appropriateness)

Clarity (of definition)

Usability

Usability and functionality are obvious. For clarity, a software process must possess some qualities.

Software Processes

Page 29: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 29 -HO 1

© HY 2012

Lecture 1

Software ProcessesFirstly a software process (for that matter the framework that yielded it) should reflect all three major concerns of SE:

Methodology

Technology, and

People and context

Additionally, it should provide a model of the process in terms of:

Structure

Transformations, and

Causality

Page 30: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 30 -HO 1

© HY 2012

Lecture 1

References

1. Royce, W.W.; “Managing the development of large software systems:Concepts and techniques”; Proc. WESCON; 1970.

2. Boehm, B.W.; “A spiral model for software development and enhancement”; IEEE Computer; Vol. 25, No. 5; 1988

3. Naur, P.; Randall, B.; Baxton, J.; “Software Engineering:Concepts and Techniques”; Petrocelli-Charter; 1976. (For Naur, 1969)

4. Sommerville, I; “Software Engineering”; 5th ed.; Addison-Wesley; 1995.

5. Graham,I; Henderson Sellers, B and Younessi, H.; “The OPEN Process Specification”; Addison-Wesley; 1997

6. Kruchten, P.; “The Rational Unified Rrocess: An Introduction”; Addison-Wesley, 1998.

7. Henderson-Sellers, B. and Edwards, J.; “BOOKTWO of Object-oriented Knowledge:The working Object”; Prentice-Hall; 1994.

Page 31: ECSE 6770- Software Engineering - 1 - HO 1 © HY 2012 Lecture 1 Welcome to ECSE-6770 Software Engineering Convenor: Houman Younessi Tel: 860-548-7880 Email:

ECSE 6770- Software Engineering

- 31 -HO 1

© HY 2012

Lecture 1

Further Reading

Younessi, H.; “Cooking up quality software”; Object Magazine; October 1997

Pressman, R.; “Software Process Perceptions”; IEEE Software, vol. 13, No 6; 1996.

Wasserman, A.I.; “Towards a discipline of Software Engineering”; IEEE Software, Vol. 13, No. 6; 1996.

Osterweil, L.; “Software Processes are software too”; Proc. ICSE 9; Monterey CA; 1987.