26
Course 254 451 Course 254 451 Software Software Engineering Engineering Michael Brueckner Michael Brueckner phone phone 055-261 000-4 (ext. 3233) 055-261 000-4 (ext. 3233) . . อออออ อออออ email email [email protected] [email protected] office office SC2-417, by appointment SC2-417, by appointment

Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า [email protected] officeSC2-417, by appointment

Embed Size (px)

Citation preview

Page 1: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

Course 254 451 Course 254 451 Software EngineeringSoftware Engineering

Michael BruecknerMichael Brueckner phonephone 055-261 000-4 (ext. 3233)055-261 000-4 (ext. 3233)

ออ..มิ�ช่�ามิ�ช่�า emailemail [email protected]@nu.ac.thofficeoffice SC2-417, by appointmentSC2-417, by appointment

Page 2: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering22

Software EngineeringSoftware Engineering

uses appropriate engineering principles in uses appropriate engineering principles in order to obtain economically software that order to obtain economically software that is is reliablereliable works efficiently on real machinesworks efficiently on real machines

studies such principlesstudies such principles

Page 3: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering33

Basic Questions of SEBasic Questions of SE

What is the problem to be solved?What is the problem to be solved? Which characteristics do the problem Which characteristics do the problem

related entities have?related entities have? How will the solution be realized?How will the solution be realized? How will the solution be constructed?How will the solution be constructed? How can errors be uncovered?How can errors be uncovered? How to deal with support after release to How to deal with support after release to

the customer?the customer?

Page 4: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering44

SE Process Model-2SE Process Model-2

Basic SE process modelsBasic SE process models Linear Model (Waterfall)Linear Model (Waterfall) Evolution Model (Prototyping)Evolution Model (Prototyping) Formal Transformation ModelFormal Transformation Model Reusable Components ModelReusable Components Model

Page 5: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering55

Project ManagementProject Management

We focus We focus เพ่�งความสนใจเพ่�งความสนใจ on IS projectson IS projects We focus on practical We focus on practical ที่��ขึ้��นอยู่��กั�บความเป็�นที่��ขึ้��นอยู่��กั�บความเป็�นจริ�งจริ�ง stepssteps

We cover the whole lifecycle of a projectWe cover the whole lifecycle of a project We don‘t want to use many software toolsWe don‘t want to use many software tools

Page 6: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering66

Project Management / OverviewProject Management / Overview

Introducing Project ManagementIntroducing Project Management Some TermsSome Terms

The Lifecycle of ProjectsThe Lifecycle of Projects

LifecycleAll processes from the start till the end of a project. Usually the lifecycle is divided into phases with certain milestones. Some phases maybe have to be worked out two or more times.

Page 7: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering77

Project Management / IntroductionProject Management / Introduction

First question: Do we need a project?First question: Do we need a project? Standard Software SolutionStandard Software Solution OutsourcingOutsourcing Co-operationCo-operation To much to do (feasibility To much to do (feasibility ซึ่��งเป็�นไป็ได้ ซึ่��งเป็�นไป็ได้ ))

New processes = no softwareNew processes = no software

OutsourcingGive some work out of the company and let it be done by special

partners. This leads to a concentration on your main business.

FeasibilityThe ability to do a complex work or project: technical, economic, legal, operational, schedule.

Page 8: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering88

Standard Software SolutionStandard Software Solution

Can you solve Can you solve แกั แกั ป็"ญหาป็"ญหา the problem by the problem by a standard software?a standard software?

Page 9: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering99

Project Management / IntroductionProject Management / Introduction

Project Management is Information Management Project Management is Information Management applied applied ที่��ป็ริะยู่&กัต์(ได้ ที่��ป็ริะยู่&กัต์(ได้ to projectsto projects Problem analysis (getting information)Problem analysis (getting information) Requirements (analyse Requirements (analyse ว�เคริาะห(ว�เคริาะห( problem solutions)problem solutions) Design the solutionDesign the solution Programming & ImplementationProgramming & Implementation Testing & Quality AssuranceTesting & Quality Assurance Installation & ServiceInstallation & Service Migration SpecificationMigration Specification

Page 10: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1010

Software MigrationSoftware Migration

Migration: make software available in a Migration: make software available in a different environmentdifferent environment

Example: MS Access to MySQLExample: MS Access to MySQL

Page 11: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1111

Project Management / Some TermsProject Management / Some Terms

ProjectProject Project ManagementProject Management PhasePhase MilestoneMilestone Deliveries = Project DocumentDeliveries = Project Document Work Breakdown StructureWork Breakdown Structure Time schedulingTime scheduling Work schedulingWork scheduling

Page 12: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1212

Project Management / ProjectProject Management / Project

Examples:Examples:

I build my own PC from spare parts: 1 person with I build my own PC from spare parts: 1 person with limited budget, 1 month time schedulelimited budget, 1 month time schedule

Bring a man on the moon: 25.000 people with Mio. Bring a man on the moon: 25.000 people with Mio. USD-budget, 7 years time scheduleUSD-budget, 7 years time schedule

Implementation of an information system: 50 people, Implementation of an information system: 50 people, 1 Mio. budget, 6 months time schedule1 Mio. budget, 6 months time schedule

A project is a temporary ที่��เป็�นกัาริชั่��วคริาว endeavor ความพ่ยู่ายู่าม with a budget งบป็ริะมาณ and a timeline to achieve ส+าเริ,จ particular aims and to which project management can be applied.

Page 13: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1313

Project Management / DefinitionProject Management / Definition

PM standardizes PM standardizes ที่+าให เป็�นมาต์ริฐานที่+าให เป็�นมาต์ริฐาน and structures and structures สริ างสริ างโคริงสริ างโคริงสริ าง the basic the basic จ+าเป็�นที่��ส&ด้จ+าเป็�นที่��ส&ด้ taskstasks in a projectin a project

PM aims at completing a project in the most cost-effective PM aims at completing a project in the most cost-effective

and efficient and efficient ซึ่��งม�ป็ริะส�ที่ธิ�ภาพ่ซึ่��งม�ป็ริะส�ที่ธิ�ภาพ่ way way

Project Management is the application of knowledge, skills, tools, and techniques to the activities in a project. Project management comprises five basic tasks – Initiating ริ�เริ��ม , Planning วางแผน , Executing ด้+าเน�นกัาริ , Controlling ต์ริวจสอบ , Closing จบ

Page 14: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1414

Project Management / PhaseProject Management / Phase

Example:Example: Project StartProject Start (Phase) (Phase)

Activities: get the manpower Activities: get the manpower กั+าลั�งคนกั+าลั�งคน , get the money, get the , get the money, get the room and equipment, define the project‘s deadline room and equipment, define the project‘s deadline กั+าหนด้เวลัากั+าหนด้เวลัาส&ด้ที่ ายู่ที่��ต์ องที่+าให เสริ,จส&ด้ที่ ายู่ที่��ต์ องที่+าให เสริ,จ

Milestone: Project application Milestone: Project application กัาริขึ้อกัาริขึ้อ is signedis signed Documents: „Project Structure“, „Project Plan“ (time and Documents: „Project Structure“, „Project Plan“ (time and

budget), „Project Mission“ budget), „Project Mission“ จ&ด้ม&�งหมายู่จ&ด้ม&�งหมายู่

A Project Phase is a set of activities in a project which form a major ส�วนใหญ� part of the work. The project phase is completed with a project milestone and defined documents that have to be delivered.

Page 15: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1515

Project Management / MilestoneProject Management / Milestone

Example:Example: End of ProjectEnd of Project (Milestone): (Milestone): Completes the phase "Installation and Maintenance“Completes the phase "Installation and Maintenance“ Delivered documents: "Project Completion Approval" signed by Delivered documents: "Project Completion Approval" signed by

Project BoardProject Board

A Milestone completes a project phase. It is defined as a date at which required ต์ องกัาริ documents have to be delivered.

MS1

Phase 1 Phase 2

MS2

. . .

Page 16: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1616

Project Management / Deliveries, Project DocumentProject Management / Deliveries, Project Document

For some results in the project there must be For some results in the project there must be

substitute substitute คนหริ3อส��งที่��เขึ้ าแที่นที่��คนหริ3อส��งที่��เขึ้ าแที่นที่�� documents, such as for executable code.documents, such as for executable code.

A Project Document is a document which has a defined scope ขึ้อบเขึ้ต์ and content สาริ relevant เขึ้ าป็ริะเด้,น to the project. Every Project Document must have an author (responsible for delivering ส�ง at time เกั�ด้ขึ้��นเหมาะสมกั�บเวลัา and in sufficient พ่อเพ่�ยู่ง quality) and a review กัาริที่บที่วน team (one or many persons).

Page 17: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1717

PM / Work Breakdown Structure-1PM / Work Breakdown Structure-1

The Work Breakdown Structure (WBS) is a plan which defines all the work that has to be done until the project is completed.

Information Information investigationinvestigation

10 days10 days Keywords fromKeywords from

"Principles of IS""Principles of IS"

"Journal of IM" / Web"Journal of IM" / Web

Scheduling (16 Scheduling (16 lectures, 15 labs)lectures, 15 labs)

2 days2 days How many slides per How many slides per class, types of exercisesclass, types of exercises

ExcelExcel

Outline of slidesOutline of slides

..........

40 days40 days Analyzing keywordsAnalyzing keywords

BrainstormingBrainstorming

..........

Example / Part of the WBS of a course

Page 18: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1818

PM / Work Breakdown Structure-2PM / Work Breakdown Structure-2

Sometimes you add Sometimes you add ริวมริวม the dependencies the dependencies กัาริพ่��งพ่าอาศั�ยู่กัาริพ่��งพ่าอาศั�ยู่ / / เม3องขึ้��นเม3องขึ้��น to the WBSto the WBS

This called a task network (Pressman, p. This called a task network (Pressman, p. 180/181)180/181)

Here you see the dependencies of the tasks and a timeline

Page 19: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering1919

Project Management / Work SchedulingProject Management / Work Scheduling

During work scheduling you During work scheduling you assign assign มอบหมายู่มอบหมายู่ people people (project staff) to every task (project staff) to every task in the work breakdown in the work breakdown structure.structure.

You have to take into You have to take into account account พ่�จาริณาพ่�จาริณา the skill the skill ความเชั่��ยู่วชั่าญความเชั่��ยู่วชั่าญ and the and the availability availability ใชั่ ป็ริะโยู่ชั่น(ได้ ใชั่ ป็ริะโยู่ชั่น(ได้ of of the staff.the staff.

Writing the storyboard

Review

Setting up the budget

Casting

Page 20: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering2020

Project Management / Time SchedulingProject Management / Time Scheduling

The Time Scheduling results เป็�นผลั in a time plan that shows the work breakdown structure on a calendar ป็ฏิ�ที่�น

/ ริายู่กัาริแสด้งเวลัาน�ด้ .

Take into account how many people work on a specific task.

Let‘s say: 40 days for slide creation

1 person needs 40 days

40 persons need 1 day.

But: This is not always true. Think: On woman needs 9 months to give birth. And 9 women?

Page 21: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering2121

Project Management / Time SchedulingProject Management / Time Scheduling

Another example: Document reviewAnother example: Document review People need to read the document carefullyPeople need to read the document carefully Depends on the difficultyDepends on the difficulty Depends on the page numberDepends on the page number => it will take a least time to review a document, you => it will take a least time to review a document, you

cannot share the workcannot share the work

Page 22: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering2222

The Project Lifecycle 1 / WaterfallThe Project Lifecycle 1 / Waterfall

Systems Investigation Systems Investigation (Start of Project)(Start of Project)

RequirementsRequirements DesignDesign ImplementationImplementation Rollout & InstallationRollout & Installation MaintenanceMaintenance End of Project Deliveries End of Project Deliveries

(Stop of Project)(Stop of Project)

Page 23: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering2323

The Project Lifecycle 2 / PrototypingThe Project Lifecycle 2 / Prototyping

Determine requirementsDetermine requirements Analyze alternativesAnalyze alternatives Specify designSpecify design ImplementationImplementation User reviewUser review

Iteration 1Iteration 1

Determine requirementsDetermine requirements Analyze alternativesAnalyze alternatives Specify designSpecify design Implement designImplement design User reviewUser review

Iteration 2Iteration 2 ......

Page 24: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering2424

ControllingControlling

Plan (schedule) against realityPlan (schedule) against reality Ways of controllingWays of controlling

Percentage ready („90% Reports“)Percentage ready („90% Reports“) Number of modules ready for testNumber of modules ready for test

Page 25: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering2525

Systems Investigation / Start of ProjectSystems Investigation / Start of Project

Is the most critical phase in a project / Is the most critical phase in a project / Possible problemsPossible problems Poor problem definition and analysis Poor problem definition and analysis Solving the wrong problemSolving the wrong problem

Do things right – of course, but also: Do the Do things right – of course, but also: Do the right things!right things!

Poor communicationPoor communication Project is not feasible (too ambitious)Project is not feasible (too ambitious) Lack of top management supportLack of top management support

Page 26: Course 254 451 Software Engineering Michael Bruecknerphone055-261 000-4 (ext. 3233) อ. มิช่า emailmichaelb@nu.ac.th officeSC2-417, by appointment

(c) Michael Brueckner 2005/2006 - Software Engineering(c) Michael Brueckner 2005/2006 - Software Engineering2626

Project Management Success Project Management Success Tips ;-)Tips ;-)

Every task seems easy if you don’t have to do the Every task seems easy if you don’t have to do the work.work.

Things should be as simple as possible but no Things should be as simple as possible but no simpler.simpler.

Good engineering is expensive; poor engineering is Good engineering is expensive; poor engineering is more so.more so.

Never be where you are not wanted.Never be where you are not wanted.

If you have a “yes man” working for you, one of you If you have a “yes man” working for you, one of you is redundant.is redundant.

If everybody thinks alike, nobody thinks at all.If everybody thinks alike, nobody thinks at all.