itse 205: software engineering

30
ITSE 205: Software Engineering Lecture 1 Introduction to Software Engineering

Upload: jerica

Post on 20-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

ITSE 205: Software Engineering. Lecture 1 Introduction to Software Engineering. Academic Integrity. Software Engineering is a collaborative activity. You are encouraged to work together, but ... • Some tasks may require individual work. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ITSE 205: Software Engineering

ITSE 205: Software Engineering

Lecture 1

Introduction to Software Engineering

Page 2: ITSE 205: Software Engineering

Academic Integrity

2

Software Engineering is a collaborative activity. You are encouraged to work together, but ...

• Some tasks may require individual work.

• Always give credit to your sources and collaborators.

Good professional practice: To make use of the expertise of others and to build on previous work, with proper attribution.

Unethical and academic plagiarism: To use the efforts of others without attribution.

Page 3: ITSE 205: Software Engineering

Grading

3

Examinations (Written/Oral) 40%

Recitation/Presentation 10%

Term Project (group) 10%

Course Work Project (individual) 10%

Quizzes 20%

ORLE 10%

Page 4: ITSE 205: Software Engineering

Overall Aim of the Course

4

We assume that you are technically proficient. You know a good deal about computing, can program reasonably, can learn more on the job.

When you finish your course, you are going to work on production projects where success or failure costs millions of dollars.

Soon you will be in charge! It may be your money!

We want you to make your mistakes now and learn from your mistakes. ;-)

Page 5: ITSE 205: Software Engineering

Projects

5

The Course is Built around the Projects

• Real project for real client who intends to use the software in production.

• Select your own project, any branch of software development

• Project teams, 3 to 4 team players.

• Feasibility study and plan: due before December 18

• Group presentations and reports:

requirements, design, final

Page 6: ITSE 205: Software Engineering

Project Selection

6

Read the Web site

• Some projects are suggested on the Web site (http://wnucict.wordpress.com)

• You are encouraged to find other projects

Contact potential clients

• Gain idea from the course expectations

• Estimate scope and complexity of the project

• Discuss business decisions

Assemble project team

• Post message on FB WNU-CICT PROJECTS GROUP

• Advertise at the beginning of class

Page 7: ITSE 205: Software Engineering

Thoughts about Project Selection

7

Projects

• Target must be a production system (not research)

• Client should be one or two designated people -- client should be prepared to meet with you regularly and attend the presentations

Team

• Teams need many strengths -- organizational, technical, writing, etc.

• Consider appointing a leader to coordinate the effort

Page 8: ITSE 205: Software Engineering

Variety of Software Products

8

Examples

Real time: air traffic control Embedded systems: digital cameraData processing: telephone billing, pensionsInformation systems: web sites, digital librariesSensors: weather dataSystem software: operating systems, compilersCommunications: routers, mobile telephonesOffices: word processing, video conferencesScientific: simulations, weather forecastingGraphical: film making, design etc., etc., etc., ....

Page 9: ITSE 205: Software Engineering

Client

9

Client (a.k.a. Customer)

The client may provides resources and expects some product in return.

Client satisfaction is the primary measurement of success in a software project.

Page 10: ITSE 205: Software Engineering

Categories of Software Product

10

Categories of client and software product:

• Generic – these are stand-alone systems which are produced by a development organization and sold on the open market to any customer who is able to buy them. (e.g., Microsoft Excel)

• Packages (e.g., Mathematica)

• Customized versions of generic packages (e.g., WNU's enrollment system)

• Bespoke (customized) products – these are systems which are commissioned by a particular customer. The software is developed specially for that customer by a software contractor. (e.g., IRS internal system)

• Demonstration, prototype, research, ...

Who is the client for each category of product?

Page 11: ITSE 205: Software Engineering

Previous Experience (Yours)

11

Your background

• Biggest program that you have written?

• Biggest program that you have worked on?

• Biggest project team that you have been part of?

• Longest project that you have worked on?

• Most people who have used your work?

• Longest that your project has been in production?

Page 12: ITSE 205: Software Engineering

Observations

12

Most software development is by teams

• Effectiveness of team determines success

Most large software projects are built on older ones

• It is rare to start a new suite of programs from scratch

• Building on the work of others is a fundamental skill of software development

Page 13: ITSE 205: Software Engineering

Observations about Big Projects

13

• A CSMN120 project is about 3 persons /years.

• A big project may be 100 to 1,000 persons/ years.

• Every important program is written by many people, who are constantly changing.

• Before a big project is completed the requirements have changed many times.

• No large system is ever complete.

Page 14: ITSE 205: Software Engineering

Future Experience

14

What will you be doing one year from now?

Ten years from now?

Typical career paths in computing combine technical work with varying degrees of project management, marketing, entrepreneurship, etc.

Page 15: ITSE 205: Software Engineering

Software is Expensive

15

Software is expensive!

The major costs are salaries (your salaries)!

Every software project has a trade-off between:

Functionality Resources (cost) Timeliness

Page 16: ITSE 205: Software Engineering

Course Themes

• Risk• Visibility• Process• Scale

16

Page 17: ITSE 205: Software Engineering

Course Themes: Risk

17

Risk (as Seen by a Manager)• Problems

Over budget Late delivery

- Does not work as expected

• Never used

Does the wrong thing Needs change

- Users dislike to use itetc.

Failures of software development projects can bankrupt companies!

Page 18: ITSE 205: Software Engineering

Course Themes: Visibility

18

Visibility (as Seen by a Manager)

• Problem

Must rely on others for reports of

progress or difficulties

• Software Developers

Have difficulty evaluating progress Optimistic

Consider reporting a waste timeetc.

The people who take the responsibility must know what is happening!

Page 19: ITSE 205: Software Engineering

Course Themes: Process

19

Process in Large Software Projects

• Software as a product

Clients and their needs Quality

• Requirements and specification

Usability Evolution

• Project management

Personnel management Economic, legal, and social factors

Nobody comprehends more than a fraction of the project!

Page 20: ITSE 205: Software Engineering

Course Themes: Scale

20

Techniques for large and very large systems

• Software design

Software architecture Object-oriented design

• Dependable systems

Reliability Verification

• Legacy systems

Page 21: ITSE 205: Software Engineering

What is Software?

21

Computer programs and associated documentation.

Software products may be developed for a particular customer or may be developed for a general market.

Page 22: ITSE 205: Software Engineering

What is Software Engineering?

22

Software Engineering is an engineering discipline which is concerned with all aspects of software production.

Page 23: ITSE 205: Software Engineering

What is the difference between software engineering and computer science?

23

Computer Science is concerned with theory and fundamentals; while Software Engineering is concerned with the practicalities of developing and delivering useful software.

Page 24: ITSE 205: Software Engineering

What is a software process?

24

A set of activities whose goal is the development or evolution of software.

Page 25: ITSE 205: Software Engineering

What is a software process model?

25

A simplified representation of a software process, presented from a specific perspective.

Page 26: ITSE 205: Software Engineering

What is a CASE (Computer-aided software engineering)?

26

Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support.

Page 27: ITSE 205: Software Engineering

What are the key challenges facing software engineering?

27

Coping with legacy systems.

Coping with increasing diversity.

Coping with demands for reduced delivery times.

Page 28: ITSE 205: Software Engineering

What is Good Software?

28

General characteristics• Usability – Software must be usable without undue effort, by the type of user for whom it is designed.

•Maintainability – software should be written in such a way it may evolve to meet the changing needs of customers.

•Dependability – software should be reliable, secure and safe. It should not cause physical or economic damage in the event of system failure.

•Efficiency – software should not make wasteful use of system resources such as memory and processor cycles..

Page 29: ITSE 205: Software Engineering

What is Good Software?

29

Good software products require good programming,

but ...

Programming quality is the means to the end, not the end itself.

Page 30: ITSE 205: Software Engineering

The Craft of Software Development

30

Software products are very varied

--> Client requirements are very different

--> There is no standard process for software engineering

--> There is no best language, operating system, platform, database system, development environment, etc.

A skilled software developer knows about a wide variety of approaches, methods, tools. The craft of software development is to select appropriate methods for each project and apply them effectively.