© devon m.simmonds, 2007 csc 550 graduate course in software engineering ______________________...
TRANSCRIPT
© Devon M.Simmonds, 2007
CSC 550Graduate Course
in Software Engineering
______________________Devon M. Simmonds
Computer Science Department
University of North Carolina Wilmington_____________________________________________________________
22
COURSE INTRODUCTIONOutline
Getting to know you Motivation for Graduate software
engineering course Course overview
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
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
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.
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
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
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
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
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.”
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
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
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
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
15
The Software Lifecycle: The Unified Process
15
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.
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?
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
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
20© Devon M.Simmonds, 2007
The Research Papers
LINK
The Research Projects LINK
21Excellence from 550 …… 21
22Excellence from 550 ……
Submitted to IJCIS …..
22
23Excellence from 550 ……
In preparation
23
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
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 ?