• No results found

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

N/A
N/A
Protected

Academic year: 2021

Share "Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr."

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

1

COM 401 Software Engineering

COM 401 Software Engineering

Prof. Dr. Halûk Gümüşkaya

haluk.gumuskaya@gediz.edu.tr

haluk@gumuskaya.com http://www.gumuskaya.com

Computer Engineering Department

Tuesday, October 09, 2012 2

Lecture Overview

Object-Oriented Software Engineering:

Using UML, Patterns, Java, and

Software Development Processes

3

Welcome to Software Engineering !

In this course you will be

introduced to how to conquer

real complex and changing software systems.

You will learn

modern

object oriented analysis, design, and

implementation techniques

using UML, Design Patterns, Java and Software

Development Processes

to develop a

complex software project

with a

small team having limited resources (qualified

developers, time) and

some people related problems.

4

Why is Software Development Difficult?

The problem domain (also called application domain) is

difficult

The solution domain is difficult

The development process is difficult to manage

Software offers extreme flexibility

Software is a discrete system

Continuous systems have no hidden surprises

Discrete systems can have hidden surprises! (Parnas)

David Lorge Parnas is an early pioneer in software

engineering who developed the concepts of modularity and information hiding in systems which are the foundation of object oriented methodologies.

(2)

5

1. Course Overview:

Course Information

2. Introduction to Software Engineering:

A quick overview of the course:

(

Why: see the big picture, getting motivation and mentally

prepared for the course):

What is Software Engineering? Modeling and Model

Driven Development, UML, Design Patterns, Software

Development Phases, Software Process (Methodology),

Software Development using UML, Design Patterns and

Processes

Today

6

1. Course Description

2. Objectives of the Course

3. Text Books, Lecture Slides and Readings 4. Contents of the Books to be Covered 5. Lecture Schedule

6. Requirements and Assumptions 7. Course Activities and Grading 8. Course Web Site

Course Overview

Course Description

• An overview of software engineering, software life cycle, and

methodologies. Modeling with UML and design patterns,

project management and software development, team

organization, requirements elicitation and analysis, system

design, object design, software testing.

• Software engineering concepts are realized on a nontrivial

team design project in which a group of students implements

a system from its specification and design using a UML

modeling and implementation tool.

Course Description

• This course introduces the essential aspects of software-engineering from an object-oriented point of view.

• The topics covered include modeling with UML, introduction to design patterns, project management and software development processes, requirements elicitation and analysis, system design, object design, testing, rational and configuration management, software life cycle, and methodologies.

• The Unified Modeling Language (UML) and Design Patterns are used for the analysis and design work.

• The software engineering concepts are realized in Java.

• Particular emphasis is on a team project in which a group of students implement a system from its specification.

• Students are expected to complete and report assignments and a

nontrivial design project developed in Java using a UML design

(3)

9 1. Course Description

2. Objectives of the Course

3. Text Books, Lecture Slides and Readings 4. Contents of the Books to be Covered 5. Lecture Schedule

6. Requirements and Assumptions 7. Course Activities and Grading 8. Course Web Site

10

Objectives of the Course

Appreciate

Software Engineering Principles:

Methodologies

Process models

Description and modeling techniques

System analysis - Requirements engineering

System design

Implementation: Principles of system development

Build complex software systems in the context of frequent

change

Understand how to

produce a

high quality software system within time, bugget

and scope (OTOBOS)

while dealing with complexity and change.

11

Objectives of the Course

Acquire

technical knowledge (main emphasis)

Acquire

managerial knowledge

12

Acquire Technical Knowledge

Learn and Apply:

System Modeling and Model Driven Development

UML

Design Patterns and Frameworks

How to use CASE Tools

• Enterprise Architect, Rational Rhapsody, ...

Different modeling methods:

• Use Case modeling, Object Modeling, Dynamic Modeling, Issue

Modeling, ...

Practice the application of principles of object-oriented software development through the course team project

Start reading some technical documents and papers on software engineering

(4)

13

Acquire Managerial Knowledge

Learn and Apply:

The basics of software project management

How to manage with a software lifecycle, development phases

and processes

Be able to capture software development knowledge

(Rationale Management)

Manage change: Configuration Management

Learn the basic methodologies

Traditional software development

Agile methods.

Develop

teamwork and communication skills and

techniques through the course team project

How to prepare SE documents, like SPMP, RAD, SAD, …

...

14

1. Course Description 2. Objectives of the Course

3. Text Books, Lecture Slides and Readings

4. Contents of the Books to be Covered

5. Lecture Schedule

6. Requirements and Assumptions 7. Course Activities and Grading 8. Course Web Site

Required

• Object-Oriented Software Engineering: Conquering Complex and Changing

Systems, Using UML, Patterns, and Java, 3rd Ed., B. Bruegge, A. H. Dutoit,

Prentice-Hall, 2010.

• Practical Software Engineering: A Case Study Approach, L. Maciaszek, B. L. Liong, Addison Wesley, 864 pages, 2004.

These two books tell you how to do software engineering Recommended

• Requirements Analysis and Systems Design, 3rd Edition, L. Maciaszek,

Addison-Wesley, 656 pages, 2007.

• Applying UML and Patterns: An Introduction to Object-Oriented Analysis and

Design and Iterative Development, Craig Larman, Prentice Hall, 2004.

• UML for Java Programmers, Robert C. Martin, Prentice Hall, 288 pages, 2003.

Lecture Slides and Readings

Lecture Slides

• This course is based on the slides of many text books and my

slides.

• You can download the lecture slides presented in the class after

(unfortunately) the lecture from the course’s web site.

Readings

• Some readings will be posted on the course web site.

Depending on your needs, these will be highlighted, and

assigned if needed.

(5)

17 1. Course Description

2. Objectives of the Course

3. Text Books, Lecture Slides and Readings

4. Contents of the Books to be Covered

5. Lecture Schedule

6. Requirements and Assumptions 7. Course Activities and Grading 8. Course Web Site

18

Contents of the Books: OOSE

I. GETTING STARTED

1. Introduction to Software Engineering 2. Modeling with UML

3. Project Organization and Communication

II. DEALING WITH COMPLEXITY

4. Requirements Elicitation 5. Analysis

6. System Design: Decomposing the System 7. System Design: Addressing Design Goals 8. Object Design: Reusing Pattern Solutions 9. Object Design: Specifying Interfaces 10. Mapping Models to Code

11. Testing

19

Contents of the Books: OOSE

III. MANAGING CHANGE

12. Rationale Management 13. Configuration Management 14. Project Management 15. Software Life Cycle

16. Methodologies: Putting It All Together

20

Contents of the Books: PSE

Part A - Software Projects: Software lifecycle, modeling languages,

engineering tools, project planning, and process management.

The next three parts (B, C, and D) introduce the Case-Study,

minicases and examples. The discussion in these three parts

concentrates on the methods, techniques, processes, and development environments of software engineering. We will use some of the chapters starting from Part B:

Part B - From Requirements via Architectural Design to Software Release

Part C - Software Refactoring and User Interface Development

(6)

21 1. Course Description

2. Objectives of the Course

3. Text Books, Lecture Slides and Readings 4. Contents of the Books to be Covered

5. Lecture Schedule

6. Requirements and Assumptions 7. Course Activities and Grading 8. Course Web Site

22

Lecture Schedule (tentative)

Week Topics Covered Projects Calendar and Artifacts

1 Course information, Introduction to Software Engineering (Chp 1) Background for Projects: Tools 2 Modeling with UML (Chp 2) UML

3 Introduction to Design Patterns UML and Introduction to Design Patterns 4 Project Organization and Communication (Chp 3) Project Organization and Management 5 Project Management and Introduction to Processes (Chp 14) Software Development Processes 6 Requirements Elicitation (Chp 4) Projects Start, Project Proposal 7 Requirements Analysis (Chp 5) Requirements Analysis Document (RAD)

Software Project Management Plan (SPMP) 8 System Design I (Chp 6)

9 System Design II (Chp 7) Midterm Exam System Architecture Document (Iterative Development Process StartsSAD) 10 Object Design I (Chp 8)

11 Object Design II and Mapping Models to Code (Chp 9 and Chp

10) Return updated SAD Code and Design Review 1 12 Testing (Chp 11) Test Document

13 Rationale and Configuration Management (Chp 12 and Chp 13) Code and Design Review 3

14 Software Life Cycle (Chp 15) User Manual

15 Methodologies: Putting It All Together (Chp 16) Project Demonstrations and Evaluation

1. Course Description 2. Objectives of the Course

3. Text Books, Lecture Slides and Readings 4. Contents of the Books to be Covered 5. Lecture Schedule

6. Requirements and Assumptions

7. Course Activities and Grading 8. Course Web Site

Basic Requirement: Proficiency in OO Programming

You are

proficient in an OO programming language (Java),

but you have no experience in analysis or design of a system.

You want to learn more about the technical aspects of analysis

and design of complex software systems.

But, in addition to proficiency in a programming

language, you need more for real-life software

engineering in real life projects ...

(7)

25

Course Requirements and Assumptions

Requirements:

• COM 401 is an advanced undergraduate course.

We will be covering topics from a number of other courses:

COM 102 Object Oriented Programming (Java),

COM 201 Data Structures, COM 202 Algorithms, COM 303 Advanced Programming courses.

• It does require a high level of Java programming and

good personal relations and management skills. Assumptions:

• You like to spent long hours with computer working on assignments and projects.

• You do your own assignments by yourself (if the assignment will be done individually) and like to work as a team and participate in the project actively (if the assignment is a team project).

26

Bacground Needed for Software Engineering in

Real Life Projects

Object Oriented Analysis/Design/ProgrammingData Structures and Algorithms

Database Programming

Internet Programming (server side programming: HTML/XML,

scripting, Servlets/JSP/JSF, PHP/ASP, Web/Application Servers, J2EE/.NET technologies, Object Relational Mapping techniques, ...)

Network Programming (TCP/UDP Socket Programming,

Concurrent Programming, Communication Models-C/S, P2P, MOM, Multicasting, Distributed Objects-RMI/CORBA/DCOM/EJB, Web Services, Cloud Computing, ...)

Multimedia Networking (RTP, RTSP, RTCP, SIP, ....)Computer Networks (TCP/IP layers, ...)

GUI Programming …

27 1. Course Description

2. Objectives of the Course

3. Contents of the Book to be Covered 4. Lecture Schedule

5. Requirements and Assumptions

6. Text Books, Lecture Slides and Readings

7. Course Activities and Grading

8. Course Web Site

28

Tutorials and Assistant Support

Short tutorials which will be given by your TA:

• Program development using Enterprise Architect/Eclipse,

Rational Rhapsody, …

• OO analysis/design using UML

• Project processes and documentation

Obtain the following resources from your TA:

• Our development tools: …

(8)

29

Project: Emphasis is on team-work

• Participate in collaborative design.

• Work as a member of a project team, assuming

various roles.

• Create and follow a project and test plan.

• Create the full range of

work products associated with a

software product.

• Complete a project on time.

• You will produce many work products during the project.

• Start to arrange your project teams (3-4 students).

• Project web sites.

• Try to find good project examples based on UML on the

Internet.

30

Lectures: Theoretical foundations and background.

Attendance: Important in order to learn the topics in a timely manner. Attendance will

be forced by taking attendance. (and by making quizzes at random times)

• Quizzes: There will short quizzes at random times. We may not inform you about the

quizzes. A quiz may be done at any time during a lecture period. (not this semester)

Project: Learn how to apply them in practice. Lectures and Project work are

interleaved.

HW Assignment: 3-4 assignments

• Readings: You will be responsible for readings in the midterm and final exams, but I

will not discuss these readings in the class. (not this semester)

Tutorials: By your TA

Grading (tentative) The grade for COM 401 is calculated as

15 % : Homework Assignments

20 % : Midterm (near the middle of the course) 35 % : Project

30 % : Final Exam (a comprehensive exam at the end of the course)

Course Activities and Grading

1. Course Description 2. Objectives of the Course

3. Contents of the Book to be Covered 4. Lecture Schedule

5. Requirements and Assumptions

6. Text Books, Lecture Slides and Readings 7. Course Activities and Grading

8. Course Web Site

• At http://www.gumuskaya.com, click the CENG 401’s link.

• This page provides dynamic information and materials for the lecture, as it becomes available; please check it at least once in a week.

References

Related documents

When applied to measures with overlap in item content across correlated constructs, in the absence of a global factor and cross-loadings, CFA is forced to account for the shared

To offer explanations for the contribution of narrativity within the news, the study will (3) perform a comparative research design, conducting a content analysis of newspaper

By emphasizing ICT usage, motivation to use ICT, the level of ICT knowledge, and learning process quality as the variables, this study attempted to discover the

Pada tahap ini peneliti melakukan observasi tahap awal di Ditlantas Polda Jatim. Dalam proses ini peneliti masih belum mengetahui masalah, atau keinginan yang jelas akan

As a consequence, driven out from the two propositions stated above, we argue that the market value of the company and the voting pattern observed in its corporate meetings can

This training seminar will ensure that you understand how to decide rationally what maintenance activities to outsource and what not, how to select the best

Studies reporting the prevalence of burnout, com- passion fatigue, secondary traumatic stress and vicarious trauma in ICU healthcare profes- sionals were included, as well as

The presented study focused on the application of the dating method, based on the vertical distribution of 210 Pb in marine sediments, to the determination of sedimentation rates