+ All Categories
Home > Documents > James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn...

James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn...

Date post: 21-Dec-2015
Category:
View: 216 times
Download: 0 times
Share this document with a friend
Popular Tags:
52
James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006
Transcript
Page 1: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

James Nowotarski

12 September 2006

SE 425Principles and

Practices of Software Engineering

Autumn 2006

Page 2: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

2

Understand what the course is about (i.e., course objectives)

Understand how the course will achieve its objectives Get acquainted Level set:

What is software engineering Why use a software engineering process What are the key vocabulary terms to understand Why does any of this matter

Today’s Objectives

Page 3: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

3

Topic Duration

Questionnaire & Intros 30 minutes

Core concepts 45 minutes

*** Break 10 minutes

Core concepts (cont.) 20 minutes

Course overview 30 minutes

Software categories 30 minutes

Does software engineering matter? 30 minutes

Today’s Agenda

Page 4: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

4

Topic Duration

Questionnaire & Intros 30 minutes

Core concepts 45 minutes

*** Break 10 minutes

Core concepts (cont.) 20 minutes

Course overview 30 minutes

Software categories 30 minutes

Does software engineering matter? 30 minutes

Today’s Agenda

Page 5: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

5

Software Engineering

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

• Computer science discipline that covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting (webopedia.com)

Core Concepts

Page 6: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

6

Technology

ProcessPeople

The software engineering discipline consists of people, process, and technology components

Core Concepts

Page 7: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

7

Technology

ProcessPeople

The focus of SE 425 is the process component of software engineering

Core Concepts

Technology

ProcessPeople

… for the delivery of technology-enabled business solutions

Page 8: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

8

Process

• Sequence of steps performed for a given purpose

• “A specific ordering of work activities across time and place with a beginning, an end, and clearly identified inputs and outputs” -- Tom Davenport

• An overloaded term, can apply at multiple levels (macro, micro)

Core Concepts

Page 9: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

9

software process (also known as “method”)

• Within the context of software engineering, a formalized approach or series of steps for performing some significant portion of software development

Software Process (aka “Methodology”)

• A collection of methods based on a common philosophy that fit together in a framework called the systems development life cycle

-- Ken Orr

Core Concepts

Page 10: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

10

• A systematic way of doing something

• Typically consists of these key content pieces:

1. Processes (what)2. Deliverables (what)3. Techniques (how)4. Roles (who)5. Estimating guidelines (how long)

In SE 425, we will use the terms “software process” and “Software Process” interchangeably

Core Concepts

Page 11: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

11

Key Question: Deliverables

Steps Techniques

What does the system need to do?Functional requirementsQuality requirementsData modelProcess model

1. Gather requirements2. Create data model3. Create process model

InterviewingObservationEntity-relationship modelingNormalizationData flow modeling

Example: Analysis

Roles Estimating guidelines

Business analystEnd useretc.

8 hours per data entityetc.

Page 12: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

12

Broad categories of software processes

• Structured methods• Information engineering• Object-oriented methods• Lightweight/Agile methods

Core Concepts

Page 13: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

13

Systems development life cycle (SDLC) A description of the phases of an

information system

Planning Modeling Construction Deployment

Example

Core Concepts

Page 14: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

14

Life cycle model

• The iteration and control strategy adopted by a systems development organization

• Examples- Waterfall- Iterative/Evolutionary/Spiral- Incremental

Core Concepts

Page 15: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

15

The waterfall model is the granddaddy of life cycle models

Core Concepts

Planning

Modeling

Construction

Deployment

Page 16: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

16

Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases

M C DVersion 1

M C DVersion 2

M C DVersion 3

Core Concepts

Page 17: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

17

Incremental life cycle models advocate delivering the end product piecemeal

M C DVersion 1

M C DVersion 2

M C DVersion 3

Core Concepts

Page 18: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

18

Routes

• A “route” is a preconfigured specialization of a methodology, depending on a variety of factors:

- custom vs. packaged solution- degree of project team distribution- project team size- technology platform- application type

• Examples- Custom Client/Server: Large Project- Custom Client/Server: Small Project- Rapid Application Development (RAD)- Packaged Systems Development- Data Warehouse- SAP implementation

Core Concepts

Page 19: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

19

Rapid Application Development (RAD)

• A shortened route with the following characteristics:- high degree of development tool usage and code

generation- Joint Application Development (JAD) workshops

instead of interviewing- assumes reuse of existing technical architecture and

standards- time-boxing (90-day implementation schedule)- highly iterative

Core Concepts

Page 20: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

20

RAD vs. Traditional

Traditional

Req’ts Analysis UserDesign

ConstructTechDesign

RAD

Req’ts UserDesign

Construct

Core Concepts

Page 21: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

21

Techniques

• Provide detailed how-to guidelines• Fall into 2 main categories:

- Process techniques- Modeling/Diagramming techniques

Core Concepts

Page 22: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

22

1. Review existing data models2. Define entities

a. Independentb. Dependent, including Intersection entities

3. Define attributes and keys (primary, foreign)4. Define relationships5. Finalize ERD6. Normalize7. Integrate data models as required8. Verify completeness of the data model

9. Validate the data model a. With usersb. With the enterprise’s data administrator

Process for Building Data Models

Process technique availableDiagramming technique available

Core Concepts

Page 23: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

23

Modeling/DiagrammingTechnique

Core Concepts

Page 24: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

24

1NF = No repeating groups

2NF = 1NF + no partial dependencies (non-key attribute dependent on portion of primary key)

3NF = 2NF + no transitive dependencies (non-key attribute dependent on another non-key attribute)

Normalization (Process Technique)

Core Concepts

Page 25: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

25

Topic Duration

Questionnaire & Intros 30 minutes

Core concepts 45 minutes

*** Break 10 minutes

Core concepts (cont.) 20 minutes

Course overview 30 minutes

Software categories 30 minutes

Does software engineering matter? 30 minutes

Today’s Agenda

Page 26: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

26

Course Objectives

SE 425 will enable you to explain, develop, use, and improve software engineering practices

Page 27: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

27

Your grade

Homework Assignments 50%

Midterm/Final 40%

Participation/Discussion 10%

--------

100%

Page 28: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

28

Course Map

http://facweb.cti.depaul.edu/jnowotarski/se425/default.htm

Page 29: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

29

Course Assignments

• Assignment 1 – Critique of article on the spiral approach to systems development

• Assignment 2 – Risk management exercise

• Assignment 3 – Project plan

• Assignment 4 – TBD

• Assignment 5 - Summary of marketplace development

Page 30: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

30

My role

Facilitate learning Plan, prepare, and conduct lectures and learning activities

Assess student progress and provide feedback

Relate concepts to real-world problems Provide classroom environment conducive to learning

Clearly state expectations Gather and implement suggestions for improving the class Keep it fun

Page 31: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

31

email: [email protected] phone: 312-261-3838 office hours: Tuesdays, immediately

before and after class

My coordinates

Page 32: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

32

Your role

Be proactive

Share your experience

Come to class prepared

Collaborate with other students as appropriate

Ask if you don’t understand or if I’m not clear

Provide constructive feedback (“This class would be better if . . .”)

Page 33: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

33

Class Participation

Subjective evaluation of participation:

A Consistently asks good questions, makes valuable observations, and answers questions effectively

B Frequent participant, but not all questions, answers, and observations are effective, or not consistently active

C Participates infrequently, or questions/answers do not reflect adequate preparation, or late to class

D Very rare participation, or questions/answers reflect little or no preparation, or very late to class

F Displays no sign of life, or absent for entire class

Page 34: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

34

Topic Duration

Questionnaire & Intros 30 minutes

Core concepts 45 minutes

*** Break 10 minutes

Core concepts (cont.) 20 minutes

Course overview 30 minutes

Software categories 30 minutes

Does software engineering matter? 30 minutes

Today’s Agenda

Page 35: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

35

Activity – Software categories

In small groups, develop a 1-minute summary of one of the following: System software Application software (custom) Application software product Engineering/Scientific software Embedded software Web-based applications

For each, describe and discuss software engineering challenges

Page 36: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

36

System software

Description

Foundational software, operating system, utilities, compilers, tools, driver,

Challenges

Robustness, interoperability, efficiency, reliability, testing, change management, configuration management, scarce skill set

Page 37: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

37

Application software (custom)

Description

Building application from ground up, tailored to org’s specific needs, focused,

Challenges

Need for good documentation, want internal people working on this, cost effectiveness, extensibility

Page 38: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

38

Application software product

Description

Business process or industry focused, SAP, Peoplesoft, Microsoft Office

Challenges

Variety of end user types, update cycle, software piracy prevention,

Page 39: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

39

Engineering/Scientific software

Description

Number crunching, astronomy, weather prediction, computer-aided design, simulation

Challenges

Numerical precision, understanding of scientific domain, performance, extremely data sets, regulatory/legal compliance

Page 40: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

40

Embedded software

Description

Software embedded in a device,

Challenges

Testing, change management, scarce skills, limited hardware resources, security

Page 41: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

41

Web-based applications

Description

eCommerce (B2C), educational, financial, maps, gis, “network is the computer”

Challenges

Security, performance, browser inconsistencies, language compatibility, global, usability, legal, censorship,

Page 42: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

42

Topic Duration

Questionnaire & Intros 30 minutes

Core concepts 45 minutes

*** Break 10 minutes

Core concepts (cont.) 20 minutes

Course overview 30 minutes

Software categories 30 minutes

Does software engineering matter? 30 minutes

Today’s Agenda

Page 43: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

43

IT OutsourcingBest jobs in America

1. Software engineer

2. College professor

3. Financial adviser

4. Human resources manager

5. Physician’s assistant

6. Market research analyst

7. Computer/IT analyst

8. Real estate appraiser

9. Pharmacist

10. Psychologist

Source:Kalwarski, T., Mosher, D., Paskin, J. & Rosato, D. (2006, May) 50 best jobs in America. Money. Retrieved September 8, 2006, from http://money.cnn.com/magazines/moneymag/bestjobs/

Page 44: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

44

Does SE matter?As noted by Carr, IT is often viewed as a commodity and, thus, not “core”

• IT is like electric power -- a commodity that is required by all but provides distinction to none

• IT capability is broadly accessible and affordable

• New or proprietary technologies offer opportunity for companies to gain a step, but this advantage is short-lived

• Further evidence of IT commoditization:– overcapacity– price drops– vendors positioning selves as “utilities”

Source: Carr, N. (2003, May). IT doesn’t matter. Harvard Business Review, 81(5), 41-49.

Page 45: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

45

Buy vs. buildLease (utility model) vs. buy

• Open source vs. lease

Software as a commodity?

Does SE Matter?

Page 46: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

46

IT Outsourcing

Buy

Build

Commodity Differential

Critical

Useful

StrategicImportance

Potential for Differentiation

Buy vs. build

Page 47: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

47

Read Pressman Chapters 1-4 Read Royce article Assignment 1- Critique the Royce article

For September 19

Page 48: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

48

Extra slides

Page 49: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

49

Software process engineering

• Developing and/or selecting and/or tailoring software process for a particular business situation

• “Configuring one-of-a-kind methodology from common building blocks” -- Gezinus Hidding, Loyola University

Core Concepts

Page 50: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

50

Justifying a Methodology

• Vendors and consultants have not done much to substantiate quantitatively the value of their methodologies

• What would you say if asked to provide justification?

Page 51: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

51

Common Drivers Behind Methodology Adoption

• Project failure leads to realization that “we need a more formal process”

• Codify best practices, so as to increase predictability and reliability of software development process

• especially as IT organization grows

• Continued pressure on time to market and quality (web services)

• Certification (e.g., Capability Maturity Model)

• Desire to stay current and/or sustain/develop competitive edge

• Need to support distributed development teams (multi-site and/or multi-organization)

Page 52: James Nowotarski 12 September 2006 SE 425 Principles and Practices of Software Engineering Autumn 2006.

52

Methodology - Who needs it?

“Any first attempt at converting folklore into knowledge, and a guessing game into a discipline, is liable to be misread as a downgrading of individual ability and its replacement by a rule book. Any such attempt would be nonsense, of course. No book will ever make a wise man out of a donkey or a genius out of an incompetent. The foundation in a discipline, however, gives to today’s competent physician a capacity to perform well beyond that of the ablest doctor of a century ago, and enables the outstanding physician of today to do what the medical genius of yesterday could hardly have dreamt of. No discipline can lengthen a man’s arm. But it can lengthen his reach by hoisting him on the shoulders of his predecessors. Knowledge organized in a discipline does a good deal for the merely competent; it endows him with some effectiveness. It does infinitely more for the truly able; it endows him with excellence.”

From Managing for Results, by Peter F. Drucker


Recommended