software system development spring 2010 1. about the course 2

31
SOFTWARE SYSTEM DEVELOPMENT Spring 2010 1

Upload: john-gray

Post on 28-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

SOFTWARE SYSTEM DEVELOPMENT

Spring 2010

1

About The Course2

What this course is about?3

Some of software organization job roles/tasks

4

Prerequisites5

Basic Software Engineering Course Basic Java skills Desirable but not must

Some industry experience Basic Project Management Concepts Keen interest in practical applications of

software engineering methods.

Technology Focus6

Tools of the trade Eclipse, UML Tools, SVN, Ant, Hudson, JUnit, Bugzilla

Enabling technologies HTTP, XML, JavaScript, Ajax

Persistence RDBMS/SQL/JDBC, ORM/Hibernate

Web Programming Servlets, JSP

Google Frameworks and Services GWT, App Engine

Mobile J2ME, Android

Enterprise and Distributed EJB, RMI, JAX-WS

Holistic approach7

A taste of what it’s take to bring an idea to the software product

Experience every(almost) stage of software product development lifecycle

Subjects (technologies and methodologies) are covered at very high level.

Blend of methodologies, ideas and techniques from software engineering, product management, project management

Course Organization8

Goal: every participant will get exposed to the major aspects of

each job role

Startup environment9

Tentative Lesson Plan10

1st hour: Presentation of technologies or/and methodologies useful for next assignment

2nd and 3rd hour: Individual presentation on technologies/tools Group presentation on a project tasks Discussion , brainstorming

Small deliverables from each group for every class

Group deliverables11

Grading12

Exam 50% Basic concept from methodologies and

technologies studied

Group and individual presentation 40% As described above

In-class participating 10% Comments, discussions, criticism,

brainstorming

100% grade for 100% effort13

Plan your time for the course

14

Please introduce yourself15

Name Academic background

Undergraduate degree Current status and courses already passed

Work experience Roles, technologies , tools you are or were

exposed at your work Your expectation from the course

“Just for the credit” is OK

Starting from myself16

Sasha Apartsin [email protected] Academics

B.Sc. in Computer Science ,Technion M.Sc. In Computer Science ,Weizmann M.Sc. In Management ,Polytechnic Institute of NYU Currently Ph.D. @Tel-Aviv University

Industry certifications Project Management Methodologies (PMP from PMI) Software Development/Management Methodologies (CSDP from

IEEE) Product Development/Management Methodologies (NPDP from

PDMA) Industry experience

From 1991 in various roles (student, developer, development group manager, architect, product manager) at various organizations (startups, matrix corporations, independent consultant) and industries (networking, web, telecom, enterprise)

Product Ideas17

Proposed product ideas18

Course Scheduling Service19

It can be time consuming to come up with good course schedule/selection taking into account various constrains Courses already taken Courses available this semester Courses given only once a year Personal preferences (days, hours, lecturers,

subjects) Course difficulty Friends preferences

Resume Service20

Some says the resume should be adjusted for each position its time consuming to adjust resume for every

position

The resume might be evaluated by different people at the potential employer company. Some looking for experience with specific technologies, other are looking for managerial experience.

Sometimes people would like zoom in into specific project you mention in your resume and get more details

Students social network21

Updates from different courses you take are spread at different places

Can’t easily connect to other students from your past courses

Ask recommendations, opinions, advice from students who already took the course

A View on Software Product Development Process

22

Simplified view on software product development process

23

Activities24

Product Planning Define the product

System Design Design Inner working

Project Planning Estimate, Plan and assign work

Project Execution Code, Test

Deployment, Maintenance, Support Deliver to customer(s)

Something is missing….25

Customer/User What is the difference?

“Cat food problem”: Buyer is not a user On the Web everything is mixed up….

Group Roles to experience during the course

26

Customer Provide initial story and accept deliverables

Product Planning Team Product requirements/specifications

System Design Team Software architecting and design

Project Planning Team Plan and monitor activities

Execution Team Develop , QA and deploy

Approximate lessons breakdown

27

Only third of all software projects are successful

28

Top reason for failure: Lack of Communications

Group-Role Assignments Table

29

Resume Service

Social Network

Course Scheduli

ngCustomer G1 G2 G3Product Planning

G2 G3 G1Product Design

G3 G1 G2Project Planning

G2 G3 G1Execution G3 G1 G2

Group Assignment #130

“Customer” presentation next week 15 minutes, 10 slides Focus on a problem not on the solution Invent/Recall stories , persons, scenarios

involving the problem Complain, make wishes Be ready to answer questions from the audience Open discussion on tools, product ideas,

technologies

Individual Assignment

Eclipse IDE overview Install, compile simple Java project, share

experience Demonstrate in class, read few articles You thought on cons and pros

Google App Engine Read few article Write simple web app Demonstrate in class, share expirience