© devon m.simmonds, 2007 csc 550 graduate course in software engineering ______________________...

25
© Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University of North Carolina Wilmington _____________________________________________________________

Upload: hudson-corell

Post on 15-Dec-2015

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

© Devon M.Simmonds, 2007

CSC 550Graduate Course

in Software Engineering

______________________Devon M. Simmonds

Computer Science Department

University of North Carolina Wilmington_____________________________________________________________

Page 2: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

22

COURSE INTRODUCTIONOutline

Getting to know you Motivation for Graduate software

engineering course Course overview

Page 3: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

33

Getting to Know You

The Man without a Face, oil on panel, 11x14, 2005 – Dae-Woong Nam

Name Background

Where from Previous school Research interests Development

experience

Project status

Page 4: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

4© Devon M.Simmonds, 2007

Computer science/Information Systems - solving problems with the aid of a computer

Artificial intelligence Database management systems Distributed systems Computer graphics Operating systems Software engineering

Motivation

Page 5: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

5© Devon M.Simmonds, 2007

What is Software Engineering (SE)?

Software Engineering is concerned with development of complex systems that are built by teams of developers. SE techniques are not intended for small

problems (e.g., writing a program for sorting a list of numbers).

On the other hand, SE builds upon programming techniques; a good software engineer must also be a good programmer.

SE research focuses on developing mechanisms and methods that help developers manage system complexity.

Page 6: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

6© Devon M.Simmonds, 2007

A Definition of SE

The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

Bauer/Pressman

Page 7: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

7© Devon M.Simmonds, 2007

The Software Lifecycle

The process/activities of developing and evolving software

Systems Engineering

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Page 8: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

8© Devon M.Simmonds, 2007

The Software Lifecycle

Systems Engineering Identify needs/problems Allocation of roles

Hardware Procedures Software

Feasibility studies

Systems Engineering

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Page 9: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

9© Devon M.Simmonds, 2007

The Software Lifecycle

Requirements Analysis Define goals, objectives, features of target software

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Page 10: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

10© Devon M.Simmonds, 2007

The Software Lifecycle

Software design Creating a blueprint for building the software

Architectural design Subsystem design Detailed design Procedural Design User Interface Design Database Design Data Structures Design Test case design

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

“Up to 70% of all faults detected in large-scale software projects are introduced in requirements and design. Detecting the causes of those faults early may reduce their resulting costs by a factor of 100 or more.”

Page 11: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

11© Devon M.Simmonds, 2007

The Software Lifecycle

Implementation Creating the finished product – the program

Coding Writing code for the classes and operations

Generate object code Create Test cases Create user manuals

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

Create blueprint

Page 12: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

12© Devon M.Simmonds, 2007

The Software Lifecycle

Testing Determining if the software has errors/fulfils its requirements

Test planning Unit testing Subsystem testing Integration testing Regression testing Test case design

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

Create blueprint

Create code

Page 13: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

13© Devon M.Simmonds, 2007

The Software Lifecycle

Deployment Making the software available for use

Deployment/installation planning Develop documentation Hardware configuration Installation Software distribution Training

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

Create blueprint

Create code

Uncovering errors

Page 14: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

14© Devon M.Simmonds, 2007

The Software Lifecycle

Evolution Managing the software

Configuration management Controlling change as software evolves

Technical support Software lifecycle activities

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

Create blueprint

Create code

Uncover errors

Make software available for use

Page 15: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

15

The Software Lifecycle: The Unified Process

15

Page 16: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

16© Devon M.Simmonds, 2007

Important Topics In SE Lifecycle phases

Analysis, design, etc Research methods in SE Literature review and analysis Model driven software development (MDD) Aspect-oriented design & analysis Component-based software engineering Design patterns in SE Measurement Software processes Software testing Etc.

Page 17: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

17© Devon M.Simmonds, 2007

Difficult areas for new SE Graduate Students

Scoping research Experimental design Writing!!! Broad understanding of SE

Literature review and analysis Model driven software development (MDD) Aspect-oriented design & analysis Software Testing Other topics as time permits A practical case-driven approach

What is this

Course about?

Page 18: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

18© Devon M.Simmonds, 2007

Course Structure Lectures Seminars (1 per student) -

One seminar per student on 1 or more research papers

Research paper critiques and summaries

Written paper and presentation

Page 19: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

19© Devon M.Simmonds, 2007

CSC550 GradingCOURSE ITEM GRADE PERCENT

Research Project 30%

Midterm Exam 20%

Homeworks 20%

Literature reviews 10%

Final Examination (or Project presentation/Demo)

10%

Project proposals & Class Participation 10%

Grading system93% or above A80% - 92% B65% - 79% C50% - 64% Dbelow 50% F

Page 20: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

20© Devon M.Simmonds, 2007

The Research Papers

LINK

The Research Projects LINK

Page 21: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

21Excellence from 550 …… 21

Page 22: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

22Excellence from 550 ……

Submitted to IJCIS …..

22

Page 23: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

23Excellence from 550 ……

In preparation

23

Page 24: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

24

Research Excellence: Rules to Guide the Supervision Process

Always seek feedback from your supervisor before any important decision.

Asking persons to serve on your committee. Requesting feedback about your project from the

committee (informal feedback is of course allowed). Requesting feedback on your project … a survey

instrument, software to be evaluated, etc.

© Devon M.Simmonds, 2007

Page 25: © Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University

25The End

CSC550, Devon M. Simmonds, Computer Science Department, University of North Carolina Wilmington

???????????????

CSC550 2012

Q u e s t i o n s ?